
:root{
  /* neon accents from sparklebureaucracy.org */
  --magenta:#EC4899; --magenta-ink:#A80C59; --magenta-tint:#FFE7F1;
  --violet:#A855F7;  --violet-ink:#5F27AE;  --violet-tint:#F2E8FF;
  --aqua:#2DD4BF;    --aqua-ink:#07766A;    --aqua-tint:#D8FAF4;
  --cyan:#22D3EE;    --cyan-ink:#08657B;    --cyan-tint:#DDF6FD;
  --gold:#FACC15;    --gold-ink:#7E5900;    --gold-tint:#FFF2D2;

  /* midnight desk, paper documents */
  --page:#0A0E27; --paper:#FFFBF8; --ink:#17122C; --soft:#585272; --line:#17122c26;
  --midnight:#0A0E27; --light:#E7E4F4; --softlight:#ABA5C9; --edge:#e7e4f42e;

  --display:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --text:var(--display);
  --util:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
  --measure:clamp(34rem,50vw,48rem); --col:58rem; --pad:clamp(1rem,4vw,2.5rem); --wrap:96rem;
  --foil:linear-gradient(95deg,var(--magenta),var(--violet),var(--cyan),var(--aqua),var(--gold),var(--magenta));
}
[data-hue=magenta]{--h:var(--magenta);--hi:var(--magenta-ink);--ht:var(--magenta-tint)}
[data-hue=violet]{--h:var(--violet);--hi:var(--violet-ink);--ht:var(--violet-tint)}
[data-hue=aqua]{--h:var(--aqua);--hi:var(--aqua-ink);--ht:var(--aqua-tint)}
[data-hue=cyan]{--h:var(--cyan);--hi:var(--cyan-ink);--ht:var(--cyan-tint)}
[data-hue=gold]{--h:var(--gold);--hi:var(--gold-ink);--ht:var(--gold-tint)}

*,*::before,*::after{box-sizing:border-box}
html{font-size:110%;-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--midnight) url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="900" height="900"><text x="110" y="170" font-size="26" fill="%23FACC15" opacity=".22">✦</text><text x="640" y="120" font-size="18" fill="%23ffffff" opacity=".16">✦</text><text x="330" y="420" font-size="15" fill="%232DD4BF" opacity=".2">✦</text><text x="790" y="360" font-size="30" fill="%23EC4899" opacity=".16">✦</text><text x="180" y="690" font-size="20" fill="%23A855F7" opacity=".2">✦</text><text x="560" y="620" font-size="14" fill="%23FACC15" opacity=".18">★</text><text x="850" y="740" font-size="22" fill="%23ffffff" opacity=".13">✦</text></svg>');
  color:#D6D2E8;font:400 1.0625rem/1.62 var(--text);letter-spacing:-.006em}
::selection{background:var(--gold);color:var(--ink)}
h1,h2,h3{font-family:var(--display);font-weight:800;line-height:1.15;letter-spacing:-.022em;margin:0}
p{margin:0 0 1.05rem}
a{color:var(--gold);text-decoration-thickness:.07em;text-underline-offset:.16em}
a:hover{color:var(--ink);background:var(--gold)}
.permit a,.visa a,.tbl a,.slip a,.crit a,.vbook a,.lightbox a{color:var(--hi,var(--magenta-ink))}
.permit a:hover,.visa a:hover,.tbl a:hover,.slip a:hover,.crit a:hover{color:var(--ink);background:var(--ht,var(--gold-tint))}
.permit,.visa,.tbl,.slip,.crit,.vbook,.lightbox{color:var(--ink)}
:focus-visible{outline:3px solid var(--magenta);outline-offset:2px}
code{font:400 .84em/1.3 var(--util);background:#17122c0f;padding:.16em .38em;border-radius:3px;
  overflow-wrap:anywhere;word-break:break-word}
.wrap{max-width:var(--wrap);margin:0 auto;padding-inline:var(--pad)}
.eyebrow{font:600 .625rem/1.4 var(--util);letter-spacing:.2em;text-transform:uppercase;
  color:var(--hi,var(--soft));margin:0 0 .9rem}

.foil{height:6px;background:var(--foil);background-size:300% 100%}
@media(prefers-reduced-motion:no-preference){
  .hero-foil{animation:shift 16s linear infinite}
  @keyframes shift{to{background-position:300% 0}}
}

.rail{position:sticky;top:0;z-index:30;background:#0a0e27f0;backdrop-filter:blur(10px);
  border-bottom:2px solid var(--edge)}
.rail-in{max-width:var(--wrap);margin:0 auto;padding:.45rem var(--pad);display:flex;gap:1rem;
  align-items:center;justify-content:space-between}
