@font-face{font-family:Rye;src:url('./assets/rye.woff2') format('woff2');font-display:swap;font-weight:400}
:root{color-scheme:dark;--ink:#182326;--ink-deep:#111a1d;--cream:#f1e4c8;--muted:#bcb5a4;--paper:#d8c5a0;--gold:#edb64d;--gold-bright:#f6c768;--rust:#ef8262;--teal:#8dc6b2;--line:#49504a;--display:Rye,Georgia,serif;--body:'Avenir Next',Avenir,'Segoe UI',sans-serif;--ease:cubic-bezier(.16,1,.3,1)}
*{box-sizing:border-box}body{margin:0;min-width:280px;min-height:100svh;background:var(--ink-deep);color:var(--cream);font:1rem/1.5 var(--body);-webkit-font-smoothing:antialiased;display:grid;place-items:center;padding:28px 24px}button,summary{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,summary:focus-visible{outline:3px solid var(--cream);outline-offset:5px}button:disabled{cursor:wait}button,output{touch-action:manipulation}button svg{width:20px;height:20px;flex-shrink:0}.game{width:min(1200px,100%);background:var(--ink);border:1px solid #796d57;box-shadow:0 0 0 6px #d5c19c,0 20px 72px #080f1266;isolation:isolate}.masthead{min-height:116px;padding:18px 32px 20px;display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:3px solid var(--paper)}.brand{min-width:0}.edition{display:block;font-size:.6875rem;letter-spacing:.2em;color:var(--muted);margin-bottom:5px;font-weight:600}h1{font:400 3.35rem/1.12 var(--display);margin:0;letter-spacing:-.025em}.masthead-right{display:flex;align-items:center;gap:30px}.motto{font:italic 1.25rem/1.2 Georgia,serif;max-width:100px;transform:rotate(-7deg);color:#d8c5a1}.sound-button{border:1px solid #707265;background:transparent;color:var(--cream);min-height:44px;padding:10px 12px;display:flex;align-items:center;gap:8px;font-size:.875rem;border-radius:3px;transition:background .15s}.sound-button:hover{background:#ffffff0c}.sound-on{display:none}.sound-button[aria-pressed=true] .sound-on{display:block}.sound-button[aria-pressed=true] .sound-off{display:none}.scene{height:auto;aspect-ratio:2.12;min-height:360px;max-height:570px;overflow:hidden;position:relative;background:#36474a;border-bottom:2px solid var(--paper)}.scene-art{position:absolute;inset:-1.3%;transform:scale(1.004);transition:transform .7s var(--ease)}.scene-image,.living-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 48%}.scene-image{opacity:0;transition:opacity .32s var(--ease)}.scene-stealing{opacity:1}.living-art{opacity:0;transition:opacity .3s}.living-art.is-ready{opacity:1}.game[data-phase=escaped] .scene-stealing,.game[data-phase=caught] .scene-stealing,.game[data-phase=escaped] .living-art,.game[data-phase=caught] .living-art{opacity:0}.game[data-phase=escaped] .scene-escaped,.game[data-phase=caught] .scene-caught{opacity:1}.game[data-phase=stealing] .scene-art{animation:scene-breathe 12s ease-in-out infinite alternate}.game[data-phase=caught] .scene-art{animation:caught-jolt .32s ease-out}.scene-shade{position:absolute;inset:0;background:linear-gradient(180deg,#101b2355,transparent 24%,transparent 65%,#101b23c2);pointer-events:none}.scene-top{position:absolute;top:22px;left:28px;right:28px;display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.location{display:flex;align-items:center;gap:10px;padding:9px 14px 9px 10px;background:#182326e8;border:1px solid #a7a08480;border-radius:2px}.location-number{font:400 1.65rem/1 var(--display);color:var(--gold);padding-right:11px;border-right:1px solid #777e6f}.small-label{display:block;font-size:.75rem;letter-spacing:.16em;font-weight:600;line-height:1.5}.location .small-label{font-size:.6875rem}.location-detail{display:block;color:#c7c7b5;font-size:.75rem}.round-label{font-size:.75rem;letter-spacing:.045em;text-shadow:0 1px 8px #101b23;background:#182326bb;padding:5px 10px;border-radius:2px}.scene-caption{position:absolute;left:28px;right:28px;bottom:22px;display:flex;align-items:center;gap:12px;text-shadow:0 1px 12px #071215}.caption-rule{height:1px;width:24px;background:var(--gold);flex-shrink:0}.scene-caption p{font-size:.9375rem;margin:0;font-weight:500}.elapsed{margin-left:auto;color:#e4d3b0;font-variant-numeric:tabular-nums;font-size:.8125rem;white-space:nowrap}.controls{padding:24px 32px 19px;display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,1.3fr) minmax(0,.8fr);gap:32px;align-items:center}.haul .small-label{color:var(--muted);margin-bottom:6px}.haul output{display:block;font:400 3.3rem/1.15 var(--display);font-variant-numeric:tabular-nums;white-space:nowrap;letter-spacing:-.05em}.stash{padding-left:28px;border-left:1px solid var(--line)}.stash .small-label{color:var(--muted);font-size:.6875rem;letter-spacing:.13em;white-space:nowrap}.stash output{display:block;font-size:1.6rem;line-height:1.5;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;letter-spacing:-.03em}.stash-note{font-size:.75rem;color:#969f95}.primary-action{display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:80px;padding:13px 16px;background:var(--gold);color:#222823;border:1px solid #ffdb90;border-radius:4px;box-shadow:0 4px 0 #9e7432,0 0 0 4px #edb64d0b;transition:background .15s,transform .1s,box-shadow .1s;user-select:none}.primary-action:hover{background:var(--gold-bright)}.primary-action:active{transform:translateY(3px);box-shadow:0 1px 0 #9e7432}.primary-action>span:first-child{font:700 1.375rem/1.3 var(--body);letter-spacing:.055em}.primary-action>span:last-child{font-size:.8125rem;margin-top:3px;opacity:.8;font-weight:500}.primary-action:disabled{opacity:.72}.keyboard-hint{font-size:.6875rem;color:#a4aa9d;display:block;text-align:center;line-height:1.3;margin-top:12px}kbd{font:inherit;letter-spacing:.08em;border:1px solid #667164;padding:1px 5px;border-radius:2px;margin-left:3px}.game-footer{position:relative;border-top:1px solid var(--line);margin:0 32px;padding:11px 0;display:flex;justify-content:space-between;align-items:flex-start;gap:24px;color:var(--muted);font-size:.75rem}.game-footer details{max-width:550px}.game-footer summary{cursor:pointer;list-style:none;min-height:32px;display:flex;align-items:center;gap:12px;width:max-content;font-size:.8125rem}.game-footer summary::-webkit-details-marker{display:none}.game-footer summary span{font-size:1.1rem}.game-footer details[open] summary span{transform:rotate(45deg)}.rules-content{padding:0 0 12px;font-size:.875rem;line-height:1.6;color:#c9c8b9}.rules-content p{margin:10px 0 0}.rules-content strong{color:var(--cream);font-weight:600}.demo-label{font-size:.625rem;letter-spacing:.1em;margin-top:8px;text-align:right}.outcome{position:absolute;right:6%;top:25%;width:40%;text-align:center;transform:rotate(-5deg);color:var(--cream);text-shadow:0 2px 12px #11201c80}.outcome[hidden]{display:none}.outcome-kicker{font-size:.75rem;letter-spacing:.22em;font-weight:700;text-transform:uppercase;display:inline-block;background:var(--ink);padding:5px 12px;margin-bottom:8px}h2{font:400 3.7rem/1.06 var(--display);margin:0;padding:10px 0;letter-spacing:-.025em;border-top:4px solid currentColor;border-bottom:4px solid currentColor}.outcome p{font-size:1.125rem;font-weight:600;margin:12px 0 0;display:inline-block;background:#182326ed;padding:7px 14px}.game[data-phase=caught] .outcome{color:#f79773}.game[data-phase=escaped] .outcome{color:#c8ead1}.game[data-phase=caught] #haul{color:var(--rust)}.game[data-phase=escaped] #haul{color:var(--teal)}.game[data-phase=escaped] .stash output{animation:stash-ink .8s ease-out}.caught-flash{position:absolute;inset:0;pointer-events:none;opacity:0;background:#e76e46}.game[data-phase=caught] .caught-flash{animation:flash .4s ease-out}.pickup-layer{position:absolute;inset:0;pointer-events:none;overflow:hidden}.pickup{position:absolute;left:43%;top:60%;color:#fff0c4;text-shadow:0 2px 2px #132425,0 0 10px #132425;font-weight:700;font-size:1.1rem;animation:pickup 1.25s var(--ease) both;white-space:nowrap}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.noscript{padding:20px;text-align:center}.image-error{position:absolute;inset:0;display:grid;place-items:center;padding:30px;background:var(--ink);text-align:center}.game[data-phase=stealing] .location-number{color:var(--gold-bright)}
@keyframes scene-breathe{from{transform:scale(1.008) translateX(0)}to{transform:scale(1.035) translateX(-.35%)}}@keyframes caught-jolt{0%,100%{transform:translateX(0)}25%{transform:translateX(-6px)}55%{transform:translateX(4px)}75%{transform:translateX(-2px)}}@keyframes flash{0%{opacity:.2}100%{opacity:0}}@keyframes pickup{0%{opacity:0;transform:translateY(12px) rotate(-7deg)}18%{opacity:1}70%{opacity:1}100%{opacity:0;transform:translateY(-62px) rotate(2deg)}}@keyframes stash-ink{0%{color:var(--gold-bright)}100%{color:var(--cream)}}
@media(min-width:1600px){.game{width:min(1320px,100%)}.scene{max-height:620px}}
@media(max-width:1000px){h1{font-size:2.7rem}.masthead-right{gap:18px}.masthead{padding:18px 24px}.controls{padding:22px 24px 18px;gap:22px;grid-template-columns:minmax(0,1fr) minmax(250px,1.25fr) minmax(0,.8fr)}.haul output{font-size:2.65rem}.stash{padding-left:20px}.stash output{font-size:1.4rem}.outcome{right:5%;width:41%}h2{font-size:3.1rem}.game-footer{margin:0 24px}}
@media(max-width:760px){body{padding:18px 14px;display:block}.masthead{min-height:100px;padding:16px 18px}.edition{font-size:.5625rem;letter-spacing:.13em}h1{font-size:2.2rem}.motto{display:none}.sound-button{border:0;padding:10px;min-width:44px}.sound-button span{display:none}.scene{aspect-ratio:1.3;min-height:330px;max-height:520px}.scene-image{object-position:45% 48%}.scene-top{top:16px;left:16px;right:16px}.round-label{display:none}.location{padding:7px 10px 7px 8px}.scene-caption{left:18px;right:18px;bottom:18px;gap:8px}.caption-rule{width:14px}.scene-caption p{font-size:.875rem;max-width:80%}.controls{grid-template-columns:1fr 1fr;gap:18px;padding:21px 20px 19px;grid-template-areas:'haul stash' 'action action'}.haul{grid-area:haul}.haul output{font-size:2.6rem}.stash{grid-area:stash;border:0;text-align:right;padding:0}.stash .small-label{font-size:.625rem}.stash output{font-size:1.5rem}.stash-note{font-size:.6875rem}.action-wrap{grid-area:action}.primary-action{min-height:74px}.keyboard-hint{display:none}.game-footer{margin:0 20px;padding:12px 0;gap:15px}.demo-label{font-size:.5625rem;max-width:150px;margin-top:4px;line-height:1.7}.outcome{top:28%;right:7%;width:57%}h2{font-size:2.65rem}.outcome p{font-size:1rem}.outcome-kicker{font-size:.625rem}.pickup{left:43%;top:64%}}
@media(max-width:400px){body{padding:11px 9px}.masthead{padding:16px 12px}.edition{font-size:.5rem}h1{font-size:1.8rem}.scene{min-height:310px}.controls{padding:18px 15px}.haul output{font-size:2.2rem}.small-label{font-size:.625rem}.stash output{font-size:1.35rem}.scene-caption p{font-size:.8125rem}.game-footer{margin:0 15px}.outcome{width:65%;right:7%}h2{font-size:2.4rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.living-art{display:none}.pickup{display:none}.scene-art{transform:none!important}}
.edition,.location .small-label,.location-detail,.round-label,.stash .small-label,.stash-note,.keyboard-hint,.demo-label,.outcome-kicker{font-size:.75rem}
.edition{letter-spacing:.15em}.demo-label{letter-spacing:.05em}.primary-action>span:last-child{font-size:.875rem}.game-footer summary{min-height:44px;font-size:.875rem}.game-footer{padding:6px 0}.demo-label{margin-top:12px}.stash output{overflow-wrap:anywhere;white-space:normal}.haul output{font-size:min(3.3rem,5.5vw)}
@media(min-width:761px) and (max-height:900px){.masthead{min-height:96px;padding-top:13px;padding-bottom:13px}h1{font-size:2.85rem}.scene{height:calc(100svh - 350px);min-height:300px;max-height:520px;aspect-ratio:auto}.controls{padding-top:18px;padding-bottom:16px}}
@media(max-width:760px){.masthead{min-height:90px}.scene{height:clamp(240px,42svh,440px);min-height:240px;max-height:440px;aspect-ratio:auto}.haul output{font-size:2.6rem}.edition{font-size:.75rem;letter-spacing:.11em}.stash .small-label{letter-spacing:.07em}.demo-label{margin-top:9px;font-size:.75rem;max-width:160px;line-height:1.45}.outcome{top:30%}.outcome-kicker{font-size:.75rem}.game-footer{gap:12px}}
@media(max-width:400px){.masthead{gap:12px;min-height:84px}.controls{padding:18px 15px}h1{font-size:1.65rem}.haul output{font-size:2.2rem}.edition{font-size:.75rem}.small-label{font-size:.75rem}.scene-caption p{font-size:.875rem}.stash output{font-size:1.3rem}.outcome{right:8%;width:62%}.outcome p{font-size:.9375rem}.demo-label{max-width:145px}}
@media(max-width:350px){h1{font-size:1.4rem}.edition{letter-spacing:.04em}.haul output{font-size:1.9rem}.stash .small-label{font-size:.75rem;letter-spacing:0}.primary-action>span:first-child{font-size:1.1rem}.outcome-kicker{letter-spacing:.05em}.game-footer{margin:0 12px}.demo-label{max-width:130px}}
