:root{color-scheme:dark;--bg:#102b26;--panel:#183a32;--ink:#f0e8d5;--muted:#b6c8bd;--gold:#dfbc76;--line:#4c6256;--paper:#f0e7d1;--dark:#143a32}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.6 system-ui,sans-serif}button,input,select{font:inherit}button,a,select,input{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #8bddd2;outline-offset:4px}a{color:var(--gold)}button{border:1px solid #7c8e77;background:transparent;color:inherit;border-radius:4px;min-height:46px;padding:8px 14px}button.primary{background:var(--gold);color:#19362b;border-color:var(--gold);font-weight:700;width:100%;padding:13px 18px}button.small{font-size:14px;min-height:40px;padding:5px 11px}button.selected{border-color:var(--gold);background:#dfbc761c}h1,h2,h3{font-family:Georgia,serif;font-weight:400;line-height:1.12}h1{font-size:clamp(40px,5vw,66px);margin:8px 0 16px}h2{font-size:32px;margin:10px 0 18px}h3{font-size:25px;margin:12px 0}p{margin:10px 0 18px}.eyebrow{font-size:11px;letter-spacing:.19em;font-weight:700;text-transform:uppercase;color:var(--gold)}.topbar{display:flex;align-items:center;justify-content:space-between;padding:18px max(24px,4vw);border-bottom:1px solid var(--line);gap:16px}.wordmark{font:bold 30px Georgia;text-decoration:none;color:var(--ink)}.wordmark span{font:11px system-ui;letter-spacing:.15em;margin-left:12px}.profile{display:flex;align-items:center;gap:18px;font-size:14px}.profile #identity{max-width:240px;text-align:right;overflow-wrap:anywhere}.profile small{display:block;color:var(--muted)}main{max-width:1510px;margin:auto;padding:26px 4vw 30px}.intro{display:flex;justify-content:space-between;align-items:center;gap:20px}.intro>div>p:not(.eyebrow){color:var(--muted);font-size:19px}.back{font-size:14px}.play-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(350px,1fr);gap:28px;align-items:start;margin-top:20px}.world{background:#123d38;border:1px solid var(--line);border-radius:8px;overflow:hidden;position:sticky;top:20px}.world-heading,.world-footer{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 18px;background:#102d29}.world-heading>span{font-size:11px;letter-spacing:.16em;color:var(--gold)}.world-heading button,.world-footer button{font-size:13px}.world-footer{font-size:14px;border-top:1px solid var(--line)}.stage{height:440px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 40% 40%,#577b73,#183a35 80%)}#canvas,#canvas canvas,#scene-labels,#simple-scene{position:absolute;inset:0;width:100%;height:100%}#canvas canvas{display:block}#scene-labels{pointer-events:none}.scene-label{position:absolute;transform:translate(-50%,-100%);border:1px solid #d7ba7777;background:#102c28e8;white-space:nowrap;padding:4px 8px;border-radius:4px;font-size:12px;line-height:1.3;color:#f4e8c8}.scene-label small{display:block;color:#b5d2c4;font-size:10px}.scene-note{position:absolute;bottom:14px;left:16px;right:16px;text-align:center;color:#efe3c5;font:italic 16px Georgia;pointer-events:none;text-shadow:0 1px 3px #102b26}.people-nav{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:14px}.people-nav button{font-size:14px;padding:10px 6px}.people-nav small{display:block;font-size:11px;color:var(--muted)}.world-help{padding:0 18px 4px;color:var(--muted);font-size:13px}.panel{background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--gold);padding:26px;border-radius:5px;scroll-margin-top:16px}.panel blockquote{font:20px/1.5 Georgia;margin:20px 0;padding:8px 0 8px 20px;border-left:2px solid var(--gold)}.muted{color:var(--muted)}.small-note{font-size:13px;color:var(--muted)}.character-options{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.character-options button{padding:5px 5px 8px;font-size:13px}.character-options img{display:block;width:100%;height:105px;object-fit:cover;border-radius:3px;margin-bottom:6px}.form-field{display:block;margin:15px 0}.form-field input,select{width:100%;margin-top:6px;background:#102b26;color:var(--ink);border:1px solid #758373;border-radius:4px;min-height:46px;padding:8px 10px}.steps{display:flex;gap:6px;margin-bottom:24px;list-style:none;padding:0}.steps li{flex:1;border-top:3px solid #627166;padding-top:7px;font-size:11px;color:var(--muted)}.steps li.active{border-color:var(--gold);color:var(--gold)}.wish-list{margin:20px 0;border-block:1px solid var(--line)}.wish-list details{padding:10px 0;border-bottom:1px solid #4c62566b}.wish-list details:last-child{border:0}summary{cursor:pointer;min-height:40px;padding:5px 0;font-weight:600}.wish-list p{font-size:15px;color:var(--muted)}.offer{display:grid;grid-template-columns:42px 1fr;align-items:center;gap:12px;margin:16px 0}.offer svg{width:36px;height:36px;color:var(--gold)}.offer label{font-size:16px}.offer label small{display:block;font-size:12px;color:var(--muted)}.consent-list{list-style:none;padding:0;margin:20px 0}.consent-list li{padding:10px 0;border-bottom:1px solid var(--line)}.consent-list strong{display:block;font-size:16px}.consent-list small{font-size:14px;color:var(--muted)}.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.actions>button{flex:1}.card{background:var(--paper);color:var(--dark);border-radius:5px;padding:24px;margin:20px 0;border-top:4px solid var(--gold)}.card .eyebrow{color:#60664e}.card h2{font-size:31px}.card .role{font-weight:700;font-size:18px}.card .contribution{font-size:18px;line-height:1.55}.card details{border-top:1px solid #9d9b7d}.card .saved{font-size:14px}.card .exchange-line{font-size:15px}.card .card-name{font-size:15px;margin-top:22px}.settings{background:#203f35;border:1px solid var(--line);padding:26px;max-width:800px;margin:24px 0}.settings h2{font-size:26px}.settings p{font-size:15px}.save-status{font-size:13px;color:var(--muted);min-height:21px;margin:0}.save-status.warning{background:#655329;color:#fff2c7;padding:12px}.settings[hidden],#simple-scene[hidden],#canvas[hidden],#scene-labels[hidden]{display:none}footer{display:flex;justify-content:space-between;gap:15px;border-top:1px solid var(--line);margin-top:30px;padding:20px 0;color:var(--muted);font-size:12px}#feedback{position:fixed;bottom:max(24px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);max-width:min(600px,90vw);border-radius:5px;padding:14px 20px;background:#f0e7d1;color:#17372e;box-shadow:0 5px 30px #0005;z-index:8}#feedback:empty{display:none}.simple-map{height:100%;display:flex;align-items:center;justify-content:center;gap:20px;padding:30px;flex-wrap:wrap;background:radial-gradient(ellipse,#557064,#153b31)}.map-person{background:#122e27d9;border:1px solid #cba85f88;border-radius:50% 50% 5px 5px;padding:22px 14px;text-align:center;width:30%;min-width:120px;font-size:14px}.map-person strong{display:block}.map-person svg{display:block;width:48px;height:48px;margin:10px auto;color:#e1c37d}.map-person.here{box-shadow:0 0 0 3px #d8b66d}.scene-loading{position:absolute;top:20px;left:20px;font-size:13px}.replay-note{border-left:2px solid var(--gold);padding-left:14px;margin-top:24px;font-size:14px}
@media(max-width:1000px){.play-layout{grid-template-columns:minmax(0,1fr) minmax(330px,.9fr);gap:16px}.stage{height:400px}.panel{padding:20px}.scene-label{font-size:10px}.world-heading{gap:6px;padding:10px}}
@media(max-width:760px){.topbar{padding:14px 18px}.wordmark span{display:none}.profile{gap:10px;font-size:12px}.profile button{font-size:12px}.profile #identity{max-width:160px}main{padding:20px 14px}.intro{align-items:flex-start}.intro .back{margin-top:10px;white-space:nowrap}.intro>div>p:not(.eyebrow){font-size:17px}.play-layout{grid-template-columns:1fr}.world{position:relative;top:0}.stage{height:340px}.world-footer{font-size:13px}.panel{padding:22px}.world-help{margin-top:0}.character-options img{height:100px}.settings{padding:20px}.people-nav{padding:10px;gap:6px}footer{flex-direction:column}.card{padding:20px}.card p{font-size:18px}#feedback{bottom:24px}.map-person{padding:16px 8px;font-size:12px;min-width:95px}.simple-map{padding:12px;gap:7px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

.card p.eyebrow{font-size:11px;letter-spacing:.16em}.next-step{display:none}.intro{position:relative}.intro .back{position:absolute;right:0;top:0}.intro>div{width:100%}.intro .eyebrow{padding-right:100px}
@media(max-width:760px){.next-step{display:block;padding:12px 18px;min-height:46px;text-align:center;border-top:1px solid var(--line)}.intro .back{font-size:12px}.intro h1{font-size:42px}.intro .eyebrow{font-size:10px}}

.sound-controls{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:14px 0;border-bottom:1px solid var(--line)}.sound-controls>button{min-width:125px;color:var(--gold)}.sound-controls>span{font-size:12px;color:var(--muted)}.sound-controls details{font-size:14px}.sound-options{padding:10px 0;display:flex;gap:20px;flex-wrap:wrap}.sound-options label{display:block}.sound-options input[type=range]{display:block;width:200px;max-width:100%;height:44px;accent-color:var(--gold)}.sound-options output{color:var(--gold);margin-left:10px}.sound-check{display:flex!important;gap:10px;align-items:center;min-height:44px}.sound-check input{width:20px;height:20px;accent-color:var(--gold)}.restore-label{display:block;margin-top:22px;font-size:15px}.restore-label input{display:block;max-width:100%;margin-top:10px;min-height:46px}#restore-preview{border-top:1px solid var(--line);margin-top:18px;padding-top:18px}#restore-preview[hidden]{display:none}@media(max-width:760px){.sound-controls{gap:10px}.sound-controls>span{flex-basis:100%}.sound-controls details[open]{flex-basis:100%}.world-heading{flex-wrap:wrap}}

#feedback{width:min(560px,calc(100vw - 32px));font-size:15px;pointer-events:none}

.view-controls{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.world-footer{flex-wrap:wrap}.view-controls button{min-height:46px}#visitor-view[aria-pressed=true]{border-color:var(--gold);color:var(--gold)}
/* Phone quest view: the world is primary; existing controls move into a modal sheet. */
[hidden]{display:none!important}
#onboarding-slot{max-width:620px;margin:20px auto}#onboarding-slot:empty{display:none}
#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;margin:0}.quest-top strong{font-size:13px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.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:15px;min-height:48px;padding:9px 8px}
#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;overflow:auto;background:#efe6d3;color:#102b26;box-sizing:border-box}
#quest-sheet::backdrop{background:#00150f99}
#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:#efe6d3;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:#102b26;padding:0}
#sheet-content>.panel{border:0;padding:20px;margin:0;color:var(--ink)}#sheet-content .settings{margin:0;border:0;color:#eee4cd;background:#163a31;padding:20px}#sheet-content .settings h2{color:#eee4cd}#sheet-content .view-controls,#sheet-content .sound-controls{margin:0;padding:16px;background:#102b26;color:#eee4cd;display:flex}#sheet-content .view-controls{justify-content:flex-start}#sheet-content .view-controls button{flex:1}
#sheet-content .people-nav{display:grid;grid-template-columns:1fr;padding:16px;gap:12px}#sheet-content .people-nav button{min-height:58px;background:#163a31;color:#eee4cd;text-align:left}
#quest-notes-content{padding:5px 20px}#quest-notes-content section{padding:12px 0;border-bottom:1px solid #a8946555}#quest-notes-content h3{font:24px Georgia;margin:12px 0}#quest-notes-content blockquote{margin:12px 0;font:19px/1.55 Georgia;border-left:2px solid #a89465;padding-left:15px}
#sheet-next{display:block;width:calc(100% - 32px);margin:16px auto 0}#sheet-feedback:empty{display:none}#sheet-feedback{padding:12px 20px;background:#f0dcc0;color:#412713;margin:16px 0 0;font-size:15px}
@media(max-width:780px){
 body.quest-playing{overflow:hidden;height:min(100dvh,var(--quest-height,100dvh))}
 body.quest-playing>.topbar,body.quest-playing main>.intro,body.quest-playing main>.settings,body.quest-playing main>.save-status,body.quest-playing main>.sound-controls,body.quest-playing main>footer,body.quest-playing .play-layout>#panel{display:none}
 body.quest-playing .world{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;border-radius:0}
 body.quest-playing .world>.world-heading,body.quest-playing .world>.world-footer,body.quest-playing .world>#people-nav,body.quest-playing .world>.world-help,body.quest-playing .world>.next-step{display:none}
 body.quest-playing .world>.stage{height:100%}body.quest-playing #canvas{height:100%;touch-action:none}body.quest-playing #simple-scene{height:100%;overflow:auto;padding-top:56px}body.quest-playing .simple-map{display:grid;grid-template-columns:1fr;gap:8px}body.quest-playing .map-person{display:flex;align-items:center;gap:12px;min-height:70px}body.quest-playing .map-person svg{width:42px;height:42px}body.quest-playing #scene-note{display:none}
 body.quest-playing #feedback{z-index:55;bottom:calc(104px + env(safe-area-inset-bottom))}
 #quest-sheet .card{padding:18px}#quest-sheet .card .contribution{font-size:20px}
}
@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 .world{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}}

.visitor-transcript{margin:.65rem 0}.voice-status:empty{display:none}.voice-status{font-size:.85rem;padding:.3rem .7rem;color:var(--gold)}
