
  :root{
    --wall:#E6E5E0; --card:#FCFCFA; --sunk:#EFEEE9;
    --ink:#1A1A17; --ink-soft:#43433D; --muted:#55554E; --faint:#5C5C55;
    --rule:#DCDBD4; --rule-soft:#E9E8E2;
    --accent:#14534D; --accent-wash:#E2ECEA;
    --warn:#774C0C; --warn-wash:#F4EAD8;
    --lift:0 1px 1px rgba(26,26,23,.04), 0 20px 46px -28px rgba(26,26,23,.45);
    --safeT:env(safe-area-inset-top, 0px);
    --safeB:env(safe-area-inset-bottom, 0px);
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --wall:#131412; --card:#1C1E1B; --sunk:#171916;
      --ink:#EDEDE7; --ink-soft:#C9C9C1; --muted:#ADADA3; --faint:#9E9E94;
      --rule:#2D2F2B; --rule-soft:#242621;
      --accent:#7FC6B8; --accent-wash:#16302C;
      --warn:#D8AC63; --warn-wash:#2C2415;
      --lift:0 1px 1px rgba(0,0,0,.5), 0 20px 46px -28px rgba(0,0,0,.95);
    }
  }
  :root[data-theme="dark"]{
    --wall:#131412; --card:#1C1E1B; --sunk:#171916;
    --ink:#EDEDE7; --ink-soft:#C9C9C1; --muted:#ADADA3; --faint:#9E9E94;
    --rule:#2D2F2B; --rule-soft:#242621;
    --accent:#7FC6B8; --accent-wash:#16302C;
    --warn:#D8AC63; --warn-wash:#2C2415;
    --lift:0 1px 1px rgba(0,0,0,.5), 0 20px 46px -28px rgba(0,0,0,.95);
  }

  *{box-sizing:border-box}
  html{-webkit-text-size-adjust:100%}
  html,body{overflow-x:hidden}
  body{
    margin:0; background:var(--wall); color:var(--ink);
    font-family:"Karla", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
    font-size:17px; line-height:1.62; -webkit-font-smoothing:antialiased;
    padding-top:var(--safeT); padding-bottom:var(--safeB);
  }
  img{max-width:100%}
  [hidden]{display:none!important}
  .page{max-width:560px;margin:0 auto;padding-inline:18px;padding-block:0 80px}

  .kicker{
    font-family:"IBM Plex Mono", ui-monospace, monospace;
    font-size:11.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
    color:var(--accent);margin:0 0 12px;
  }

  /* ---------- hero ---------- */
  .hero{padding-block:44px 0}
  h1{
    font-family:"Instrument Serif", Georgia, serif;
    font-weight:400;
    font-size:clamp(2.6rem,11vw,3.7rem);
    line-height:.98;letter-spacing:-.015em;
    margin:0 0 16px;text-wrap:balance;
  }
  .lede{color:var(--ink-soft);margin:0 0 14px;max-width:44ch;font-size:19px;line-height:1.55}
  .for{color:var(--faint);margin:0 0 24px;max-width:44ch;font-size:15px;line-height:1.5}

  .tally{
    display:grid;grid-template-columns:repeat(3,1fr);
    gap:1px;background:var(--rule);
    border:1px solid var(--rule);border-radius:3px;overflow:hidden;
    margin-bottom:22px;
  }
  .tally div{background:var(--card);padding:13px 13px 11px}
  .tally b{
    display:block;font-family:"IBM Plex Mono", monospace;
    font-size:1.4rem;font-weight:500;line-height:1;
    font-variant-numeric:tabular-nums;color:var(--ink);
  }
  .tally span{display:block;margin-top:6px;font-size:13px;line-height:1.3;color:var(--muted)}

  /* ---------- artist jump nav ---------- */
  nav.jump{
    display:flex;flex-wrap:wrap;gap:6px;
    padding-bottom:26px;border-bottom:1px solid var(--rule);
    margin-bottom:4px;
  }
  nav.jump a{
    font-family:"IBM Plex Mono", monospace;
    font-size:12.5px;font-weight:600;letter-spacing:.05em;
    text-decoration:none;color:var(--ink-soft);
    border:1px solid var(--rule);border-radius:100px;
    padding:11px 15px;background:var(--card);
    transition:border-color .15s ease,color .15s ease;
  }
  nav.jump a:hover,nav.jump a:focus-visible{border-color:var(--accent);color:var(--accent)}

  /* ---------- works ---------- */
  .work{
    background:var(--card);border:1px solid var(--rule);
    border-radius:4px;overflow:hidden;box-shadow:var(--lift);
    margin-top:24px;scroll-margin-top:16px;
  }
  .shot{display:block;width:100%;border:0;padding:0;background:var(--sunk);cursor:zoom-in;line-height:0}
  .shot img{display:block;width:100%;height:auto}
  .shot:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}
  .trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--rule)}
  .trio .shot img{aspect-ratio:3/4;object-fit:cover;height:100%}

  .body{padding:22px 20px 20px}
  .artist{
    font-family:"Instrument Serif", Georgia, serif;font-weight:400;
    font-size:1.95rem;line-height:1.04;margin:0 0 5px;
    letter-spacing:-.008em;text-wrap:balance;
  }
  .artist .soft{color:var(--faint);font-style:italic;font-size:.95rem}
  .origin{
    font-family:"IBM Plex Mono", monospace;
    font-size:12.5px;font-weight:600;letter-spacing:.05em;color:var(--muted);margin:0 0 16px;
  }
  .titleline{
    font-family:"Instrument Serif", Georgia, serif;font-style:italic;
    font-size:1.2rem;line-height:1.3;margin:0 0 3px;
  }
  .med{font-size:15.5px;color:var(--ink-soft);margin:0 0 16px}
  .unsure{color:var(--faint);font-style:normal}

  .about{
    font-size:16.5px;line-height:1.62;color:var(--ink-soft);
    margin:0 0 16px;
  }

  dl{margin:0 0 16px;display:grid;grid-template-columns:auto 1fr;gap:8px 14px;align-items:baseline}
  dt{
    font-family:"IBM Plex Mono", monospace;font-size:13px;font-weight:600;letter-spacing:.1em;
    text-transform:uppercase;color:var(--faint);white-space:nowrap;
  }
  dd{margin:0;font-size:15.5px;color:var(--ink-soft)}

  .how{
    display:inline-flex;align-items:center;gap:6px;
    font-family:"IBM Plex Mono", monospace;
    font-size:11.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
    padding:4px 8px;border-radius:2px;
  }
  .how::before{content:"";width:5px;height:5px;border-radius:50%;flex:none}
  .how.ok{background:var(--accent-wash);color:var(--accent)}
  .how.ok::before{background:var(--accent)}
  .how.part{background:var(--warn-wash);color:var(--warn)}
  .how.part::before{background:var(--warn)}

  .note{
    margin:16px 0 0;padding-top:14px;border-top:1px solid var(--rule-soft);
    font-size:15px;line-height:1.6;color:var(--muted);
  }

  /* ---------- provenance demo ---------- */
  .demo{
    margin-top:38px;padding-top:30px;border-top:1px solid var(--rule);
  }
  h2.sec{
    font-family:"Instrument Serif", Georgia, serif;font-weight:400;
    font-size:clamp(1.7rem,6vw,2.1rem);line-height:1.1;
    margin:0 0 14px;letter-spacing:-.01em;text-wrap:balance;
  }
  .demo > p{color:var(--ink-soft);margin:0 0 20px;max-width:48ch}
  .proof{
    background:var(--card);border:1px solid var(--rule);border-radius:4px;
    overflow:hidden;margin-bottom:16px;box-shadow:var(--lift);
  }
  .proof .pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1px;background:var(--rule)}
  .proof .pane{background:var(--card);padding:0}
  .proof .pane.txt{padding:16px 16px 14px}
  .proof .pane img{display:block;width:100%;height:100%;object-fit:cover;aspect-ratio:1/1;background:var(--sunk)}
  .proof h3{
    font-family:"IBM Plex Mono", monospace;font-size:11px;font-weight:600;
    letter-spacing:.11em;text-transform:uppercase;color:var(--faint);
    margin:0 0 10px;
  }
  .proof ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}
  .proof li{font-size:15px;line-height:1.35;color:var(--ink-soft)}
  .proof li b{display:block;font-family:"IBM Plex Mono",monospace;font-size:12.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);font-weight:500;margin-bottom:1px}
  .proof .cap{
    padding:13px 16px;border-top:1px solid var(--rule-soft);
    font-size:14px;line-height:1.55;color:var(--muted);
  }
  @media (max-width:430px){
    .proof .pair{grid-template-columns:1fr}
    .proof .pane img{aspect-ratio:4/3}
  }

  /* ---------- lightbox ---------- */
  .lb{
    position:fixed;inset:0;z-index:50;
    background:rgba(12,13,11,.94);
    display:flex;align-items:center;justify-content:center;
    padding:calc(18px + var(--safeT)) 14px calc(18px + var(--safeB));
  }
  .lb img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:2px}
  .lb button{
    position:absolute;top:calc(12px + var(--safeT));right:12px;
    width:40px;height:40px;border-radius:50%;
    border:1px solid rgba(255,255,255,.28);
    background:rgba(0,0,0,.42);color:#fff;
    font-size:20px;line-height:1;cursor:pointer;
  }
  .lb button:focus-visible{outline:2px solid #fff;outline-offset:2px}

  footer{
    margin-top:38px;padding-top:24px;border-top:1px solid var(--rule);
    font-size:15px;color:var(--muted);
  }
  footer p{max-width:50ch;margin:0 0 12px}

  @media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

  /* ---------- artist page ---------- */
  .back{
    display:inline-flex;align-items:center;gap:6px;
    font-family:"IBM Plex Mono", monospace;font-size:11.5px;font-weight:600;
    letter-spacing:.1em;text-transform:uppercase;text-decoration:none;
    color:var(--muted);margin-bottom:26px;
  }
  .back:hover,.back:focus-visible{color:var(--accent)}
  .a-hero{padding-block:40px 0}
  .a-name{
    font-family:"Instrument Serif", Georgia, serif;font-weight:400;
    font-size:clamp(2.5rem,10vw,3.5rem);line-height:.98;
    letter-spacing:-.015em;margin:0 0 12px;text-wrap:balance;
  }
  .a-meta{
    font-family:"IBM Plex Mono", monospace;font-size:12.5px;font-weight:600;letter-spacing:.05em;
    color:var(--muted);margin:0 0 22px;line-height:1.7;
  }
  .a-lede{
    font-family:"Instrument Serif", Georgia, serif;
    font-size:clamp(1.34rem,4.6vw,1.6rem);line-height:1.4;
    color:var(--ink);margin:0 0 28px;max-width:40ch;
  }
  .a-sec{margin-top:34px;padding-top:26px;border-top:1px solid var(--rule)}
  .a-sec h2{
    font-family:"IBM Plex Mono", monospace;font-size:11.5px;font-weight:600;
    letter-spacing:.13em;text-transform:uppercase;color:var(--accent);
    margin:0 0 16px;
  }
  .a-sec p{color:var(--ink-soft);margin:0 0 15px;max-width:52ch}
  .a-sec p:last-child{margin-bottom:0}
  blockquote.pull{
    margin:0 0 18px;padding:0 0 0 16px;border-left:2px solid var(--accent);
    font-family:"Instrument Serif", Georgia, serif;font-style:italic;
    font-size:1.12rem;line-height:1.45;color:var(--ink);
  }
  ol.cv{margin:0;padding:0;list-style:none;display:flex;flex-direction:column}
  ol.cv li{
    display:grid;grid-template-columns:58px 1fr;gap:14px;
    padding:13px 0;border-bottom:1px solid var(--rule-soft);
    font-size:16px;color:var(--ink-soft);align-items:baseline;
  }
  ol.cv li:last-child{border-bottom:0}
  ol.cv b{
    font-family:"IBM Plex Mono", monospace;font-size:13px;font-weight:600;
    color:var(--faint);font-variant-numeric:tabular-nums;
  }
  ol.cv em{font-style:italic;color:var(--ink)}
  .quietlink{
    font-family:"IBM Plex Mono",monospace;font-size:12px;font-weight:600;letter-spacing:.06em;
    text-transform:uppercase;color:var(--muted);text-decoration:underline;text-underline-offset:4px;
  }
  .quietlink:hover,.quietlink:focus-visible{color:var(--accent)}

  .plate{margin:0 0 20px;max-width:228px}
  .plate img{display:block;width:100%;height:auto;border-radius:3px;border:1px solid var(--rule);background:var(--sunk)}
  .plate figcaption{
    font-family:"IBM Plex Mono",monospace;font-size:11.5px;line-height:1.5;
    color:var(--faint);margin-top:9px;
  }

  .held{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:6px}
  .held figure{margin:0}
  .held img{display:block;width:100%;height:auto;border-radius:3px;border:1px solid var(--rule);background:var(--sunk)}
  .held figcaption{
    font-family:"IBM Plex Mono", monospace;font-size:11.5px;font-weight:600;letter-spacing:.05em;
    color:var(--faint);margin-top:7px;line-height:1.5;
  }
  .src-note{
    margin-top:30px;padding:14px 16px;background:var(--card);
    border:1px solid var(--rule);border-radius:3px;
    font-size:12.5px;line-height:1.55;color:var(--muted);
  }
  .src-note b{
    display:block;font-family:"IBM Plex Mono",monospace;font-size:12.5px;font-weight:600;
    letter-spacing:.14em;text-transform:uppercase;color:var(--faint);
    font-weight:500;margin-bottom:6px;
  }
  .src-note a{color:var(--accent)}
  a.artist-link{color:inherit;text-decoration:none;border-bottom:1px solid var(--rule)}
  .a-sec p a:not(.more),footer a:not(.more),.colo a:not(.more){color:var(--accent);text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px}
  a.artist-link:hover,a.artist-link:focus-visible{border-bottom-color:var(--accent);color:var(--accent)}
  .more{
    display:inline-flex;align-items:center;gap:7px;margin-top:6px;
    font-family:"IBM Plex Mono", monospace;font-size:13.5px;font-weight:600;letter-spacing:.06em;
    text-transform:uppercase;text-decoration:none;
    color:var(--card)!important;background:var(--accent);
    border:1px solid var(--accent);border-radius:100px;padding:13px 22px;
  }
  .more:hover,.more:focus-visible{background:var(--ink);border-color:var(--ink);color:var(--card)}

  /* ---------- the hand ---------- */
  .hand{
    margin:0;background:var(--card);border:1px solid var(--rule);
    border-radius:3px;overflow:hidden;
  }
  .hand img{display:block;width:100%;height:auto;background:var(--sunk)}
  .hand figcaption{
    padding:11px 14px;border-top:1px solid var(--rule-soft);
    font-family:"IBM Plex Mono", monospace;font-size:11.5px;font-weight:600;
    letter-spacing:.06em;line-height:1.6;color:var(--faint);
  }

  /* ---------- artist portrait ---------- */
  .portrait{margin:0 0 26px;background:var(--card);border:1px solid var(--rule);border-radius:3px;overflow:hidden;box-shadow:var(--lift)}
  .portrait img{display:block;width:100%;height:auto;background:var(--sunk)}
  .portrait figcaption{
    padding:12px 15px;border-top:1px solid var(--rule-soft);
    font-family:"IBM Plex Mono", monospace;font-size:11.5px;font-weight:600;
    letter-spacing:.05em;line-height:1.7;color:var(--faint);
  }
  .portrait figcaption a{color:var(--muted)}

  /* ---------- try: intro + uploader ---------- */
  .steps{margin:0 0 26px;padding:0;list-style:none;counter-reset:st;display:flex;flex-direction:column;gap:14px}
  .steps li{position:relative;padding-left:38px;counter-increment:st;font-size:17px;line-height:1.55;color:var(--ink-soft)}
  .steps li::before{
    content:counter(st);position:absolute;left:0;top:0;
    width:23px;height:23px;border-radius:50%;
    background:var(--accent);color:var(--card);
    font-family:"IBM Plex Mono",monospace;font-size:11px;font-weight:500;
    display:flex;align-items:center;justify-content:center;
  }
  .steps li b{color:var(--ink);font-weight:600}

  .slots{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin-bottom:18px}
  .slot{
    position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:7px;text-align:center;min-height:168px;padding:16px 12px;
    background:var(--card);border:1px dashed var(--rule-strong,var(--rule));
    border-radius:4px;cursor:pointer;overflow:hidden;
  }
  .slot:focus-within{outline:2px solid var(--accent);outline-offset:2px}
  .slot input{position:absolute;inset:0;opacity:0;cursor:pointer}
  .slot .lbl{font-family:"IBM Plex Mono",monospace;font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
  .slot .hint{font-size:14.5px;line-height:1.4;color:var(--muted);max-width:20ch}
  .slot.filled{border-style:solid;padding:0}
  .slot img.prev{display:block;width:100%;height:168px;object-fit:cover}
  .slot .swap{
    position:absolute;right:7px;bottom:7px;z-index:2;
    font-family:"IBM Plex Mono",monospace;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
    background:rgba(0,0,0,.62);color:#fff;border-radius:100px;padding:4px 9px;pointer-events:none;
  }

  button.go{
    width:100%;font:inherit;font-family:"IBM Plex Mono",monospace;
    font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
    background:var(--accent);color:var(--card);border:0;border-radius:3px;
    padding:18px;cursor:pointer;
  }
  button.go[disabled]{opacity:.55;cursor:default}
  button.go:focus-visible{outline:2px solid var(--ink);outline-offset:2px}

  .status{
    margin-top:14px;font-family:"IBM Plex Mono",monospace;font-size:11px;font-weight:600;
    letter-spacing:.05em;line-height:1.7;color:var(--muted);text-align:center;
  }
  .status.bad{color:var(--open,#a03a31)}

  .result{margin-top:26px}
  .result .card{background:var(--card);border:1px solid var(--rule);border-radius:4px;overflow:hidden;box-shadow:var(--lift)}
  .result .card > img{display:block;width:100%;height:auto;background:var(--sunk)}
  .rbody{padding:22px 20px 20px}
  .rfield{margin:0 0 14px}
  .rfield dt{
    font-family:"IBM Plex Mono",monospace;font-size:13px;font-weight:600;letter-spacing:.1em;
    text-transform:uppercase;color:var(--faint);margin-bottom:3px;
  }
  .rfield dd{margin:0;font-size:15px;color:var(--ink)}
  .rfield dd.none{color:var(--faint);font-size:13.5px}
  .rgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}
  .swatches{display:flex;gap:6px;flex-wrap:wrap;margin-top:2px}
  .swatches span{
    font-family:"IBM Plex Mono",monospace;font-size:11.5px;font-weight:600;letter-spacing:.05em;
    border:1px solid var(--rule);border-radius:100px;padding:4px 9px;color:var(--ink-soft);
  }
  .again{
    display:inline-block;margin-top:18px;font-family:"IBM Plex Mono",monospace;
    font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;
    color:var(--accent);border:1px solid var(--accent);border-radius:100px;padding:8px 14px;
    background:none;cursor:pointer;
  }
  @media (max-width:430px){ .rgrid{grid-template-columns:1fr} }

  /* ---------- session collection ---------- */
  .sofar{margin-top:34px;padding-top:26px;border-top:1px solid var(--rule)}
  .sofar h2{
    font-family:"IBM Plex Mono",monospace;font-size:11.5px;font-weight:600;
    letter-spacing:.13em;text-transform:uppercase;color:var(--accent);margin:0 0 6px;
  }
  .sofar .count{font-size:15px;color:var(--muted);margin:0 0 16px}
  .reads{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:10px}
  .read-item{background:var(--card);border:1px solid var(--rule);border-radius:3px;overflow:hidden}
  .read-item img{display:block;width:100%;height:104px;object-fit:cover;background:var(--sunk)}
  .read-item .who{
    padding:10px 11px 11px;font-size:13.5px;line-height:1.35;color:var(--ink);
    display:block;overflow-wrap:anywhere;
  }
  .read-item .who em{display:block;color:var(--faint);font-style:normal;font-size:13px;margin-top:2px}
  .sofar .tools{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
  .sofar .tools button{
    font:inherit;font-family:"IBM Plex Mono",monospace;font-size:12px;font-weight:600;letter-spacing:.1em;
    text-transform:uppercase;background:none;color:var(--accent);
    border:1px solid var(--accent);border-radius:100px;padding:8px 14px;cursor:pointer;
  }
  .sofar .tools button.quiet{color:var(--muted);border-color:var(--rule)}
  .sofar .tools button:focus-visible{outline:2px solid var(--ink);outline-offset:2px}

  .echo{
    margin-top:14px;padding:15px 17px;border-radius:3px;
    background:var(--accent-wash);color:var(--accent);
    font-size:15.5px;font-weight:500;line-height:1.5;
  }

  @media print{
    body{background:#fff;color:#000}
    .a-hero,.a-sec,.slots,button.go,.status,.sofar .tools,footer,.again,nav.jump{display:none!important}
    .page{max-width:none;padding:0}
    .result .card,.read-item{break-inside:avoid;box-shadow:none;border-color:#ccc}
    .sofar{border-top:0}
    .reads{grid-template-columns:repeat(3,1fr)}
  }

  /* ---------- feedback ---------- */
  .fb{margin-top:26px;padding-top:24px;border-top:1px solid var(--rule)}
  .fb h2{
    font-family:"IBM Plex Mono",monospace;font-size:11.5px;font-weight:600;
    letter-spacing:.13em;text-transform:uppercase;color:var(--accent);margin:0 0 8px;
  }
  .fb p.ask{font-size:16px;line-height:1.6;color:var(--ink-soft);margin:0 0 14px;max-width:46ch}
  .fb textarea{
    width:100%;min-height:92px;resize:vertical;
    font:inherit;font-size:15px;line-height:1.5;color:var(--ink);
    background:var(--card);border:1px solid var(--rule);border-radius:3px;
    padding:12px 13px;
  }
  .fb textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
  .fb .row{display:flex;gap:10px;align-items:center;margin-top:11px;flex-wrap:wrap}
  .fb button{
    font:inherit;font-family:"IBM Plex Mono",monospace;font-size:12px;font-weight:600;letter-spacing:.1em;
    text-transform:uppercase;background:var(--accent);color:var(--card);
    border:0;border-radius:100px;padding:10px 18px;cursor:pointer;
  }
  .fb button[disabled]{opacity:.45;cursor:default}
  .fb button:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
  .fb .said{font-family:"IBM Plex Mono",monospace;font-size:12.5px;font-weight:600;letter-spacing:.05em;color:var(--muted)}
  .fb .said.bad{color:var(--open,#a03a31)}
  .fb .pot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

  /* ---------- the code door ---------- */
  .door{
    background:var(--card);border:1px solid var(--rule);border-radius:4px;
    padding:20px 20px 18px;margin-bottom:26px;box-shadow:var(--lift);
  }
  .door h2{
    font-family:"IBM Plex Mono",monospace;font-size:11.5px;font-weight:600;
    letter-spacing:.13em;text-transform:uppercase;color:var(--accent);margin:0 0 8px;
  }
  .door p{font-size:16px;line-height:1.6;color:var(--ink-soft);margin:0 0 14px;max-width:46ch}
  .door .line{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
  .door input{
    flex:1 1 180px;min-width:0;font:inherit;font-size:16px;
    font-family:"IBM Plex Mono",monospace;letter-spacing:.06em;
    color:var(--ink);background:var(--sunk);border:1px solid var(--rule);
    border-radius:3px;padding:11px 12px;
  }
  .door input:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
  .door button{
    font:inherit;font-family:"IBM Plex Mono",monospace;font-size:11.5px;font-weight:600;
    letter-spacing:.12em;text-transform:uppercase;cursor:pointer;
    background:var(--accent);color:var(--card);border:0;border-radius:3px;padding:12px 18px;
  }
  .door button.ghost{background:none;color:var(--muted);border:1px solid var(--rule)}
  .door button:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
  .door .msg{
    margin:10px 0 0;font-family:"IBM Plex Mono",monospace;font-size:11.5px;font-weight:600;
    letter-spacing:.05em;color:var(--muted);
  }
  .door .msg.bad{color:var(--open,#a03a31)}

  .whose{
    display:flex;justify-content:space-between;align-items:center;gap:10px;
    flex-wrap:wrap;margin-bottom:20px;padding:11px 14px;
    background:var(--accent-wash);border-radius:3px;
    font-family:"IBM Plex Mono",monospace;font-size:12.5px;font-weight:600;letter-spacing:.05em;color:var(--accent);
  }
  .whose button{
    font:inherit;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;
    background:none;color:var(--accent);border:1px solid currentColor;
    border-radius:100px;padding:5px 11px;cursor:pointer;
  }

  .linky{
    font:inherit;font-family:"IBM Plex Mono",monospace;font-size:12px;font-weight:600;
    letter-spacing:.06em;text-transform:uppercase;background:none;border:0;padding:0;
    color:var(--accent);text-decoration:underline;text-underline-offset:4px;cursor:pointer;
  }
  .linky:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

  /* ---------- tell it the name ---------- */
  .tellit{
    margin:18px 0 0;padding-top:16px;border-top:1px solid var(--rule-soft);
  }
  .tellit h4{
    font-family:"IBM Plex Mono",monospace;font-size:11px;font-weight:600;
    letter-spacing:.11em;text-transform:uppercase;color:var(--accent);margin:0 0 6px;
  }
  .tellit p.why{font-size:14.5px;line-height:1.55;color:var(--muted);margin:0 0 11px;max-width:44ch}
  .tellit .fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;margin-bottom:9px}
  .tellit input{
    width:100%;min-width:0;font:inherit;font-size:15px;color:var(--ink);
    background:var(--sunk);border:1px solid var(--rule);border-radius:3px;padding:10px 11px;
  }
  .tellit input:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
  .tellit .acts{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
  .tellit button{
    font:inherit;font-family:"IBM Plex Mono",monospace;font-size:12px;font-weight:600;letter-spacing:.1em;
    text-transform:uppercase;cursor:pointer;background:var(--accent);color:var(--card);
    border:0;border-radius:100px;padding:9px 15px;
  }
  .tellit button[disabled]{opacity:.45;cursor:default}
  .tellit button:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
  .tellit .said{font-family:"IBM Plex Mono",monospace;font-size:11.5px;font-weight:600;letter-spacing:.05em;color:var(--muted)}
  .tellit .said.bad{color:var(--open,#a03a31)}
  .bio{
    margin-top:12px;padding:15px 17px;border-radius:3px;
    background:var(--accent-wash);font-size:15.5px;line-height:1.6;color:var(--ink);
  }
  .bio b{display:block;font-family:"IBM Plex Mono",monospace;font-size:12.5px;font-weight:600;letter-spacing:.1em;
    text-transform:uppercase;color:var(--accent);font-weight:500;margin-bottom:6px}
  .bio .meta{font-family:"IBM Plex Mono",monospace;font-size:11.5px;font-weight:600;color:var(--muted);margin-top:8px;display:block}
  @media (max-width:430px){ .tellit .fields{grid-template-columns:1fr} }

  /* ---------- colophon ---------- */
  .colo{
    margin-top:40px;padding-top:30px;border-top:1.5px solid var(--rule-strong,var(--rule));
  }
  .colo .by{
    font-family:"IBM Plex Mono",monospace;font-size:11.5px;font-weight:600;letter-spacing:.13em;
    text-transform:uppercase;color:var(--muted);margin:0 0 10px;
  }
  .colo .who{
    font-family:"Instrument Serif", Georgia, serif;font-weight:400;
    font-size:clamp(1.9rem,7vw,2.5rem);line-height:1.02;letter-spacing:-.012em;
    color:var(--ink);margin:0 0 6px;
  }
  .colo .where{
    font-family:"IBM Plex Mono",monospace;font-size:11.5px;font-weight:600;letter-spacing:.08em;
    color:var(--muted);margin:0 0 18px;
  }
  .colo p{font-size:16.5px;line-height:1.62;color:var(--ink-soft);margin:0 0 13px;max-width:50ch}
  .colo p:last-child{margin-bottom:0}

  /* ---------- the room, as a real collection ---------- */
  .roomworks{display:flex;flex-direction:column;gap:24px;margin-bottom:22px}
  .rw{
    background:var(--card);border:1px solid var(--rule);border-radius:4px;
    overflow:hidden;box-shadow:var(--lift);
  }
  .rw > img{display:block;width:100%;height:auto;background:var(--sunk)}
  .rw .rwb{padding:22px 20px 20px}
  .rw .rwname{
    font-family:"Instrument Serif", Georgia, serif;font-weight:400;
    font-size:1.85rem;line-height:1.05;margin:13px 0 5px;letter-spacing:-.006em;
  }
  .rw .rwtitle{
    font-family:"Instrument Serif", Georgia, serif;font-style:italic;
    font-size:1.2rem;line-height:1.3;margin:0 0 4px;color:var(--ink);
  }
  .rw .rwmed{font-size:15.5px;color:var(--ink-soft);margin:0 0 14px}
  .rw .rwdesc{font-size:16.5px;line-height:1.6;color:var(--ink-soft);margin:0 0 4px}
