*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--plt: #FBF6EA;--bz: #955F17;--bzlt: #C8943A;--bzglow: #E8B55A}html,body,#root{height:100%}body{min-height:100dvh;background:transparent;display:flex;align-items:center;justify-content:center;font-family:Mulish,system-ui,sans-serif}#root{display:flex;align-items:center;justify-content:center;padding:16px}#stage{width:min(440px,calc(100vw - 32px),calc((100dvh - 32px) / 1.5058));display:flex;flex-direction:column;align-items:stretch;touch-action:none}#game-container{position:relative;aspect-ratio:4259 / 6413;border-radius:13.7%/9.1%;overflow:hidden;isolation:isolate}#gc-art{position:absolute;left:50%;bottom:0;width:110%;transform:translate(-50%);aspect-ratio:1847 / 3078}.gc-layer{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;z-index:2}#gc-frame{z-index:4}.gc-hotspot{position:absolute;z-index:5;background:transparent;border:none;padding:0;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.gc-hotspot:focus-visible{outline:2px solid var(--bzglow);outline-offset:-2px;border-radius:12px}#btn-reset{left:19.11%;top:81.32%;width:14.62%;height:8.77%;border-radius:50%}#btn-solve{left:41.53%;top:80.86%;width:44.23%;height:10.17%}#tip-hint{position:absolute;left:63.6%;top:85.9%;width:22%;aspect-ratio:1;transform:translate(-27.2%,-22%);z-index:6;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}}#board{position:absolute;left:18.1%;top:35.85%;width:63.75%;height:38.35%;z-index:1;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,1fr);gap:2px;background:#2a1a08;padding:4px;touch-action:none;-webkit-user-select:none;user-select:none}#board:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:var(--board-bg-image);background-size:cover;background-position:center;border-radius:inherit;z-index:0;pointer-events:none}#board.solved:after{display:none}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.tile{width:100%;height:100%;display:block;border-radius:6px;object-fit:cover;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;transition:transform .1s ease;will-change:transform;position:relative;z-index:2;filter:drop-shadow(0 2px 3px rgba(0,0,0,.6))}#board-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:1}#board-overlay img{width:50%;height:50%;object-fit:contain;opacity:1}.solution-mode #board-overlay img{filter:grayscale(100%) invert(100%)}.tile.empty{opacity:0;filter:none;pointer-events:none;cursor:default}.scroll-popup{position:relative;container-type:inline-size;width:min(380px,calc(100vw - 32px))}.sp-frame{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.sp-body{position:absolute;left:4.34%;width:91.67%;top:7.99cqw;bottom:7.47cqw;overflow:hidden;z-index:0}.sp-body img{position:absolute;left:-4.735%;width:109.09%;top:-5.281%;height:110.22%;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.sp-top,.sp-bot{position:absolute;left:0;width:100%;background-repeat:no-repeat;background-size:100% auto;z-index:3}.sp-top{top:0;height:20.31cqw;background-image:var(--sp-top-image);background-position:top center}.sp-bot{bottom:0;height:20.2cqw;background-image:var(--sp-bot-image);background-position:bottom center}.sp-content{position:relative;z-index:2;padding:28cqw 14cqw 26cqw;display:flex;flex-direction:column;align-items:center;text-align:center}.scroll-popup.sp-unroll{transform:translate(0) rotate(0);transition:transform var(--sp-slide-ms) cubic-bezier(.2,.72,.28,1);--sp-mask-ms: var(--sp-unroll-ms)}.scroll-popup.sp-unroll.sp-offstage{transform:translate(calc(-50vw - 62%)) rotate(45deg)}.scroll-popup.sp-unroll.sp-closing{--sp-mask-ms: var(--sp-rollup-ms)}.scroll-popup.sp-unroll.sp-exit{transform:translate(calc(50vw + 62%)) rotate(-45deg);transition:transform var(--sp-exit-ms) cubic-bezier(.55,0,.7,.35)}.scroll-popup.sp-unroll.sp-closing .sp-content{pointer-events:none}.scroll-popup.sp-unroll .sp-body,.scroll-popup.sp-unroll .sp-content{clip-path:inset(50% 0 50% 0)}.scroll-popup.sp-unroll .sp-top{top:calc(50% - 13.2cqw)}.scroll-popup.sp-unroll .sp-bot{bottom:calc(50% - 14.5cqw)}.scroll-popup.sp-unroll.is-open .sp-body,.scroll-popup.sp-unroll.is-open .sp-content{clip-path:inset(0 0 0 0)}.scroll-popup.sp-unroll.is-open .sp-top{top:0}.scroll-popup.sp-unroll.is-open .sp-bot{bottom:0}.scroll-popup.sp-unroll .sp-body,.scroll-popup.sp-unroll .sp-content,.scroll-popup.sp-unroll .sp-top,.scroll-popup.sp-unroll .sp-bot{transition:clip-path var(--sp-mask-ms) cubic-bezier(.22,.61,.36,1),top var(--sp-mask-ms) cubic-bezier(.22,.61,.36,1),bottom var(--sp-mask-ms) cubic-bezier(.22,.61,.36,1)}@media (prefers-reduced-motion: reduce){.scroll-popup.sp-unroll,.scroll-popup.sp-unroll .sp-body,.scroll-popup.sp-unroll .sp-content,.scroll-popup.sp-unroll .sp-top,.scroll-popup.sp-unroll .sp-bot{transition:none}}.has-seal-popup .sp-content{padding-top:24cqw}.sp-title{font-family:Cinzel Decorative,Cinzel,serif;font-weight:700;font-size:8cqw;line-height:1.2;letter-spacing:.01em;color:#171717}.sp-subtitle{font-family:Cinzel,serif;font-weight:600;font-size:4.8cqw;line-height:1.3;letter-spacing:.08em;color:#3a2e20;margin-top:1.2cqw}.sp-divider{width:64cqw;height:1px;margin:3.7cqw 0 7.9cqw;background:linear-gradient(to right,#39322700,#3932278c 20%,#3932278c 80%,#39322700)}.sp-body-text{font-family:Crimson Pro,serif;font-style:italic;font-size:4.3cqw;line-height:1.6;color:#1f1c18}.sp-btn{font-family:Cinzel,serif;font-size:clamp(.75rem,2.8vw,.9rem);font-weight:700;letter-spacing:.25em;text-transform:uppercase;border-radius:4px;padding:13px 26px;width:100%;margin-top:13cqw;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:filter .2s,transform .1s;display:flex;align-items:center;justify-content:center;text-indent:.25em}.sp-btn:active{transform:translateY(1px)}.sp-btn.sp-btn-primary{color:var(--plt);background:linear-gradient(135deg,var(--bzlt),var(--bz));border:1px solid var(--bz);box-shadow:inset 0 1px #ffffff40,0 2px 6px #955f174d}.sp-btn.sp-btn-primary:hover{filter:brightness(1.12)}.sp-btn.sp-btn-ghost{color:var(--bz);background:transparent;border:1px solid var(--bz)}.sp-btn.sp-btn-ghost:hover{background:#955f1717;color:var(--bzlt)}.sp-buttons{display:flex;gap:3cqw;width:100%;margin-top:13cqw}.sp-buttons .sp-btn{width:auto;margin-top:0}.sp-buttons .sp-btn-ghost{flex:1}.sp-buttons .sp-btn-primary{flex:2}#reset-cancel,#reset-confirm{font-size:1.35rem;letter-spacing:0;text-indent:0;line-height:1;padding:10px 0}.sp-seal{width:22.7cqw;height:22.7cqw;position:relative;margin-bottom:5cqw}.sp-seal:before{content:"";position:absolute;top:-14%;right:-14%;bottom:-14%;left:-14%;background:radial-gradient(circle,rgba(255,200,100,.28) 0%,transparent 70%);border-radius:50%}.sp-seal img{width:100%;height:100%;object-fit:contain;position:relative}#win-overlay.show .sp-seal{animation:sealAppear .6s cubic-bezier(.34,1.56,.64,1) forwards}#intro-overlay,#win-overlay,#reset-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#020c14d1;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);align-items:center;justify-content:center;z-index:500}#intro-overlay,#win-overlay,#reset-overlay{transition:background-color var(--sp-scrim-fade-ms) ease,backdrop-filter var(--sp-scrim-fade-ms) ease,-webkit-backdrop-filter var(--sp-scrim-fade-ms) ease}#win-overlay,#reset-overlay{animation:scrim-in var(--sp-scrim-fade-ms) ease}@keyframes scrim-in{0%{background-color:#020c1400;backdrop-filter:blur(0px);-webkit-backdrop-filter:blur(0px)}}#intro-overlay.is-closing,#win-overlay.is-closing,#reset-overlay.is-closing{background-color:#020c1400;backdrop-filter:blur(0px);-webkit-backdrop-filter:blur(0px)}@media (prefers-reduced-motion: reduce){#intro-overlay,#win-overlay,#reset-overlay{transition:none;animation:none}}#intro-overlay{display:flex}#win-overlay,#reset-overlay{display:none}#win-overlay.show,#reset-overlay.show{display:flex}@keyframes board-flash{0%{box-shadow:inset 0 0 #dcf5d200,inset 0 0 #50c86400,inset 0 0 #1e8c3c00}25%{box-shadow:inset 0 0 8px 3px #dcf5d273,inset 0 0 40px 20px #50c8646e,inset 0 0 70px 40px #1e8c3c61}to{box-shadow:inset 0 0 8px 3px #dcf5d200,inset 0 0 40px 20px #50c86400,inset 0 0 70px 40px #1e8c3c00}}#board-flash-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;border-radius:4px;z-index:200}#board-flash-overlay.board-flash{animation:board-flash 1s ease-out forwards}@keyframes tile-blur-pulse{0%{filter:grayscale(100%) invert(100%) blur(.3px)}50%{filter:grayscale(100%) invert(100%) blur(.8px)}to{filter:grayscale(100%) invert(100%) blur(.3px)}}.solution-mode .tile{animation:tile-blur-pulse 2s ease-in-out infinite}.solution-mode .tile-empty{filter:none;animation:none}.solution-mode #board{background-color:#fff;border-color:#96969699!important}.solution-mode #board:before{filter:grayscale(100%) invert(100%)}#solution-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;border-radius:4px;z-index:500;opacity:0;transition:opacity 0s}@keyframes solution-pulse-overlay{0%{box-shadow:inset 0 0 30px 10px #fff6}50%{box-shadow:inset 0 0 70px 30px #fffc}to{box-shadow:inset 0 0 30px 10px #fff6}}#reset-overlay.show~#stage #solution-overlay,#reset-overlay.show~#stage #board-flash-overlay,#win-overlay.show~#stage #solution-overlay,#win-overlay.show~#stage #board-flash-overlay{display:none}@keyframes sealAppear{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.tenant-error{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem;background:red;color:#fff;font-family:Mulish,system-ui,sans-serif;text-align:center}
