/* Layout: one 1120px column. Pixel "diffusion" hero → model card → training log (timeline + learning curve) → project grid with replayable previews → contact. Dark-first. */
:root{
  --bg:#0e0d14; --bg-2:#15131d; --panel:#1a1824; --line:#2c2a3b;
  --fg:#ece8f4; --muted:#9b96ae;
  --accent:#ffb340; --accent-ink:#1b1205; --cyan:#7fd4e0; --violet:#b9a3ff;
  --font-display:"Pixelify Sans", "Courier New", monospace;
  --font-body:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
  --step--1:0.8125rem; --step-0:1rem; --step-1:1.25rem; --step-2:1.75rem; --step-3:clamp(2.25rem, 6vw, 4rem);
  --radius:6px;
  color-scheme:dark;
}
@media (prefers-color-scheme: light){
  :root:not([data-theme="dark"]){
    --bg:#f2f1f6; --bg-2:#e9e7f0; --panel:#ffffff; --line:#d7d4e2;
    --fg:#17151f; --muted:#5c576f;
    --accent:#9a5205; --accent-ink:#fff8ee; --cyan:#1a6d79; --violet:#5b3fc4;
    color-scheme:light;
  }
}
:root[data-theme="light"]{
  --bg:#f2f1f6; --bg-2:#e9e7f0; --panel:#ffffff; --line:#d7d4e2;
  --fg:#17151f; --muted:#5c576f;
  --accent:#9a5205; --accent-ink:#fff8ee; --cyan:#1a6d79; --violet:#5b3fc4;
  color-scheme:light;
}

*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
body{
  background:var(--bg); color:var(--fg);
  font-family:var(--font-body); font-size:var(--step-0); line-height:1.6;
  background-image:radial-gradient(var(--line) 1px, transparent 1px);
  background-size:22px 22px;
}
a{color:inherit}
:focus-visible{outline:2px solid var(--accent); outline-offset:2px; border-radius:3px}
.wrap{max-width:1120px; margin:0 auto; padding-left:max(16px, env(safe-area-inset-left, 0px)); padding-right:max(16px, env(safe-area-inset-right, 0px))}
.mono{font-family:var(--font-mono)}
.muted{color:var(--muted)}

/* header */
header.top{position:sticky; top:env(safe-area-inset-top, 0px); z-index:20; background:color-mix(in srgb, var(--bg) 88%, transparent); backdrop-filter:blur(8px); border-bottom:1px solid var(--line)}
header.top .wrap{display:flex; align-items:center; justify-content:space-between; gap:16px; padding-block:12px; flex-wrap:wrap}
.logo{font-family:var(--font-mono); font-size:var(--step--1); text-decoration:none}
.logo b{color:var(--accent); font-weight:500}
nav.links{display:flex; gap:4px; flex-wrap:wrap}
nav.links a{font-family:var(--font-mono); font-size:var(--step--1); text-decoration:none; color:var(--muted); padding:4px 8px; border-radius:4px}
nav.links a:hover{color:var(--fg); background:var(--bg-2)}

