.popup-scrim{position:absolute;top:0;right:0;bottom:0;left:0;z-index:500;display:flex;align-items:center;justify-content:center;padding:16px;overflow-y:auto;container-type:inline-size;background:#241a12d1;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);animation:scrimIn .25s ease-out both}.poster{position:relative;background-color:var(--paper-aged);background-image:radial-gradient(ellipse at 12% 8%,rgba(138,74,43,.13),transparent 42%),radial-gradient(ellipse at 88% 92%,rgba(138,74,43,.11),transparent 45%),radial-gradient(ellipse at 70% 20%,rgba(90,62,40,.07),transparent 30%),repeating-linear-gradient(94deg,rgba(46,33,21,.028) 0 1px,transparent 1px 3px),repeating-linear-gradient(4deg,rgba(46,33,21,.02) 0 1px,transparent 1px 4px);color:var(--ink-sepia);border-radius:var(--radius-paper);box-shadow:var(--shadow-poster)}.poster:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;border-radius:var(--radius-paper);background-image:var(--tex-paper-url);background-size:cover;mix-blend-mode:var(--tex-blend);opacity:var(--tex-opacity)}.poster>*{position:relative;z-index:1}.popup{--pb: 420;--pw: min(420px, 100cqw);--u: calc(var(--pw) / var(--pb));width:var(--pw);margin:auto;padding:max(31px,calc(var(--u) * 31)) calc(var(--u) * 22) max(31px,calc(var(--u) * 31));text-align:center;transform:rotate(-.6deg);animation:posterIn .5s cubic-bezier(.2,1.4,.4,1) both}.popup.small{--pb: 340;--pw: min(340px, 100cqw)}.nail{position:absolute;width:13px;height:13px;border-radius:var(--radius-badge);z-index:3;background:radial-gradient(circle at 33% 28%,#8d8377 0%,var(--rail-iron) 45%,#241f1b 100%);box-shadow:var(--shadow-nail);border:1px solid rgba(0,0,0,.5)}.nail:after{content:"";position:absolute;top:3.5px;right:3.5px;bottom:3.5px;left:3.5px;border-radius:var(--radius-badge);background:#00000059}.nail.tl{top:9px;left:9px}.nail.tr{top:9px;right:9px}.nail.bl{bottom:9px;left:9px}.nail.br{bottom:9px;right:9px}.popup .eyebrow{font-family:var(--font-body);font-weight:700;font-size:max(9px,calc(var(--u) * 11));letter-spacing:.32em;line-height:1.4;text-transform:uppercase;color:var(--ink-sepia-soft);margin:0 0 calc(var(--u) * 6)}.popup .title{font-family:var(--font-display);font-weight:400;font-size:max(20px,calc(var(--u) * 32));line-height:1.05;letter-spacing:.01em;text-transform:uppercase;margin:0;color:var(--ink-sepia)}.popup.small .title{font-size:max(20px,calc(var(--u) * 26))}.popup .rule{width:60%;height:1px;margin:calc(var(--u) * 14) auto calc(var(--u) * 16);background:linear-gradient(to right,#2e211500,#2e21158c 20%,#2e21158c 80%,#2e211500)}.popup .body{font-family:var(--font-body);font-weight:400;font-size:max(12px,calc(var(--u) * 15));line-height:1.6;margin:0 0 calc(var(--u) * 14);color:var(--ink-sepia)}.popup .kicker{font-style:italic;font-size:max(11.5px,calc(var(--u) * 14));letter-spacing:.03em;color:var(--ink-sepia-soft);margin:0 0 calc(var(--u) * 6)}.popup.small .body{text-align:left}.popup:has(>.evidence-frame){padding-bottom:max(38px,calc(var(--u) * 41))}.popup>.evidence-frame{--evidence-box: calc(var(--u) * 96);display:flex;align-items:center;justify-content:center;width:calc(var(--u) * 196);height:calc(var(--evidence-box) + var(--u) * 30 + 2px);margin:calc(var(--u) * 2) auto calc(var(--u) * 14);padding:calc(var(--u) * 15) calc(var(--u) * 12);background:#e3d0a88c;border:1px solid rgba(46,33,21,.5);border-radius:var(--radius-paper);box-shadow:inset 0 0 0 calc(var(--u) * 3) #efe0bfe6,inset 0 0 0 calc(var(--u) * 3 + 1px) #2e21154d}.evidence-frame>.evidence-spot{position:relative;width:fit-content;margin:0 auto;transform:rotate(-4deg)}.evidence-spot>.evidence-slot{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%;max-width:none}.evidence-spot>.evidence-sticker{position:relative;display:block;width:auto;height:auto;max-width:calc(var(--u) * 132);max-height:var(--evidence-box);transform-origin:50% 40%;filter:drop-shadow(0 calc(var(--u) * 2) calc(var(--u) * 2.5) rgba(46,33,21,.38));animation:stickOn .6s cubic-bezier(.2,1.25,.4,1) .55s both}@keyframes stickOn{0%{opacity:0;transform:translateY(-18%) rotate(8deg) scale(1.35);filter:drop-shadow(0 calc(var(--u) * 14) calc(var(--u) * 12) rgba(46,33,21,.22))}45%{opacity:1}to{opacity:1;transform:none;filter:drop-shadow(0 calc(var(--u) * 2) calc(var(--u) * 2.5) rgba(46,33,21,.38))}}.popup-actions{display:flex;flex-wrap:nowrap;gap:calc(var(--u) * 12);margin-top:calc(var(--u) * 18)}.popup .popup-actions>*{flex:1 1 auto;width:auto;min-width:0;white-space:nowrap;min-height:max(44px,calc(var(--u) * 52));padding:0 calc(var(--u) * 12.6);gap:calc(var(--u) * 8)}.popup .btn-brand{font-size:max(10px,calc(var(--u) * 15))}.popup .btn-secondary{font-size:max(10px,calc(var(--u) * 14))}.popup .btn-brand .star{width:max(9px,calc(var(--u) * 13));height:max(9px,calc(var(--u) * 13))}.popup-actions.is-stacked{flex-direction:column-reverse}.popup .popup-actions.is-stacked>*{flex:none;width:100%}.btn-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn{font-family:var(--font-body);letter-spacing:.06em;text-transform:uppercase;border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;width:100%;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:transform .08s ease,filter .15s ease,background .15s ease}.btn-brand{background:var(--brass-star);color:var(--brand-black);font-weight:700;font-size:15px;padding:0 22px;border-radius:var(--radius-paper);border:2px solid var(--ink-sepia);box-shadow:var(--shadow-stamp);transform:rotate(-1deg)}.btn-brand:hover{background:var(--brass-star-hi);filter:brightness(1.02)}.btn-brand:active{transform:rotate(-1deg) translate(2px,2px);box-shadow:1px 1px #1e160fe6}.btn-brand .star{width:13px;height:13px;flex:none;background:var(--canyon-void);clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}.btn-secondary{background:transparent;color:var(--paper-aged);font-weight:600;font-size:14px;padding:0 22px;border-radius:var(--radius-paper);border:1.5px solid var(--canyon-rust)}.btn-secondary:hover{background:#8a4a2b29}.btn-secondary.on-paper{color:var(--ink-sepia)}.btn-secondary:active{transform:translateY(1px)}.btn-brand:focus-visible,.btn-secondary:focus-visible{outline:2px solid var(--brass-star-hi);outline-offset:2px}@keyframes posterIn{0%{opacity:0;transform:rotate(-3deg) scale(1.1)}to{opacity:1;transform:rotate(-.6deg) scale(1)}}@keyframes scrimIn{0%{opacity:0}to{opacity:1}}@keyframes posterOut{0%{opacity:1;transform:rotate(-.6deg) scale(1)}to{opacity:0;transform:rotate(-3deg) scale(1.1)}}@keyframes scrimOut{0%{opacity:1}to{opacity:0}}.popup-scrim.is-closing{animation:scrimOut .25s ease-in .25s both;pointer-events:none}.popup-scrim.is-closing .popup{animation:posterOut .5s cubic-bezier(.6,0,.8,-.4) both}@media (prefers-reduced-motion: reduce){.popup-scrim,.popup,.popup .evidence-sticker{animation:none!important}}:root{--canyon-void: #241A12;--rock-deep: #33241A;--plank-wood: #5A3E28;--canyon-rust: #8A4A2B;--canyon-clay: #B5734A;--sand-dune: #D9BE92;--paper-aged: #EFE0BF;--paper-aged-2: #E3D0A8;--ink-sepia: #2E2115;--ink-sepia-soft: #4A3826;--rail-iron: #4E4640;--brass-star: #C8912B;--brass-star-hi: #E6B23E;--brand-black: #1A140E;--signal-sage: #5F7D42;--signal-sage-ink: #3F5B28;--signal-ember: #C0651F;--signal-ember-ink: #8E4712;--signal-bloodrust: #9B2A1E;--signal-bloodrust-ink: #7A1D13;--signal-bloodrust-hi: #D4564A;--rope-hemp: #C8A96B;--canvas-wagon: #DCCDB0;--cactus-green: #6B7F55;--font-display: "Rye", serif;--font-body: "Zilla Slab", serif;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 28px;--sp-7: 36px;--sp-8: 48px;--sp-9: 64px;--radius-paper: 2px;--radius-plank: 3px;--radius-pill: 20px;--radius-badge: 50%;--shadow-poster: 0 12px 26px rgba(0,0,0,.45), inset 0 0 0 1px rgba(46,33,21,.1);--shadow-plank: 0 8px 18px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.06);--shadow-stamp: 3px 3px 0 rgba(30,22,15,.9);--shadow-brass-glow: 0 0 24px rgba(201,146,46,.35);--shadow-nail: 0 1px 2px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.25);--shadow-bullet: inset 0 0 6px rgba(0,0,0,.85);--tex-paper-url: none;--tex-wood-url: none;--tex-rock-url: none;--tex-canvas-url: none;--tex-blend: multiply;--tex-opacity: .35}@font-face{font-family:Rye;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/rye-400-CepTvHK8.woff2) format("woff2")}@font-face{font-family:Zilla Slab;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/zilla-slab-400-Bukq2A9P.woff2) format("woff2")}@font-face{font-family:Zilla Slab;font-style:italic;font-weight:400;font-display:swap;src:url(/assets/zilla-slab-400-italic-e6kUoTvY.woff2) format("woff2")}@font-face{font-family:Zilla Slab;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/zilla-slab-600-DEu2hqs6.woff2) format("woff2")}@font-face{font-family:Zilla Slab;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/zilla-slab-700-COGOEMc7.woff2) format("woff2")}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}html{background:transparent}body{background:transparent;color:var(--paper-aged);font-family:var(--font-body);-webkit-font-smoothing:antialiased;overscroll-behavior:none;overflow:hidden}#root{position:relative;height:100vh;height:100dvh;width:100vw;overflow:hidden;background:transparent}.screen{height:100%;display:flex;align-items:center;justify-content:center;background:transparent;padding:var(--sp-4) var(--sp-4) calc(var(--sp-4) + env(safe-area-inset-bottom,0px))}@media (max-width: 380px){.screen{padding:var(--sp-3) var(--sp-3) calc(var(--sp-3) + env(safe-area-inset-bottom,0px))}}#game-frame{position:relative;flex:none;width:100%;height:100%;overflow:hidden;border-radius:6px;clip-path:inset(0 round 6px);isolation:isolate;background:var(--canyon-void)}.tenant-error{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--sp-5);background:var(--signal-bloodrust);color:var(--paper-aged);font-family:var(--font-body);font-weight:700;text-align:center}#loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-4)}#loading .lantern{width:18px;height:18px;border-radius:50%;background:var(--brass-star-hi);box-shadow:var(--shadow-brass-glow);animation:lanternFlicker 2.4s ease-in-out infinite}#loading .loading-text{font-size:11px;font-weight:700;letter-spacing:.32em;text-transform:uppercase;color:var(--sand-dune)}@keyframes lanternFlicker{0%,to{opacity:.55;transform:scale(.92)}40%{opacity:1;transform:scale(1.05)}60%{opacity:.8;transform:scale(1)}}#stage{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(318.667vw,239vh);width:min(318.667vw,239dvh);aspect-ratio:5736 / 4302;overflow:hidden;isolation:isolate}#stage-inner{position:absolute;top:0;height:100%;z-index:2}.stage-layer{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}#stage-tilebg{z-index:0}#stage-bg{z-index:1}.stage-layer.deco{z-index:3}.hotspot{position:absolute;z-index:5;background:transparent;border:none;padding:0;margin:0;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border-radius:12px}#btn-reset{border-radius:50%}.hotspot:focus-visible{outline:2px solid var(--brass-star-hi);outline-offset:-2px}#stage-inner{container-type:inline-size}#board,#board-ghost{filter:drop-shadow(0 .19cqw .136cqw rgba(0,0,0,.75)) drop-shadow(0 .76cqw 1.085cqw rgba(0,0,0,.5))}#board{position:absolute;z-index:2;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,1fr);gap:0;padding:0;background:transparent;border:none;touch-action:none;-webkit-user-select:none;user-select:none}.tile{width:100%;height:100%;display:block;object-fit:cover;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;transition:transform var(--slide-ms, .16s) var(--slide-easing, cubic-bezier(.2,.8,.2,1));will-change:transform;position:relative;z-index:2}.tile.empty{opacity:0;filter:none;pointer-events:none;cursor:default}#board.solved .tile{cursor:default}#board-ghost{position:absolute;z-index:2;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,1fr);pointer-events:none;animation:ghostFade var(--solution-fade-ms, .3s) ease-out forwards}#board-ghost .tile{transition:none}@keyframes ghostFade{0%{opacity:1}to{opacity:0}}#board-flash-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;pointer-events:none;border-radius:.55cqw}#board-flash-overlay.board-flash{animation:board-flash 1s ease-out forwards}@keyframes board-flash{0%{box-shadow:inset 0 0 #d6e8c400,inset 0 0 #5f7d4200}25%{box-shadow:inset 0 0 10px 4px #d6e8c466,inset 0 0 48px 22px #5f7d4261}to{box-shadow:inset 0 0 #d6e8c400,inset 0 0 #5f7d4200}}@media (prefers-reduced-motion: reduce){#board-flash-overlay.board-flash{animation:none}}.solution-mode .tile{filter:sepia(.55) saturate(.6)}.solution-mode .tile-empty{filter:none}#solution-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;pointer-events:none;opacity:0;border-radius:.55cqw}.solution-mode #solution-overlay{opacity:1;animation:planPulse 2s ease-in-out infinite}@keyframes planPulse{0%,to{box-shadow:inset 0 0 24px 6px #c8912b59}50%{box-shadow:inset 0 0 60px 22px #c8912bb3}}#board-ghost.ghost-plan .tile{filter:sepia(.55) saturate(.6)}#tip-hint{position:absolute;z-index:6;aspect-ratio:1;pointer-events:none;filter:drop-shadow(0 3px 8px rgba(0,0,0,.45))}#tip-hint img{width:100%;height:100%;display:block;animation:tip-hint-tap 5.2s ease-in-out both}@keyframes tip-hint-tap{0%{opacity:0;transform:translate(14%,14%) scale(.96)}12%{opacity:1}16%{transform:translate(0) scale(1)}28%{transform:translate(12%,12%) scale(1)}40%{transform:translate(0) scale(1)}52%{transform:translate(12%,12%) scale(1)}64%{transform:translate(0) scale(1)}76%{transform:translate(12%,12%) scale(1)}86%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(14%,14%) scale(.96)}}@media (prefers-reduced-motion: reduce){#tip-hint{display:none}.solution-mode #solution-overlay{animation:none;box-shadow:inset 0 0 40px 14px #c8912b80}.tile{transition-duration:0ms}}
