:root{color-scheme:dark;--ink:#102b26;--paper:#f0e7d3;--gold:#dbba77;--line:#dbba7744}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--ink);color:var(--paper);font:17px/1.6 system-ui}a{color:var(--gold);text-underline-offset:5px}button,input,select{font:inherit}button,.button{border:1px solid #dbba7780;color:var(--paper);background:#193a31;border-radius:3px;min-height:48px;padding:11px 18px;cursor:pointer;text-decoration:none;display:inline-block}button:hover,.button:hover{background:#25483e}button:disabled{cursor:default;opacity:.5}.primary{background:var(--gold);color:#132d26;font-weight:650}.primary:hover{background:#ebcc8f}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #7fdbca;outline-offset:4px}header{max-width:1280px;margin:auto;padding:25px 40px;display:flex;justify-content:space-between;gap:20px;align-items:center;border-bottom:1px solid var(--line)}.brand{font:42px Georgia;text-decoration:none;color:var(--paper);white-space:nowrap}.brand span{font:11px system-ui;letter-spacing:3px;display:block}nav{display:flex;gap:25px;align-items:center}nav a{font-size:14px}nav button{font-size:14px}main{max-width:1280px;margin:auto;padding:0 40px}h1,h2,h3{font-family:Georgia;font-weight:400;line-height:1.1}h1{font-size:clamp(50px,6vw,84px);letter-spacing:-3px;margin:18px 0 28px}h2{font-size:42px;margin:15px 0 24px}h3{font-size:29px;margin:12px 0 18px}p{margin:0 0 20px}.eyebrow{font-size:11px;letter-spacing:2px;color:var(--gold);text-transform:uppercase}.lead{font:clamp(27px,3vw,40px)/1.25 Georgia}.small{font-size:13px;color:#c3cabd}.opening{display:grid;grid-template-columns:1.1fr .9fr;gap:85px;align-items:center;padding:65px 0 80px}.opening>div{max-width:500px}.route{font-size:14px;color:#d6c6a8;margin:30px 0}.route span{margin:0 12px}.opening .small{margin-top:20px}.place-card{margin:0;position:relative;border:1px solid var(--gold);border-radius:6px;overflow:hidden;max-width:430px;box-shadow:0 25px 60px #00110d80}.place-card img{display:block;width:100%;aspect-ratio:2/3;object-fit:cover}.place-card figcaption{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,#081e1af7 35%);padding:75px 25px 22px}.place-card h2{margin:4px 0;font-size:40px}.place-card p{margin-bottom:8px}.place-card button{background:transparent;font-size:13px;padding:8px 0;min-height:44px;border:0;text-decoration:underline;text-underline-offset:5px}.section-title{display:flex;justify-content:space-between;align-items:end;gap:20px}.section-title h2{font-size:48px;margin-bottom:14px}.section-title #identity{font-size:14px;color:var(--gold)}.encounter{border-top:1px solid var(--line);padding:50px 0}.encounter-layout{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:start}.clue-board{background:#17372f;border:1px solid var(--line)}.map-image{height:270px;position:relative;overflow:hidden}.map-image img{width:100%;height:100%;object-fit:cover;object-position:50% 45%;opacity:.8}.map-caption{position:absolute;left:20px;bottom:15px;font:24px Georgia;text-shadow:0 2px 5px #000}#stops{padding:15px;display:grid;grid-template-columns:1fr;gap:8px}#stops button{text-align:left;display:flex;align-items:center;gap:14px}#stops .number{font:24px Georgia;color:var(--gold);width:30px;flex-shrink:0}#stops small{display:block;color:#c0ccbf;font-size:12px}#clue-detail{border-top:1px solid var(--line);padding:24px;min-height:240px}.panel{background:var(--paper);color:var(--ink);padding:32px;border-top:3px solid var(--gold);scroll-margin-top:20px}.panel .eyebrow{color:#675029}.panel button{margin-top:12px}.panel input,.panel select,.settings select{width:100%;padding:12px;background:#fffcf1;color:var(--ink);border:1px solid #687568;border-radius:2px;margin:6px 0 18px;min-height:48px}.panel label{font-size:15px;font-weight:600;display:block}.panel p{font-size:16px}.panel .small{color:#56675b}.choices{display:grid;gap:10px;margin:24px 0}.choice{border:1px solid #77887677;padding:15px}.choice p{margin:7px 0 0;font-size:14px}.progress{display:flex;gap:14px;border-bottom:1px solid #68756855;padding-bottom:15px;font-size:12px;flex-wrap:wrap}.card{border:1px solid #a88c53;padding:24px;background:#fff9eb}.card blockquote{font:25px/1.3 Georgia;margin:20px 0}.card details{font-size:14px;border-top:1px solid #a88c5355;padding-top:14px}.card summary{cursor:pointer}.settings{padding:30px;background:#1c3b32;border:1px solid var(--line);margin-bottom:30px;max-width:800px}.settings select{max-width:500px;display:block}.settings button{margin:10px 10px 10px 0}#save-status{font-size:13px;min-height:24px;color:#b7d1c2}.warning{color:#ffce95!important}.afterword{border-top:1px solid var(--line);padding:70px 0;max-width:700px}footer{border-top:1px solid var(--line);padding:25px 40px;max-width:1280px;margin:auto;display:flex;justify-content:space-between;gap:20px;font-size:12px;color:#a8b8aa}dialog{max-width:430px;width:calc(100% - 32px);background:var(--paper);color:var(--ink);border:1px solid var(--gold);padding:38px;max-height:calc(100dvh - 32px);overflow:auto}dialog::backdrop{background:#00150fbb}dialog .eyebrow{color:#75603a}dialog .small{color:#526356}dialog dt{font-size:12px;text-transform:uppercase;letter-spacing:1px;margin-top:20px}dialog dd{margin:6px 0 15px}.close{position:absolute;top:8px;right:8px;padding:0 12px;min-width:44px;background:none;border:none;color:var(--ink);font-size:24px}#feedback{position:fixed;bottom:calc(18px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:20;background:#2b2016;color:#fff3d7;max-width:calc(100% - 24px);width:max-content;padding:14px 20px;border:1px solid var(--gold);box-shadow:0 4px 20px #0005}#feedback:empty{display:none}[hidden]{display:none!important}@media(max-width:780px){header{padding:18px 20px}nav{gap:12px;flex-wrap:wrap;justify-content:flex-end}nav a{font-size:12px}nav button{padding:6px 10px}main{padding:0 20px}.opening{grid-template-columns:1fr;gap:30px;padding:40px 0}.opening>div{max-width:600px}.place-card{max-width:390px;margin:auto;width:100%}.encounter-layout{grid-template-columns:1fr}.section-title{display:block}.section-title h2{font-size:38px}.panel{padding:24px}.map-image{height:210px}.afterword{padding:45px 0}footer{padding:20px;display:block}footer span{display:block;margin-top:10px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{header,.opening>div,.encounter,.afterword,footer,#feedback,dialog,.place-card button{display:none!important}body{background:white}.opening{display:block;padding:0}main{padding:0}.place-card{width:89mm;height:146mm;margin:0;box-shadow:none;print-color-adjust:exact;-webkit-print-color-adjust:exact}.place-card img{height:100%}.place-card h2{font-size:24pt}.place-card p{font-size:9pt}}
/* The city is a stage, with all reading and actions in normal document flow. */
.opening{padding:38px 0 42px;gap:70px;grid-template-columns:1.25fr .75fr}.opening h1{margin:12px 0 18px}.opening .place-card{max-width:300px}.opening .place-card img{aspect-ratio:1}.opening .place-card figcaption{padding:65px 20px 15px}.opening .place-card h2{font-size:29px}.opening .lead{font-size:32px}.opening .route{margin:20px 0}.quay{border:1px solid var(--line);background:#153a31;margin:12px 0 32px;scroll-margin-top:16px}.scene-top{padding:20px 24px;display:flex;justify-content:space-between;gap:16px;align-items:center}.scene-top h3,.scene-top p{margin:0}.scene-top h3{font-size:26px;margin-top:5px}.view-controls{display:flex;gap:8px}.view-controls button{font-size:13px;padding:8px 13px}.stage{position:relative;background:#8aa797;overflow:hidden}#quay-canvas{width:100%;height:570px;touch-action:pan-y}#quay-canvas canvas{width:100%;height:100%;display:block}#scene-loading{position:absolute;left:18px;bottom:18px;max-width:calc(100% - 36px);padding:10px 15px;background:#183a30e8;color:#f2e4c7;font-size:14px;pointer-events:none}#scene-fallback{min-height:240px;padding:40px;background:linear-gradient(150deg,#284a3e,#102b26)}.walking-bar{padding:15px 24px;display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line)}.walking-bar strong{font-size:15px;color:var(--gold)}.walking-bar span{font-size:12px;color:#c2d0bc}#destinations{padding:16px 24px;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}#destinations button{text-align:left;font-size:15px;padding:13px 15px}#destinations small{display:block;font-size:11px;color:#bdd0be;margin-top:4px}#destinations button[aria-pressed=true]{border-color:var(--gold);background:#334d3d;box-shadow:inset 0 3px var(--gold)}.visitor-guide{display:flex;gap:18px;align-items:flex-start;padding:20px 24px;border-top:1px solid var(--line);background:#193d32}.visitor-guide p{margin:0}.visitor-guide .eyebrow{margin-bottom:7px}.visitor-guide div{max-width:760px}.guide-mark{width:40px;height:40px;flex-shrink:0;border:1px solid var(--gold);border-radius:50%;display:grid;place-items:center;color:var(--gold);font:24px Georgia}#arrival{padding:24px;border-top:1px solid var(--line)}#arrival p:last-child{margin-bottom:0}#arrival h3{font-size:30px}.notebook-title{padding:22px 24px 0;margin:0;font-size:28px}.next-encounter{margin-top:25px;border-top:1px solid #9b865a;padding-top:25px}.next-encounter .button{font-size:15px}.next-encounter h3{font-size:26px}.next-encounter button{color:var(--ink);background:transparent}#quay-canvas:focus-visible{outline:3px solid #77d4bf;outline-offset:-4px}.encounter{padding-top:35px}.place-card figcaption .eyebrow{font-size:10px}
@media(max-width:780px){.opening{grid-template-columns:1fr;padding:30px 0;gap:25px}.opening .place-card{max-width:none;width:100%}.opening .place-card img{aspect-ratio:2}.opening .place-card figcaption{padding:45px 18px 15px}.opening .place-card figcaption>p:not(.eyebrow){display:none}.opening .small{font-size:12px}.scene-top{display:block;padding:16px}.view-controls{margin-top:14px}.view-controls button{flex:1}#quay-canvas{height:390px}.walking-bar{padding:14px 16px;display:block}.walking-bar span{display:block;margin-top:4px}#destinations{padding:14px 16px;grid-template-columns:1fr 1fr;gap:8px}#destinations button{font-size:14px;min-height:70px}.visitor-guide{padding:18px 16px;gap:12px}.visitor-guide p{font-size:15px}#arrival{padding:20px 16px}#arrival .primary{width:100%}.encounter-layout{gap:22px}.panel{padding:22px 18px}.card{padding:20px}.card blockquote{font-size:24px}.scene-top h3{font-size:25px}.quay{scroll-margin-top:8px}#scene-fallback{padding:25px 20px}#scene-loading{font-size:12px}.opening h1{font-size:52px}}
@media(max-width:360px){main{padding:0 12px}header{padding:16px 12px}#quay-canvas{height:330px}.view-controls{gap:5px}.view-controls button{font-size:12px;padding:7px 8px}}
@media print{.quay{display:none!important}}

#onboarding-slot:has(.panel){max-width:650px;margin-bottom:32px}#onboarding-slot .panel{scroll-margin-top:20px}

.walking-bar{align-items:center;flex-wrap:wrap}.walking-bar #stop-walk{font-size:13px;padding:7px 12px;min-height:44px}.walking-bar span{flex:1;text-align:right}@media(max-width:780px){.walking-bar{display:flex}.walking-bar span{flex-basis:100%;text-align:left}.walking-bar #stop-walk{margin-left:auto}}
/* Phone play mode: the world is the screen; reading opens a real focus-trapped sheet. */
#quest-hud{position:fixed;inset:0 0 auto;height:min(100dvh,var(--quest-height,100dvh));z-index:40;pointer-events:none;display:flex;flex-direction:column;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
#quest-hud button{pointer-events:auto;min-height:48px;touch-action:manipulation}
.quest-top{display:flex;align-items:center;gap:10px;min-height:60px;padding:5px 10px;background:#102b26f5;border-bottom:1px solid var(--line)}
.quest-top>div{min-width:0;flex:1}.quest-top .eyebrow{font-size:9px;display:block;letter-spacing:1.5px}.quest-top strong{font-size:13px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.quest-top button{width:48px;padding:0;font-size:23px}.quest-tools{display:flex;justify-content:space-between;padding:8px 12px;gap:10px}.quest-tools button{padding:7px 13px;font-size:14px;background:#102b26e8;box-shadow:0 2px 10px #0002}.quest-tools span{color:var(--gold);margin-left:5px}
.quest-bottom{margin-top:auto;padding:8px 12px 10px;background:#102b26f5;border-top:1px solid var(--line)}.quest-bottom span{display:block;font-size:12px;line-height:18px;min-height:18px;margin-bottom:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.quest-bottom button{width:100%;font-size:16px;min-height:48px;padding:9px 12px}
#quest-resume{position:fixed;z-index:25;bottom:calc(12px + env(safe-area-inset-bottom));right:12px;box-shadow:0 2px 15px #0005;font-size:14px}
#quest-sheet{position:fixed;inset:auto 0 0;margin:0 auto;width:100%;max-width:780px;max-height:min(88dvh,calc(var(--quest-height,100dvh) - 20px));border-radius:18px 18px 0 0;padding:0 0 calc(16px + env(safe-area-inset-bottom));border:1px solid var(--gold);overscroll-behavior:contain;background:var(--paper);color:var(--ink)}
#quest-sheet .sheet-heading{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 16px;background:var(--paper);border-bottom:1px solid #102b2644}
#quest-sheet h2{font-size:25px;margin:10px 0}#quest-sheet-close{min-width:48px;min-height:48px;font-size:26px;background:transparent;border:0;color:var(--ink);padding:0}
#sheet-content>.panel{border-top:0;padding:20px}#sheet-content .clue-board{border:0;color:var(--paper)}#sheet-content #destinations{grid-template-columns:1fr;display:grid}#sheet-content .settings{margin:0;border:0;color:var(--paper);padding:20px}#sheet-content .settings h2{color:var(--paper)}#sheet-content .view-controls{margin:0;padding:16px;background:var(--ink);display:flex}#sheet-content .view-controls button{flex:1}#sheet-next{display:block;width:calc(100% - 32px);margin:16px auto 0}#sheet-next[hidden]{display:none}
@media(max-width:780px){
 body.quest-playing{overflow:hidden;height:min(100dvh,var(--quest-height,100dvh))}
 body.quest-playing .quay{position:fixed;inset:0 0 auto;height:min(100dvh,var(--quest-height,100dvh));z-index:30;margin:0;border:0;padding-top:calc(60px + env(safe-area-inset-top));padding-bottom:calc(90px + env(safe-area-inset-bottom));background:#153a31}
 body.quest-playing .quay>.scene-top,body.quest-playing .quay>.walking-bar,body.quest-playing .quay>#destinations,body.quest-playing .quay>.visitor-guide,body.quest-playing .quay>#arrival{display:none}
 body.quest-playing .quay>.stage{height:100%}body.quest-playing #quay-canvas{height:100%;touch-action:none}body.quest-playing #scene-fallback{height:100%;display:grid;align-content:center;padding:24px;min-height:0}body.quest-playing #scene-fallback p{font-size:15px}
 body.quest-playing #feedback{z-index:55;bottom:calc(104px + env(safe-area-inset-bottom));font-size:14px}
 #quest-sheet #feedback{position:static}#quest-sheet .card blockquote{font-size:23px}#quest-sheet .card{padding:18px}
}
@media(max-width:780px) and (max-height:480px){.quest-top{min-height:52px}.quest-tools{padding:4px 10px}.quest-bottom{padding:5px 10px}.quest-bottom span{display:none}body.quest-playing .quay{padding-top:calc(52px + env(safe-area-inset-top));padding-bottom:calc(60px + env(safe-area-inset-bottom))}#quest-sheet{max-height:95dvh}}
@media print{#quest-hud,#quest-sheet,#quest-resume{display:none!important}}

#sheet-feedback:empty{display:none}#sheet-feedback{padding:12px 20px;background:#f0dcc0;color:#412713;margin:16px 0 0;font-size:15px}

.departure-panel{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #bfa46a}.departure-panel .primary{width:100%}

#scene-caption{position:absolute;bottom:18px;left:18px;max-width:min(430px,calc(100% - 36px));padding:10px 15px;background:#102b26ed;border-left:2px solid var(--gold);pointer-events:none;font-size:14px;line-height:1.4;color:var(--paper)}#scene-caption strong{display:block;font-size:11px;letter-spacing:1px;color:var(--gold);margin-bottom:4px}#scene-caption span{display:block}@media(max-width:780px){#scene-caption{left:12px;bottom:10px;max-width:calc(100% - 24px);font-size:13px;padding:9px 12px}}
