@font-face{font-family:Manrope;src:url(assets/Manrope-Regular.ttf)}@font-face{font-family:Manrope;src:url(assets/Manrope-Bold.ttf);font-weight:700}@font-face{font-family:Fraunces;src:url(assets/Fraunces-Black.ttf);font-weight:900}
:root{color-scheme:dark;--orange:#f26522;--paper:#ede8dd;--muted:#b4bbbd;--line:#ffffff23;--ink:#0b1119}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--ink);color:var(--paper);font-family:Manrope,Arial,sans-serif;font-size:16px}button,a,input,select{font:inherit}button{border:1px solid var(--line);background:#101a21db;color:var(--paper);padding:12px 17px;cursor:pointer;transition:background .2s,border-color .2s;min-height:44px}button:hover{background:#293438;border-color:#ecac69}button:focus-visible,a:focus-visible{outline:2px solid #ffad69;outline-offset:4px}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--orange);color:#fff;border:0;font-weight:700;padding:19px 24px;box-shadow:0 6px 0 #713117}button.primary:hover{background:#ff7937}button.primary span{margin-left:34px}button.small{padding:9px 12px}button.subtle{background:transparent}button.danger{border-color:#bc6b60}kbd{font:12px Manrope;border:1px solid #ffffff45;border-radius:3px;padding:3px 5px;display:inline-block;color:#d5d8d6}#world{width:100%;height:100%;display:block;touch-action:none;outline:0}.vignette{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 38%,#040b1470 100%);z-index:1}#topbar{position:fixed;left:0;right:0;top:0;z-index:4;display:flex;align-items:center;gap:32px;padding:24px 38px;background:linear-gradient(#050c18b3,transparent);pointer-events:none}#topbar>*{pointer-events:auto}.brand{display:flex;align-items:center;gap:9px;color:#f26522;text-decoration:none;font-size:21px;font-weight:700;letter-spacing:-.7px}.brand img{width:34px;height:34px;object-fit:contain}.brand>span{position:relative}.brand-thread{position:absolute;right:-7px;top:13px;font-size:15px;color:#d9d9dd}.brand-thread:before{content:'';position:absolute;height:13px;width:1px;top:-9px;left:6px;background:#b0b0b0}.edition{font-size:11px;letter-spacing:2px;color:#bcc3c3}.edition b{color:#f26522;margin:0 9px}.top-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.top-actions button{font-size:13px;background:#09141ab8;padding:8px 13px;min-height:38px}.top-actions kbd{margin-left:7px;font-size:10px}#title-screen{position:fixed;inset:0;z-index:2;background:linear-gradient(90deg,#060e19ec 0%,#09152290 30%,transparent 67%);display:flex;align-items:center;pointer-events:none}.title-content{margin-left:7vw;margin-top:3vh;max-width:570px;pointer-events:auto}.eyebrow{font-size:12px;font-weight:700;letter-spacing:2.5px;color:#f6a263;line-height:1.6}.title-content .eyebrow{display:flex;align-items:center;gap:10px}.eyebrow>span{display:inline-block;width:22px;height:1px;background:#ed8644}h1{font:900 clamp(60px,7.3vw,112px)/.97 Fraunces,Georgia,serif;letter-spacing:-5px;margin:26px 0;color:#eee6d7;text-shadow:0 4px 25px #0009}h1>span{display:block;font:900 clamp(23px,2.5vw,38px)/1.4 Fraunces,Georgia,serif;letter-spacing:-1px;color:#bdc6c4;margin-top:14px}p.intro{font-size:17px;line-height:1.9;color:#c2cdcf;margin:27px 0 30px}.start-note{font-size:12px;color:#aab6bc;margin-top:20px}.title-controls{display:flex;gap:20px;margin-top:32px;font-size:12px;color:#b1bec2;align-items:center}.title-controls kbd{margin-right:5px}.invitation-stamp{position:absolute;right:5.7vw;bottom:16vh;border:1px solid #dbc69d77;outline:1px solid #dbc69d44;outline-offset:5px;padding:20px 24px;transform:rotate(-7deg);text-align:center;color:#e6d9b9;background:#10202a42;box-shadow:0 12px 60px #0009}.invitation-stamp span{display:block;font-size:10px;letter-spacing:3px}.invitation-stamp strong{font:900 26px/1.8 Fraunces,serif}.title-bottom{position:absolute;bottom:28px;left:38px;right:38px;display:flex;justify-content:space-between;font-size:10px;letter-spacing:2.5px;color:#aebaba}#hud{position:fixed;inset:0;pointer-events:none;z-index:2}#hud button{pointer-events:auto}.location{position:absolute;top:95px;left:38px;display:flex;flex-direction:column;gap:6px}#location-name{font-size:11px;letter-spacing:2px;color:#becdce}.clock{font:900 25px Fraunces,serif;color:#dac9a7}#crosshair{position:absolute;left:50%;top:50%;width:5px;height:5px;border-radius:50%;background:#faf1d7bb;box-shadow:0 0 0 5px #0002;transform:translate(-50%,-50%)}#interact{position:absolute;left:50%;top:58%;transform:translateX(-50%);white-space:nowrap;background:#0b171ded;box-shadow:0 4px 30px #000a;font-size:14px;border-color:#daa56170}#interact kbd{margin-right:10px}.quest{position:absolute;left:38px;bottom:63px;max-width:470px;border-left:2px solid var(--orange);padding-left:18px;text-shadow:0 2px 9px #000}.quest .eyebrow{font-size:11px;letter-spacing:2px;margin:0 0 7px}.quest>p:last-child{font-size:17px;line-height:1.5;margin:0;color:#f2e6d3}#seals{position:absolute;right:38px;bottom:59px;display:flex;gap:10px;align-items:center;border:0;background:transparent;padding:12px 0}.seal{width:38px;height:45px;display:grid;place-items:center;border:1px solid #80989866;color:#8d9f9e;font-family:Georgia;font-size:18px;background:#101d20bb;clip-path:polygon(0 0,100% 0,100% 80%,50% 100%,0 80%)}.seal.lit{color:#ffd494;background:#854521bd;border-color:#ffb969;filter:drop-shadow(0 0 8px #ff792a55)}.seal-caption{position:absolute;top:-7px;right:0;font-size:9px;letter-spacing:2px;color:#cbb59d}.desktop-help{position:absolute;left:38px;bottom:26px;font-size:11px;color:#bdc6c6}#toast{position:fixed;bottom:175px;left:50%;max-width:90vw;transform:translate(-50%,12px);z-index:8;background:#17252bec;border:1px solid #9e815775;padding:13px 22px;color:#eee4d5;text-align:center;opacity:0;pointer-events:none;font-size:14px;transition:opacity .2s,transform .2s}#toast.show{opacity:1;transform:translate(-50%,0)}dialog{width:min(600px,calc(100vw - 32px));max-height:82dvh;overflow:auto;border:1px solid #8c775854;color:var(--paper);background:linear-gradient(135deg,#172329,#0b141d);padding:35px 38px 26px;box-shadow:0 24px 120px #000b}dialog::backdrop{background:#02091294;backdrop-filter:blur(4px)}#close-dialog{position:absolute;right:13px;top:10px;background:transparent;border:0;font-size:26px;padding:2px 10px;min-height:38px;color:#ccd3d1}dialog .eyebrow{font-size:11px;margin:0 0 12px;padding-right:25px}h2{font:900 34px/1.15 Fraunces,Georgia,serif;letter-spacing:-1px;margin:0 0 20px}#dialog-body{font-size:16px;color:#c6d0ce;line-height:1.8;white-space:pre-line;margin:0 0 22px}#dialog-options{display:grid;gap:9px}#dialog-options button{text-align:left;font-size:15px;line-height:1.5;padding:12px 16px;border-color:#ffffff29}#dialog-options button:hover{border-color:#f6a263;background:#563421}#dialog-options button.emphasis{background:var(--orange);font-weight:700;border-color:var(--orange);color:white}#dialog-footer{font-size:12px;color:#95a8ad;line-height:1.7;margin:15px 0 0}.progress-pips{display:flex;gap:8px;margin:0 0 20px}.progress-pips span{height:4px;flex:1;background:#ffffff15}.progress-pips span.on{background:#f6a263}.inventory-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px}.inventory-item{border:1px solid #ffffff18;padding:12px;font-size:13px;color:#b1c2c5}.inventory-item strong{display:block;color:#e6dbbf;margin-bottom:5px}.settings-row{display:flex;align-items:center;gap:10px;font-size:14px;padding:10px 0;color:#d2d9d6}.settings-row input{accent-color:var(--orange);width:20px;height:20px}.keepsake-preview{width:100%;margin-bottom:18px;border:1px solid #c19a6970}.upload-label{display:block;font-size:14px;margin:14px 0 20px}.upload-label input{display:block;max-width:100%;margin-top:12px;font-size:13px}#fade{position:fixed;inset:0;background:#070d15;z-index:10;pointer-events:none;opacity:0;transition:opacity .22s}#fade.on{opacity:1}#touch-controls{display:none}#ar-overlay{position:fixed;inset:0;z-index:20;pointer-events:none;padding:25px;text-align:center;background:transparent}#ar-overlay p{background:#0a141be8;padding:12px;border:1px solid #ffffff44;font-size:14px}#ar-overlay button{pointer-events:auto;position:absolute;bottom:30px;left:50%;transform:translateX(-50%)}.fatal{position:fixed;inset:20%;padding:30px;background:#18232b;z-index:30;line-height:1.7}body.xr #topbar,body.xr #hud,body.xr .vignette,body.xr #title-screen{display:none!important}[hidden]{display:none!important}
@media(pointer:coarse){#touch-controls{display:block;position:absolute;inset:0;pointer-events:none}#joystick{position:absolute;left:26px;bottom:37px;width:110px;height:110px;border:1px solid #d8dddb55;border-radius:50%;background:#0a182044;pointer-events:auto;touch-action:none}#joystick span{position:absolute;left:34px;top:34px;width:40px;height:40px;border:1px solid #e2d4b28a;border-radius:50%;background:#a9a89544}#touch-action{position:absolute;right:27px;bottom:62px;width:65px;height:65px;border-radius:50%;font-size:29px;background:#0d1b21a8;touch-action:none}#touch-controls>span{position:absolute;right:22px;bottom:32px;font-size:10px;color:#bccccc}.desktop-help{display:none}.quest{bottom:175px;max-width:80%}#seals{bottom:170px}.title-controls{display:none}#interact{top:57%}#interact kbd{display:none}}
@media(max-width:700px){#topbar{padding:19px 20px;gap:10px}.brand{font-size:18px;gap:7px}.brand img{width:27px;height:27px}.edition{display:none}.top-actions{gap:5px}.top-actions button{font-size:11px;padding:7px 9px}.top-actions kbd{display:none}.title-content{margin-left:7vw;margin-top:25px;max-width:86vw}h1{font-size:64px;letter-spacing:-3px}h1>span{font-size:26px;margin-top:9px}.title-content .eyebrow{font-size:10px;letter-spacing:2px}p.intro{font-size:15px;margin:23px 0;line-height:1.8}#title-screen{background:linear-gradient(90deg,#06111ce3,#07152165),linear-gradient(0deg,#050d16aa,transparent)}.invitation-stamp{display:none}.title-bottom{left:22px;right:22px;bottom:19px;font-size:9px;letter-spacing:1.3px}.title-bottom span:last-child{display:none}.title-controls{gap:10px;font-size:10px}button.primary{padding:17px 20px}.location{left:22px;top:84px}.quest{left:22px;right:22px;max-width:none;padding-left:13px}.quest>p:last-child{font-size:14px}#seals{right:22px;bottom:142px;gap:6px}.seal{width:26px;height:31px;font-size:13px}.seal-caption{display:none}#toast{bottom:240px;font-size:13px;width:85vw}dialog{padding:29px 24px 23px;max-height:84dvh}h2{font-size:29px}#dialog-body{font-size:15px;line-height:1.7}#dialog-options button{font-size:14px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

.character-dialog{width:min(780px,calc(100vw - 32px));min-height:540px}.character-dialog #dialog-custom{float:left;width:43%}.character-preview{width:100%;height:340px;object-fit:contain;background:radial-gradient(ellipse,#52616a55,transparent 70%)}.character-dialog #dialog-options{margin-left:46%;grid-template-columns:1fr 1fr;gap:8px}.character-dialog #dialog-options button{font-size:13px;padding:11px}.character-dialog #dialog-options .emphasis{grid-column:1/-1}.character-dialog #dialog-footer{clear:both;padding-top:16px}#crosshair{opacity:.4}#character{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:600px){.character-dialog{min-height:0}.character-dialog #dialog-custom{float:none;width:100%}.character-preview{height:200px}.character-dialog #dialog-options{margin-left:0}.character-dialog h2{margin-bottom:12px}.character-dialog #dialog-body{margin-bottom:7px}.top-actions{gap:4px}#character{max-width:88px}}

.festival-button{position:absolute;top:80px;right:30px;pointer-events:auto;background:rgba(38,20,36,.9);border:1px solid #a27954;color:#f7e7ce;padding:12px 16px;font-size:12px;border-radius:4px}.festival-button span{display:block;font-size:10px;color:#e8ae75;margin-top:5px}.clock{font-variant-numeric:tabular-nums;min-width:84px}@media(max-width:700px){.festival-button{top:65px;right:15px;padding:9px;font-size:10px}.location{max-width:50%}}

#scene-container{position:fixed;inset:0}#scene-container canvas{display:block;width:100%;height:100%}.cast-reference{width:100%;aspect-ratio: .4;background-image:url(assets/original-cast.png);background-size:682.3% auto;background-position:calc(var(--cast-x) * 100%) 30%;background-repeat:no-repeat;background-color:#11151b}.cast-note{font-size:14px;line-height:1.5;color:#c9bca9;margin:8px 0}.character-dialog #dialog-options button{font-size:14px}.character-dialog #dialog-footer{font-size:14px}button:disabled{opacity:.65;cursor:wait}@media(max-width:600px){.cast-reference{width:140px;height:270px;aspect-ratio:auto;margin:0 auto}.cast-note{text-align:center}.character-dialog{max-height:90dvh}}
#cinematic{position:fixed;inset:0;z-index:9;pointer-events:auto;cursor:default}#cinematic .cine-bar{position:absolute;left:0;right:0;height:10vh;background:#03070c;transition:transform .7s cubic-bezier(.2,.7,.2,1)}#cinematic .cine-bar.top{top:0;transform:translateY(-100%)}#cinematic .cine-bar.bottom{bottom:0;transform:translateY(100%)}#cinematic.on .cine-bar{transform:none}.cine-caption{position:absolute;left:7vw;bottom:calc(10vh + 38px);max-width:min(760px,86vw);opacity:0;transform:translateY(10px);filter:blur(6px);text-shadow:0 4px 30px #000c}.cine-caption.show{animation:cineLine 6s cubic-bezier(.2,.7,.2,1) forwards}.cine-caption .eyebrow{display:flex;align-items:center;gap:10px;margin:0 0 12px;font-size:11px}.cine-line{margin:0;font:900 clamp(34px,5.4vw,78px)/1.02 Fraunces,Georgia,serif;letter-spacing:-2px;color:#eee6d7}@keyframes cineLine{0%{opacity:0;transform:translateY(10px);filter:blur(6px)}14%{opacity:1;transform:none;filter:blur(0)}82%{opacity:1;filter:blur(0)}100%{opacity:0;filter:blur(4px)}}.cine-skip{position:absolute;right:28px;bottom:calc(10vh + 24px);background:#0a141bcc;border:1px solid #ffffff38;font-size:13px;min-height:40px;padding:9px 16px}.cine-skip span{margin-left:6px;color:#f6a263}body.cine #topbar,body.cine .vignette{opacity:0;transition:opacity .4s}body.cine #topbar{pointer-events:none}@media(max-width:700px){.cine-caption{left:22px;bottom:calc(10vh + 70px)}.cine-skip{right:16px}.cine-line{letter-spacing:-1px}}@media(prefers-reduced-motion:reduce){.cine-caption.show{animation:none;opacity:1;transform:none;filter:none}}
