body{width:100%;height:100%;padding:0;overflow:hidden;margin:-1px 0 0!important}.puzzle-root{z-index:30;overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;position:fixed;inset:0}.puzzle-stage{padding:max(16px, env(safe-area-inset-top,0px)) 16px 16px;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);pointer-events:auto;touch-action:none;background:#0a0e0c80;flex-direction:column;justify-content:flex-start;align-items:center;gap:18px;display:flex;position:absolute;inset:0}.puzzle-board{background:#12161a8c;border-radius:14px;flex:none;gap:6px;max-width:88vw;padding:6px;display:grid;position:relative;box-shadow:inset 0 0 0 1px #ffffff14}.puzzle-slot{box-shadow:inset 0 0 0 1.5px dashed #ffffff38;outline-offset:2px;background:#ffffff0d;border-radius:8px;outline:2px solid #0000;transition:outline-color .3s,box-shadow .3s}.puzzle-slot.is-hinting{animation:1.1s ease-in-out infinite puzzle-hint}@keyframes puzzle-hint{0%,to{box-shadow:inset 0 0 0 1.5px dashed #9dff8a59;outline-color:#0000}50%{box-shadow:inset 0 0 0 1.5px dashed #9dff8ae6;outline-color:#9dff8ae6}}.puzzle-tray{background:#12161a80;border-radius:16px;flex-wrap:wrap;flex:auto;place-content:center;gap:12px;width:min(94%,460px);min-height:96px;padding:12px;display:flex;overflow-y:auto;box-shadow:inset 0 0 0 1px #ffffff14}.puzzle-piece{cursor:grab;touch-action:none;border-radius:8px;width:76px;height:76px;transition:left .22s,top .22s,width .22s,height .22s,box-shadow .2s,transform .2s;position:relative;overflow:visible;box-shadow:0 3px 10px #00000073,0 0 0 1px #ffffff26}.puzzle-piece.is-not-animated{transition:none!important}.puzzle-piece.is-placed{border-radius:6px}.puzzle-piece.is-dragging{cursor:grabbing;box-shadow:0 10px 22px #0000008c,0 0 0 2px #fff6}.puzzle-piece canvas{border-radius:inherit;pointer-events:none;width:100%;height:100%;display:block}.puzzle-piece.is-solved{animation:.5s ease-out puzzle-solved-glow}@keyframes puzzle-solved-glow{0%{box-shadow:0 0 0 3px #9dff8ae6,0 0 24px #9dff8acc}to{box-shadow:0 3px 10px #00000073,0 0 0 1px #ffffff26}}.puzzle-piece.is-selected{outline-offset:2px;outline:3px solid #ffd36bf2}.puzzle-rotate-btn.is-nudge .puzzle-rotate-disc{animation:.35s ease-in-out puzzle-btn-nudge}@keyframes puzzle-btn-nudge{0%{transform:scale(1)}40%{transform:scale(1.18)}70%{transform:scale(.94)}to{transform:scale(1)}}.puzzle-rotator{padding-bottom:env(safe-area-inset-bottom,0px);flex:none;justify-content:center;gap:36px;display:flex}.puzzle-rotate-btn{color:#ffffffe0;min-width:104px;font:inherit;text-shadow:0 1px 4px #000000b3;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none;background:0 0;border:0;flex-direction:column;align-items:center;gap:8px;padding:0;font-size:13px;line-height:1.2;display:flex}.puzzle-rotate-disc{background:radial-gradient(circle at 50% 36%,#3d4350 0%,#1d2129 62%,#11141a 100%);border-radius:50%;justify-content:center;align-items:center;width:66px;height:66px;transition:transform .12s;display:flex;box-shadow:inset 0 0 0 2px #e2a93b,inset 0 0 0 5px #12151b,inset 0 0 0 6px #e2a93b8c,0 0 0 3px #82a0eb4d,0 0 18px #f0be5a59,0 6px 14px #00000080}.puzzle-rotate-disc svg{color:#f5d27a;filter:drop-shadow(0 0 3px #ffc85ad9);width:44px;height:44px}.puzzle-rotate-btn.is-left svg{transform:scaleX(-1)}.puzzle-rotate-btn:active .puzzle-rotate-disc{transform:scale(.93)}.puzzle-rotate-btn:disabled{opacity:.4}.puzzle-staff-corner{touch-action:none;width:56px;height:56px;position:absolute;top:0;left:0}.puzzle-error{color:#fff;word-break:break-word;z-index:25;background:#781414eb;border-radius:12px;padding:14px 16px;font-family:monospace;font-size:13px;line-height:1.4;position:absolute;bottom:16px;left:16px;right:16px}.puzzle-staff-prompt{z-index:20;background:#06080799;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.puzzle-staff-card{background:#181c1af5;border-radius:14px;width:min(80vw,260px);padding:18px;box-shadow:0 12px 30px #00000080}.puzzle-staff-input{box-sizing:border-box;color:#fff;background:#ffffff0f;border:1px solid #ffffff40;border-radius:8px;width:100%;padding:10px 12px;font-size:16px}.puzzle-staff-error{color:#ff8a8a;min-height:18px;margin-top:6px;font-size:13px}.puzzle-staff-buttons{justify-content:flex-end;gap:8px;margin-top:10px;display:flex}.puzzle-staff-ok,.puzzle-staff-cancel{border:0;border-radius:999px;padding:8px 16px;font-size:14px;font-weight:600}.puzzle-staff-ok{color:#111;background:#fff}.puzzle-staff-cancel{color:#fff;background:#ffffff24}body.welcome-page{background:radial-gradient(at 50% 30%,#3a5a45 0%,#1f302a 55%,#131d1a 100%) fixed}.welcome-canvas{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}.welcome-ui .ui-lang{right:12px}.welcome-card{left:0;right:0;bottom:calc(env(safe-area-inset-bottom,0px) + 28px);text-align:center;text-shadow:0 1px 8px #0009;padding:0 24px;position:absolute}.welcome-card h1{margin:0 0 8px;font-size:26px;font-weight:700}.welcome-card p{max-width:30em;margin:0 auto;font-size:17px;line-height:1.4}.welcome-card .welcome-note{color:#ffd28a;margin-top:12px}.welcome-card .welcome-scan-btn{color:#1a2a23;min-height:48px;text-shadow:none;background:#ffe2a6;border:0;border-radius:999px;margin-top:18px;padding:0 26px;font:600 17px/1.2 -apple-system,system-ui,Segoe UI,Roboto,sans-serif;box-shadow:0 4px 16px #00000059}.welcome-card .welcome-scan-btn:active{transform:scale(.97)}.ui{z-index:10;pointer-events:none;color:#fff;-webkit-user-select:none;user-select:none;font-family:-apple-system,system-ui,Segoe UI,Roboto,sans-serif;position:fixed;inset:0}.ui button{pointer-events:auto;-webkit-tap-highlight-color:transparent;touch-action:manipulation;cursor:pointer}.ui-toast{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-align:center;opacity:0;background:#12161ab8;border-radius:999px;width:max-content;max-width:calc(100vw - 56px);padding:9px 16px;font-size:15px;line-height:1.25;transition:opacity .3s,transform .3s;position:absolute;left:50%;transform:translate(-50%,8px)}.ui-toast.is-visible{opacity:1;transform:translate(-50%)}.ui-loading,.ui-notice{top:calc(env(safe-area-inset-top,0px) + 66px)}.ui-hint{bottom:calc(env(safe-area-inset-bottom,0px) + 116px)}.ui-button{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;background:#12161ab8;border:0;border-radius:50%;width:44px;height:44px;padding:0;font-size:20px;line-height:44px;position:absolute}.ui-mute{top:calc(env(safe-area-inset-top,0px) + 10px);right:12px}.ui-lang{top:calc(env(safe-area-inset-top,0px) + 10px);letter-spacing:.02em;font-size:14px;font-weight:700;right:64px}.ui-lang-menu{z-index:40;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:auto;background:#12161aeb;border-radius:14px;flex-direction:column;min-width:150px;padding:6px;display:flex;position:fixed;box-shadow:0 10px 30px #00000080}.ui-lang-option{appearance:none;color:#fff;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:9px;padding:11px 14px;font-size:16px}.ui-lang-option.is-current{background:#9dff8a38;font-weight:700}.ui-mode{top:calc(env(safe-area-inset-top,0px) + 10px);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;background:#12161ab8;border:0;border-radius:22px;height:44px;padding:0 16px;font-size:15px;font-weight:600;position:absolute;left:12px}.ui-action{left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 190px);color:#fff;white-space:nowrap;opacity:0;background:#3caa64d9;border:0;border-radius:23px;height:46px;padding:0 20px;font-size:16px;font-weight:600;transition:opacity .2s,transform .2s;position:absolute;transform:translate(-50%,8px)}.ui-action.is-visible{opacity:1;transform:translate(-50%)}.ui button.ui-action{pointer-events:none}.ui button.ui-action.is-visible{pointer-events:auto}.ui-controls{left:0;right:0;bottom:calc(env(safe-area-inset-bottom,0px) + 30px);pointer-events:none;justify-content:space-between;padding:0 14px;display:none;position:absolute}.ui-controls.is-visible{display:flex}.ui-dpad{gap:8px;display:flex}.ui-control{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;touch-action:none;-webkit-touch-callout:none;background:#12161a99;border:0;border-radius:50%;width:58px;height:58px;padding:0;font-size:26px;line-height:58px}.ui-control.is-down{background:#5dffb080}.ui-shutter{left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 28px);background:#ffffff47;border:4px solid #fff;border-radius:50%;width:68px;height:68px;margin-left:-34px;padding:0;position:absolute}.ui-shutter:active{background:#ffffffbf}.ui-flash{opacity:0;background:#fff;position:absolute;inset:0}.ui-flash.is-flashing{animation:.35s ease-out ui-flash}@keyframes ui-flash{0%{opacity:.85}to{opacity:0}}.ui-sheet{padding:calc(env(safe-area-inset-top,0px) + 16px) 16px calc(env(safe-area-inset-bottom,0px) + 16px);opacity:0;visibility:hidden;pointer-events:none;background:#080a0ceb;flex-direction:column;justify-content:center;align-items:center;gap:14px;transition:opacity .25s,visibility .25s;display:flex;position:absolute;inset:0}.ui-sheet.is-visible{opacity:1;visibility:visible;pointer-events:auto}.ui-sheet-image{-webkit-touch-callout:default;-webkit-user-select:auto;user-select:auto;border-radius:12px;max-width:100%;max-height:calc(100% - 130px);box-shadow:0 8px 30px #00000080}.ui-sheet-note{opacity:.8;text-align:center;min-height:18px;font-size:14px}.ui-sheet-actions{gap:10px;display:flex}.ui-pill{color:#111;background:#fff;border:0;border-radius:999px;padding:12px 22px;font-size:16px;font-weight:600}.ui-pill-quiet{color:#fff;background:#ffffff29}
