body>.global-motion{display:none}
[data-rfb-rain]{position:absolute;overflow:hidden;pointer-events:none;isolation:isolate;background:none}
[data-rfb-rain]>.rfb-raindrop{position:absolute;z-index:var(--rfb-z-base);left:var(--rain-x);top:-12%;display:block;width:1.5px;height:var(--rain-length);border-radius:var(--rfb-r-pill);background:linear-gradient(180deg,transparent 0,#d9efff 28%,#a9cfe8 76%,transparent 100%);opacity:var(--rain-opacity);filter:drop-shadow(0 0 2px #bde5ff66);transform:rotate(7deg);animation:rfbRainFall var(--rain-speed) linear var(--rain-delay) infinite}
@keyframes rfbRainFall{from{top:-12%;margin-left:0}to{top:112%;margin-left:-18px}}
.office-window-weather{height:56%}
.office-window-weather>i{z-index:2}
.rain-layer[data-rfb-rain]{inset:0;opacity:.48}

.scarlet-rain[data-rfb-rain]{opacity:.52}
.calm [data-rfb-rain]{display:none}
.case-folder, .map-destination{min-height:44px}


@media(max-width:900px){.office-window-weather{height:54%}}
@media(max-width:600px){.office-window-weather{height:54%}}
@media(prefers-reduced-motion:reduce){[data-rfb-rain]{display:none}}
.journey-rail{transition:box-shadow .22s ease,border-color .22s ease,filter .22s ease}
.journey-rail.wheel-intent{border-color:#e1bd72aa;box-shadow:0 12px 30px var(--rfb-scrim-1),0 0 18px #d4aa5552;filter:brightness(1.08)}
.journey-rail.wheel-intent>i{box-shadow:0 0 9px #edc36b88}
/* One column until there is genuinely room for two. The old rule let the
   right track take its 560px maximum{display:grid;grid-template-columns:minmax(0, 1fr);gap:var(--rfb-s6);align-items:start;padding:clamp(3.5rem, 8vw, 7rem) var(--rfb-gutter);background:radial-gradient(circle at 12% 20%, #7e263f55, transparent 30%), #a51f36, #79233955, transparent 34%), var(--rfb-night)}.delivery-card{width:min(680px, 100%);padding:clamp(2rem, 6vw, 4.5rem);border:1px solid color-mix(in srgb, var(--rfb-brass) 53%, transparent);background:color-mix(in srgb, var(--rfb-ink) 94%, transparent);box-shadow:0 2rem 6rem #000;color:var(--rfb-paper);text-align:center}.delivery-card>img{width:84px}.delivery-card h1{font:600 clamp(2.5rem, 7vw, 5rem)/.9 Cormorant, Georgia, serif}.delivery-card p{line-height:1.65;color:var(--rfb-paper-dim)}

/* Final-system geometry safeguards used across every page. */



.hub-body .office-window-weather{height:49%}
@media(max-width:600px){.hub-body .office-window-weather{height:47%}}

/* Final iPhone-class composition layer. */
@media(max-width:600px){
html{font-size:16px;-webkit-text-size-adjust:100%}body{min-width:0}
.experience-home main,.experience-home .experience-stage{width:100dvw;height:100svh;min-height:0}
.experience-home .journey-rail{bottom:max(8px,env(safe-area-inset-bottom));width:calc(100vw - 20px);max-width:420px;grid-template-columns:40px minmax(0,1fr) 74px 40px;gap:7px;padding:7px 8px}
.experience-home .journey-rail button{width:40px;height:36px;min-width:40px;min-height:36px}
.experience-home .journey-rail>span{overflow:hidden;text-overflow:ellipsis;text-align:center;font-size:var(--rfb-t-micro)}.experience-home .journey-rail>i{width:74px}
.entry-title{left:18px;top:82px;width:68vw;max-width:300px}.entry-title p{margin-bottom:12px;padding:6px 9px;font-size:var(--rfb-t-micro);letter-spacing:var(--rfb-track-word)}.entry-title h1{font-size:clamp(36px,10.8vw,47px);line-height:.86}.entry-instruction{margin-top:12px;font-size:var(--rfb-t-micro)}
.entry-skip{right:14px;bottom:76px;min-height:44px;display:flex;align-items:center;padding:10px 12px;border:1px solid color-mix(in srgb, var(--rfb-brass) 60%, transparent);border-radius:var(--rfb-r-pill);background:color-mix(in srgb, var(--rfb-night) 87%, transparent);color:var(--rfb-paper-warm)}.first-visit-cue{bottom:130px}
.crossroads-v2{width:100dvw;height:100svh;min-height:0}.crossroads-v2 .waystation-backdrop{width:100%;height:100%;min-width:0;left:0;transform:none;object-fit:cover;object-position:center}
.waystation-heading{top:74px;width:calc(100% - 28px)}.waystation-heading p{font-size:var(--rfb-t-micro);letter-spacing:var(--rfb-track-word)}.waystation-heading h2{font-size:clamp(29px,8.5vw,38px);line-height:.95}
.crossroads-v2 .world-door{bottom:72px;width:31%;min-height:54px;padding:7px 5px}.crossroads-v2 .scarlet-door{left:1.5%}.crossroads-v2 .library-door{left:50%}.crossroads-v2 .gus-door{right:1.5%}.crossroads-v2 .world-door .plaque-kicker{display:none}.crossroads-v2 .world-door strong{max-width:100%;font-size:var(--rfb-t-micro);line-height:1.08;white-space:normal}
.scarlet-scene{width:100dvw;height:100svh;min-height:0}.scarlet-copy{left:16px;top:78px;width:calc(100vw - 32px);padding:14px;border:1px solid color-mix(in srgb, var(--rfb-brass) 33%, transparent);background:color-mix(in srgb, var(--rfb-night) 91%, transparent)}.scarlet-copy>p,.scarlet-copy>h2,.scarlet-copy>span{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.scarlet-copy>p{margin:0;font-size:var(--rfb-t-micro)}.scarlet-copy h2{margin:8px 0;font-size:clamp(33px,9.5vw,43px);line-height:.9}.scarlet-copy>span{font-size:15px}.scarlet-copy>div{gap:8px;margin-top:12px}.scarlet-copy a,.scarlet-copy button{display:flex;align-items:center;justify-content:center;min-height:44px;padding:9px 11px;font-size:var(--rfb-t-micro);text-align:center}.scarlet-scene .clue-one{left:14%;bottom:16%;width:44px;height:44px}.scarlet-scene .clue-two{right:18%;top:34%;width:44px;height:44px}
.edition-drawer{left:10px;right:10px;bottom:66px;width:auto;max-height:calc(100svh - 86px);overflow:auto;padding:20px 16px}
.library-room{height:100svh;padding:70px 16px 76px;overflow:auto}.library-room header h2{font-size:clamp(36px,11vw,48px);line-height:.9}.library-books,.library-books:has(a:nth-child(5)){grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 12px}.library-books a{min-width:0}.library-books img,.library-books:has(a:nth-child(5)) img{width:100%;height:auto;aspect-ratio:2/3;object-fit:cover}.library-books span{font-size:var(--rfb-t-micro);line-height:1.3}.library-close{top:64px;right:10px;width:44px;height:44px}
.teacher-workshop{position:fixed;inset:0 auto 0 0;width:100dvw;height:100svh;min-height:0;padding:76px 16px 72px;overflow:auto;display:block}.teacher-copy{position:relative;inset:auto;width:min(82%,350px);padding:12px;background:#07120fbd;transform:none}.teacher-copy h2{font-size:clamp(34px,9.5vw,42px);line-height:.88}.teacher-copy span{font-size:14px}.satchel-tools{position:relative;inset:auto;width:auto;height:auto;margin-top:clamp(210px,32svh,300px);display:grid;grid-template-columns:1fr 1fr;gap:8px;transform:none}.satchel-tool{position:relative;inset:auto;width:auto;max-width:none;min-height:56px;padding:8px;transform:none}.teacher-open{position:relative;inset:auto;display:block;width:100%;min-height:46px;margin-top:10px;transform:none}.teacher-note{position:relative;inset:auto;margin:9px 0 0;font-size:var(--rfb-t-micro);text-align:center}
.finale{width:100dvw;height:100svh;min-height:0;padding:88px 18px 78px}.finale h2{font-size:clamp(39px,12vw,54px)}.finale a{min-height:44px;display:inline-flex;align-items:center;margin:6px 3px;padding:10px 12px}.rfb-consent-dialog{max-height:calc(100svh - 20px);overflow:auto}

body:has(.evidence-room) .evidence-room{min-height:100svh;padding:86px 16px 76px;grid-template-rows:auto minmax(310px,52svh) auto}body:has(.evidence-room) .detective-portrait{right:-15%;bottom:18%;width:92vw}
body:has(.passport-stage) .passport-stage{min-height:1180px;padding:86px 16px 76px}body:has(.passport-stage) .gus-traveler{top:220px;right:-13%;width:88vw}
.scarlet-scene .scarlet-copy{left:0;top:68px;width:100vw;padding:18px 20px;border-block:1px solid color-mix(in srgb, var(--rfb-brass) 33%, transparent);border-inline:0;background:color-mix(in srgb, var(--rfb-night) 96%, transparent)}
.delivery{padding:5rem 1rem}.delivery-card,.policy-card{padding:1.5rem 1rem}
.hub-body .office-window-weather{display:none}
}

/* Delivery confirmation must remain usable when its content is taller than the viewport. */
/* Operational pages (delivery, refund policy, newsletter) are documents, not
   immersive stages. They must never inherit the homepage viewport lock.
   Fixes F-01. See 00. Design Docs/15-design-and-frontend-audit-20260908.html */
html:has(body>.delivery),
html:has(body>.policy-page){height:auto;min-height:100%;overflow-x:hidden;overflow-y:auto}
/* body must NOT also scroll: two nested scrollers trap the wheel partway down. */
body:has(>.delivery),
body:has(>.policy-page){height:auto;min-height:100%;overflow:visible}
body>.delivery{position:relative;inset:auto;width:100%;min-height:0;overflow:visible;display:flex;align-items:flex-start;justify-content:center;padding:clamp(18px,4vh,48px) var(--rfb-gutter) var(--rfb-s9)}
body>.delivery .delivery-card{margin:0 auto;padding:clamp(1.25rem,3vw,3rem)}
body>.policy-page{position:relative;inset:auto;width:100%;min-height:0;overflow:visible;display:flex;align-items:flex-start;justify-content:center;padding:clamp(18px,4vh,48px) var(--rfb-gutter) var(--rfb-s9)}
body>.policy-page .policy-card{margin:0 auto;width:min(760px,100%);padding:clamp(1.5rem,3vw,3rem)}
body>.delivery .delivery-card h1{font-size:clamp(2.35rem,5vw,4.5rem);line-height:.92}
@media(max-width:600px){
body>.delivery{padding:14px 12px 40px}
body>.delivery .delivery-card{padding:1.25rem 1rem}
body>.delivery .delivery-card>img{width:64px}
body>.delivery .delivery-card h1{font-size:clamp(2.2rem,13vw,3.35rem)}
body>.delivery .delivery-button{display:block;margin:1rem 0;min-height:48px}
}
@media(max-width:600px){}

/* Library volumes: quiet hardcover depth without turning the covers into picture frames. */
.library-books a{position:relative;display:block;padding:0 6px 10px 0}
.library-books a::before{content:"";position:absolute;z-index:0;inset:4px 1px 15px 5px;border-radius:1px 5px 5px 1px;background:var(--rfb-wood);box-shadow:0 10px 18px var(--rfb-scrim-2)}
.library-books img,.library-books:has(a:nth-child(5)) img{position:relative;z-index:var(--rfb-z-base);border:0;border-left:5px solid #47291f;border-radius:1px 4px 4px 1px;box-shadow:inset 2px 0 #c89a4c,4px 5px 0 var(--rfb-paper-dim),7px 8px 0 var(--rfb-wood),0 13px 18px var(--rfb-scrim-1);transform:none;transition:transform .22s ease,filter .22s ease}
.library-books a:hover img,.library-books a:focus-visible img{transform:translateY(-5px);filter:brightness(1.05)}
.library-books a:focus-visible{outline:3px solid var(--rfb-focus);outline-offset:5px}
.library-books span{position:relative;z-index:2;margin-top:16px}
@media(max-width:600px){.library-books,.library-books:has(a:nth-child(5)){gap:28px 18px}.library-books a{padding-right:7px;padding-bottom:9px}.library-books img,.library-books:has(a:nth-child(5)) img{border-left-width:4px;box-shadow:inset 1px 0 #c89a4c,3px 4px 0 var(--rfb-paper-dim),6px 7px 0 var(--rfb-wood),0 11px 15px var(--rfb-scrim-1)}.library-books span{margin-top:15px}}

/* Phone pacing: reveal the next section promptly instead of reserving desktop-sized empty stages. */
@media(max-width:600px){
body:has(.book-hero) .book-hero{height:720px;min-height:0;padding:82px 18px 24px;gap:12px}
body:has(.evidence-room) .evidence-room{min-height:780px;padding:82px 16px 22px}
body:has(.passport-stage) .passport-stage{min-height:1080px;padding:82px 16px 24px}

.world-hub{min-height:760px}
.case-desk,.traveler-profile{min-height:0;padding:42px 18px}
}
.book-world .sand-layer{display:none}

@media(max-width:760px){
.book-world .story-evidence{padding-top:38px}.book-world .story-evidence h2{font-size:40px}
}
@media(max-width:600px){.world-hub{padding-top:108px}.world-hub .hub-heading{top:118px}

.world-hub{padding-top:68px}.world-hub .hub-heading{top:82px}.world-hub .hub-heading h1{font-size:38px;line-height:.82}.world-hub .hub-heading span{font-size:15px}.world-hub .hub-environment{height:100%}.scarlet-office .office-window-weather{left:0;top:0;width:39%;height:52%;overflow:hidden}
}
@media(max-width:600px){}
@media(max-width:600px){.world-hub{padding-top:108px}.world-hub .hub-heading{top:120px}}
@media(max-width:600px){

}
@media(max-width:600px){.world-hub{padding-top:96px}.world-hub .hub-heading{top:108px}}
@media(max-width:600px){}
@media(max-width:760px){

}

/* Human-centered polish: clear hierarchy, comfortable targets, and responsive staging. */
:where(a,button,[role="button"]){-webkit-tap-highlight-color:transparent}
:where(a,button,[role="button"]):focus-visible{outline:3px solid var(--rfb-focus);outline-offset:4px}

@media(min-width:761px) and (max-width:1024px){

.book-world .story-evidence{grid-template-columns:1fr;gap:42px;padding:72px 7vw}.book-world .evidence-cards{grid-template-columns:repeat(3,1fr)}.book-world .evidence-cards article{min-height:190px}
}

@media(max-width:600px){
.crossroads-v2 .world-door{transform:none;overflow:hidden;border-radius:22px;box-shadow:inset 0 0 0 2px #f4ce7a33,0 10px 25px var(--rfb-scrim-3)}
.crossroads-v2 .library-door{left:50%;width:calc(33.333% - 12px);transform:translateX(-50%)}
.crossroads-v2 .world-door strong{display:block;width:100%;font-size:var(--rfb-t-micro);line-height:1.1;letter-spacing:0;white-space:normal;overflow-wrap:anywhere}.crossroads-v2 .world-door::before,.crossroads-v2 .world-door::after{display:none}
.library-room header{padding-inline:42px}.library-room header h2{max-width:310px;margin-inline:auto}.library-books a{border-radius:5px}.library-books a:active img{transform:translateY(-3px) scale(.99)}.library-books b{line-height:1.05}.library-books span{opacity:.82}

}

@media(hover:none){:where(a,button,[role="button"]):active{filter:brightness(1.14);transform:scale(.985)}}
@media(prefers-reduced-motion:reduce){}

/* Final phone story pacing: finish the hero within one comfortable viewport and
   stage the authentic character art beside its hardcover on every title. */
@media(max-width:600px){
body.book-world:has(.book-hero) .book-hero{height:680px;min-height:680px;padding:108px 18px 18px}
}

/* Character gateway on phones: both worlds share one screen, with neither
   character deferred below the fold. */
@media(max-width:600px){

}

/* Document pages: the disclosure and the way back are controls, not prose. */
body.rfb-doc .device-help>summary{
  display:flex; align-items:center; gap:var(--rfb-s2);
  min-height:var(--rfb-tap); cursor:pointer;
}
body.rfb-doc main>*>p:last-child>a,
body.rfb-doc .delivery-card>p:last-child>a,
body.rfb-doc .policy-card>p:last-child>a{
  display:inline-flex; align-items:center; min-height:var(--rfb-tap);
}

/* The "Return home" link on the preference and delivery cards had no style of
   its own, so it rendered in the browser's default blue: 2.06:1 on the dark
   card. It only appears in the invalid-request state, which is why the
   rendered-pixel contrast sweep never sampled it. */
.delivery-card a{color:var(--rfb-brass-lit);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.delivery-card a:hover,.delivery-card a:focus-visible{color:var(--rfb-paper)}
