:root{
  --bg:#03070f; --fg:#e8ecf2; --accent:#4f9dff; --muted:#7c879a; --dim:#2a3242; --dim2:#141b2a; --pink:#fda4af; --gold:#f2d36b;
  --cw:8.43px; --lh:19px;
}
html,body{margin:0;height:100%;background:var(--bg);overflow:hidden;}
#app{position:fixed;inset:0;height:100dvh;box-sizing:border-box;}
#field{position:absolute;left:0;top:0;pointer-events:none;}
#field canvas{display:block;}
#root{position:absolute;inset:0;z-index:1;color:var(--fg);padding-top:env(safe-area-inset-top,0px);
  font:14px/19px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;-webkit-font-smoothing:antialiased;
  padding:0 calc(2*var(--cw));box-sizing:border-box;pointer-events:none;}
.hd,.stat,.tag,.axis,.axisl,.boot div,.quit div,.ctl,.list li,.kv div,.rlist li,.label,.hero,.title,.meter div,.name,.section > span{white-space:pre-wrap;}
#root a,#root .plist li,#root .keys a,#root .scroll,#root .ctl span{pointer-events:auto;}
#root a{color:var(--accent);text-decoration:underline;text-underline-offset:2px;cursor:pointer;}
#root a:hover{color:#fff;}
.tui{display:flex;flex-direction:column;height:100%;box-sizing:border-box;padding-bottom:calc(var(--lh) + env(safe-area-inset-bottom,0px));}
.bar{display:flex;justify-content:space-between;align-items:center;height:var(--lh);}
.bar.top{margin-top:var(--lh);}
.rule{height:var(--lh);color:var(--dim);overflow:hidden;white-space:nowrap;}
.rule::before{content:"----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------";}
.brand{font-weight:600;}
.accent{color:var(--accent);} .muted{color:var(--muted);} .dim{color:var(--dim);} .fg{color:var(--fg);} .gold{color:var(--gold);} .pink{color:var(--pink);}
b,strong{font-weight:600;color:#fff;}
.body{flex:1 1 auto;min-height:0;position:relative;padding-top:var(--lh);}
.scroll{position:absolute;inset:var(--lh) 0 0 0;overflow:auto;scrollbar-width:none;}
.scroll::-webkit-scrollbar{display:none;}
#root .keys a{color:var(--muted);text-decoration:none;margin-right:calc(2*var(--cw));}
#root .keys a:hover{color:var(--fg);}
#root .keys a.active{color:var(--fg);}
.keys a .k{color:var(--accent);}
/* boot */
.boot{padding:var(--lh) 0 0 calc(2*var(--cw));}
.boot div{height:var(--lh);}
.cursor{color:var(--accent);}
/* dashboard */
.dash{display:flex;gap:calc(3*var(--cw));align-items:flex-start;}
.panel{flex:none;}
.panel .hd{color:var(--muted);}
.panel .hd .meta{color:var(--dim);}
.w42{width:calc(42*var(--cw));}
.chart{display:flex;align-items:flex-end;height:calc(7*var(--lh));margin:var(--lh) 0 0 0;}
.chart .barc{width:calc(3*var(--cw));display:flex;flex-direction:column;justify-content:flex-end;}
.chart .barc i{display:block;background:var(--accent);transition:height .6s cubic-bezier(.2,.8,.2,1);}
.chart .barc i.base{background:var(--dim);}
.chart .barc em{font-style:normal;color:var(--bg);background:var(--accent);text-align:center;height:var(--lh);line-height:var(--lh);}
.chart .barc em.base{background:transparent;color:var(--dim);}
.axis{color:var(--dim);}
.axisl{display:flex;justify-content:space-between;color:var(--muted);}
.meter{width:calc(5*var(--cw));text-align:center;color:var(--muted);}
.meter .lv{color:var(--dim2);}
.meter .lv.on{color:var(--accent);}
.list{list-style:none;margin:0;padding:0;}
.list li{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.list li::before{content:"· ";color:var(--dim);}
.list li.hot::before{content:"▸ ";color:var(--fg);}
.ctl{display:flex;justify-content:space-between;color:var(--muted);margin-top:var(--lh);}
.ctl span{cursor:pointer;} .ctl span:hover{color:var(--fg);}
.stat b{color:var(--fg);}
/* projects */
.split{display:flex;height:100%;}
.side{width:calc(30*var(--cw));flex:none;}
.vrule{width:calc(2*var(--cw));flex:none;position:relative;margin:0 var(--cw);}
.vrule::before{content:"";position:absolute;left:50%;top:0;bottom:0;border-left:1px dashed var(--dim);}
.plist{list-style:none;margin:var(--lh) 0 0;padding:0;}
.plist li{color:var(--muted);cursor:pointer;padding-left:calc(2*var(--cw));position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.plist li:hover{color:var(--fg);}
.plist li.sel{color:var(--fg);background:rgba(232,236,242,.06);}
.plist li.sel::before{content:"▌";position:absolute;left:0;color:var(--accent);}
.detail{flex:1;min-width:0;}
.detail .tag{color:var(--accent);}
.detail .title{font-weight:600;}
.detail p{margin:var(--lh) 0;}
.hr{color:var(--dim);overflow:hidden;white-space:nowrap;}
.hr::before{content:"----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------";}
.kv{margin-bottom:var(--lh);}
.kv div{display:flex;gap:calc(2*var(--cw));}
.kv .k{color:var(--muted);min-width:calc(12*var(--cw));flex:none;}
.kv .k.dim{color:var(--dim);}
.tags{display:flex;flex-wrap:wrap;column-gap:calc(2*var(--cw));}
.tags span{color:var(--c);}
.col{max-width:calc(96*var(--cw));}
.section{margin-bottom:var(--lh);}
.label{color:var(--muted);}
.name{font-weight:600;}
p{margin:0 0 var(--lh);}
.rlist{list-style:none;margin:0;padding:0;}
.rlist li{display:flex;gap:calc(2*var(--cw));}
.rlist li .y{color:var(--dim);flex:none;min-width:calc(6*var(--cw));}
.rlist li .o{color:var(--fg);flex:none;min-width:calc(26*var(--cw));}
.rlist li .d{color:var(--muted);}
.quit{padding:var(--lh) 0 0 calc(2*var(--cw));}
.quit div{height:var(--lh);}
/* crt */
.crt-overlay{position:fixed;inset:0;z-index:10;pointer-events:none;
  background:repeating-linear-gradient(0deg,rgba(0,0,0,0) 0px,rgba(0,0,0,0) 1px,rgba(0,0,0,.32) 2px);
  animation:crt-flicker 4s steps(40) infinite;}
.crt-vignette{position:fixed;inset:0;z-index:9;pointer-events:none;
  background:radial-gradient(140% 140% at 50% 50%,rgba(0,0,0,0) 65%,rgba(0,0,0,.45) 100%);}
.crt-tint{position:fixed;inset:0;z-index:9;pointer-events:none;background:rgba(79,157,255,.035);}
@keyframes crt-flicker{0%,100%{opacity:1}48%{opacity:.97}50%{opacity:.94}52%{opacity:.98}}
@media (prefers-reduced-motion:reduce){.crt-overlay{animation:none}}
.seo-content{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
@media (max-width:900px){
  .dash{flex-direction:column;} .meter{display:none;}
  .split{flex-direction:column;} .side{width:auto;} .vrule{display:none;}
  .plist{display:flex;flex-wrap:wrap;gap:0 calc(2*var(--cw));margin-bottom:var(--lh);}
  #hint{display:none;} .rlist li{flex-wrap:wrap;} .rlist li .o{min-width:0;}
}

/* usage */
.chart .barc.w4{width:calc(4*var(--cw));}
.chart .barc em{font-size:12px;letter-spacing:-.3px;}
/* chat */
.chat{display:flex;flex-direction:column;height:100%;}
.chatlog{flex:1 1 auto;min-height:0;overflow:auto;scrollbar-width:none;}
.chatlog::-webkit-scrollbar{display:none;}
.msg{white-space:pre-wrap;margin-bottom:var(--lh);max-width:calc(100*var(--cw));}
.chatin{display:flex;align-items:center;height:calc(2*var(--lh));margin-top:auto;pointer-events:auto;position:relative;}
.chatin::before{content:"";position:absolute;left:0;right:0;top:0;border-top:1px dashed var(--dim);}
.chatin input{flex:1;background:transparent;border:0;outline:0;color:var(--fg);font:inherit;padding:0;margin:0;caret-color:var(--accent);height:var(--lh);pointer-events:auto;}
.chatin input::placeholder{color:var(--dim);opacity:1;}
@media (pointer:coarse){.chatin input{font-size:16px;}}

#codexstrip{margin-top:var(--lh);}
#codexstrip .stat{white-space:pre-wrap;}
.bul{list-style:none;margin:0 0 var(--lh);padding:0;max-width:calc(110*var(--cw));}
.bul li{padding-left:calc(2*var(--cw));position:relative;color:var(--muted);}
.bul li::before{content:"-";position:absolute;left:0;color:var(--accent);}
.xp li{margin-bottom:var(--lh);}
.xp li .y{min-width:calc(20*var(--cw));}
.xp li .o{min-width:calc(46*var(--cw));}
.rlist li .d{white-space:normal;}
@media (max-width:900px){.xp li .o{min-width:0;}}
.lnk{color:var(--accent);cursor:pointer}.lnk:hover{text-decoration:underline}
