/* tower.christcode.ai additions (night register, tokens from styles.css) */
figure.plate svg,.coverplate svg{display:block;width:100%;height:auto;background:var(--bg2)}
figure.plate.sq svg{max-width:560px;margin:0 auto}
svg text{font-family:var(--mono);fill:var(--ink)}
.shaft{fill:none;stroke:var(--gold);stroke-width:3;stroke-linejoin:round;stroke-linecap:round}
.door,.win{fill:rgba(244,196,48,.08);stroke:var(--gold);stroke-width:2}
.course{stroke:var(--line);stroke-width:1.2}.ground{stroke:var(--ink-faint);stroke-width:1.5}
.gd{fill:var(--gold);stroke:var(--bg);stroke-width:2}.fd{fill:var(--bg2);stroke:var(--ember);stroke-width:2.5}
.rim2{fill:none;stroke:var(--gold);stroke-width:2.5}.lens{fill:rgba(244,196,48,.22);stroke:var(--gold-pale);stroke-width:1.5}
svg text.fn{fill:var(--ink-soft)}svg text.deg{fill:var(--ink-faint);letter-spacing:.12em}
svg text.root{font-family:var(--serif);fill:var(--gold-pale)}
.cv-bg{fill:var(--bg2)}.cv-link{stroke:var(--line);stroke-width:1.5}
svg text.cv-n{font-family:var(--serif);font-size:64px;fill:var(--gold-pale)}
svg text.cv-s{font-size:28px;letter-spacing:.12em;fill:var(--ink-soft)}
.jump{display:inline-block;margin-top:30px;font-family:var(--mono);font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;border:1px solid var(--gold);border-radius:2px;padding:12px 20px}
.roster{width:100%;max-width:720px;border-collapse:collapse;margin:36px 0 0;font-size:15px}
.roster th{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);text-align:left;padding:0 12px 10px 0;border-bottom:1px solid var(--line)}
.roster td{padding:12px 12px 12px 0;border-bottom:1px solid var(--line-soft);color:var(--ink-soft);vertical-align:top}
.roster td:first-child{font-family:var(--serif);font-size:1.25rem;color:var(--ink);white-space:nowrap}
.roster td.ref{font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--ink-faint)}
.trail{list-style:none;margin:36px 0 0;max-width:680px;border-left:1px solid var(--line);padding-left:24px}
.trail li{position:relative;padding:0 0 18px;color:var(--ink-soft);font-size:15.5px}
.trail li::before{content:"";position:absolute;left:-29px;top:9px;width:9px;height:9px;border-radius:50%;border:1px solid var(--gold);background:var(--bg)}
.trail li.g::before{background:var(--gold)}
.trail li b{display:block;font-family:var(--serif);font-weight:500;font-size:1.7rem;line-height:1.1;color:var(--gold-pale)}
.quote{border-left:2px solid var(--gold);margin:22px 0;padding:4px 0 4px 20px;font-family:var(--serif);font-style:italic;font-size:1.2rem;line-height:1.5;color:var(--ink)}
.quote cite{display:block;margin-top:8px;font-family:var(--mono);font-style:normal;font-size:10px;letter-spacing:.16em;color:var(--ink-faint);text-transform:uppercase}
.stepsx{display:grid;gap:14px;margin-top:30px}
.sx{display:grid;grid-template-columns:64px 1fr;gap:18px;border:1px solid var(--line-soft);background:var(--card);border-radius:10px;padding:20px 22px}
.sx-n{font-family:var(--serif);font-size:2.6rem;line-height:1;color:transparent;-webkit-text-stroke:1px var(--gold)}
.sx h3{font-family:var(--serif);font-weight:500;font-size:1.5rem;line-height:1.15;margin:0 0 8px;color:var(--ink)}
.sx p{font-size:15.5px;color:var(--ink-soft);margin:0 0 8px}.sx p:last-child{margin-bottom:0}
.sx .say{font-family:var(--serif);font-style:italic;font-size:1.15rem;color:var(--gold-pale);line-height:1.5}
.powers{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin:30px 0 0;max-width:720px}
.powers button{text-align:left;border:1px solid var(--line);background:var(--bg2);border-radius:10px;color:var(--ink-soft);font:400 14.5px var(--sans, Inter, sans-serif);cursor:pointer;padding:14px 16px;line-height:1.4}
.powers button b{display:block;font-family:var(--serif);font-weight:500;font-size:1.3rem;color:var(--ink);margin-bottom:4px}
.powers button[aria-pressed="true"]{border-color:var(--gold);background:rgba(244,196,48,.1)}
.powers button[aria-pressed="true"] b{color:var(--gold-pale)}
.powers button:focus-visible{outline:2px solid var(--gold-pale);outline-offset:2px}
.answer{margin:18px 0 0;max-width:720px;font-family:var(--serif);font-style:italic;font-size:1.25rem;color:var(--gold-pale);min-height:2.2em}
.note{font-family:var(--mono);font-size:10px;letter-spacing:.16em;color:var(--ink-faint);text-transform:uppercase;margin-top:12px}
.recap{list-style:none;counter-reset:s;max-width:560px;margin:36px auto 0;text-align:left}
.recap li{counter-increment:s;position:relative;padding:0 0 12px 46px;color:var(--ink-soft)}
.recap li::before{content:counter(s);position:absolute;left:0;top:-4px;font-family:var(--serif);font-size:1.8rem;color:var(--gold)}
.appendix a{color:var(--gold-pale);word-break:break-word}
html.js .module.in .rv:nth-child(n+4){transition-delay:.22s}
@media(max-width:640px){.wrap{padding:0 16px}.sx{grid-template-columns:1fr;gap:6px;padding:18px 16px}.sx-n{font-size:2rem}.roster{font-size:14px}.roster td:first-child{white-space:normal;font-size:1.1rem}.roster td.ref{display:none}.roster th:last-child{display:none}}
@media print{body::before,body::after,.rail,.jump,.powers,.answer,.note,.cta{display:none}html.js .module .rv{opacity:1;transform:none}}