/* hero */
.hero{padding-block:48px 32px; display:grid; gap:20px}
.status{font-family:var(--font-mono); font-size:var(--step--1); color:var(--muted); display:flex; gap:8px 18px; flex-wrap:wrap}
.status .dot{display:inline-block; width:8px; height:8px; background:var(--cyan); margin-right:6px; vertical-align:middle; animation:blink 1.6s steps(2) infinite}
@keyframes blink{50%{opacity:.25}}
@media (prefers-reduced-motion: reduce){.status .dot{animation:none}}
.canvas-box{border:1px solid var(--line); background:var(--bg-2); border-radius:var(--radius); overflow:hidden; min-width:0}
.canvas-box canvas{display:block; width:100%}
.frame{position:relative}
.frame video{display:block; width:100%; height:100%; object-fit:contain; background:var(--bg-2)}
.frame.has-video{aspect-ratio:16/9; max-height:min(72vh, 680px); max-width:100%}
.frame.has-video .veil{position:absolute; inset:0; display:grid; place-items:center; background:var(--bg-2); transition:opacity .7s ease}
.frame.playing .veil{opacity:0; pointer-events:none}
@media (prefers-reduced-motion: reduce){.frame.has-video .veil{transition:none}}
.vctl{display:flex; gap:6px}
.hero-text{display:grid; gap:16px; align-content:start; min-width:0}
@media (min-width:900px){
  .hero.has-video{grid-template-columns:minmax(0,5fr) minmax(0,7fr); column-gap:40px; align-items:center}
  .hero.has-video .status{grid-column:1 / -1}
  .hero.has-video .canvas-box{grid-column:2; grid-row:2}
  .hero.has-video .hero-text{grid-column:1; grid-row:2}
}
/* reading modes: engineer (default) and plain English */
body:not([data-mode="plain"]) .t-plain, body[data-mode="plain"] .t-tech{display:none!important}
.mode{display:inline-flex; border:1px solid var(--line); border-radius:4px; overflow:hidden}
.mode button{font-family:var(--font-mono); font-size:.75rem; padding:5px 10px; border:0; background:transparent; color:var(--muted); cursor:pointer}
.mode button[aria-pressed="true"]{background:var(--accent); color:var(--accent-ink)}
.hint{font-size:var(--step--1); color:var(--muted); margin:0}
.hint button{font:inherit; color:var(--accent); background:none; border:0; padding:0; cursor:pointer; text-decoration:underline; text-underline-offset:3px}
.glance{display:grid; grid-template-columns:repeat(auto-fit, minmax(min(100%, 180px), 1fr)); gap:12px; margin:0; padding:14px 16px; border:1px solid var(--line); border-radius:var(--radius); background:var(--panel)}
.glance div{display:grid; gap:2px; min-width:0}
.glance dt{font-family:var(--font-mono); font-size:.75rem; color:var(--accent)}
.glance dd{margin:0; font-size:.9375rem}
.glossary{display:grid; grid-template-columns:repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap:12px; margin:24px 0 0; padding:0}
.glossary div{border:1px solid var(--line); border-radius:var(--radius); padding:12px 14px; background:var(--bg-2); min-width:0}
.glossary dt{font-family:var(--font-display); font-size:var(--step-1); color:var(--fg)}
.glossary dd{margin:2px 0 0; color:var(--muted)}
.gloss-title{font-family:var(--font-mono); font-size:var(--step--1); color:var(--muted); margin:32px 0 0}
/* fun layer */
:root{--bit-h:80px}
@media (max-width:560px){:root{--bit-h:64px}}
body[data-fun="off"] .bit, body[data-fun="off"] .bit-bubble, body[data-fun="off"] .bit-chat, body[data-fun="off"] .achv{display:none!important}
.fun-toggle{font-family:var(--font-mono); font-size:.75rem; padding:5px 10px; border:1px solid var(--line); border-radius:4px; background:transparent; color:var(--muted); cursor:pointer}
.fun-toggle[aria-pressed="true"]{color:var(--fg); border-color:var(--accent)}
.head-tools{display:flex; gap:8px; align-items:center; flex-wrap:wrap}
.gen{display:flex; gap:6px; align-items:center; flex:1 1 240px; min-width:0}
.gen label{white-space:nowrap}
.gen input{flex:1; min-width:0; font-family:var(--font-mono); font-size:.8125rem; padding:4px 8px; border:1px solid var(--line); border-radius:3px; background:var(--panel); color:var(--fg); text-transform:uppercase}
.gen input::placeholder{text-transform:none; color:var(--muted)}
#hero-canvas{touch-action:pan-y; cursor:crosshair}
.bit{position:fixed; right:max(16px, env(safe-area-inset-right, 0px)); bottom:calc(16px + env(safe-area-inset-bottom, 0px)); z-index:40; background:var(--panel); border:1px solid var(--line); border-radius:8px; padding:6px; cursor:pointer; box-shadow:0 8px 24px -10px rgba(0,0,0,.45); line-height:0}
.bit:hover{border-color:var(--accent)}
.bit canvas{display:block; image-rendering:pixelated; animation:bob 1.4s steps(2) infinite}
.bit.dizzy canvas{animation:spin .4s steps(4) 4}
@keyframes bob{50%{transform:translateY(-3px)}}
@keyframes spin{to{transform:rotate(360deg)}}
.bit-bubble{position:fixed; right:calc(max(16px, env(safe-area-inset-right, 0px)) + 6px); bottom:calc(var(--bit-h) + 26px + env(safe-area-inset-bottom, 0px)); z-index:41; max-width:min(280px, calc(100vw - 48px)); background:var(--fg); color:var(--bg); font-family:var(--font-mono); font-size:.8125rem; line-height:1.45; padding:10px 12px; border-radius:6px; cursor:pointer}
.bit-bubble::after{content:""; position:absolute; right:22px; bottom:-6px; border:6px solid transparent; border-top-color:var(--fg); border-bottom:0}
.bit-chat{position:fixed; right:max(16px, env(safe-area-inset-right, 0px)); bottom:calc(var(--bit-h) + 26px + env(safe-area-inset-bottom, 0px)); z-index:42; width:min(380px, calc(100vw - 32px)); max-height:min(560px, calc(100vh - var(--bit-h) - 120px)); display:flex; flex-direction:column; background:var(--panel); border:1px solid var(--line); border-radius:8px; box-shadow:0 16px 40px -16px rgba(0,0,0,.5)}
.bc-head,.bc-chips,.bc-form,.bc-achv{flex:none}
@media (max-width:560px){header.top{position:static}}
.bc-head{display:flex; justify-content:space-between; align-items:center; gap:8px; padding:10px 12px; border-bottom:1px solid var(--line)}
.bc-head b{font-family:var(--font-display); font-weight:400; font-size:1.125rem}
.bc-head span{display:block; font-family:var(--font-mono); font-size:.6875rem; color:var(--muted)}
.bc-tools{display:flex; gap:6px; flex-wrap:wrap; justify-content:flex-end}
.bc-tools .replay{font-family:var(--font-mono); font-size:.6875rem}
.bc-achv{padding:10px 12px; border-bottom:1px solid var(--line); display:grid; gap:6px; font-family:var(--font-mono); font-size:.75rem; max-height:170px; overflow:auto}
.bc-achv .a{display:flex; gap:8px}
.bc-achv .a b{color:var(--accent); font-weight:500}
.bc-achv .a.locked{color:var(--muted)}
.bc-log{flex:1; overflow:auto; padding:12px; display:flex; flex-direction:column; gap:10px; min-height:140px}
.bm{max-width:88%; padding:8px 11px; border-radius:6px; font-size:.875rem; line-height:1.45; overflow-wrap:anywhere}
.bm.user{align-self:flex-end; background:var(--fg); color:var(--bg)}
.bm.bot{align-self:flex-start; background:var(--bg-2); border:1px solid var(--line)}
.bm.typing::after{content:"▍"; color:var(--accent); animation:blink 1s steps(2) infinite}
.bm .acts{display:flex; flex-wrap:wrap; gap:6px; margin-top:8px}
.bm .acts .replay{font-family:var(--font-mono); font-size:.6875rem; color:var(--fg)}
.bc-chips{display:flex; gap:6px; overflow-x:auto; padding:8px 12px; border-top:1px solid var(--line)}
.bc-chips button{flex:none; font-family:var(--font-mono); font-size:.75rem; padding:5px 9px; border:1px solid var(--line); border-radius:4px; background:transparent; color:var(--fg); cursor:pointer}
.bc-chips button:hover{border-color:var(--accent)}
.bc-form{display:flex; gap:8px; padding:10px 12px; border-top:1px solid var(--line)}
.bc-form input{flex:1; min-width:0; font-family:var(--font-body); font-size:.875rem; padding:8px 10px; border:1px solid var(--line); border-radius:4px; background:var(--bg-2); color:var(--fg)}
.achv{position:fixed; top:calc(env(safe-area-inset-top, 0px) + 76px); right:max(16px, env(safe-area-inset-right, 0px)); z-index:60; display:grid; gap:2px; background:var(--panel); border:1px solid var(--accent); border-radius:6px; padding:10px 14px; font-family:var(--font-mono); font-size:.8125rem; max-width:calc(100vw - 32px); animation:pop .35s steps(3)}
.achv small{color:var(--accent); text-transform:uppercase; letter-spacing:.06em; font-size:.6875rem}
@keyframes pop{from{transform:translateY(-10px); opacity:0}}
.confetti{position:fixed; inset:0; pointer-events:none; z-index:70}
.sr{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap}
@media (prefers-reduced-motion: reduce){.bit canvas,.bit.dizzy canvas,.achv,.bm.typing::after{animation:none}}
/* big Bit in the hero */
.bit-stage{display:grid; justify-items:center; align-content:center; gap:14px; min-width:0; padding-block:8px}
.bs-bubble{position:relative; max-width:300px; min-height:3.4em; background:var(--panel); border:1px solid var(--line); border-radius:8px; padding:10px 14px; font-family:var(--font-mono); font-size:.8125rem; line-height:1.45; text-align:center}
.bs-bubble::after{content:""; position:absolute; left:50%; bottom:-7px; width:12px; height:12px; background:var(--panel); border-right:1px solid var(--line); border-bottom:1px solid var(--line); transform:translateX(-50%) rotate(45deg)}
.bs-ride{position:relative; display:grid; justify-items:center; animation:bob 1.6s steps(2) infinite}
.bs-bit{background:none; border:0; padding:0; cursor:pointer; line-height:0; position:relative; z-index:1}
.bs-bit:focus-visible{outline-offset:6px}
.bs-bit canvas{display:block; image-rendering:pixelated; transform-origin:50% 100%}
.bs-bit.jump canvas{animation:jump .75s cubic-bezier(.3,.7,.4,1)}
.bs-bit.shake canvas{animation:shake .5s steps(6)}
.bs-bit.dizzy canvas{animation:spin .42s steps(4) 4}
@keyframes jump{0%{transform:scale(1.15,.82)}30%{transform:translateY(-46px) scale(.9,1.12)}60%{transform:translateY(-18px)}82%{transform:scale(1.12,.88)}100%{transform:none}}
@keyframes shake{25%{transform:rotate(-8deg)}50%{transform:rotate(8deg)}75%{transform:rotate(-5deg)}}
.bs-rover{width:170px; height:16px; margin-top:-4px; background:var(--fg); border-radius:4px; position:relative; box-shadow:0 12px 22px -6px var(--cyan)}
.bs-rover::before{content:""; position:absolute; left:12px; right:12px; top:4px; height:4px; background:var(--accent)}
.bs-rover::after{content:""; position:absolute; left:22px; right:22px; bottom:-6px; height:4px; background:var(--cyan); opacity:.8; animation:blink 1s steps(2) infinite}
.bs-actions{display:flex; gap:8px; flex-wrap:wrap; justify-content:center}
.bs-note{margin:0; max-width:300px; text-align:center; font-size:var(--step--1); color:var(--muted)}
.heart{position:absolute; pointer-events:none; color:var(--accent); z-index:2; animation:heart 1.3s ease-out forwards}
@keyframes heart{0%{transform:translate(0,0) scale(.6); opacity:0}15%{opacity:1}100%{transform:translate(var(--hx), -110px) scale(1.3); opacity:0}}
@media (max-width:560px){.bs-rover{width:136px}}
body[data-fun="off"] .bit-stage{display:none!important}
body:not([data-fun="off"]) .fun-off-only{display:none!important}
@media (min-width:900px){
  body:not([data-fun="off"]) .hero:not(.has-video){grid-template-columns:minmax(0,1fr) 340px; column-gap:40px}
  body:not([data-fun="off"]) .hero:not(.has-video) .status, body:not([data-fun="off"]) .hero:not(.has-video) .canvas-box{grid-column:1 / -1}
  body:not([data-fun="off"]) .hero:not(.has-video) .hero-text{grid-column:1}
  body:not([data-fun="off"]) .hero:not(.has-video) .bit-stage{grid-column:2; grid-row:3}
  .hero.has-video .bit-stage{grid-column:2; grid-row:3}
}
.bit{transition:opacity .25s, transform .25s}
body.bit-docked:not(.chat-open) .bit{opacity:0; pointer-events:none; transform:scale(.6)}
html.world-open .bit, html.world-open .bit-bubble, html.world-open .bit-chat{display:none!important}
html.world-open, html.world-open body{overflow:hidden}
@media (prefers-reduced-motion: reduce){.bs-ride,.bs-bit canvas,.heart,.bs-rover::after{animation:none!important}}

