:root{color-scheme:dark;--bg:#030806;--panel:#07110b;--well:#0a190e;--line:#24432b;--line-bright:#426b47;--ink:#cbe4c8;--muted:#8daa8d;--accent:#9cda9a;--hot:#c8f5b6}
*{box-sizing:border-box}
html,body{margin:0;min-width:0;height:100%;background:var(--bg)}
body{color:var(--ink);font:14px/1.5 ui-monospace,Consolas,monospace;text-shadow:0 0 1px #70c77a29}
body::before,body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:10}
body::before{background:repeating-linear-gradient(0deg,#9bda9b08 0 1px,transparent 1px 4px)}
body::after{box-shadow:inset 0 0 110px #000b;background:radial-gradient(ellipse at 50% 35%,transparent 55%,#0004 100%)}
button,input,textarea{font:inherit}button{cursor:pointer;min-height:44px;border-radius:0}button:focus-visible,input:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid var(--hot);outline-offset:2px}button:hover,a:hover{border-color:var(--line-bright);color:var(--hot)}
.shell{height:100dvh;min-height:0;display:grid;grid-template-columns:270px minmax(0,1fr);grid-template-rows:58px minmax(0,1fr);background:radial-gradient(ellipse at 74% -12%,#1636223b,transparent 55%),var(--bg)}
.topbar{grid-column:1/-1;grid-row:1;display:flex;align-items:center;gap:18px;min-width:0;padding:0 22px;background:linear-gradient(180deg,#0b1b10,#050e09);border-bottom:1px solid var(--line-bright);box-shadow:0 2px 22px #0009,inset 0 -1px #9cda9a13}
.brand{font-size:18px;font-weight:800;white-space:nowrap;letter-spacing:.02em;color:var(--accent);text-shadow:0 0 12px #9cda9a45}
#signal{margin-left:auto;color:var(--muted);font-size:11px;letter-spacing:.08em}
#menu,#closeNav{display:none;background:var(--well);border:1px solid var(--line);color:var(--accent);padding:8px 12px}
aside{grid-column:1;grid-row:2;min-height:0;overflow:auto;padding:18px 14px 24px;border-right:1px solid var(--line-bright);background:linear-gradient(160deg,#0b1b10,#06100a 64%,#030806);box-shadow:inset -18px 0 35px #0005}
aside h2{font-size:11px;letter-spacing:.1em;color:var(--muted);font-weight:600;margin:24px 8px 8px;padding-bottom:7px;border-bottom:1px solid var(--line)}
#newChat,#sessions button{width:100%;display:block;text-align:left;background:#102318;color:var(--ink);border:1px solid var(--line);padding:9px 11px;margin:6px 0}
#newChat{color:var(--accent);border-color:var(--line-bright)}
#sessions button{margin:2px 0;border-color:transparent;background:transparent;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#sessions button:hover,#sessions button.active{background:#183023;border-left:2px solid var(--accent);color:var(--hot)}
#sessions button[data-project-id]{border-left:2px solid var(--accent)}
#deleteChat{width:100%;text-align:left;background:transparent;color:var(--muted);border:1px solid var(--line);padding:8px 11px}#deleteChat[hidden],#memoryPanel[hidden],#projectFileForm[hidden]{display:none}#deleteChat:hover{color:#f4c1b7;border-color:#ad786d}
#memoryToggle,#memoryForm button,#memoryFacts button,#projectForm button,#projectFileForm button,#projectFiles button,#projects button{background:var(--well);color:var(--ink);border:1px solid var(--line);padding:8px 10px}
#memoryToggle{width:100%;text-align:left;margin-top:18px}
#memoryPanel{padding:12px 4px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}#memoryPanel ul,#projectFiles{padding:0;list-style:none}#memoryFacts li,#projectFiles li{padding:9px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}#memoryFacts button{display:block;margin-top:6px}#projectFiles li{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:11px}
#projectForm,#projectFileForm{display:grid;gap:6px;margin:10px 0;color:var(--muted);font-size:11px}#projectForm input,#projectForm textarea,#projectFileForm input,#projectFileForm textarea,#memoryText{min-width:0;width:100%;padding:8px;background:#07140b;color:var(--ink);border:1px solid var(--line);resize:vertical}#memoryText{display:block;margin:8px 0}#projects>div{display:flex;gap:4px;margin:5px 0}#projects button:first-child{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}#projects button[aria-pressed=true]{color:var(--hot);border-color:var(--accent)}#projectStatus{font-size:11px;color:var(--muted);overflow-wrap:anywhere}
.callsign{margin:24px 8px 8px;color:var(--muted);font-size:11px;letter-spacing:.08em}.about-link{display:block;margin:0 8px;color:var(--accent);font-size:11px;letter-spacing:.04em;text-decoration:none;padding:10px 0;border-bottom:1px solid var(--line)}
main{grid-column:2;grid-row:2;min-height:0;min-width:0;display:flex;flex-direction:column;background:radial-gradient(ellipse at 50% 0,#19352338,transparent 58%),#030a06}
.log{flex:1;min-height:0;overflow-y:auto;padding:clamp(24px,5vh,50px) max(24px,calc((100% - 840px)/2)) 12px}.welcome{margin:12px 0 36px}.welcome h1{font-size:clamp(26px,3vw,40px);letter-spacing:-.04em;line-height:1.2;color:var(--hot);text-shadow:0 0 18px #9cda9a32;margin:0 0 8px}.welcome p{margin:0;color:var(--muted)}
.welcome{animation:welcome-in .55s ease-out both}
.welcome-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:22px}
.welcome-actions button,.welcome-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:9px 13px;border:1px solid var(--line-bright);background:var(--well);color:var(--accent);font:inherit;font-size:11px;letter-spacing:.05em;text-decoration:none}
.welcome-actions button{background:var(--accent);border-color:var(--accent);color:#08170d;font-weight:700}
.welcome-actions button:hover{background:var(--hot);color:#08170d}
.welcome-actions a:hover{border-color:var(--accent);color:var(--hot)}
@keyframes welcome-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.message{border-top:1px solid var(--line);padding:18px 2px;white-space:pre-wrap;overflow-wrap:anywhere}.message b{display:block;margin-bottom:7px;color:var(--accent);font-size:11px;letter-spacing:.1em}.message.user b{color:#dbc497}
.ad-banner{flex:none;width:100%;min-height:105px;max-height:105px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;overflow:hidden;border-top:1px solid var(--line);background:#030806}.ad-label{font-size:9px;letter-spacing:.12em;color:var(--muted)}.ad-banner iframe{display:block;width:100%;max-width:728px;height:90px;border:0;background:transparent}
#motherBoot{position:fixed;inset:0;z-index:50;display:grid;place-items:center;background:#010804;color:var(--accent);overflow:hidden;transition:opacity .28s ease,visibility .28s ease}#motherBoot.boot-exit{opacity:0;visibility:hidden;pointer-events:none}.boot-video{display:block;width:100%;height:100%;object-fit:contain;background:#010804}#bootSkip{position:absolute;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));z-index:1;min-height:44px;padding:8px 18px;background:#06140deb;border:1px solid var(--line-bright);color:var(--hot);box-shadow:0 0 16px #000b}
.dock{flex:none;padding:12px 22px 18px;background:linear-gradient(transparent,#030806 20%)}#composer,.controls{max-width:840px;margin:auto;display:flex;gap:10px}#composer{align-items:flex-end;padding:10px;border:1px solid var(--line-bright);background:linear-gradient(145deg,#102318,#0a180e);box-shadow:inset 0 1px #b5e9aa12,0 0 18px #77d9890a}#prompt{flex:1;min-width:0;min-height:50px;max-height:130px;resize:vertical;padding:6px;color:var(--ink);border:0;background:transparent;outline:0}#prompt::placeholder{color:var(--muted)}#send{padding:8px 16px;background:var(--accent);color:#08170d;border:1px solid var(--accent);font-weight:700}#send:hover{background:var(--hot);color:#08170d}
.controls{align-items:center;flex-wrap:wrap;margin-top:9px;font-size:11px}.controls button{min-height:40px;padding:7px 12px;background:var(--well);border:1px solid var(--line);color:var(--muted)}.controls button[aria-pressed=true]{color:var(--hot);border-color:var(--accent);background:#15301b}#status{margin-left:auto;color:var(--muted);letter-spacing:.08em}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(max-width:720px){.shell{grid-template-columns:minmax(0,1fr);grid-template-rows:54px minmax(0,1fr)}.topbar{padding:0 12px;gap:10px}.brand{font-size:clamp(14px,4vw,18px)}#signal{font-size:10px}#menu,#closeNav{display:block}aside{position:fixed;z-index:8;top:54px;bottom:0;left:0;width:min(85vw,300px);transform:translateX(-100%);transition:transform .2s;box-shadow:8px 0 25px #0009}aside.open{transform:none}main{grid-column:1;grid-row:2}.log{padding:24px 18px 12px}.dock{padding:10px 12px 15px}.controls #status{width:100%;margin:0}}
@media(max-width:720px){.ad-banner{height:66px;min-height:66px;max-height:66px}.ad-banner iframe{width:320px;max-width:100%;height:50px}.ad-label{font-size:8px}}
@media(max-width:380px){.brand{font-size:13px}.topbar{gap:6px}#signal{font-size:9px}.dock{padding:8px}#composer{gap:5px;padding:7px}#send{padding:8px}}
@media(prefers-reduced-motion:reduce){aside{transition:none}.welcome{animation:none}html{scroll-behavior:auto}}
