/* miracle.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)}
.rim{fill:none;stroke:var(--line);stroke-width:1.5}
.tri{fill:rgba(244,196,48,.06);stroke:var(--gold);stroke-width:2.5;stroke-linejoin:round}
.loop{fill:none;stroke:var(--ember);stroke-width:3;stroke-linejoin:round}
.gd{fill:var(--gold);stroke:var(--bg);stroke-width:2}.fd{fill:var(--bg2);stroke:var(--ember);stroke-width:2.5}
.sd{fill:var(--ink);stroke:var(--bg);stroke-width:2}
svg text.gn{fill:var(--gold-pale);font-weight:500}svg text.fn{fill:var(--ink-soft)}
.tick{stroke:var(--ink-faint);stroke-width:1.5}
.sleep{fill:none;stroke:var(--ink);stroke-width:5;stroke-linecap:round;opacity:.85}
svg text.deg{fill:var(--ink-faint);letter-spacing:.08em}
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:58px;fill:var(--gold-pale)}
svg text.cv-s{font-size:30px;letter-spacing:.12em;fill:var(--ink-soft)}
.key{display:flex;flex-wrap:wrap;gap:6px 22px;font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);padding:12px 6px 0}
.key i{display:inline-block;vertical-align:middle;margin-right:8px}
.k-loop{width:26px;border-top:3px solid var(--ember)}.k-tri{width:26px;border-top:3px solid var(--gold)}
.k-gate{width:11px;height:11px;border-radius:50%;background:var(--gold)}.k-sleep{width:26px;border-top:4px solid var(--ink)}
.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}
.double{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:10px;margin:36px 0 0;max-width:640px}
.double li{border:1px solid var(--line-soft);background:var(--card);border-radius:8px;padding:12px 14px;font-family:var(--mono);font-size:12px;color:var(--ink-faint);letter-spacing:.06em}
.double li b{display:block;font-family:var(--serif);font-weight:500;font-size:1.9rem;line-height:1.1;color:var(--ink)}
.double li.g b{color:var(--gold-pale)}
.finder{margin:44px 0 10px;border:1px solid var(--line);background:var(--bg2);border-radius:10px;padding:24px 22px;max-width:640px}
.finder label{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.24em;color:var(--gold);text-transform:uppercase;margin-bottom:12px}
.finder input{font:500 1.5rem var(--serif);color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:6px;padding:8px 12px;color-scheme:dark;max-width:100%}
.finder input:focus{outline:2px solid var(--gold);outline-offset:2px}
.finder ol{list-style:none;margin:20px 0 0;border-left:1px solid var(--line);padding-left:20px}
.finder li{position:relative;padding:0 0 12px;color:var(--ink-soft);font-size:15.5px}
.finder li::before{content:"";position:absolute;left:-25px;top:9px;width:9px;height:9px;border-radius:50%;border:1px solid var(--gold);background:var(--bg)}
.finder li.gate::before{background:var(--gold)}
.finder li b{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--gold-pale);font-weight:500;display:inline-block;min-width:96px}
.phase{font-family:var(--mono);font-size:10.5px;letter-spacing:.26em;color:var(--gold);text-transform:uppercase;margin:46px 0 14px;display:flex;align-items:center;gap:14px}
.phase::after{content:"";flex:1;height:1px;background:var(--line)}
.phase span{color:var(--ink-faint)}
.stepsx{display:grid;gap:14px}
.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}
.sx .cite{display:block;margin-top:8px;font-family:var(--mono);font-size:10px;letter-spacing:.16em;color:var(--ink-faint);text-transform:uppercase}
.tally{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:40px 0 0;max-width:640px}
.tally div{border:1px solid var(--line-soft);background:var(--card);border-radius:10px;padding:18px 14px;text-align:center}
.tally b{display:block;font-family:var(--serif);font-weight:500;font-size:2.4rem;line-height:1;color:var(--gold-pale)}
.tally span{display:block;margin-top:8px;font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;color:var(--ink-faint);text-transform:uppercase}
.nights{display:grid;grid-template-columns:repeat(9,1fr);gap:8px;margin:26px 0 0;max-width:640px}
.nights button{aspect-ratio:1;border:1px solid var(--line);background:var(--bg2);border-radius:50%;color:var(--ink-soft);font:500 1.1rem var(--serif);cursor:pointer;padding:0}
.nights button[aria-pressed="true"]{background:var(--gold);border-color:var(--gold);color:#241F18}
.nights button:focus-visible{outline:2px solid var(--gold-pale);outline-offset:2px}
.nights-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)}
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}.nights{gap:5px}.nights button{font-size:.95rem}.tally b{font-size:1.9rem}.finder{padding:20px 16px}}
@media print{body::before,body::after,.rail,.jump,.finder,.nights,.nights-note,.cta{display:none}html.js .module .rv{opacity:1;transform:none}}