/* 3D world: a deliberate single dusk look, whatever the page theme */
.world{position:fixed; inset:0; z-index:45; overflow:hidden; touch-action:none; outline:none;
  --bg:#1d1a33; --bg-2:#15132a; --panel:#24203f; --line:#3a3560; --fg:#efeaff; --muted:#a9a3c4; --accent:#ffb340; --accent-ink:#1b1205; --cyan:#7fd4e0; --violet:#b9a3ff;
  background:#1d1a33; color:#efeaff; color-scheme:dark; font-family:var(--font-mono)}
#world-canvas{display:block; width:100%; height:100%}
.w-labels{position:absolute; inset:0; pointer-events:none; overflow:hidden}
.w-label{position:absolute; left:0; top:0; white-space:nowrap; color:#fff; font-family:var(--font-display); font-size:1rem; text-shadow:0 2px 0 rgba(0,0,0,.55); will-change:transform}
.w-label.big{font-size:1.6rem; color:#ffb340}
.w-label.small{font-family:var(--font-mono); font-size:.75rem; background:rgba(10,8,24,.6); padding:2px 7px; border-radius:3px}
.w-label.say{font-family:var(--font-mono); font-size:.8125rem; white-space:normal; width:max-content; max-width:min(260px, 70vw); background:#efeaff; color:#17142b; padding:8px 11px; border-radius:6px; text-shadow:none; line-height:1.4}
.w-top{position:absolute; top:calc(12px + env(safe-area-inset-top, 0px)); left:max(12px, env(safe-area-inset-left, 0px)); right:max(12px, env(safe-area-inset-right, 0px)); display:flex; gap:8px; flex-wrap:wrap; align-items:center}
.w-btn{font-family:var(--font-mono); font-size:.8125rem; padding:7px 12px; border-radius:6px; border:1px solid #3a3560; background:rgba(30,26,56,.88); color:#efeaff; cursor:pointer}
.w-btn:hover{border-color:#ffb340}
.w-zones{display:flex; gap:6px; flex-wrap:wrap}
.w-tokens{margin-left:auto; padding:7px 10px; border-radius:6px; border:1px solid #3a3560; background:rgba(30,26,56,.88); font-size:.8125rem; font-variant-numeric:tabular-nums}
.w-tip{position:absolute; left:50%; top:calc(70px + env(safe-area-inset-top, 0px)); transform:translateX(-50%); width:max-content; max-width:calc(100vw - 24px); background:rgba(30,26,56,.92); border:1px solid #3a3560; border-radius:6px; padding:8px 12px; font-size:.8125rem; line-height:1.5; text-align:center}
.w-tip b{color:#ffb340; font-weight:500}
.w-map{position:absolute; right:max(12px, env(safe-area-inset-right, 0px)); top:calc(var(--wtop, 40px) + 20px + env(safe-area-inset-top, 0px)); display:grid; gap:6px; justify-items:end}
.w-map-t{padding:4px 10px; font-size:.75rem}
.w-map-body{width:190px; aspect-ratio:1; max-width:calc(100vw - 24px); border-radius:8px; overflow:hidden; background:rgba(20,18,40,.85); border:1px solid #3a3560; box-shadow:0 10px 24px -12px rgba(0,0,0,.6)}
.w-map.closed .w-map-body{display:none}
.w-map canvas{display:block; width:100%; height:100%; cursor:pointer}
@media (max-width:560px){.w-map-body{width:140px}}
.w-card{position:absolute; left:50%; bottom:calc(16px + env(safe-area-inset-bottom, 0px)); transform:translateX(-50%); width:min(580px, calc(100vw - 24px)); max-height:46vh; overflow:auto; background:rgba(30,26,56,.94); border:1px solid #3a3560; border-radius:10px; padding:14px 16px; font-family:var(--font-body); animation:pop .3s steps(3)}
.w-card h3{margin:2px 0; font-family:var(--font-display); font-weight:400; font-size:1.375rem; color:#fff; text-wrap:balance}
.w-card .k{font-family:var(--font-mono); font-size:.6875rem; color:#ffb340; text-transform:uppercase; letter-spacing:.06em}
.w-card .org{font-family:var(--font-mono); font-size:.75rem; color:#a9a3c4}
.w-card p{margin:8px 0; color:#d9d3ee; font-size:.9375rem; line-height:1.5}
.w-card .sel{user-select:all; color:#fff}
.w-card .row{display:flex; gap:8px; flex-wrap:wrap; margin-top:10px}
.w-card .chips{margin-top:6px}
.w-posts{list-style:none; margin:8px 0 0; padding:0; display:grid; gap:6px}
.w-posts li{display:flex; justify-content:space-between; align-items:baseline; gap:10px; flex-wrap:wrap; padding:7px 0; border-bottom:1px dashed #3a3560}
.w-posts span{font-family:var(--font-mono); font-size:.75rem; color:#a9a3c4}
.w-link{font:inherit; font-weight:600; color:#fff; background:none; border:0; padding:0; text-align:left; cursor:pointer; text-decoration:underline; text-decoration-color:#ffb340; text-underline-offset:4px}
.w-link:hover{color:#ffb340}
.w-ans{margin:8px 0; color:#d9d3ee; font-size:.9375rem; line-height:1.6}
.w-ans p,.w-ans ul,.w-ans ol{margin:0 0 .7em}
.w-ans :not(pre) > code{font-family:var(--font-mono); font-size:.85em; background:#15132a; border:1px solid #3a3560; border-radius:3px; padding:.05em .3em}
.w-ans pre{background:#15132a; border:1px solid #3a3560; border-radius:6px; padding:10px 12px; overflow-x:auto; font-size:.8rem}
.w-pad{position:absolute; left:max(14px, env(safe-area-inset-left, 0px)); bottom:calc(14px + env(safe-area-inset-bottom, 0px)); display:grid; grid-template-columns:repeat(3, 52px); grid-template-rows:repeat(2, 52px); gap:6px}
.w-pad button{font-family:var(--font-mono); font-size:1rem; border-radius:8px; border:1px solid #3a3560; background:rgba(30,26,56,.85); color:#fff; touch-action:none; user-select:none; -webkit-user-select:none}
.w-pad button:active{background:#ffb340; color:#1b1205}
.w-pad .up{grid-column:2; grid-row:1} .w-pad .left{grid-column:1; grid-row:2} .w-pad .down{grid-column:2; grid-row:2} .w-pad .right{grid-column:3; grid-row:2}
.w-pad .hopb{grid-column:1; grid-row:1; font-size:.6875rem} .w-pad .boostb{grid-column:3; grid-row:1; font-size:.6875rem}
@media (pointer:fine){.w-pad{display:none}}
@media (pointer:coarse){.w-card{bottom:calc(136px + env(safe-area-inset-bottom, 0px)); max-height:38vh}}
.w-loading{position:absolute; inset:0; display:grid; place-items:center; background:#1d1a33; text-align:center; padding:24px}
.w-load-inner{display:grid; gap:14px; justify-items:center; font-family:var(--font-display); font-size:1.375rem}
.w-load-inner small{font-family:var(--font-mono); font-size:.75rem; color:#a9a3c4; max-width:40ch}
.w-bar{width:180px; height:12px; border:2px solid #ffb340; padding:2px}
.w-bar i{display:block; height:100%; width:30%; background:#ffb340; animation:load 1.2s steps(8) infinite}
@keyframes load{0%{width:5%}100%{width:100%}}
/* blog */
.posts{display:grid; grid-template-columns:repeat(auto-fill, minmax(min(100%, 330px), 1fr)); gap:20px}
.post-card{display:flex; flex-direction:column; gap:10px; padding:18px; border:1px solid var(--line); border-radius:var(--radius); background:var(--panel); min-width:0; transition:border-color .2s, transform .2s}
.post-card:hover{border-color:var(--accent)}
.post-card h3{margin:0; font-family:var(--font-display); font-weight:400; font-size:var(--step-1); line-height:1.25; text-wrap:balance}
.post-card h3 a{text-decoration:none}
.post-card h3 a:hover{color:var(--accent)}
.post-card p{margin:0; color:var(--muted)}
.post-card .btn{align-self:flex-start; margin-top:auto}
.pc-meta{font-size:.75rem; color:var(--muted)}
.pc-sample{color:var(--accent)}
.pc-more{grid-column:1 / -1; display:flex; justify-content:center}
html.reader-open, html.reader-open body{overflow:hidden}
.reader{position:fixed; inset:0; z-index:47; overflow-y:auto; background:var(--bg); outline:none; overscroll-behavior:contain}
.rd-bar{position:sticky; top:0; z-index:2; display:flex; justify-content:space-between; align-items:center; gap:8px; flex-wrap:wrap; padding-top:calc(10px + env(safe-area-inset-top, 0px)); padding-bottom:10px; padding-left:max(16px, env(safe-area-inset-left, 0px)); padding-right:max(16px, env(safe-area-inset-right, 0px)); background:color-mix(in srgb, var(--bg) 92%, transparent); backdrop-filter:blur(8px); border-bottom:1px solid var(--line)}
.rd-share{display:flex; gap:6px; flex-wrap:wrap}
.rd-progress{position:absolute; left:0; right:0; bottom:-1px; height:3px}
.rd-progress i{display:block; height:100%; width:0; background:var(--accent)}
.rd-article{max-width:72ch; margin:0 auto; padding-block:40px 80px; padding-left:max(16px, env(safe-area-inset-left, 0px)); padding-right:max(16px, env(safe-area-inset-right, 0px))}
.rd-head{display:grid; gap:10px; padding-bottom:24px; margin-bottom:8px; border-bottom:1px solid var(--line)}
.rd-head h1{margin:0; font-family:var(--font-display); font-weight:600; font-size:clamp(1.9rem, 5vw, 2.8rem); line-height:1.1; text-wrap:balance}
.rd-sum{margin:0; font-size:var(--step-1); color:var(--muted); line-height:1.5}
.rd-body{font-size:1.0625rem; line-height:1.75}
.rd-body h2{font-size:1.5rem; line-height:1.25; margin:2em 0 .5em; text-wrap:balance}
.rd-body h3,.rd-body h4,.rd-body h5{font-size:1.2rem; margin:1.6em 0 .4em}
.rd-body p,.rd-body ul,.rd-body ol{margin:0 0 1.1em}
.rd-body li{margin:.3em 0}
.rd-body a, .qa-body a{color:var(--accent); text-underline-offset:3px}
.rd-body :not(pre) > code, .qa-body :not(pre) > code{font-family:var(--font-mono); font-size:.88em; background:var(--bg-2); border:1px solid var(--line); border-radius:3px; padding:.05em .35em}
.rd-body pre, .qa-body pre{margin:0 0 1.2em; padding:14px 16px; overflow-x:auto; background:var(--bg-2); border:1px solid var(--line); border-radius:var(--radius); font-family:var(--font-mono); font-size:.85rem; line-height:1.6}
.rd-body pre code, .qa-body pre code{font-family:inherit}
.rd-body blockquote{margin:0 0 1.2em; padding:4px 0 4px 16px; border-left:3px solid var(--accent); color:var(--muted)}
.rd-body hr{border:0; border-top:1px solid var(--line); margin:2em 0}
.rd-body img{border-radius:var(--radius); border:1px solid var(--line)}
.tbl{overflow-x:auto; margin:0 0 1.2em; border:1px solid var(--line); border-radius:var(--radius)}
.tbl table{border-collapse:collapse; width:100%; font-size:.9375rem}
.tbl th,.tbl td{text-align:left; vertical-align:top; padding:9px 12px; border-bottom:1px solid var(--line)}
.tbl th{font-family:var(--font-mono); font-weight:500; font-size:.8125rem; color:var(--muted); background:var(--bg-2)}
.tbl tr:last-child td{border-bottom:0}
.rd-sources{margin-top:40px; padding:16px 18px; border:1px solid var(--line); border-radius:var(--radius); background:var(--panel)}
.rd-sources h2{margin:0 0 8px; font-family:var(--font-mono); font-size:.75rem; font-weight:500; text-transform:uppercase; letter-spacing:.06em; color:var(--accent)}
.rd-sources ul{margin:0; padding-left:18px}
.rd-sources a{color:var(--fg)}
.rd-nav{display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-top:28px}
.rd-nav .btn{max-width:100%; white-space:normal; text-align:left}
/* interview Q&A */
.qa-tools{display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-bottom:14px}
.qa-tools input{flex:1 1 240px; min-width:0; font-family:var(--font-body); font-size:.9375rem; padding:8px 12px; border:1px solid var(--line); border-radius:4px; background:var(--panel); color:var(--fg)}
.qa-tools select{font-family:var(--font-mono); font-size:var(--step--1); padding:7px 10px; border:1px solid var(--line); border-radius:4px; background:var(--panel); color:var(--fg)}
.qa-count{font-size:.75rem; margin:0 0 10px}
.qa-more{font-family:var(--font-mono); font-size:var(--step--1); padding:6px 12px; border-radius:4px; border:1px dashed var(--line); background:transparent; color:var(--accent); cursor:pointer}
.qa-list{display:grid; gap:10px}
.qa-item{border:1px solid var(--line); border-radius:var(--radius); background:var(--panel); scroll-margin-top:90px; transition:border-color .2s}
.qa-item[open]{border-color:color-mix(in srgb, var(--accent) 55%, var(--line))}
.qa-item.flash{border-color:var(--accent); animation:qaflash 1.2s steps(4)}
@keyframes qaflash{0%,50%{background:color-mix(in srgb, var(--accent) 14%, var(--panel))}}
.qa-item summary{list-style:none; display:flex; gap:12px; align-items:baseline; padding:14px 16px; cursor:pointer}
.qa-item summary::-webkit-details-marker{display:none}
.qa-n{font-size:.75rem; color:var(--muted); flex:none}
.qa-q{flex:1; min-width:0; font-weight:600; font-size:1.0625rem; line-height:1.4}
.qa-chev{flex:none; font-family:var(--font-mono); color:var(--accent); font-size:1.1rem; line-height:1; transition:transform .2s}
.qa-item[open] .qa-chev{transform:rotate(45deg)}
.lvl{flex:none; font-family:var(--font-mono); font-size:.6875rem; padding:2px 8px; border-radius:3px; border:1px solid currentColor; text-transform:uppercase; letter-spacing:.05em}
.lvl-easy{color:var(--cyan)} .lvl-medium{color:var(--accent)} .lvl-hard{color:var(--violet)}
.qa-a{padding:0 16px 16px 46px; min-width:0}
.qa-body{line-height:1.7; max-width:75ch}
.qa-body p,.qa-body ul,.qa-body ol{margin:0 0 .9em}
.qa-meta{display:flex; gap:10px; align-items:center; flex-wrap:wrap; padding-top:10px; border-top:1px dashed var(--line)}
.qa-src{font-family:var(--font-mono); font-size:.75rem; color:var(--muted)}
.qa-meta .replay{font-family:var(--font-mono); font-size:.6875rem; margin-left:auto}
@media (max-width:560px){.qa-a{padding-left:16px}.qa-item summary{flex-wrap:wrap}.lvl{order:3}}
/* visits + likes */
.like-btn{display:inline-flex; align-items:center; gap:8px; font-family:var(--font-mono); font-size:var(--step--1); padding:7px 12px; border-radius:6px; border:1px solid var(--line); background:var(--panel); color:var(--fg); cursor:pointer; line-height:1.2; transition:border-color .2s, transform .15s}
.like-btn:hover{border-color:var(--accent)}
.like-btn:active{transform:scale(.94)}
.like-btn .lh{display:inline-flex; color:var(--muted); transition:color .2s, transform .2s}
.like-btn .lh svg{width:17px; height:15px}
.like-btn .lc{font-variant-numeric:tabular-nums; color:var(--muted); padding-left:8px; border-left:1px solid var(--line)}
.like-btn[aria-pressed="true"]{border-color:var(--accent); background:color-mix(in srgb, var(--accent) 14%, var(--panel))}
.like-btn[aria-pressed="true"] .lh{color:var(--accent); transform:scale(1.12)}
.like-btn.big{font-size:.9375rem; padding:10px 16px}
.like-btn.big .lh svg{width:21px; height:18px}
.like-card{display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-top:4px; padding:14px 16px; border:1px dashed var(--line); border-radius:var(--radius)}
.like-card b{font-family:var(--font-display); font-weight:400; font-size:var(--step-1)}
.like-note{margin:2px 0 0; font-size:var(--step--1); color:var(--muted)}
.foot-like .like-btn{padding:4px 10px; font-size:.75rem}
.burst{position:fixed; z-index:80; pointer-events:none; color:var(--accent); animation:heart 1.4s ease-out forwards}
.like-nudge{position:fixed; z-index:43; right:max(16px, env(safe-area-inset-right, 0px)); bottom:calc(var(--bit-h) + 30px + env(safe-area-inset-bottom, 0px)); width:min(340px, calc(100vw - 32px)); padding:14px 16px; background:var(--panel); border:1px solid var(--accent); border-radius:8px; box-shadow:0 16px 40px -16px rgba(0,0,0,.5); animation:pop .35s steps(3)}
body[data-fun="off"] .like-nudge, body.bit-docked:not(.chat-open) .like-nudge{bottom:calc(16px + env(safe-area-inset-bottom, 0px))}
.like-nudge p{margin:0 0 12px; font-size:.9375rem; line-height:1.5}
.nudge-row{display:flex; gap:8px; align-items:center; flex-wrap:wrap}
html.world-open .like-nudge, html.reader-open .like-nudge{display:none!important}
.w-card .like-btn{background:rgba(30,26,56,.88); border-color:#3a3560; color:#efeaff}
.w-card .like-btn .lc{border-color:#3a3560; color:#a9a3c4}
@media (prefers-reduced-motion: reduce){.like-nudge{animation:none}.like-btn,.like-btn .lh{transition:none}}
/* reader feedback: helpful votes, ask forms, contact form, also-on links */
.skip{position:absolute; left:-9999px; top:8px; z-index:100; background:var(--accent); color:var(--accent-ink); padding:8px 12px; border-radius:4px}
.skip:focus{left:max(16px, env(safe-area-inset-left, 0px))}
.foot-links{display:flex; gap:14px; flex-wrap:wrap}
.foot-links a{color:var(--muted); text-decoration:none}
.foot-links a:hover{color:var(--fg)}
.also{display:flex; gap:8px 14px; flex-wrap:wrap; align-items:center; margin-top:22px; font-family:var(--font-mono); font-size:var(--step--1); color:var(--muted)}
.also a{color:var(--fg)}
.hf{display:flex; align-items:center; gap:8px 10px; flex-wrap:wrap; margin-top:24px; padding:12px 14px; border:1px solid var(--line); border-radius:var(--radius); background:var(--panel)}
.qa-a .hf{margin-top:12px; padding:8px 10px; background:transparent}
.hf b{font-weight:600; font-size:.9375rem}
.hf .replay{font-family:var(--font-mono); font-size:.75rem; padding:4px 10px}
.hf .replay[aria-pressed="true"]{border-color:var(--accent); color:var(--fg); background:color-mix(in srgb, var(--accent) 16%, transparent)}
.hf-n{font-size:var(--step--1); color:var(--muted)}
.ask-toggle{margin-top:10px; font-family:var(--font-mono); font-size:.75rem}
.ask{margin-top:24px; padding:16px 18px; border:1px dashed var(--line); border-radius:var(--radius); display:grid; gap:10px; position:relative}
.qa-a .ask{margin-top:10px}
.ask h2{font-family:var(--font-display); font-weight:400; font-size:var(--step-1); margin:0}
.ask .lead{margin:-4px 0 0; color:var(--muted); font-size:var(--step--1)}
.ask label{display:grid; gap:4px; font-family:var(--font-mono); font-size:.75rem; color:var(--muted)}
.ask label i{font-style:normal}
.ask input,.ask textarea{font-family:var(--font-body); font-size:.9375rem; padding:9px 11px; border:1px solid var(--line); border-radius:4px; background:var(--bg-2); color:var(--fg); width:100%; min-width:0}
.ask textarea{min-height:104px; resize:vertical; line-height:1.5}
.ask input:focus-visible,.ask textarea:focus-visible{outline:2px solid var(--accent); outline-offset:1px}
.ask .row2{display:grid; grid-template-columns:1fr 1fr; gap:10px}
@media (max-width:560px){.ask .row2{grid-template-columns:1fr}}
.ask .hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden}
.ask .actions{display:flex; align-items:center; gap:12px; flex-wrap:wrap}
.ask-status{font-size:var(--step--1); color:var(--muted)}
.ask .privacy{margin:0; font-size:.75rem; color:var(--muted)}
.ask .privacy a{color:var(--muted)}
.ts-slot:empty{display:none}
.contact-form{margin:4px 0 16px; border-style:solid; background:var(--panel)}
body:not(.built) .privacy-link{display:none}
.seeing{font-size:var(--step--1); color:var(--fg)!important; border-left:2px solid var(--accent); padding-left:10px}
.canvas-bar{display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; padding:8px 12px; border-top:1px solid var(--line); font-family:var(--font-mono); font-size:var(--step--1); color:var(--muted)}
.canvas-bar output{font-variant-numeric:tabular-nums}
h1{font-family:var(--font-display); font-weight:600; font-size:var(--step-3); line-height:1.02; margin:8px 0 0; letter-spacing:.01em; text-wrap:balance}
.prompt{font-family:var(--font-mono); font-size:var(--step-0); color:var(--muted); margin:0}
.prompt span{color:var(--accent)}
.lede{max-width:60ch; font-size:var(--step-1); line-height:1.5; margin:0}
.cta{display:flex; gap:10px; flex-wrap:wrap; margin-top:4px}

.btn{font-family:var(--font-mono); font-size:var(--step--1); display:inline-flex; align-items:center; gap:6px; padding:8px 14px; border-radius:4px; border:1px solid var(--line); background:var(--panel); color:var(--fg); text-decoration:none; cursor:pointer; line-height:1.3}
.btn:hover{border-color:var(--muted)}
.btn.primary{background:var(--accent); color:var(--accent-ink); border-color:var(--accent); font-weight:500}
.btn.primary:hover{filter:brightness(1.08)}
.btn.ghost{background:transparent}
.btn.small{padding:6px 10px}

/* sections */
section.block{padding-block:56px}
.eyebrow{font-family:var(--font-mono); font-size:var(--step--1); color:var(--accent); letter-spacing:.06em; text-transform:uppercase; margin:0 0 8px}
h2{font-family:var(--font-display); font-weight:600; font-size:var(--step-2); line-height:1.1; margin:0 0 12px; text-wrap:balance}
.sub{color:var(--muted); max-width:62ch; margin:0 0 28px}

/* model card */
.card-table{border:1px solid var(--line); border-radius:var(--radius); background:var(--panel); overflow-x:auto}
.card-table table{width:100%; border-collapse:collapse; font-size:var(--step-0)}
.card-table th, .card-table td{text-align:left; vertical-align:top; padding:12px 16px; border-bottom:1px solid var(--line)}
.card-table tr:last-child th, .card-table tr:last-child td{border-bottom:0}
.card-table th{font-family:var(--font-mono); font-weight:400; font-size:var(--step--1); color:var(--muted); width:30%; white-space:nowrap}
@media (max-width:560px){.card-table tr{display:grid; padding:10px 14px; border-bottom:1px solid var(--line)}.card-table tr:last-child{border-bottom:0}.card-table th,.card-table td{display:block; width:auto; padding:2px 0; border:0; white-space:normal}}
.chips{display:flex; flex-wrap:wrap; gap:6px}
.chip{font-family:var(--font-mono); font-size:.75rem; padding:2px 8px; border:1px solid var(--line); border-radius:3px; color:var(--fg); background:var(--bg-2)}

/* journey */
.curve{border:1px solid var(--line); border-radius:var(--radius); background:var(--panel); padding:16px 16px 8px; margin-bottom:28px}
.curve-head{display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; font-family:var(--font-mono); font-size:var(--step--1); color:var(--muted)}
.curve svg{display:block; width:100%; height:auto}
.timeline{list-style:none; margin:0; padding:0; display:grid; gap:0}
.timeline li{display:grid; grid-template-columns:120px 1fr; gap:20px; padding-block:20px; border-top:1px solid var(--line)}
.timeline li:last-child{border-bottom:1px solid var(--line)}
.epoch{font-family:var(--font-mono); font-size:var(--step--1); color:var(--muted); display:grid; gap:2px; align-content:start}
.epoch strong{font-family:var(--font-display); font-weight:400; font-size:var(--step-1); color:var(--accent)}
.tl-body{min-width:0}
.tl-body h3{margin:0; font-size:var(--step-1); font-weight:600; line-height:1.3}
.tl-body .org{font-family:var(--font-mono); font-size:var(--step--1); color:var(--muted); margin:2px 0 8px}
.tl-body p{margin:0 0 10px; max-width:64ch}
.timeline li.now .epoch strong::after{content:" ▍"; animation:blink 1s steps(2) infinite}
@media (max-width:560px){.timeline li{grid-template-columns:1fr; gap:6px}.epoch{grid-auto-flow:column; justify-content:start; gap:12px; align-items:baseline}}

/* projects */
.filters{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:20px}
.filters button{font-family:var(--font-mono); font-size:var(--step--1); padding:6px 12px; border-radius:4px; border:1px solid var(--line); background:transparent; color:var(--muted); cursor:pointer}
.filters button[aria-pressed="true"]{background:var(--fg); color:var(--bg); border-color:var(--fg)}
.filters button .n{opacity:.6; margin-left:4px}
.grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(min(100%, 440px), 1fr)); gap:20px}
.proj{border:1px solid var(--line); border-radius:var(--radius); background:var(--panel); display:flex; flex-direction:column; min-width:0; scroll-margin-top:80px; transition:border-color .2s}
.proj.flash{border-color:var(--accent)}
.preview{border-bottom:1px solid var(--line); background:var(--bg-2); border-radius:var(--radius) var(--radius) 0 0; overflow:hidden}
.pbar{display:flex; align-items:center; justify-content:space-between; gap:8px; padding:6px 10px; border-bottom:1px solid var(--line); font-family:var(--font-mono); font-size:.75rem; color:var(--muted)}
.pbar .lights{display:flex; gap:5px}
.pbar .lights i{width:8px; height:8px; background:var(--line); display:block}
.pbar .badge{display:inline-flex; align-items:center; gap:6px}
.pbar .badge.live::before{content:""; width:7px; height:7px; background:var(--cyan)}
.pbar .badge.rec::before{content:""; width:7px; height:7px; border:1px solid var(--muted)}
.replay{font:inherit; color:var(--muted); background:none; border:1px solid var(--line); border-radius:3px; padding:1px 8px; cursor:pointer}
.replay:hover{color:var(--fg); border-color:var(--muted)}
.stage{height:230px; overflow:auto; padding:12px 14px; font-family:var(--font-mono); font-size:.8125rem; line-height:1.55}
.stage.pix{padding:0; display:grid; place-items:center; overflow:hidden}
.stage.pix canvas{display:block; image-rendering:pixelated; max-width:100%}
.stage.img{padding:0}
.stage.img img{width:100%; height:100%; object-fit:cover; display:block}
.stage.calc{display:grid; gap:10px; align-content:start; font-family:var(--font-mono)}
.calc-row{display:grid; gap:4px}
.calc-row label{display:flex; justify-content:space-between; gap:8px; color:var(--muted); font-size:.75rem}
.calc-row output{color:var(--fg); font-variant-numeric:tabular-nums}
.calc-row select{font:inherit; font-size:.8125rem; padding:5px 8px; background:var(--panel); color:var(--fg); border:1px solid var(--line); border-radius:4px; min-width:0; width:100%}
.calc-row input[type=range]{width:100%; accent-color:var(--accent)}
.calc-out{display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:8px; border-top:1px solid var(--line); padding-top:10px}
.calc-out div{display:grid; gap:2px; min-width:0}
.calc-out span{font-size:.6875rem; color:var(--muted)}
.calc-out b{font-weight:500; color:var(--accent); font-variant-numeric:tabular-nums; overflow-wrap:anywhere}
.calc-note{font-size:.6875rem; color:var(--muted)}
.term .in{color:var(--fg)}
.term .in::before{content:"$ "; color:var(--accent)}
.term .out{color:var(--muted); white-space:pre-wrap; word-break:break-word}
.term .ok{color:var(--cyan)}
.term .warn{color:var(--accent)}
.chat{display:flex; flex-direction:column; gap:10px; font-family:var(--font-body); font-size:.875rem}
.msg{max-width:88%; padding:8px 12px; border-radius:6px; line-height:1.45}
.msg.user{align-self:flex-end; background:var(--fg); color:var(--bg)}
.msg.assistant{align-self:flex-start; background:var(--panel); border:1px solid var(--line)}
.msg .src{display:block; margin-top:6px; font-family:var(--font-mono); font-size:.6875rem; color:var(--cyan)}
.caret::after{content:"▍"; color:var(--accent)}
.proj-body{padding:16px; display:flex; flex-direction:column; gap:10px; flex:1}
.proj-body h3{margin:0; font-size:var(--step-1); font-weight:600; line-height:1.25}
.proj-body p{margin:0; color:var(--muted)}
.proj-actions{display:flex; gap:8px; flex-wrap:wrap; margin-top:auto; padding-top:6px}

/* contact */
.contact{display:grid; grid-template-columns:1.2fr 1fr; gap:28px; align-items:start}
@media (max-width:760px){.contact{grid-template-columns:1fr}}
.terminal-box{border:1px solid var(--line); border-radius:var(--radius); background:var(--panel); padding:16px; font-family:var(--font-mono); font-size:var(--step--1); display:grid; gap:12px; min-width:0}
.row{display:flex; gap:8px; align-items:center; flex-wrap:wrap}
.row .k{color:var(--muted); width:84px; flex:none}
.row .v{user-select:all; word-break:break-all; min-width:0}
footer{border-top:1px solid var(--line); padding-block:24px; font-family:var(--font-mono); font-size:var(--step--1); color:var(--muted)}
footer .wrap{display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap}

/* modal */
.overlay{position:fixed; inset:0; z-index:50; background:color-mix(in srgb, var(--bg) 70%, transparent); backdrop-filter:blur(4px); display:grid; place-items:center; padding:max(16px, env(safe-area-inset-top, 0px)) max(16px, env(safe-area-inset-right, 0px)) max(16px, env(safe-area-inset-bottom, 0px)) max(16px, env(safe-area-inset-left, 0px))}
.modal{width:min(760px, 100%); max-height:100%; overflow:auto; background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); display:flex; flex-direction:column}
.modal-head{display:flex; justify-content:space-between; align-items:center; gap:12px; padding:14px 16px; border-bottom:1px solid var(--line)}
.modal-head h3{margin:0; font-family:var(--font-display); font-weight:400; font-size:var(--step-1)}
.modal-sec{padding:14px 16px; display:grid; gap:10px; border-bottom:1px solid var(--line)}
.modal-sec:last-child{border-bottom:0}
.field{display:flex; gap:8px; flex-wrap:wrap}
.field label{font-family:var(--font-mono); font-size:.75rem; color:var(--muted); width:100%}
.field input{flex:1 1 220px; min-width:0; font-family:var(--font-mono); font-size:var(--step--1); padding:8px 10px; border:1px solid var(--line); border-radius:4px; background:var(--bg-2); color:var(--fg)}
.code{border:1px solid var(--line); border-radius:4px; background:var(--bg-2); overflow:hidden}
.code-tab{display:flex; justify-content:space-between; align-items:center; gap:8px; padding:6px 10px; border-bottom:1px solid var(--line); font-family:var(--font-mono); font-size:.75rem; color:var(--muted)}
.code pre{margin:0; padding:12px 14px; overflow-x:auto; font-family:var(--font-mono); font-size:.8125rem; line-height:1.6}
.code pre code{font-family:inherit; background:none}
.hljs-keyword,.hljs-built_in,.hljs-selector-tag{color:var(--accent)}
.hljs-string,.hljs-regexp,.hljs-number,.hljs-literal{color:var(--cyan)}
.hljs-title,.hljs-title.function_,.hljs-title.class_{color:var(--violet)}
.hljs-comment{color:var(--muted); font-style:italic}
.hljs-attr,.hljs-property,.hljs-params,.hljs-variable{color:var(--fg)}
.toast{position:fixed; left:50%; bottom:calc(20px + env(safe-area-inset-bottom, 0px)); transform:translateX(-50%); z-index:60; background:var(--fg); color:var(--bg); font-family:var(--font-mono); font-size:var(--step--1); padding:8px 14px; border-radius:4px}
