@font-face{font-family:Fair;src:url('assets/pixel.ttf')}*{box-sizing:border-box} :root{color-scheme:dark;--ink:#17162f;--cream:#fff0c5;--gold:#ffd56e;--teal:#66b9bb;--vh:100dvh}body{margin:0;background:#111125;color:var(--cream);font:16px/1.45 system-ui,sans-serif;overflow:hidden}button,input{font:inherit}button{color:var(--cream);background:#383355;border:2px solid #8b6bb1;min-height:46px;padding:8px 13px;cursor:pointer;border-radius:3px;box-shadow:0 3px #111125;touch-action:manipulation}button:active{transform:translateY(2px);box-shadow:none;background:#554777}button:focus-visible,input:focus-visible{outline:3px solid var(--gold);outline-offset:2px}button:disabled{opacity:.45;cursor:default}button.primary{background:#367b8b;border-color:var(--teal);color:#fff5dc;font-weight:750}button.gold{background:#775444;border-color:var(--gold)}button[aria-current=true]{background:#704655;border-color:var(--gold)}#app{height:var(--vh);width:100%;max-width:1100px;margin:auto;display:flex;flex-direction:column;padding:env(safe-area-inset-top) max(5px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(5px,env(safe-area-inset-left));background:#211d39;border-left:2px solid #3a3356;border-right:2px solid #3a3356}header{display:flex;align-items:center;justify-content:space-between;flex:none;gap:4px;min-height:57px;border-bottom:2px solid #66507e}.wordmark{font:12px/1.5 Fair,monospace;letter-spacing:1px;display:flex;flex-direction:column;color:var(--gold);padding:4px}.wordmark span{font-size:8px;color:var(--cream);letter-spacing:0}.tools{display:flex;gap:4px}.tools button{width:44px;min-width:44px;height:44px;min-height:44px;padding:2px;font-size:18px}.tools #pack{font-size:13px;font-weight:700}nav{display:flex;gap:4px;padding:5px 0;flex:none}nav button{flex:1;min-width:44px;min-height:44px;font-size:13px;padding:6px 2px}#content{flex:1;min-height:0;display:grid;grid-template-rows:minmax(145px,40%) minmax(0,1fr);gap:6px}#scene{position:relative;overflow:hidden;background:#17162f;border:2px solid #775b85;min-height:0}canvas{display:block;width:100%;height:100%;image-rendering:pixelated;object-fit:cover;touch-action:pan-y}#scene.live canvas{touch-action:none}#location{position:absolute;top:7px;left:7px;background:#17162fe6;border:1px solid #ffd56e;padding:4px 8px;font:10px/1.3 Fair,monospace;color:#ffd56e;pointer-events:none;max-width:95%}#panel{overflow:auto;overscroll-behavior:contain;padding:8px 10px 15px;min-height:0;background:linear-gradient(135deg,#2c2546,#211d39);border:1px solid #554777}h1,h2,h3{font-family:Fair,monospace;line-height:1.5;color:var(--gold);margin:0 0 9px}h1{font-size:20px}h2{font-size:16px}h3{font-size:13px}p{margin:0 0 10px}.eyebrow{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--teal);font-weight:800;margin-bottom:5px}.small{font-size:13px;color:#d1c1e1}.row{display:flex;gap:8px;margin:10px 0;flex-wrap:wrap}.row>*{flex:1;min-width:110px}.stack{display:grid;gap:8px;margin:10px 0}.stats{display:flex;gap:6px;flex-wrap:wrap;font-size:12px;color:var(--teal);margin-bottom:9px}.stats span{padding:3px 5px;border:1px solid #554777}footer{font-size:10px;text-align:center;flex:none;padding:4px 0;color:#bca5d3}footer strong{font-weight:500;color:#fff0c5}.prop-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.prop-grid button{min-height:62px}.prop-grid button.lit{background:#ffd56e;color:#17162f;border-color:#fff0c5;box-shadow:0 0 15px #ffd56e88}.prop-grid button span{display:block;font-size:22px}.notice{border-left:3px solid var(--gold);padding:6px 9px;background:#39304e;margin-bottom:10px}.score{font:14px Fair,monospace;color:var(--gold);padding:7px 0}.reward{display:flex;align-items:center;gap:12px}.reward img{width:64px;height:64px;image-rendering:pixelated}.chip{color:var(--teal)}#modal{position:fixed;inset:0;background:#100f24d9;z-index:8;display:grid;place-items:center;padding:16px}#modal[hidden]{display:none}.dialog{background:#2b2443;border:3px solid #ffd56e;padding:20px;max-width:530px;width:100%;max-height:calc(var(--vh) - 32px);overflow:auto;overscroll-behavior:contain;box-shadow:8px 8px #100f24}.dialog input{display:block;width:100%;min-height:46px;padding:9px;border:2px solid #8b6bb1;background:#17162f;color:#fff0c5;font-size:18px;margin:5px 0 12px}.dialog ul{padding-left:21px}.bag-item{display:flex;gap:12px;align-items:center;border-bottom:1px solid #554777;padding:9px 0}.bag-item img{width:46px;height:46px;image-rendering:pixelated}.hold-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.hold-row button{touch-action:none;min-height:54px;font-size:20px}.meter{height:13px;background:#17162f;border:1px solid #8b6bb1;margin:8px 0}.meter div{height:100%;background:#66b9bb}.expanded #app{position:fixed;inset:0;z-index:5;max-width:none}.flash{animation:flash .6s steps(3)}@keyframes flash{50%{background:#775444}}.tag{border-bottom:1px dashed #8b6bb1;padding-bottom:8px}a{color:#ffd56e}@media(min-width:760px),(orientation:landscape) and (max-height:550px){#content{grid-template-columns:48% 1fr;grid-template-rows:minmax(0,1fr)}#scene canvas{object-fit:contain}header{min-height:50px}#panel{padding:12px 16px}nav{max-width:600px;align-self:center;width:100%}footer{font-size:11px}.wordmark{font-size:13px}.wordmark span{font-size:9px}}@media(orientation:landscape) and (max-height:350px){header{min-height:46px}.wordmark{font-size:10px}.wordmark span{font-size:8px}nav{padding:2px 0}nav button{min-height:44px}#content{gap:4px;grid-template-columns:44% 1fr}#panel{padding:5px 9px}h2{font-size:13px;margin-bottom:4px}p{font-size:13px;margin-bottom:5px}.row,.stack{margin:5px 0}.small{font-size:11px}footer{font-size:9px;padding:1px}.prop-grid button{min-height:48px;padding:1px}.prop-grid button span{font-size:16px}.hold-row button{min-height:46px}}@media(prefers-reduced-motion:reduce){.flash{animation:none}}
canvas{object-fit:contain}
#modal{inset:auto 0 auto;top:var(--vtop,0px);height:var(--vh)}
.hold-row button[aria-pressed=true]{background:#367b8b;border-color:#ffd56e;box-shadow:inset 0 0 0 2px #ffd56e}

#modal{padding:calc(env(safe-area-inset-top) + 16px) calc(env(safe-area-inset-right) + 16px) calc(env(safe-area-inset-bottom) + 16px) calc(env(safe-area-inset-left) + 16px)}.dialog{max-height:calc(var(--vh,100dvh) - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 32px)}

/* The invitation keeps its animated fair and every Start choice in view. */
#app.title-screen #nav{display:none}
.postcard-receipt{border:1px solid #8b6bb1;border-left:3px solid var(--teal);padding:9px;margin:10px 0;font-size:13px}.postcard-receipt p:last-child{margin-bottom:0}
@media(max-width:759px) and (orientation:portrait){#app.title-screen #content{grid-template-rows:clamp(115px,calc(var(--vh) * .28),220px) minmax(0,1fr)}}
@media(max-width:600px) and (max-height:700px){#app.title-screen .title-detail{display:none}#app.title-screen .title-summary{font-size:14px;line-height:1.4;margin-bottom:8px}#app.title-screen #panel h1{margin-bottom:6px}#app.title-screen .eyebrow{font-size:10px;letter-spacing:1px;line-height:1.4}#app.title-screen .row{margin:8px 0}#app.title-screen .row button{font-size:13px;padding:7px 10px}}
@media(orientation:landscape) and (max-height:420px){#app.title-screen .title-summary,#app.title-screen .title-detail{display:none}#app.title-screen h1{font-size:18px;line-height:1.2;margin-bottom:5px}#app.title-screen .eyebrow{font-size:8px;letter-spacing:1px;line-height:1.4}#app.title-screen .row button{font-size:13px;padding:6px 9px}}
