:root{--paper:#f0e5cf;--ink:#161715;--red:#f1292f;--muted:#afa89b;font-family:'Space Mono',monospace;color:var(--paper);background:var(--ink);font-synthesis:none;color-scheme:dark}
*{box-sizing:border-box}body{margin:0}button,a,summary{touch-action:manipulation}button,input{font:inherit}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer;background:var(--ink);color:var(--paper);border:1px solid #777263;padding:.65rem .9rem;font-size:.73rem}button:hover{border-color:var(--paper);background:#33352e}button:disabled{cursor:default;opacity:.5}button:focus-visible,a:focus-visible,summary:focus-visible,canvas:focus-visible{outline:3px solid #ffce54;outline-offset:4px}a{color:inherit}p{line-height:1.6}h1,h2,h3{font-family:Anton,Impact,sans-serif;font-weight:400;margin:0;line-height:1.02}.mast{height:62px;padding:0 26px;display:flex;align-items:center;gap:22px;border-bottom:1px solid #555448;background:#10110f}.brand{font-family:Anton,Impact,sans-serif;font-size:29px;letter-spacing:-1px;text-decoration:none}.brand span{color:var(--red)}.mast p{font-size:10px;letter-spacing:1.5px;flex:1}.mast button{font-size:10px}.edition{color:#a9a497}#world{position:relative;height:calc(100svh - 62px);min-height:650px;overflow:hidden;background:#383f39}#viewport{display:block;width:100%;height:100%;touch-action:none;outline-offset:-4px}.grain{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(13,17,14,.56),transparent 53%),linear-gradient(0deg,rgba(10,12,10,.60),transparent 25%);}.intro{position:absolute;left:5%;top:7%;width:min(415px,42%);text-shadow:0 2px 12px #0005}.eyebrow{font-size:10px;letter-spacing:1.9px;text-transform:uppercase;line-height:1.5}.intro h1{font-size:clamp(62px,7.7vw,119px);letter-spacing:-1px;line-height:.98;margin:23px 0 20px}.intro h1 span{color:var(--red)}.tagline{font-size:clamp(13px,1.3vw,19px);font-weight:700}.setup{max-width:390px;font-size:11px;color:#e4dccb;line-height:1.8}.primary{background:var(--red);border-color:var(--red);color:#fff;font-weight:700;padding:14px 22px}.primary:hover{background:#ce191f;border-color:#ff8f92}.intro .primary{font-size:13px;min-width:238px;margin:12px 0 0}.smallprint,#load-status{font-size:10px;line-height:1.7}.smallprint{color:#c2bcac}.text-link{font-size:10px;text-underline-offset:4px}#load-status{min-height:18px}.bottom-caption{position:absolute;bottom:10px;left:25px;right:25px;display:flex;gap:16px;justify-content:space-between;font-size:9px;color:#d4ccba}.bottom-caption a{text-decoration:none}.objective{position:absolute;top:23px;left:26px;background:#141711dc;padding:13px 18px;border-left:3px solid var(--red);max-width:420px}.objective .eyebrow{font-size:9px;color:#c3b8a2}.objective p{margin:5px 0 0;font-size:12px;font-weight:700}.meters{position:absolute;right:27px;top:26px;display:grid;grid-template-columns:auto 82px;gap:9px 12px;background:#141711dd;padding:12px;font-size:9px}.meters span{display:flex;gap:16px;justify-content:space-between}.meters b{color:#fff}meter{appearance:none;width:82px;height:8px;align-self:center;background:#494b40;border:0}meter::-webkit-meter-bar{background:#494b40;border:0;border-radius:0}meter::-webkit-meter-optimum-value{background:#e6c88b}meter::-moz-meter-bar{background:#e6c88b}.walk-controls{position:absolute;left:26px;bottom:53px;display:flex;flex-direction:column;align-items:flex-start;gap:8px}.key-help{font-size:9px;color:#ddd3be;margin:0;line-height:1.8;background:#151710ad;padding:4px 8px}.walk-controls .primary{font-size:11px;min-width:210px}.walk-controls .primary:disabled{background:#22271ef0;color:#d9d5c8;border-color:#737961;opacity:1}.walk-controls details{background:#141711e8;padding:8px 12px;max-width:380px}.walk-controls summary{font-size:10px;cursor:pointer}.destination-list{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}.destination-list button{padding:7px;font-size:10px}.conversation{position:absolute;bottom:50px;left:26px;width:min(720px,calc(100% - 52px));background:var(--paper);color:var(--ink);padding:23px 26px;box-shadow:8px 8px 0 #1517118a;max-height:71%;overflow:auto;border-top:5px solid var(--red)}.conversation h2{font-size:26px;margin-bottom:15px}.conversation .line{font-size:12px;line-height:1.65;margin:10px 0}.speaker{font-weight:700;color:#b71c1c;display:block;font-size:9px;letter-spacing:1.3px;margin-bottom:3px}.conversation .narrator{font-size:11px;color:#535449;font-style:italic}.choices{display:grid;gap:7px;margin-top:20px}.choices button{text-align:left;background:transparent;color:#171913;border:1px solid #aaa18e;font-size:11px;line-height:1.65;padding:10px 14px}.choices button:hover{background:#fff7e8;border-color:#222}.choices button:disabled{color:#605d54}.choices small{display:block;font-size:9px;font-style:italic}.conversation .primary{color:white;font-size:11px}.conversation .leave{float:right;font-size:9px;background:transparent;color:#505247;border:0;padding:4px;text-decoration:underline}.conversation .result-meta{font-size:9px;color:#766b55}.ending{position:absolute;top:8%;left:6%;width:min(550px,88%);background:#10150eea;border-top:6px solid var(--red);padding:35px;max-height:83%;overflow:auto}.ending h2{font-size:clamp(38px,4.4vw,70px);line-height:1.06}.ending p{font-size:12px;line-height:1.8}.ending .receipt{display:flex;gap:22px;font-size:10px;color:#c0bba9;margin:22px 0}.ending .support{margin-top:25px;padding-top:18px;border-top:1px solid #727362}.ending .links{display:flex;flex-wrap:wrap;gap:10px 20px;font-size:11px}.ending .links a{text-underline-offset:5px}.ending .next{font-size:10px;color:#b1b39f}.touch-pad{display:none;position:absolute;right:24px;bottom:52px;text-align:center}.touch-pad button{width:48px;height:48px;font-size:20px;margin:2px;background:#182114e6;touch-action:none;user-select:none}#notice{position:absolute;bottom:29px;left:50%;transform:translateX(-50%);font-size:10px;margin:0;background:#131710ee;padding:7px 12px;max-width:85%;width:max-content;pointer-events:none}#notice:empty{display:none}dialog{width:min(640px,93vw);border:1px solid #8c8777;background:var(--paper);color:var(--ink);padding:24px;max-height:85svh}dialog::backdrop{background:#000a}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #b4ac96;padding-bottom:18px}.dialog-head h2{font-size:28px}#menu-content p{font-size:11px;line-height:1.8}#menu-content h3{font-size:22px;margin:22px 0 10px}.menu-actions{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.journal{padding-left:20px}.journal li{font-size:10px;margin:15px 0;line-height:1.8}.journal b{display:block}.file-label{background:var(--ink);color:var(--paper);padding:10px;font-size:10px;cursor:pointer}.file-label input{display:block;max-width:240px;font-size:9px;margin-top:6px}.warning{border-left:3px solid #b21f22;padding-left:12px}.screen-reader{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}[hidden]{display:none!important}
body.talking .walk-controls,body.talking .touch-pad{display:none}
.intro{top:4%}.intro h1{font-size:clamp(62px,6.5vw,99px);margin:17px 0}.intro .smallprint{margin:8px 0}.conversation{width:min(580px,calc(100% - 52px))}
@media(pointer:coarse){.touch-pad{display:block}.key-help{display:none}.walk-controls{max-width:52%}}
@media(max-width:760px){.mast{height:52px;padding:0 14px;gap:13px}.mast p{font-size:8px;letter-spacing:.3px}.mast .edition{display:none}.brand{font-size:24px}.mast button{font-size:9px;padding:8px}#world{height:calc(100svh - 52px);min-height:690px}.intro{left:6%;top:4%;width:88%}.intro h1{font-size:64px;margin:16px 0;max-width:250px}.intro .setup{max-width:315px;font-size:10px}.intro .tagline{font-size:13px;max-width:260px}.grain{background:linear-gradient(90deg,#0d110ec9,transparent),linear-gradient(0deg,#0d110ecc,transparent 60%)}.objective{left:14px;top:14px;max-width:calc(100% - 28px);padding:10px 13px}.objective p{font-size:10px}.meters{top:97px;left:14px;right:auto;font-size:8px;padding:8px;grid-template-columns:auto 58px}meter{width:58px}.walk-controls{left:14px;bottom:50px;max-width:calc(100% - 28px)}.walk-controls .primary{padding:12px;min-width:170px;font-size:10px}.conversation{left:14px;width:calc(100% - 28px);padding:18px;bottom:50px;max-height:66%}.conversation h2{font-size:23px}.conversation .line,.choices button{font-size:10px}.conversation .narrator{font-size:10px}.bottom-caption{left:14px;right:14px;font-size:8px;gap:10px}.ending{padding:25px;top:5%;max-height:86%}.ending h2{font-size:41px}.touch-pad{right:12px;bottom:53px}.touch-pad button{width:39px;height:41px}.touch-pad~*{font-size:9px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
@media(max-width:760px){.conversation .line,.choices button{font-size:12px}.conversation .narrator{font-size:11px}.touch-pad button{width:44px;height:44px}.intro .setup{font-size:11px}.smallprint,#load-status{font-size:10px}}
#job-count{display:block;color:#b7b19f;font-size:9px;margin-top:6px}#nearby{display:flex;gap:5px;flex-wrap:wrap;max-width:420px}#nearby button{font-size:9px;background:#1d241bea;padding:8px 12px}.destination-list{max-height:210px;overflow:auto}.jobs,.followups ul{font-size:11px;line-height:1.9}.followups{border-top:1px solid #66644d;padding-top:16px;margin:16px 0}.followups h3{font-size:24px}.ending{max-height:87%;top:5%}.mast #phone-button{white-space:nowrap}@media(max-width:760px){.mast{gap:9px}.mast p{font-size:7px}.mast button{font-size:8px;padding:8px 6px}.objective{max-width:calc(100% - 28px)}.meters{top:117px}.walk-controls details{max-width:290px}#nearby{max-width:290px}}

@media(max-width:760px){body.in-car .meters,body.in-car #job-count,body.in-car .objective p{display:none}body.in-car .objective{padding:8px 13px}}

/* Character identity stays consistent between the room and every spoken turn. */
.world-nameplates{position:absolute;inset:0;pointer-events:none;z-index:2;overflow:hidden}
.world-name{position:absolute;top:0;left:0;display:block;padding:4px 11px;background:#171913;color:#fff5dc;border:2px solid #f0e5cf;border-bottom:5px solid var(--speaker-color);font-family:Anton,Impact,sans-serif;font-size:18px;line-height:1.1;box-shadow:2px 3px 0 #0005;white-space:nowrap}
.world-name::after{content:'';position:absolute;left:calc(50% - 5px);bottom:-10px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid var(--speaker-color)}
.world-name.is-active{background:#fff5dc;color:var(--speaker-color);outline:2px solid var(--speaker-color);outline-offset:2px}
.objective,.meters,.walk-controls,.touch-pad{z-index:3}.conversation,.ending{z-index:4}.bottom-caption,#notice{z-index:5}
.speech-line{display:grid;grid-template-columns:62px 1fr;gap:12px;margin:13px 0;padding:9px 10px 9px 0;border-left:4px solid var(--speaker-color);background:#fff8e980;align-items:start}
.speech-line.is-current{background:#fff9ed}
.speech-line .portrait-button{width:62px;height:66px;min-width:0;border:0;background:transparent;padding:0;overflow:hidden;cursor:pointer}
.speech-line .portrait-button:hover{background:#17191312}.speech-line .portrait-button:focus-visible{outline-color:var(--speaker-color);outline-offset:-3px}
.speaker-portrait{display:block;width:100%;height:100%;object-fit:contain;object-position:center top}
.speech-line .speaker-name{font-family:Anton,Impact,sans-serif;font-size:22px;line-height:1.1;color:var(--speaker-color);margin:0 0 5px}
.speech-line .speaker-name small{font-family:'Space Mono',monospace;font-size:9px;color:#575449;display:inline-block;margin-left:9px;vertical-align:middle}
.speech-line .spoken-text{font-size:12px;line-height:1.65;margin:0;color:#171913}
.contact-initial{display:grid;place-items:center;background:var(--speaker-color);color:#fff8e9;width:48px;height:48px;border-radius:50%;margin:7px;font-family:Anton,Impact,sans-serif;font-size:28px}
.conversation .stage-direction{font-size:11px;line-height:1.7;color:#555143;margin:8px 0}
.conversation .narrator{border-top:1px solid #bcb39d;padding-top:10px;margin-top:15px}
.thought-label,.your-turn{display:block;font-style:normal;font-weight:700;font-size:10px;line-height:1.3;margin:0 0 5px;color:#555143}
.choices .your-turn{margin:0 0 3px}.conversation{max-height:74%;padding:19px 22px}
@media(max-width:760px){.world-name{font-size:15px;padding:3px 8px}.conversation{padding:16px;max-height:69%}.speech-line{grid-template-columns:48px 1fr;gap:8px;padding:8px 8px 8px 0;margin:10px 0}.speech-line .portrait-button{width:48px;height:54px}.speech-line .speaker-name{font-size:21px}.speech-line .spoken-text{font-size:12px}.contact-initial{width:40px;height:40px;margin:5px 4px;font-size:25px}.speech-line .speaker-name small{font-size:8px;margin-left:6px}}