.rail nav{display:flex;gap:.2rem;overflow-x:auto;scrollbar-width:none;min-width:0;flex:1 1 auto;
  mask-image:linear-gradient(to right,transparent,#000 .8rem,#000 calc(100% - .8rem),transparent)}
.rail nav::-webkit-scrollbar{display:none}
.rail nav a{font:600 .625rem/1 var(--util);letter-spacing:.07em;text-transform:uppercase;
  color:var(--softlight);text-decoration:none;white-space:nowrap;padding:.55rem .65rem;border-radius:999px;
  border:2px solid transparent}
.rail nav a i{font-style:normal;color:var(--softlight);margin-right:.45em}
.rail nav a:hover{background:#ffffff14;color:var(--light)}
.rail nav a[aria-current=true]{background:var(--h);border-color:var(--edge);color:var(--ink)}
.rail nav a[aria-current=true] i{color:var(--ink)}
.side-brand{display:none}
.side-foot{display:none}

@media(min-width:64rem){
  body{padding-left:15rem}
  .rail{position:fixed;top:0;left:0;bottom:0;width:15rem;border-right:2px solid var(--edge);border-bottom:0}
  .rail-in{flex-direction:column;align-items:stretch;height:100%;padding:1.2rem .9rem;gap:1rem;max-width:none}
  .rail nav{flex-direction:column;overflow:visible;overflow-y:auto;mask-image:none;gap:.25rem}
  .rail nav a{white-space:normal;line-height:1.5;border-radius:.4rem;font-size:.8125rem;
    letter-spacing:.04em;padding:.6rem .7rem}
  .side-brand small{font-size:.5625rem}
  .side-foot{font-size:.625rem}
  .side-brand{display:block;font:900 1.15rem/1.05 var(--display);letter-spacing:-.03em;
    padding:.2rem .3rem;color:var(--light);text-decoration:none}
  .side-brand b{color:var(--magenta);-webkit-text-stroke:1.5px var(--ink);paint-order:stroke fill;display:block}
  .side-brand small{display:block;font:400 .5rem/1.6 var(--util);letter-spacing:.14em;
    text-transform:uppercase;color:var(--softlight);margin-top:.5rem}
  .side-foot{display:block;margin-top:auto;font:400 .5625rem/1.7 var(--util);letter-spacing:.08em;color:var(--softlight)}
}

.hero{padding-block:clamp(2.25rem,6vw,4rem) clamp(1.5rem,4vw,2.5rem)}
.presub{font:600 .6875rem/1.4 var(--util);letter-spacing:.24em;text-transform:uppercase;
  color:var(--gold);margin:0 0 .6rem}
.lockup{font:900 clamp(1.25rem,3vw,2rem)/1.3 var(--display);letter-spacing:.05em;
  text-transform:uppercase;color:#fff;margin:0 0 1.1rem}
.lockup .sep{color:var(--gold);margin:0 .3em;font-weight:800}
.lockup .b{color:var(--magenta);-webkit-text-stroke:1.5px var(--ink);paint-order:stroke fill}
.wordmark{font-size:clamp(2.7rem,10.5vw,6.8rem);line-height:.94;letter-spacing:-.046em;font-weight:900;
  margin:0 0 1.1rem;color:#fff}
.wordmark span{display:block}
.wordmark .b{color:var(--magenta);-webkit-text-stroke:2px var(--ink);paint-order:stroke fill}
.spine{max-width:var(--measure);font-size:clamp(1.05rem,2.2vw,1.28rem);line-height:1.5;letter-spacing:-.012em;
  margin:0 0 .6rem;color:var(--light)}
.spine+.spine{font-size:.9375rem;color:var(--softlight)}

.permit{position:relative;border:2px solid var(--ink);background:#fff;box-shadow:8px 8px 0 var(--magenta);
  max-width:68rem;overflow:hidden;margin-top:1.8rem}
.permit>.foil{height:10px}
.permit-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);
  gap:clamp(1.1rem,3vw,2rem);padding:clamp(1.1rem,2.6vw,1.7rem)}
@media(min-width:46.01rem){.permit-grid{padding-bottom:clamp(2.2rem,4vw,3.2rem)}}
.window{position:relative;aspect-ratio:16/10;background:var(--midnight);border:2px solid var(--ink);overflow:hidden}
.window iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.ph{position:absolute;inset:0;display:grid;place-content:center;gap:.85rem;text-align:center;padding:1rem}
.ph p{margin:0;font:600 .625rem/1.7 var(--util);letter-spacing:.14em;text-transform:uppercase;color:#8B93C4}
.play{width:3.4rem;height:3.4rem;margin:0 auto;border-radius:50%;background:var(--foil);
  background-size:200%;display:grid;place-content:center}
.play::after{content:"";width:0;height:0;margin-left:.25rem;border-left:.8rem solid var(--midnight);
  border-top:.5rem solid transparent;border-bottom:.5rem solid transparent}
.vfacade{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:var(--midnight);cursor:pointer;display:block}
.vfacade img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.vplay{position:absolute;bottom:calc(1.3rem + 50px);left:1.6rem;width:4.4rem;height:4.4rem;border-radius:50%;
  background:var(--foil);background-size:200%;border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);
  display:grid;place-content:center;transform:rotate(-4deg);transition:transform .18s}
.vplay::after{content:"";width:0;height:0;margin-left:.3rem;border-left:1.05rem solid var(--midnight);
  border-top:.65rem solid transparent;border-bottom:.65rem solid transparent}
.vfacade:hover .vplay,.vfacade:focus-visible .vplay{transform:scale(1.1) rotate(5deg)}
.cap-field{margin:.75rem 0 0;padding-top:.55rem;border-top:2px solid var(--line)}
.cap-field dt{margin:0 0 .18rem;font:600 .5625rem/1.4 var(--util);letter-spacing:.14em;
  text-transform:uppercase;color:var(--magenta-ink)}
.cap-field dd{margin:0;font:400 .8125rem/1.4 var(--util);color:var(--soft)}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:0 1.3rem;margin:0;align-content:start}
.fields div{padding:.4rem 0 .5rem;border-bottom:2px solid var(--line)}
.fields div.wide{grid-column:1/-1}
.fields dt{margin:0 0 .15rem;font:600 .5625rem/1.4 var(--util);letter-spacing:.14em;
  text-transform:uppercase;color:var(--soft)}
.fields dd{margin:0;font:400 .875rem/1.4 var(--util)}
.stamp{position:absolute;z-index:3;right:clamp(1rem,3vw,2.2rem);bottom:clamp(1.6rem,3vw,2.2rem);
  width:clamp(7.5rem,11vw,9.5rem);aspect-ratio:1;display:grid;place-content:center;gap:.3rem;
  text-align:center;padding:.9rem;color:var(--magenta-ink);border:3px double var(--magenta-ink);
  border-radius:50%;transform:rotate(-9deg);mix-blend-mode:multiply;opacity:.9}
.stamp b{font:600 .6875rem/1.3 var(--util);letter-spacing:.05em;text-transform:uppercase}
.stamp small{font:400 .5625rem/1.3 var(--util);letter-spacing:.1em;text-transform:uppercase;opacity:.8}
@media(prefers-reduced-motion:no-preference){
  .stamp{animation:land .65s cubic-bezier(.2,1.5,.4,1) .4s both}
  @keyframes land{0%{transform:rotate(-28deg) scale(2);opacity:0}
    70%{transform:rotate(-7deg) scale(.96);opacity:.95}to{transform:rotate(-9deg) scale(1);opacity:.9}}
}
.mrz{margin:0;padding:.65rem var(--pad);border-top:2px solid var(--ink);background:var(--ht,#F4F2FA);
  font:400 clamp(.58rem,1.45vw,.78rem)/1.5 var(--util);letter-spacing:.04em;color:var(--hi,var(--soft));
  white-space:nowrap;overflow:hidden}
.permit .mrz{padding-inline:clamp(1.1rem,2.6vw,1.7rem)}
@media(max-width:46rem){
  .permit-grid{grid-template-columns:1fr}
  .stamp{position:static;margin:1.2rem 0 0 auto;right:auto;bottom:auto;width:8.5rem}
}

.xwalk{margin:1.8rem 0 0;max-width:60rem}
.xwalk summary{cursor:pointer;list-style:none;display:inline-block;font:600 .6875rem/1 var(--util);
  letter-spacing:.12em;text-transform:uppercase;color:var(--ink);background:var(--gold);border:2px solid var(--ink);
  border-radius:999px;padding:.8rem 1.15rem;box-shadow:4px 4px 0 var(--violet)}
.xwalk summary::-webkit-details-marker{display:none}
.xwalk summary>span::after{content:"  +"}
.xwalk[open] summary>span::after{content:"  \2013"}
.xwalk summary:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--ink)}
.xwalk>div{padding-top:1.2rem}

.part{border-top:2px solid var(--edge)}
.part>.mrz{border-top:0;border-bottom:2px solid var(--ink)}
.part-head .eyebrow,.hero>.eyebrow{color:var(--h,var(--softlight))}
.part-head{max-width:var(--wrap);margin:0 auto;padding:clamp(2rem,5vw,3.25rem) var(--pad) 0}
.part-head .part-title{font-size:clamp(1.85rem,4.6vw,2.9rem);letter-spacing:-.034em;font-weight:900;margin-bottom:.75rem;color:var(--light);display:block}
.part-body{max-width:var(--wrap);margin:0 auto;min-width:0;
  padding:clamp(1.6rem,3.5vw,2.5rem) var(--pad) clamp(3rem,7vw,5rem)}

.reading{max-width:var(--measure)}
.reading.wide-ok{max-width:none;min-width:0}
.reading.wide-ok>p,.reading.wide-ok>.bullets,.reading.wide-ok>.ord,
.reading.wide-ok>blockquote{max-width:var(--measure)}
.reading.wide-ok>.tbl{max-width:var(--col)}
h2{font-size:1.4rem;letter-spacing:-.026em;margin:0 0 .6rem;display:flex;gap:.65rem;align-items:baseline}
h3.bare{font-size:1.4rem;letter-spacing:-.026em;margin:2.4rem 0 1rem}
.bullets{list-style:none;padding:0;margin:0 0 1.05rem}
.bullets li{position:relative;padding-left:1.5rem;margin-bottom:.55rem}
.bullets li::before{content:"◆";position:absolute;left:0;top:.05em;font-size:.62em;color:var(--h,var(--magenta))}

.slip{margin:1.5rem 0;padding:1.1rem 1.25rem;background:var(--ht,var(--gold-tint));
  border:2px solid var(--ink);box-shadow:5px 5px 0 var(--h,var(--gold));transform:rotate(var(--rot,-.5deg));
  font-weight:600;font-size:1.03rem;line-height:1.48;letter-spacing:-.011em;max-width:var(--measure)}
.slip::before{content:"\201C";font-size:2.4rem;line-height:0;vertical-align:-.35em;
  color:var(--h,var(--gold));margin-right:.08em}
.slip p{margin:0}

/* ── timeline ────────────────────────────────────────────── */
.tl{position:relative;display:grid;gap:2.4rem;max-width:var(--col);margin:2rem 0;
  padding-left:clamp(1.1rem,3vw,2rem)}
.tl::before{content:"";position:absolute;left:0;top:.5rem;bottom:.5rem;width:3px;
  background:var(--edge)}
.tl>.visa::before{content:"";position:absolute;left:calc(-1 * clamp(1.1rem,3vw,2rem) - 6px);top:1rem;
  width:15px;height:15px;border-radius:50%;background:var(--h);border:3px solid var(--midnight)}
.visa{position:relative;background:#fff;border:2px solid var(--ink);box-shadow:6px 6px 0 var(--h);
  transform:rotate(var(--rot,0deg))}
.visa>header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem .8rem;
  background:var(--h);border-bottom:2px solid var(--ink);padding:.5rem .85rem}
