/* GODMODE — terminal / code editor theme */
:root{
  --bg:#07080d; --ed:#0f111a; --side:#0b0d14; --bar:#090b11; --line:#1c2132; --line2:#262c42;
  --tx:#c8d0e6; --mut:#7c86a8; --dim:#4a5272; --gut:#3a4160;
  --kw:#c792ea; --str:#c3e88d; --fn:#82aaff; --ty:#ffcb6b; --num:#f78c6c; --cm:#6a7396; --pn:#89ddff;
  --acc:#7c5cff; --acc2:#36d6c3; --sb:#5b3fd6;
  --mono:"JetBrains Mono","Fira Code","SFMono-Regular",ui-monospace,Menlo,Consolas,"Liberation Mono",monospace;
  --tb:38px; --sbh:26px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--tb) + 46px)}
body{margin:0;background:var(--bg);color:var(--tx);font:14.5px/1.7 var(--mono);-webkit-font-smoothing:antialiased}
a{color:var(--fn);text-decoration:none}
a:hover{text-decoration:underline}
:focus-visible{outline:2px solid var(--acc2);outline-offset:2px;border-radius:3px}
.skip{position:absolute;left:-999px;top:8px;z-index:100;background:var(--acc);color:#fff;padding:6px 12px;border-radius:6px}
.skip:focus{left:8px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
::selection{background:#7c5cff55}

/* window chrome */
.window{min-height:100vh;display:flex;flex-direction:column}
.titlebar{position:sticky;top:0;z-index:40;height:var(--tb);display:flex;align-items:center;gap:14px;padding:0 14px;background:var(--bar);border-bottom:1px solid var(--line);font-size:12.5px;color:var(--mut)}
.dots{display:inline-flex;gap:7px}
.dots i{width:12px;height:12px;border-radius:50%;background:#ff5f57;display:block}
.dots i:nth-child(2){background:#febc2e}.dots i:nth-child(3){background:#28c840}
.tb-title{position:absolute;left:50%;transform:translateX(-50%);color:var(--tx);white-space:nowrap}
.tb-title b{color:#fff;font-weight:700}.tb-path{color:var(--mut)}
.tb-title:hover{text-decoration:none;color:#fff}
.tb-right{margin-left:auto;color:var(--dim)}
.menu-btn{display:none;background:none;border:1px solid var(--line2);color:var(--tx);border-radius:6px;width:32px;height:26px;cursor:pointer;font:inherit}

.workbench{flex:1;display:grid;grid-template-columns:48px 250px minmax(0,1fr);background:linear-gradient(90deg,var(--bar) 0 48px,var(--side) 48px 298px,var(--ed) 298px)}
.activity{position:sticky;top:var(--tb);height:calc(100vh - var(--tb) - var(--sbh));display:flex;flex-direction:column;align-items:center;gap:18px;padding-top:14px;border-right:1px solid var(--line);color:var(--dim);font-size:18px}
.activity .on{color:var(--tx);border-left:2px solid var(--acc);padding-left:10px;margin-left:-12px}

/* sidebar */
.sidebar{position:sticky;top:var(--tb);height:calc(100vh - var(--tb) - var(--sbh));overflow:auto;border-right:1px solid var(--line);font-size:13px;padding-bottom:16px}
.side-h{text-transform:uppercase;letter-spacing:.12em;font-size:11px;color:var(--mut);padding:12px 16px 6px}
.folder{padding:2px 12px;color:var(--tx);font-weight:700;font-size:12px}
.folder.sub{font-weight:500;padding-left:22px;color:var(--mut)}
.files{list-style:none;margin:0 0 4px;padding:0}
.files a{display:flex;align-items:center;gap:8px;padding:3px 12px 3px 26px;color:#aab3cf;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-left:2px solid transparent}
.files.sub a{padding-left:38px}
.files a:hover{background:#151927;text-decoration:none;color:#fff}
.files a.active{background:#1a1f33;color:#fff;border-left-color:var(--acc)}
.outl a{padding-left:16px}
.fi{display:inline-block;min-width:18px;text-align:center;font-size:10.5px;font-weight:700;color:var(--mut)}
.fi-md{color:#519aba}.fi-tsx{color:#4fc1ff;font-size:13px}.fi-json{color:var(--ty)}.fi-log{color:var(--acc2)}.fi-dir{color:var(--num)}.fi-sh{color:var(--str)}

/* editor */
.editor{min-width:0;display:flex;flex-direction:column}
.tabs{position:sticky;top:var(--tb);z-index:30;display:flex;overflow-x:auto;background:var(--bar);border-bottom:1px solid var(--line);scrollbar-width:thin}
.tab{display:flex;align-items:center;gap:7px;padding:9px 16px;font-size:12.5px;color:var(--mut);border-right:1px solid var(--line);white-space:nowrap;border-top:2px solid transparent}
.tab:hover{color:var(--tx);text-decoration:none;background:#11141f}
.tab.active{background:var(--ed);color:#fff;border-top-color:var(--acc)}
main{flex:1}
.pane{border-bottom:1px solid var(--line)}
.crumbs{font-size:12px;color:var(--mut);padding:8px 24px;border-bottom:1px solid #151a29}
.pane-body{position:relative;padding:34px 40px 46px 76px;max-width:1120px}
.pane-body::before{content:"";position:absolute;left:0;top:0;bottom:0;width:52px;border-right:1px solid #161b2b;background:repeating-linear-gradient(180deg,transparent 0 23px,#ffffff05 23px 24px)}
.hash{color:var(--dim)}
.md-h{font-size:22px;margin:0 0 10px;color:#fff;font-weight:700;letter-spacing:-.01em}
.md-h .hash{color:var(--acc)}
.html-c{font-variant-ligatures:none}
.cmt{color:var(--cm);font-style:italic;margin:0 0 18px;max-width:72ch}
.prose{max-width:72ch;margin:0 0 14px}
.reveal{opacity:0;transform:translateY(10px);transition:opacity .5s ease,transform .5s ease}
.reveal.in{opacity:1;transform:none}

/* syntax */
.tk{color:var(--kw)}.ts{color:var(--str)}.tf{color:var(--fn)}.tt{color:var(--ty)}.tc{color:var(--cm);font-style:italic}.tn{color:var(--pn)}.tp{color:var(--pn)}
.code{margin:0 0 18px;background:#0b0d15;border:1px solid var(--line);border-radius:8px;padding:12px 14px 12px 0;overflow-x:auto;font:13px/1.65 var(--mono);counter-reset:ln}
.code code{font:inherit;display:block;min-width:max-content}
.code .l{display:block;padding-left:3.6em;position:relative;white-space:pre}
.code .l::before{counter-increment:ln;content:counter(ln);position:absolute;left:0;width:2.6em;text-align:right;color:var(--gut)}
.code.mini{display:inline-block;max-width:100%;padding-right:18px}
.code.small{font-size:12px;margin:0;border:0;background:transparent;padding:4px 0}

/* hero */
.hero .pane-body{padding-top:48px;padding-bottom:56px}
.hero h1{font-size:clamp(34px,5.2vw,60px);line-height:1.08;margin:6px 0 16px;color:#fff;letter-spacing:-.03em;font-weight:800}
.hero h1 .hash{color:var(--acc)}
.lead{font-size:16px;color:#aeb7d3;max-width:62ch;margin:0 0 24px}
.cta{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:34px}
.btn{display:inline-flex;align-items:center;gap:2px;padding:10px 18px;border-radius:7px;font-weight:600;font-size:14px;border:1px solid var(--line2);color:var(--tx);background:#12162280;transition:transform .15s,border-color .15s,background .15s}
.btn:hover{text-decoration:none;transform:translateY(-1px);border-color:var(--acc)}
.btn-primary{background:var(--acc);border-color:var(--acc);color:#fff}
.btn-primary:hover{background:#8d72ff}
.btn span[aria-hidden]{opacity:.7}
.terminal{max-width:760px;border:1px solid var(--line2);border-radius:10px;overflow:hidden;background:#080a10;box-shadow:0 24px 60px -24px #000,0 0 0 1px #ffffff05,0 0 80px -30px #7c5cff55}
.term-bar{display:flex;align-items:center;gap:14px;padding:9px 12px;background:#121522;border-bottom:1px solid var(--line);font-size:12px;color:var(--mut)}
.term-bar .dots i{width:11px;height:11px}
.term-body{padding:16px 18px 18px;font-size:14px;min-height:248px}
.tl{white-space:pre-wrap;word-break:break-word}
.tl.out{color:#d5dcf0;margin-bottom:6px}
.ps1{color:var(--acc2);font-weight:700}
.typed{color:#fff}
.dir{color:var(--fn);font-weight:700}
.cursor{display:inline-block;width:.6em;height:1.1em;vertical-align:-.18em;background:var(--acc2);animation:blink 1.05s steps(1) infinite}
.tl.hidden{display:none}
@keyframes blink{50%{opacity:0}}

/* about frontmatter */
.fm{margin:0 0 18px;color:var(--mut)}
.fm-line{color:var(--dim)}
.fm dl{margin:4px 0}
.fm dl div{display:block}
.fm dt,.fm dd{display:inline}
.fm dt{margin-right:8px}
.fm dt{color:var(--pn)}.fm dt::after{content:":";color:var(--pn)}
.fm dd{margin:0;color:var(--str)}

/* apps */
.apps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:6px}
.app{border:1px solid var(--line2);border-radius:10px;background:#0b0d15;overflow:hidden;display:flex;flex-direction:column}
.app:hover{border-color:#34406a}
.app-bar{font-size:12.5px;padding:8px 14px;background:#11141f;border-bottom:1px solid var(--line);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.app-in{padding:20px 20px 18px;display:flex;flex-direction:column;flex:1}
.app-head{display:flex;gap:14px;align-items:center;margin-bottom:12px}
.icon{width:48px;height:48px;border-radius:12px;display:grid;place-items:center;font-weight:800;font-size:22px;color:#fff;flex:none}
.artaist .icon{background:linear-gradient(135deg,#7c5cff,#e95ce9)}
.face .icon{background:linear-gradient(135deg,#ff7a7a,#ffb35c)}
.app h3{margin:0;font-size:19px;color:#fff}
.cat{font-size:12.5px;color:var(--mut)}
.app-desc{margin:0 0 12px;color:#b3bbd6}
.feats{list-style:none;padding:0;margin:0 0 18px;flex:1}
.feats li{position:relative;padding-left:22px;font-size:13.5px;margin:4px 0}
.feats li::before{content:"+";position:absolute;left:4px;color:var(--str);font-weight:700}
.app-cta{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}
.app-url{font-size:13px;color:var(--acc2)}

/* stack */
.stack-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:18px}
.editor-card{border:1px solid var(--line2);border-radius:10px;overflow:hidden;background:#0b0d15;min-width:0}
.editor-card .ec-tab{font-size:12px;padding:8px 14px;background:#11141f;border-bottom:1px solid var(--line);color:var(--tx);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.editor-card .ec-tab em{color:var(--cm);margin-left:8px}
.editor-card .code{border:0;border-radius:0;margin:0;background:transparent}
.chips{list-style:none;padding:0;margin:18px 0 0;display:flex;flex-wrap:wrap;gap:8px}
.chips li{font-size:12.5px;padding:3px 10px;border:1px solid var(--line2);border-radius:999px;color:#b9c2dd;background:#10131e}

/* git log */
.term-cmd{font-size:13.5px;margin-bottom:6px;color:#fff}
.gitlog{list-style:none;margin:0;padding:0;font-size:13.5px}
.gitlog li{display:grid;grid-template-columns:22px 76px minmax(0,1fr);align-items:baseline;padding:5px 0;position:relative}
.gitlog li::after{content:"";position:absolute;left:4px;top:22px;bottom:-8px;width:1px;background:#e95ce966}
.gitlog li:last-child::after{display:none}
.g{color:#e95ce9;font-weight:700}
.hash-id{color:var(--ty)}
.ref{color:var(--acc2);font-weight:700}
.ty{color:var(--kw);margin-right:2px}
.msg{color:var(--tx)}

/* projects */
.projs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.proj{border:1px solid var(--line2);border-radius:10px;padding:14px 16px;background:#0b0d15;display:flex;flex-direction:column;min-width:0}
.proj:hover{border-color:#34406a}
.proj-h{font-size:12px;color:var(--mut);margin-bottom:4px}
.slug{color:var(--num)}
.proj h3{margin:0;font-size:16px;color:#fff}
.tags{font-size:12px;color:var(--acc2);margin-bottom:6px}
.proj p{font-size:13px;color:#aab3cf;margin:0 0 10px;flex:1}
.snip{position:relative;border:1px dashed #2a3150;border-radius:7px;background:#080a10;padding:16px 8px 4px 0;margin-bottom:10px}
.snip-tag{position:absolute;top:-9px;right:8px;font-size:10px;background:#0b0d15;color:var(--cm);padding:0 6px;font-style:italic}
.plinks{display:flex;gap:14px;flex-wrap:wrap;font-size:13px}

/* changelog */
.changelog{list-style:none;padding:0;margin:0;font-size:13.5px;border-left:2px solid var(--line2)}
.changelog li{display:flex;flex-wrap:wrap;gap:4px 12px;padding:6px 0 6px 16px;position:relative}
.changelog li::before{content:"";position:absolute;left:-6px;top:13px;width:10px;height:10px;border-radius:50%;background:var(--ed);border:2px solid var(--acc2)}
.changelog time{color:var(--ty)}

/* contact */
.contact .code.mini{margin-bottom:10px}
.contact-title{line-height:1.3;font-size:clamp(22px,3vw,30px);font-weight:800;color:#fff;margin:0 0 8px;letter-spacing:-.02em}
.mail{display:inline-block;margin:0 0 22px;font-size:14.5px;word-break:break-all}
.social{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:10px}
.social a{display:inline-block;padding:6px 12px;border:1px solid var(--line2);border-radius:7px;color:var(--tx);font-size:13px;background:#0b0d15}
.social a:hover{border-color:var(--acc);text-decoration:none}

/* footer + status bar */
.foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 20px;padding:18px 24px 22px 76px;font-size:12px;color:var(--mut)}
.foot nav{display:flex;flex-wrap:wrap;gap:16px}
.foot a{color:var(--mut)}.foot a:hover{color:#fff}
.statusbar{position:sticky;bottom:0;z-index:50;height:var(--sbh);display:flex;justify-content:space-between;align-items:center;background:var(--sb);color:#fff;font-size:12px;padding:0 0 0 10px}
.sb-l,.sb-r{display:flex;align-items:center;gap:16px;height:100%;min-width:0}
.sb-branch{font-weight:700}
.sb-file{opacity:.9}
.lang{display:flex;align-items:center;height:100%;gap:0}
.lang>span{margin-right:8px;opacity:.8}
.lang button{height:100%;border:0;background:transparent;color:#ffffffb0;font:700 12px var(--mono);padding:0 10px;cursor:pointer}
.lang button[aria-pressed="true"]{background:#ffffff26;color:#fff}
.lang button:hover{color:#fff}

/* legal */
.legal .pane-body{max-width:960px}
.notice{border:1px solid #5c4a1c;background:#2a210c;color:#ffd98a;border-radius:8px;padding:10px 14px;font-size:13px;margin:0 0 22px}
.md{max-width:78ch;font-size:14px;color:#c0c8e0}
.md h2{font-size:16px;color:#fff;margin:28px 0 8px}
.md h2::before{content:"## ";color:var(--acc)}
.md ul{padding-left:20px}.md li{margin:4px 0}.md li::marker{color:var(--acc2)}
.md b{color:#fff}
.md a{color:var(--acc2)}

/* responsive */
@media (max-width:1280px){.stack-grid{grid-template-columns:minmax(0,1fr)}}
@media (max-width:1100px){
  .projs{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:900px){
  .workbench{grid-template-columns:minmax(0,1fr);background:var(--ed)}
  .activity{display:none}
  .sidebar{position:fixed;left:0;top:var(--tb);bottom:var(--sbh);height:auto;width:min(290px,84vw);z-index:45;background:var(--side);transform:translateX(-100%);transition:transform .2s ease;box-shadow:20px 0 40px #0008}
  .sidebar.open{transform:none}
  .menu-btn{display:inline-grid;place-items:center}
  .tb-right{display:none}
  .apps{grid-template-columns:minmax(0,1fr)}
  .pane-body{padding:28px 20px 36px 20px}
  .pane-body::before{display:none}
  .foot{padding-left:20px}
}
@media (max-width:600px){
  body{font-size:14px}
  .titlebar{gap:10px}
  .tb-title{position:static;transform:none;margin-left:auto;font-size:12px}
  .tb-path{display:none}
  .projs{grid-template-columns:minmax(0,1fr)}
  .pane-body{padding:24px 16px 32px}
  .crumbs{padding:7px 16px}
  .term-body{font-size:12.5px;padding:14px;min-height:0}
  .ps1{font-weight:600}
  .gitlog li{grid-template-columns:18px minmax(0,1fr)}
  .hash-id{display:none}
  .sb-hide{display:none!important}
  .tab{padding:8px 12px}
  .lead{font-size:15px}
  .code{font-size:12px}
  .code .l{white-space:pre-wrap;word-break:break-word;padding-left:5.2em;text-indent:-1.6em}
  .code .l::before{text-indent:0}
  .code code{min-width:0}
  .code.mini{display:block}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
}
.nw{white-space:nowrap}
