  :root{
    --bg: oklch(0.10 0.015 260);
    --fg: oklch(0.96 0.005 260);
    --fg-dim: oklch(0.65 0.01 260);
    --fg-faint: oklch(0.40 0.01 260);
    --line: oklch(0.25 0.02 260 / .6);
    --line-strong: oklch(0.45 0.03 260 / .8);
    --cyan: oklch(0.85 0.15 200);
    --magenta: oklch(0.75 0.22 340);
    --lime: oklch(0.92 0.18 130);
    --amber: oklch(0.85 0.16 75);
    --mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, monospace;
    --sans: 'Inter', ui-sans-serif, system-ui, sans-serif;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  html,body{background:var(--bg);color:var(--fg);font-family:var(--sans)}
  .hero{cursor:crosshair}
  body{min-height:100vh}
  ::selection{background:var(--cyan);color:var(--bg)}
  canvas{display:block;position:fixed;inset:0;width:100vw;height:100vh;z-index:1}

  /* Hero anchor — first viewport reserved for the shader */
  .hero{position:relative;height:100vh;width:100%}

  /* HUD — fades out as user scrolls past hero */
  .hud{position:fixed;inset:0;pointer-events:none;z-index:10;font-family:var(--mono);font-size:11px;letter-spacing:.02em;color:var(--fg-dim);transition:opacity .4s}
  body.scrolled .hud{opacity:0}
  body.scrolled .crosshair{opacity:0;transition:opacity .3s}
  body.scrolled .title-wrap{opacity:0;transition:opacity .4s}
  body.scrolled .rail{opacity:0;transition:opacity .3s}
  body.scrolled .ticks{opacity:0;transition:opacity .3s}
  body.scrolled .scan{opacity:.02;transition:opacity .4s}
  /* Dock hides once user scrolls past hero */
  .dock{transition:opacity .3s,transform .3s,visibility .3s}
  body.scrolled .dock{opacity:0;transform:translateX(-50%) translateY(20px);visibility:hidden;pointer-events:none}
  .hud .corner{position:absolute;padding:18px 22px;text-transform:uppercase}
  .hud .tl{display:none}
  .hud .tr{display:none}
  .hud .bl{top:0;right:0;left:auto;bottom:auto;text-align:right}
  .hud .br{display:none}
  .hud .bl .nav{align-items:flex-end}
  .hud .bl .nav a{flex-direction:row-reverse;gap:6px}
  .hud .bl .nav a:hover .arrow{transform:translateX(-2px)}

  .id-block{display:flex;flex-direction:column;gap:2px}
  .id-block .name{color:var(--fg);font-size:13px;font-weight:500;letter-spacing:.04em}
  .id-block .role{color:var(--fg-faint)}
  .id-block .dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--lime);margin-right:6px;vertical-align:1px;box-shadow:0 0 8px var(--lime)}

  .readout{display:flex;flex-direction:column;gap:2px;align-items:flex-end}
  .readout .row{display:flex;gap:8px}
  .readout .k{color:var(--fg-faint)}
  .readout .v{color:var(--cyan);font-variant-numeric:tabular-nums;min-width:48px;text-align:right}

  .nav{display:flex;flex-direction:column;gap:2px}
  .nav a{pointer-events:auto;color:var(--fg-dim);text-decoration:none;display:flex;gap:8px;align-items:center;padding:2px 0;transition:color .15s}
  .nav a:hover{color:var(--fg)}
  .nav a .arrow{color:var(--fg-faint);transition:transform .15s,color .15s}
  .nav a:hover .arrow{color:var(--cyan);transform:translateX(2px)}

  .meta{display:flex;flex-direction:column;gap:2px;align-items:flex-end}
  .meta .pill{display:inline-flex;gap:6px;align-items:center;padding:3px 8px;border:.5px solid var(--line-strong);border-radius:999px;background:rgba(0,0,0,.25);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
  .meta .pill .key{color:var(--fg-faint)}
  .meta .pill kbd{font-family:var(--mono);font-size:10px;padding:1px 5px;border-radius:3px;background:rgba(255,255,255,.08);border:.5px solid var(--line-strong);color:var(--fg)}

  /* Center title block — frosted backplate makes it legible over any shader mode */
  .title-wrap{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:9;pointer-events:none;text-align:center;
    padding:48px 72px;border-radius:6px;
    background:radial-gradient(ellipse at center, rgba(10,10,16,.55) 0%, rgba(10,10,16,.25) 55%, rgba(10,10,16,0) 80%);
    -webkit-backdrop-filter:blur(18px) saturate(120%) brightness(.9);
    backdrop-filter:blur(18px) saturate(120%) brightness(.9);
    -webkit-mask-image:radial-gradient(ellipse at center, #000 30%, transparent 75%);
    mask-image:radial-gradient(ellipse at center, #000 30%, transparent 75%)}
  .title{font-family:var(--mono);font-weight:300;font-size:clamp(48px, 9vw, 132px);letter-spacing:-.04em;line-height:.95;
    color:oklch(0.98 0.005 260);
    text-shadow:0 1px 2px rgba(0,0,0,.6), 0 0 24px rgba(0,0,0,.45), 0 0 60px rgba(0,0,0,.3)}
  .title .accent{color:var(--cyan);text-shadow:0 0 18px oklch(0.85 0.15 200 / .5), 0 1px 2px rgba(0,0,0,.6)}
  .subtitle{margin-top:18px;font-family:var(--mono);font-size:11px;letter-spacing:.4em;text-transform:uppercase;
    color:oklch(0.85 0.01 260);text-shadow:0 1px 2px rgba(0,0,0,.7)}

  /* Crosshair tracking the mouse */
  .crosshair{position:fixed;width:80px;height:80px;left:0;top:0;transform:translate(-50%,-50%);pointer-events:none;z-index:8;mix-blend-mode:screen;opacity:.7}
  .crosshair svg{width:100%;height:100%;overflow:visible}
  .crosshair .ring{stroke:var(--cyan);fill:none;stroke-width:.5;opacity:.7}
  .crosshair .tick{stroke:var(--cyan);stroke-width:.5;opacity:.9}
  .crosshair .coord{font-family:var(--mono);font-size:9px;fill:var(--cyan);letter-spacing:.05em}

  /* Mode dock — bottom center */
  .dock{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:11;pointer-events:auto;
    display:flex;gap:1px;background:rgba(0,0,0,.3);border:.5px solid var(--line-strong);border-radius:10px;
    backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%);
    padding:4px;font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase}
  .dock button{appearance:none;border:0;background:transparent;color:var(--fg-dim);padding:8px 14px;border-radius:7px;cursor:pointer;font:inherit;letter-spacing:inherit;text-transform:inherit;transition:background .15s,color .15s;display:flex;align-items:center;gap:8px}
  .dock button:hover{color:var(--fg)}
  .dock button.active{background:rgba(255,255,255,.08);color:var(--fg)}
  .dock button .num{color:var(--fg-faint);font-size:9px}
  .dock button.active .num{color:var(--cyan)}
  .dock .sep{width:.5px;background:var(--line);margin:6px 2px}

  /* Scanline overlay */
  .scan{position:fixed;inset:0;pointer-events:none;z-index:7;opacity:.06;
    background:repeating-linear-gradient(0deg,transparent 0,transparent 2px,#fff 2px,#fff 3px);mix-blend-mode:overlay}

  /* Vignette */
  .vignette{position:fixed;inset:0;pointer-events:none;z-index:6;
    background:radial-gradient(ellipse at center, transparent 50%, rgba(0,0,0,.55) 100%)}

  /* Click hint pulse */
  @keyframes hintPulse{0%,100%{opacity:.4}50%{opacity:1}}
  .hint{animation:hintPulse 2.4s ease-in-out infinite}

  /* Toast for click events */
  .toast{position:fixed;left:50%;bottom:80px;transform:translateX(-50%);z-index:12;pointer-events:none;
    font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--lime);
    opacity:0;transition:opacity .3s}
  .toast.show{opacity:1}

  /* Side rail markers */
  .rail{position:fixed;top:50%;transform:translateY(-50%);z-index:8;font-family:var(--mono);font-size:9px;color:var(--fg-faint);letter-spacing:.1em}
  .rail.left{left:18px;writing-mode:vertical-rl;transform:translateY(-50%) rotate(180deg)}
  .rail.right{right:18px;writing-mode:vertical-rl}

  /* ticks along edges */
  .ticks{position:fixed;pointer-events:none;z-index:7}
  .ticks.top{top:0;left:50%;transform:translateX(-50%);width:60vw;height:14px;
    background-image:repeating-linear-gradient(90deg,var(--line) 0,var(--line) .5px,transparent .5px,transparent calc(100%/40))}
  .ticks.bottom{bottom:0;left:50%;transform:translateX(-50%);width:60vw;height:14px;
    background-image:repeating-linear-gradient(90deg,var(--line) 0,var(--line) .5px,transparent .5px,transparent calc(100%/40))}

  /* ─── Page chrome below the hero ───────────────────────────────── */
  /* Sticky top nav appears once user scrolls */
  .topnav{position:fixed;top:0;left:0;right:0;z-index:20;
    display:flex;align-items:center;justify-content:space-between;
    padding:14px 28px;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;
    background:linear-gradient(to bottom, rgba(10,10,16,.7), rgba(10,10,16,0));
    backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0);
    transform:translateY(-100%);transition:transform .35s cubic-bezier(.3,.7,.3,1),backdrop-filter .35s}
  body.scrolled .topnav{transform:translateY(0);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%)}
  .topnav .brand{color:var(--fg);font-weight:500;display:flex;align-items:center;gap:10px}
  .topnav .brand .pin{width:6px;height:6px;border-radius:50%;background:var(--lime);box-shadow:0 0 8px var(--lime)}
  .topnav nav{display:flex;gap:24px}
  .topnav nav a{color:var(--fg-dim);text-decoration:none;transition:color .15s}
  .topnav nav a:hover{color:var(--fg)}
  .topnav nav a.active{color:var(--cyan)}

  /* Section frame — main has its own atmosphere over the shader's void */
  main{position:relative;z-index:5;
    background:
      radial-gradient(ellipse 80% 50% at 50% 0%, oklch(0.14 0.025 260 / .4), transparent 70%),
      radial-gradient(ellipse 60% 40% at 80% 30%, oklch(0.16 0.03 200 / .25), transparent 60%),
      radial-gradient(ellipse 60% 40% at 20% 70%, oklch(0.16 0.03 340 / .2), transparent 60%),
      linear-gradient(to bottom, transparent 0, var(--bg) 8%, var(--bg) 100%)}
  /* faint dot grid behind content for that 'instrument paper' feel */
  main::before{content:'';position:absolute;inset:0;pointer-events:none;
    background-image:radial-gradient(rgba(255,255,255,.04) 1px, transparent 1px);
    background-size:32px 32px;
    -webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 8%, #000 92%, transparent 100%);
    mask-image:linear-gradient(to bottom, transparent 0, #000 8%, #000 92%, transparent 100%);
    opacity:.6}
  section{position:relative;padding:120px 32px;max-width:1280px;margin:0 auto}
  .section-head{display:grid;grid-template-columns:160px 1fr;gap:48px;margin-bottom:64px;align-items:baseline}
  .section-head .marker{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--fg-faint);
    border-top:.5px solid var(--line-strong);padding-top:10px}
  .section-head .marker .num{color:var(--cyan);display:block;font-size:10px;margin-bottom:4px}
  .section-head h2{font-family:var(--mono);font-weight:300;font-size:clamp(36px,5.5vw,72px);letter-spacing:-.03em;line-height:1;color:var(--fg);text-wrap:balance}
  .section-head h2 .accent{color:var(--cyan);font-style:italic;font-weight:400}
  .section-head h2 .accent-mag{color:var(--magenta);font-style:italic;font-weight:400}
  .section-head h2 .accent-amb{color:var(--amber);font-style:italic;font-weight:400}
  .section-head .lead{margin-top:18px;font-size:18px;line-height:1.5;color:var(--fg-dim);max-width:62ch;text-wrap:pretty}

  /* ─── About ─── */
  #about{padding-top:160px}
  .about-grid{display:grid;grid-template-columns:160px 1fr 1fr;gap:48px;align-items:start}
  .about-grid .col{display:flex;flex-direction:column;gap:14px}
  .about-grid p{font-size:17px;line-height:1.6;color:var(--fg-dim);text-wrap:pretty}
  .about-grid p strong{color:var(--fg);font-weight:500}
  .about-grid p .hi-cyan{color:var(--cyan)}
  .about-grid p .hi-mag{color:var(--magenta)}
  .about-grid p .hi-amb{color:var(--amber)}
  .about-grid .meta-list{font-family:var(--mono);font-size:12px;display:grid;grid-template-columns:max-content 1fr;gap:6px 18px;color:var(--fg-dim)}
  .about-grid .meta-list dt{color:var(--fg-faint);text-transform:uppercase;letter-spacing:.1em;font-size:10px;align-self:center}
  .about-grid .meta-list dd{color:var(--fg)}
  .about-grid .meta-list dd a{color:var(--cyan);text-decoration:none;border-bottom:.5px solid transparent;transition:border-color .15s}
  .about-grid .meta-list dd a:hover{border-color:var(--cyan)}

  /* ─── Timeline ─── */
  #timeline{padding-top:80px}
  .tl-wrap{display:grid;grid-template-columns:160px 1fr;gap:48px;position:relative}
  .tl-wrap > .marker{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--fg-faint);position:sticky;top:80px;align-self:start}
  .tl-track{position:relative;padding-left:24px}

  /* Animated SVG spine — built by assets/timeline.js. A gradient wire
     weaves through the entry nodes and draws in on scroll. */
  .tl-svg{position:absolute;left:-20px;top:0;width:40px;height:100%;overflow:visible;pointer-events:none;z-index:1}
  .tl-svg .ghost{fill:none;stroke:var(--line-strong);stroke-width:.75;stroke-dasharray:2 6;opacity:.7}
  .tl-svg .wire{fill:none;stroke-width:1.5;stroke-linecap:round}
  .tl-svg .wire-glow{fill:none;stroke-width:5;stroke-linecap:round;opacity:.35;filter:blur(5px)}
  .tl-svg .node{fill:var(--bg);stroke:var(--line-strong);stroke-width:1;transition:fill .3s,stroke .3s,r .2s}
  .tl-svg .node.lit{fill:var(--cyan);stroke:var(--cyan);filter:drop-shadow(0 0 7px var(--cyan))}
  .tl-svg .node.hot{r:6.5px;stroke:var(--cyan)}
  .tl-svg .node-pulse{fill:none;stroke:var(--cyan);stroke-width:1}
  .tl-svg .comet{fill:#fff;filter:drop-shadow(0 0 6px var(--cyan)) drop-shadow(0 0 14px var(--cyan));transition:opacity .3s}
  .tl-svg .comet-halo{fill:oklch(0.85 0.15 200 / .3);filter:blur(3px);transition:opacity .3s}

  .tl-year{position:sticky;top:64px;z-index:6;
    margin:0 0 28px -24px;padding:18px 0 14px 24px;
    font-family:var(--mono);font-size:14px;letter-spacing:.18em;text-transform:uppercase;color:var(--fg);
    background:linear-gradient(to bottom, rgba(10,10,16,.95) 60%, rgba(10,10,16,0));
    backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
    display:flex;align-items:baseline;gap:14px}
  .tl-year::before{content:'';flex:1;height:.5px;background:var(--line-strong);margin-right:6px;align-self:center;max-width:80px}
  .tl-year .y-num{font-weight:500;font-size:32px;letter-spacing:-.02em;text-transform:none;
    background:linear-gradient(135deg, var(--fg) 0%, var(--cyan) 100%);
    -webkit-background-clip:text;background-clip:text;color:transparent;line-height:1}
  .tl-year[data-year="2025"] .y-num{background:linear-gradient(135deg, var(--fg) 0%, var(--magenta) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
  .tl-year[data-year="2024"] .y-num{background:linear-gradient(135deg, var(--fg) 0%, var(--amber) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
  .tl-year[data-year="2023"] .y-num{background:linear-gradient(135deg, var(--fg-dim) 0%, var(--fg-faint) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
  .tl-year .y-count{color:var(--fg-faint);font-size:10px}

  .tl-entry{position:relative;display:grid;grid-template-columns:96px 1fr 280px;gap:32px;padding:28px 0;
    border-top:.5px solid var(--line);
    opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
  .tl-entry.in{opacity:1;transform:none}

  .tl-date{font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--fg-faint);padding-top:4px;text-transform:uppercase}
  .tl-date .day{color:var(--fg-dim);display:block}
  .tl-date .mon{display:block}

  .tl-body h3{font-family:var(--sans);font-weight:500;font-size:24px;letter-spacing:-.01em;color:var(--fg);margin-bottom:8px;text-wrap:balance}
  .tl-body h3 a{color:inherit;text-decoration:none;background-image:linear-gradient(var(--cyan),var(--cyan));background-size:0 1px;background-position:0 100%;background-repeat:no-repeat;transition:background-size .25s}
  .tl-body h3 a:hover{background-size:100% 1px}
  .tl-body .blurb{font-size:15px;line-height:1.55;color:var(--fg-dim);max-width:54ch;text-wrap:pretty}
  .tl-body .tags{margin-top:14px;display:flex;flex-wrap:wrap;gap:6px;font-family:var(--mono);font-size:10px;letter-spacing:.06em}
  .tl-body .tags span{padding:3px 8px;border-radius:999px;border:.5px solid var(--line-strong);color:var(--fg-dim);text-transform:uppercase;background:rgba(255,255,255,.02)}
  .tl-body .tags span.is-build{color:var(--cyan);border-color:oklch(0.85 0.15 200 / .4)}
  .tl-body .tags span.is-write{color:var(--amber);border-color:oklch(0.85 0.16 75 / .4)}
  .tl-body .tags span.is-experiment{color:var(--magenta);border-color:oklch(0.75 0.22 340 / .4)}
  .tl-body .tags span.is-talk{color:var(--lime);border-color:oklch(0.92 0.18 130 / .4)}
  .tl-body .alt{margin:2px 0 0;font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--fg-faint)}
  .tl-body .alt a{color:var(--fg-dim);text-decoration:none;border-bottom:.5px dotted var(--fg-faint);transition:color .2s,border-color .2s}
  .tl-body .alt a:hover{color:var(--cyan);border-bottom-color:var(--cyan)}

  .tl-thumb{aspect-ratio:4/3;border-radius:8px;overflow:hidden;border:.5px solid var(--line-strong);position:relative;background:rgba(255,255,255,.02);transition:border-color .2s,transform .25s}
  .tl-entry:hover .tl-thumb{border-color:var(--fg-faint);transform:translateY(-2px)}
  .tl-thumb svg{width:100%;height:100%;display:block}
  .tl-thumb .cap{position:absolute;left:10px;bottom:10px;font-family:var(--mono);font-size:9px;letter-spacing:.08em;color:var(--fg-dim);text-transform:uppercase;background:rgba(0,0,0,.4);padding:3px 7px;border-radius:4px;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}

  /* ─── Now / Writing strip ─── */
  #now{padding-top:80px}
  .now-grid{display:grid;grid-template-columns:160px 1fr 1fr;gap:48px}
  .panel{position:relative;border:.5px solid var(--line-strong);border-radius:14px;padding:28px;
    background:linear-gradient(180deg, rgba(255,255,255,.025) 0%, rgba(255,255,255,.005) 100%);
    backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
    box-shadow:0 1px 0 rgba(255,255,255,.04) inset, 0 24px 48px -16px rgba(0,0,0,.5)}
  .panel::after{content:'';position:absolute;inset:0;border-radius:14px;pointer-events:none;
    background:radial-gradient(ellipse 100% 60% at 50% 0%, rgba(255,255,255,.04), transparent 60%)}
  .panel.accent-cyan{border-top:.5px solid oklch(0.85 0.15 200 / .4)}
  .panel.accent-cyan h3 .badge{background:var(--lime)}
  .panel.accent-amb{border-top:.5px solid oklch(0.85 0.16 75 / .4)}
  .panel h3{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--fg-faint);margin-bottom:18px;display:flex;align-items:center;gap:10px}
  .panel h3 .badge{font-family:var(--mono);font-size:9px;padding:2px 7px;border-radius:999px;background:var(--lime);color:var(--bg);letter-spacing:.1em}
  .now-list{display:flex;flex-direction:column;gap:14px}
  .now-list li{list-style:none;display:grid;grid-template-columns:80px 1fr;gap:14px;padding:10px 0;border-top:.5px solid var(--line);align-items:baseline}
  .now-list li:first-child{border-top:0;padding-top:0}
  .now-list li .when{font-family:var(--mono);font-size:11px;color:var(--fg-faint);letter-spacing:.05em}
  .now-list li .what{color:var(--fg);font-size:15px;line-height:1.5;text-wrap:pretty}
  .now-list li .what em{font-style:normal;color:var(--cyan)}
  .now-list li.writing .what a{color:inherit;text-decoration:none;background-image:linear-gradient(var(--amber),var(--amber));background-size:0 1px;background-position:0 100%;background-repeat:no-repeat;transition:background-size .25s}
  .now-list li.writing .what a:hover{background-size:100% 1px}

  /* ─── Footer ─── */
  footer{position:relative;z-index:5;border-top:.5px solid var(--line);margin-top:120px;padding:64px 32px 40px;font-family:var(--mono);font-size:11px;color:var(--fg-faint);letter-spacing:.05em;
    background:linear-gradient(to bottom, transparent 0%, oklch(0.08 0.02 260) 100%)}
  footer::before{content:'';position:absolute;left:50%;top:0;transform:translateX(-50%);width:60vw;max-width:800px;height:14px;
    background-image:repeating-linear-gradient(90deg,var(--line) 0,var(--line) .5px,transparent .5px,transparent calc(100%/40))}
  footer .inner{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:48px}
  footer .col h4{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--fg-dim);margin-bottom:12px}
  footer .col a{display:block;color:var(--fg-dim);text-decoration:none;padding:3px 0;transition:color .15s}
  footer .col a:hover{color:var(--cyan)}
  footer .col p{color:var(--fg-faint);line-height:1.5;font-family:var(--sans);font-size:13px;letter-spacing:0}
  footer .colophon{max-width:1280px;margin:48px auto 0;padding-top:24px;border-top:.5px dashed var(--line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;text-transform:uppercase;letter-spacing:.1em;font-size:10px}
  footer .colophon .git{color:var(--fg-dim)}
  footer .colophon .commit{color:var(--cyan)}

  /* Reveal helpers */
  .reveal{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s ease}
  .reveal.in{opacity:1;transform:none}

  /* Mobile — tablet & below */
  @media (max-width: 880px){
    section{padding:80px 20px}
    .section-head{grid-template-columns:1fr;gap:18px;margin-bottom:40px}
    .about-grid{grid-template-columns:1fr;gap:24px}
    .about-grid p{font-size:16px}
    .tl-wrap{grid-template-columns:1fr;gap:24px}
    .tl-wrap > .marker{position:relative;top:0}
    .tl-entry{grid-template-columns:1fr;gap:14px;padding-left:0}
    .tl-track{padding-left:18px}
    .tl-thumb{max-width:420px}
    .tl-body h3{font-size:20px}
    .tl-body .blurb{font-size:14px}
    .tl-year .y-num{font-size:26px}
    .now-grid{grid-template-columns:1fr;gap:24px}
    .now-grid > div:first-child{display:none}
    .panel{padding:22px 18px}
    .now-list li{grid-template-columns:64px 1fr;gap:10px}
    .now-list li .what{font-size:14px}
    .topnav{padding:12px 18px}
    .topnav nav{display:none}
    footer{padding:48px 22px 32px;margin-top:80px}
    footer .inner{grid-template-columns:1fr 1fr;gap:24px}

    /* Hero HUD slimmer */
    .title-wrap{padding:24px 20px}
    .hud .corner{padding:12px 14px}
    .id-block .name{font-size:11px;letter-spacing:.02em}
    .id-block .role{font-size:10px}
    .readout{font-size:10px}
    .readout .v{min-width:38px}
    .nav a{font-size:11px}
    .meta .pill{font-size:9px;padding:2px 6px}
    .meta .pill kbd{font-size:9px;padding:1px 4px}
    .dock{padding:3px;bottom:16px}
    .dock button{padding:7px 10px;font-size:9px;gap:5px}
    .dock button .num{font-size:8px}
    .rail{display:none}
  }

  /* Phone */
  @media (max-width: 520px){
    section{padding:56px 16px}
    .section-head{margin-bottom:32px}
    .section-head h2{font-size:clamp(28px,8vw,40px)}
    .section-head .lead{font-size:15px}
    .tl-entry{padding:22px 0;gap:10px}
    .tl-body h3{font-size:18px}
    .tl-thumb{max-width:240px;aspect-ratio:4/3;justify-self:center;width:100%}
    .tl-track{padding-left:14px}
    #about{padding-top:120px}
    footer .inner{grid-template-columns:1fr;gap:18px}
    footer .colophon{font-size:9px;gap:8px;letter-spacing:.06em}

    /* Hero — declutter on phone */
    .ticks{display:none}
    .scan{opacity:.03}
    .hud .corner.tr{display:none}   /* hide FPS readout — noisy */
    .hud .corner.br{display:none}   /* hide hint pills */
    .hud .corner.tl{padding:10px 12px}
    .hud .corner.bl{padding:10px 12px}
    .title-wrap{padding:14px 10px;
      -webkit-mask-image:radial-gradient(ellipse at center, #000 38%, transparent 88%);
      mask-image:radial-gradient(ellipse at center, #000 38%, transparent 88%)}
    .title{font-size:clamp(30px,8.5vw,60px)}
    .subtitle{font-size:9px;letter-spacing:.3em}
    .dock{left:16px;right:16px;transform:none;justify-content:center}
    body.scrolled .dock{transform:translateY(20px)}
    .dock button{padding:6px 8px;flex:1;justify-content:center}
    .dock button .num{display:none}
    .hud .corner.bl{padding:10px 12px}
    .hud .corner.bl .nav a{font-size:11px}
    .nav-lang{font-size:11px}
  }

  /* Touch / coarse pointer — mouse-only chrome is irrelevant */
  @media (hover: none), (pointer: coarse){
    .crosshair{display:none}
    .hero{cursor:default}
  }

  /* ─── Language toggle (Google Translate) ─── */
  .nav-lang{pointer-events:auto;appearance:none;border:0;background:transparent;font:inherit;letter-spacing:inherit;text-transform:inherit;color:var(--fg-dim);cursor:pointer;padding:2px 0;margin-top:6px;display:flex;gap:6px;align-items:center;justify-content:flex-end}
  .nav-lang .l{color:var(--fg-faint);transition:color .15s}
  .nav-lang .sep{color:var(--fg-faint);opacity:.5}
  html:not([data-lang="en"]) .nav-lang .l-cs{color:var(--cyan)}
  html[data-lang="en"] .nav-lang .l-en{color:var(--cyan)}
  .nav-lang:hover .l{color:var(--fg)}
  /* Hide Google Translate UI chrome (banner, tooltip, badge) */
  #google_translate_element{display:none!important}
  .goog-te-banner-frame,.skiptranslate{display:none!important}
  body{top:0!important}
  .goog-tooltip,.goog-tooltip:hover{display:none!important}
  .goog-text-highlight{background:none!important;box-shadow:none!important}
  font[style*="background-color"]{background:none!important}