.visa-date{font:600 .75rem/1 var(--util);letter-spacing:.05em;text-transform:uppercase;color:var(--ink)}
.visa-date i{font-style:normal;opacity:.55;margin-left:.4em}
.vbadge{font:600 .5625rem/1 var(--util);letter-spacing:.13em;text-transform:uppercase;
  background:#fff;border:2px solid var(--ink);border-radius:999px;padding:.35em .65em}
.visa-serial{font:400 .625rem/1 var(--util);letter-spacing:.1em;color:#17122cb3}
.visa-body{padding:1.1rem 1.2rem 1.3rem}
.visa-body h3{font-size:1.25rem;letter-spacing:-.026em;margin:0 0 .7rem}
.visa-body p{font-size:.9375rem;line-height:1.62;margin-bottom:.85rem;max-width:var(--measure)}
.visa-body .bullets li{font-size:.9375rem}
.visa-body>*:last-child{margin-bottom:0}
.visa-body .slip{font-size:.97rem;box-shadow:3px 3px 0 var(--h);margin:1.1rem 0}
.perf{height:9px;border-top:2px dashed var(--ink);
  background:radial-gradient(circle at 6px 4.5px,var(--page) 3.5px,#0000 3.6px) 0 0/12px 9px}

.reading.wide-ok>.efields{background:var(--paper);color:var(--ink);border:2px solid var(--ink);
  box-shadow:6px 6px 0 var(--h);padding:1rem 1.2rem;max-width:56rem}
.efields{margin:1rem 0;display:grid;gap:0;max-width:none}
.efields>div{display:grid;grid-template-columns:10rem minmax(0,1fr);gap:0 1rem;
  padding:.5rem 0;border-top:2px solid var(--line)}
.efields>div:last-child{border-bottom:2px solid var(--line)}
.efields dt{font:600 .5625rem/1.7 var(--util);letter-spacing:.12em;text-transform:uppercase;color:var(--hi)}
.efields dd{margin:0;font-size:.9375rem;line-height:1.55}
@media(max-width:34rem){.efields>div{grid-template-columns:1fr;gap:.1rem}}

.shots{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,9.5rem),1fr));gap:.55rem;margin:1.1rem 0}
.shots img{width:100%;aspect-ratio:8/5;object-fit:cover;border:2px solid var(--ink);
  cursor:zoom-in;background:var(--ht);display:block}
.shots img:hover{box-shadow:3px 3px 0 var(--h)}

.lightbox{border:2px solid var(--ink);padding:0;background:#fff;box-shadow:8px 8px 0 var(--violet);
  max-width:min(92vw,70rem)}
.lightbox::backdrop{background:#0A0E27d9}
.lightbox img{display:block;max-width:100%;max-height:82vh}
.lightbox button{position:absolute;top:.5rem;right:.5rem;font:600 .75rem/1 var(--util);
  background:var(--gold);border:2px solid var(--ink);border-radius:999px;padding:.5em .7em;
  cursor:pointer;box-shadow:2px 2px 0 var(--ink)}

.drawer{margin:.75rem 0;border:2px solid var(--line)}
.drawer summary{cursor:pointer;list-style:none;font:600 .625rem/1 var(--util);letter-spacing:.13em;
  text-transform:uppercase;padding:.65rem .85rem;background:var(--ht);color:var(--hi)}
.drawer summary::-webkit-details-marker{display:none}
.drawer summary::after{content:"  +";float:right}
.drawer[open] summary::after{content:"  \2013"}
.drawer[open] summary{border-bottom:2px solid var(--line)}
.drawer .din{padding:.85rem .95rem .5rem}
.drawer .din p,.drawer .din li{font-size:.9375rem;line-height:1.58}
.drawer .din .slip{font-size:.9375rem}

/* ── criteria sheet ──────────────────────────────────────── */
.sheet{list-style:none;margin:1.6rem 0;padding:0;display:grid;gap:1.3rem;max-width:var(--col)}
.crit{display:grid;grid-template-columns:6.5rem 1fr;background:#fff;border:2px solid var(--ink);
  box-shadow:6px 6px 0 var(--h)}
.crit-mark{background:var(--ht);border-right:2px solid var(--ink);padding:1.1rem .8rem;display:grid;
  place-content:center;text-align:center;gap:.25rem}
.crit-mark span{font-weight:900;font-size:2.15rem;line-height:1;letter-spacing:-.045em;color:var(--hi)}
.crit-mark i{font:600 .5rem/1 var(--util);letter-spacing:.14em;text-transform:uppercase;color:var(--soft);
  font-style:normal}
.crit-body{padding:1.15rem 1.35rem 1.25rem;min-width:0}
.crit-body h3{font-size:1.15rem;letter-spacing:-.026em;margin:0 0 .7rem}
.crit-body p{font-size:.9375rem;line-height:1.6;margin-bottom:.8rem}
.crit-body>*:last-child{margin-bottom:0}
.crit-body .slip{font-size:.95rem;box-shadow:3px 3px 0 var(--h)}
@media(max-width:34rem){.crit{grid-template-columns:1fr}
  .crit-mark{border-right:0;border-bottom:2px solid var(--ink);grid-auto-flow:column;
    justify-content:start;gap:.7rem;align-items:center;padding:.6rem .9rem}}
.checks{list-style:none;margin:0 0 1rem;padding:0}
.checks li{position:relative;padding-left:1.7rem;margin-bottom:.45rem;font-size:.9375rem;line-height:1.55}
.checks li::before{content:"✓";position:absolute;left:0;top:0;font-weight:800;color:var(--aqua-ink)}
.checks li.unq::before{content:"?";color:var(--hi);font-weight:900}

/* ── tables ──────────────────────────────────────────────── */
.tbl{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:1.3rem 0 1.9rem;
  border:2px solid var(--ink);box-shadow:6px 6px 0 var(--h);background:#fff;
  max-width:100%;width:100%}
.tbl table{border-collapse:collapse;width:100%;min-width:34rem;font-size:.875rem}
.tbl th{background:var(--h);border-bottom:2px solid var(--ink);text-align:left;
  padding:.6rem .8rem;font:600 .5625rem/1.3 var(--util);letter-spacing:.13em;
  text-transform:uppercase;color:var(--ink);vertical-align:bottom}
.tbl td{border-bottom:2px solid var(--line);border-right:2px solid var(--line);
  padding:.75rem .8rem;vertical-align:top;line-height:1.55}
.tbl td:last-child,.tbl th:last-child{border-right:0}
.tbl tr:last-child td{border-bottom:0}
.tbl td:first-child{background:var(--ht);font-weight:600;white-space:normal;min-width:8.5rem}
.tbl code{font-size:.8em}

.todo{display:inline-block;font:600 .625rem/1.3 var(--util);letter-spacing:.09em;text-transform:uppercase;
  background:var(--gold);border:1px solid var(--ink);padding:.1em .4em;margin:0 .15em;color:var(--ink)}

/* ── roadmap blocks ──────────────────────────────────────── */
.roadmap{display:grid;gap:.7rem;margin:1.6rem 0 2.4rem;max-width:var(--col)}
.rm-row{display:grid;grid-template-columns:9.5rem repeat(3,minmax(0,1fr));gap:.7rem;align-items:stretch}
.rm-headrow .rm-col{font:600 .625rem/1.4 var(--util);letter-spacing:.14em;text-transform:uppercase;
  color:var(--gold);align-self:end;padding-bottom:.15rem}
.rm-stream{font:600 .625rem/1.45 var(--util);letter-spacing:.12em;text-transform:uppercase;
  color:var(--softlight);align-self:center}
.rm-block{background:var(--h);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ht);
  padding:.65rem .75rem;font:600 .8125rem/1.45 var(--text);color:var(--ink)}
.rm-block.empty{background:none;border:2px dashed var(--edge);box-shadow:none}
@media(max-width:46rem){
  .rm-row{grid-template-columns:1fr;gap:.45rem}
  .rm-headrow{display:none}
  .rm-block::before{content:attr(data-when);display:block;font:600 .5625rem/1.4 var(--util);
    letter-spacing:.12em;text-transform:uppercase;opacity:.7;margin-bottom:.2rem}
}

/* ── ordered list ────────────────────────────────────────── */
.ord{list-style:none;padding:0;margin:0 0 1.05rem;counter-reset:o;max-width:var(--measure)}
.ord li{counter-increment:o;position:relative;padding-left:2.3rem;margin-bottom:.7rem}
.ord li::before{content:counter(o,decimal-leading-zero);position:absolute;left:0;top:.12em;
  font:600 .6875rem/1.7 var(--util);color:var(--h,var(--gold))}

/* ── field notes ─────────────────────────────────────────── */
.fncat{margin:1.2rem 0;max-width:var(--col);background:var(--paper);color:var(--ink);
  border:2px solid var(--ink);box-shadow:6px 6px 0 var(--h)}
.fncat>summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;
  align-items:center;gap:1rem;padding:.55rem .9rem;background:var(--h)}
.fncat>summary::-webkit-details-marker{display:none}
.fnc-l{font:800 1rem/1.3 var(--display);letter-spacing:-.015em;color:var(--ink)}
.fncat>summary>i{font:600 .625rem/1 var(--util);letter-spacing:.1em;text-transform:uppercase;
  font-style:normal;background:#fff;border:2px solid var(--ink);border-radius:999px;
  padding:.45em .7em;color:var(--ink);white-space:nowrap}
.fncat>summary>i::after{content:" +"}
.fncat[open]>summary>i::after{content:" \2013"}
.fncat[open]>summary{border-bottom:2px solid var(--ink)}
.fncat .fnotes{border:0;margin:0;max-height:32rem;overflow-y:auto;max-width:none}
.fncat .fnote{border-bottom:1px solid var(--line)}
.fncat .fnote:hover{background:var(--gold-tint)}
.fncat .fn-d{color:var(--hi)}
.fncat .fn-b b{color:var(--ink)}
.fncat .fn-b span{color:var(--soft)}
.fnx>summary{cursor:pointer;list-style:none}
.fnx>summary::-webkit-details-marker{display:none}
.fnx[open]{background:var(--gold-tint)}
.fn-full{margin:0;padding:.15rem .8rem .75rem 9.1rem;font-size:.8438rem;line-height:1.6;color:var(--ink)}
.fn-full a{color:var(--hi)}
@media(max-width:40rem){.fn-full{padding-left:.8rem}}
.ext{font-size:.8em;vertical-align:.1em}
.fncat a{color:var(--hi,var(--magenta-ink))}
.fncat a:hover{color:var(--ink);background:var(--ht,var(--gold-tint))}
.fncols{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;max-width:var(--col);align-items:start;margin:1.2rem 0}
.fncols .fncat{margin:0;max-width:none}
.fncols .fnote{grid-template-columns:5.8rem minmax(0,1fr);padding:.5rem .7rem}
@media(max-width:52rem){.fncols{grid-template-columns:1fr}}
.fnj{display:block;background:#fff;border:2px solid var(--ink);margin:.9rem;box-shadow:3px 3px 0 var(--ht)}
.fnj>summary{cursor:pointer;list-style:none;padding:0;display:block}
.fnj>summary::-webkit-details-marker{display:none}
.fnj-head{display:flex;justify-content:space-between;align-items:baseline;gap:.9rem;
  background:var(--ht);border-bottom:2px solid var(--line);padding:.5rem .75rem}
.fnj-head b{font-size:.9375rem;line-height:1.35;letter-spacing:-.015em;color:var(--ink)}
.fnj-head i{font:600 .625rem/1.6 var(--util);letter-spacing:.08em;text-transform:uppercase;
  color:var(--hi);font-style:normal;white-space:nowrap}
.fnj-cap{display:block;padding:.45rem .75rem .55rem;font-size:.8125rem;line-height:1.5;color:var(--soft)}
.fnj[open] .fnj-cap{border-bottom:2px dashed var(--line)}
.fnj-body{padding:.75rem .9rem .9rem;max-width:none;margin:0}
.fnj-body p{margin:0 0 .7rem;font-size:.875rem;line-height:1.66;color:var(--ink)}
.fnj-body .fnj-link a{color:var(--hi);font:600 .75rem/1.4 var(--util)}
.fnj.solo{margin:1rem 0;max-width:var(--col);color:var(--ink);box-shadow:5px 5px 0 var(--aqua)}
.fnj.solo .fnj-head{background:var(--aqua);border-bottom:2px solid var(--ink)}
.fnj.solo .fnj-head i{color:var(--ink);opacity:.75}
.fnj.solo .fnj-body p{font-size:.9375rem;max-width:var(--measure)}
.fnj.solo a{color:var(--hi)}
.fnotes{margin:1.3rem 0 1.8rem;max-width:56rem;border:2px solid var(--edge)}
.fnote{display:grid;grid-template-columns:7.5rem minmax(0,1fr);gap:.8rem;align-items:baseline;
  padding:.55rem .8rem;border-bottom:1px solid var(--edge)}
.fnote:last-child{border-bottom:0}
.fnote:hover{background:#ffffff0d}
.fn-d{font:600 .625rem/1.7 var(--util);letter-spacing:.08em;text-transform:uppercase;color:var(--gold)}
.fn-b b{display:block;font-size:.875rem;line-height:1.45;color:var(--light);letter-spacing:-.01em}
.fn-b span{display:block;font-size:.8125rem;line-height:1.5;color:var(--softlight);margin-top:.1rem}
@media(max-width:40rem){.fnote{grid-template-columns:1fr;gap:.15rem}}

/* ── open-question cards ─────────────────────────────────── */
.qcards{display:grid;gap:1.1rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,18rem),1fr));
  margin:1.4rem 0 2rem;max-width:var(--col);align-items:start}
.qcard{position:relative;background:var(--paper);color:var(--ink);border:2px solid var(--ink);
  box-shadow:5px 5px 0 var(--h,var(--gold));padding:1.4rem 1.1rem 1rem;transform:rotate(var(--rot,0deg))}
.qcards .qcard:nth-child(4n+1){--h:var(--magenta);--rot:-.5deg}
.qcards .qcard:nth-child(4n+2){--h:var(--aqua);--rot:.4deg}
.qcards .qcard:nth-child(4n+3){--h:var(--violet);--rot:-.3deg}
.qcards .qcard:nth-child(4n+4){--h:var(--gold);--rot:.5deg}
.q-mark{position:absolute;top:-1.05rem;left:.9rem;font:800 1.05rem/1 var(--util);background:var(--h);
  border:2px solid var(--ink);border-radius:999px;padding:.32em .58em;color:var(--ink);
  box-shadow:2.5px 2.5px 0 var(--ink);transform:rotate(-8deg)}
.qcard b{display:block;font-size:1rem;letter-spacing:-.018em;margin-bottom:.4rem}
.qcard p{margin:0;font-size:.875rem;line-height:1.55}

/* ── month roadmap: vertical timeline ────────────────────── */
.mroad{position:relative;display:grid;row-gap:1.5rem;max-width:44rem;
  margin:1.8rem 0 3.4rem;padding-left:2.1rem}
.mroad::before{content:"";position:absolute;left:.525rem;top:.15rem;bottom:-1.2rem;
  width:.25rem;background:var(--gold)}
.mroad::after{content:"";position:absolute;left:.65rem;bottom:-2.3rem;width:0;height:0;
  transform:translateX(-50%);border-top:12px solid var(--gold);
  border-left:9px solid transparent;border-right:9px solid transparent}
.mrow{position:relative;display:grid;row-gap:.5rem}
.mrow::before{content:"";position:absolute;z-index:1;left:-2rem;top:-.11rem;
  width:1.1rem;height:1.1rem;border-radius:50%;background:var(--h);
  border:3px solid var(--midnight)}
.m-when{font:700 .625rem/1.4 var(--util);letter-spacing:.13em;
  text-transform:uppercase;color:var(--h)}
.mcard{background:var(--paper);color:var(--ink);border:2px solid var(--ink);
  box-shadow:5px 5px 0 var(--h);padding:.85rem .95rem .8rem}
.mcard b{display:block;font-size:1rem;letter-spacing:-.018em}
.m-more{margin-top:.35rem}
.m-more summary{cursor:pointer;list-style:none;font:600 .5625rem/1 var(--util);
  letter-spacing:.12em;text-transform:uppercase;color:var(--hi)}
.m-more summary::-webkit-details-marker{display:none}
.m-more summary::after{content:" +"}
.m-more[open] summary::after{content:" \2013"}
.m-more p{margin:.4rem 0 0;font-size:.8438rem;line-height:1.55;color:var(--soft)}
@media(min-width:52.01rem){
  .mroad{max-width:var(--col);padding-left:0;row-gap:1.6rem}
  .mroad::before{left:calc(50% - .125rem);top:1.3rem}
  .mroad::after{left:50%}
  .mrow{grid-template-columns:1fr 8.4rem 1fr;row-gap:0;pointer-events:none}
  .mrow::before,.mcard,.m-when{pointer-events:auto}
  .mrow:nth-child(even){margin-top:-2.9rem}
  .mrow::before{left:calc(50% - .55rem);top:.95rem}
  .m-when{grid-column:2;grid-row:1;align-self:start;text-align:right;
    padding-right:5.25rem;transform:translateY(calc(1.5rem - 50%))}
  .mcard{grid-row:1}
  .mrow:nth-child(odd) .mcard{grid-column:1;box-shadow:-5px 5px 0 var(--h)}
  .mrow:nth-child(even) .mcard{grid-column:3}
}

/* ── thank-you cards ─────────────────────────────────────── */
#part-08 .bullets{columns:1;column-gap:1rem;max-width:var(--col)}
@media(min-width:44rem){#part-08 .bullets{columns:2}}
@media(min-width:58rem){#part-08 .bullets{columns:3}
  #part-08 .bullets li:nth-child(7n+1){font-size:.9375rem;padding:1.15rem 1.2rem}
  #part-08 .bullets li:nth-child(9n+5){font-size:.8125rem}}
#part-08 .bullets li{display:inline-block;width:100%;break-inside:avoid;background:var(--paper);color:var(--ink);
  border:2px solid var(--ink);box-shadow:4px 4px 0 var(--h,var(--gold));padding:.95rem 1rem;
  margin:0 0 1rem;font-size:.875rem;line-height:1.55;transform:rotate(var(--rot,0deg))}
#part-08 .bullets li::before{display:none}
#part-08 .bullets li:nth-child(5n+1){--h:var(--magenta);--rot:-.4deg}
#part-08 .bullets li:nth-child(5n+2){--h:var(--aqua);--rot:.35deg}
#part-08 .bullets li:nth-child(5n+3){--h:var(--violet);--rot:-.25deg}
#part-08 .bullets li:nth-child(5n+4){--h:var(--cyan);--rot:.3deg}
#part-08 .bullets li:nth-child(5n+5){--h:var(--gold);--rot:-.35deg}

/* ── gallery wall ────────────────────────────────────────── */
.shots.gallery{grid-template-columns:repeat(auto-fill,minmax(min(100%,13rem),1fr));
  grid-auto-rows:8rem;grid-auto-flow:dense;gap:.7rem;max-width:none;margin:1.6rem 0}
.shots.gallery img{aspect-ratio:auto;height:100%;width:100%;object-fit:cover;object-position:50% 40%}
.shots.gallery img:nth-child(6n+1){grid-column:span 2;grid-row:span 2}
.shots.gallery img:nth-child(6n+4){grid-row:span 2}
.shots.gallery img:nth-child(6n+5){grid-column:span 2}
.shots.gallery img:nth-child(8n+7){transform:rotate(-.6deg)}
.shots.gallery img:nth-child(8n+3){transform:rotate(.5deg)}

footer{border-top:2px solid var(--edge);background:#060919;color:#E7E4F4}
.foot-in{max-width:var(--wrap);margin:0 auto;padding:clamp(2rem,5vw,3rem) var(--pad);display:flex;
  flex-wrap:wrap;gap:1.5rem 2rem;justify-content:space-between;align-items:flex-end}
.foot-in p{margin:0;font:400 .75rem/1.9 var(--util);color:#ABA5C9}
.foot-in a{color:var(--gold)}
.foot-in a:hover{background:#0000;color:#fff}
.foot-stars{font-size:1.15rem;letter-spacing:.4em;
  background:var(--foil);-webkit-background-clip:text;background-clip:text;color:#0000}

/* ── prototype feedback card ─────────────────────────────── */
.vbook{position:fixed;right:1rem;bottom:1rem;z-index:40;width:min(19rem,calc(100vw - 2rem));
  background:#fff;border:2px solid var(--ink);box-shadow:5px 5px 0 var(--ink)}
.vbook-head{display:flex;justify-content:space-between;align-items:center;gap:.6rem;
  font:600 .625rem/1 var(--util);letter-spacing:.13em;text-transform:uppercase;
  background:var(--gold);border-bottom:2px solid var(--ink);padding:.55rem .75rem}
.vbook-head button{font:700 .875rem/1 var(--util);background:none;border:0;cursor:pointer;
  color:var(--ink);padding:0 .15rem}
.vb-mini{display:none}
.vbook.min{width:auto;border-radius:999px;overflow:hidden;box-shadow:3px 3px 0 var(--magenta)}
.vbook.min .vbook-body{display:none}
.vbook.min .vbook-head{border-bottom:0;cursor:pointer;padding:.6rem .95rem}
.vbook.min .vb-full,.vbook.min #vbook-min{display:none}
.vbook.min .vb-mini{display:inline}
.vbook-body{padding:.7rem .75rem .8rem}
.vbook-note{font:400 .75rem/1.55 var(--util);color:var(--soft);margin:0 0 .55rem}
.vbook form{display:flex;gap:.45rem}
.vbook input{flex:1 1 auto;min-width:0;font:inherit;font-size:.875rem;border:2px solid var(--ink);
  background:var(--page);padding:.4rem .55rem}
.vbook form button{font:600 .625rem/1 var(--util);letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink);background:var(--gold);border:2px solid var(--ink);border-radius:999px;
  padding:.55rem .8rem;box-shadow:2px 2px 0 var(--ink);cursor:pointer}
.vbook form button:hover{transform:translate(1px,1px);box-shadow:1px 1px 0 var(--ink)}
.vbook-as{font:400 .75rem/1.55 var(--util);color:var(--soft);margin:0}
.vbook-as b{color:var(--ink)}
.vbook-as button{font:inherit;color:var(--magenta-ink);background:none;border:0;padding:0;
  text-decoration:underline;cursor:pointer}
.vbook-err{font:400 .75rem/1.55 var(--util);color:var(--magenta-ink);margin:.45rem 0 0}
.vbook.done .vbook-note,.vbook.done form{display:none}
@media print{.vbook{display:none}}


/* ── inline drawer sections + decorations + sticker headings ── */
.dsec{margin:1rem 0;border-left:4px solid var(--h);padding:.05rem 0 .05rem .95rem;max-width:var(--measure)}
.dsec-l{display:block;font:600 .5625rem/1.7 var(--util);letter-spacing:.13em;text-transform:uppercase;
  color:var(--hi);margin-bottom:.3rem}
.dsec p,.dsec li{font-size:.875rem;line-height:1.6}
.dsec .bullets{margin-bottom:.3rem}
h3.bare{margin:2.9rem 0 1.4rem}
h3.bare span{display:inline-block;background:var(--paper);color:var(--ink);border:2px solid var(--ink);
  box-shadow:4px 4px 0 var(--h,var(--gold));padding:.4rem .9rem;transform:rotate(-.4deg)}
.tl>.visa::after{content:"✦";position:absolute;z-index:2;top:-1.05rem;right:1.1rem;
  font:800 1.05rem/1 var(--util);background:var(--h);color:var(--ink);border:2px solid var(--ink);
  border-radius:999px;padding:.32em .55em;box-shadow:2.5px 2.5px 0 var(--ink);transform:rotate(8deg)}
.tl>.visa:nth-child(4n+2)::after{content:"★"}
.tl>.visa:nth-child(4n+3)::after{content:"♥"}
.tl>.visa:nth-child(4n)::after{content:"❋"}
#part-08 .bullets li{position:relative}
#part-08 .bullets li[data-g]::after{content:attr(data-g);position:absolute;top:-.9rem;right:.8rem;
  font:800 .95rem/1 var(--util);background:var(--h,var(--gold));color:var(--ink);
  border:2px solid var(--ink);border-radius:999px;padding:.3em .52em;
  box-shadow:2px 2px 0 var(--ink);transform:rotate(9deg)}
#part-08 .bullets li:nth-child(even)[data-g]::after{transform:rotate(-8deg)}


.skip{position:fixed;left:-999px;top:.6rem;z-index:60;background:var(--gold);color:var(--ink);
  border:2px solid var(--ink);padding:.5rem .9rem;font:600 .75rem/1 var(--util);text-decoration:none}
.skip:focus{left:.6rem}
.progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:55;background:var(--foil);
  background-size:300% 100%;transform:scaleX(0);transform-origin:0 50%}
.openall{margin-top:.9rem;font:600 .625rem/1 var(--util);letter-spacing:.11em;text-transform:uppercase;
  color:var(--softlight);background:none;border:2px solid var(--edge);border-radius:999px;
  padding:.5rem .8rem;cursor:pointer}
.openall:hover{color:var(--light);border-color:var(--softlight)}
@media print{.skip,.progress,.openall{display:none}}

/* recogito: match the page's ink-and-gold system */
.r6o-annotation,.r6o-selection{background:#facc1533;border-bottom:2px solid var(--gold);cursor:pointer}
.r6o-annotation:hover{background:#facc1560}
.r6o-editor{font-family:var(--text);z-index:50}
.r6o-editor .r6o-arrow{display:none}
.r6o-editor .r6o-editor-inner{background:#fff;border:2px solid var(--ink);border-radius:0;
  box-shadow:5px 5px 0 var(--ink)}
.r6o-editor .r6o-widget{border-color:var(--line);font-size:.9375rem;line-height:1.55}
.r6o-editor .r6o-widget.comment.editable{background:var(--page)}
.r6o-editor .r6o-widget.comment .r6o-editable-text,
.r6o-editor .r6o-widget.comment .r6o-readonly-comment{font-family:var(--text);
  font-size:.9375rem;line-height:1.55;color:var(--ink)}
.r6o-editor .r6o-widget.comment .r6o-editable-text:empty:not(:focus):before{color:var(--soft)}
.r6o-editor .r6o-lastmodified{font:600 .5625rem/1.5 var(--util);letter-spacing:.1em;
  text-transform:uppercase;color:var(--magenta-ink)}
.r6o-editor .r6o-lastmodified-at{color:var(--soft);font-weight:400;letter-spacing:.03em;
  text-transform:none}
.r6o-editor .r6o-footer{background:var(--gold-tint);border-top:2px solid var(--ink);
  padding:.5rem .6rem}
.r6o-editor .r6o-footer .r6o-btn{font:600 .5625rem/1 var(--util);letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink);background:var(--gold);border:2px solid var(--ink);
  border-radius:999px;padding:.55rem .8rem;box-shadow:2px 2px 0 var(--ink);cursor:pointer}
.r6o-editor .r6o-footer .r6o-btn:hover{transform:translate(1px,1px);box-shadow:1px 1px 0 var(--ink)}
.r6o-editor .r6o-footer .r6o-btn.outline{background:#fff;color:var(--ink)}
.r6o-editor .r6o-footer .r6o-icon,.r6o-editor .r6o-footer svg{color:var(--magenta-ink);
  fill:var(--magenta-ink)}

@media print{
  .rail,.foil,.vbook{display:none}
  body{background:#fff;color:var(--ink);padding-left:0}
  .spine,.wordmark,.part-head .part-title,h3.bare{color:var(--ink)}
  .visa,.crit,.slip,.permit{box-shadow:none;transform:none;break-inside:avoid}
  .part{break-before:page;border-top-color:var(--line)}
  a{color:var(--ink)}
  .tbl{box-shadow:none;overflow:visible}
  .tbl table{min-width:0}
  .drawer{display:block}
  .shots{display:none}
  .rm-block{box-shadow:none}
}
