@font-face{font-family:Fredoka;font-style:normal;font-weight:300 700;font-display:swap;src:url(/app/fonts/fredoka-latin-var.woff2) format("woff2")}@font-face{font-family:Nunito;font-style:normal;font-weight:200 1000;font-display:swap;src:url(/app/fonts/nunito-latin-var.woff2) format("woff2")}:root{--bx-font-display: "Fredoka", "Nunito", system-ui, sans-serif;--bx-font-body: "Nunito", system-ui, -apple-system, "Segoe UI", sans-serif;--bx-font-mono: ui-monospace, "SF Mono", "Cascadia Code", Consolas, monospace;--bx-text-xs: .75rem;--bx-text-sm: .875rem;--bx-text-md: 1rem;--bx-text-lg: 1.125rem;--bx-text-xl: 1.375rem;--bx-text-2xl: 1.75rem;--bx-text-3xl: 2.25rem;--bx-accent: var(--theme-primary, #4EC4C4);--bx-accent-2: var(--theme-secondary, #3FC1C9);--bx-accent-strong: color-mix(in oklab, var(--bx-accent) 74%, #0b1030);--bx-accent-deep: color-mix(in oklab, var(--bx-accent) 52%, #0b1030);--bx-accent-soft: color-mix(in oklab, var(--bx-accent) 14%, var(--bx-surface));--bx-accent-tint: color-mix(in oklab, var(--bx-accent) 28%, var(--bx-surface));--bx-on-accent: #ffffff;--bx-move: #4C8DFF;--bx-move-deep: #2D63D6;--bx-turn: #FF9F1C;--bx-turn-deep: #D07800;--bx-jump: #A66BFF;--bx-jump-deep: #7C43DB;--bx-func: #0EA371;--bx-func-deep: #08744F;--bx-success: #0EA371;--bx-success-deep: #08744F;--bx-danger: #FF5A5F;--bx-danger-deep: #D63A40;--bx-warning: #FFB020;--bx-star: #FFC233;--bx-star-deep: #E09A00;--bx-coin: #FFD24A;--bx-bg: #FFF8EE;--bx-bg-pattern: radial-gradient(circle at 1px 1px, rgba(30, 34, 64, .06) 1px, transparent 0);--bx-surface: #FFFFFF;--bx-surface-2: #FFF3E2;--bx-surface-3: #F6E8D4;--bx-ink: #1E2240;--bx-ink-2: #4A4F72;--bx-ink-3: #7D82A6;--bx-line: rgba(30, 34, 64, .1);--bx-line-strong: rgba(30, 34, 64, .18);--bx-scrim: rgba(20, 22, 48, .55);--bx-radius-xs: 8px;--bx-radius-sm: 12px;--bx-radius-md: 16px;--bx-radius-lg: 22px;--bx-radius-xl: 30px;--bx-radius-pill: 999px;--bx-space-1: 4px;--bx-space-2: 8px;--bx-space-3: 12px;--bx-space-4: 16px;--bx-space-5: 24px;--bx-space-6: 32px;--bx-space-7: 48px;--bx-touch: 48px;--bx-depth: 5px;--bx-shadow-1: 0 1px 2px rgba(30, 34, 64, .06), 0 2px 6px rgba(30, 34, 64, .05);--bx-shadow-2: 0 2px 4px rgba(30, 34, 64, .06), 0 8px 20px rgba(30, 34, 64, .08);--bx-shadow-3: 0 6px 12px rgba(30, 34, 64, .08), 0 24px 48px rgba(30, 34, 64, .16);--bx-ring: 0 0 0 4px color-mix(in oklab, var(--bx-accent) 40%, transparent);--bx-ease: cubic-bezier(.2, .8, .2, 1);--bx-ease-spring: cubic-bezier(.34, 1.56, .64, 1);--bx-dur-1: .12s;--bx-dur-2: .22s;--bx-dur-3: .42s}[data-theme=dark]{--bx-bg: #12142A;--bx-bg-pattern: radial-gradient(circle at 1px 1px, rgba(255, 255, 255, .05) 1px, transparent 0);--bx-surface: #1D2040;--bx-surface-2: #171A35;--bx-surface-3: #262A52;--bx-ink: #F4F2FF;--bx-ink-2: #C4C6E6;--bx-ink-3: #8C90B8;--bx-line: rgba(255, 255, 255, .09);--bx-line-strong: rgba(255, 255, 255, .16);--bx-scrim: rgba(6, 7, 20, .7);--bx-accent-deep: color-mix(in oklab, var(--bx-accent) 60%, #000);--bx-shadow-1: 0 1px 2px rgba(0, 0, 0, .3);--bx-shadow-2: 0 2px 4px rgba(0, 0, 0, .3), 0 8px 20px rgba(0, 0, 0, .3);--bx-shadow-3: 0 6px 12px rgba(0, 0, 0, .35), 0 24px 48px rgba(0, 0, 0, .5)}@media (prefers-reduced-motion: reduce){:root{--bx-dur-1: 0ms;--bx-dur-2: 0ms;--bx-dur-3: 0ms}}.bx-btn{--_bg: var(--bx-accent-strong);--_edge: var(--bx-accent-deep);--_fg: var(--bx-on-accent);display:inline-flex;align-items:center;justify-content:center;gap:var(--bx-space-2);min-height:var(--bx-touch);padding:0 var(--bx-space-5);font-family:var(--bx-font-display);font-size:var(--bx-text-lg);font-weight:600;letter-spacing:.01em;color:var(--_fg);background:var(--_bg);border:0;border-radius:var(--bx-radius-md);box-shadow:0 var(--bx-depth) 0 var(--_edge);transform:translateY(0);cursor:pointer;transition:transform var(--bx-dur-1) var(--bx-ease),box-shadow var(--bx-dur-1) var(--bx-ease),filter var(--bx-dur-2) var(--bx-ease);-webkit-user-select:none;user-select:none}.bx-btn:hover:not(:disabled){filter:brightness(1.06)}.bx-btn:active:not(:disabled){transform:translateY(var(--bx-depth));box-shadow:0 0 0 var(--_edge)}.bx-btn:focus-visible{outline:none;box-shadow:0 var(--bx-depth) 0 var(--_edge),var(--bx-ring)}.bx-btn:disabled{opacity:.45;cursor:not-allowed;filter:saturate(.4)}.bx-btn--success{--_bg: var(--bx-success);--_edge: var(--bx-success-deep)}.bx-btn--danger{--_bg: var(--bx-danger);--_edge: var(--bx-danger-deep)}.bx-btn--star{--_bg: var(--bx-star);--_edge: var(--bx-star-deep);--_fg: #3A2600}.bx-btn--ghost{--_bg: var(--bx-surface);--_edge: var(--bx-line-strong);--_fg: var(--bx-ink);box-shadow:inset 0 0 0 2px var(--bx-line),0 var(--bx-depth) 0 var(--_edge)}.bx-btn--ghost:active:not(:disabled){box-shadow:inset 0 0 0 2px var(--bx-line),0 0 0 var(--_edge)}.bx-btn--icon{padding:0;width:var(--bx-touch)}.bx-btn--lg{min-height:60px;font-size:var(--bx-text-xl);border-radius:var(--bx-radius-lg);padding:0 var(--bx-space-6)}.bx-card{background:var(--bx-surface);border:2px solid var(--bx-line);border-radius:var(--bx-radius-lg);box-shadow:var(--bx-shadow-1)}.bx-well{background:var(--bx-surface-2);border-radius:var(--bx-radius-md);box-shadow:inset 0 2px 0 var(--bx-line)}.bx-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bx-scrim);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:bx-fade var(--bx-dur-2) var(--bx-ease)}.bx-modal{background:var(--bx-surface);color:var(--bx-ink);border-radius:var(--bx-radius-xl);box-shadow:var(--bx-shadow-3),0 0 0 2px var(--bx-line);animation:bx-pop var(--bx-dur-3) var(--bx-ease-spring)}.bx-chip{display:inline-flex;align-items:center;gap:var(--bx-space-1);height:32px;padding:0 var(--bx-space-3);border-radius:var(--bx-radius-pill);font-family:var(--bx-font-display);font-weight:600;font-size:var(--bx-text-sm);background:var(--bx-accent-soft);color:var(--bx-accent-deep)}.bx-overline{font-family:var(--bx-font-display);font-size:var(--bx-text-sm);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--bx-ink-3)}@keyframes bx-fade{0%{opacity:0}to{opacity:1}}@keyframes bx-pop{0%{opacity:0;transform:translateY(16px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes bx-bounce-in{0%{transform:scale(.3);opacity:0}60%{transform:scale(1.12);opacity:1}to{transform:scale(1)}}@keyframes bx-wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-6deg)}75%{transform:rotate(6deg)}}.control-buttons{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:var(--bx-space-2);padding:var(--bx-space-3);background:var(--bx-surface-2);border-top:2px solid var(--bx-line)}.control-buttons .btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--bx-space-2);white-space:nowrap}.control-buttons .btn-primary{--_bg: var(--bx-success);--_edge: var(--bx-success-deep);min-width:140px}.canvas-control-overlay{position:absolute;left:50%;bottom:var(--bx-space-3);transform:translate(-50%);z-index:200;display:flex;justify-content:center;align-items:center;max-width:calc(100% - 2 * var(--bx-space-3));pointer-events:none}.canvas-control-buttons{display:flex;align-items:center;gap:var(--bx-space-2);padding:var(--bx-space-2);padding-bottom:calc(var(--bx-space-2) + 4px);background:color-mix(in oklab,var(--bx-surface) 86%,transparent);backdrop-filter:blur(12px) saturate(160%);-webkit-backdrop-filter:blur(12px) saturate(160%);border-radius:var(--bx-radius-lg);box-shadow:inset 0 0 0 2px var(--bx-line),var(--bx-shadow-3);pointer-events:auto}.canvas-btn{--_bg: var(--bx-surface);--_edge: var(--bx-line-strong);--_fg: var(--bx-ink);--_d: 4px;display:inline-flex;align-items:center;justify-content:center;gap:6px;height:var(--bx-touch);min-width:var(--bx-touch);padding:0 var(--bx-space-4);font-family:var(--bx-font-display);font-size:.9375rem;font-weight:600;letter-spacing:.01em;white-space:nowrap;color:var(--_fg);background:var(--_bg);border:0;border-radius:var(--bx-radius-md);box-shadow:inset 0 0 0 2px var(--bx-line),0 var(--_d) 0 var(--_edge);cursor:pointer;transform:translateY(0);transition:transform var(--bx-dur-1) var(--bx-ease),box-shadow var(--bx-dur-1) var(--bx-ease),filter var(--bx-dur-2) var(--bx-ease),background-color var(--bx-dur-2) var(--bx-ease);touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.canvas-btn:hover:not(:disabled){filter:brightness(1.04)}.canvas-btn:active:not(:disabled){transform:translateY(var(--_d));box-shadow:inset 0 0 0 2px var(--bx-line),0 0 0 var(--_edge)}.canvas-btn:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--bx-line),0 var(--_d) 0 var(--_edge),var(--bx-ring)}.canvas-btn:disabled{opacity:.45;filter:saturate(.4);cursor:not-allowed}.canvas-btn .btn-icon{display:inline-flex;align-items:center;flex-shrink:0}.canvas-btn .btn-text{display:inline}.canvas-btn-secondary .btn-icon{color:var(--bx-ink-2)}.canvas-btn-primary{--_bg: var(--bx-success);--_edge: var(--bx-success-deep);--_fg: #ffffff;--_d: var(--bx-depth);height:56px;min-width:152px;padding:0 var(--bx-space-5) 0 var(--bx-space-4);margin-right:var(--bx-space-1);font-size:var(--bx-text-xl);border-radius:var(--bx-radius-md);text-shadow:0 1px 0 var(--bx-success-deep);box-shadow:inset 0 2px #ffffff4d,0 var(--_d) 0 var(--_edge)}.canvas-btn-primary .btn-icon{filter:drop-shadow(0 1px 0 var(--bx-success-deep))}.canvas-btn-primary:active:not(:disabled){box-shadow:inset 0 2px #ffffff4d,0 0 0 var(--_edge)}.canvas-btn-primary:focus-visible{box-shadow:inset 0 2px #ffffff4d,0 var(--_d) 0 var(--_edge),var(--bx-ring)}.canvas-btn-primary:not(:disabled):not(.is-running){animation:bx-cb-ready 2.4s var(--bx-ease) infinite}@keyframes bx-cb-ready{0%,to{filter:brightness(1)}50%{filter:brightness(1.1)}}.canvas-btn-primary:hover:not(:disabled){animation:none;filter:brightness(1.08)}.canvas-btn-primary.is-running,.canvas-btn-primary.is-running:disabled{--_bg: var(--bx-move);--_edge: var(--bx-move-deep);opacity:1;filter:none;cursor:progress;text-shadow:0 1px 0 var(--bx-move-deep);background-image:repeating-linear-gradient(-45deg,rgba(255,255,255,.14) 0 10px,transparent 10px 20px);background-size:28px 28px;animation:bx-cb-stripes .8s linear infinite}.canvas-btn-primary.is-stop{--_bg: var(--bx-danger);--_edge: var(--bx-danger-deep);text-shadow:0 1px 0 var(--bx-danger-deep);animation:none}.canvas-btn-primary.is-stop .btn-icon{filter:drop-shadow(0 1px 0 var(--bx-danger-deep))}.canvas-btn-primary.is-stop:disabled{opacity:.75;filter:none;cursor:progress}@keyframes bx-cb-stripes{0%{background-position:0 0}to{background-position:28px 0}}.run-indicator{width:10px;height:10px;flex-shrink:0;border-radius:var(--bx-radius-pill);background:#fff;box-shadow:0 0 #ffffffb3;animation:bx-cb-ping 1s var(--bx-ease) infinite}@keyframes bx-cb-ping{0%{box-shadow:0 0 #ffffffb3}to{box-shadow:0 0 0 8px #fff0}}@media screen and (max-width: 1194px){.canvas-control-buttons{gap:6px;padding:6px 6px 10px}.canvas-btn{padding:0 10px;font-size:.8125rem;gap:4px}.canvas-btn-primary{min-width:132px;padding:0 var(--bx-space-4) 0 var(--bx-space-3);font-size:var(--bx-text-lg)}}@media screen and (max-width: 899px),screen and (max-width: 1024px) and (max-height: 767px),screen and (max-height: 500px){.canvas-btn .btn-text{display:none}.canvas-btn{width:var(--bx-touch);padding:0;gap:0}.canvas-btn-primary{width:auto;min-width:72px;padding:0 var(--bx-space-4)}.canvas-btn-primary .btn-icon svg{width:26px;height:26px}}@media screen and (max-height: 500px){.canvas-control-overlay{bottom:var(--bx-space-2)}.canvas-btn{height:40px;width:40px;min-width:40px}.canvas-btn-primary{height:44px;width:auto;min-width:60px}}@media screen and (max-width: 479px){.canvas-control-buttons{gap:4px;padding:4px 4px 8px}.canvas-btn{width:42px;min-width:42px;height:42px}.canvas-btn-primary{width:auto;height:48px;min-width:60px;padding:0 var(--bx-space-3)}}@media (hover: none) and (pointer: coarse){.canvas-btn:hover:not(:disabled){filter:none}}@media (prefers-reduced-motion: reduce){.canvas-btn-primary:not(:disabled):not(.is-running),.canvas-btn-primary.is-running,.run-indicator{animation:none}}.canvas-btn.step-btn.is-active,.btn.step-btn.is-active{--_bg: color-mix(in oklab, var(--bx-move) 14%, var(--bx-surface));--_edge: var(--bx-move-deep);color:var(--bx-move-deep);box-shadow:inset 0 0 0 2px var(--bx-move),0 var(--_d, 4px) 0 var(--_edge)}[data-theme=dark] .canvas-btn.step-btn.is-active{color:#cfe0ff}.game-canvas{flex:1;width:100%;min-height:0;position:relative;overflow:hidden;isolation:isolate;background:var(--bx-surface-2);border:3px solid var(--bx-surface);border-radius:var(--bx-radius-lg);box-shadow:0 0 0 2px var(--bx-line),var(--bx-shadow-2)}[data-theme=dark] .game-canvas{border-color:var(--bx-surface-3)}.game-canvas canvas{display:block;outline:none;image-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;touch-action:none;-webkit-tap-highlight-color:transparent;border-radius:calc(var(--bx-radius-lg) - 3px);opacity:1!important;visibility:visible!important;transition:none!important;will-change:auto;min-width:100px!important;min-height:100px!important;position:relative;z-index:1}.level-loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:500;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--bx-space-4);background-color:var(--bx-surface-2);background-image:var(--bx-bg-pattern);background-size:18px 18px;border-radius:calc(var(--bx-radius-lg) - 3px);animation:bx-fade var(--bx-dur-2) var(--bx-ease)}.loading-spinner{position:relative;width:72px;height:72px}.spinner-ring{position:absolute;top:0;right:0;bottom:0;left:0;border:6px solid transparent;border-radius:50%;animation:bx-gc-spin 1.4s cubic-bezier(.5,0,.5,1) infinite}.spinner-ring:nth-child(1){border-top-color:var(--bx-move);animation-delay:-.45s}.spinner-ring:nth-child(2){border-top-color:var(--bx-turn);animation-delay:-.3s}.spinner-ring:nth-child(3){border-top-color:var(--bx-jump);animation-delay:-.15s}@keyframes bx-gc-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-text{font-family:var(--bx-font-display);font-size:var(--bx-text-lg);font-weight:600;letter-spacing:.01em;color:var(--bx-ink-2);animation:bx-gc-breathe 2s ease-in-out infinite}@keyframes bx-gc-breathe{0%,to{opacity:1}50%{opacity:.6}}.webgl-error-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:500;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--bx-space-6);overflow-y:auto;text-align:center;background:var(--bx-surface);color:var(--bx-ink);border-radius:calc(var(--bx-radius-lg) - 3px);animation:bx-fade var(--bx-dur-2) var(--bx-ease)}.webgl-error-overlay .error-icon{font-size:4rem;margin-bottom:var(--bx-space-5);animation:bx-wiggle 1.6s ease-in-out infinite}.webgl-error-overlay h2{margin:0 0 var(--bx-space-4);font-family:var(--bx-font-display);font-size:var(--bx-text-2xl);font-weight:600;color:var(--bx-ink)}.webgl-error-overlay .error-message{max-width:600px;margin-bottom:var(--bx-space-6);font-size:var(--bx-text-md);line-height:1.6;color:var(--bx-ink-2)}.webgl-error-overlay .error-details{max-width:600px;margin-bottom:var(--bx-space-6);padding:var(--bx-space-5);text-align:left;background:var(--bx-surface-2);border-radius:var(--bx-radius-md);box-shadow:inset 0 2px 0 var(--bx-line)}.webgl-error-overlay .error-details h3{margin:0 0 var(--bx-space-4);font-family:var(--bx-font-display);font-size:var(--bx-text-md);font-weight:600;color:var(--bx-ink)}.webgl-error-overlay .error-details ul{margin:0;padding-left:var(--bx-space-5);color:var(--bx-ink-2)}.webgl-error-overlay .error-details li{margin-bottom:var(--bx-space-3);line-height:1.5}.webgl-error-overlay .reload-button{min-height:var(--bx-touch);margin-bottom:var(--bx-space-5);padding:0 var(--bx-space-6);font-family:var(--bx-font-display);font-size:var(--bx-text-lg);font-weight:600;color:var(--bx-on-accent);background:var(--bx-accent-strong);border:0;border-radius:var(--bx-radius-md);box-shadow:0 var(--bx-depth) 0 var(--bx-accent-deep);cursor:pointer;transition:transform var(--bx-dur-1) var(--bx-ease),box-shadow var(--bx-dur-1) var(--bx-ease)}.webgl-error-overlay .reload-button:hover{filter:brightness(1.06)}.webgl-error-overlay .reload-button:active{transform:translateY(var(--bx-depth));box-shadow:0 0 0 var(--bx-accent-deep)}.webgl-error-overlay .debug-hint{max-width:600px;font-size:var(--bx-text-sm);color:var(--bx-ink-3)}@media screen and (max-width: 1024px){.game-canvas canvas{width:100%!important;height:100%!important}}@media screen and (min-width: 768px) and (max-width: 1366px) and (orientation: landscape) and (max-height: 1024px){.game-canvas{flex:1!important;min-height:0!important;height:100%!important;max-height:100%!important}.game-canvas canvas{object-fit:contain;width:100%!important;height:100%!important}}@media screen and (max-width: 767px) and (orientation: landscape) and (min-height: 400px){.game-canvas{flex:1 1 auto;min-height:0;height:auto}.game-canvas canvas{object-fit:contain}}@media screen and (max-width: 768px){.game-canvas{border-width:2px;border-radius:var(--bx-radius-md)}.game-canvas canvas,.level-loading-overlay{border-radius:calc(var(--bx-radius-md) - 2px)}.loading-spinner{width:56px;height:56px}.spinner-ring{border-width:5px}.loading-text{font-size:var(--bx-text-md)}.webgl-error-overlay{padding:var(--bx-space-5)}.webgl-error-overlay .error-icon{font-size:3rem;margin-bottom:var(--bx-space-4)}.webgl-error-overlay h2{font-size:var(--bx-text-xl)}.webgl-error-overlay .error-details{padding:var(--bx-space-4);font-size:var(--bx-text-sm)}}@media screen and (max-width: 479px){.webgl-error-overlay{padding:var(--bx-space-4)}.webgl-error-overlay h2{font-size:var(--bx-text-lg)}.webgl-error-overlay .error-message{font-size:var(--bx-text-sm)}}@media (hover: none) and (pointer: coarse){.game-canvas,.game-canvas canvas{touch-action:none}}@media (prefers-reduced-motion: reduce){.spinner-ring{animation-duration:3s}.loading-text,.webgl-error-overlay .error-icon{animation:none}}.cmd--move,.cmd--turn,.cmd--jump,.cmd--func{--_c-soft: color-mix(in oklab, var(--_c) 16%, var(--bx-surface));--_c-shade: color-mix(in oklab, var(--_c-deep) 70%, transparent)}.cmd--move.cmd--move{--_c: var(--bx-move);--_c-deep: var(--bx-move-deep);--_c-ink: #ffffff}.cmd--turn.cmd--turn{--_c: var(--bx-turn);--_c-deep: var(--bx-turn-deep);--_c-ink: #3A2600}.cmd--jump.cmd--jump{--_c: var(--bx-jump);--_c-deep: var(--bx-jump-deep);--_c-ink: #ffffff}.cmd--func.cmd--func{--_c: var(--bx-func);--_c-deep: var(--bx-func-deep);--_c-ink: #ffffff}.command-panel{position:relative;display:flex;flex-direction:column;gap:var(--bx-space-3);padding:var(--bx-space-3);padding-bottom:var(--bx-space-2);background:transparent;overflow-y:auto;scroll-behavior:smooth;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.command-panel::-webkit-scrollbar{width:8px}.command-panel::-webkit-scrollbar-thumb{background:var(--bx-line-strong);border-radius:var(--bx-radius-pill)}.command-buttons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--bx-space-2);row-gap:var(--bx-space-3);padding-bottom:4px;touch-action:none;-webkit-user-select:none;user-select:none}.command-buttons>*:nth-child(1),.command-buttons>*:nth-child(2),.command-buttons>*:nth-child(3),.command-buttons>*:nth-child(4){grid-row:1}.command-buttons>*:nth-child(5),.command-buttons>*:nth-child(6),.command-buttons>*:nth-child(7){grid-row:2}.command-buttons>*:nth-child(5){grid-column:1 / 2}.command-buttons>*:nth-child(6){grid-column:2 / 4}.command-buttons>*:nth-child(7){grid-column:4 / 5}.command-btn{--_c: var(--bx-accent-strong);--_c-deep: var(--bx-accent-deep);--_c-ink: var(--bx-on-accent);--_d: 4px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;min-height:64px;padding:var(--bx-space-2) var(--bx-space-1) 6px;background:var(--_c);color:var(--_c-ink);border:0;border-radius:var(--bx-radius-md);box-shadow:inset 0 2px #ffffff47,0 var(--_d) 0 var(--_c-deep);cursor:grab;transform:translateY(0);transition:transform var(--bx-dur-1) var(--bx-ease),box-shadow var(--bx-dur-1) var(--bx-ease),filter var(--bx-dur-2) var(--bx-ease),opacity var(--bx-dur-2) var(--bx-ease);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.command-btn:hover{filter:brightness(1.06)}.command-btn:active{cursor:grabbing;transform:translateY(var(--_d));box-shadow:inset 0 2px #ffffff47,0 0 0 var(--_c-deep)}.command-btn:focus{outline:none}.command-btn:focus-visible{box-shadow:inset 0 2px #ffffff47,0 var(--_d) 0 var(--_c-deep),var(--bx-ring)}.command-btn:disabled{opacity:.45;filter:saturate(.5);cursor:not-allowed;pointer-events:none}.command-icon{display:inline-flex;align-items:center;justify-content:center;height:28px;line-height:1;color:inherit}.command-icon svg{width:28px;height:28px;stroke-width:2.6;filter:drop-shadow(0 1px 0 var(--_c-shade))}.cmd--turn .command-icon svg{filter:none}.function-command-icon{font-family:var(--bx-font-display);font-size:var(--bx-text-xl);font-weight:700;letter-spacing:.02em}.command-label{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--bx-font-display);font-size:.8125rem;font-weight:600;line-height:1.1;letter-spacing:.01em;color:inherit;text-shadow:0 1px 0 var(--_c-shade)}.cmd--turn .command-label{text-shadow:0 1px 0 rgba(255,255,255,.35)}.command-btn.cmd--func.is-empty{background:var(--_c-soft);color:var(--bx-func-deep);box-shadow:inset 0 0 0 2px color-mix(in oklab,var(--bx-func) 55%,transparent),0 var(--_d) 0 color-mix(in oklab,var(--bx-func) 40%,transparent)}[data-theme=dark] .command-btn.cmd--func.is-empty{color:var(--bx-func)}.command-btn.cmd--func.is-empty .command-label{text-shadow:none}.command-btn.cmd--func.is-empty:active{box-shadow:inset 0 0 0 2px color-mix(in oklab,var(--bx-func) 55%,transparent)}.command-sequence{display:flex;flex-direction:column;flex:1;min-height:0;gap:var(--bx-space-2)}.command-sequence-header{display:flex;align-items:center;justify-content:space-between;gap:var(--bx-space-2);padding:0 var(--bx-space-1)}.command-sequence-title{font-family:var(--bx-font-display);font-size:var(--bx-text-sm);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--bx-ink-2)}.command-count{display:inline-flex;align-items:center;flex-shrink:0;height:24px;padding:0 var(--bx-space-2);border-radius:var(--bx-radius-pill);background:var(--bx-surface-2);color:var(--bx-ink-2);font-family:var(--bx-font-display);font-size:var(--bx-text-xs);white-space:nowrap;font-weight:600;font-variant-numeric:tabular-nums;box-shadow:inset 0 0 0 2px var(--bx-line);gap:4px}.command-count.is-full{background:color-mix(in oklab,var(--bx-danger) 16%,var(--bx-surface));color:var(--bx-danger-deep);box-shadow:inset 0 0 0 2px color-mix(in oklab,var(--bx-danger) 40%,transparent)}.command-slots{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:52px;gap:var(--bx-space-2);align-content:start;width:100%;box-sizing:border-box;padding:var(--bx-space-3) 10px;background:var(--bx-surface-2);border-radius:var(--bx-radius-md);box-shadow:inset 0 3px 0 var(--bx-line),inset 0 0 0 2px var(--bx-line);overflow:visible;overscroll-behavior:contain;touch-action:pan-y;-ms-overflow-style:none;scrollbar-width:none}.command-slots::-webkit-scrollbar{display:none}.command-slots-empty-hint{position:absolute;inset:var(--bx-space-3);z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--bx-space-2);padding:var(--bx-space-4);text-align:center;pointer-events:none;animation:bx-fade var(--bx-dur-3) var(--bx-ease)}.empty-hint-icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--bx-radius-pill);background:var(--bx-accent-soft);color:var(--bx-accent-deep);box-shadow:0 3px 0 var(--bx-accent-tint)}[data-theme=dark] .empty-hint-icon{color:var(--bx-accent)}.empty-hint-text{max-width:220px;padding:var(--bx-space-1) var(--bx-space-3);border-radius:var(--bx-radius-sm);background:color-mix(in oklab,var(--bx-surface-2) 85%,transparent);font-family:var(--bx-font-body);font-size:var(--bx-text-sm);font-weight:700;line-height:1.35;color:var(--bx-ink-2)}.command-slots.is-empty .command-slot.empty{opacity:.35}.command-slots.is-empty .command-slot.empty .slot-number{visibility:hidden}.command-slot{--_c: var(--bx-accent-strong);--_c-deep: var(--bx-accent-deep);--_c-ink: var(--bx-on-accent);position:relative;display:flex;align-items:center;justify-content:center;min-width:0;height:100%;border-radius:var(--bx-radius-sm);transition:transform var(--bx-dur-2) var(--bx-ease-spring),box-shadow var(--bx-dur-2) var(--bx-ease),background-color var(--bx-dur-2) var(--bx-ease);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.command-slot:active{cursor:grabbing}.command-slot.locked{background:repeating-linear-gradient(135deg,var(--bx-surface-2) 0 6px,color-mix(in oklab,var(--bx-line) 55%,var(--bx-surface-2)) 6px 12px);border:2px solid var(--bx-line);color:var(--bx-ink-3);opacity:.7;cursor:not-allowed}.command-slot.locked .slot-number{display:none}.command-slot.locked .slot-lock{display:inline-flex}.command-slot.empty{background:transparent;border:2px dashed var(--bx-line-strong);cursor:default}.command-slot.empty .slot-number{position:static;font-size:var(--bx-text-xs);color:var(--bx-ink-3);opacity:.8}.command-slot.filled{background:var(--_c);color:var(--_c-ink);box-shadow:inset 0 2px #ffffff40,0 3px 0 var(--_c-deep)}.command-slot.filled .slot-icon{animation:bx-cp-slot-in var(--bx-dur-3) var(--bx-ease-spring)}.command-slot.filled:hover{transform:translateY(-2px)}@keyframes bx-cp-slot-in{0%{transform:scale(.6);opacity:0}70%{transform:scale(1.08);opacity:1}to{transform:scale(1)}}.command-slot.executing{z-index:3;transform:translateY(-3px) scale(1.1);box-shadow:inset 0 2px #ffffff40,0 3px 0 var(--_c-deep),0 0 0 3px var(--bx-surface),0 0 0 6px var(--_c),var(--bx-shadow-2);animation:bx-cp-exec var(--bx-dur-3) var(--bx-ease-spring)}@keyframes bx-cp-exec{0%{transform:translateY(0) scale(1)}60%{transform:translateY(-5px) scale(1.18)}to{transform:translateY(-3px) scale(1.1)}}.command-slot.drop-target{background:var(--bx-accent-soft);border:2px dashed var(--bx-accent);box-shadow:0 0 0 4px color-mix(in oklab,var(--bx-accent) 22%,transparent);animation:bx-cp-drop-pulse 1s ease-in-out infinite}.command-slot.drop-target .slot-number{position:absolute;top:3px;left:6px}.command-slot.drop-target .placeholder-icon{font-size:var(--bx-text-2xl)}@keyframes bx-cp-drop-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}.command-slot.dragging,.command-slot.dragging-touch{opacity:0;pointer-events:none}.placeholder-icon{font-family:var(--bx-font-display);font-size:var(--bx-text-xl);font-weight:700;line-height:1;color:var(--bx-accent-deep)}[data-theme=dark] .placeholder-icon{color:var(--bx-accent)}.command-slot.placeholder{background:var(--bx-accent-soft);border:2px dashed var(--bx-accent);pointer-events:none}.slot-number{position:absolute;top:3px;left:6px;font-family:var(--bx-font-display);font-size:.625rem;font-weight:600;line-height:1;color:inherit;opacity:.75;font-variant-numeric:tabular-nums}.slot-icon{display:inline-flex;align-items:center;justify-content:center;color:inherit}.slot-icon svg{width:24px;height:24px;stroke:currentColor;stroke-width:2.6}.slot-icon-function{font-family:var(--bx-font-display);font-size:var(--bx-text-md);font-weight:700}.remove-btn{position:absolute;top:-7px;right:-7px;z-index:4;display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;background:var(--bx-danger);color:#fff;border:2px solid var(--bx-surface);border-radius:var(--bx-radius-pill);box-shadow:0 2px 0 var(--bx-danger-deep);cursor:pointer;opacity:0;transform:scale(.8);transition:opacity var(--bx-dur-1) var(--bx-ease),transform var(--bx-dur-2) var(--bx-ease-spring)}.command-slot:hover .remove-btn,.remove-btn:focus-visible{opacity:1;transform:scale(1)}.remove-btn:hover{transform:scale(1.12)}.remove-btn:disabled{opacity:0;cursor:not-allowed;pointer-events:none}.touch-drag-preview{--_c: var(--bx-accent-strong);--_c-deep: var(--bx-accent-deep);--_c-ink: var(--bx-on-accent);display:flex;align-items:center;justify-content:center;width:60px;height:60px;background:var(--_c);color:var(--_c-ink);border-radius:var(--bx-radius-md);box-shadow:inset 0 2px #ffffff47,0 4px 0 var(--_c-deep),var(--bx-shadow-3);font-family:var(--bx-font-display);font-size:var(--bx-text-xl);font-weight:700;animation:bx-cp-preview .6s ease-in-out infinite}.touch-drag-preview svg{width:30px;height:30px;stroke:currentColor;stroke-width:2.6}@keyframes bx-cp-preview{0%,to{transform:translate(-50%,-50%) rotate(-3deg) scale(1.04)}50%{transform:translate(-50%,-50%) rotate(3deg) scale(1.1)}}@media screen and (max-width: 1194px){.command-panel{padding:10px;gap:10px}.command-buttons{gap:6px;row-gap:10px}.command-btn{min-height:60px}.command-icon,.command-icon svg{height:26px}.command-icon svg{width:26px}.command-label{font-size:.75rem}.command-slots{grid-auto-rows:48px;gap:6px;padding:10px 8px}}@media screen and (max-height: 500px){.command-label{display:none}.command-btn{min-height:46px;padding:6px 4px}.command-slots{grid-auto-rows:42px}.command-slots-empty-hint .empty-hint-icon{display:none}}@media screen and (max-width: 479px){.command-label{display:none}.command-btn{min-height:48px;padding:6px 4px}.command-slots{grid-auto-rows:44px;max-height:210px;overflow-y:auto}}@media (hover: none) and (pointer: coarse){.command-btn{touch-action:manipulation}.command-btn:hover,.command-slot.filled:hover{filter:none;transform:none}.command-btn:active{transform:translateY(var(--_d))}.remove-btn{width:26px;height:26px;top:-9px;right:-9px;opacity:.95;transform:scale(1)}.command-slot{touch-action:manipulation}.command-btn.dragging,.command-slot.dragging-touch{opacity:.3;transform:scale(.9)}}@media (prefers-reduced-motion: reduce){.command-slot.filled .slot-icon,.command-slot.executing,.command-slot.drop-target,.touch-drag-preview{animation:none}}.program-length{margin-left:auto;font-family:var(--bx-font-body);font-size:var(--bx-text-xs);font-weight:600;color:var(--bx-ink-2);white-space:nowrap}.program-length strong{font-family:var(--bx-font-display);font-size:var(--bx-text-sm);color:var(--bx-ink);font-variant-numeric:tabular-nums}.command-slot.has-error{z-index:2;box-shadow:inset 0 2px #ffffff40,0 3px 0 var(--_c-deep),0 0 0 3px var(--bx-surface),0 0 0 6px var(--bx-danger);animation:bx-cp-error .5s var(--bx-ease) 2}.slot-error-badge{position:absolute;top:-8px;left:-6px;z-index:4;display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--bx-danger);color:#fff;font-family:var(--bx-font-display);font-size:13px;font-weight:700;line-height:1;box-shadow:0 0 0 2px var(--bx-surface);pointer-events:none}@keyframes bx-cp-error{0%,to{transform:translate(0)}25%{transform:translate(-3px)}75%{transform:translate(3px)}}.command-slot.is-pattern{box-shadow:inset 0 2px #ffffff40,0 3px 0 var(--_c-deep),0 0 0 2px var(--bx-surface),0 0 0 5px var(--bx-func)}.command-slot.is-pattern.has-error,.command-slot.is-pattern.executing{box-shadow:inset 0 2px #ffffff40,0 3px 0 var(--_c-deep),0 0 0 3px var(--bx-surface),0 0 0 6px var(--_c)}@media (prefers-reduced-motion: reduce){.command-slot.has-error{animation:none}}.command-sequence-header .command-count{flex-shrink:0;white-space:nowrap}.command-sequence-header{flex-wrap:wrap;row-gap:2px}.command-sequence-header .program-length{order:3;flex-basis:100%;margin-left:0}.program-length.is-reserved{visibility:hidden;pointer-events:none}.function-panel-wrapper{display:flex;flex-direction:column;min-height:0;padding:0 var(--bx-space-3) var(--bx-space-3);background:transparent;overflow:visible}.function-panel{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--bx-space-2);align-content:start;min-height:0;max-width:100%;padding:0;background:transparent;overflow:visible}.saved-function{position:relative;display:flex;flex-direction:column;gap:var(--bx-space-2);width:100%;min-height:0;padding:var(--bx-space-2);background:var(--_c-soft, var(--bx-surface-2));border-radius:var(--bx-radius-md);box-shadow:inset 0 0 0 2px color-mix(in oklab,var(--bx-func) 45%,transparent),0 3px color-mix(in oklab,var(--bx-func) 35%,transparent);animation:bx-pop var(--bx-dur-3) var(--bx-ease-spring)}.function-label{align-self:flex-start;display:inline-flex;align-items:center;justify-content:center;height:26px;min-width:40px;padding:0 var(--bx-space-2);border-radius:var(--bx-radius-xs);background:var(--bx-func);color:#fff;font-family:var(--bx-font-display);font-size:var(--bx-text-md);font-weight:700;line-height:1;text-shadow:0 1px 0 var(--bx-func-deep);box-shadow:0 2px 0 var(--bx-func-deep)}.delete-function-btn{position:absolute;top:6px;right:6px;z-index:10;display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:var(--bx-surface);color:var(--bx-danger);border:0;border-radius:var(--bx-radius-pill);box-shadow:inset 0 0 0 2px color-mix(in oklab,var(--bx-danger) 35%,transparent);cursor:pointer;transition:background-color var(--bx-dur-2) var(--bx-ease),color var(--bx-dur-2) var(--bx-ease),transform var(--bx-dur-1) var(--bx-ease)}.delete-function-btn:hover:not(:disabled){background:var(--bx-danger);color:#fff}.delete-function-btn:active:not(:disabled){transform:scale(.92)}.delete-function-btn:focus-visible{outline:none;box-shadow:var(--bx-ring)}.delete-function-btn:disabled{opacity:.4;cursor:not-allowed}.function-commands-preview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:30px;gap:4px;width:100%}.function-cmd-preview{--_c: var(--bx-accent-strong);--_c-deep: var(--bx-accent-deep);--_c-ink: var(--bx-on-accent);display:flex;align-items:center;justify-content:center;min-width:0;background:var(--_c);color:var(--_c-ink);border-radius:var(--bx-radius-xs);box-shadow:0 2px 0 var(--_c-deep);transition:transform var(--bx-dur-2) var(--bx-ease-spring),box-shadow var(--bx-dur-2) var(--bx-ease)}.function-cmd-preview svg{width:16px;height:16px;stroke:currentColor;stroke-width:2.6}.function-cmd-preview.executing{position:relative;z-index:2;transform:translateY(-2px) scale(1.15);box-shadow:0 2px 0 var(--_c-deep),0 0 0 2px var(--bx-surface),0 0 0 4px var(--_c)}.saved-function.executing{box-shadow:inset 0 0 0 2px var(--bx-func),0 0 0 4px color-mix(in oklab,var(--bx-func) 30%,transparent)}.create-function-form{position:fixed;top:calc(env(safe-area-inset-top,0px) + 84px);left:max(env(safe-area-inset-left,0px) + var(--bx-space-3),var(--bx-space-3));z-index:1000;width:340px;max-height:calc(100dvh - 100px);overflow-y:auto;padding:56px var(--bx-space-5) var(--bx-space-5);background:var(--bx-surface);color:var(--bx-ink);border-radius:var(--bx-radius-xl);box-shadow:var(--bx-shadow-3),0 0 0 2px var(--bx-line),inset 0 6px 0 var(--bx-func);animation:bx-fp-slide-in var(--bx-dur-3) var(--bx-ease-spring)}.create-function-form:before{content:"Funktion erstellen";position:absolute;top:20px;left:var(--bx-space-5);font-family:var(--bx-font-display);font-size:var(--bx-text-xl);font-weight:600;color:var(--bx-ink)}.create-function-form.closing{animation:bx-fp-slide-out var(--bx-dur-2) var(--bx-ease) forwards}@keyframes bx-fp-slide-in{0%{opacity:0;transform:translate(-24px) scale(.96)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes bx-fp-slide-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-24px)}}.create-function-close{position:absolute;top:14px;right:14px;z-index:10;display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;background:var(--bx-surface-2);color:var(--bx-ink-2);border:0;border-radius:var(--bx-radius-pill);box-shadow:inset 0 0 0 2px var(--bx-line);cursor:pointer;transition:background-color var(--bx-dur-2) var(--bx-ease),color var(--bx-dur-2) var(--bx-ease),transform var(--bx-dur-1) var(--bx-ease)}.create-function-close:hover:not(:disabled){background:var(--bx-danger);color:#fff}.create-function-close:active:not(:disabled){transform:scale(.92)}.create-function-close:focus-visible{outline:none;box-shadow:var(--bx-ring)}.function-command-buttons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--bx-space-2);row-gap:var(--bx-space-3);margin-bottom:var(--bx-space-4);padding-bottom:4px}.function-command-buttons>*:nth-child(1),.function-command-buttons>*:nth-child(2),.function-command-buttons>*:nth-child(3),.function-command-buttons>*:nth-child(4){grid-row:1}.function-command-buttons>*:nth-child(5){grid-row:2;grid-column:2 / 4}.function-command-btn{--_c: var(--bx-accent-strong);--_c-deep: var(--bx-accent-deep);--_c-ink: var(--bx-on-accent);display:flex;align-items:center;justify-content:center;min-width:0;min-height:52px;padding:0;background:var(--_c);color:var(--_c-ink);border:0;border-radius:var(--bx-radius-md);box-shadow:inset 0 2px #ffffff47,0 4px 0 var(--_c-deep);cursor:pointer;transition:transform var(--bx-dur-1) var(--bx-ease),box-shadow var(--bx-dur-1) var(--bx-ease),filter var(--bx-dur-2) var(--bx-ease);touch-action:manipulation;-webkit-tap-highlight-color:transparent}.function-command-btn svg{width:26px;height:26px;stroke:currentColor;stroke-width:2.6}.function-command-btn:hover:not(:disabled){filter:brightness(1.06)}.function-command-btn:active:not(:disabled){transform:translateY(4px);box-shadow:inset 0 2px #ffffff47,0 0 0 var(--_c-deep)}.function-command-btn:focus-visible{outline:none;box-shadow:inset 0 2px #ffffff47,0 4px 0 var(--_c-deep),var(--bx-ring)}.function-command-btn:disabled{opacity:.45;filter:saturate(.5);cursor:not-allowed}.function-command-sequence{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:52px;gap:var(--bx-space-2);align-content:start;margin-bottom:var(--bx-space-4);padding:var(--bx-space-3) 10px;background:var(--bx-surface-2);border-radius:var(--bx-radius-md);box-shadow:inset 0 3px 0 var(--bx-line),inset 0 0 0 2px var(--bx-line);overflow:visible}.function-command-item{--_c: var(--bx-accent-strong);--_c-deep: var(--bx-accent-deep);--_c-ink: var(--bx-on-accent);position:relative;display:flex;align-items:center;justify-content:center;min-width:0;border-radius:var(--bx-radius-sm);transition:transform var(--bx-dur-2) var(--bx-ease-spring),box-shadow var(--bx-dur-2) var(--bx-ease)}.function-command-item.empty{background:transparent;border:2px dashed var(--bx-line-strong)}.function-command-item.empty .function-slot-number{position:static;font-size:var(--bx-text-xs);color:var(--bx-ink-3);opacity:.8}.function-command-item.filled{background:var(--_c);color:var(--_c-ink);box-shadow:inset 0 2px #ffffff40,0 3px 0 var(--_c-deep)}.function-command-item.drop-target{background:var(--bx-accent-soft);border:2px dashed var(--bx-accent);box-shadow:0 0 0 4px color-mix(in oklab,var(--bx-accent) 22%,transparent);animation:bx-fp-drop-pulse 1s ease-in-out infinite}@keyframes bx-fp-drop-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}.function-command-item.dragging{opacity:.3;pointer-events:none}.function-command-item.placeholder{background:var(--bx-accent-soft);border:2px dashed var(--bx-accent);pointer-events:none}.function-slot-number{position:absolute;top:3px;left:6px;font-family:var(--bx-font-display);font-size:.625rem;font-weight:600;line-height:1;color:inherit;opacity:.75}.function-slot-icon{display:flex;align-items:center;justify-content:center;animation:bx-fp-slot-in var(--bx-dur-3) var(--bx-ease-spring)}.function-slot-icon svg{width:22px;height:22px;stroke:currentColor;stroke-width:2.6}@keyframes bx-fp-slot-in{0%{transform:scale(.6);opacity:0}70%{transform:scale(1.08);opacity:1}to{transform:scale(1)}}.function-command-item.empty .function-slot-placeholder{display:none}.function-slot-placeholder{width:100%;height:100%}.remove-function-cmd-btn{position:absolute;top:-8px;right:-8px;z-index:4;display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;background:var(--bx-danger);color:#fff;border:2px solid var(--bx-surface);border-radius:var(--bx-radius-pill);box-shadow:0 2px 0 var(--bx-danger-deep);cursor:pointer;transition:transform var(--bx-dur-2) var(--bx-ease-spring)}.remove-function-cmd-btn:hover{transform:scale(1.12)}.save-function-btn{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:var(--bx-touch);padding:0 var(--bx-space-5);background:var(--bx-success);color:#fff;border:0;border-radius:var(--bx-radius-md);font-family:var(--bx-font-display);font-size:var(--bx-text-lg);font-weight:600;text-shadow:0 1px 0 var(--bx-success-deep);box-shadow:0 var(--bx-depth) 0 var(--bx-success-deep);cursor:pointer;transition:transform var(--bx-dur-1) var(--bx-ease),box-shadow var(--bx-dur-1) var(--bx-ease),filter var(--bx-dur-2) var(--bx-ease);touch-action:manipulation}.save-function-btn:hover:not(:disabled){filter:brightness(1.06)}.save-function-btn:active:not(:disabled){transform:translateY(var(--bx-depth));box-shadow:0 0 0 var(--bx-success-deep)}.save-function-btn:focus-visible{outline:none;box-shadow:0 var(--bx-depth) 0 var(--bx-success-deep),var(--bx-ring)}.save-function-btn:disabled{opacity:.45;filter:saturate(.4);cursor:not-allowed}@media screen and (max-width: 1194px){.function-panel-wrapper{padding:0 10px 10px}.function-panel{gap:6px}.function-commands-preview{grid-auto-rows:26px;gap:3px}.function-cmd-preview svg{width:14px;height:14px}}@media screen and (max-width: 1023px){.create-function-form{width:300px;padding:56px var(--bx-space-4) var(--bx-space-4)}.create-function-form:before{left:var(--bx-space-4)}}@media screen and (max-width: 767px){.create-function-form{top:50%;left:50%;width:calc(100vw - 2rem);max-width:340px;transform:translate(-50%,-50%);animation:bx-fade var(--bx-dur-2) var(--bx-ease)}.create-function-form.closing{animation:bx-fp-fade-out var(--bx-dur-2) var(--bx-ease) forwards}@keyframes bx-fp-fade-out{0%{opacity:1}to{opacity:0}}.function-command-sequence{grid-auto-rows:46px}}@media screen and (max-height: 500px){.create-function-form{top:calc(env(safe-area-inset-top,0px) + 56px);max-height:calc(100dvh - 64px);padding-top:52px}.function-command-btn{min-height:44px}.function-command-sequence{grid-auto-rows:40px}}@media (hover: none) and (pointer: coarse){.remove-function-cmd-btn{width:26px;height:26px;top:-9px;right:-9px}.delete-function-btn{width:34px;height:34px}.function-command-btn:hover:not(:disabled){filter:none}}@media (prefers-reduced-motion: reduce){.saved-function,.function-slot-icon,.function-command-item.drop-target,.create-function-form,.create-function-form.closing{animation:none}}.function-cmd-preview.has-error{position:relative;z-index:2;box-shadow:0 2px 0 var(--_c-deep),0 0 0 2px var(--bx-surface),0 0 0 4px var(--bx-danger)}.level-selector-button{position:relative;display:inline-flex;align-items:center;justify-content:center;flex-wrap:nowrap;flex-shrink:0;gap:var(--bx-space-1);height:40px;padding:0 var(--bx-space-4);font-family:var(--bx-font-display);font-size:var(--bx-text-md);font-weight:600;white-space:nowrap;color:var(--bx-ink);background:var(--bx-surface);border:0;border-radius:var(--bx-radius-md);box-shadow:inset 0 0 0 2px var(--bx-line),0 4px 0 var(--bx-line-strong);cursor:pointer;touch-action:manipulation;transition:transform var(--bx-dur-1) var(--bx-ease),box-shadow var(--bx-dur-1) var(--bx-ease)}.level-selector-button:hover{box-shadow:inset 0 0 0 2px var(--bx-accent-tint),0 4px 0 var(--bx-line-strong)}.level-selector-button:active{transform:translateY(4px);box-shadow:inset 0 0 0 2px var(--bx-line),0 0 0 var(--bx-line-strong)}.level-selector-button:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--bx-line),var(--bx-ring)}.level-selector-button svg{flex-shrink:0}.level-selector-button .level-label{font-size:var(--bx-text-lg);font-weight:700;color:var(--bx-accent-deep);flex-shrink:0}[data-theme=dark] .level-selector-button .level-label{color:color-mix(in oklab,var(--bx-accent) 60%,#fff)}.level-selector-button .level-count{font-weight:500;color:var(--bx-ink-3);flex-shrink:0}.level-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:var(--bx-space-4);padding-top:max(var(--bx-space-4),env(safe-area-inset-top));padding-bottom:max(var(--bx-space-4),env(safe-area-inset-bottom));background:var(--bx-scrim);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:bx-fade var(--bx-dur-2) var(--bx-ease)}.level-modal{display:flex;flex-direction:column;width:100%;max-width:920px;max-height:90vh;overflow:hidden;color:var(--bx-ink);background:var(--bx-bg);background-image:var(--bx-bg-pattern);background-size:18px 18px;border-radius:var(--bx-radius-xl);box-shadow:var(--bx-shadow-3),0 0 0 2px var(--bx-line);animation:bx-pop var(--bx-dur-3) var(--bx-ease-spring)}.level-modal-header{position:relative;display:flex;align-items:center;justify-content:space-between;gap:var(--bx-space-3);flex-shrink:0;padding:var(--bx-space-4) var(--bx-space-5);overflow:hidden;background:radial-gradient(circle at 12% -40%,rgba(255,255,255,.28) 0,transparent 55%),linear-gradient(135deg,var(--bx-accent-strong) 0%,var(--bx-accent-deep) 100%);box-shadow:inset 0 -4px color-mix(in oklab,var(--bx-accent-deep) 80%,#000)}.level-modal-header:before{content:"";position:absolute;right:96px;top:-16px;width:52px;height:52px;border-radius:var(--bx-radius-sm);background:#ffffff1f;transform:rotate(18deg);pointer-events:none}.level-modal-header h2{position:relative;z-index:1;margin:0;font-family:var(--bx-font-display);font-size:var(--bx-text-2xl);font-weight:700;color:#fff;text-shadow:0 2px 0 color-mix(in oklab,var(--bx-accent-deep) 85%,#000)}.level-modal-close{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;width:var(--bx-touch);height:var(--bx-touch);flex-shrink:0;color:#fff;background:#fff3;border:2px solid rgba(255,255,255,.35);border-radius:var(--bx-radius-pill);box-shadow:0 4px #00000029;cursor:pointer;touch-action:manipulation;transition:transform var(--bx-dur-1) var(--bx-ease),box-shadow var(--bx-dur-1) var(--bx-ease)}.level-modal-close:hover{background:#ffffff4d}.level-modal-close:active{transform:translateY(4px);box-shadow:0 0 #00000029}.level-modal-close:focus-visible{outline:none;box-shadow:0 0 0 4px #fff9}.level-loading-container{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--bx-space-4);min-height:240px;padding:var(--bx-space-7) var(--bx-space-6)}.level-loading-spinner{width:52px;height:52px;border:6px solid var(--bx-surface-3);border-top-color:var(--bx-accent);border-radius:var(--bx-radius-pill);animation:bx-level-spin .9s linear infinite}@keyframes bx-level-spin{to{transform:rotate(360deg)}}.level-loading-container p{margin:0;font-family:var(--bx-font-display);font-size:var(--bx-text-lg);font-weight:500;color:var(--bx-ink-2)}.level-grid{flex:1 1 auto;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));align-content:start;gap:var(--bx-space-3);padding:var(--bx-space-4) var(--bx-space-5) var(--bx-space-5);max-height:calc(90vh - 80px);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.level-grid::-webkit-scrollbar{width:10px}.level-grid::-webkit-scrollbar-track{background:transparent}.level-grid::-webkit-scrollbar-thumb{background:var(--bx-line-strong);border-radius:var(--bx-radius-pill);border:3px solid var(--bx-bg)}.level-card{--_edge: var(--bx-line-strong);position:relative;aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:var(--bx-space-2) var(--bx-space-1) var(--bx-space-1);font:inherit;color:var(--bx-ink);background:var(--bx-surface);border:2px solid var(--bx-line);border-radius:var(--bx-radius-lg);box-shadow:0 var(--bx-depth) 0 var(--_edge);cursor:pointer;touch-action:manipulation;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform var(--bx-dur-1) var(--bx-ease),box-shadow var(--bx-dur-1) var(--bx-ease);animation:bx-pop var(--bx-dur-3) var(--bx-ease-spring) backwards}.level-card:nth-child(1){animation-delay:20ms}.level-card:nth-child(2){animation-delay:40ms}.level-card:nth-child(3){animation-delay:60ms}.level-card:nth-child(4){animation-delay:80ms}.level-card:nth-child(5){animation-delay:.1s}.level-card:nth-child(6){animation-delay:.12s}.level-card:nth-child(7){animation-delay:.14s}.level-card:nth-child(8){animation-delay:.16s}.level-card:nth-child(n+9){animation-delay:.18s}@media (prefers-reduced-motion: reduce){.level-card{animation:none}}.level-card.unlocked:hover{transform:translateY(-2px)}.level-card.unlocked:active{transform:translateY(var(--bx-depth));box-shadow:0 0 0 var(--_edge)}.level-card:focus-visible{outline:none;box-shadow:0 var(--bx-depth) 0 var(--_edge),var(--bx-ring)}.level-card-header{display:flex;align-items:center;justify-content:center;gap:var(--bx-space-1);width:100%}.level-number{font-family:var(--bx-font-display);font-size:var(--bx-text-2xl);font-weight:700;line-height:1;color:var(--bx-accent-deep);font-variant-numeric:tabular-nums}[data-theme=dark] .level-number{color:color-mix(in oklab,var(--bx-accent) 60%,#fff)}.level-card.completed{--_edge: color-mix(in oklab, var(--bx-success) 45%, var(--bx-line-strong));background:linear-gradient(180deg,color-mix(in oklab,var(--bx-success) 14%,var(--bx-surface)) 0%,var(--bx-surface) 70%);border-color:color-mix(in oklab,var(--bx-success) 40%,var(--bx-line))}.level-card.completed .level-number{color:var(--bx-success-deep)}[data-theme=dark] .level-card.completed .level-number{color:color-mix(in oklab,var(--bx-success) 60%,#fff)}.completed-badge{position:absolute;top:4px;right:4px;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;color:#fff;background:var(--bx-success-deep);border-radius:var(--bx-radius-pill)}.level-card.current{--_edge: var(--bx-accent-deep);color:#fff;background:radial-gradient(circle at 30% 0%,rgba(255,255,255,.3) 0,transparent 60%),var(--bx-accent-strong);border-color:var(--bx-accent-deep);box-shadow:0 0 0 4px var(--bx-accent-tint),0 var(--bx-depth) 0 4px var(--_edge)}.level-card.current .level-number{color:#fff;text-shadow:0 2px 0 var(--bx-accent-deep)}.current-badge{position:absolute;top:-8px;right:-8px;z-index:1;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;color:var(--bx-accent-deep);background:var(--bx-surface);border-radius:var(--bx-radius-pill);box-shadow:0 0 0 3px var(--bx-accent-deep),0 3px 0 3px var(--bx-accent-deep);animation:bx-bounce-in var(--bx-dur-3) var(--bx-ease-spring)}[data-theme=dark] .current-badge{color:var(--bx-ink)}.level-card.locked{cursor:not-allowed;color:var(--bx-ink-3);background:var(--bx-surface-3);border:2px dashed var(--bx-line-strong);box-shadow:inset 0 3px 0 var(--bx-line)}.level-card.locked .level-card-header{flex-direction:column;gap:var(--bx-space-2)}.level-card.locked .level-number{font-size:var(--bx-text-2xl);color:var(--bx-ink-3)}.lock-icon{width:22px;height:22px;color:var(--bx-ink-3)}.level-progress-info{display:flex;flex-direction:column;align-items:center;gap:2px;width:100%;min-height:0}.level-stars{display:flex;gap:2px;justify-content:center}.level-stars .star:nth-child(2){transform:translateY(-3px)}.level-card .star{display:inline-flex;line-height:1}.level-card .star svg{width:16px;height:16px}.level-card .star.filled{color:var(--bx-star);filter:drop-shadow(0 2px 0 var(--bx-star-deep))}.level-card .star.empty{color:var(--bx-surface-3);filter:drop-shadow(0 1px 0 var(--bx-line-strong))}.level-card.current .star.empty{color:#fff6;filter:none}.level-card.current .star.filled{filter:drop-shadow(0 2px 0 rgba(0,0,0,.2))}.level-badges{display:flex;gap:var(--bx-space-1);justify-content:center;align-items:center;margin-top:auto;min-height:20px}.level-attempts,.level-coins{display:inline-flex;align-items:center;justify-content:center;gap:2px;height:20px;padding:0 6px;font-family:var(--bx-font-display);font-size:var(--bx-text-xs);font-weight:600;line-height:1;white-space:nowrap;color:var(--bx-ink-2);background:var(--bx-surface-2);border-radius:var(--bx-radius-pill)}.level-coins{color:#3a2600;background:color-mix(in oklab,var(--bx-coin) 55%,var(--bx-surface))}.level-card.current .level-attempts{color:var(--bx-ink);background:#ffffffd9}.level-card.current .level-coins{background:var(--bx-coin)}@media screen and (max-width: 1023px){.level-modal{max-width:94vw}.level-grid{grid-template-columns:repeat(7,minmax(0,1fr))}}@media screen and (max-height: 820px){.level-modal-header{padding:var(--bx-space-3) var(--bx-space-5)}.level-modal-header h2{font-size:var(--bx-text-xl)}.level-grid{padding:var(--bx-space-3) var(--bx-space-4) var(--bx-space-4);gap:var(--bx-space-2)}.level-number{font-size:var(--bx-text-xl)}}@media screen and (max-width: 767px){.level-selector-button{height:36px;padding:0 var(--bx-space-3);font-size:var(--bx-text-sm)}.level-modal{max-width:100%;border-radius:var(--bx-radius-lg)}.level-modal-header{padding:var(--bx-space-3) var(--bx-space-4)}.level-modal-header h2{font-size:var(--bx-text-xl)}.level-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--bx-space-2);padding:var(--bx-space-3)}.level-number{font-size:var(--bx-text-xl)}.level-card .star svg{width:14px;height:14px}}@media screen and (max-width: 479px){.level-selector-button{height:34px;padding:0 var(--bx-space-2)}.level-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--bx-space-2)}.level-card{border-radius:var(--bx-radius-md);padding:var(--bx-space-2) var(--bx-space-1)}.level-number{font-size:var(--bx-text-lg)}.level-card .star svg{width:13px;height:13px}.level-attempts,.level-coins{font-size:.625rem;padding:0 4px}.current-badge{width:24px;height:24px;top:-6px;right:-6px}}@media (hover: none) and (pointer: coarse){.level-selector-button{min-height:44px}}.ios-install-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:max(var(--bx-space-4),env(safe-area-inset-top)) max(var(--bx-space-4),env(safe-area-inset-right)) max(var(--bx-space-4),env(safe-area-inset-bottom)) max(var(--bx-space-4),env(safe-area-inset-left));background:var(--bx-scrim);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:bx-fade var(--bx-dur-2) var(--bx-ease);font-family:var(--bx-font-body)}.ios-install-modal{position:relative;width:100%;max-width:560px;max-height:100%;display:flex;flex-direction:column;overflow:hidden;background:var(--bx-surface);color:var(--bx-ink);border-radius:var(--bx-radius-xl);box-shadow:var(--bx-shadow-3),0 0 0 2px var(--bx-line);animation:bx-pop var(--bx-dur-3) var(--bx-ease-spring)}.ios-install-modal .ios-install-close-btn{position:absolute;top:var(--bx-space-4);right:var(--bx-space-4);z-index:10;border-radius:50%;color:var(--bx-ink-2)}.ios-install-modal-body{flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:var(--bx-space-6) var(--bx-space-5) var(--bx-space-5)}.ios-install-header{display:flex;flex-direction:column;align-items:center;gap:var(--bx-space-3);margin-bottom:var(--bx-space-5);text-align:center}.ios-install-app-icon{width:84px;height:84px;padding:var(--bx-space-2);border-radius:var(--bx-radius-lg);background:var(--bx-surface);box-shadow:0 var(--bx-depth) 0 var(--bx-line-strong),inset 0 0 0 2px var(--bx-line);animation:bx-bounce-in var(--bx-dur-3) var(--bx-ease-spring) .1s both}.ios-install-app-icon img{display:block;width:100%;height:100%;object-fit:contain;border-radius:var(--bx-radius-sm)}.ios-install-header h2{margin:0;padding:0 var(--bx-space-7);font-family:var(--bx-font-display);font-size:var(--bx-text-2xl);font-weight:600;line-height:1.15;color:var(--bx-ink)}.ios-install-subtitle{margin:0;font-size:var(--bx-text-md);color:var(--bx-ink-2)}.ios-install-steps{display:flex;flex-direction:column;align-items:stretch}.ios-install-step{display:flex;align-items:center;gap:var(--bx-space-4);padding:var(--bx-space-3) var(--bx-space-4);background:var(--bx-surface-2);border-radius:var(--bx-radius-md);box-shadow:inset 0 2px 0 var(--bx-line)}.ios-install-step-number{flex:0 0 auto;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--bx-surface);color:var(--bx-ink);box-shadow:inset 0 0 0 3px var(--bx-accent),0 3px 0 var(--bx-line-strong);font-family:var(--bx-font-display);font-size:var(--bx-text-lg);font-weight:600}.ios-install-step-content{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:var(--bx-space-3)}.ios-install-step-icon{flex:0 0 auto;display:grid;place-items:center;width:52px;height:52px;border-radius:var(--bx-radius-sm);background:var(--bx-accent-soft);color:var(--bx-accent)}.ios-install-step-icon.success{background:color-mix(in oklab,var(--bx-success) 16%,var(--bx-surface));color:var(--bx-success)}.ios-install-step-icon svg{width:32px;height:32px}.ios-install-step-text{flex:1 1 auto;min-width:0}.ios-install-step-content h3{margin:0 0 2px;font-family:var(--bx-font-display);font-size:var(--bx-text-lg);font-weight:600;line-height:1.25;color:var(--bx-ink)}.ios-install-step-content p{margin:0;font-size:var(--bx-text-sm);line-height:1.4;color:var(--bx-ink-2)}.ios-install-step-arrow{align-self:flex-start;margin-left:calc(var(--bx-space-4) + 20px);transform:translate(-50%);padding:var(--bx-space-1) 0;font-family:var(--bx-font-display);font-size:var(--bx-text-lg);font-weight:600;line-height:1;color:var(--bx-ink-3)}.ios-install-info{display:flex;align-items:center;gap:var(--bx-space-3);margin-top:var(--bx-space-5);padding:var(--bx-space-3) var(--bx-space-4);border-radius:var(--bx-radius-md);background:var(--bx-accent-soft);box-shadow:inset 0 0 0 2px color-mix(in oklab,var(--bx-accent) 22%,transparent)}.bloxxy-avatar-small{flex:0 0 auto;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--bx-surface);box-shadow:0 3px 0 var(--bx-line-strong);animation:bx-wiggle .7s var(--bx-ease) .8s 1}.bloxxy-avatar-small img{width:38px;height:auto;object-fit:contain}.ios-install-info-text{flex:1 1 auto;font-size:var(--bx-text-sm);line-height:1.45;color:var(--bx-ink-2)}.ios-install-info-text strong{font-family:var(--bx-font-display);font-weight:600;color:var(--bx-ink)}.ios-install-actions{display:flex;justify-content:center;margin-top:var(--bx-space-5);padding-bottom:var(--bx-depth)}.ios-install-actions .ios-install-got-it-btn{width:100%;max-width:320px;text-shadow:0 1px 0 rgba(0,0,0,.18)}@media screen and (max-height: 700px){.ios-install-modal-body{padding-top:var(--bx-space-5)}.ios-install-app-icon{width:64px;height:64px}.ios-install-header{margin-bottom:var(--bx-space-4)}}@media screen and (max-width: 767px){.ios-install-modal{border-radius:var(--bx-radius-lg)}.ios-install-modal-body{padding:var(--bx-space-5) var(--bx-space-4) var(--bx-space-4)}.ios-install-header h2{font-size:var(--bx-text-xl)}.ios-install-app-icon{width:68px;height:68px}.ios-install-step{gap:var(--bx-space-3);padding:var(--bx-space-3)}.ios-install-step-number{width:34px;height:34px;font-size:var(--bx-text-md)}.ios-install-step-arrow{margin-left:calc(var(--bx-space-3) + 17px)}.ios-install-step-icon{width:44px;height:44px}.ios-install-step-icon svg{width:28px;height:28px}.ios-install-step-content h3{font-size:var(--bx-text-md)}.ios-install-step-content p{font-size:.8125rem}.ios-install-info{padding:var(--bx-space-3)}}@media screen and (max-width: 400px){.ios-install-header h2{font-size:var(--bx-text-lg);padding:0 var(--bx-space-6)}.ios-install-step-icon{display:none}.ios-install-info-text{font-size:.8125rem}}@media (prefers-reduced-motion: reduce){.ios-install-modal-overlay,.ios-install-modal,.ios-install-app-icon,.bloxxy-avatar-small{animation:none!important}}.pwa-install-container{position:absolute;top:max(env(safe-area-inset-top,0px) + var(--bx-space-5),var(--bx-space-5));right:max(env(safe-area-inset-right,0px) + var(--bx-space-5),var(--bx-space-5));z-index:10}.pwa-install-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--bx-space-2);min-height:var(--bx-touch);padding:0 var(--bx-space-4);background:var(--bx-turn);color:#3a2600;border:0;border-radius:var(--bx-radius-md);box-shadow:inset 0 2px #ffffff59,0 var(--bx-depth) 0 var(--bx-turn-deep);cursor:pointer;position:relative;transition:transform var(--bx-dur-1) var(--bx-ease),box-shadow var(--bx-dur-1) var(--bx-ease),filter var(--bx-dur-2) var(--bx-ease);-webkit-tap-highlight-color:transparent;touch-action:manipulation;animation:bx-pwa-nudge 3.2s var(--bx-ease) infinite}.pwa-install-button:hover{filter:brightness(1.06);animation:none}.pwa-install-button:active{transform:translateY(var(--bx-depth));box-shadow:inset 0 2px #ffffff59,0 0 0 var(--bx-turn-deep);animation:none}.pwa-install-button:focus-visible{outline:none;box-shadow:inset 0 2px #ffffff59,0 var(--bx-depth) 0 var(--bx-turn-deep),var(--bx-ring)}.pwa-install-icon{width:24px;height:24px;flex-shrink:0;color:currentColor}.pwa-install-text{display:flex;flex-direction:column;align-items:flex-start;font-family:var(--bx-font-display);font-size:var(--bx-text-xs);font-weight:700;line-height:1.1;letter-spacing:.06em;text-transform:uppercase;color:currentColor}@keyframes bx-pwa-nudge{0%,86%,to{transform:translateY(0) rotate(0)}90%{transform:translateY(-2px) rotate(-3deg)}95%{transform:translateY(-2px) rotate(3deg)}}@media (max-width: 768px){.pwa-install-container{top:max(env(safe-area-inset-top,0px) + var(--bx-space-4),var(--bx-space-4));right:max(env(safe-area-inset-right,0px) + var(--bx-space-4),var(--bx-space-4))}.pwa-install-button{min-height:44px;padding:0 var(--bx-space-3)}.pwa-install-icon{width:20px;height:20px}}@media (prefers-reduced-motion: reduce){.pwa-install-button{animation:none}}.login-container{--bx-accent: var(--theme-primary, #4EC4C4);--bx-accent-2: var(--theme-secondary, #3FC1C9);--bx-accent-strong: color-mix(in oklab, var(--bx-accent) 74%, #0b1030);--bx-accent-deep: color-mix(in oklab, var(--bx-accent) 52%, #0b1030);--bx-accent-soft: color-mix(in oklab, var(--bx-accent) 14%, var(--bx-surface));--bx-accent-tint: color-mix(in oklab, var(--bx-accent) 28%, var(--bx-surface));--bx-ring: 0 0 0 4px color-mix(in oklab, var(--bx-accent) 40%, transparent);--_code-w: 104px;--_code-h: 76px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--bx-space-4);min-height:100vh;min-height:100dvh;height:100vh;height:100dvh;box-sizing:border-box;padding:var(--bx-space-5);padding-top:max(var(--bx-space-5),env(safe-area-inset-top));padding-bottom:max(var(--bx-space-4),env(safe-area-inset-bottom));overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;background-color:var(--bx-bg);background-image:var(--bx-bg-pattern);background-size:22px 22px;color:var(--bx-ink);font-family:var(--bx-font-body)}[data-theme=dark] .login-container{--bx-accent-deep: color-mix(in oklab, var(--bx-accent) 60%, #000)}.login-container *,.login-container *:before,.login-container *:after{box-sizing:border-box}.login-decor{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:0}.login-blob{position:absolute;border-radius:46% 54% 58% 42%/52% 44% 56% 48%;filter:blur(2px)}.login-blob--a{width:54vmax;height:54vmax;left:-18vmax;top:-22vmax;background:var(--bx-accent-tint);opacity:.75}.login-blob--b{width:38vmax;height:38vmax;right:-14vmax;bottom:-16vmax;background:color-mix(in oklab,var(--bx-turn) 22%,var(--bx-bg));opacity:.8}.login-blob--c{width:16vmax;height:16vmax;right:12vw;top:-6vmax;background:color-mix(in oklab,var(--bx-jump) 16%,var(--bx-bg));opacity:.7}.login-block{position:absolute;width:34px;height:34px;border-radius:10px;opacity:.55;animation:login-float 7s var(--bx-ease) infinite alternate}.login-block--move{background:var(--bx-move);box-shadow:0 5px 0 var(--bx-move-deep);left:7%;bottom:14%;transform:rotate(-12deg)}.login-block--turn{background:var(--bx-turn);box-shadow:0 5px 0 var(--bx-turn-deep);left:42%;top:6%;transform:rotate(9deg);animation-delay:-2s;width:26px;height:26px}.login-block--jump{background:var(--bx-jump);box-shadow:0 5px 0 var(--bx-jump-deep);right:6%;top:22%;transform:rotate(14deg);animation-delay:-4s}.login-block--func{background:var(--bx-func);box-shadow:0 5px 0 var(--bx-func-deep);right:3%;bottom:42%;transform:rotate(-6deg);animation-delay:-1s;width:24px;height:24px}@keyframes login-float{0%{translate:0 0}to{translate:0 -14px}}@media (prefers-reduced-motion: reduce){.login-block,.login-hero-mascot{animation:none!important}}.login-stage{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center;gap:var(--bx-space-6);width:100%;max-width:1080px;animation:bx-pop var(--bx-dur-3) var(--bx-ease-spring) both}.login-hero{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-width:0}.login-hero-bubble{position:relative;align-self:center;margin-bottom:var(--bx-space-4);padding:var(--bx-space-3) var(--bx-space-5);background:var(--bx-surface);color:var(--bx-ink);font-family:var(--bx-font-display);font-size:var(--bx-text-xl);font-weight:600;border-radius:var(--bx-radius-lg);box-shadow:0 0 0 2px var(--bx-line),var(--bx-shadow-2);white-space:nowrap;animation:bx-bounce-in var(--bx-dur-3) var(--bx-ease-spring) .2s both}.login-hero-bubble:after{content:"";position:absolute;left:50%;bottom:-10px;width:20px;height:20px;background:var(--bx-surface);border-radius:4px;transform:translate(-50%) rotate(45deg);box-shadow:2px 2px 0 0 var(--bx-line)}.login-hero-mascot{position:relative;z-index:1;width:min(100%,340px);max-height:46vh;height:auto;object-fit:contain;filter:drop-shadow(0 12px 0 color-mix(in oklab,var(--bx-ink) 8%,transparent));animation:login-bob 3.2s ease-in-out infinite;-webkit-user-drag:none;-webkit-user-select:none;user-select:none}@keyframes login-bob{0%,to{transform:translateY(0) rotate(-1.5deg)}50%{transform:translateY(-10px) rotate(1.5deg)}}.login-hero-shadow{width:56%;height:18px;margin-top:-6px;border-radius:50%;background:color-mix(in oklab,var(--bx-ink) 12%,transparent)}.login-card{position:relative;min-width:0;background:var(--bx-surface);border-radius:var(--bx-radius-xl);box-shadow:0 0 0 2px var(--bx-line),0 10px 0 var(--bx-surface-3),var(--bx-shadow-3)}[data-theme=dark] .login-card{box-shadow:0 0 0 2px var(--bx-line),0 10px 0 var(--bx-surface-2),var(--bx-shadow-3)}.login-right{display:flex;flex-direction:column;padding:var(--bx-space-6) var(--bx-space-6) var(--bx-space-5)}.login-header{text-align:center;margin-bottom:var(--bx-space-3)}.login-branding{margin:0}.login-header h1{margin:0;font-family:var(--bx-font-display);font-size:var(--bx-text-2xl);font-weight:700;color:var(--bx-ink)}.login-header .brand-title{font-family:"Orbitron",var(--bx-font-display);font-size:clamp(2.5rem,5vw,3.5rem);font-weight:900;line-height:1;letter-spacing:.12em;text-transform:uppercase;color:var(--bx-turn);text-shadow:0 4px 0 var(--bx-turn-deep);margin:0}.login-container .brand-subtitle{margin:var(--bx-space-2) 0 0;font-family:var(--bx-font-display);font-size:var(--bx-text-md);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--bx-ink-3)}.login-logo{display:block;max-width:200px;max-height:80px;width:auto;height:auto;margin:0 auto var(--bx-space-3);object-fit:contain}.tenant-badge-container{min-height:40px;display:flex;align-items:center;justify-content:center;margin:var(--bx-space-2) 0}.login-container .tenant-badge{display:inline-flex;align-items:center;height:36px;margin:0;padding:0 var(--bx-space-4);border-radius:var(--bx-radius-pill);background:var(--bx-accent-soft);color:var(--bx-ink);box-shadow:inset 0 0 0 2px var(--bx-accent-tint);font-family:var(--bx-font-display);font-size:var(--bx-text-md);font-weight:600;animation:bx-pop var(--bx-dur-2) var(--bx-ease-spring)}.login-prompt{margin:0;font-family:var(--bx-font-display);font-size:var(--bx-text-xl);font-weight:500;color:var(--bx-ink-2)}.login-form{display:flex;flex-direction:column;gap:var(--bx-space-3)}.code-input-container{display:flex;align-items:center;justify-content:center;gap:var(--bx-space-2);padding:var(--bx-space-3);background:var(--bx-surface-2);border-radius:var(--bx-radius-lg);box-shadow:inset 0 3px 0 var(--bx-line)}.code-input{flex:1 1 0;width:auto;max-width:var(--_code-w);height:var(--_code-h);min-width:0;padding:0 4px;text-align:center;font-family:var(--bx-font-display);font-size:1.6rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--bx-ink);caret-color:var(--bx-accent);background:var(--bx-surface);border:3px solid var(--bx-line-strong);border-radius:var(--bx-radius-md);box-shadow:0 4px 0 var(--bx-line-strong);outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:border-color var(--bx-dur-1) var(--bx-ease),box-shadow var(--bx-dur-1) var(--bx-ease),transform var(--bx-dur-2) var(--bx-ease-spring)}.code-input::placeholder{color:var(--bx-ink-3);opacity:.45}.code-input:not(:placeholder-shown){border-color:var(--bx-accent);box-shadow:0 4px 0 var(--bx-accent-deep)}.code-input:focus,.code-input:focus-visible{border-color:var(--bx-accent);box-shadow:0 4px 0 var(--bx-accent-deep),var(--bx-ring);transform:translateY(-3px)}.code-input.error{border-color:var(--bx-danger);box-shadow:0 4px 0 var(--bx-danger-deep);animation:login-shake .32s var(--bx-ease)}@keyframes login-shake{0%,to{translate:0 0}25%{translate:-8px 0}75%{translate:8px 0}}.code-input:disabled{opacity:.6;cursor:not-allowed}.code-input.readonly,.code-input[readonly]{cursor:default;border-color:var(--bx-success);box-shadow:0 4px 0 var(--bx-success-deep);background:color-mix(in oklab,var(--bx-success) 10%,var(--bx-surface));transform:none}.code-separator{flex:0 0 auto;width:12px;height:6px;border-radius:3px;background:var(--bx-line-strong);font-size:0;color:transparent;-webkit-user-select:none;user-select:none}.message-container{min-height:44px;display:flex;align-items:center;justify-content:center}.login-container .error-message{display:flex;align-items:center;gap:var(--bx-space-3);width:100%;padding:var(--bx-space-3) var(--bx-space-4);background:color-mix(in oklab,var(--bx-danger) 12%,var(--bx-surface));color:var(--bx-ink);border-radius:var(--bx-radius-md);box-shadow:inset 0 0 0 2px color-mix(in oklab,var(--bx-danger) 35%,transparent);font-size:var(--bx-text-md);font-weight:700;line-height:1.35;text-align:left;animation:bx-pop var(--bx-dur-2) var(--bx-ease-spring)}.error-message-icon{flex:0 0 auto;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--bx-danger);color:#fff}.login-container .login-button{width:100%;min-height:64px;font-size:var(--bx-text-2xl);text-shadow:0 1px 0 rgba(0,0,0,.18)}.login-container .button-loading{display:flex;align-items:center;justify-content:center;gap:var(--bx-space-3);font-size:var(--bx-text-lg)}.login-container .spinner{width:22px;height:22px;border:3px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:login-spin .8s linear infinite}@keyframes login-spin{to{transform:rotate(360deg)}}.login-hint{margin-top:var(--bx-space-4);padding-top:var(--bx-space-4);border-top:2px dashed var(--bx-line)}.login-hint-links{display:grid;grid-template-columns:1fr 1fr;gap:var(--bx-space-3)}.login-hint-links p{display:flex;flex-direction:column;gap:2px;margin:0;font-size:var(--bx-text-sm);color:var(--bx-ink-3);text-align:center}.login-link{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:0 var(--bx-space-2);border-radius:var(--bx-radius-xs);font-family:var(--bx-font-display);font-size:var(--bx-text-md);font-weight:600;color:var(--bx-accent-deep);text-decoration:none;transition:background var(--bx-dur-1) var(--bx-ease)}[data-theme=dark] .login-link{color:color-mix(in oklab,var(--bx-accent) 70%,#fff)}.login-link:hover{background:var(--bx-accent-soft)}.login-link:focus-visible{outline:none;box-shadow:var(--bx-ring)}.login-left{position:relative;z-index:1;width:100%;max-width:1080px}.register-info{display:flex;align-items:center;gap:var(--bx-space-4);padding:var(--bx-space-3) var(--bx-space-4);background:color-mix(in oklab,var(--bx-surface) 72%,transparent);border-radius:var(--bx-radius-lg);box-shadow:inset 0 0 0 2px var(--bx-line);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.register-info-icon{flex:0 0 auto;display:grid;place-items:center;width:48px;height:48px;border-radius:var(--bx-radius-md);background:var(--bx-accent-soft);color:var(--bx-accent-deep)}[data-theme=dark] .register-info-icon{color:color-mix(in oklab,var(--bx-accent) 70%,#fff)}.register-info-text{flex:1 1 auto;min-width:0}.register-info h2{margin:0;font-family:var(--bx-font-display);font-size:var(--bx-text-md);font-weight:600;color:var(--bx-ink)}.register-info p{margin:2px 0 0;font-size:var(--bx-text-sm);line-height:1.45;color:var(--bx-ink-2)}.register-info strong{color:var(--bx-ink);font-weight:700}.login-container .register-button{flex:0 0 auto;min-height:44px;padding:0 var(--bx-space-4);font-size:var(--bx-text-md);text-decoration:none;white-space:nowrap}.login-footer{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:var(--bx-space-3);font-size:var(--bx-text-xs);color:var(--bx-ink-3)}.login-footer p{margin:0}.login-container .app-version{padding:2px var(--bx-space-2);border-radius:var(--bx-radius-pill);background:var(--bx-surface-2);font-family:var(--bx-font-mono);font-size:var(--bx-text-xs);color:var(--bx-ink-3)}.login-container .mobile-optimization-hint{display:none;gap:var(--bx-space-3);align-items:flex-start;padding:var(--bx-space-3) var(--bx-space-4);border-radius:var(--bx-radius-md);background:color-mix(in oklab,var(--bx-warning) 16%,var(--bx-surface));box-shadow:inset 0 0 0 2px color-mix(in oklab,var(--bx-warning) 40%,transparent);color:var(--bx-ink);font-size:var(--bx-text-sm);line-height:1.5}.login-container .mobile-optimization-hint .hint-icon{flex-shrink:0;display:flex;color:var(--bx-turn-deep);margin-top:2px}.login-container .mobile-optimization-hint p{margin:0;font-weight:600;text-align:left}@media screen and (min-width: 768px) and (orientation: landscape) and (max-height: 834px){.login-container{--_code-h: 68px;gap:var(--bx-space-3);padding:var(--bx-space-4) var(--bx-space-5)}.login-stage{gap:var(--bx-space-5)}.login-hero-mascot{max-height:40vh}.login-right{padding:var(--bx-space-5) var(--bx-space-5) var(--bx-space-4)}.login-header .brand-title{font-size:2.75rem}.code-input{font-size:1.45rem}.tenant-badge-container{min-height:36px;margin:var(--bx-space-1) 0}.login-prompt{font-size:var(--bx-text-lg)}.login-container .login-button{min-height:58px;font-size:var(--bx-text-xl)}.login-hint{margin-top:var(--bx-space-3);padding-top:var(--bx-space-3)}}@media (max-width: 900px),(orientation: portrait){.login-stage{grid-template-columns:1fr;max-width:600px;gap:var(--bx-space-3)}.login-hero{flex-direction:row;align-items:flex-end;justify-content:center;gap:var(--bx-space-3)}.login-hero-mascot{order:1;width:128px;max-height:none}.login-hero-bubble{order:2;align-self:center;margin:0 0 var(--bx-space-5);font-size:var(--bx-text-lg)}.login-hero-bubble:after{left:-8px;bottom:auto;top:50%;transform:translateY(-50%) rotate(45deg);box-shadow:-2px 2px 0 0 var(--bx-line)}.login-hero-shadow{display:none}.login-left{max-width:600px}}@media (max-width: 640px){.login-container{--_code-h: 64px;padding:var(--bx-space-4)}.login-right{padding:var(--bx-space-5) var(--bx-space-4) var(--bx-space-4)}.code-input{font-size:1.3rem}.code-input-container{gap:6px;padding:var(--bx-space-2)}.code-separator{width:6px}.login-hint-links{grid-template-columns:1fr}.register-info{flex-wrap:wrap}.login-container .register-button{width:100%}}@media (max-width: 480px){.login-container{--_code-w: 100%;--_code-h: 64px;justify-content:flex-start;padding:var(--bx-space-3)}.login-hero-mascot{width:96px}.login-card{border-radius:var(--bx-radius-lg)}.code-input-container{display:grid;grid-template-columns:1fr 1fr;gap:var(--bx-space-2)}.code-separator{display:none}.code-input{font-size:1.5rem}.login-left{display:none!important}.login-container .app-version{display:none}.login-container .mobile-optimization-hint{display:flex}}@media screen and (max-height: 500px) and (orientation: landscape){.login-container{--_code-h: 52px;justify-content:flex-start;padding:var(--bx-space-2) var(--bx-space-4)}.login-stage{grid-template-columns:minmax(0,.6fr) minmax(0,1.4fr);max-width:900px}.login-hero{flex-direction:column}.login-hero-bubble{display:none}.login-hero-mascot{width:140px;max-height:60vh}.login-right{padding:var(--bx-space-4)}.login-header .brand-title{font-size:2rem}.code-input{font-size:1.15rem}.login-container .login-button{min-height:52px;font-size:var(--bx-text-lg)}.login-left{display:none}}.play-free-container{--bx-accent: var(--theme-primary, #4EC4C4);--bx-accent-2: var(--theme-secondary, #3FC1C9);--bx-accent-strong: color-mix(in oklab, var(--bx-accent) 74%, #0b1030);--bx-accent-deep: color-mix(in oklab, var(--bx-accent) 52%, #0b1030);--bx-accent-soft: color-mix(in oklab, var(--bx-accent) 14%, var(--bx-surface));--bx-accent-tint: color-mix(in oklab, var(--bx-accent) 28%, var(--bx-surface));--bx-ring: 0 0 0 4px color-mix(in oklab, var(--bx-accent) 40%, transparent);position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--bx-space-4);height:100vh;height:100dvh;box-sizing:border-box;padding:var(--bx-space-5);padding-top:max(var(--bx-space-5),env(safe-area-inset-top));padding-bottom:max(var(--bx-space-4),env(safe-area-inset-bottom));overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;background-color:var(--bx-bg);background-image:var(--bx-bg-pattern);background-size:22px 22px;color:var(--bx-ink);font-family:var(--bx-font-body)}[data-theme=dark] .play-free-container{--bx-accent-deep: color-mix(in oklab, var(--bx-accent) 60%, #000)}.play-free-container *,.play-free-container *:before,.play-free-container *:after{box-sizing:border-box}.play-free-decor{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:0}.pf-blob{position:absolute;border-radius:46% 54% 58% 42%/52% 44% 56% 48%}.pf-blob--a{width:50vmax;height:50vmax;right:-16vmax;top:-22vmax;background:color-mix(in oklab,var(--bx-turn) 22%,var(--bx-bg))}.pf-blob--b{width:44vmax;height:44vmax;left:-16vmax;bottom:-20vmax;background:var(--bx-accent-tint);opacity:.8}.pf-blob--c{width:14vmax;height:14vmax;left:30vw;top:-6vmax;background:color-mix(in oklab,var(--bx-func) 16%,var(--bx-bg))}.pf-block{position:absolute;width:32px;height:32px;border-radius:10px;opacity:.55;animation:pf-float 7s var(--bx-ease) infinite alternate}.pf-block--move{background:var(--bx-move);box-shadow:0 5px 0 var(--bx-move-deep);right:8%;bottom:18%;transform:rotate(12deg)}.pf-block--turn{background:var(--bx-turn);box-shadow:0 5px 0 var(--bx-turn-deep);left:6%;top:14%;transform:rotate(-9deg);animation-delay:-3s}.pf-block--jump{background:var(--bx-jump);box-shadow:0 5px 0 var(--bx-jump-deep);left:4%;top:58%;transform:rotate(8deg);animation-delay:-5s;width:24px;height:24px}.pf-block--func{background:var(--bx-func);box-shadow:0 5px 0 var(--bx-func-deep);right:30%;top:5%;transform:rotate(-14deg);animation-delay:-1s;width:26px;height:26px}@keyframes pf-float{0%{translate:0 0}to{translate:0 -14px}}@media (prefers-reduced-motion: reduce){.pf-block,.play-free-hero-mascot{animation:none!important}}.play-free-stage{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:center;gap:var(--bx-space-6);width:100%;max-width:1080px;animation:bx-pop var(--bx-dur-3) var(--bx-ease-spring) both}.play-free-hero{display:flex;flex-direction:column;align-items:center;min-width:0}.play-free-hero-bubble{position:relative;margin-bottom:var(--bx-space-4);padding:var(--bx-space-3) var(--bx-space-5);background:var(--bx-surface);color:var(--bx-ink);font-family:var(--bx-font-display);font-size:var(--bx-text-xl);font-weight:600;border-radius:var(--bx-radius-lg);box-shadow:0 0 0 2px var(--bx-line),var(--bx-shadow-2);white-space:nowrap;animation:bx-bounce-in var(--bx-dur-3) var(--bx-ease-spring) .2s both}.play-free-hero-bubble:after{content:"";position:absolute;left:50%;bottom:-10px;width:20px;height:20px;background:var(--bx-surface);border-radius:4px;transform:translate(-50%) rotate(45deg);box-shadow:2px 2px 0 0 var(--bx-line)}.play-free-hero-mascot{width:min(100%,330px);max-height:44vh;height:auto;object-fit:contain;filter:drop-shadow(0 12px 0 color-mix(in oklab,var(--bx-ink) 8%,transparent));animation:pf-bob 3.2s ease-in-out infinite;-webkit-user-drag:none;-webkit-user-select:none;user-select:none}@keyframes pf-bob{0%,to{transform:translateY(0) rotate(-1.5deg)}50%{transform:translateY(-10px) rotate(1.5deg)}}.play-free-hero-shadow{width:56%;height:18px;margin-top:-6px;border-radius:50%;background:color-mix(in oklab,var(--bx-ink) 12%,transparent)}.play-free-card{position:relative;min-width:0;background:var(--bx-surface);border-radius:var(--bx-radius-xl);box-shadow:0 0 0 2px var(--bx-line),0 10px 0 var(--bx-surface-3),var(--bx-shadow-3)}[data-theme=dark] .play-free-card{box-shadow:0 0 0 2px var(--bx-line),0 10px 0 var(--bx-surface-2),var(--bx-shadow-3)}.play-free-right{display:flex;flex-direction:column;gap:var(--bx-space-4);padding:var(--bx-space-6) var(--bx-space-6) var(--bx-space-5)}.play-free-branding{text-align:center}.play-free-brand-title{margin:0;font-family:"Orbitron",var(--bx-font-display);font-size:clamp(2.25rem,4.4vw,3rem);font-weight:900;line-height:1;letter-spacing:.12em;text-transform:uppercase;color:var(--bx-turn);text-shadow:0 4px 0 var(--bx-turn-deep)}.play-free-brand-subtitle{margin:var(--bx-space-2) 0 0;font-family:var(--bx-font-display);font-size:var(--bx-text-sm);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--bx-ink-3)}.play-free-demo-box{display:flex;flex-direction:column;gap:var(--bx-space-4)}.demo-header{text-align:center}.demo-header h2{margin:0 0 var(--bx-space-2);font-family:var(--bx-font-display);font-size:var(--bx-text-3xl);font-weight:700;line-height:1.1;color:var(--bx-ink)}.demo-description{margin:0 auto;max-width:40ch;font-size:var(--bx-text-lg);line-height:1.45;color:var(--bx-ink-2)}.demo-features-list{display:grid;grid-template-columns:1fr 1fr;gap:var(--bx-space-2) var(--bx-space-4);padding:var(--bx-space-3) var(--bx-space-4);background:var(--bx-surface-2);border-radius:var(--bx-radius-lg);box-shadow:inset 0 3px 0 var(--bx-line)}.demo-feature{display:flex;align-items:center;gap:var(--bx-space-2);min-height:36px;font-family:var(--bx-font-display);font-size:var(--bx-text-md);font-weight:500;color:var(--bx-ink)}.check-icon{flex-shrink:0;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:color-mix(in oklab,var(--bx-success) 16%,var(--bx-surface));color:var(--bx-success-deep)}[data-theme=dark] .check-icon{color:var(--bx-success)}.play-free-container .demo-start-button{width:100%;min-height:68px;gap:var(--bx-space-3);text-shadow:0 1px 0 rgba(0,0,0,.18)}.demo-start-button .button-text{font-size:var(--bx-text-2xl)}.demo-start-button .button-icon{display:flex;transition:transform var(--bx-dur-2) var(--bx-ease-spring)}.demo-start-button:hover:not(:disabled) .button-icon{transform:translate(3px,-3px) rotate(-8deg)}.play-free-container .button-loading{display:flex;align-items:center;gap:var(--bx-space-3)}.play-free-container .spinner{width:24px;height:24px;border:3px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:pf-spin .8s linear infinite}@keyframes pf-spin{to{transform:rotate(360deg)}}.demo-error-message{display:flex;align-items:center;gap:var(--bx-space-3);padding:var(--bx-space-3) var(--bx-space-4);background:color-mix(in oklab,var(--bx-danger) 12%,var(--bx-surface));color:var(--bx-ink);border-radius:var(--bx-radius-md);box-shadow:inset 0 0 0 2px color-mix(in oklab,var(--bx-danger) 35%,transparent);font-weight:700;line-height:1.35;animation:bx-pop var(--bx-dur-2) var(--bx-ease-spring)}.demo-error-icon{flex:0 0 auto;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--bx-danger);color:#fff}.play-free-container .mobile-optimization-hint{display:none;gap:var(--bx-space-3);align-items:flex-start;padding:var(--bx-space-3) var(--bx-space-4);border-radius:var(--bx-radius-md);background:color-mix(in oklab,var(--bx-warning) 16%,var(--bx-surface));box-shadow:inset 0 0 0 2px color-mix(in oklab,var(--bx-warning) 40%,transparent);color:var(--bx-ink);font-size:var(--bx-text-sm);line-height:1.5}.play-free-container .mobile-optimization-hint .hint-icon{flex-shrink:0;display:flex;margin-top:2px;color:var(--bx-turn-deep)}.play-free-container .mobile-optimization-hint p{margin:0;font-weight:600;text-align:left}.play-free-login-hint{padding-top:var(--bx-space-3);border-top:2px dashed var(--bx-line);text-align:center}.play-free-login-hint p{margin:0;font-size:var(--bx-text-sm);color:var(--bx-ink-3)}.play-free-link{display:inline-flex;align-items:center;min-height:40px;padding:0 var(--bx-space-2);border-radius:var(--bx-radius-xs);font-family:var(--bx-font-display);font-size:var(--bx-text-md);font-weight:600;color:var(--bx-accent-deep);text-decoration:none;transition:background var(--bx-dur-1) var(--bx-ease)}[data-theme=dark] .play-free-link{color:color-mix(in oklab,var(--bx-accent) 70%,#fff)}.play-free-link:hover{background:var(--bx-accent-soft)}.play-free-link:focus-visible{outline:none;box-shadow:var(--bx-ring)}.play-free-left{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,3fr) minmax(0,1fr);gap:var(--bx-space-3);width:100%;max-width:1080px}.play-free-features{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--bx-space-3)}.feature-item{--_c: var(--bx-accent-strong);--_c-deep: var(--bx-accent-deep);display:flex;align-items:flex-start;gap:var(--bx-space-3);padding:var(--bx-space-3);background:color-mix(in oklab,var(--bx-surface) 72%,transparent);border-radius:var(--bx-radius-lg);box-shadow:inset 0 0 0 2px var(--bx-line);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.feature-item--move{--_c: var(--bx-move);--_c-deep: var(--bx-move-deep)}.feature-item--turn{--_c: var(--bx-turn);--_c-deep: var(--bx-turn-deep)}.feature-item--jump{--_c: var(--bx-jump);--_c-deep: var(--bx-jump-deep)}.feature-icon{flex-shrink:0;display:grid;place-items:center;width:44px;height:44px;border-radius:var(--bx-radius-sm);background:var(--_c);box-shadow:0 4px 0 var(--_c-deep);color:#fff}.feature-item--turn .feature-icon{color:#3a2600}.feature-content h3{margin:0 0 2px;font-family:var(--bx-font-display);font-size:var(--bx-text-md);font-weight:600;color:var(--bx-ink)}.feature-content p{margin:0;font-size:var(--bx-text-sm);line-height:1.4;color:var(--bx-ink-2)}.play-free-school-info{display:flex;flex-direction:column;justify-content:center;gap:var(--bx-space-2);padding:var(--bx-space-3);background:color-mix(in oklab,var(--bx-surface) 72%,transparent);border-radius:var(--bx-radius-lg);box-shadow:inset 0 0 0 2px var(--bx-line);text-align:center}.play-free-school-info p{margin:0;font-size:var(--bx-text-sm);color:var(--bx-ink-2)}.play-free-school-info strong{font-family:var(--bx-font-display);font-weight:600;color:var(--bx-ink)}.play-free-container .school-register-link{min-height:44px;padding:0 var(--bx-space-3);font-size:var(--bx-text-sm);text-decoration:none;white-space:nowrap}.play-free-footer{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:var(--bx-space-3);font-size:var(--bx-text-xs);color:var(--bx-ink-3)}.play-free-footer p{margin:0}.play-free-container .app-version{padding:2px var(--bx-space-2);border-radius:var(--bx-radius-pill);background:var(--bx-surface-2);font-family:var(--bx-font-mono);color:var(--bx-ink-3)}@media screen and (min-width: 768px) and (orientation: landscape) and (max-height: 834px){.play-free-container{gap:var(--bx-space-3);padding:var(--bx-space-4) var(--bx-space-5)}.play-free-stage{gap:var(--bx-space-5)}.play-free-hero-mascot{max-height:38vh}.play-free-right{gap:var(--bx-space-3);padding:var(--bx-space-5) var(--bx-space-5) var(--bx-space-4)}.play-free-brand-title{font-size:2.25rem}.demo-header h2{font-size:var(--bx-text-2xl)}.demo-description{font-size:var(--bx-text-md)}.play-free-container .demo-start-button{min-height:60px}.demo-start-button .button-text{font-size:var(--bx-text-xl)}.feature-content p{font-size:var(--bx-text-xs)}}@media (max-width: 900px),(orientation: portrait){.play-free-stage{grid-template-columns:1fr;max-width:600px;gap:var(--bx-space-3)}.play-free-hero{flex-direction:row;align-items:flex-end;justify-content:center;gap:var(--bx-space-3)}.play-free-hero-mascot{order:1;width:128px;max-height:none}.play-free-hero-bubble{order:2;align-self:center;margin:0 0 var(--bx-space-5);font-size:var(--bx-text-lg)}.play-free-hero-bubble:after{left:-8px;bottom:auto;top:50%;transform:translateY(-50%) rotate(45deg);box-shadow:-2px 2px 0 0 var(--bx-line)}.play-free-hero-shadow{display:none}.play-free-left{max-width:600px;grid-template-columns:1fr}.play-free-features{grid-template-columns:1fr}}@media (min-width: 641px) and (orientation: portrait){.play-free-features{grid-template-columns:repeat(3,minmax(0,1fr))}.feature-item{flex-direction:column;align-items:flex-start}.play-free-school-info{flex-direction:row;align-items:center;justify-content:space-between;text-align:left}}@media (max-width: 640px){.play-free-container{justify-content:flex-start;padding:var(--bx-space-3)}.play-free-right{padding:var(--bx-space-5) var(--bx-space-4) var(--bx-space-4)}.demo-header h2{font-size:var(--bx-text-2xl)}.demo-features-list{grid-template-columns:1fr}.play-free-left,.play-free-container .app-version{display:none}.play-free-container .mobile-optimization-hint{display:flex}}@media screen and (max-height: 500px) and (orientation: landscape){.play-free-container{justify-content:flex-start;padding:var(--bx-space-2) var(--bx-space-4)}.play-free-stage{grid-template-columns:minmax(0,.6fr) minmax(0,1.4fr);max-width:900px}.play-free-hero{flex-direction:column}.play-free-hero-bubble{display:none}.play-free-hero-mascot{width:140px;max-height:60vh}.play-free-left{display:none}}.ufo-progress{display:flex;flex-direction:column;align-items:center;gap:var(--bx-space-3);font-family:var(--bx-font-body);color:var(--bx-ink)}.ufo-svg{width:100%;max-width:260px;height:auto;overflow:visible}.ufo-progress--compact .ufo-svg{max-width:200px}.ufo-hull ellipse{fill:var(--bx-surface-3);stroke:var(--bx-ink-2);stroke-width:2.5}.ufo-hull .ufo-hull-top{fill:var(--bx-surface-2);stroke-width:1.5}.ufo-light{fill:var(--bx-ink-3)}.ufo-part path,.ufo-part circle,.ufo-part ellipse,.ufo-part .ufo-stroke{transition:fill var(--bx-dur-3) var(--bx-ease),stroke var(--bx-dur-3) var(--bx-ease)}.ufo-part.is-missing path,.ufo-part.is-missing circle,.ufo-part.is-missing ellipse{fill:transparent;stroke:color-mix(in oklab,var(--bx-ink-3) 70%,transparent);stroke-width:2;stroke-dasharray:5 4}.ufo-part.is-missing .ufo-stroke,.ufo-part.is-missing .ufo-detail{stroke:color-mix(in oklab,var(--bx-ink-3) 70%,transparent);stroke-width:3;stroke-dasharray:4 4}.ufo-part.is-collected path,.ufo-part.is-collected circle,.ufo-part.is-collected ellipse{fill:var(--part-color);stroke:color-mix(in oklab,var(--part-color) 60%,#0b1030);stroke-width:2.5}.ufo-part.is-collected .ufo-stroke{stroke:color-mix(in oklab,var(--part-color) 60%,#0b1030);stroke-width:4;stroke-linecap:round}.ufo-part.is-collected .ufo-detail{stroke:color-mix(in oklab,var(--part-color) 55%,#ffffff);stroke-width:2}.ufo-part.is-collected .ufo-flame{fill:color-mix(in oklab,var(--part-color) 45%,#ffffff);stroke:none;opacity:.85}.ufo-part.is-collected path[d^=M84]{fill:color-mix(in oklab,var(--part-color) 35%,#ffffff)}.ufo-part.is-new{transform-box:fill-box;transform-origin:center;animation:ufo-part-pop .9s var(--bx-ease-spring) both;filter:drop-shadow(0 0 6px var(--part-color))}@keyframes ufo-part-pop{0%{transform:scale(.3);opacity:0}60%{transform:scale(1.15);opacity:1}to{transform:scale(1)}}@media (prefers-reduced-motion: reduce){.ufo-part.is-new{animation:none}.ufo-part path,.ufo-part circle,.ufo-part ellipse{transition:none}}.ufo-caption{font-family:var(--bx-font-display);font-size:var(--bx-text-lg);color:var(--bx-ink-2)}.ufo-caption strong{color:var(--bx-ink);font-size:var(--bx-text-xl)}.ufo-part-list{list-style:none;margin:0;padding:0;width:100%;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--bx-space-2)}.ufo-part-chip{display:flex;align-items:center;gap:var(--bx-space-3);padding:var(--bx-space-2) var(--bx-space-3);border-radius:var(--bx-radius-md);background:var(--bx-surface-2);border:2px dashed var(--bx-line-strong);min-height:var(--bx-touch)}.ufo-part-chip.is-collected{background:color-mix(in oklab,var(--part-color) 14%,var(--bx-surface));border:2px solid color-mix(in oklab,var(--part-color) 55%,transparent)}.ufo-chip-dot{flex:0 0 auto;width:30px;height:30px;border-radius:var(--bx-radius-pill);display:grid;place-items:center;font-family:var(--bx-font-display);font-weight:700;color:var(--bx-ink-3);background:var(--bx-surface);border:2px solid var(--bx-line-strong)}.ufo-part-chip.is-collected .ufo-chip-dot{color:var(--bx-on-accent);background:color-mix(in oklab,var(--part-color) 80%,#0b1030);border-color:transparent}.ufo-chip-text{display:flex;flex-direction:column;min-width:0}.ufo-chip-name{font-family:var(--bx-font-display);font-weight:600;font-size:var(--bx-text-md)}.ufo-chip-sub{font-size:var(--bx-text-sm);color:var(--bx-ink-2)}.achievement-overview{display:flex;flex-direction:column;height:100%;min-height:0;padding:var(--bx-space-4) var(--bx-space-5) 0;overflow:hidden}.achievement-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--bx-space-3);margin-bottom:var(--bx-space-4);flex-shrink:0}.achievement-stat{--_c: var(--bx-accent-strong);--_c-deep: var(--bx-accent-deep);--_on: #fff;display:flex;align-items:center;gap:var(--bx-space-3);padding:var(--bx-space-3) var(--bx-space-4);background:linear-gradient(90deg,color-mix(in oklab,var(--_c) 16%,var(--bx-surface)) 0%,var(--bx-surface) 70%);border:2px solid color-mix(in oklab,var(--_c) 30%,var(--bx-line));border-radius:var(--bx-radius-lg);box-shadow:0 4px color-mix(in oklab,var(--_c) 30%,var(--bx-line-strong))}.achievement-stat-points{--_c: var(--bx-star);--_c-deep: var(--bx-star-deep);--_on: #3A2600}.achievement-stat-icon{position:relative;display:flex;align-items:center;justify-content:center;width:48px;height:48px;flex-shrink:0;color:var(--_on);background:var(--_c);border-radius:var(--bx-radius-pill);box-shadow:0 4px 0 var(--_c-deep)}.achievement-stat-icon:before{content:"";position:absolute;top:6px;left:9px;width:14px;height:8px;border-radius:50%;background:#ffffff8c;transform:rotate(-25deg)}.achievement-stat-icon svg{position:relative}.achievement-overview .stat-value{font-family:var(--bx-font-display);font-size:var(--bx-text-2xl);font-weight:700;line-height:1;color:var(--bx-ink);font-variant-numeric:tabular-nums}.achievement-overview .stat-label{margin-top:2px;font-family:var(--bx-font-display);font-size:var(--bx-text-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--bx-ink-2)}.achievement-categories-container{flex:1;min-height:0;overflow-y:auto;padding:0 var(--bx-space-1) var(--bx-space-5) 0;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.achievement-categories-container::-webkit-scrollbar{width:10px}.achievement-categories-container::-webkit-scrollbar-track{background:transparent}.achievement-categories-container::-webkit-scrollbar-thumb{background:var(--bx-line-strong);border-radius:var(--bx-radius-pill);border:3px solid var(--bx-bg)}.achievement-category{margin-bottom:var(--bx-space-5)}.category-header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--bx-space-3);margin-bottom:var(--bx-space-2)}.category-title{margin:0;font-family:var(--bx-font-display);font-size:var(--bx-text-lg);font-weight:600;color:var(--bx-ink)}.category-count{font-family:var(--bx-font-display);font-size:var(--bx-text-md);font-weight:600;color:var(--bx-ink-2);font-variant-numeric:tabular-nums}.category-progress{height:12px;margin-bottom:var(--bx-space-3);padding:2px;background:var(--bx-surface-3);border-radius:var(--bx-radius-pill);box-shadow:inset 0 2px 0 var(--bx-line);overflow:hidden}.category-progress-fill{height:100%;background:linear-gradient(180deg,color-mix(in oklab,var(--bx-star) 70%,#fff),var(--bx-star) 60%);border-radius:var(--bx-radius-pill);box-shadow:inset 0 -2px 0 var(--bx-star-deep);transition:width .8s var(--bx-ease)}.achievement-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:var(--bx-space-3)}.achievement-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--bx-space-2);padding:var(--bx-space-4) var(--bx-space-3) var(--bx-space-3);text-align:center;background:var(--bx-surface);border:2px solid var(--bx-line);border-radius:var(--bx-radius-lg);box-shadow:0 4px 0 var(--bx-line-strong);transition:transform var(--bx-dur-2) var(--bx-ease-spring)}.achievement-card.unlocked{background:radial-gradient(circle at 50% 0%,color-mix(in oklab,var(--bx-star) 28%,transparent) 0%,transparent 60%),var(--bx-surface);border-color:color-mix(in oklab,var(--bx-star) 55%,var(--bx-line));box-shadow:0 4px color-mix(in oklab,var(--bx-star-deep) 55%,var(--bx-line-strong))}.achievement-card.unlocked:hover{transform:translateY(-3px)}.achievement-card.locked{background:var(--bx-surface-2);border-style:dashed;box-shadow:none}.achievement-card-icon{position:relative;display:flex;align-items:center;justify-content:center;width:64px;height:64px;flex-shrink:0;border-radius:var(--bx-radius-pill)}.achievement-card.unlocked .achievement-card-icon{color:#3a2600;background:radial-gradient(circle at 35% 30%,color-mix(in oklab,var(--bx-star) 55%,#fff) 0%,var(--bx-star) 55%,var(--bx-star-deep) 100%);box-shadow:0 5px 0 var(--bx-star-deep),0 0 0 4px color-mix(in oklab,var(--bx-star) 30%,transparent)}.achievement-card.unlocked .achievement-card-icon:before{content:"";position:absolute;top:8px;left:13px;width:18px;height:10px;border-radius:50%;background:#fff9;transform:rotate(-25deg)}.achievement-card-icon svg{position:relative}.achievement-card.locked .achievement-card-icon{color:var(--bx-ink-3);background:var(--bx-surface-3);box-shadow:inset 0 3px 0 var(--bx-line-strong)}.achievement-card.locked .achievement-card-icon svg{opacity:.45}.achievement-lock-badge{position:absolute;right:-4px;bottom:-4px;display:flex;align-items:center;justify-content:center;width:26px;height:26px;color:#fff;background:var(--bx-ink-2);border-radius:var(--bx-radius-pill);box-shadow:0 0 0 3px var(--bx-surface-2)}[data-theme=dark] .achievement-lock-badge{color:var(--bx-bg);background:var(--bx-ink-3)}.achievement-card-content{display:flex;flex-direction:column;align-items:center;gap:var(--bx-space-1);min-width:0}.achievement-card-name{font-family:var(--bx-font-display);font-size:var(--bx-text-md);font-weight:600;line-height:1.2;color:var(--bx-ink)}.achievement-card.locked .achievement-card-name{color:var(--bx-ink-2)}.achievement-card-description{font-size:var(--bx-text-sm);line-height:1.35;color:var(--bx-ink-2)}.achievement-card-points{display:inline-flex;align-items:center;height:26px;margin-top:var(--bx-space-1);padding:0 var(--bx-space-3);font-family:var(--bx-font-display);font-size:var(--bx-text-sm);font-weight:600;color:var(--bx-ink-2);background:var(--bx-surface-3);border-radius:var(--bx-radius-pill)}.achievement-card.unlocked .achievement-card-points{color:#3a2600;background:var(--bx-star);box-shadow:0 2px 0 var(--bx-star-deep)}.achievement-card-date{font-size:var(--bx-text-xs);color:var(--bx-ink-3)}@media screen and (max-height: 820px){.achievement-overview{padding-top:var(--bx-space-3)}.achievement-summary{margin-bottom:var(--bx-space-3)}.achievement-stat{padding:var(--bx-space-2) var(--bx-space-4)}.achievement-stat-icon{width:40px;height:40px}}@media screen and (max-width: 767px){.achievement-overview{padding:var(--bx-space-3) var(--bx-space-4) 0}.achievement-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}}@media screen and (max-width: 899px){.achievement-overview{height:auto;overflow:visible}.achievement-categories-container{overflow:visible}}.achievement-card-progress{display:flex;align-items:center;gap:var(--bx-space-2);margin-top:var(--bx-space-1)}.achievement-card-progress-bar{flex:1;height:8px;border-radius:var(--bx-radius-pill);background:var(--bx-surface-3);overflow:hidden}.achievement-card-progress-fill{height:100%;border-radius:inherit;background:var(--bx-accent)}.achievement-card-progress-text{font-size:var(--bx-text-xs);font-weight:700;color:var(--bx-ink-2);white-space:nowrap}.robot-skin-selector{height:100%;min-height:0;padding:var(--bx-space-4) var(--bx-space-5) var(--bx-space-5);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.robot-skin-selector::-webkit-scrollbar{width:10px}.robot-skin-selector::-webkit-scrollbar-track{background:transparent}.robot-skin-selector::-webkit-scrollbar-thumb{background:var(--bx-line-strong);border-radius:var(--bx-radius-pill);border:3px solid var(--bx-bg)}.skin-grid-container{width:100%}.skin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--bx-space-4)}.skin-card{position:relative;display:flex;flex-direction:column;padding:6px;text-align:left;font:inherit;color:var(--bx-ink);background:var(--bx-surface);border:2px solid var(--bx-line);border-radius:var(--bx-radius-lg);box-shadow:0 var(--bx-depth) 0 var(--bx-line-strong);cursor:pointer;touch-action:manipulation;transition:transform var(--bx-dur-2) var(--bx-ease-spring),box-shadow var(--bx-dur-1) var(--bx-ease),border-color var(--bx-dur-2) var(--bx-ease)}.skin-card:not(.locked):hover{transform:translateY(-3px) rotate(-.6deg);border-color:var(--bx-accent-tint)}.skin-card:not(.locked):active{transform:translateY(var(--bx-depth));box-shadow:0 0 0 var(--bx-line-strong)}.skin-card:focus-visible{outline:none;box-shadow:0 var(--bx-depth) 0 var(--bx-line-strong),var(--bx-ring)}.skin-card.selected{border-color:var(--bx-accent);box-shadow:0 0 0 4px var(--bx-accent-tint),0 var(--bx-depth) 0 4px var(--bx-accent-deep)}.skin-card.locked{cursor:not-allowed;background:var(--bx-surface-2);border-style:dashed;box-shadow:none}.skin-preview{position:relative;width:100%;height:128px;display:flex;align-items:center;justify-content:center;border-radius:calc(var(--bx-radius-lg) - 6px);overflow:hidden;box-shadow:inset 0 -4px #0000001f}.skin-preview:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.35) 42%,transparent 54%),radial-gradient(circle at 1px 1px,rgba(255,255,255,.18) 1px,transparent 0) 0 0 / 12px 12px;pointer-events:none}.skin-preview:after{content:"";position:absolute;left:50%;bottom:14px;width:70px;height:12px;border-radius:50%;background:#0000002e;transform:translate(-50%)}.skin-figure{position:relative;z-index:1;color:#fff;filter:drop-shadow(0 3px 0 rgba(0,0,0,.2));transition:transform var(--bx-dur-2) var(--bx-ease-spring)}.skin-card:not(.locked):hover .skin-figure{transform:translateY(-4px)}.skin-card.selected .skin-figure{animation:bx-wiggle .6s var(--bx-ease) 1}.selected-badge{position:absolute;z-index:2;top:8px;right:8px;width:34px;height:34px;display:flex;align-items:center;justify-content:center;color:#fff;background:var(--bx-success);border-radius:var(--bx-radius-pill);box-shadow:0 0 0 3px #fff,0 3px 0 3px var(--bx-success-deep);animation:bx-bounce-in var(--bx-dur-3) var(--bx-ease-spring)}.locked-overlay{position:absolute;z-index:2;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:var(--bx-scrim);backdrop-filter:grayscale(1) blur(2px);-webkit-backdrop-filter:grayscale(1) blur(2px)}.locked-overlay svg{box-sizing:content-box;padding:10px;color:var(--bx-ink);background:var(--bx-surface);border-radius:var(--bx-radius-pill);box-shadow:0 4px 0 var(--bx-line-strong)}.skin-info{padding:var(--bx-space-3) var(--bx-space-2) var(--bx-space-2)}.skin-name{margin-bottom:2px;font-family:var(--bx-font-display);font-size:var(--bx-text-lg);font-weight:600;color:var(--bx-ink)}.skin-description{font-size:var(--bx-text-sm);line-height:1.35;color:var(--bx-ink-2)}.unlock-requirement{display:inline-flex;align-items:center;gap:var(--bx-space-1);min-height:30px;margin-top:var(--bx-space-2);padding:0 var(--bx-space-3);font-family:var(--bx-font-display);font-size:var(--bx-text-sm);font-weight:600;color:var(--bx-ink-2);background:var(--bx-surface-3);border-radius:var(--bx-radius-pill)}.unlock-requirement-coins{color:#3a2600;background:color-mix(in oklab,var(--bx-coin) 70%,var(--bx-surface))}@media screen and (max-height: 820px){.robot-skin-selector{padding-top:var(--bx-space-3)}.skin-preview{height:108px}}@media screen and (max-width: 899px){.robot-skin-selector{height:auto;overflow:visible}}@media screen and (max-width: 767px){.robot-skin-selector{padding:var(--bx-space-3) var(--bx-space-4) var(--bx-space-4)}.skin-grid{grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:var(--bx-space-3)}.skin-preview{height:100px}}.skin-intro{margin:0 0 var(--bx-space-4);padding:var(--bx-space-3) var(--bx-space-4);border-radius:var(--bx-radius-md);background:var(--bx-accent-soft);color:var(--bx-ink-2);font-size:var(--bx-text-md);line-height:1.45}.skin-tabs{display:flex;gap:var(--bx-space-3);margin:0 0 var(--bx-space-4)}.skin-tab{flex:1 1 0;display:inline-flex;align-items:center;justify-content:center;gap:var(--bx-space-2);min-height:52px;padding:0 var(--bx-space-4);font:inherit;font-family:var(--bx-font-display);font-size:var(--bx-text-lg);font-weight:600;color:var(--bx-ink-2);background:var(--bx-surface);border:2px solid var(--bx-line);border-radius:var(--bx-radius-pill);box-shadow:0 var(--bx-depth) 0 var(--bx-line-strong);cursor:pointer;touch-action:manipulation;transition:transform var(--bx-dur-2) var(--bx-ease-spring),background var(--bx-dur-2) var(--bx-ease),border-color var(--bx-dur-2) var(--bx-ease)}.skin-tab:hover{transform:translateY(-2px)}.skin-tab:active{transform:translateY(var(--bx-depth));box-shadow:none}.skin-tab:focus-visible{outline:none;box-shadow:0 var(--bx-depth) 0 var(--bx-line-strong),var(--bx-ring)}.skin-tab.active{color:var(--bx-ink);background:var(--bx-accent-soft);border-color:var(--bx-accent);box-shadow:0 var(--bx-depth) 0 var(--bx-accent-deep)}.skin-tab-icon{display:inline-flex}.skin-tab-count{padding:2px var(--bx-space-2);font-size:var(--bx-text-sm);color:var(--bx-ink-2);background:var(--bx-surface-3);border-radius:var(--bx-radius-pill)}.skin-costume-badge{position:absolute;z-index:2;top:8px;left:8px;width:42px;height:42px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:var(--bx-radius-pill);box-shadow:0 3px #0000002e}.skin-season-badge{position:absolute;z-index:2;bottom:8px;right:8px;padding:2px 10px;font-family:var(--bx-font-display);font-size:var(--bx-text-sm);font-weight:700;color:#3a2600;background:var(--bx-coin);border-radius:var(--bx-radius-pill);box-shadow:0 0 0 2px #fff;transform:rotate(-4deg)}.season-requirement{color:var(--bx-ink-2);background:var(--bx-accent-soft)}.skin-preview-neon{box-shadow:inset 0 -4px #0000001f,0 0 18px 2px var(--skin-glow, #FF4FE0)}.skin-preview-neon .skin-figure{filter:drop-shadow(0 0 6px #fff) drop-shadow(0 0 12px var(--skin-glow, #FF4FE0))}.skin-message{margin:0 0 var(--bx-space-4);padding:var(--bx-space-3) var(--bx-space-4);border-radius:var(--bx-radius-md);background:var(--bx-surface-3);color:var(--bx-ink);font-size:var(--bx-text-md)}@media screen and (max-width: 767px){.skin-tab{min-height:46px;font-size:var(--bx-text-md);padding:0 var(--bx-space-3)}.skin-costume-badge{width:36px;height:36px}}@media (prefers-reduced-motion: reduce){.skin-tab,.skin-tab:hover{transition:none;transform:none}}.settings-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bx-scrim);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:2000;padding:var(--bx-space-4);padding-top:max(var(--bx-space-4),env(safe-area-inset-top));padding-bottom:max(var(--bx-space-4),env(safe-area-inset-bottom));animation:bx-fade var(--bx-dur-2) var(--bx-ease)}.settings-modal{--bx-accent: var(--theme-primary, #4EC4C4);--bx-accent-strong: color-mix(in oklab, var(--bx-accent) 74%, #0b1030);--bx-accent-deep: color-mix(in oklab, var(--bx-accent) 52%, #0b1030);--bx-accent-soft: color-mix(in oklab, var(--bx-accent) 14%, var(--bx-surface));--bx-accent-tint: color-mix(in oklab, var(--bx-accent) 28%, var(--bx-surface));--bx-ring: 0 0 0 4px color-mix(in oklab, var(--bx-accent) 40%, transparent);background:var(--bx-bg);color:var(--bx-ink);font-family:var(--bx-font-body);border-radius:var(--bx-radius-xl);box-shadow:var(--bx-shadow-3),0 0 0 2px var(--bx-line);max-width:920px;width:100%;height:85vh;max-height:85vh;overflow:hidden;display:flex;flex-direction:column;animation:bx-pop var(--bx-dur-3) var(--bx-ease-spring)}[data-theme=dark] .settings-modal{--bx-accent-deep: color-mix(in oklab, var(--bx-accent) 60%, #000)}.settings-header{position:relative;display:flex;align-items:center;justify-content:space-between;gap:var(--bx-space-3);padding:var(--bx-space-4) var(--bx-space-5);background:radial-gradient(circle at 12% -40%,rgba(255,255,255,.28) 0,transparent 55%),linear-gradient(135deg,var(--bx-accent-strong) 0%,var(--bx-accent-deep) 100%);box-shadow:inset 0 -4px color-mix(in oklab,var(--bx-accent-deep) 80%,#000);flex-shrink:0;overflow:hidden}.settings-header:before,.settings-header:after{content:"";position:absolute;border-radius:var(--bx-radius-sm);background:#ffffff1f;pointer-events:none}.settings-header:before{width:54px;height:54px;right:92px;top:-18px;transform:rotate(18deg)}.settings-header:after{width:30px;height:30px;right:160px;bottom:-10px;transform:rotate(-12deg)}.settings-header h2{position:relative;z-index:1;margin:0;font-family:var(--bx-font-display);font-size:var(--bx-text-2xl);font-weight:700;letter-spacing:.01em;color:#fff;text-shadow:0 2px 0 color-mix(in oklab,var(--bx-accent-deep) 85%,#000)}.settings-close{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;width:var(--bx-touch);height:var(--bx-touch);flex-shrink:0;color:#fff;background:#fff3;border:2px solid rgba(255,255,255,.35);border-radius:var(--bx-radius-pill);box-shadow:0 4px #00000029;cursor:pointer;touch-action:manipulation;transition:transform var(--bx-dur-1) var(--bx-ease),box-shadow var(--bx-dur-1) var(--bx-ease),background var(--bx-dur-2) var(--bx-ease)}.settings-close:hover{background:#ffffff4d}.settings-close:active{transform:translateY(4px);box-shadow:0 0 #00000029}.settings-close:focus-visible{outline:none;box-shadow:0 0 0 4px #fff9}.settings-tabs{display:flex;gap:var(--bx-space-1);margin:var(--bx-space-4) var(--bx-space-5) 0;padding:var(--bx-space-1);background:var(--bx-surface-3);border-radius:var(--bx-radius-pill);box-shadow:inset 0 2px 0 var(--bx-line);flex-shrink:0}.tab-button{flex:1 1 0;min-width:0;display:inline-flex;align-items:center;justify-content:center;gap:var(--bx-space-2);min-height:44px;padding:0 var(--bx-space-3);font-family:var(--bx-font-display);font-size:var(--bx-text-md);font-weight:600;color:var(--bx-ink-2);background:transparent;border:0;border-radius:var(--bx-radius-pill);cursor:pointer;white-space:nowrap;touch-action:manipulation;transition:background var(--bx-dur-2) var(--bx-ease),color var(--bx-dur-2) var(--bx-ease),box-shadow var(--bx-dur-2) var(--bx-ease)}.tab-button span{overflow:hidden;text-overflow:ellipsis}.tab-button:hover:not(.active){color:var(--bx-ink);background:color-mix(in oklab,var(--bx-surface) 50%,transparent)}.tab-button.active{color:var(--bx-accent-deep);background:var(--bx-surface);box-shadow:0 3px 0 var(--bx-line-strong),var(--bx-shadow-1)}[data-theme=dark] .tab-button.active{color:var(--bx-ink)}.tab-button.active svg{color:var(--bx-accent)}.tab-button:focus-visible{outline:none;box-shadow:var(--bx-ring)}.settings-content{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow:hidden}.settings-section{display:flex;flex-direction:column}.profile-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);grid-template-rows:auto minmax(0,1fr);grid-template-areas:"stats stats" "highlights prefs";flex:1 1 auto;min-height:0;gap:var(--bx-space-4);padding:var(--bx-space-4) var(--bx-space-5) var(--bx-space-5);overflow:hidden}.profile-highlights{grid-area:highlights;display:flex;flex-direction:column;gap:var(--bx-space-3);min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.stats-section{grid-area:stats;flex-shrink:0;gap:var(--bx-space-3)}.profile-code{display:flex;align-items:center;flex-wrap:wrap;gap:var(--bx-space-2) var(--bx-space-3);padding:var(--bx-space-2) var(--bx-space-3);background:var(--bx-surface);border:2px solid var(--bx-line);border-radius:var(--bx-radius-lg);box-shadow:var(--bx-shadow-1)}.profile-code-label{font-family:var(--bx-font-display);font-weight:600;font-size:var(--bx-text-sm);color:var(--bx-ink-2)}.profile-code-value{flex:1 1 auto;min-width:0;min-height:44px;padding:0 var(--bx-space-2);font-family:var(--bx-font-mono);font-weight:700;font-size:1.25rem;letter-spacing:.08em;color:var(--bx-ink);text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:transparent;border:0;border-radius:var(--bx-radius-xs);cursor:pointer;-webkit-user-select:all;user-select:all}.profile-code-value:focus-visible{outline:none;box-shadow:var(--bx-ring)}.profile-code-copy{display:inline-flex;align-items:center;gap:6px;min-height:44px}.profile-code-copy.is-copied{color:var(--bx-success-deep)}.preferences-section{grid-area:prefs;min-height:0;overflow-y:auto;overflow-x:hidden;align-content:start;background:var(--bx-surface);border:2px solid var(--bx-line);border-radius:var(--bx-radius-lg);box-shadow:var(--bx-shadow-1);-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior:contain}.preferences-section::-webkit-scrollbar,.settings-content::-webkit-scrollbar{width:10px}.preferences-section::-webkit-scrollbar-track,.settings-content::-webkit-scrollbar-track{background:transparent}.preferences-section::-webkit-scrollbar-thumb,.settings-content::-webkit-scrollbar-thumb{background:var(--bx-line-strong);border-radius:var(--bx-radius-pill);border:3px solid var(--bx-surface)}.stats-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--bx-space-3)}.stat-card{--_c: var(--bx-accent-strong);--_c-deep: var(--bx-accent-deep);--_on: #fff;position:relative;display:flex;flex-direction:column;align-items:center;padding:var(--bx-space-3) var(--bx-space-2) var(--bx-space-3);text-align:center;background:linear-gradient(180deg,color-mix(in oklab,var(--_c) 16%,var(--bx-surface)) 0%,var(--bx-surface) 62%);border:2px solid color-mix(in oklab,var(--_c) 30%,var(--bx-line));border-radius:var(--bx-radius-lg);box-shadow:0 4px color-mix(in oklab,var(--_c) 30%,var(--bx-line-strong));overflow:hidden}.stat-card-stars{--_c: var(--bx-star);--_c-deep: var(--bx-star-deep);--_on: #3A2600}.stat-card-completed{--_c: var(--bx-success);--_c-deep: var(--bx-success-deep)}.stat-card-total{--_c: var(--bx-accent-strong);--_c-deep: var(--bx-accent-deep)}.stat-card-attempts{--_c: var(--bx-jump);--_c-deep: var(--bx-jump-deep)}.stat-card-coins{--_c: var(--bx-coin);--_c-deep: var(--bx-star-deep);--_on: #3A2600}.stat-icon{position:relative;display:flex;align-items:center;justify-content:center;width:48px;height:48px;margin-bottom:var(--bx-space-2);color:var(--_on);background:var(--_c);border-radius:var(--bx-radius-pill);box-shadow:0 4px 0 var(--_c-deep),inset 0 -3px #00000014;transition:transform var(--bx-dur-2) var(--bx-ease-spring)}.stat-icon:before{content:"";position:absolute;top:6px;left:9px;width:14px;height:8px;border-radius:50%;background:#ffffff8c;transform:rotate(-25deg);pointer-events:none}.stat-icon svg{width:24px;height:24px;position:relative}.stat-card:hover .stat-icon{transform:translateY(-2px) rotate(-6deg)}.stat-card .stat-value{font-family:var(--bx-font-display);font-size:var(--bx-text-3xl);font-weight:700;line-height:1;color:var(--bx-ink);font-variant-numeric:tabular-nums}.stat-card-stars .stat-value{color:color-mix(in oklab,var(--bx-star-deep) 70%,var(--bx-ink))}.stat-card-completed .stat-value{color:var(--bx-success-deep)}.stat-card-total .stat-value{color:var(--bx-accent-deep)}.stat-card-attempts .stat-value{color:var(--bx-jump-deep)}.stat-card-coins .stat-value{color:color-mix(in oklab,var(--bx-star-deep) 70%,var(--bx-ink))}[data-theme=dark] .stat-card .stat-value{color:color-mix(in oklab,var(--_c) 55%,#fff)}.stat-card .stat-label{margin-top:var(--bx-space-1);font-family:var(--bx-font-display);font-size:var(--bx-text-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--bx-ink-2)}.progress-section{padding:var(--bx-space-3) var(--bx-space-4) var(--bx-space-4);background:var(--bx-surface);border:2px solid var(--bx-line);border-radius:var(--bx-radius-lg);box-shadow:var(--bx-shadow-1)}.progress-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--bx-space-2);font-family:var(--bx-font-display);font-size:var(--bx-text-md);font-weight:600;color:var(--bx-ink)}.progress-percentage{font-size:var(--bx-text-xl);font-weight:700;color:var(--bx-accent-deep);font-variant-numeric:tabular-nums}[data-theme=dark] .progress-percentage{color:color-mix(in oklab,var(--bx-accent) 60%,#fff)}.progress-bar{position:relative;height:22px;padding:3px;background:var(--bx-surface-2);border-radius:var(--bx-radius-pill);box-shadow:inset 0 3px 0 var(--bx-line),inset 0 0 0 2px var(--bx-line);overflow:hidden}.progress-fill{position:relative;height:100%;min-width:16px;background:linear-gradient(180deg,color-mix(in oklab,var(--bx-accent) 80%,#fff) 0%,var(--bx-accent) 55%);border-radius:var(--bx-radius-pill);box-shadow:inset 0 -3px 0 var(--bx-accent-deep);transition:width .8s var(--bx-ease)}.progress-fill.is-empty{min-width:0}.progress-fill:after{content:"";position:absolute;top:3px;left:8px;right:8px;height:4px;border-radius:var(--bx-radius-pill);background:#ffffff8c}.setting-item{display:flex;align-items:center;justify-content:space-between;gap:var(--bx-space-4);flex:0 0 auto;min-height:72px;padding:var(--bx-space-3) var(--bx-space-4);border-bottom:2px solid var(--bx-line)}.setting-item:last-child{border-bottom:0}.setting-info{flex:1;min-width:0}.setting-title{display:flex;align-items:center;gap:var(--bx-space-2);margin-bottom:2px;font-family:var(--bx-font-display);font-size:var(--bx-text-lg);font-weight:600;color:var(--bx-ink)}.setting-description{font-size:var(--bx-text-sm);line-height:1.4;color:var(--bx-ink-2)}.toggle-switch{position:relative;display:inline-block;width:68px;height:40px;flex-shrink:0;cursor:pointer;touch-action:manipulation}.toggle-switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;z-index:1}.toggle-slider{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--bx-surface-3);border-radius:var(--bx-radius-pill);box-shadow:inset 0 3px 0 var(--bx-line-strong),inset 0 0 0 2px var(--bx-line);transition:background var(--bx-dur-2) var(--bx-ease)}.toggle-slider:before{content:"";position:absolute;top:4px;left:4px;width:32px;height:28px;background:#fff;border-radius:var(--bx-radius-pill);box-shadow:0 4px #1e224038;transition:transform var(--bx-dur-2) var(--bx-ease-spring)}.toggle-switch input:checked+.toggle-slider{background:var(--bx-accent);box-shadow:inset 0 3px 0 var(--bx-accent-deep)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(28px);box-shadow:0 4px 0 var(--bx-accent-deep)}.toggle-slider:after{content:"";position:absolute;top:12px;left:44px;width:12px;height:7px;border-left:3px solid var(--bx-accent-deep);border-bottom:3px solid var(--bx-accent-deep);transform:rotate(-45deg) scale(0);transition:transform var(--bx-dur-2) var(--bx-ease-spring)}.toggle-switch input:checked+.toggle-slider:after{transform:rotate(-45deg) scale(1)}.toggle-switch input:focus-visible+.toggle-slider{box-shadow:inset 0 3px 0 var(--bx-line-strong),var(--bx-ring)}.toggle-switch input:active+.toggle-slider:before{width:36px}.theme-setting{flex-wrap:wrap;align-items:flex-start}.theme-setting .setting-info{flex:1 1 12rem}.theme-setting .theme-selector-grid{flex:1 1 100%}.theme-selector-grid{display:flex;flex-wrap:wrap;gap:var(--bx-space-3);align-items:center;flex-shrink:0;padding-bottom:var(--bx-space-1)}.theme-btn{position:relative;width:52px;height:52px;padding:0;flex-shrink:0;border:4px solid var(--bx-surface);border-radius:var(--bx-radius-pill);box-shadow:0 0 0 2px var(--bx-line-strong),0 4px 0 2px var(--bx-line-strong);cursor:pointer;touch-action:manipulation;transition:transform var(--bx-dur-2) var(--bx-ease-spring),box-shadow var(--bx-dur-2) var(--bx-ease)}.theme-btn:hover{transform:translateY(-2px)}.theme-btn:active{transform:translateY(2px)}.theme-btn:focus-visible{outline:none;box-shadow:0 0 0 2px var(--bx-line-strong),var(--bx-ring)}.theme-name{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.theme-btn.active{transform:scale(1.08);box-shadow:0 0 0 3px var(--bx-ink),0 4px 0 3px var(--bx-ink)}.theme-btn.active:after{content:"";position:absolute;right:-8px;bottom:-8px;width:24px;height:24px;border-radius:var(--bx-radius-pill);background-color:var(--bx-success);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");background-size:15px;background-position:center;background-repeat:no-repeat;box-shadow:0 0 0 3px var(--bx-surface),0 2px 0 3px var(--bx-success-deep);animation:bx-bounce-in var(--bx-dur-3) var(--bx-ease-spring)}.tutorial-reset-btn{display:inline-flex;align-items:center;justify-content:center;min-height:var(--bx-touch);padding:0 var(--bx-space-5);font-family:var(--bx-font-display);font-size:var(--bx-text-md);font-weight:600;color:var(--bx-accent-deep);background:var(--bx-surface);border:0;border-radius:var(--bx-radius-md);box-shadow:inset 0 0 0 2px var(--bx-accent-tint),0 var(--bx-depth) 0 var(--bx-accent-tint);white-space:nowrap;cursor:pointer;touch-action:manipulation;transition:transform var(--bx-dur-1) var(--bx-ease),box-shadow var(--bx-dur-1) var(--bx-ease)}[data-theme=dark] .tutorial-reset-btn{color:var(--bx-ink)}.tutorial-reset-btn:hover{background:var(--bx-accent-soft)}.tutorial-reset-btn:active{transform:translateY(var(--bx-depth));box-shadow:inset 0 0 0 2px var(--bx-accent-tint),0 0 0 var(--bx-accent-tint)}.tutorial-reset-btn:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--bx-accent-tint),var(--bx-ring)}@media screen and (min-width: 900px) and (max-width: 1200px){.settings-modal{max-width:min(920px,92vw)}}@media screen and (max-height: 820px){.settings-header{padding:var(--bx-space-3) var(--bx-space-5)}.settings-header h2{font-size:var(--bx-text-xl)}.settings-tabs{margin-top:var(--bx-space-3)}.profile-layout{padding-top:var(--bx-space-3);gap:var(--bx-space-3)}.stats-section{gap:var(--bx-space-2)}.stat-card{padding:var(--bx-space-2)}.stat-icon{width:40px;height:40px;margin-bottom:var(--bx-space-1)}.stat-icon svg{width:20px;height:20px}.stat-card .stat-value{font-size:var(--bx-text-2xl)}.progress-section{padding:var(--bx-space-2) var(--bx-space-4) var(--bx-space-3)}.progress-header{margin-bottom:var(--bx-space-1)}.progress-bar{height:18px}.setting-item{min-height:64px;padding:var(--bx-space-2) var(--bx-space-4)}}@media screen and (max-height: 600px){.settings-modal{height:94vh;max-height:94vh}.settings-content{overflow-y:auto}.profile-layout{display:flex;flex-direction:column;overflow:visible;height:auto}.profile-highlights,.preferences-section{flex:0 0 auto;overflow:visible}}@media screen and (max-width: 899px){.settings-modal{max-width:94vw;height:88vh;max-height:88vh}.settings-content{overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y}.profile-layout{display:flex;flex-direction:column;overflow:visible;height:auto;flex:0 0 auto}.profile-highlights,.preferences-section{flex:0 0 auto;overflow:visible}.stats-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--bx-space-2)}}@media screen and (max-width: 767px){.settings-modal{max-width:100%;height:92vh;max-height:92vh;border-radius:var(--bx-radius-lg)}.settings-header{padding:var(--bx-space-3) var(--bx-space-4)}.settings-header h2{font-size:var(--bx-text-xl)}.settings-tabs{margin:var(--bx-space-3) var(--bx-space-4) 0}.tab-button{font-size:var(--bx-text-sm);padding:0 var(--bx-space-2)}.profile-layout{padding:var(--bx-space-3) var(--bx-space-4) var(--bx-space-4);gap:var(--bx-space-3)}.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.stat-card .stat-value{font-size:var(--bx-text-2xl)}.setting-title{font-size:var(--bx-text-md)}.setting-description{font-size:var(--bx-text-xs)}.theme-btn{width:46px;height:46px}}@media screen and (max-width: 479px){.tab-button{gap:var(--bx-space-1);font-size:var(--bx-text-xs)}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.setting-item{gap:var(--bx-space-3);padding:var(--bx-space-3)}}.ufo-section{flex-shrink:0;flex-direction:row;align-items:center;gap:var(--bx-space-3);padding:var(--bx-space-3);background:var(--bx-surface);border:2px solid var(--bx-line);border-radius:var(--bx-radius-lg);box-shadow:var(--bx-shadow-1)}.ufo-section .ufo-progress{flex:0 0 96px;gap:0}.ufo-section .ufo-svg{max-width:96px}.ufo-section .ufo-caption{display:none}.ufo-section-text{display:flex;flex-direction:column;gap:2px;min-width:0}.ufo-section-title{margin:0;font-family:var(--bx-font-display);font-size:var(--bx-text-lg);color:var(--bx-ink)}.ufo-section-count{margin:0;font-family:var(--bx-font-display);font-size:var(--bx-text-sm);font-weight:600;color:var(--bx-accent-deep)}[data-theme=dark] .ufo-section-count{color:color-mix(in oklab,var(--bx-accent) 60%,#fff)}.ufo-section-intro{margin:0;color:var(--bx-ink-2);font-size:var(--bx-text-sm);line-height:1.35}@media screen and (max-width: 767px){.ufo-section{flex-direction:column;text-align:center}}.tutorial-modal-overlay{display:flex;align-items:center;justify-content:center;z-index:10000;padding:var(--bx-space-4);padding-top:max(var(--bx-space-4),env(safe-area-inset-top));padding-bottom:max(var(--bx-space-4),env(safe-area-inset-bottom))}.tutorial-modal{position:relative;display:flex;flex-direction:column;width:100%;max-width:1080px;height:min(90vh,900px);height:min(90dvh,900px);overflow:hidden;font-family:var(--bx-font-body)}.tutorial-modal .tutorial-close-btn.bx-btn{position:absolute;top:var(--bx-space-4);right:var(--bx-space-4);z-index:3;border-radius:50%;color:var(--bx-ink-2)}.tutorial-modal-body{display:flex;flex-direction:column;flex:1;min-height:0;padding:var(--bx-space-5) var(--bx-space-6) var(--bx-space-3);overflow:hidden}.tutorial-modal .tutorial-page{display:flex;flex-direction:column;gap:var(--bx-space-3);flex:1;min-height:0;animation:tut-page-in var(--bx-dur-3) var(--bx-ease) both}@keyframes tut-page-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}.tutorial-modal .tutorial-header{flex-shrink:0;padding-right:calc(var(--bx-touch) + var(--bx-space-3))}.tutorial-modal .tutorial-header h2{margin:0;font-family:var(--bx-font-display);font-size:var(--bx-text-3xl);font-weight:700;line-height:1.1;color:var(--bx-ink)}.tutorial-modal .tutorial-body{display:flex;flex-direction:column;flex:1;min-height:0}.tutorial-modal .bloxxy-text-box{position:relative;display:flex;align-items:flex-start;gap:var(--bx-space-4);flex:1;min-height:0;padding:var(--bx-space-4);background:var(--bx-surface-2);border-radius:var(--bx-radius-lg);box-shadow:inset 0 3px 0 var(--bx-line);overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.tutorial-modal .bloxxy-text-box::-webkit-scrollbar{width:10px}.tutorial-modal .bloxxy-text-box::-webkit-scrollbar-track{background:transparent}.tutorial-modal .bloxxy-text-box::-webkit-scrollbar-thumb{background:var(--bx-line-strong);border-radius:10px;border:3px solid var(--bx-surface-2)}.tutorial-modal .bloxxy-avatar{position:sticky;top:0;flex-shrink:0;width:88px;height:88px;padding:var(--bx-space-2);background:var(--bx-surface);border-radius:50%;box-shadow:0 0 0 3px var(--bx-accent-tint),0 4px 0 var(--bx-line-strong);animation:tut-bob 2.6s ease-in-out infinite}@keyframes tut-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.tutorial-modal .bloxxy-speech-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--bx-space-4)}.tutorial-modal .bloxxy-speech{position:relative;flex:1;min-width:0;margin:0;padding:var(--bx-space-4) var(--bx-space-5);background:var(--bx-surface);color:var(--bx-ink);border-radius:var(--bx-radius-lg);border-top-left-radius:var(--bx-radius-xs);box-shadow:0 0 0 2px var(--bx-line),var(--bx-shadow-1);font-size:var(--bx-text-lg);line-height:1.65;white-space:pre-line}.tutorial-modal .bloxxy-speech:before{content:"";position:absolute;left:-12px;top:18px;border-width:8px 12px 8px 0;border-style:solid;border-color:transparent var(--bx-surface) transparent transparent;filter:drop-shadow(-2px 0 0 var(--bx-line))}.tutorial-modal .bloxxy-speech-content>.bloxxy-speech{flex:0 0 auto}.tutorial-modal .typing-cursor{color:var(--bx-accent);animation:tut-blink 1s step-end infinite}@keyframes tut-blink{0%,to{opacity:1}50%{opacity:0}}.tutorial-modal .skip-typing-btn{position:absolute;right:var(--bx-space-4);bottom:var(--bx-space-4);z-index:2;display:inline-flex;align-items:center;gap:var(--bx-space-1);min-height:40px;padding:0 var(--bx-space-4);border:0;border-radius:var(--bx-radius-pill);background:var(--bx-ink);color:var(--bx-surface);font-family:var(--bx-font-display);font-size:var(--bx-text-sm);font-weight:600;box-shadow:0 4px color-mix(in oklab,var(--bx-ink) 60%,#000);cursor:pointer;animation:bx-pop var(--bx-dur-3) var(--bx-ease-spring);transition:transform var(--bx-dur-1) var(--bx-ease),box-shadow var(--bx-dur-1) var(--bx-ease)}.tutorial-modal .skip-typing-btn:active{transform:translateY(4px);box-shadow:0 0 0 transparent}.tutorial-modal .skip-typing-btn:focus-visible{outline:none;box-shadow:0 4px color-mix(in oklab,var(--bx-ink) 60%,#000),var(--bx-ring)}.tutorial-modal .command-explanations{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--bx-space-3);animation:tut-rise var(--bx-dur-3) var(--bx-ease) both}@keyframes tut-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.tutorial-modal .command-item{--_c: var(--bx-accent-strong);--_c-deep: var(--bx-accent-deep);--_c-fg: #fff;display:flex;align-items:center;gap:var(--bx-space-3);padding:var(--bx-space-3);background:var(--bx-surface);border:2px solid var(--bx-line);border-radius:var(--bx-radius-lg);box-shadow:0 4px 0 var(--bx-line)}.tutorial-modal .command-item--move{--_c: var(--bx-move);--_c-deep: var(--bx-move-deep)}.tutorial-modal .command-item--turn{--_c: var(--bx-turn);--_c-deep: var(--bx-turn-deep);--_c-fg: #3A2600}.tutorial-modal .command-item--jump{--_c: var(--bx-jump);--_c-deep: var(--bx-jump-deep)}.tutorial-modal .command-item--func{--_c: var(--bx-func);--_c-deep: var(--bx-func-deep)}.tutorial-modal .command-item--move,.tutorial-modal .command-item--turn,.tutorial-modal .command-item--jump,.tutorial-modal .command-item--func{border-color:color-mix(in oklab,var(--_c) 35%,var(--bx-line));box-shadow:0 4px color-mix(in oklab,var(--_c) 35%,var(--bx-line))}.tutorial-modal .command-icon-display{flex-shrink:0;display:grid;place-items:center;width:64px;height:64px;border-radius:var(--bx-radius-md);background:var(--_c);color:var(--_c-fg);box-shadow:0 var(--bx-depth) 0 var(--_c-deep);margin-bottom:var(--bx-depth)}.tutorial-modal .command-icon-display svg{color:var(--_c-fg)}.tutorial-modal .command-icon-func{font-family:var(--bx-font-display);font-size:var(--bx-text-2xl);font-weight:700}.tutorial-modal .command-item--object .command-icon-display{background:var(--bx-surface-2);box-shadow:inset 0 0 0 2px var(--bx-line);margin-bottom:0;padding:2px}.tutorial-modal .command-icon-display img{border-radius:var(--bx-radius-xs)}.tutorial-modal .command-description{flex:1;min-width:0;color:var(--bx-ink)}.tutorial-modal .command-description strong{display:block;margin-bottom:2px;font-family:var(--bx-font-display);font-size:var(--bx-text-lg);font-weight:600;color:var(--bx-ink)}.tutorial-modal .command-description p{margin:0;font-size:var(--bx-text-md);line-height:1.45;color:var(--bx-ink-2)}.tutorial-modal .tip-box-inner{padding:var(--bx-space-3) var(--bx-space-4);background:color-mix(in oklab,var(--bx-star) 16%,var(--bx-surface));color:var(--bx-ink);border-radius:var(--bx-radius-md);box-shadow:inset 4px 0 0 var(--bx-star),inset 0 0 0 2px color-mix(in oklab,var(--bx-star) 35%,transparent);font-size:var(--bx-text-md);line-height:1.5;animation:tut-rise var(--bx-dur-3) var(--bx-ease) both}.tutorial-modal .tip-box-inner strong{font-family:var(--bx-font-display);font-weight:600;color:var(--bx-ink)}.tutorial-modal .function-example-box{padding:var(--bx-space-4) var(--bx-space-5);background:var(--bx-surface);border:2px solid color-mix(in oklab,var(--bx-func) 35%,var(--bx-line));border-radius:var(--bx-radius-lg);animation:tut-rise var(--bx-dur-3) var(--bx-ease) both}.tutorial-modal .function-example-box h3{margin:0 0 var(--bx-space-2);font-family:var(--bx-font-display);font-size:var(--bx-text-lg);font-weight:600;color:var(--bx-ink)}.tutorial-modal .function-example-box p{margin:var(--bx-space-2) 0;color:var(--bx-ink-2);line-height:1.5}.tutorial-modal .function-example-note{font-size:var(--bx-text-sm);color:var(--bx-ink-3)}.tutorial-modal .example-commands{display:flex;justify-content:flex-start;align-items:center;gap:var(--bx-space-2);margin:var(--bx-space-2) 0 var(--bx-space-3);padding:var(--bx-space-2) var(--bx-space-3);background:var(--bx-surface-2);border-radius:var(--bx-radius-md);box-shadow:inset 0 2px 0 var(--bx-line);width:fit-content}.tutorial-modal .example-command-mini{--_c: var(--bx-accent-strong);--_c-deep: var(--bx-accent-deep);display:grid;place-items:center;width:48px;height:48px;margin-bottom:4px;border-radius:var(--bx-radius-sm);background:var(--_c);color:#fff;box-shadow:0 4px 0 var(--_c-deep);font-family:var(--bx-font-display);font-size:var(--bx-text-xl);font-weight:700}.tutorial-modal .example-command-mini--move{--_c: var(--bx-move);--_c-deep: var(--bx-move-deep)}.tutorial-modal .example-command-mini--func{--_c: var(--bx-func);--_c-deep: var(--bx-func-deep)}.tutorial-modal .gameplay-steps-inner{padding:var(--bx-space-4) var(--bx-space-5);background:var(--bx-surface);border:2px solid var(--bx-line);border-radius:var(--bx-radius-lg);color:var(--bx-ink);animation:tut-rise var(--bx-dur-3) var(--bx-ease) both}.tutorial-modal .gameplay-steps-inner h3{margin:0 0 var(--bx-space-3);font-family:var(--bx-font-display);font-size:var(--bx-text-xl);font-weight:600;color:var(--bx-ink)}.tutorial-modal .gameplay-steps-inner ol{margin:0;padding:0;list-style:none;counter-reset:tut-step;display:flex;flex-direction:column;gap:var(--bx-space-3)}.tutorial-modal .gameplay-steps-inner li{position:relative;min-height:36px;padding-left:48px;display:flex;align-items:center;flex-wrap:wrap;gap:0 6px;font-size:var(--bx-text-lg);line-height:1.5;counter-increment:tut-step}.tutorial-modal .gameplay-steps-inner li:before{content:counter(tut-step);position:absolute;left:0;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--bx-accent-soft);box-shadow:inset 0 0 0 2px var(--bx-accent-tint);font-family:var(--bx-font-display);font-weight:700;color:var(--bx-ink)}.tutorial-modal .start-button-text{display:inline-flex;align-items:center;padding:2px var(--bx-space-3);border-radius:var(--bx-radius-sm);background:var(--bx-success);box-shadow:0 3px 0 var(--bx-success-deep);color:#fff;font-family:var(--bx-font-display);font-weight:600;text-shadow:0 1px 0 rgba(0,0,0,.2)}.tutorial-modal .target-text{font-family:var(--bx-font-display);font-weight:600;color:var(--bx-success-deep)}[data-theme=dark] .tutorial-modal .target-text{color:var(--bx-success)}.tutorial-modal .coin-explanation-box{display:flex;align-items:center;gap:var(--bx-space-5);padding:var(--bx-space-4) var(--bx-space-5);background:color-mix(in oklab,var(--bx-coin) 14%,var(--bx-surface));border:2px solid color-mix(in oklab,var(--bx-coin) 45%,transparent);border-radius:var(--bx-radius-lg);animation:tut-rise var(--bx-dur-3) var(--bx-ease) both}.tutorial-modal .coin-visual{flex-shrink:0;perspective:400px}.tutorial-modal .coin-demo{position:relative;width:80px;height:80px;border-radius:50%;background:radial-gradient(circle at 32% 30%,#FFF4B8,var(--bx-coin) 52%,var(--bx-star-deep));box-shadow:0 6px 0 var(--bx-star-deep),inset 0 3px 6px #fff9;animation:tut-coin 3s ease-in-out infinite}.tutorial-modal .coin-demo:before{content:"★";position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:2rem;color:#a86f00}@keyframes tut-coin{0%,to{transform:rotateY(0)}50%{transform:rotateY(180deg)}}.tutorial-modal .coin-benefits{flex:1;min-width:0}.tutorial-modal .coin-benefits h3{margin:0 0 var(--bx-space-2);font-family:var(--bx-font-display);font-size:var(--bx-text-lg);font-weight:600;color:var(--bx-ink)}.tutorial-modal .coin-benefits ul{margin:0;padding:0;list-style:none}.tutorial-modal .coin-benefits li{position:relative;padding:4px 0 4px 30px;color:var(--bx-ink);line-height:1.45}.tutorial-modal .coin-benefits li:before{content:"✓";position:absolute;left:0;top:5px;display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--bx-success);color:#fff;font-size:12px;font-weight:800}.tutorial-modal .encouragement-inner{padding:var(--bx-space-4) var(--bx-space-5);background:var(--bx-accent-soft);border-radius:var(--bx-radius-lg);box-shadow:inset 0 0 0 2px var(--bx-accent-tint);text-align:center;animation:tut-rise var(--bx-dur-3) var(--bx-ease) both}.tutorial-modal .encouragement-inner p{margin:0}.tutorial-modal .encouragement-inner strong{font-family:var(--bx-font-display);font-size:var(--bx-text-lg);font-weight:600;color:var(--bx-ink)}.tutorial-modal-footer{flex-shrink:0;display:grid;grid-template-columns:auto 1fr auto auto;grid-template-areas:"speak dots prev next";align-items:center;gap:var(--bx-space-3);padding:var(--bx-space-3) var(--bx-space-6) var(--bx-space-5);border-top:2px solid var(--bx-line)}.tutorial-modal-footer .tutorial-buttons{display:contents}.tutorial-modal .page-indicator{grid-area:dots;display:flex;align-items:center;justify-content:center;gap:6px;min-width:0}.tutorial-modal .page-indicator span:not(.page-indicator-label){width:12px;height:12px;border-radius:var(--bx-radius-pill);background:color-mix(in oklab,var(--bx-ink) 18%,var(--bx-surface));font-size:0;color:transparent;transition:width var(--bx-dur-2) var(--bx-ease-spring),background var(--bx-dur-2) var(--bx-ease)}.tutorial-modal .page-indicator span.done{background:color-mix(in oklab,var(--bx-accent) 55%,var(--bx-surface))}.tutorial-modal .page-indicator span.active{width:32px;background:var(--bx-accent-strong);box-shadow:0 2px 0 var(--bx-accent-deep)}.tutorial-modal .page-indicator-label{margin-left:var(--bx-space-2);font-family:var(--bx-font-display);font-size:var(--bx-text-sm);font-weight:600;color:var(--bx-ink-3);font-variant-numeric:tabular-nums}.tutorial-modal .tutorial-btn.bx-btn{min-width:0;white-space:nowrap}.tutorial-modal .tutorial-speak-btn{grid-area:speak}.tutorial-modal .tutorial-btn-secondary{grid-area:prev}.tutorial-modal .tutorial-btn-primary{grid-area:next;min-width:160px;text-shadow:0 1px 0 rgba(0,0,0,.18)}.tutorial-modal .tutorial-speak-btn.speaking{--_bg: var(--bx-accent-soft);--_edge: var(--bx-accent);box-shadow:inset 0 0 0 2px var(--bx-accent),0 var(--bx-depth) 0 var(--_edge)}.tutorial-modal .tutorial-speak-btn.speaking svg{animation:tut-pulse 1.2s ease-in-out infinite}@keyframes tut-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.18)}}.tutorial-modal .tutorial-btn-secondary:disabled{visibility:hidden}@media (prefers-reduced-motion: reduce){.tutorial-modal .bloxxy-avatar,.tutorial-modal .coin-demo,.tutorial-modal .tutorial-speak-btn.speaking svg,.tutorial-modal .typing-cursor{animation:none}}@media screen and (orientation: landscape) and (max-height: 834px){.tutorial-modal{height:calc(100dvh - 2 * var(--bx-space-4))}.tutorial-modal-body{padding:var(--bx-space-4) var(--bx-space-5) var(--bx-space-2)}.tutorial-modal .tutorial-header h2{font-size:var(--bx-text-2xl)}.tutorial-modal .bloxxy-avatar{width:72px;height:72px}.tutorial-modal .bloxxy-speech{font-size:var(--bx-text-md);line-height:1.6}.tutorial-modal-footer{padding:var(--bx-space-3) var(--bx-space-5) var(--bx-space-4)}}@media screen and (max-width: 900px){.tutorial-modal-footer{grid-template-columns:auto 1fr 1fr;grid-template-areas:"dots dots dots" "speak prev next"}.tutorial-modal .tutorial-btn-primary{min-width:0}}@media screen and (max-width: 767px){.tutorial-modal-overlay{padding:var(--bx-space-2)}.tutorial-modal{height:calc(100dvh - 2 * var(--bx-space-2));border-radius:var(--bx-radius-lg)}.tutorial-modal-body{padding:var(--bx-space-4) var(--bx-space-4) var(--bx-space-2)}.tutorial-modal .tutorial-header h2{font-size:var(--bx-text-xl);line-height:var(--bx-touch)}.tutorial-modal .bloxxy-text-box{flex-direction:column;padding:var(--bx-space-3)}.tutorial-modal .bloxxy-avatar{position:static;width:64px;height:64px}.tutorial-modal .bloxxy-speech{width:100%;font-size:var(--bx-text-md);padding:var(--bx-space-3) var(--bx-space-4);border-top-left-radius:var(--bx-radius-lg)}.tutorial-modal .bloxxy-speech:before{left:24px;top:-12px;border-width:0 8px 12px 8px;border-color:transparent transparent var(--bx-surface) transparent;filter:drop-shadow(0 -2px 0 var(--bx-line))}.tutorial-modal .bloxxy-speech-content{width:100%}.tutorial-modal .command-explanations{grid-template-columns:1fr}.tutorial-modal .command-icon-display{width:52px;height:52px}.tutorial-modal .coin-explanation-box{flex-direction:column;align-items:flex-start}.tutorial-modal-footer{padding:var(--bx-space-3) var(--bx-space-4) var(--bx-space-4);gap:var(--bx-space-2)}.tutorial-modal .tutorial-btn.bx-btn{padding:0 var(--bx-space-3);font-size:var(--bx-text-md)}}@media screen and (max-width: 479px){.tutorial-modal .tutorial-speak-btn span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.tutorial-modal .tutorial-speak-btn.bx-btn{width:var(--bx-touch);padding:0}.tutorial-modal .page-indicator span:not(.page-indicator-label){width:8px;height:8px}.tutorial-modal .page-indicator span.active{width:22px}}@media (hover: none) and (pointer: coarse){.tutorial-modal .tutorial-btn,.tutorial-modal .skip-typing-btn{touch-action:manipulation}}.welcome-dialog-overlay{display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--bx-space-4);padding-top:max(var(--bx-space-4),env(safe-area-inset-top));padding-bottom:max(var(--bx-space-4),env(safe-area-inset-bottom));overflow:hidden}.welcome-dialog{position:relative;display:flex;flex-direction:column;width:100%;max-width:680px;max-height:calc(100dvh - 2 * var(--bx-space-4));overflow:hidden;font-family:var(--bx-font-body)}.welcome-close-btn.bx-btn{position:absolute;top:var(--bx-space-4);right:var(--bx-space-4);z-index:2;border-radius:50%;color:var(--bx-ink-2)}.welcome-header{flex-shrink:0;display:flex;align-items:center;gap:var(--bx-space-4);padding:var(--bx-space-6) calc(var(--bx-touch) + var(--bx-space-6)) var(--bx-space-4) var(--bx-space-6);background:radial-gradient(circle at 12% 120%,var(--bx-accent-tint) 0 38%,transparent 39%),var(--bx-accent-soft);border-bottom:2px solid var(--bx-line)}.welcome-mascot{flex-shrink:0;width:92px;height:92px;object-fit:contain;animation:bx-bounce-in var(--bx-dur-3) var(--bx-ease-spring) .12s both}.welcome-bubble{position:relative;flex:1;min-width:0;padding:var(--bx-space-3) var(--bx-space-4);background:var(--bx-surface);border-radius:var(--bx-radius-lg);box-shadow:0 0 0 2px var(--bx-line),var(--bx-shadow-1)}.welcome-bubble:before{content:"";position:absolute;left:-8px;top:50%;width:18px;height:18px;background:var(--bx-surface);border-radius:3px;transform:translateY(-50%) rotate(45deg);box-shadow:-2px 2px 0 0 var(--bx-line)}.welcome-bubble h2{position:relative;margin:0 0 2px;font-family:var(--bx-font-display);font-size:var(--bx-text-2xl);font-weight:700;line-height:1.15;color:var(--bx-ink)}.welcome-subtitle{position:relative;margin:0;font-size:var(--bx-text-md);line-height:1.4;color:var(--bx-ink-2)}.welcome-dialog-body{flex:1 1 auto;min-height:0;padding:var(--bx-space-5) var(--bx-space-6) var(--bx-space-2);overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.welcome-features{display:flex;flex-direction:column;gap:var(--bx-space-4);padding:10px 0 var(--bx-space-1) 10px}.welcome-feature-item{position:relative;display:flex;align-items:flex-start;gap:var(--bx-space-4);padding:var(--bx-space-4);background:var(--bx-surface);border:2px solid var(--bx-line);border-radius:var(--bx-radius-lg);box-shadow:0 4px 0 var(--bx-line);animation:bx-pop var(--bx-dur-3) var(--bx-ease-spring) both}.welcome-feature-item:nth-child(2){animation-delay:80ms}.welcome-feature-item:nth-child(3){animation-delay:.16s}.welcome-feature-step{position:absolute;top:-10px;left:-10px;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--bx-accent-strong);box-shadow:0 3px 0 var(--bx-accent-deep);color:var(--bx-on-accent);font-family:var(--bx-font-display);font-size:var(--bx-text-sm);font-weight:700}.welcome-feature-icon{flex-shrink:0;display:grid;place-items:center;width:56px;height:56px;border-radius:var(--bx-radius-md);background:var(--bx-accent-soft);color:var(--bx-accent-deep)}[data-theme=dark] .welcome-feature-icon{color:color-mix(in oklab,var(--bx-accent) 70%,#fff)}.welcome-feature-content{flex:1;min-width:0}.welcome-feature-content h3{margin:2px 0 var(--bx-space-1);font-family:var(--bx-font-display);font-size:var(--bx-text-lg);font-weight:600;color:var(--bx-ink)}.welcome-feature-content p{margin:0;font-size:var(--bx-text-md);line-height:1.5;color:var(--bx-ink-2)}.welcome-actions{flex-shrink:0;display:flex;align-items:center;justify-content:flex-end;gap:var(--bx-space-3);flex-wrap:wrap;padding:var(--bx-space-4) var(--bx-space-6) var(--bx-space-5)}.welcome-btn.bx-btn{min-width:200px}.welcome-btn-primary.bx-btn{text-shadow:0 1px 0 rgba(0,0,0,.18)}@media screen and (orientation: landscape) and (max-height: 834px){.welcome-header{padding-top:var(--bx-space-5);padding-bottom:var(--bx-space-3)}.welcome-mascot{width:76px;height:76px}.welcome-dialog-body{padding-top:var(--bx-space-4)}.welcome-feature-item{padding:var(--bx-space-3) var(--bx-space-4)}}@media (max-width: 768px){.welcome-header{padding:var(--bx-space-5) calc(var(--bx-touch) + var(--bx-space-4)) var(--bx-space-3) var(--bx-space-4);gap:var(--bx-space-3)}.welcome-mascot{width:64px;height:64px}.welcome-bubble h2{font-size:var(--bx-text-xl)}.welcome-dialog-body{padding:var(--bx-space-4)}.welcome-feature-icon{width:48px;height:48px}.welcome-actions{flex-direction:column-reverse;align-items:stretch;padding:var(--bx-space-3) var(--bx-space-4) var(--bx-space-4)}.welcome-btn.bx-btn{width:100%;min-width:0}}@media (max-width: 420px){.welcome-mascot{display:none}.welcome-bubble:before{display:none}}.confirm-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:11000;display:flex;align-items:center;justify-content:center;padding:max(var(--bx-space-4),env(safe-area-inset-top)) max(var(--bx-space-4),env(safe-area-inset-right)) max(var(--bx-space-4),env(safe-area-inset-bottom)) max(var(--bx-space-4),env(safe-area-inset-left));background:var(--bx-scrim);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:bx-fade var(--bx-dur-2) var(--bx-ease);font-family:var(--bx-font-body)}.confirm-modal{width:100%;max-width:440px;max-height:100%;overflow-y:auto;overscroll-behavior:contain;padding:var(--bx-space-6) var(--bx-space-5) var(--bx-space-5);background:var(--bx-surface);color:var(--bx-ink);border-radius:var(--bx-radius-xl);box-shadow:var(--bx-shadow-3),0 0 0 2px var(--bx-line);animation:bx-pop var(--bx-dur-3) var(--bx-ease-spring);text-align:center}.confirm-modal-header{--_tone: var(--bx-accent);--_tone-bg: var(--bx-accent-soft);display:flex;flex-direction:column;align-items:center;gap:var(--bx-space-3)}.confirm-modal-header.danger{--_tone: var(--bx-danger);--_tone-bg: color-mix(in oklab, var(--bx-danger) 14%, var(--bx-surface))}.confirm-icon{display:grid;place-items:center;width:64px;height:64px;border-radius:var(--bx-radius-lg);background:var(--_tone-bg);color:var(--_tone);box-shadow:inset 0 0 0 2px color-mix(in oklab,var(--_tone) 25%,transparent)}.confirm-modal-header.danger .confirm-icon{animation:bx-wiggle .5s var(--bx-ease) var(--bx-dur-3) 1}.confirm-modal-header h3{margin:0;font-family:var(--bx-font-display);font-size:var(--bx-text-xl);font-weight:600;line-height:1.2;color:var(--bx-ink)}.confirm-modal-content{margin-top:var(--bx-space-2)}.confirm-modal-content p{margin:0;font-size:var(--bx-text-md);line-height:1.55;color:var(--bx-ink-2);white-space:pre-line}.confirm-modal-actions{display:flex;gap:var(--bx-space-3);margin-top:var(--bx-space-5);padding-bottom:var(--bx-depth)}.confirm-modal-actions .bx-btn{flex:1 1 0;min-width:0;padding:0 var(--bx-space-4);font-size:var(--bx-text-md)}@media (max-width: 600px){.confirm-modal{padding:var(--bx-space-5) var(--bx-space-4) var(--bx-space-4);border-radius:var(--bx-radius-lg)}.confirm-modal-actions{flex-direction:column-reverse}.confirm-modal-actions .bx-btn{flex:0 0 auto;width:100%}}@media (hover: none) and (pointer: coarse){.confirm-modal-actions .bx-btn:hover:not(:disabled){filter:none}}@media (prefers-reduced-motion: reduce){.confirm-modal,.confirm-modal-overlay,.confirm-icon{animation:none!important}}.success-modal-overlay{--_gold-ink: #7A4E00;--_confetti-a: var(--bx-star);--_confetti-b: var(--bx-move);--_confetti-c: var(--bx-jump);--_confetti-d: var(--bx-func);--_confetti-e: var(--bx-danger);position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:max(var(--bx-space-4),env(safe-area-inset-top)) max(var(--bx-space-4),env(safe-area-inset-right)) max(var(--bx-space-4),env(safe-area-inset-bottom)) max(var(--bx-space-4),env(safe-area-inset-left));background:var(--bx-scrim);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:bx-fade var(--bx-dur-2) var(--bx-ease);font-family:var(--bx-font-body)}[data-theme=dark] .success-modal-overlay{--_gold-ink: var(--bx-star)}.success-modal{position:relative;width:100%;max-width:560px;max-height:100%;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;background:var(--bx-surface);color:var(--bx-ink);border-radius:var(--bx-radius-xl);box-shadow:var(--bx-shadow-3),0 0 0 2px var(--bx-line);animation:bx-pop var(--bx-dur-3) var(--bx-ease-spring)}.success-content{display:flex;flex-direction:column;align-items:stretch;flex:1}.success-header{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;align-items:center;gap:var(--bx-space-3);padding:var(--bx-space-5) var(--bx-space-5) var(--bx-space-5);background:radial-gradient(120% 90% at 50% 0%,var(--bx-accent-tint) 0%,var(--bx-accent-soft) 55%,var(--bx-surface) 100%);border-bottom:2px solid var(--bx-line)}.success-header:before,.success-header:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background-repeat:no-repeat}.success-header:before{background-image:radial-gradient(circle,var(--_confetti-a) 0 4px,transparent 5px),radial-gradient(circle,var(--_confetti-b) 0 3px,transparent 4px),radial-gradient(circle,var(--_confetti-c) 0 4px,transparent 5px),radial-gradient(circle,var(--_confetti-d) 0 3px,transparent 4px),radial-gradient(circle,var(--_confetti-e) 0 3px,transparent 4px),radial-gradient(circle,var(--_confetti-a) 0 3px,transparent 4px),radial-gradient(circle,var(--_confetti-c) 0 3px,transparent 4px),radial-gradient(circle,var(--_confetti-b) 0 4px,transparent 5px);background-size:12px 12px;background-position:10% 22%,18% 64%,27% 12%,82% 18%,90% 58%,74% 8%,8% 86%,94% 84%;opacity:.75;animation:bxr-confetti-float 4.8s ease-in-out infinite alternate}.success-header:after{background-image:linear-gradient(35deg,transparent 45%,var(--_confetti-d) 45% 55%,transparent 55%),linear-gradient(-30deg,transparent 45%,var(--_confetti-a) 45% 55%,transparent 55%),linear-gradient(60deg,transparent 45%,var(--_confetti-e) 45% 55%,transparent 55%),linear-gradient(-55deg,transparent 45%,var(--_confetti-b) 45% 55%,transparent 55%);background-size:16px 16px;background-position:16% 40%,86% 36%,22% 92%,78% 78%;opacity:.6;animation:bxr-confetti-float 5.6s ease-in-out -2s infinite alternate-reverse}@keyframes bxr-confetti-float{0%{transform:translateY(-4px) rotate(-1deg)}to{transform:translateY(6px) rotate(1deg)}}.success-hero{position:relative;display:grid;place-items:center;width:124px;height:116px}.success-hero:before{content:"";position:absolute;top:-28px;right:-28px;bottom:-28px;left:-28px;z-index:-1;border-radius:50%;background:repeating-conic-gradient(from 0deg,color-mix(in oklab,var(--bx-star) 34%,transparent) 0deg 10deg,transparent 10deg 30deg);-webkit-mask:radial-gradient(circle,#000 30%,transparent 70%);mask:radial-gradient(circle,#000 30%,transparent 70%);animation:bxr-rays 18s linear infinite}@keyframes bxr-rays{to{transform:rotate(360deg)}}.success-bloxxy{width:104px;height:auto;max-height:112px;object-fit:contain;filter:drop-shadow(0 6px 0 color-mix(in oklab,var(--bx-ink) 14%,transparent));animation:bx-bounce-in calc(var(--bx-dur-3) * 1.4) var(--bx-ease-spring) both,bxr-bob 2.6s ease-in-out calc(var(--bx-dur-3) * 1.4) infinite}@keyframes bxr-bob{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-6px) rotate(-2deg)}}.success-icon{position:absolute;right:-2px;bottom:4px;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--bx-star);color:#3a2600;box-shadow:0 4px 0 var(--bx-star-deep),0 0 0 3px var(--bx-surface);animation:bx-bounce-in var(--bx-dur-3) var(--bx-ease-spring) .9s both}.success-title{margin:0;font-family:var(--bx-font-display);font-size:var(--bx-text-3xl);font-weight:600;line-height:1.1;letter-spacing:-.01em;text-align:center;color:var(--bx-ink);animation:bx-pop var(--bx-dur-3) var(--bx-ease-spring) .1s both}.success-modal .stars-display{display:flex;align-items:flex-end;justify-content:center;gap:var(--bx-space-4);margin:0;padding-top:var(--bx-space-2)}.success-modal .star-container{position:relative;display:grid;place-items:center;line-height:0}.success-modal .star-container svg{width:68px;height:68px;overflow:visible}.success-modal .star-container:nth-child(2) svg{width:88px;height:88px}.success-modal .star-container:nth-child(2){margin-bottom:var(--bx-space-3)}.success-modal .star-container.earned{color:var(--bx-star);filter:drop-shadow(0 5px 0 var(--bx-star-deep)) drop-shadow(0 0 14px color-mix(in oklab,var(--bx-star) 55%,transparent));animation:bx-bounce-in calc(var(--bx-dur-3) * 1.3) var(--bx-ease-spring) both}.success-modal .star-container.earned:after{content:"";position:absolute;top:-10%;right:-10%;bottom:-10%;left:-10%;border-radius:50%;border:3px solid var(--bx-star);opacity:0;animation:bxr-ring .7s var(--bx-ease) both;animation-delay:inherit}@keyframes bxr-ring{0%{opacity:0;transform:scale(.5)}40%{opacity:.9}to{opacity:0;transform:scale(1.5)}}.success-modal .star-container.not-earned{color:color-mix(in oklab,var(--bx-ink) 13%,transparent);filter:drop-shadow(0 4px 0 color-mix(in oklab,var(--bx-ink) 7%,transparent));animation:bxr-star-empty var(--bx-dur-3) var(--bx-ease) both}.success-body{display:flex;flex-direction:column;align-items:center;gap:var(--bx-space-4);padding:var(--bx-space-5);flex:1}.success-modal .info-boxes-container{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--bx-space-3);width:100%}.success-modal .coins-collected-box{display:inline-flex;align-items:center;gap:var(--bx-space-2);min-height:var(--bx-touch);padding:var(--bx-space-2) var(--bx-space-4) var(--bx-space-2) var(--bx-space-2);border:2px solid color-mix(in oklab,var(--bx-coin) 60%,transparent);border-radius:var(--bx-radius-pill);background:color-mix(in oklab,var(--bx-coin) 22%,var(--bx-surface));box-shadow:0 4px color-mix(in oklab,var(--bx-star-deep) 45%,transparent);animation:bx-pop var(--bx-dur-3) var(--bx-ease-spring) .8s both}.success-modal .coins-collected-icon{flex:0 0 auto;filter:drop-shadow(0 2px 0 color-mix(in oklab,var(--bx-star-deep) 70%,transparent));animation:bx-bounce-in calc(var(--bx-dur-3) * 1.3) var(--bx-ease-spring) 1s both}.success-modal .coins-info{display:flex;align-items:center;font-family:var(--bx-font-display);font-size:var(--bx-text-md);font-weight:500;color:var(--bx-ink)}.success-modal .coins-info strong{font-weight:700;color:var(--_gold-ink)}.unlock-message{display:inline-flex;align-items:center;gap:var(--bx-space-2);min-height:var(--bx-touch);padding:var(--bx-space-2) var(--bx-space-4);border-radius:var(--bx-radius-pill);background:var(--bx-accent-soft);box-shadow:inset 0 0 0 2px color-mix(in oklab,var(--bx-accent) 35%,transparent);font-family:var(--bx-font-display);font-size:var(--bx-text-md);font-weight:600;color:var(--bx-ink);animation:bx-pop var(--bx-dur-3) var(--bx-ease-spring) .95s both}.unlock-message .unlock-icon{flex:0 0 auto;color:var(--bx-accent);animation:bx-wiggle .6s var(--bx-ease) 1.3s 2}.demo-info-box{--_link: var(--bx-move-deep);display:flex;align-items:flex-start;gap:var(--bx-space-3);width:100%;padding:var(--bx-space-4);border-radius:var(--bx-radius-md);background:var(--bx-surface-2);box-shadow:inset 0 2px 0 var(--bx-line);color:var(--bx-ink-2);font-size:var(--bx-text-sm);line-height:1.45;text-align:left}[data-theme=dark] .demo-info-box{--_link: var(--bx-move)}.demo-info-icon{flex:0 0 auto;display:grid;place-items:center;width:44px;height:44px;border-radius:var(--bx-radius-sm);background:var(--bx-accent-soft);color:var(--bx-accent)}.demo-info-box strong{display:block;margin-bottom:2px;font-family:var(--bx-font-display);font-size:var(--bx-text-md);font-weight:600;color:var(--bx-ink)}.demo-info-box p{margin:0 0 var(--bx-space-2)}.demo-info-link{display:inline-flex;align-items:center;min-height:32px;font-family:var(--bx-font-display);font-weight:600;color:var(--_link);text-decoration:none;border-radius:var(--bx-radius-xs)}.demo-info-link:hover{text-decoration:underline;text-underline-offset:3px}.demo-info-link:focus-visible{outline:none;box-shadow:var(--bx-ring)}.motivation-text{width:100%;text-align:center;animation:bx-fade var(--bx-dur-3) var(--bx-ease) .7s both}.motivation-text p{margin:0}.motivation-flex{display:flex;align-items:center;justify-content:center;gap:var(--bx-space-2);font-family:var(--bx-font-body);font-size:var(--bx-text-lg);line-height:1.4;color:var(--bx-ink-2)}.motivation-flex strong{font-family:var(--bx-font-display);font-weight:600;color:var(--bx-ink)}.motivation-icon{flex:0 0 auto}.motivation-icon--star{color:var(--bx-star);filter:drop-shadow(0 2px 0 var(--bx-star-deep))}.motivation-icon--good{color:var(--bx-success)}.motivation-icon--ok{color:var(--bx-move)}.success-buttons{display:flex;flex-direction:column;gap:var(--bx-space-3);width:100%;padding-bottom:var(--bx-depth)}.success-buttons .success-btn{width:100%;text-shadow:0 1px 0 rgba(0,0,0,.18)}@media screen and (max-height: 760px){.success-header{padding:var(--bx-space-4) var(--bx-space-5);gap:var(--bx-space-2)}.success-hero{width:96px;height:88px}.success-bloxxy{width:80px;max-height:86px}.success-icon{width:40px;height:40px}.success-icon svg{width:22px;height:22px}.success-title{font-size:var(--bx-text-2xl)}.success-modal .star-container svg{width:56px;height:56px}.success-modal .star-container:nth-child(2) svg{width:72px;height:72px}.success-body{padding:var(--bx-space-4) var(--bx-space-5);gap:var(--bx-space-3)}}@media screen and (max-height: 520px){.success-hero{display:none}.success-modal .star-container svg{width:44px;height:44px}.success-modal .star-container:nth-child(2) svg{width:56px;height:56px}.success-modal .star-container:nth-child(2){margin-bottom:var(--bx-space-2)}.motivation-flex{font-size:var(--bx-text-md)}}@media screen and (max-width: 767px){.success-modal{max-width:480px}.success-title{font-size:var(--bx-text-2xl)}.motivation-flex{font-size:var(--bx-text-md)}}@media screen and (max-width: 479px){.success-modal-overlay{padding:var(--bx-space-3)}.success-modal{border-radius:var(--bx-radius-lg)}.success-header{padding:var(--bx-space-4) var(--bx-space-4)}.success-body{padding:var(--bx-space-4)}.success-title{font-size:var(--bx-text-xl)}.success-modal .stars-display{gap:var(--bx-space-2)}.success-modal .star-container svg{width:52px;height:52px}.success-modal .star-container:nth-child(2) svg{width:66px;height:66px}.motivation-flex .motivation-icon{display:none}.success-modal .info-boxes-container{flex-direction:column;align-items:stretch}.success-modal .coins-collected-box,.unlock-message{justify-content:center}}@media (hover: none) and (pointer: coarse){.success-buttons .success-btn:hover:not(:disabled){filter:none}}@media (prefers-reduced-motion: reduce){.success-modal-overlay *,.success-modal-overlay *:before,.success-modal-overlay *:after,.success-modal,.success-header:before,.success-header:after{animation:none!important}}.ufo-found-box{display:flex;align-items:center;gap:var(--bx-space-4);margin:0 0 var(--bx-space-4);padding:var(--bx-space-3) var(--bx-space-4);border-radius:var(--bx-radius-lg);background:color-mix(in oklab,var(--bx-jump) 10%,var(--bx-surface));border:2px solid color-mix(in oklab,var(--bx-jump) 35%,transparent)}.ufo-found-box .ufo-progress{flex:0 0 150px}.ufo-found-box .ufo-svg{max-width:150px}.ufo-found-box .ufo-caption{font-size:var(--bx-text-sm);white-space:nowrap}.ufo-found-box .ufo-caption strong{font-size:var(--bx-text-md)}.ufo-found-text{display:flex;flex-direction:column;gap:2px;text-align:left;color:var(--bx-ink-2);font-size:var(--bx-text-sm)}.ufo-found-text strong{font-family:var(--bx-font-display);font-size:var(--bx-text-lg);color:var(--bx-ink)}.ufo-found-part{font-family:var(--bx-font-display);font-weight:600;font-size:var(--bx-text-md);color:var(--bx-jump-deep)}@media (max-width: 480px){.ufo-found-box{flex-direction:column;text-align:center}.ufo-found-text{text-align:center}}.program-length-info{margin:0 0 var(--bx-space-3);text-align:center;font-size:var(--bx-text-md);color:var(--bx-ink-2)}.program-length-info strong{color:var(--bx-ink)}.program-length-star{vertical-align:-2px;color:var(--bx-star-deep)}.endgame-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10001;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:max(var(--bx-space-4),env(safe-area-inset-top)) max(var(--bx-space-4),env(safe-area-inset-right)) max(var(--bx-space-4),env(safe-area-inset-bottom)) max(var(--bx-space-4),env(safe-area-inset-left));background:var(--bx-scrim);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:bx-fade var(--bx-dur-2) var(--bx-ease);font-family:var(--bx-font-body)}.confetti-container{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:0}.confetti{position:absolute;top:-24px;width:10px;height:16px;border-radius:3px;opacity:.9;animation:bxr-confetti-fall 4.2s linear infinite both}.confetti:nth-child(3n){width:12px;height:12px;border-radius:50%;animation-duration:5s}.confetti:nth-child(4n){width:6px;height:18px;animation-duration:3.6s}@keyframes bxr-confetti-fall{0%{transform:translateZ(0) rotate(0);opacity:0}8%{opacity:.9}50%{transform:translate3d(18px,52vh,0) rotate(260deg)}to{transform:translate3d(-12px,108vh,0) rotate(560deg);opacity:.9}}.endgame-modal{position:relative;z-index:1;display:flex;flex-direction:column;width:100%;max-width:880px;height:100%;max-height:940px;overflow:hidden;background:var(--bx-surface);color:var(--bx-ink);border-radius:var(--bx-radius-xl);box-shadow:var(--bx-shadow-3),0 0 0 2px var(--bx-line),0 0 0 10px color-mix(in oklab,var(--bx-star) 22%,transparent);animation:bx-pop calc(var(--bx-dur-3) * 1.4) var(--bx-ease-spring)}.endgame-content{position:relative;isolation:isolate;flex:1 1 auto;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(6px,1.6vh,20px);padding:clamp(12px,2.6vh,32px) clamp(14px,3vw,32px) clamp(10px,2vh,24px);background:radial-gradient(110% 60% at 50% 0%,var(--bx-accent-soft) 0%,var(--bx-surface) 70%)}.endgame-content>*{flex:0 0 auto}.endgame-title{margin:0;font-family:var(--bx-font-display);font-size:clamp(1.4rem,4.4vh,2.75rem);font-weight:600;line-height:1.1;letter-spacing:-.01em;text-align:center;color:var(--bx-ink);animation:bx-pop var(--bx-dur-3) var(--bx-ease-spring) .15s both}.efx-stage{--t: 18;--h: 46;--ufo-top: calc(var(--t) * 1%);--ufo-h: calc(var(--h) * 1%);--ping-x: 84%;--ping-y: 18%;--fly-x: calc(var(--ping-x) - 50%);--fly-y: calc(var(--ping-y) - var(--ufo-top) - var(--ufo-h) * .42);position:relative;flex:1 1 0;min-height:140px;max-height:440px;width:100%;max-width:760px;overflow:hidden;isolation:isolate;border-radius:var(--bx-radius-lg);background:linear-gradient(180deg,#141b45,#2b2f6c 55%,#5a5a9a);box-shadow:inset 0 0 0 2px #ffffff14,0 6px color-mix(in oklab,var(--bx-ink) 14%,transparent);animation:bx-fade .4s var(--bx-ease) both}.efx-sky{position:absolute;top:0;right:0;bottom:0;left:0}.efx-sky-star{position:absolute;width:4px;height:4px;border-radius:50%;background:#fff;box-shadow:0 0 6px #ffffffe6;opacity:.85;animation:efx-twinkle 2.4s ease-in-out infinite both}@keyframes efx-twinkle{0%,to{opacity:.85}50%{opacity:.25}}.efx-ground{position:absolute;left:-15%;right:-15%;bottom:-38%;height:56%;border-radius:50%;background:radial-gradient(120% 90% at 50% 10%,#4b4f8e,#2f3266 60%,#23264f);box-shadow:inset 0 6px #ffffff14}.efx-pad{position:absolute;left:50%;bottom:6%;width:18%;height:7%;margin-left:-9%;border-radius:50%;background:radial-gradient(closest-side,rgba(95,214,232,.85),rgba(95,214,232,.15) 70%,transparent)}.efx-anchor,.efx-ufo-box{position:absolute;left:50%;top:var(--ufo-top);height:var(--ufo-h);aspect-ratio:200 / 125;transform:translate(-50%)}.efx-beam{position:absolute;left:25%;width:50%;top:82%;height:calc((92 - var(--t) - var(--h) * .82) / var(--h) * 100%);clip-path:polygon(34% 0,66% 0,100% 100%,0 100%);background:linear-gradient(180deg,#c8faffd9,#5fd6e859 70%,#5fd6e81f);transform-origin:50% 0;opacity:0;animation:efx-beam 1.8s var(--bx-ease) .5s both}@keyframes efx-beam{0%{opacity:0;transform:scaleY(0)}18%{opacity:1;transform:scaleY(1)}80%{opacity:1;transform:scaleY(1)}to{opacity:0;transform:scaleY(1)}}.efx-riser{position:absolute;left:0;width:100%;top:50%;height:calc((92 - var(--t) - var(--h) * .5) / var(--h) * 100%)}.efx-riser-inner{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-end;justify-content:center;animation:efx-rise 1s cubic-bezier(.45,0,.35,1) .9s both}.efx-riser-img{height:44%;width:auto;transform-origin:50% 100%;user-select:none;-webkit-user-select:none;animation:efx-shrink 1s cubic-bezier(.45,0,.35,1) .9s both}@keyframes efx-rise{0%{transform:translateY(0);opacity:1}80%{opacity:1}to{transform:translateY(-100%);opacity:0}}@keyframes efx-shrink{0%{transform:scale(1)}to{transform:scale(.32)}}.efx-ufo-x,.efx-ufo-y{position:absolute;top:0;right:0;bottom:0;left:0}.efx-ufo-x{animation:efx-fly-x 2s cubic-bezier(.5,0,.85,.5) 3.9s both}.efx-ufo-lift,.efx-ufo-s,.efx-ufo-bob{position:absolute;top:0;right:0;bottom:0;left:0}.efx-ufo-y{animation:efx-fly-y 2s cubic-bezier(.25,.6,.5,1) 3.9s both}.efx-ufo-lift{animation:efx-liftoff .9s ease-in-out 3s both}.efx-ufo-s{animation:efx-fly-s 2s cubic-bezier(.55,0,.9,.55) 3.9s both}.efx-ufo-bob{animation:efx-bob 2.4s ease-in-out infinite}.efx-ufo-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}@keyframes efx-fly-x{to{transform:translate(var(--fly-x))}}@keyframes efx-fly-y{to{transform:translateY(var(--fly-y))}}@keyframes efx-fly-s{0%{transform:scale(1);opacity:1}90%{opacity:1}to{transform:scale(.06);opacity:0}}@keyframes efx-liftoff{0%{transform:translateY(0) rotate(0)}20%{transform:translateY(4%) rotate(-5deg)}40%{transform:translateY(7%) rotate(5deg)}60%{transform:translateY(3%) rotate(-4deg)}85%{transform:translateY(-6%) rotate(4deg)}to{transform:translateY(-8%) rotate(9deg)}}@keyframes efx-bob{0%,to{transform:translateY(0) rotate(-1.5deg)}50%{transform:translateY(-5%) rotate(1.5deg)}}.efx-trail-wrap{position:absolute;top:0;right:0;bottom:0;left:0;transform:rotate(150deg)}.efx-trail{position:absolute;left:50%;top:50%;width:150%;height:16%;border-radius:var(--bx-radius-pill);background:linear-gradient(90deg,rgba(255,229,138,.95),rgba(95,214,232,.5) 45%,transparent);transform-origin:0 50%;opacity:0;animation:efx-trail 2s ease-out 3.9s both}@keyframes efx-trail{0%{opacity:0;transform:translateY(-50%) scaleX(.1)}18%{opacity:1;transform:translateY(-50%) scaleX(1)}85%{opacity:.9}to{opacity:0;transform:translateY(-50%) scaleX(.7)}}.efx-pilot{animation:efx-pilot-in .45s var(--bx-ease-spring) 1.8s both}.efx-pilot-hop{animation:efx-pilot-hop .5s ease-in-out 2.3s 3 both}.efx-arm{transform-origin:130.5px 60px;animation:efx-wave .8s ease-in-out 2.2s 4 both}.efx-dome{transform-origin:146px 66px;animation:efx-dome-close .6s cubic-bezier(.3,1.4,.5,1) 2.05s both}.efx-dome-flash{opacity:0;animation:efx-flash .6s ease-out 2.5s both}@keyframes efx-pilot-in{0%{transform:translateY(26px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes efx-pilot-hop{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes efx-wave{0%,to{transform:rotate(0)}25%{transform:rotate(-28deg)}75%{transform:rotate(18deg)}}@keyframes efx-dome-close{0%{transform:rotate(62deg)}to{transform:rotate(0)}}@keyframes efx-flash{0%{opacity:0}25%{opacity:.55}to{opacity:0}}.efx-light{fill:#ffe58a}.efx-lights--calm{animation:efx-hide .3s linear 3s both}.efx-lights--calm .efx-light{animation:efx-blink 1.1s ease-in-out infinite;animation-delay:calc(var(--i) * .12s)}.efx-lights--fast{opacity:0;animation:efx-show .3s linear 3s both}.efx-lights--fast .efx-light{fill:#fff6c8;animation:efx-blink .36s linear infinite;animation-delay:calc(var(--i) * .04s)}@keyframes efx-blink{0%,to{opacity:.35}50%{opacity:1}}@keyframes efx-hide{to{opacity:0}}@keyframes efx-show{to{opacity:1}}.efx-ping-pos{position:absolute;left:var(--ping-x);top:var(--ping-y);height:22%;aspect-ratio:1;transform:translate(-50%,-50%)}.efx-ping{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;animation:efx-ping .9s ease-out 5.75s both}.efx-ping svg{display:block;width:100%;height:100%;overflow:visible}@keyframes efx-ping{0%{opacity:0;transform:scale(0) rotate(0)}30%{opacity:1;transform:scale(1.15) rotate(40deg)}60%{opacity:1;transform:scale(.75) rotate(65deg)}to{opacity:.9;transform:scale(.3) rotate(90deg)}}.efx-ping svg{animation:efx-twinkle 2.4s ease-in-out 6.65s infinite}.hero-stars{display:flex;justify-content:center;width:100%}.endgame-modal .stars-display{display:flex;align-items:flex-end;gap:clamp(8px,1.6vh,16px);margin:0}.endgame-modal .star-container{position:relative;line-height:0}.endgame-modal .star-container svg{width:clamp(32px,6vh,60px);height:clamp(32px,6vh,60px);overflow:visible}.endgame-modal .star-container:nth-child(2) svg{width:clamp(40px,7.6vh,76px);height:clamp(40px,7.6vh,76px)}.endgame-modal .star-container:nth-child(2){margin-bottom:clamp(4px,1vh,12px)}.endgame-modal .star-container.earned{color:var(--bx-star);filter:drop-shadow(0 4px 0 var(--bx-star-deep)) drop-shadow(0 0 12px color-mix(in oklab,var(--bx-star) 55%,transparent));animation:bx-bounce-in calc(var(--bx-dur-3) * 1.3) var(--bx-ease-spring) both}.endgame-modal .star-container.not-earned{color:color-mix(in oklab,var(--bx-ink) 13%,transparent);filter:drop-shadow(0 4px 0 color-mix(in oklab,var(--bx-ink) 7%,transparent));animation:bxr-star-empty var(--bx-dur-3) var(--bx-ease) both}@keyframes bxr-star-empty{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}.endgame-message{width:100%;max-width:720px;padding:clamp(8px,1.6vh,20px) clamp(12px,2.4vw,24px);border-radius:var(--bx-radius-lg);background:var(--bx-surface-2);box-shadow:inset 0 2px 0 var(--bx-line);text-align:center;visibility:hidden}.endgame-message.is-shown{visibility:visible;animation:bx-pop var(--bx-dur-3) var(--bx-ease-spring) both}.message-title{margin:0 0 clamp(2px,.8vh,10px);font-family:var(--bx-font-display);font-size:clamp(1.1rem,3vh,1.75rem);font-weight:600;line-height:1.2;color:var(--bx-ink)}.message-text{margin:clamp(2px,.6vh,8px) 0 0;font-size:clamp(.85rem,2.1vh,1.125rem);line-height:1.4;color:var(--bx-ink-2)}.message-text strong{font-family:var(--bx-font-display);font-weight:600;color:var(--bx-ink)}.message-text--bloxxy{color:var(--bx-ink);font-style:italic}.message-sign{font-family:var(--bx-font-display);font-style:normal;font-weight:600;white-space:nowrap}.endgame-buttons{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(8px,1.4vh,12px);width:100%;padding-bottom:var(--bx-depth);animation:bx-fade var(--bx-dur-3) var(--bx-ease) 1s both}.endgame-buttons .endgame-btn{min-width:260px;min-height:clamp(44px,7vh,60px);font-size:clamp(1rem,2.4vh,var(--bx-text-xl))}.endgame-buttons .endgame-btn--replay{visibility:hidden}.endgame-buttons .endgame-btn--replay.is-shown{visibility:visible;animation:bx-fade var(--bx-dur-3) var(--bx-ease) both}.endgame-ufo{display:flex;flex-direction:column;align-items:center;gap:clamp(2px,.6vh,8px);margin-bottom:clamp(4px,1vh,12px)}.endgame-ufo-text{margin:0;color:var(--bx-ink-2);font-size:clamp(.8rem,1.9vh,1rem)}.endgame-ufo .ufo-progress{gap:clamp(2px,.6vh,8px)}.endgame-ufo .ufo-svg{width:auto;height:clamp(40px,8.5vh,96px);max-width:none}.endgame-ufo .ufo-caption{font-size:clamp(.85rem,2vh,1.125rem)}.endgame-ufo .ufo-caption strong{font-size:clamp(1rem,2.4vh,1.25rem)}@media screen and (min-width: 640px){.endgame-ufo{flex-direction:row;justify-content:center;gap:clamp(10px,2vw,20px);text-align:left}.endgame-ufo-text{max-width:380px}}@media screen and (orientation: portrait) and (min-height: 900px){.endgame-modal{max-height:1080px}}@media screen and (max-width: 767px){.endgame-buttons .endgame-btn{flex:1 1 200px;min-width:0}}@media screen and (max-width: 479px){.endgame-modal-overlay{padding:var(--bx-space-3)}.endgame-modal{border-radius:var(--bx-radius-lg)}}@media screen and (max-height: 599px){.endgame-modal{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}.endgame-modal::-webkit-scrollbar{display:none}.endgame-content{flex:0 0 auto;min-height:100%}.efx-stage{flex:0 0 140px}}@media (hover: none) and (pointer: coarse){.endgame-buttons .endgame-btn:hover:not(:disabled){filter:none}}@media (prefers-reduced-motion: reduce){.confetti-container{display:none}.endgame-modal-overlay *,.endgame-modal-overlay *:before,.endgame-modal-overlay *:after,.endgame-modal{animation:none!important}.efx-riser,.efx-beam,.efx-trail,.efx-ping,.efx-lights--fast{display:none}}.attributions-modal-overlay{display:flex;align-items:center;justify-content:center;z-index:10000;padding:var(--bx-space-4);padding-top:max(var(--bx-space-4),env(safe-area-inset-top));padding-bottom:max(var(--bx-space-4),env(safe-area-inset-bottom))}.attributions-modal{position:relative;display:flex;flex-direction:column;width:100%;max-width:900px;max-height:min(88vh,900px);max-height:min(88dvh,900px);overflow:hidden;font-family:var(--bx-font-body)}.attributions-modal .attributions-close-btn.bx-btn{position:absolute;top:var(--bx-space-4);right:var(--bx-space-4);z-index:3;border-radius:50%;color:var(--bx-ink-2)}.attributions-modal-body{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.attributions-header{flex-shrink:0;display:flex;align-items:center;gap:var(--bx-space-4);padding:var(--bx-space-5) calc(var(--bx-touch) + var(--bx-space-6)) var(--bx-space-4) var(--bx-space-6);border-bottom:2px solid var(--bx-line)}.attributions-header-icon{flex-shrink:0;display:grid;place-items:center;width:52px;height:52px;border-radius:var(--bx-radius-md);background:var(--bx-accent-soft);color:var(--bx-accent-deep)}[data-theme=dark] .attributions-header-icon{color:color-mix(in oklab,var(--bx-accent) 70%,#fff)}.attributions-header-text{min-width:0}.attributions-header .bx-overline{display:block;margin-bottom:2px}.attributions-header h2{margin:0;font-family:var(--bx-font-display);font-size:var(--bx-text-2xl);font-weight:600;line-height:1.2;color:var(--bx-ink)}.attributions-content{flex:1;min-height:0;padding:var(--bx-space-5) var(--bx-space-6) var(--bx-space-6);overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;background:var(--bx-surface-2);color:var(--bx-ink)}.attributions-content::-webkit-scrollbar{width:10px}.attributions-content::-webkit-scrollbar-track{background:transparent}.attributions-content::-webkit-scrollbar-thumb{background:var(--bx-line-strong);border-radius:10px;border:3px solid var(--bx-surface-2)}.attribution-section{margin-bottom:var(--bx-space-4);padding:var(--bx-space-5);background:var(--bx-surface);border:2px solid var(--bx-line);border-radius:var(--bx-radius-lg);box-shadow:var(--bx-shadow-1)}.attribution-section:last-child{margin-bottom:0}.attribution-section h3{display:flex;align-items:center;gap:var(--bx-space-2);margin:0 0 var(--bx-space-3);font-family:var(--bx-font-display);font-size:var(--bx-text-sm);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--bx-ink-2)}.attribution-section-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:var(--bx-radius-sm);background:var(--bx-accent-soft);color:var(--bx-accent-deep)}[data-theme=dark] .attribution-section-icon{color:color-mix(in oklab,var(--bx-accent) 70%,#fff)}.attribution-intro{margin:0 0 var(--bx-space-3);font-size:var(--bx-text-md);line-height:1.55;color:var(--bx-ink-2)}.attribution-source{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:var(--bx-space-4);padding:var(--bx-space-2) var(--bx-space-3);border-radius:var(--bx-radius-sm);background:var(--bx-surface-2);font-size:var(--bx-text-sm);color:var(--bx-ink-2)}.attribution-source strong{color:var(--bx-ink)}.attribution-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--bx-space-3)}.attribution-item{padding:var(--bx-space-3) var(--bx-space-4);background:var(--bx-surface);border:2px solid var(--bx-line);border-radius:var(--bx-radius-md);min-width:0}.attribution-item-header{display:flex;flex-direction:column;align-items:flex-start;gap:var(--bx-space-1);margin-bottom:var(--bx-space-2)}.attribution-item-header strong{font-family:var(--bx-font-display);font-size:var(--bx-text-md);font-weight:600;color:var(--bx-ink)}.attribution-filename{max-width:100%;padding:1px var(--bx-space-2);border-radius:var(--bx-radius-xs);background:var(--bx-surface-2);font-family:var(--bx-font-mono);font-size:var(--bx-text-xs);color:var(--bx-ink-2);overflow-wrap:anywhere}.attribution-item p{margin:0;font-size:var(--bx-text-sm);line-height:1.6;color:var(--bx-ink-2)}.attribution-item p strong{color:var(--bx-ink)}.attribution-item ul{margin:var(--bx-space-2) 0 0;padding-left:var(--bx-space-5);line-height:1.6}.attribution-item li{font-size:var(--bx-text-sm);color:var(--bx-ink-2)}.attribution-own-list{margin:0;padding:var(--bx-space-4) var(--bx-space-4) var(--bx-space-4) var(--bx-space-6);background:var(--bx-surface-2);border-radius:var(--bx-radius-md);line-height:1.7;font-size:var(--bx-text-sm);color:var(--bx-ink-2)}.attributions-content a{color:var(--bx-accent-deep);font-weight:700;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:2px;text-decoration-color:var(--bx-accent-tint);overflow-wrap:anywhere;border-radius:4px}[data-theme=dark] .attributions-content a{color:color-mix(in oklab,var(--bx-accent) 70%,#fff)}.attributions-content a:hover{text-decoration-color:currentColor}.attributions-content a:focus-visible{outline:none;box-shadow:var(--bx-ring)}.attribution-license{margin-top:var(--bx-space-4);padding:var(--bx-space-3) var(--bx-space-4);background:var(--bx-surface-2);border-radius:var(--bx-radius-md);box-shadow:inset 4px 0 0 var(--bx-accent-tint)}.attribution-license h4{margin:0 0 var(--bx-space-1);font-family:var(--bx-font-display);font-size:var(--bx-text-md);font-weight:600;color:var(--bx-ink)}.attribution-license p{margin:0;font-size:var(--bx-text-sm);line-height:1.6;color:var(--bx-ink-2)}.attribution-license strong{color:var(--bx-ink)}.attribution-section>.attribution-item{border:0;padding:0}.attribution-section.attribution-footer{background:transparent;border:2px dashed var(--bx-line-strong);box-shadow:none;padding:var(--bx-space-3) var(--bx-space-4);text-align:center}.attribution-footer p{margin:0;font-size:var(--bx-text-sm);color:var(--bx-ink-3)}@media screen and (orientation: landscape) and (max-height: 834px){.attributions-modal{max-height:calc(100dvh - 2 * var(--bx-space-4))}.attributions-header{padding-top:var(--bx-space-4);padding-bottom:var(--bx-space-3)}}@media (max-width: 768px){.attributions-header{padding:var(--bx-space-4) calc(var(--bx-touch) + var(--bx-space-5)) var(--bx-space-3) var(--bx-space-4);gap:var(--bx-space-3)}.attributions-header-icon{width:44px;height:44px}.attributions-header h2{font-size:var(--bx-text-xl)}.attributions-content,.attribution-section{padding:var(--bx-space-4)}}@media (max-width: 480px){.attributions-modal-overlay{padding:var(--bx-space-2)}.attributions-modal{max-height:calc(100dvh - 2 * var(--bx-space-2));border-radius:var(--bx-radius-lg)}.attributions-content,.attribution-section{padding:var(--bx-space-3)}.attribution-list{grid-template-columns:1fr}}.pwa-update-prompt{position:fixed;left:50%;bottom:max(var(--bx-space-6),calc(env(safe-area-inset-bottom) + var(--bx-space-4)));z-index:9999;width:max-content;max-width:calc(100vw - 2 * var(--bx-space-4));transform:translate(-50%);animation:bxr-pwa-in var(--bx-dur-3) var(--bx-ease-spring) both;font-family:var(--bx-font-body)}@keyframes bxr-pwa-in{0%{opacity:0;transform:translate(-50%) translateY(24px) scale(.96)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.pwa-update-content{display:flex;align-items:center;gap:var(--bx-space-4);min-width:440px;padding:var(--bx-space-4) var(--bx-space-4) var(--bx-space-4) var(--bx-space-4);background:var(--bx-surface);color:var(--bx-ink);border:2px solid var(--bx-line);border-radius:var(--bx-radius-lg);box-shadow:var(--bx-shadow-3)}.pwa-update-icon{flex:0 0 auto;display:grid;place-items:center;width:52px;height:52px;border-radius:var(--bx-radius-md);background:var(--bx-accent-soft);color:var(--bx-accent);box-shadow:inset 0 0 0 2px color-mix(in oklab,var(--bx-accent) 25%,transparent)}.pwa-update-icon svg{width:28px;height:28px;animation:bxr-pwa-nudge 1.8s var(--bx-ease) .6s 2}@keyframes bxr-pwa-nudge{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-4px)}}.pwa-update-text{flex:1 1 auto;min-width:0}.pwa-update-text h3{margin:0 0 2px;font-family:var(--bx-font-display);font-size:var(--bx-text-lg);font-weight:600;color:var(--bx-ink)}.pwa-update-text p{margin:0;font-size:var(--bx-text-sm);line-height:1.4;color:var(--bx-ink-2)}.pwa-update-actions{flex:0 0 auto;display:flex;gap:var(--bx-space-2);padding-bottom:var(--bx-depth)}.pwa-update-actions .pwa-update-btn{padding:0 var(--bx-space-4);font-size:var(--bx-text-md);white-space:nowrap}@keyframes bxr-pwa-in-mobile{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.pwa-update-prompt{left:var(--bx-space-4);right:var(--bx-space-4);bottom:max(var(--bx-space-4),env(safe-area-inset-bottom));width:auto;max-width:none;transform:none;animation-name:bxr-pwa-in-mobile}.pwa-update-content{min-width:0;flex-direction:column;text-align:center;padding:var(--bx-space-4)}.pwa-update-actions{width:100%;flex-direction:column}.pwa-update-actions .pwa-update-btn{width:100%}}@media (max-width: 480px){.pwa-update-text h3{font-size:var(--bx-text-md)}.pwa-update-text p{font-size:.8125rem}.pwa-update-icon{width:44px;height:44px}.pwa-update-icon svg{width:24px;height:24px}}@media (prefers-reduced-motion: reduce){.pwa-update-prompt,.pwa-update-icon svg{animation:none}}.orientation-warning-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:max(var(--bx-space-5),env(safe-area-inset-top)) max(var(--bx-space-5),env(safe-area-inset-right)) max(var(--bx-space-5),env(safe-area-inset-bottom)) max(var(--bx-space-5),env(safe-area-inset-left));background-color:var(--bx-bg);background-image:var(--bx-bg-pattern);background-size:22px 22px;animation:bx-fade var(--bx-dur-2) var(--bx-ease);font-family:var(--bx-font-body);overflow-y:auto}.orientation-warning-content{width:100%;max-width:440px;padding:var(--bx-space-6) var(--bx-space-5);text-align:center;background:var(--bx-surface);color:var(--bx-ink);border:2px solid var(--bx-line);border-radius:var(--bx-radius-xl);box-shadow:var(--bx-shadow-2);animation:bx-pop var(--bx-dur-3) var(--bx-ease-spring)}.orientation-icon{display:grid;place-items:center;width:168px;height:168px;margin:0 auto var(--bx-space-5);border-radius:50%;background:var(--bx-accent-soft);color:var(--bx-accent-deep);box-shadow:inset 0 0 0 3px color-mix(in oklab,var(--bx-accent) 28%,transparent)}[data-theme=dark] .orientation-icon{color:var(--bx-accent)}.orientation-icon svg{width:112px;height:112px;transform-origin:50% 50%;animation:bxr-rotate-device 2.8s var(--bx-ease) infinite}@keyframes bxr-rotate-device{0%,18%{transform:rotate(0)}48%,78%{transform:rotate(-90deg)}to{transform:rotate(0)}}.orientation-icon .rotation-arrow,.orientation-icon .arrow-head{color:var(--bx-turn);stroke:var(--bx-turn)}.orientation-icon .arrow-head{fill:var(--bx-turn)}.orientation-title{margin:0 0 var(--bx-space-3);font-family:var(--bx-font-display);font-size:var(--bx-text-3xl);font-weight:600;line-height:1.1;color:var(--bx-ink)}.orientation-message{margin:0;font-size:var(--bx-text-lg);font-weight:500;line-height:1.45;color:var(--bx-ink-2)}.orientation-message strong{font-family:var(--bx-font-display);font-weight:600;color:var(--bx-ink)}.orientation-hint{margin:var(--bx-space-3) 0 0;font-size:var(--bx-text-md);font-style:normal;line-height:1.45;color:var(--bx-ink-3)}@media (max-height: 600px){.orientation-warning-content{padding:var(--bx-space-4)}.orientation-icon{width:112px;height:112px;margin-bottom:var(--bx-space-3)}.orientation-icon svg{width:76px;height:76px}.orientation-title{font-size:var(--bx-text-2xl)}.orientation-message{font-size:var(--bx-text-md)}.orientation-hint{font-size:var(--bx-text-sm)}}@media (max-width: 400px){.orientation-title{font-size:var(--bx-text-2xl)}}@media (prefers-reduced-motion: reduce){.orientation-warning-overlay,.orientation-warning-content,.orientation-icon svg{animation:none!important}}.achievement-notification{--_gold-ink: #7A4E00;position:fixed;right:max(var(--bx-space-5),env(safe-area-inset-right));bottom:max(var(--bx-space-5),env(safe-area-inset-bottom));z-index:999999;width:360px;max-width:calc(100vw - 2 * var(--bx-space-4));display:flex;align-items:center;gap:var(--bx-space-4);padding:var(--bx-space-4);overflow:hidden;isolation:isolate;cursor:pointer;font-family:var(--bx-font-body);color:var(--bx-ink);background:var(--bx-surface);border:2px solid color-mix(in oklab,var(--bx-star) 55%,var(--bx-line));border-radius:var(--bx-radius-lg);box-shadow:0 var(--bx-depth) 0 color-mix(in oklab,var(--bx-star-deep) 40%,transparent),var(--bx-shadow-3);opacity:0;transform:translate(calc(100% + 48px));transition:transform var(--bx-dur-2) var(--bx-ease),opacity var(--bx-dur-2) var(--bx-ease),box-shadow var(--bx-dur-1) var(--bx-ease)}[data-theme=dark] .achievement-notification{--_gold-ink: var(--bx-star)}.achievement-notification.visible{opacity:1;transform:translate(0);transition:transform var(--bx-dur-3) var(--bx-ease-spring),opacity var(--bx-dur-2) var(--bx-ease),box-shadow var(--bx-dur-1) var(--bx-ease)}.achievement-notification.visible:hover{transform:translate(-4px)}.achievement-notification.visible:active{transform:translateY(2px)}.achievement-glow{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:linear-gradient(105deg,transparent 35%,color-mix(in oklab,var(--bx-star) 30%,transparent) 50%,transparent 65%),radial-gradient(120% 140% at 0% 50%,color-mix(in oklab,var(--bx-star) 16%,transparent) 0%,transparent 60%);background-size:250% 100%,100% 100%;background-position:120% 0,0 0;background-repeat:no-repeat}.achievement-notification.visible .achievement-glow{animation:bxr-ach-shine 1.4s var(--bx-ease) .35s both}@keyframes bxr-ach-shine{0%{background-position:120% 0,0 0}to{background-position:-40% 0,0 0}}.achievement-icon{flex:0 0 auto;display:grid;place-items:center;width:60px;height:60px;border-radius:50%;background:var(--bx-star);color:#3a2600;box-shadow:0 4px 0 var(--bx-star-deep),inset 0 -3px #0000000f}.achievement-notification.visible .achievement-icon{animation:bx-bounce-in var(--bx-dur-3) var(--bx-ease-spring) .12s both,bx-wiggle .52s var(--bx-ease) .6s 2}.achievement-content{flex:1 1 auto;min-width:0}.achievement-title{margin-bottom:2px;font-family:var(--bx-font-display);font-size:var(--bx-text-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--_gold-ink)}.achievement-name{margin-bottom:2px;font-family:var(--bx-font-display);font-size:var(--bx-text-lg);font-weight:600;line-height:1.2;color:var(--bx-ink)}.achievement-description{margin-bottom:var(--bx-space-2);font-size:var(--bx-text-sm);line-height:1.35;color:var(--bx-ink-2)}.achievement-points{display:inline-flex;align-items:center;gap:var(--bx-space-1);height:28px;padding:0 var(--bx-space-3) 0 var(--bx-space-2);border-radius:var(--bx-radius-pill);background:var(--bx-star);color:#3a2600;box-shadow:0 3px 0 var(--bx-star-deep);font-family:var(--bx-font-display);font-size:var(--bx-text-sm);font-weight:600}.achievement-points-star{flex:0 0 auto}@media screen and (max-width: 767px){.achievement-notification{left:var(--bx-space-4);right:var(--bx-space-4);width:auto;max-width:420px;margin-left:auto;bottom:max(var(--bx-space-4),env(safe-area-inset-bottom));gap:var(--bx-space-3);padding:var(--bx-space-3)}.achievement-icon{width:50px;height:50px}.achievement-name{font-size:var(--bx-text-md)}.achievement-description{font-size:.8125rem}}@media (prefers-reduced-motion: reduce){.achievement-notification,.achievement-notification.visible{transform:none;transition:opacity var(--bx-dur-2) linear}.achievement-notification.visible .achievement-icon,.achievement-notification.visible .achievement-glow{animation:none}}.skin-unlock-notification{--_tone: var(--bx-jump);--_tone-ink: var(--bx-jump-deep);position:fixed;right:max(var(--bx-space-5),env(safe-area-inset-right));bottom:calc(max(var(--bx-space-5),env(safe-area-inset-bottom)) + 136px);z-index:999998;width:360px;max-width:calc(100vw - 2 * var(--bx-space-4));display:flex;align-items:center;gap:var(--bx-space-4);padding:var(--bx-space-4);overflow:hidden;isolation:isolate;cursor:pointer;font-family:var(--bx-font-body);color:var(--bx-ink);background:var(--bx-surface);border:2px solid color-mix(in oklab,var(--_tone) 50%,var(--bx-line));border-radius:var(--bx-radius-lg);box-shadow:0 var(--bx-depth) 0 color-mix(in oklab,var(--bx-jump-deep) 35%,transparent),var(--bx-shadow-3);opacity:0;transform:translate(calc(100% + 48px));transition:transform var(--bx-dur-2) var(--bx-ease),opacity var(--bx-dur-2) var(--bx-ease)}[data-theme=dark] .skin-unlock-notification{--_tone-ink: var(--bx-jump)}.skin-unlock-notification.visible{opacity:1;transform:translate(0);transition:transform var(--bx-dur-3) var(--bx-ease-spring),opacity var(--bx-dur-2) var(--bx-ease)}.skin-unlock-notification.visible:hover{transform:translate(-4px)}.skin-unlock-notification.visible:active{transform:translateY(2px)}.skin-unlock-glow{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:linear-gradient(105deg,transparent 35%,color-mix(in oklab,var(--_tone) 22%,transparent) 50%,transparent 65%),radial-gradient(120% 140% at 0% 50%,color-mix(in oklab,var(--_tone) 14%,transparent) 0%,transparent 60%);background-size:250% 100%,100% 100%;background-position:120% 0,0 0;background-repeat:no-repeat}.skin-unlock-notification.visible .skin-unlock-glow{animation:bxr-skin-shine 1.4s var(--bx-ease) .35s both}@keyframes bxr-skin-shine{0%{background-position:120% 0,0 0}to{background-position:-40% 0,0 0}}.skin-unlock-preview{flex:0 0 auto;display:grid;place-items:center;width:60px;height:60px;border-radius:var(--bx-radius-md);box-shadow:0 4px color-mix(in oklab,var(--bx-ink) 22%,transparent),inset 0 0 0 2px #ffffff59}.skin-unlock-preview svg{filter:drop-shadow(0 1px 1px rgba(0,0,0,.45))}.skin-unlock-notification.visible .skin-unlock-preview{animation:bx-bounce-in var(--bx-dur-3) var(--bx-ease-spring) .12s both,bx-wiggle .52s var(--bx-ease) .6s 2}.skin-unlock-content{flex:1 1 auto;min-width:0}.skin-unlock-title{margin-bottom:2px;font-family:var(--bx-font-display);font-size:var(--bx-text-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--_tone-ink)}.skin-unlock-name{margin-bottom:2px;font-family:var(--bx-font-display);font-size:var(--bx-text-lg);font-weight:600;line-height:1.2;color:var(--bx-ink)}.skin-unlock-description{margin-bottom:var(--bx-space-2);font-size:var(--bx-text-sm);line-height:1.35;color:var(--bx-ink-2)}.skin-unlock-coins{display:inline-flex;align-items:center;gap:var(--bx-space-1);height:28px;padding:0 var(--bx-space-3) 0 var(--bx-space-1);border-radius:var(--bx-radius-pill);background:var(--bx-coin);color:#3a2600;box-shadow:0 3px 0 var(--bx-star-deep);font-family:var(--bx-font-display);font-size:var(--bx-text-sm);font-weight:600}.skin-unlock-coin-icon{flex:0 0 auto}@media screen and (max-width: 767px){.skin-unlock-notification{left:var(--bx-space-4);right:var(--bx-space-4);width:auto;max-width:420px;margin-left:auto;bottom:calc(max(var(--bx-space-4),env(safe-area-inset-bottom)) + 124px);gap:var(--bx-space-3);padding:var(--bx-space-3)}.skin-unlock-preview{width:50px;height:50px}.skin-unlock-name{font-size:var(--bx-text-md)}.skin-unlock-description{font-size:.8125rem}}@media (prefers-reduced-motion: reduce){.skin-unlock-notification,.skin-unlock-notification.visible{transform:none;transition:opacity var(--bx-dur-2) linear}.skin-unlock-notification.visible .skin-unlock-preview,.skin-unlock-notification.visible .skin-unlock-glow{animation:none}}.audio-player{display:flex;align-items:center;gap:var(--bx-space-1)}.audio-button{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;background:var(--bx-surface);color:var(--bx-ink-2);border:0;border-radius:var(--bx-radius-sm);cursor:pointer;box-shadow:inset 0 0 0 2px var(--bx-line),0 3px 0 var(--bx-line-strong);transition:transform var(--bx-dur-1) var(--bx-ease),box-shadow var(--bx-dur-1) var(--bx-ease),background-color var(--bx-dur-2) var(--bx-ease),opacity var(--bx-dur-2) var(--bx-ease);-webkit-tap-highlight-color:transparent;touch-action:manipulation}.audio-button:active{transform:translateY(3px);box-shadow:inset 0 0 0 2px var(--bx-line),0 0 0 var(--bx-line-strong)}.audio-button:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--bx-line),var(--bx-ring)}.audio-button.active{background:var(--bx-accent-soft);color:var(--bx-accent-deep)}.audio-button.inactive{color:var(--bx-ink-3)}.app-header .audio-button{width:var(--_hdr-btn, 44px)}.app-header .audio-button.active{background:#ffffff42;color:var(--bx-on-accent)}.app-header .audio-button.inactive{background:transparent;color:#ffffffb8;box-shadow:inset 0 0 0 2px #ffffff38,0 3px 0 transparent}.app-header .audio-button.inactive:active{box-shadow:inset 0 0 0 2px #ffffff38}.level-preview-container{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;padding:var(--bx-space-6);padding-bottom:var(--bx-space-7);overflow-y:auto;overflow-x:hidden;color:var(--bx-ink);font-family:var(--bx-font-body);background-color:var(--bx-bg);background-image:var(--bx-bg-pattern);background-size:18px 18px}.level-preview-header{max-width:1400px;margin:0 auto var(--bx-space-5);padding:var(--bx-space-5) var(--bx-space-6);text-align:center;color:#fff;background:radial-gradient(circle at 12% -40%,rgba(255,255,255,.28) 0,transparent 55%),linear-gradient(135deg,var(--bx-accent-strong) 0%,var(--bx-accent-deep) 100%);border-radius:var(--bx-radius-xl);box-shadow:0 var(--bx-depth) 0 color-mix(in oklab,var(--bx-accent-deep) 80%,#000)}.level-preview-header h1{margin:0 0 var(--bx-space-1);font-family:var(--bx-font-display);font-size:var(--bx-text-3xl);font-weight:700;text-shadow:0 2px 0 color-mix(in oklab,var(--bx-accent-deep) 85%,#000)}.level-preview-name{font-size:var(--bx-text-xl);font-weight:500;opacity:.9}.level-preview-subtitle{margin:0;font-size:var(--bx-text-lg);opacity:.95}.level-preview-upload{max-width:1400px;margin:0 auto var(--bx-space-5);padding:var(--bx-space-4);background:var(--bx-surface);border:2px solid var(--bx-line);border-radius:var(--bx-radius-lg);box-shadow:var(--bx-shadow-1)}.level-preview-dropzone{padding:var(--bx-space-5) var(--bx-space-6);text-align:center;background:var(--bx-surface-2);border:3px dashed var(--bx-line-strong);border-radius:var(--bx-radius-md);transition:border-color var(--bx-dur-2) var(--bx-ease),background var(--bx-dur-2) var(--bx-ease)}.level-preview-dropzone:hover{border-color:var(--bx-accent);background:var(--bx-accent-soft)}.level-preview-dropzone-hint{margin-top:var(--bx-space-3);font-size:var(--bx-text-sm);color:var(--bx-ink-3)}.level-preview-upload-button,.level-preview-save-button,.level-preview-update-button,.level-preview-reset-button{--_bg: var(--bx-accent-strong);--_edge: var(--bx-accent-deep);--_fg: var(--bx-on-accent);display:inline-flex;align-items:center;justify-content:center;gap:var(--bx-space-2);min-height:var(--bx-touch);padding:0 var(--bx-space-5);font-family:var(--bx-font-display);font-size:var(--bx-text-lg);font-weight:600;color:var(--_fg);background:var(--_bg);border:0;border-radius:var(--bx-radius-md);box-shadow:0 var(--bx-depth) 0 var(--_edge);cursor:pointer;touch-action:manipulation;transition:transform var(--bx-dur-1) var(--bx-ease),box-shadow var(--bx-dur-1) var(--bx-ease),filter var(--bx-dur-2) var(--bx-ease)}.level-preview-upload-button:hover:not(:disabled),.level-preview-save-button:hover:not(:disabled),.level-preview-update-button:hover:not(:disabled),.level-preview-reset-button:hover:not(:disabled){filter:brightness(1.06)}.level-preview-upload-button:active:not(:disabled),.level-preview-save-button:active:not(:disabled),.level-preview-update-button:active:not(:disabled),.level-preview-reset-button:active:not(:disabled){transform:translateY(var(--bx-depth));box-shadow:0 0 0 var(--_edge)}.level-preview-upload-button:focus-visible,.level-preview-save-button:focus-visible,.level-preview-update-button:focus-visible,.level-preview-reset-button:focus-visible{outline:none;box-shadow:0 var(--bx-depth) 0 var(--_edge),var(--bx-ring)}.level-preview-upload-button:disabled,.level-preview-save-button:disabled,.level-preview-update-button:disabled,.level-preview-reset-button:disabled{opacity:.45;cursor:not-allowed;filter:saturate(.4)}.level-preview-save-button{--_bg: var(--bx-success);--_edge: var(--bx-success-deep)}.level-preview-reset-button{--_bg: var(--bx-surface);--_edge: var(--bx-line-strong);--_fg: var(--bx-ink);box-shadow:inset 0 0 0 2px var(--bx-line),0 var(--bx-depth) 0 var(--_edge)}.level-preview-save-section{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--bx-space-4);margin-top:var(--bx-space-4);padding-top:var(--bx-space-4);border-top:2px solid var(--bx-line)}.level-preview-save-input-group{display:flex;align-items:center;gap:var(--bx-space-3)}.level-preview-save-input-group label{font-family:var(--bx-font-display);font-size:var(--bx-text-md);font-weight:600;color:var(--bx-ink)}.level-preview-number-input{width:120px;min-height:var(--bx-touch);padding:0 var(--bx-space-3);font-family:var(--bx-font-display);font-size:var(--bx-text-lg);font-weight:600;text-align:center;color:var(--bx-ink);background:var(--bx-surface-2);border:2px solid var(--bx-line-strong);border-radius:var(--bx-radius-md)}.level-preview-number-input::placeholder{color:var(--bx-ink-3)}.level-preview-number-input:focus{outline:none;border-color:var(--bx-accent);box-shadow:var(--bx-ring)}.level-preview-error,.level-preview-success{max-width:1400px;margin:0 auto var(--bx-space-5);padding:var(--bx-space-3) var(--bx-space-4);border-radius:var(--bx-radius-md);border:2px solid;font-weight:600}.level-preview-error{color:var(--bx-ink);background:color-mix(in oklab,var(--bx-danger) 14%,var(--bx-surface));border-color:color-mix(in oklab,var(--bx-danger) 50%,transparent)}.level-preview-error strong{color:var(--bx-danger-deep)}.level-preview-success{color:var(--bx-ink);background:color-mix(in oklab,var(--bx-success) 14%,var(--bx-surface));border-color:color-mix(in oklab,var(--bx-success) 50%,transparent)}.level-preview-success strong{color:var(--bx-success-deep)}.level-preview-info{width:100%;height:fit-content;padding:var(--bx-space-5);background:var(--bx-surface);border:2px solid var(--bx-line);border-radius:var(--bx-radius-lg)}.level-preview-info h2{margin:0 0 var(--bx-space-4);font-family:var(--bx-font-display);font-size:var(--bx-text-2xl)}.level-preview-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--bx-space-3);margin-bottom:var(--bx-space-4)}.level-preview-info-grid>div{padding:var(--bx-space-3) var(--bx-space-4);background:var(--bx-surface-2);border-radius:var(--bx-radius-sm)}.level-preview-info-grid strong{margin-right:var(--bx-space-2);color:var(--bx-ink-2)}.level-preview-content-wrapper{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--bx-space-5);width:100%;max-width:1800px;margin:0 auto}.level-preview-editor-section{display:flex;flex-direction:column;height:800px;min-height:800px;padding:var(--bx-space-3);background:var(--bx-surface);border:2px solid var(--bx-line);border-radius:var(--bx-radius-lg);box-shadow:var(--bx-shadow-2)}.level-preview-editor-header{margin-bottom:var(--bx-space-3)}.level-preview-editor-header h2{margin:0;font-family:var(--bx-font-display);font-size:var(--bx-text-xl)}.level-preview-editor{flex:1;width:100%;padding:var(--bx-space-4);font-family:var(--bx-font-mono);font-size:var(--bx-text-sm);line-height:1.55;color:var(--bx-ink);background:var(--bx-surface-2);border:2px solid var(--bx-line);border-radius:var(--bx-radius-md);box-shadow:inset 0 2px 0 var(--bx-line);resize:none;outline:none;overflow-y:auto}.level-preview-editor:focus{border-color:var(--bx-accent);box-shadow:var(--bx-ring)}.level-preview-editor::placeholder{color:var(--bx-ink-3)}.level-preview-update-button{width:64px;height:64px;padding:0;font-size:var(--bx-text-3xl);border-radius:var(--bx-radius-pill);flex-shrink:0}.level-preview-canvas{width:100%;height:800px;min-height:800px;padding:var(--bx-space-2);overflow:hidden;background:var(--bx-surface);border:2px solid var(--bx-line);border-radius:var(--bx-radius-lg);box-shadow:var(--bx-shadow-2);transition:opacity var(--bx-dur-2) var(--bx-ease)}.level-preview-canvas.loading{opacity:.5}.level-preview-canvas .game-canvas{width:100%;height:100%;border-radius:var(--bx-radius-md);overflow:hidden}.level-preview-canvas canvas{width:100%!important;height:100%!important}@media (max-width: 1400px){.level-preview-content-wrapper{grid-template-columns:1fr;grid-template-rows:auto auto auto}.level-preview-update-button{justify-self:center;margin:var(--bx-space-2) 0}.level-preview-editor-section,.level-preview-canvas{height:calc(100vh - 500px);min-height:500px}}@media (max-width: 767px){.level-preview-container,.level-preview-header{padding:var(--bx-space-4)}.level-preview-header h1{font-size:var(--bx-text-2xl)}}.level-editor-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:var(--bx-space-4);padding-top:max(var(--bx-space-4),env(safe-area-inset-top));padding-bottom:max(var(--bx-space-4),env(safe-area-inset-bottom));background:var(--bx-scrim);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:bx-fade var(--bx-dur-2) var(--bx-ease)}.level-editor-container{display:flex;flex-direction:column;width:100%;max-width:1600px;max-height:94vh;overflow:hidden;color:var(--bx-ink);font-family:var(--bx-font-body);background:var(--bx-bg);border-radius:var(--bx-radius-xl);box-shadow:var(--bx-shadow-3),0 0 0 2px var(--bx-line);animation:bx-pop var(--bx-dur-3) var(--bx-ease-spring)}.level-editor-header{position:relative;display:flex;align-items:center;justify-content:space-between;gap:var(--bx-space-3);flex-shrink:0;padding:var(--bx-space-3) var(--bx-space-5);overflow:hidden;background:radial-gradient(circle at 12% -40%,rgba(255,255,255,.28) 0,transparent 55%),linear-gradient(135deg,var(--bx-accent-strong) 0%,var(--bx-accent-deep) 100%);box-shadow:inset 0 -4px color-mix(in oklab,var(--bx-accent-deep) 80%,#000)}.level-editor-header h2{position:relative;z-index:1;margin:0;font-family:var(--bx-font-display);font-size:var(--bx-text-2xl);font-weight:700;color:#fff;text-shadow:0 2px 0 color-mix(in oklab,var(--bx-accent-deep) 85%,#000)}.level-editor-close{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;width:var(--bx-touch);height:var(--bx-touch);flex-shrink:0;color:#fff;background:#fff3;border:2px solid rgba(255,255,255,.35);border-radius:var(--bx-radius-pill);box-shadow:0 4px #00000029;cursor:pointer;touch-action:manipulation;transition:transform var(--bx-dur-1) var(--bx-ease),box-shadow var(--bx-dur-1) var(--bx-ease)}.level-editor-close:hover{background:#ffffff4d}.level-editor-close:active{transform:translateY(4px);box-shadow:0 0 #00000029}.level-editor-close:focus-visible{outline:none;box-shadow:0 0 0 4px #fff9}.level-editor-error{flex-shrink:0;margin:var(--bx-space-3) var(--bx-space-4) 0;padding:var(--bx-space-3) var(--bx-space-4);font-size:var(--bx-text-sm);font-weight:600;color:var(--bx-ink);background:color-mix(in oklab,var(--bx-danger) 14%,var(--bx-surface));border:2px solid color-mix(in oklab,var(--bx-danger) 45%,transparent);border-radius:var(--bx-radius-md)}.level-editor-loading{display:flex;align-items:center;justify-content:center;height:100%;padding:var(--bx-space-7);font-family:var(--bx-font-display);font-size:var(--bx-text-xl);font-weight:600;color:var(--bx-ink-2)}.level-editor-content{display:flex;flex:1;min-height:0;overflow:hidden}.level-editor-left{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.level-editor-left-content{flex:1;min-height:0;min-width:0;overflow-x:hidden;overflow-y:auto;padding:var(--bx-space-4) var(--bx-space-4) 0;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.level-editor-left-content::-webkit-scrollbar,.level-editor-floating-panel::-webkit-scrollbar{width:10px}.level-editor-left-content::-webkit-scrollbar-track,.level-editor-floating-panel::-webkit-scrollbar-track{background:transparent}.level-editor-left-content::-webkit-scrollbar-thumb,.level-editor-floating-panel::-webkit-scrollbar-thumb{background:var(--bx-line-strong);border-radius:var(--bx-radius-pill);border:3px solid var(--bx-bg)}.level-editor-right{width:40%;display:flex;flex-direction:column;overflow:hidden;padding:var(--bx-space-3);padding-left:0}.level-editor-right h3{flex-shrink:0;margin:0;padding:var(--bx-space-3) var(--bx-space-4);font-family:var(--bx-font-display);font-size:var(--bx-text-md);font-weight:600;color:var(--bx-ink-2)}.level-editor-preview{position:relative;z-index:1;flex:1;min-height:0;height:100%;display:flex;flex-direction:column;overflow:hidden;background:var(--bx-surface-2);border:2px solid var(--bx-line);border-radius:var(--bx-radius-lg);box-shadow:var(--bx-shadow-1)}.level-editor-preview-refresh{position:absolute;top:var(--bx-space-3);right:var(--bx-space-3);z-index:1000;display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;color:var(--bx-accent-deep);background:var(--bx-surface);border:0;border-radius:var(--bx-radius-pill);box-shadow:inset 0 0 0 2px var(--bx-line),0 4px 0 var(--bx-line-strong),var(--bx-shadow-2);cursor:pointer;touch-action:manipulation;transition:transform var(--bx-dur-1) var(--bx-ease),box-shadow var(--bx-dur-1) var(--bx-ease)}[data-theme=dark] .level-editor-preview-refresh{color:var(--bx-ink)}.level-editor-preview-refresh:hover svg{transform:rotate(-30deg)}.level-editor-preview-refresh svg{transition:transform var(--bx-dur-2) var(--bx-ease-spring)}.level-editor-preview-refresh:active{transform:translateY(4px);box-shadow:inset 0 0 0 2px var(--bx-line),0 0 0 var(--bx-line-strong),var(--bx-shadow-1)}.level-editor-preview-refresh:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--bx-line),var(--bx-ring)}.level-editor-environment-refresh{right:auto;left:var(--bx-space-3);color:var(--bx-success-deep)}[data-theme=dark] .level-editor-environment-refresh{color:var(--bx-success)}.level-editor-environment-refresh:hover svg{transform:scale(1.12)}.level-editor-preview>div{flex:1;display:flex;flex-direction:column}.level-editor-preview .game-canvas{flex:1;min-height:0;height:100%}[data-theme=dark] .level-editor-preview .game-canvas{border-color:var(--bx-surface-2)}.level-editor-preview-placeholder{flex:1;display:flex;align-items:center;justify-content:center;height:100%;min-height:0;padding:var(--bx-space-6);text-align:center;font-family:var(--bx-font-display);font-size:var(--bx-text-md);font-weight:500;color:var(--bx-ink-3)}.level-editor-preview-placeholder p{margin:0;padding:var(--bx-space-5);background:var(--bx-surface);border:2px dashed var(--bx-line-strong);border-radius:var(--bx-radius-md)}.level-editor-section{margin-bottom:var(--bx-space-4);padding:var(--bx-space-4);background:var(--bx-surface);border:2px solid var(--bx-line);border-radius:var(--bx-radius-lg);box-shadow:var(--bx-shadow-1)}.level-editor-section h3{margin:0 0 var(--bx-space-3);font-family:var(--bx-font-display);font-size:var(--bx-text-sm);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--bx-ink-3)}.level-editor-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--bx-space-3)}.level-editor-section-header h3{margin:0}.level-editor-float-button{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;color:var(--bx-ink-2);background:var(--bx-surface);border:0;border-radius:var(--bx-radius-sm);box-shadow:inset 0 0 0 2px var(--bx-line),0 3px 0 var(--bx-line-strong);cursor:pointer;touch-action:manipulation;transition:transform var(--bx-dur-1) var(--bx-ease),box-shadow var(--bx-dur-1) var(--bx-ease)}.level-editor-float-button:hover{color:var(--bx-ink);background:var(--bx-surface-2)}.level-editor-float-button:active{transform:translateY(3px);box-shadow:inset 0 0 0 2px var(--bx-line),0 0 0 var(--bx-line-strong)}.level-editor-float-button:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--bx-line),var(--bx-ring)}.level-editor-float-button svg{display:block}.level-editor-field{margin-bottom:var(--bx-space-4)}.level-editor-field:last-child{margin-bottom:0}.level-editor-field label{display:block;margin-bottom:var(--bx-space-2);font-family:var(--bx-font-display);font-size:var(--bx-text-md);font-weight:600;color:var(--bx-ink)}.level-editor-label-sub{display:block;white-space:nowrap}.level-editor-field input,.level-editor-field textarea,.level-editor-field select{width:100%;min-width:0;min-height:var(--bx-touch);padding:var(--bx-space-3) var(--bx-space-4);font-family:var(--bx-font-body);font-size:var(--bx-text-md);color:var(--bx-ink);background:var(--bx-surface-2);border:2px solid var(--bx-line-strong);border-radius:var(--bx-radius-md);box-shadow:inset 0 2px 0 var(--bx-line);transition:border-color var(--bx-dur-2) var(--bx-ease),box-shadow var(--bx-dur-2) var(--bx-ease),background var(--bx-dur-2) var(--bx-ease)}.level-editor-field textarea{line-height:1.5;resize:vertical}.level-editor-field select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:var(--bx-space-7);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237D82A6' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:18px;cursor:pointer}.level-editor-field input::placeholder,.level-editor-field textarea::placeholder{color:var(--bx-ink-3)}.level-editor-field input:hover,.level-editor-field textarea:hover,.level-editor-field select:hover{border-color:color-mix(in oklab,var(--bx-accent) 40%,var(--bx-line-strong))}.level-editor-field input:focus,.level-editor-field textarea:focus,.level-editor-field select:focus{outline:none;background-color:var(--bx-surface);border-color:var(--bx-accent);box-shadow:var(--bx-ring)}.level-editor-field-note{margin:0 0 var(--bx-space-3);font-size:var(--bx-text-sm);color:var(--bx-ink-2)}.level-editor-field-note strong{color:var(--bx-ink)}.level-editor-tips-meta{display:flex;flex-direction:column;gap:var(--bx-space-1);font-size:var(--bx-text-xs)}.level-editor-char-count{align-self:flex-end;font-family:var(--bx-font-display);font-weight:600;color:var(--bx-ink-3);font-variant-numeric:tabular-nums}.level-editor-markdown-hint{color:var(--bx-ink-2)}.level-editor-markdown-hint strong{color:var(--bx-accent-deep)}[data-theme=dark] .level-editor-markdown-hint strong{color:color-mix(in oklab,var(--bx-accent) 60%,#fff)}.level-editor-field-row{display:flex;gap:var(--bx-space-3);align-items:flex-end}.level-editor-field-row .level-editor-field{flex:1;margin-bottom:0}.level-editor-field-row button{min-height:var(--bx-touch);padding:0 var(--bx-space-4);font-family:var(--bx-font-display);font-weight:600;color:var(--bx-ink);background:var(--bx-surface);border:0;border-radius:var(--bx-radius-md);box-shadow:inset 0 0 0 2px var(--bx-line),0 4px 0 var(--bx-line-strong);cursor:pointer}.level-editor-topbar{container-type:inline-size;display:flex;flex-wrap:nowrap;align-items:center;gap:var(--bx-space-3) var(--bx-space-4);flex-shrink:0;min-width:0;padding:var(--bx-space-3) var(--bx-space-4);background:var(--bx-surface);border-bottom:2px solid var(--bx-line)}.level-editor-topbar .level-editor-name-field{display:flex;align-items:center;gap:var(--bx-space-3);flex:0 1 340px;min-width:9.5rem;max-width:340px;margin:0}.level-editor-topbar .level-editor-name-field label{margin:0;white-space:nowrap}.level-editor-topbar .level-editor-name-field input{min-height:44px;padding:0 var(--bx-space-4)}.level-editor-topbar-label{font-family:var(--bx-font-display);font-size:var(--bx-text-md);font-weight:600;color:var(--bx-ink);white-space:nowrap}.level-editor-theme-picker{display:flex;align-items:center;gap:var(--bx-space-3);flex:1 1 0;min-width:0;overflow:hidden}.level-editor-theme-chips{display:flex;gap:var(--bx-space-2);min-width:0;overflow-x:auto;padding:4px 2px 6px;scrollbar-width:none}.level-editor-theme-chips::-webkit-scrollbar{display:none}.level-editor-theme-chip{display:inline-flex;align-items:center;gap:var(--bx-space-2);flex-shrink:0;height:44px;padding:0 var(--bx-space-3) 0 4px;font-family:var(--bx-font-display);font-size:var(--bx-text-sm);font-weight:600;color:var(--bx-ink-2);background:var(--bx-surface);border:0;border-radius:var(--bx-radius-pill);box-shadow:inset 0 0 0 2px var(--bx-line),0 3px 0 var(--bx-line-strong);cursor:pointer;touch-action:manipulation;transition:transform var(--bx-dur-1) var(--bx-ease),box-shadow var(--bx-dur-1) var(--bx-ease)}.level-editor-theme-chip:hover{color:var(--bx-ink)}.level-editor-theme-chip:active{transform:translateY(3px);box-shadow:inset 0 0 0 2px var(--bx-line),0 0 0 var(--bx-line-strong)}.level-editor-theme-chip:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--bx-line),var(--bx-ring)}.level-editor-theme-chip.active{color:var(--bx-ink);background:var(--bx-accent-soft);box-shadow:inset 0 0 0 3px var(--bx-accent),0 3px 0 var(--bx-accent-deep);transform:translateY(-2px)}.theme-chip-art{position:relative;width:36px;height:36px;flex-shrink:0;overflow:hidden;border-radius:var(--bx-radius-pill);background:linear-gradient(180deg,transparent 66%,var(--_plank) 66% 80%,transparent 80%),linear-gradient(180deg,var(--_sky) 0%,var(--_horizon) 48%,var(--_ground) 48%,var(--_ground-dark) 100%);box-shadow:inset 0 0 0 2px #ffffff8c}.theme-chip-art:before{content:"";position:absolute;left:7px;top:8px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:11px solid var(--_tree)}.theme-chip-art.has-stars:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 70% 18%,#fff 0 1px,transparent 1.6px),radial-gradient(circle at 52% 30%,#fff 0 .8px,transparent 1.4px),radial-gradient(circle at 84% 34%,#FFE7A8 0 1.6px,transparent 2.4px)}.level-editor-theme-chip.active .theme-chip-art{box-shadow:inset 0 0 0 2px #fff}.level-editor-board-info{display:flex;align-items:center;gap:var(--bx-space-2);flex-shrink:0;margin-left:auto}@container (max-width: 78rem){.level-editor-topbar-label{display:none}}.level-editor-board-size{display:inline-flex;align-items:center;height:32px;padding:0 var(--bx-space-3);font-family:var(--bx-font-display);font-size:var(--bx-text-sm);font-weight:600;white-space:nowrap;color:var(--bx-ink-2);background:var(--bx-surface-2);border-radius:var(--bx-radius-pill)}.level-editor-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;color:var(--bx-ink-2);background:var(--bx-surface);border:0;border-radius:var(--bx-radius-sm);box-shadow:inset 0 0 0 2px var(--bx-line),0 3px 0 var(--bx-line-strong);cursor:pointer;touch-action:manipulation;transition:transform var(--bx-dur-1) var(--bx-ease),box-shadow var(--bx-dur-1) var(--bx-ease)}.level-editor-icon-btn:hover{color:var(--bx-ink);background:var(--bx-surface-2)}.level-editor-icon-btn:active{transform:translateY(3px);box-shadow:inset 0 0 0 2px var(--bx-line),0 0 0 var(--bx-line-strong)}.level-editor-icon-btn:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--bx-line),var(--bx-ring)}.level-editor-workbench{display:flex;align-items:stretch;gap:var(--bx-space-3);margin-bottom:var(--bx-space-4)}.level-editor-workbench .level-editor-section{margin-bottom:0}.level-editor-palette{flex:0 0 auto;padding:var(--bx-space-3)}.level-editor-palette .level-editor-section-header{margin-bottom:var(--bx-space-2)}.level-editor-palette .level-editor-float-button{width:36px;height:36px}.level-editor-board{flex:1 1 auto;align-self:stretch;min-width:0;min-height:0;width:auto;margin:0;display:flex;align-items:center;justify-content:center;padding:0;background:transparent;border:0;box-shadow:none}.level-editor-workbench:not(.tools-floating) .level-editor-board{container-type:size}.level-editor-workbench:not(.tools-floating) .level-editor-grid-wrapper{width:min(100cqb,100cqi);height:min(100cqb,100cqi);max-width:100%;flex:none;overflow:hidden}.level-editor-workbench:not(.tools-floating) .level-editor-grid{display:grid;width:100%;height:100%}.level-editor-workbench:not(.tools-floating) .level-editor-cell{width:auto;height:auto;aspect-ratio:auto;min-width:0;min-height:0}.level-editor-workbench:not(.tools-floating) .level-editor-cell>.le-token,.level-editor-workbench:not(.tools-floating) .level-editor-cell>.le-token--t8,.level-editor-workbench:not(.tools-floating) .level-editor-cell.is-start>.le-token,.level-editor-workbench:not(.tools-floating) .level-editor-cell.is-target>.le-token{--_ts: 72%}.level-editor-board>h3{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.level-editor-details{display:flex;flex-direction:column;gap:var(--bx-space-3);min-width:0;padding-bottom:var(--bx-space-4)}.level-editor-details-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));gap:var(--bx-space-3);align-items:stretch;min-width:0}.level-editor-details>.level-editor-section,.level-editor-details-row>.level-editor-section{margin-bottom:0;min-width:0;max-width:100%}.level-editor-field input[type=number]{text-align:center}.level-editor-tools{--_tw: 64px;--_cols: 4;display:grid;grid-template-columns:repeat(2,auto);gap:var(--bx-space-2) var(--bx-space-3)}.level-editor-tool-group{grid-column:1 / -1;min-width:0}.level-editor-tool-group.tool-group--eraser{grid-column:auto;--_cols: 1;--_tw: 96px}.level-editor-tool-group-label{display:flex;align-items:center;gap:6px;margin-bottom:4px;font-family:var(--bx-font-display);font-size:var(--bx-text-xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--bx-ink-2);white-space:nowrap}.level-editor-tool-group-label:before{content:"";width:10px;height:10px;flex-shrink:0;border-radius:3px;background:var(--_g, var(--bx-ink-3));box-shadow:0 2px 0 var(--_g-deep, var(--bx-line-strong))}.tool-group--field{--_cols: 4;--_g: #C08B58;--_g-deep: #8A6040}.tool-group--heights{--_cols: 4}.tool-group--path{--_g: #C08B58;--_g-deep: #8A6040}.tool-group--obstacles{--_g: #E07B39;--_g-deep: #A8521F}.tool-group--heights{--_g: #FFC233;--_g-deep: #E09A00}.tool-group--eraser{--_g: #F49AC1;--_g-deep: #C9638F}.level-editor-tool-group-items{display:grid;grid-template-columns:repeat(var(--_cols),var(--_tw));gap:6px}.level-editor-tool{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:var(--_tw);height:62px;padding:6px 2px 4px;font:inherit;color:var(--bx-ink);background:var(--bx-surface);border:0;border-radius:var(--bx-radius-sm);box-shadow:inset 0 0 0 2px var(--bx-line),0 3px 0 var(--bx-line-strong);cursor:pointer;touch-action:manipulation;transition:transform var(--bx-dur-1) var(--bx-ease),box-shadow var(--bx-dur-1) var(--bx-ease),background var(--bx-dur-2) var(--bx-ease)}.level-editor-tool:hover:not(:disabled){background:var(--bx-surface-2)}.level-editor-tool:hover:not(:disabled) .le-token{transform:translateY(-1px) rotate(-4deg)}.level-editor-tool:active:not(:disabled){transform:translateY(3px);box-shadow:inset 0 0 0 2px var(--bx-line),0 0 0 var(--bx-line-strong)}.level-editor-tool:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--bx-line),var(--bx-ring)}.tool-label{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--bx-font-display);font-size:11px;font-weight:600;line-height:1.1;text-align:center;color:var(--bx-ink)}.level-editor-tool.active{background:var(--bx-accent-soft);box-shadow:inset 0 0 0 3px var(--bx-accent),0 5px 0 var(--bx-accent-deep),0 8px 14px color-mix(in oklab,var(--bx-accent) 30%,transparent);transform:translateY(-3px)}.level-editor-tool.active .tool-label{color:var(--bx-ink)}.level-editor-tool.active .le-token{transform:scale(1.08)}.level-editor-tool.disabled,.level-editor-tool:disabled{cursor:not-allowed;pointer-events:none;background:transparent;box-shadow:inset 0 0 0 2px var(--bx-line);transform:none}.level-editor-tool.disabled .le-token,.level-editor-tool:disabled .le-token{opacity:.35;filter:grayscale(.8)}.level-editor-tool.disabled .tool-label,.level-editor-tool:disabled .tool-label{color:var(--bx-ink-3)}.level-editor-tool.disabled:after,.level-editor-tool:disabled:after{content:"";position:absolute;top:5px;right:6px;width:14px;height:14px;border-radius:var(--bx-radius-pill);background:var(--bx-success) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 10px no-repeat}.level-editor-tool-info{margin-bottom:var(--bx-space-2);padding:var(--bx-space-2) var(--bx-space-3);font-size:var(--bx-text-sm);color:var(--bx-ink-2);background:var(--bx-surface-2);border-radius:var(--bx-radius-sm)}.le-token{--_c: #9AA0B8;--_d: #6E7490;--_fg: #fff;--_ts: 34px;position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--_ts);height:var(--_ts);color:var(--_fg);background:var(--_c);border-radius:9px;box-shadow:inset 0 -3px #00000029,0 2px 0 var(--_d);transition:transform var(--bx-dur-2) var(--bx-ease-spring)}.le-token:before{content:"";position:absolute;top:3px;left:4px;right:4px;height:22%;border-radius:6px 6px 3px 3px;background:#ffffff47;pointer-events:none}.le-token svg{position:relative;width:60%;height:60%}.le-token-count{position:absolute;right:-4px;bottom:-4px;min-width:15px;height:15px;padding:0 3px;font-family:var(--bx-font-display);font-size:10px;font-weight:700;line-height:15px;text-align:center;color:#fff;background:var(--bx-ink);border-radius:var(--bx-radius-pill);box-shadow:0 0 0 2px #fff}.le-token--t1{--_c: #C08B58;--_d: #8A6040;background:repeating-linear-gradient(90deg,#c99660 0,#c99660 7px,#a87645 7px,#a87645 8.5px)}.le-token--t1 svg{opacity:0}.le-token--t12{--_c: var(--bx-success);--_d: var(--bx-success-deep);border-radius:var(--bx-radius-pill)}.le-token--t13{--_c: #fff;--_d: var(--bx-danger-deep);border-radius:var(--bx-radius-pill);background:radial-gradient(circle,var(--bx-danger) 0 17%,#fff 18% 36%,var(--bx-danger) 37% 58%,#fff 59% 76%,var(--bx-danger) 77%)}.le-token--t13 svg,.le-token--t13:before{opacity:0}.le-token--t15{--_c: #FFE7A0;--_d: var(--bx-star-deep);border-radius:var(--bx-radius-pill)}.le-token--t15 svg{width:78%;height:78%}.le-token--t16{--_c: #3E8FC2;--_d: #25628C}.le-token--t17{--_c: #2FA39A;--_d: #1D6E68}.le-token--t9{--_c: #C9914F;--_d: #8E5E2C}.le-token--t2{--_c: #B5532F;--_d: #7E3418}.le-token--t14{--_c: #9A6B45;--_d: #6A4428}.le-token--t11{--_c: #FF8A2A;--_d: #C55A08}.le-token--t10{--_c: #7A8597;--_d: #4E5868}.le-token--t7{--_c: #8E6BE0;--_d: #5E3FB0}.le-token--t3{--_c: #FFC233;--_d: #E09A00;--_fg: #3A2600}.le-token--t4{--_c: #FF9F1C;--_d: #C97700;box-shadow:inset 0 -3px #00000029,0 2px 0 var(--_d),0 4px color-mix(in oklab,var(--_d) 75%,#000)}.le-token--t5{--_c: #EE6A1E;--_d: #B14710;box-shadow:inset 0 -3px #00000029,0 2px 0 var(--_d),0 4px color-mix(in oklab,var(--_d) 80%,#000),0 6px color-mix(in oklab,var(--_d) 60%,#000)}.le-token--t6{--_c: var(--bx-move);--_d: var(--bx-move-deep)}.le-token--t8{--_c: #2B2F45;--_d: #10121F;border-radius:var(--bx-radius-pill);box-shadow:inset 0 3px 6px #0009,0 2px 0 var(--_d)}.le-token--t8:before{display:none}.le-token--t0{--_c: #F49AC1;--_d: #C9638F;--_fg: #4A1830}.level-editor-grid-wrapper{display:flex;justify-content:center;max-width:100%;overflow-x:auto;padding:var(--bx-space-2) var(--bx-space-2) var(--bx-space-3);background:color-mix(in oklab,var(--_board) 88%,#000);border-radius:var(--bx-radius-md);box-shadow:inset 0 -6px 0 var(--_side),0 3px 0 var(--_side-dark)}.level-editor-grid-wrapper::-webkit-scrollbar{height:10px}.level-editor-grid-wrapper::-webkit-scrollbar-thumb{background:var(--bx-line-strong);border-radius:var(--bx-radius-pill)}.level-editor-grid{--_cell: clamp(20px, min(calc((94vh - 390px) / 14), calc((60vw - 380px) / 14.5)), 30px);display:inline-grid;gap:2px;width:fit-content;padding:0;background:transparent}.level-editor-cell{position:relative;display:flex;align-items:center;justify-content:center;width:var(--_cell);height:var(--_cell);aspect-ratio:1 / 1;border:0;border-radius:5px;cursor:pointer;user-select:none;-webkit-user-select:none;touch-action:manipulation;transition:transform var(--bx-dur-1) var(--bx-ease),box-shadow var(--bx-dur-1) var(--bx-ease)}.level-editor-cell.cell-t0,.level-editor-cell.cell-t2,.level-editor-cell.cell-t7,.level-editor-cell.cell-t9,.level-editor-cell.cell-t10,.level-editor-cell.cell-t11,.level-editor-cell.cell-t14{background-image:radial-gradient(circle at 30% 30%,rgba(255,255,255,.16) 0 1.5px,transparent 2.5px),radial-gradient(circle at 72% 68%,rgba(0,0,0,.06) 0 1.5px,transparent 2.5px);box-shadow:inset 0 0 0 1px #0000000d}.level-editor-cell.cell-t0.cell-alt{background-image:linear-gradient(#0000000b,#0000000b),radial-gradient(circle at 30% 30%,rgba(255,255,255,.16) 0 1.5px,transparent 2.5px)}.level-editor-cell.cell-t1,.level-editor-cell.cell-t3,.level-editor-cell.cell-t4,.level-editor-cell.cell-t5,.level-editor-cell.cell-t6,.level-editor-cell.cell-t15,.level-editor-cell.is-start,.level-editor-cell.is-target{background-image:linear-gradient(180deg,rgba(255,255,255,.22) 0 2px,transparent 2px),repeating-linear-gradient(90deg,transparent 0 calc(25% - 1px),rgba(70,40,15,.28) calc(25% - 1px) 25%);box-shadow:0 2px #46280f59;z-index:1}.level-editor-cell.cell-bridge{background-image:repeating-linear-gradient(var(--_flow, 0deg),transparent 0 5px,rgba(255,255,255,.18) 5px 6px);box-shadow:inset 0 0 0 1px #143c5a40;z-index:1}.level-editor-cell.cell-bridge.bridge-h{--_flow: 0deg}.level-editor-cell.cell-bridge.bridge-v{--_flow: 90deg}.level-editor-cell.cell-bridge:before{content:"";position:absolute;pointer-events:none;border-radius:1px;background-color:#b5814f}.level-editor-cell.cell-t16.bridge-h:before{top:20%;right:-1px;bottom:20%;left:-1px;background-image:repeating-linear-gradient(90deg,transparent 0 calc(16.6% - 1px),rgba(70,40,15,.35) calc(16.6% - 1px) 16.6%);border-block:2px solid #6E4426}.level-editor-cell.cell-t16.bridge-v:before{top:-1px;right:20%;bottom:-1px;left:20%;background-image:repeating-linear-gradient(0deg,transparent 0 calc(16.6% - 1px),rgba(70,40,15,.35) calc(16.6% - 1px) 16.6%);border-inline:2px solid #6E4426}.level-editor-cell.cell-t17:before{background-color:transparent}.level-editor-cell.cell-t17.bridge-h:before{top:24%;right:0;bottom:24%;left:0;background-image:repeating-linear-gradient(90deg,#BE9A6C 0 calc(12.5% - 2px),transparent calc(12.5% - 2px) 12.5%);border-block:2px dotted #F1DDB0}.level-editor-cell.cell-t17.bridge-v:before{top:0;right:24%;bottom:0;left:24%;background-image:repeating-linear-gradient(0deg,#BE9A6C 0 calc(12.5% - 2px),transparent calc(12.5% - 2px) 12.5%);border-inline:2px dotted #F1DDB0}.level-editor-cell.cell-bridge.bridge-warn{outline:2px dashed var(--bx-warning);outline-offset:-2px}.level-editor-cell.cell-t8{box-shadow:inset 0 3px 6px #000000a6}.level-editor-cell>.le-token{--_ts: calc(var(--_cell) - 6px);border-radius:6px}.level-editor-cell>.le-token svg{width:64%;height:64%}.level-editor-cell>.le-token--t8{--_ts: calc(var(--_cell) - 8px)}.level-editor-cell>.le-token .le-token-count{right:-3px;bottom:-3px;min-width:12px;height:12px;font-size:8px;line-height:12px;padding:0 2px}.level-editor-cell.is-start{box-shadow:0 0 0 2px var(--bx-success),0 3px 0 2px var(--bx-success-deep);z-index:2}.level-editor-cell.is-target{box-shadow:0 0 0 2px var(--bx-danger),0 3px 0 2px var(--bx-danger-deep);z-index:2}.level-editor-cell.is-start>.le-token,.level-editor-cell.is-target>.le-token{--_ts: calc(var(--_cell) - 4px)}.level-editor-cell-ghost{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;display:flex;align-items:center;justify-content:center;border-radius:5px;opacity:0;pointer-events:none;transition:opacity var(--bx-dur-1) var(--bx-ease)}.level-editor-cell-ghost .le-token{--_ts: calc(var(--_cell) - 6px);border-radius:6px}.level-editor-cell-ghost .le-token svg{width:64%;height:64%}.level-editor-cell-ghost .le-token-count{display:none}.level-editor-cell-ghost.ghost--t1{background-color:var(--_plank);background-image:repeating-linear-gradient(90deg,transparent 0 calc(25% - 1px),rgba(70,40,15,.28) calc(25% - 1px) 25%)}.level-editor-cell-ghost.ghost--t0{background:color-mix(in oklab,var(--bx-danger) 45%,transparent)}@media (hover: hover){.level-editor-cell:hover{z-index:10;transform:translateY(-2px);box-shadow:0 0 0 2px #fff,0 0 0 4px var(--bx-accent),0 4px 8px #00000040}.level-editor-cell:hover .level-editor-cell-ghost{opacity:.85}.level-editor-cell:hover>.le-token{opacity:.25}}.level-editor-cell:active{transform:translateY(1px)}.level-editor-hint{display:flex;gap:var(--bx-space-2);margin:var(--bx-space-3) 0;padding:var(--bx-space-3) var(--bx-space-4);background:color-mix(in oklab,var(--bx-move) 10%,var(--bx-surface));border:2px solid color-mix(in oklab,var(--bx-move) 28%,transparent);border-radius:var(--bx-radius-md)}.level-editor-hint--floating{margin:var(--bx-space-3) 0}.level-editor-hint p{margin:0;font-size:var(--bx-text-sm);font-weight:500;line-height:1.5;color:var(--bx-ink)}.level-editor-hint strong{color:var(--bx-move-deep);font-family:var(--bx-font-display);font-weight:600}[data-theme=dark] .level-editor-hint strong{color:color-mix(in oklab,var(--bx-move) 60%,#fff)}.level-editor-hint-text{margin-top:var(--bx-space-2);font-size:var(--bx-text-sm);line-height:1.5;color:var(--bx-ink-3)}.level-editor-toggle-item{display:flex;align-items:center;justify-content:space-between;gap:var(--bx-space-4);padding:var(--bx-space-3) var(--bx-space-4);background:var(--bx-surface-2);border-radius:var(--bx-radius-md)}.level-editor-toggle-info{flex:1;min-width:0}.level-editor-toggle-title{margin-bottom:2px;font-family:var(--bx-font-display);font-size:var(--bx-text-lg);font-weight:600;color:var(--bx-ink)}.level-editor-toggle-description{font-size:var(--bx-text-sm);line-height:1.4;color:var(--bx-ink-2)}.level-editor-toggle-item .toggle-switch{position:relative;display:inline-block;width:68px;height:40px;flex-shrink:0;cursor:pointer}.level-editor-toggle-item .toggle-switch input{position:absolute;z-index:1;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.level-editor-toggle-item .toggle-slider{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--bx-surface-3);border-radius:var(--bx-radius-pill);box-shadow:inset 0 3px 0 var(--bx-line-strong),inset 0 0 0 2px var(--bx-line);transition:background var(--bx-dur-2) var(--bx-ease)}.level-editor-toggle-item .toggle-slider:before{content:"";position:absolute;top:4px;left:4px;width:32px;height:28px;background:#fff;border-radius:var(--bx-radius-pill);box-shadow:0 4px #1e224038;transition:transform var(--bx-dur-2) var(--bx-ease-spring)}.level-editor-toggle-item .toggle-slider:after{content:"";position:absolute;top:12px;left:44px;width:12px;height:7px;border-left:3px solid var(--bx-accent-deep);border-bottom:3px solid var(--bx-accent-deep);transform:rotate(-45deg) scale(0);transition:transform var(--bx-dur-2) var(--bx-ease-spring)}.level-editor-toggle-item .toggle-switch input:checked+.toggle-slider{background:var(--bx-accent);box-shadow:inset 0 3px 0 var(--bx-accent-deep)}.level-editor-toggle-item .toggle-switch input:checked+.toggle-slider:before{transform:translate(28px);box-shadow:0 4px 0 var(--bx-accent-deep)}.level-editor-toggle-item .toggle-switch input:checked+.toggle-slider:after{transform:rotate(-45deg) scale(1)}.level-editor-toggle-item .toggle-switch input:focus-visible+.toggle-slider{box-shadow:inset 0 3px 0 var(--bx-line-strong),var(--bx-ring)}.level-editor-section:has(.level-editor-import-export){container-type:inline-size}.level-editor-import-export{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--bx-space-2)}.level-editor-import-export button{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;min-width:0;padding-left:var(--bx-space-3);padding-right:var(--bx-space-3);font-size:var(--bx-text-sm)}.level-editor-import-export button span{min-width:0;overflow:hidden;text-overflow:ellipsis}@container (max-width: 22rem){.level-editor-import-export{grid-template-columns:minmax(0,1fr)}}.level-editor-actions{display:flex;align-items:center;gap:var(--bx-space-3);flex-shrink:0;padding:var(--bx-space-3) var(--bx-space-4) calc(var(--bx-space-3) + var(--bx-depth));background:var(--bx-surface);border-top:2px solid var(--bx-line)}.level-editor-actions-spacer{flex:1}.level-editor-actions .level-editor-btn-play{--_bg: var(--bx-success);--_edge: var(--bx-success-deep);min-height:52px;padding:0 var(--bx-space-6);font-size:var(--bx-text-lg)}.level-editor-actions .level-editor-btn-save{min-height:52px;padding:0 var(--bx-space-6);font-size:var(--bx-text-lg)}.level-editor-btn-primary,.level-editor-btn-secondary,.level-editor-btn-danger{--_bg: var(--bx-accent-strong);--_edge: var(--bx-accent-deep);--_fg: var(--bx-on-accent);display:inline-flex;align-items:center;justify-content:center;gap:var(--bx-space-2);min-height:var(--bx-touch);padding:0 var(--bx-space-5);font-family:var(--bx-font-display);font-size:var(--bx-text-md);font-weight:600;white-space:nowrap;color:var(--_fg);background:var(--_bg);border:0;border-radius:var(--bx-radius-md);box-shadow:0 var(--bx-depth) 0 var(--_edge);cursor:pointer;touch-action:manipulation;transition:transform var(--bx-dur-1) var(--bx-ease),box-shadow var(--bx-dur-1) var(--bx-ease),filter var(--bx-dur-2) var(--bx-ease)}.level-editor-btn-secondary{--_bg: var(--bx-surface);--_edge: var(--bx-line-strong);--_fg: var(--bx-ink);box-shadow:inset 0 0 0 2px var(--bx-line),0 var(--bx-depth) 0 var(--_edge)}.level-editor-btn-danger{--_bg: var(--bx-danger);--_edge: var(--bx-danger-deep)}.level-editor-btn-primary:hover:not(:disabled),.level-editor-btn-danger:hover:not(:disabled){filter:brightness(1.06)}.level-editor-btn-secondary:hover:not(:disabled){background:var(--bx-surface-2)}.level-editor-btn-primary:active:not(:disabled),.level-editor-btn-danger:active:not(:disabled){transform:translateY(var(--bx-depth));box-shadow:0 0 0 var(--_edge)}.level-editor-btn-secondary:active:not(:disabled){transform:translateY(var(--bx-depth));box-shadow:inset 0 0 0 2px var(--bx-line),0 0 0 var(--_edge)}.level-editor-btn-primary:focus-visible,.level-editor-btn-danger:focus-visible{outline:none;box-shadow:0 var(--bx-depth) 0 var(--_edge),var(--bx-ring)}.level-editor-btn-secondary:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--bx-line),0 var(--bx-depth) 0 var(--_edge),var(--bx-ring)}.level-editor-btn-primary:disabled,.level-editor-btn-secondary:disabled,.level-editor-btn-danger:disabled{opacity:.45;cursor:not-allowed;filter:saturate(.4)}.level-editor-floating-panel{position:fixed;top:50%;left:50%;z-index:10001;max-width:90vw;max-height:90vh;overflow:auto;padding:var(--bx-space-4);color:var(--bx-ink);background:var(--bx-surface);border-radius:var(--bx-radius-lg);box-shadow:var(--bx-shadow-3),0 0 0 2px var(--bx-line);transform:translate(-50%,-50%);animation:floatIn var(--bx-dur-3) var(--bx-ease-spring)}.level-editor-floating-panel:active{box-shadow:var(--bx-shadow-3),0 0 0 3px var(--bx-accent)}@keyframes floatIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.95)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.level-editor-floating-header{display:flex;align-items:center;justify-content:space-between;margin:calc(-1 * var(--bx-space-2)) calc(-1 * var(--bx-space-2)) var(--bx-space-2);padding:var(--bx-space-2);border-radius:var(--bx-radius-md);user-select:none;-webkit-user-select:none;touch-action:none;transition:background var(--bx-dur-2) var(--bx-ease)}.level-editor-floating-header:hover{background:var(--bx-surface-2)}.level-editor-floating-header:active{background:var(--bx-surface-3)}.level-editor-floating-title{display:flex;align-items:center;gap:var(--bx-space-2)}.level-editor-drag-handle{color:var(--bx-ink-3)}.level-editor-floating-header h3{margin:0;font-family:var(--bx-font-display);font-size:var(--bx-text-lg);font-weight:600;color:var(--bx-ink)}.level-editor-floating-close{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;color:var(--bx-ink-2);background:var(--bx-surface);border:0;border-radius:var(--bx-radius-pill);box-shadow:inset 0 0 0 2px var(--bx-line),0 3px 0 var(--bx-line-strong);cursor:pointer;touch-action:manipulation;transition:transform var(--bx-dur-1) var(--bx-ease),box-shadow var(--bx-dur-1) var(--bx-ease)}.level-editor-floating-close:hover{color:var(--bx-ink);background:var(--bx-surface-2)}.level-editor-floating-close:active{transform:translateY(3px);box-shadow:inset 0 0 0 2px var(--bx-line),0 0 0 var(--bx-line-strong)}.level-editor-floating-close:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--bx-line),var(--bx-ring)}@media (max-height: 820px){.level-editor-container{max-height:96vh}.level-editor-header{padding:var(--bx-space-2) var(--bx-space-4)}.level-editor-header h2{font-size:var(--bx-text-xl)}.level-editor-topbar{padding-top:var(--bx-space-2);padding-bottom:var(--bx-space-2)}.level-editor-left-content{padding-top:var(--bx-space-3)}.level-editor-section{padding:var(--bx-space-3)}.level-editor-actions{padding-top:var(--bx-space-2);padding-bottom:calc(var(--bx-space-2) + var(--bx-depth))}.level-editor-grid{--_cell: clamp(20px, min(calc((96vh - 360px) / 14), calc((60vw - 380px) / 14.5)), 30px)}}@media (max-width: 1280px){.level-editor-tools{--_cols: 3;--_tw: 62px}.tool-group--field,.tool-group--heights{--_cols: 4}.level-editor-tool{padding-left:1px;padding-right:1px}.tool-label{font-size:10.5px;letter-spacing:-.01em}.level-editor-grid{--_cell: clamp(20px, min(calc((94vh - 340px) / 14), calc((60vw - 340px) / 14.5)), 30px)}.level-editor-left-content{padding-left:var(--bx-space-3);padding-right:var(--bx-space-3)}.level-editor-topbar .level-editor-name-field{flex-basis:280px}}@media (max-width: 1100px){.level-editor-right{width:36%}.level-editor-grid{--_cell: clamp(18px, min(calc((94vh - 340px) / 14), calc((64vw - 330px) / 14.5)), 28px)}}@media (max-width: 900px),(orientation: portrait) and (max-width: 1100px){.level-editor-container{max-height:96vh}.level-editor-content{flex-direction:column;overflow-y:auto}.level-editor-left,.level-editor-left-content{overflow:visible}.level-editor-right{order:-1;width:100%;height:30vh;min-height:220px;flex-shrink:0;padding:var(--bx-space-3) var(--bx-space-3) 0}.level-editor-workbench{flex-direction:column;align-items:stretch}.level-editor-workbench:not(.tools-floating) .level-editor-board{container-type:normal;align-items:stretch}.level-editor-workbench:not(.tools-floating) .level-editor-grid-wrapper{width:auto;height:auto;max-width:100%;overflow-x:auto}.level-editor-workbench:not(.tools-floating) .level-editor-grid{display:inline-grid;width:fit-content;height:auto}.level-editor-workbench:not(.tools-floating) .level-editor-cell{width:var(--_cell);height:var(--_cell)}.level-editor-workbench:not(.tools-floating) .level-editor-cell>.le-token{--_ts: calc(var(--_cell) - 6px)}.level-editor-tools{display:flex;flex-wrap:wrap;gap:var(--bx-space-2) var(--bx-space-4)}.level-editor-tool-group-items{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:var(--_tw)}.tool-group--field .level-editor-tool-group-items{grid-template-columns:repeat(4,var(--_tw));grid-auto-flow:row}.level-editor-grid{--_cell: 30px}}@media (max-width: 768px){.level-editor-overlay{padding:var(--bx-space-2)}.level-editor-topbar .level-editor-name-field{flex-basis:11rem;min-width:0}.level-editor-left-content{padding:var(--bx-space-3) var(--bx-space-3) 0}.level-editor-field-row{flex-direction:column;align-items:stretch}.level-editor-grid{--_cell: 20px;gap:2px}.level-editor-actions{flex-wrap:wrap}.level-editor-actions-spacer{display:none}.level-editor-actions>button{flex:1 1 auto}.level-editor-floating-panel{max-width:95vw;padding:var(--bx-space-3)}}@media (max-width: 480px){.level-editor-grid{--_cell: 18px}.level-editor-cell>.le-token svg{display:none}}.app{--_hdr-top: var(--bx-accent-strong);--_hdr-bottom: color-mix(in oklab, var(--bx-accent-strong) 88%, #0b1030);--_hdr-ledge: var(--bx-accent-deep);--_hdr-btn: 44px;--_on-hdr-glass: rgba(255, 255, 255, .16);--_on-hdr-glass-hover: rgba(255, 255, 255, .26);--_on-hdr-line: rgba(255, 255, 255, .28);--_on-hdr-edge: rgba(8, 10, 40, .28);--_panel-w: clamp(296px, 30vw, 360px);--_gutter: var(--bx-space-3);display:flex;flex-direction:column;height:100vh;height:100dvh;width:100vw;position:relative;overflow:hidden;background-color:var(--bx-bg);background-image:var(--bx-bg-pattern);background-size:18px 18px;color:var(--bx-ink);font-family:var(--bx-font-body)}[data-theme=dark] .app{--_hdr-top: color-mix(in oklab, var(--bx-accent-strong) 88%, #0b1030);--_hdr-bottom: color-mix(in oklab, var(--bx-accent-strong) 76%, #0b1030);--_hdr-ledge: color-mix(in oklab, var(--bx-accent-deep) 70%, #05061a)}.app-header{position:relative;z-index:100;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:var(--bx-space-4);padding:var(--bx-space-2) var(--_gutter);padding-top:max(env(safe-area-inset-top,0px) + var(--bx-space-2),var(--bx-space-2));padding-left:max(env(safe-area-inset-left,0px) + var(--_gutter),var(--_gutter));padding-right:max(env(safe-area-inset-right,0px) + var(--_gutter),var(--_gutter));color:var(--bx-on-accent);background-color:var(--_hdr-bottom);background-image:radial-gradient(circle at 1px 1px,rgba(255,255,255,.13) 1.2px,transparent 0),linear-gradient(180deg,var(--_hdr-top) 0%,var(--_hdr-bottom) 100%);background-size:16px 16px,100% 100%;border-bottom:4px solid var(--_hdr-ledge);box-shadow:var(--bx-shadow-1)}.header-left{display:flex;align-items:center;gap:var(--bx-space-3);min-width:0;flex:1 1 auto}.header-right{display:flex;align-items:center;gap:var(--bx-space-2);flex-wrap:nowrap;flex-shrink:0}.header-sep{width:2px;height:24px;margin:0 var(--bx-space-1);border-radius:var(--bx-radius-pill);background:var(--_on-hdr-line);flex-shrink:0}.bloxxy-logo{height:var(--_hdr-btn);width:auto;max-width:160px;object-fit:contain;padding:var(--bx-space-1) var(--bx-space-2);background:#fff;border-radius:var(--bx-radius-sm);box-shadow:0 3px 0 var(--_on-hdr-edge);flex-shrink:0;transition:transform var(--bx-dur-2) var(--bx-ease-spring)}.bloxxy-logo:hover{transform:rotate(-2deg) scale(1.03)}.header-divider{display:none}.header-brand-title{font-family:"Orbitron",var(--bx-font-display);font-size:var(--bx-text-xl);font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:var(--bx-on-accent);text-shadow:0 2px 0 var(--_on-hdr-edge);margin:0;flex-shrink:0}.header-title{margin:0;min-width:0;font-family:var(--bx-font-display);font-size:var(--bx-text-xl);font-weight:600;line-height:1.15;letter-spacing:.005em;color:var(--bx-on-accent);text-shadow:0 2px 0 var(--_on-hdr-edge);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-subtitle{font-family:var(--bx-font-body);font-size:var(--bx-text-sm);color:color-mix(in oklab,var(--bx-on-accent) 82%,transparent)}.custom-level-record-chip{display:inline-block;margin-left:var(--bx-space-2);padding:1px 8px;border-radius:var(--bx-radius-pill);background:color-mix(in oklab,var(--bx-on-accent) 18%,transparent);color:var(--bx-on-accent);font-weight:600;white-space:nowrap}.demo-badge{display:inline-flex;align-items:center;gap:var(--bx-space-2);height:36px;padding:0 var(--bx-space-4);border-radius:var(--bx-radius-pill);background:var(--bx-star);color:#3a2600;font-family:var(--bx-font-display);font-size:var(--bx-text-sm);font-weight:600;box-shadow:0 3px 0 var(--bx-star-deep);cursor:help;white-space:nowrap}.app-header .level-selector-button{display:inline-flex;align-items:baseline;gap:var(--bx-space-1);height:var(--_hdr-btn);padding:0 var(--bx-space-4);background:var(--bx-surface);color:var(--bx-ink);border:0;border-radius:var(--bx-radius-pill);font-family:var(--bx-font-display);font-size:var(--bx-text-md);font-weight:600;line-height:var(--_hdr-btn);box-shadow:0 3px 0 var(--_on-hdr-edge);transition:transform var(--bx-dur-1) var(--bx-ease),box-shadow var(--bx-dur-1) var(--bx-ease)}.app-header .level-selector-button:before{content:"Welt";margin-right:var(--bx-space-1);font-weight:500;color:var(--bx-ink-2)}.app-header .level-selector-button .level-label{font-size:var(--bx-text-lg);font-weight:700;color:var(--bx-accent-deep)}[data-theme=dark] .app-header .level-selector-button .level-label{color:var(--bx-accent)}.app-header .level-selector-button .level-count{opacity:1;color:var(--bx-ink-3);font-weight:500}.app-header .level-selector-button:hover{background:var(--bx-surface);color:var(--bx-ink);filter:brightness(1.03)}.app-header .level-selector-button:active{transform:translateY(3px);box-shadow:0 0 0 var(--_on-hdr-edge)}.app-header .level-selector-button:focus-visible{outline:3px solid #ffffff;outline-offset:2px}.header-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--bx-space-2);height:44px;padding:0 var(--bx-space-4);background:var(--bx-surface);color:var(--bx-ink);border:0;border-radius:var(--bx-radius-sm);font-family:var(--bx-font-display);font-size:var(--bx-text-md);font-weight:600;white-space:nowrap;cursor:pointer;position:relative;box-shadow:inset 0 0 0 2px var(--bx-line),0 3px 0 var(--bx-line-strong);transition:transform var(--bx-dur-1) var(--bx-ease),box-shadow var(--bx-dur-1) var(--bx-ease),background-color var(--bx-dur-2) var(--bx-ease);-webkit-tap-highlight-color:transparent;touch-action:manipulation}.header-button:active:not(:disabled){transform:translateY(3px);box-shadow:inset 0 0 0 2px var(--bx-line),0 0 0 var(--bx-line-strong)}.header-button:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--bx-line),var(--bx-ring)}.header-button:disabled,.header-button.disabled{opacity:.45;cursor:not-allowed}.header-button svg{flex-shrink:0}.button-text{display:inline}.app-header .header-button,.app-header .audio-button,.app-header .close-button{height:var(--_hdr-btn);min-width:var(--_hdr-btn);background:var(--_on-hdr-glass);color:var(--bx-on-accent);border:0;border-radius:var(--bx-radius-sm);box-shadow:inset 0 0 0 2px var(--_on-hdr-line),0 3px 0 var(--_on-hdr-edge)}.app-header .header-button:hover:not(:disabled),.app-header .audio-button:hover,.app-header .close-button:hover{background:var(--_on-hdr-glass-hover);color:var(--bx-on-accent)}.app-header .header-button:active:not(:disabled),.app-header .audio-button:active,.app-header .close-button:active{transform:translateY(3px);box-shadow:inset 0 0 0 2px var(--_on-hdr-line),0 0 0 var(--_on-hdr-edge)}.app-header .header-button:focus-visible,.app-header .audio-button:focus-visible,.app-header .close-button:focus-visible{outline:3px solid #ffffff;outline-offset:2px}.app-header .header-button:disabled,.app-header .header-button.disabled{opacity:.5;background:var(--_on-hdr-glass)}.fullscreen-button,.attributions-button,.logout-button{padding:0;width:44px;min-width:44px}.app-header .fullscreen-button,.app-header .attributions-button,.app-header .logout-button{width:var(--_hdr-btn);padding:0}.app-header .logout-button:hover{background:var(--bx-danger);box-shadow:inset 0 0 0 2px transparent,0 3px 0 var(--bx-danger-deep)}.close-button{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;background:var(--bx-surface);color:var(--bx-ink-2);border:0;border-radius:var(--bx-radius-pill);cursor:pointer;box-shadow:inset 0 0 0 2px var(--bx-line),0 3px 0 var(--bx-line-strong);transition:transform var(--bx-dur-1) var(--bx-ease),background-color var(--bx-dur-2) var(--bx-ease)}.app-header .close-button{width:var(--_hdr-btn);border-radius:var(--bx-radius-pill)}.app-content{display:flex;flex:1;gap:var(--_gutter);padding:var(--_gutter);padding-left:max(env(safe-area-inset-left,0px) + var(--_gutter),var(--_gutter));padding-right:max(env(safe-area-inset-right,0px) + var(--_gutter),var(--_gutter));padding-bottom:max(env(safe-area-inset-bottom,0px) + var(--bx-space-1),var(--bx-space-1));overflow:hidden;min-height:0}.left-panel{width:var(--_panel-w);max-width:var(--_panel-w);flex-shrink:0;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;scroll-behavior:smooth;background:var(--bx-surface);border:2px solid var(--bx-line);border-radius:var(--bx-radius-lg);box-shadow:var(--bx-shadow-1);margin-bottom:18px}.left-panel::-webkit-scrollbar{width:8px}.left-panel::-webkit-scrollbar-track{background:transparent}.left-panel::-webkit-scrollbar-thumb{background:var(--bx-line-strong);border-radius:var(--bx-radius-pill)}.left-panel::-webkit-scrollbar-thumb:hover{background:var(--bx-accent)}.game-area{flex:1 1 0;min-width:0;min-height:0;display:flex;flex-direction:column;position:relative;padding:0;background:transparent}.floating-attempts-counter,.coin-counter,.floating-help-btn{position:absolute;top:var(--bx-space-3);z-index:50;display:inline-flex;align-items:center;justify-content:center;gap:var(--bx-space-2);height:44px;padding:0 var(--bx-space-3);font-family:var(--bx-font-display);font-weight:600;color:var(--bx-ink);background:color-mix(in oklab,var(--bx-surface) 90%,transparent);backdrop-filter:blur(10px) saturate(160%);-webkit-backdrop-filter:blur(10px) saturate(160%);border:0;border-radius:var(--bx-radius-pill);box-shadow:inset 0 0 0 2px var(--bx-line),0 4px 0 var(--bx-line-strong),var(--bx-shadow-2);user-select:none;-webkit-user-select:none}.floating-attempts-counter{left:var(--bx-space-3);min-width:44px;color:var(--bx-ink-2)}.floating-attempts-counter svg{color:var(--bx-ink-3);flex-shrink:0}.attempts-count{font-size:var(--bx-text-lg);line-height:1;font-weight:700;color:var(--bx-ink);font-variant-numeric:tabular-nums}.coin-counter{left:50%;transform:translate(-50%);min-width:88px;padding:0 var(--bx-space-4) 0 var(--bx-space-2);background:var(--bx-coin);color:#3a2600;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:inset 0 0 0 2px #ffffff73,0 4px 0 var(--bx-star-deep),var(--bx-shadow-2);transition:background-color var(--bx-dur-2) var(--bx-ease)}.coin-counter.all-collected{background:var(--bx-star);animation:bx-app-coin-pop var(--bx-dur-3) var(--bx-ease-spring)}@keyframes bx-app-coin-pop{0%,to{transform:translate(-50%) scale(1)}50%{transform:translate(-50%) scale(1.14)}}.coin-icon-svg{flex-shrink:0;filter:drop-shadow(0 1px 0 rgba(120,70,0,.35));animation:bx-app-coin-float 2.4s ease-in-out infinite}@keyframes bx-app-coin-float{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.coin-count{font-size:var(--bx-text-lg);line-height:1;font-weight:700;color:#3a2600;font-variant-numeric:tabular-nums}.check-mark{flex-shrink:0;color:var(--bx-success-deep);animation:bx-pop var(--bx-dur-3) var(--bx-ease-spring)}.floating-help-btn{right:var(--bx-space-3);width:44px;padding:0;color:var(--bx-accent-deep);cursor:pointer;transition:transform var(--bx-dur-1) var(--bx-ease),box-shadow var(--bx-dur-1) var(--bx-ease);-webkit-tap-highlight-color:transparent;touch-action:manipulation}[data-theme=dark] .floating-help-btn{color:var(--bx-accent)}.floating-help-btn svg{flex-shrink:0}.floating-help-btn:hover:not(:disabled){background:var(--bx-surface)}.floating-help-btn:active:not(:disabled){transform:translateY(4px);box-shadow:inset 0 0 0 2px var(--bx-line),0 0 0 var(--bx-line-strong),var(--bx-shadow-1)}.floating-help-btn:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--bx-line),0 4px 0 var(--bx-line-strong),var(--bx-ring)}.floating-help-btn:disabled{opacity:.55;cursor:not-allowed}.coins-collected-box{display:flex;align-items:center;gap:var(--bx-space-3);padding:var(--bx-space-3) var(--bx-space-4);background:color-mix(in oklab,var(--bx-coin) 18%,var(--bx-surface));border:2px solid color-mix(in oklab,var(--bx-coin) 55%,transparent);border-radius:var(--bx-radius-md);animation:bx-pop var(--bx-dur-3) var(--bx-ease-spring)}.coins-info{flex:1;display:flex;align-items:center;font-family:var(--bx-font-display);font-size:var(--bx-text-md);font-weight:600;color:var(--bx-ink)}.app .control-buttons{display:none}.btn-primary,.btn-secondary{--_bg: var(--bx-accent-strong);--_edge: var(--bx-accent-deep);--_fg: var(--bx-on-accent);display:inline-flex;align-items:center;justify-content:center;gap:var(--bx-space-2);min-height:var(--bx-touch);padding:0 var(--bx-space-5);font-family:var(--bx-font-display);font-size:var(--bx-text-md);font-weight:600;letter-spacing:.01em;white-space:nowrap;color:var(--_fg);background:var(--_bg);border:0;border-radius:var(--bx-radius-md);box-shadow:0 var(--bx-depth) 0 var(--_edge);cursor:pointer;position:relative;transition:transform var(--bx-dur-1) var(--bx-ease),box-shadow var(--bx-dur-1) var(--bx-ease),filter var(--bx-dur-2) var(--bx-ease);-webkit-tap-highlight-color:transparent;touch-action:manipulation}.btn-secondary{--_bg: var(--bx-surface);--_edge: var(--bx-line-strong);--_fg: var(--bx-ink);box-shadow:inset 0 0 0 2px var(--bx-line),0 var(--bx-depth) 0 var(--_edge)}.btn-primary:hover:not(:disabled),.btn-secondary:hover:not(:disabled){filter:brightness(1.05)}.btn-primary:active:not(:disabled){transform:translateY(var(--bx-depth));box-shadow:0 0 0 var(--_edge)}.btn-secondary:active:not(:disabled){transform:translateY(var(--bx-depth));box-shadow:inset 0 0 0 2px var(--bx-line),0 0 0 var(--_edge)}.btn-primary:focus-visible{outline:none;box-shadow:0 var(--bx-depth) 0 var(--_edge),var(--bx-ring)}.btn-secondary:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--bx-line),0 var(--bx-depth) 0 var(--_edge),var(--bx-ring)}.btn-primary:disabled,.btn-secondary:disabled{opacity:.45;cursor:not-allowed;filter:saturate(.4)}.btn-icon{display:inline-flex;align-items:center;flex-shrink:0}.app-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--bx-space-2);height:18px;flex-shrink:0;padding:0 var(--bx-space-2);font-family:var(--bx-font-body);font-size:.625rem;color:var(--bx-ink-3);background:transparent;white-space:nowrap;overflow:hidden}.version-badge-footer{padding-left:var(--bx-space-2);border-left:1px solid var(--bx-line-strong);font-variant-numeric:tabular-nums;color:var(--bx-ink-3)}@media (hover: none) and (pointer: coarse){.app{--_hdr-btn: var(--bx-touch);overscroll-behavior:none}.app-content{overscroll-behavior:none}.left-panel{overscroll-behavior:contain}.floating-attempts-counter,.coin-counter,.floating-help-btn{height:var(--bx-touch)}.floating-help-btn{width:var(--bx-touch)}.app button{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.command-panel,.function-panel,.command-buttons,.command-slots{-webkit-user-select:none;user-select:none;overscroll-behavior:none}}@media screen and (max-width: 1194px){.app{--_gutter: var(--bx-space-2)}.app-content{gap:var(--bx-space-2)}.header-title{font-size:var(--bx-text-lg)}}@media screen and (max-width: 1023px){.app-header .header-button .button-text{display:none}.app-header .header-button{width:var(--_hdr-btn);padding:0;gap:0}.header-sep{margin:0}}@media screen and (min-width: 700px) and (max-width: 1024px) and (orientation: portrait){.app{--_panel-w: 300px}.header-title{font-size:var(--bx-text-md)}}@media screen and (max-width: 899px){.header-brand-title{font-size:var(--bx-text-lg)}.app-header .level-selector-button:before{display:none}.app{--_panel-w: 280px}}@media screen and (max-width: 699px){.app{height:100vh;height:100dvh;--_panel-w: 100%}.app-content{flex-direction:column}.left-panel{width:100%;max-width:100%;max-height:45vh;margin-bottom:0}.header-title,.bloxxy-logo,.header-brand-title{display:none}.header-right{gap:var(--bx-space-1)}.header-sep{display:none}.app-footer{justify-content:center}}@media screen and (max-width: 599px){.left-panel{max-height:42vh}.app{--_hdr-btn: 40px}.app-header{justify-content:center}.header-left{display:none}}@media screen and (max-width: 479px){.left-panel{max-height:40vh}.app{--_hdr-btn: 36px}.app-header .level-selector-button{padding:0 var(--bx-space-3)}}@media screen and (max-width: 899px) and (orientation: landscape) and (min-height: 400px){.app-content{flex-direction:row}.left-panel{width:var(--_panel-w);max-width:40%;max-height:none;margin-bottom:18px}}@media screen and (max-height: 500px){.app{--_hdr-btn: 36px;--_gutter: var(--bx-space-2)}.app-header{padding-top:max(env(safe-area-inset-top,0px) + var(--bx-space-1),var(--bx-space-1));padding-bottom:var(--bx-space-1);border-bottom-width:3px}.app-header .header-button .button-text,.header-title,.header-sep{display:none}.app-header .header-button{width:var(--_hdr-btn);padding:0;gap:0}.bloxxy-logo{height:var(--_hdr-btn)}.floating-attempts-counter,.coin-counter,.floating-help-btn{height:36px;top:var(--bx-space-2)}.floating-help-btn{width:36px}.floating-attempts-counter{left:var(--bx-space-2)}.floating-help-btn{right:var(--bx-space-2)}}.custom-level-manager{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:var(--bx-space-4);padding-top:max(var(--bx-space-4),env(safe-area-inset-top));padding-bottom:max(var(--bx-space-4),env(safe-area-inset-bottom));background:var(--bx-scrim);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:bx-fade var(--bx-dur-2) var(--bx-ease)}.custom-level-modal{display:flex;flex-direction:column;width:100%;max-width:920px;height:min(640px,85vh);max-height:90vh;overflow:hidden;color:var(--bx-ink);font-family:var(--bx-font-body);background:var(--bx-bg);border-radius:var(--bx-radius-xl);box-shadow:var(--bx-shadow-3),0 0 0 2px var(--bx-line);animation:bx-pop var(--bx-dur-3) var(--bx-ease-spring)}.custom-level-manager-header{position:relative;display:flex;align-items:center;justify-content:space-between;gap:var(--bx-space-3);flex-shrink:0;padding:var(--bx-space-4) var(--bx-space-5);overflow:hidden;background:radial-gradient(circle at 12% -40%,rgba(255,255,255,.28) 0,transparent 55%),linear-gradient(135deg,var(--bx-accent-strong) 0%,var(--bx-accent-deep) 100%);box-shadow:inset 0 -4px color-mix(in oklab,var(--bx-accent-deep) 80%,#000)}.custom-level-manager-header h2{position:relative;z-index:1;margin:0;font-family:var(--bx-font-display);font-size:var(--bx-text-2xl);font-weight:700;color:#fff;text-shadow:0 2px 0 color-mix(in oklab,var(--bx-accent-deep) 85%,#000)}.custom-level-manager-actions{position:relative;z-index:1;display:flex;align-items:center;gap:var(--bx-space-3)}.custom-level-manager-actions .header-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--bx-space-2);min-height:var(--bx-touch);padding:0 var(--bx-space-4);font-family:var(--bx-font-display);font-size:var(--bx-text-md);font-weight:600;white-space:nowrap;color:#fff;background:#fff3;border:2px solid rgba(255,255,255,.4);border-radius:var(--bx-radius-md);box-shadow:0 4px #00000029;cursor:pointer;touch-action:manipulation;transition:transform var(--bx-dur-1) var(--bx-ease),box-shadow var(--bx-dur-1) var(--bx-ease),background var(--bx-dur-2) var(--bx-ease)}.custom-level-manager-actions .header-button:hover{background:#ffffff4d}.custom-level-manager-actions .header-button:active{transform:translateY(4px);box-shadow:0 0 #00000029}.custom-level-manager-actions .header-button:focus-visible{outline:none;box-shadow:0 0 0 4px #fff9}.custom-level-manager-actions .header-button-primary{color:var(--bx-accent-deep);background:#fff;border-color:#fff;box-shadow:0 4px color-mix(in oklab,var(--bx-accent-deep) 80%,#000)}.custom-level-manager-actions .header-button-primary:hover{background:#fff;filter:brightness(1.04)}.custom-level-manager-actions .header-button-primary:active{box-shadow:0 0 0 transparent}.custom-level-tabs{display:flex;gap:var(--bx-space-1);flex-shrink:0;margin:var(--bx-space-4) var(--bx-space-5) 0;padding:var(--bx-space-1);background:var(--bx-surface-3);border-radius:var(--bx-radius-pill);box-shadow:inset 0 2px 0 var(--bx-line)}.custom-level-tab{flex:1 1 0;min-height:44px;padding:0 var(--bx-space-4);font-family:var(--bx-font-display);font-size:var(--bx-text-md);font-weight:600;white-space:nowrap;color:var(--bx-ink-2);background:transparent;border:0;border-radius:var(--bx-radius-pill);cursor:pointer;touch-action:manipulation;transition:background var(--bx-dur-2) var(--bx-ease),color var(--bx-dur-2) var(--bx-ease)}.custom-level-tab:hover:not(.active){color:var(--bx-ink)}.custom-level-tab.active{color:var(--bx-accent-deep);background:var(--bx-surface);box-shadow:0 3px 0 var(--bx-line-strong),var(--bx-shadow-1)}[data-theme=dark] .custom-level-tab.active{color:var(--bx-ink)}.custom-level-tab:focus-visible{outline:none;box-shadow:var(--bx-ring)}.custom-level-content{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.custom-level-error{flex-shrink:0;margin:var(--bx-space-4) var(--bx-space-5) 0;padding:var(--bx-space-3) var(--bx-space-4);font-weight:600;color:var(--bx-ink);background:color-mix(in oklab,var(--bx-danger) 14%,var(--bx-surface));border:2px solid color-mix(in oklab,var(--bx-danger) 45%,transparent);border-radius:var(--bx-radius-md)}.custom-level-loading{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--bx-space-4);padding:var(--bx-space-7)}.custom-level-loading p{margin:0;font-family:var(--bx-font-display);font-size:var(--bx-text-lg);font-weight:500;color:var(--bx-ink-2)}.custom-level-spinner{width:52px;height:52px;border:6px solid var(--bx-surface-3);border-top-color:var(--bx-accent);border-radius:var(--bx-radius-pill);animation:custom-level-spin .9s linear infinite}@keyframes custom-level-spin{to{transform:rotate(360deg)}}.custom-level-empty{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--bx-space-2);padding:var(--bx-space-7) var(--bx-space-6);text-align:center}.custom-level-empty p{margin:0 0 var(--bx-space-3);font-family:var(--bx-font-display);font-size:var(--bx-text-xl);font-weight:500;color:var(--bx-ink)}.custom-level-empty .custom-level-empty-hint{margin:0;font-family:var(--bx-font-body);font-size:var(--bx-text-md);color:var(--bx-ink-3)}.custom-level-list{flex:1;min-height:0;overflow-y:auto;padding:var(--bx-space-4) var(--bx-space-5) var(--bx-space-5);-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.custom-level-list::-webkit-scrollbar{width:10px}.custom-level-list::-webkit-scrollbar-track{background:transparent}.custom-level-list::-webkit-scrollbar-thumb{background:var(--bx-line-strong);border-radius:var(--bx-radius-pill);border:3px solid var(--bx-bg)}.custom-level-item{--_world: var(--bx-accent-strong);--_world-deep: var(--bx-accent-deep);--_world-fg: #fff;display:flex;align-items:center;gap:var(--bx-space-4);margin-bottom:var(--bx-space-3);padding:var(--bx-space-3) var(--bx-space-4) var(--bx-space-3) var(--bx-space-3);background:var(--bx-surface);border:2px solid var(--bx-line);border-radius:var(--bx-radius-lg);box-shadow:0 4px 0 var(--bx-line-strong)}.custom-level-theme-forest{--_world: #3FA35B;--_world-deep: #2A7A40}.custom-level-theme-winter{--_world: #9FD3F5;--_world-deep: #5FA6D6;--_world-fg: #13345A}.custom-level-theme-rainy{--_world: #6C86B8;--_world-deep: #4A6190}.custom-level-theme-night{--_world: #3B3F86;--_world-deep: #262A5E}.custom-level-theme-desert{--_world: #F2C46B;--_world-deep: #C9952F;--_world-fg: #3A2600}.custom-level-theme-cave{--_world: #8A7464;--_world-deep: #5F4E41}.custom-level-theme-beach{--_world: #4FD1C5;--_world-deep: #2A9F95;--_world-fg: #0E3A36}.custom-level-item-thumb{position:relative;display:flex;align-items:center;justify-content:center;width:64px;height:64px;flex-shrink:0;font-family:var(--bx-font-display);font-size:var(--bx-text-2xl);font-weight:700;color:var(--_world-fg);background:linear-gradient(135deg,rgba(255,255,255,.28) 0 30%,transparent 30%),var(--_world);border-radius:var(--bx-radius-md);box-shadow:0 4px 0 var(--_world-deep);overflow:hidden}.custom-level-item-thumb:after{content:"";position:absolute;right:6px;bottom:6px;width:14px;height:14px;border-radius:4px;background:#ffffff4d}.custom-level-item-info{flex:1;min-width:0}.custom-level-item-info h3{margin:0 0 2px;font-family:var(--bx-font-display);font-size:var(--bx-text-lg);font-weight:600;color:var(--bx-ink);overflow-wrap:anywhere}.custom-level-description{margin:0 0 var(--bx-space-1);font-size:var(--bx-text-sm);line-height:1.4;color:var(--bx-ink-2)}.custom-level-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--bx-space-2);font-size:var(--bx-text-sm);color:var(--bx-ink-3)}.custom-level-shared{display:inline-flex;align-items:center;height:24px;padding:0 var(--bx-space-2);font-family:var(--bx-font-display);font-weight:600;color:var(--bx-success-deep);background:color-mix(in oklab,var(--bx-success) 16%,var(--bx-surface));border-radius:var(--bx-radius-pill)}[data-theme=dark] .custom-level-shared{color:color-mix(in oklab,var(--bx-success) 60%,#fff)}.custom-level-record{display:inline-flex;align-items:center;height:24px;padding:0 var(--bx-space-2);font-family:var(--bx-font-display);font-weight:600;color:#6b4a00;background:color-mix(in oklab,var(--bx-star) 26%,var(--bx-surface));border-radius:var(--bx-radius-pill)}.custom-level-record.is-empty{color:var(--bx-ink-3);background:var(--bx-surface-2, color-mix(in oklab, var(--bx-ink-3) 10%, var(--bx-surface)));font-weight:500}[data-theme=dark] .custom-level-record:not(.is-empty){color:color-mix(in oklab,var(--bx-star) 70%,#fff)}.custom-level-item-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--bx-space-2)}.custom-level-btn-primary,.custom-level-btn-secondary,.custom-level-btn-play,.custom-level-btn-edit,.custom-level-btn-delete,.custom-level-btn-export{--_bg: var(--bx-surface);--_edge: var(--bx-line-strong);--_fg: var(--bx-ink);display:inline-flex;align-items:center;justify-content:center;gap:var(--bx-space-2);min-height:44px;padding:0 var(--bx-space-4);font-family:var(--bx-font-display);font-size:var(--bx-text-md);font-weight:600;white-space:nowrap;color:var(--_fg);background:var(--_bg);border:0;border-radius:var(--bx-radius-md);box-shadow:inset 0 0 0 2px var(--bx-line),0 4px 0 var(--_edge);cursor:pointer;touch-action:manipulation;transition:transform var(--bx-dur-1) var(--bx-ease),box-shadow var(--bx-dur-1) var(--bx-ease),filter var(--bx-dur-2) var(--bx-ease)}.custom-level-btn-primary:active,.custom-level-btn-secondary:active,.custom-level-btn-play:active,.custom-level-btn-edit:active,.custom-level-btn-delete:active,.custom-level-btn-export:active{transform:translateY(4px);box-shadow:inset 0 0 0 2px var(--bx-line),0 0 0 var(--_edge)}.custom-level-btn-primary:focus-visible,.custom-level-btn-secondary:focus-visible,.custom-level-btn-play:focus-visible,.custom-level-btn-edit:focus-visible,.custom-level-btn-delete:focus-visible,.custom-level-btn-export:focus-visible{outline:none;box-shadow:0 4px 0 var(--_edge),var(--bx-ring)}.custom-level-btn-secondary:hover,.custom-level-btn-edit:hover,.custom-level-btn-export:hover{background:var(--bx-surface-2)}.custom-level-btn-play,.custom-level-btn-primary{--_bg: var(--bx-success);--_edge: var(--bx-success-deep);--_fg: #fff;box-shadow:0 4px 0 var(--_edge)}.custom-level-btn-play:hover,.custom-level-btn-primary:hover{filter:brightness(1.06)}.custom-level-btn-play:active,.custom-level-btn-primary:active{box-shadow:0 0 0 var(--_edge)}.custom-level-btn-delete{--_fg: var(--bx-danger-deep)}.custom-level-btn-delete:hover{background:color-mix(in oklab,var(--bx-danger) 10%,var(--bx-surface))}[data-theme=dark] .custom-level-btn-delete{--_fg: color-mix(in oklab, var(--bx-danger) 65%, #fff)}@media screen and (max-height: 820px) and (min-width: 769px){.custom-level-manager-header{padding:var(--bx-space-3) var(--bx-space-5)}.custom-level-manager-header h2{font-size:var(--bx-text-xl)}}@media screen and (max-width: 900px){.custom-level-item{flex-wrap:wrap}.custom-level-item-info{flex:1 1 calc(100% - 96px)}.custom-level-item-actions{flex:1 1 100%;justify-content:stretch}.custom-level-item-actions>button{flex:1 1 0;min-width:100px}}@media screen and (max-width: 768px){.custom-level-modal{height:auto;min-height:min(550px,82vh);max-height:88vh;border-radius:var(--bx-radius-lg)}.custom-level-manager-header{padding:var(--bx-space-3) var(--bx-space-4)}.custom-level-manager-header h2{font-size:var(--bx-text-xl)}.custom-level-tabs{margin:var(--bx-space-3) var(--bx-space-4) 0}.custom-level-list{padding:var(--bx-space-3) var(--bx-space-4) var(--bx-space-4)}}@media screen and (max-width: 699px){.custom-level-manager{padding:var(--bx-space-3)}.custom-level-manager-header{flex-wrap:wrap}.custom-level-manager-header h2{flex:1 1 auto}.custom-level-manager-actions{flex:1 1 100%}.custom-level-manager-actions .header-button{flex:1 1 0}.custom-level-manager-header h2{min-height:var(--bx-touch);display:flex;align-items:center;padding-right:calc(var(--bx-touch) + var(--bx-space-2))}.custom-level-manager-actions{position:static}.custom-level-manager-actions .settings-close{position:absolute;z-index:2;top:var(--bx-space-3);right:var(--bx-space-4)}.custom-level-tab{font-size:var(--bx-text-sm);padding:0 var(--bx-space-2)}.custom-level-item-thumb{width:52px;height:52px;font-size:var(--bx-text-xl)}}@media screen and (max-width: 479px){.custom-level-manager{padding:var(--bx-space-2)}.custom-level-manager-actions{flex-direction:column;align-items:stretch;gap:var(--bx-space-2)}.custom-level-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch}.custom-level-tab{flex:0 0 auto}.custom-level-item-actions>button{min-width:calc(50% - var(--bx-space-1));font-size:var(--bx-text-sm);padding:0 var(--bx-space-2)}}.help-modal-overlay{display:flex;align-items:center;justify-content:center;z-index:10000;padding:var(--bx-space-4);padding-top:max(var(--bx-space-4),env(safe-area-inset-top));padding-bottom:max(var(--bx-space-4),env(safe-area-inset-bottom))}.help-modal{position:relative;display:flex;flex-direction:column;width:100%;max-width:820px;max-height:min(88vh,860px);max-height:min(88dvh,860px);overflow:hidden;font-family:var(--bx-font-body)}.help-modal .help-close-btn.bx-btn{position:absolute;top:var(--bx-space-4);right:var(--bx-space-4);z-index:3;border-radius:50%;color:var(--bx-ink-2)}.help-modal-body{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.help-modal .help-header{flex-shrink:0;display:flex;align-items:center;gap:var(--bx-space-4);padding:var(--bx-space-5) calc(var(--bx-touch) + var(--bx-space-6)) var(--bx-space-4) var(--bx-space-6);border-bottom:2px solid var(--bx-line)}.help-header-icon{flex-shrink:0;display:grid;place-items:center;width:52px;height:52px;border-radius:var(--bx-radius-md);background:var(--bx-star);box-shadow:0 4px 0 var(--bx-star-deep);color:#3a2600}.help-header-text{min-width:0}.help-modal .help-overline{display:block;margin-bottom:2px}.help-modal .help-header h2{margin:0;font-family:var(--bx-font-display);font-size:var(--bx-text-2xl);font-weight:600;line-height:1.2;color:var(--bx-ink);overflow-wrap:anywhere}.help-modal .bloxxy-text-box{display:flex;align-items:flex-start;gap:var(--bx-space-4);flex:1;min-height:0;padding:var(--bx-space-5) var(--bx-space-6);background:var(--bx-surface-2);overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.help-modal .bloxxy-text-box::-webkit-scrollbar{width:10px}.help-modal .bloxxy-text-box::-webkit-scrollbar-track{background:transparent}.help-modal .bloxxy-text-box::-webkit-scrollbar-thumb{background:var(--bx-line-strong);border-radius:10px;border:3px solid var(--bx-surface-2)}.help-modal .bloxxy-avatar{position:sticky;top:0;flex-shrink:0;width:72px;height:72px;padding:6px;background:var(--bx-surface);border-radius:50%;box-shadow:0 0 0 3px var(--bx-accent-tint),0 4px 0 var(--bx-line-strong)}.help-modal .bloxxy-avatar img{width:100%;height:100%;object-fit:contain}.help-modal .bloxxy-speech-content{position:relative;flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--bx-space-3);padding:var(--bx-space-4) var(--bx-space-5);background:var(--bx-surface);border-radius:var(--bx-radius-lg);border-top-left-radius:var(--bx-radius-xs);box-shadow:0 0 0 2px var(--bx-line),var(--bx-shadow-1)}.help-modal .bloxxy-speech-content:before{content:"";position:absolute;left:-12px;top:18px;border-width:8px 12px 8px 0;border-style:solid;border-color:transparent var(--bx-surface) transparent transparent;filter:drop-shadow(-2px 0 0 var(--bx-line))}.help-markdown-content{color:var(--bx-ink);font-size:var(--bx-text-lg);line-height:1.65}.help-markdown-content>br:first-child{display:none}.help-markdown-content p{margin:var(--bx-space-2) 0}.help-markdown-content p:first-child{margin-top:0}.help-markdown-content h1,.help-markdown-content h2,.help-markdown-content h3{margin:var(--bx-space-4) 0 var(--bx-space-2);font-family:var(--bx-font-display);font-weight:600;line-height:1.25;color:var(--bx-ink)}.help-markdown-content h1{font-size:var(--bx-text-2xl)}.help-markdown-content h2{font-size:var(--bx-text-xl)}.help-markdown-content h3{font-size:var(--bx-text-lg)}.help-markdown-content>:is(h1,h2,h3):first-child{margin-top:0}.help-markdown-content ul{margin:var(--bx-space-2) 0;padding:0;list-style:none}.help-markdown-content li{position:relative;margin:var(--bx-space-1) 0;padding-left:26px}.help-markdown-content li:before{content:"";position:absolute;left:6px;top:.62em;width:10px;height:10px;border-radius:3px;background:var(--bx-accent);box-shadow:0 2px 0 var(--bx-accent-deep)}.help-markdown-content strong{font-weight:800;color:var(--bx-ink);background:linear-gradient(transparent 60%,color-mix(in oklab,var(--bx-star) 40%,transparent) 60%)}.help-markdown-content em{font-style:normal;color:var(--bx-ink-2)}.help-markdown-content code{padding:1px 6px;border-radius:var(--bx-radius-xs);background:var(--bx-surface-2);box-shadow:inset 0 0 0 1px var(--bx-line);font-family:var(--bx-font-mono);font-size:.9em;color:var(--bx-ink)}.help-modal .star-goals-info{padding-top:var(--bx-space-3);border-top:2px dashed var(--bx-line)}.help-modal .star-goals-compact{display:flex;align-items:center;flex-wrap:wrap;gap:var(--bx-space-2)}.help-modal .goal-hint{flex-basis:100%}.help-modal .goal-item{display:inline-flex;align-items:center;gap:var(--bx-space-2);min-height:34px;padding:0 var(--bx-space-3) 0 var(--bx-space-2);border-radius:var(--bx-radius-pill);background:color-mix(in oklab,var(--bx-star) 14%,var(--bx-surface));box-shadow:inset 0 0 0 2px color-mix(in oklab,var(--bx-star) 35%,transparent)}.help-modal .stars-mini{font-size:var(--bx-text-md);line-height:1;letter-spacing:1px;color:var(--bx-star-deep)}[data-theme=dark] .help-modal .stars-mini{color:var(--bx-star)}.help-modal .goal-text{font-size:var(--bx-text-sm);font-weight:600;color:var(--bx-ink)}.help-modal .goal-separator{display:none}.help-modal .help-actions{flex-shrink:0;display:flex;justify-content:center;padding:var(--bx-space-3) var(--bx-space-6) var(--bx-space-4);border-top:2px solid var(--bx-line)}.help-modal .help-speak-btn.speaking{--_bg: var(--bx-accent-soft);--_edge: var(--bx-accent);box-shadow:inset 0 0 0 2px var(--bx-accent),0 var(--bx-depth) 0 var(--_edge)}.help-modal .help-speak-btn.speaking svg{animation:help-pulse 1.2s ease-in-out infinite}@keyframes help-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.18)}}.help-loading-container,.help-no-hint{flex:1;min-height:200px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--bx-space-4);padding:var(--bx-space-7) var(--bx-space-5);background:var(--bx-surface-2)}.help-loading-spinner{width:48px;height:48px;border:5px solid var(--bx-surface-3);border-top-color:var(--bx-accent);border-radius:50%;animation:help-spin .9s linear infinite}@keyframes help-spin{to{transform:rotate(360deg)}}.help-loading-container p,.help-no-hint p{margin:0;font-family:var(--bx-font-display);font-size:var(--bx-text-lg);font-weight:500;color:var(--bx-ink-2);text-align:center}@media (prefers-reduced-motion: reduce){.help-modal .help-speak-btn.speaking svg{animation:none}}@media screen and (orientation: landscape) and (max-height: 834px){.help-modal{max-height:calc(100dvh - 2 * var(--bx-space-4))}.help-modal .help-header{padding-top:var(--bx-space-4);padding-bottom:var(--bx-space-3)}.help-modal .bloxxy-text-box{padding:var(--bx-space-4) var(--bx-space-5)}.help-markdown-content{font-size:var(--bx-text-md)}}@media screen and (max-width: 767px){.help-modal-overlay{padding:var(--bx-space-2)}.help-modal{max-height:calc(100dvh - 2 * var(--bx-space-2));border-radius:var(--bx-radius-lg)}.help-modal .help-header{padding:var(--bx-space-4) calc(var(--bx-touch) + var(--bx-space-5)) var(--bx-space-3) var(--bx-space-4);gap:var(--bx-space-3)}.help-header-icon{width:44px;height:44px}.help-modal .help-header h2{font-size:var(--bx-text-xl)}.help-modal .bloxxy-text-box{flex-direction:column;padding:var(--bx-space-3)}.help-modal .bloxxy-avatar{position:static;width:56px;height:56px}.help-modal .bloxxy-speech-content{width:100%;border-top-left-radius:var(--bx-radius-lg);padding:var(--bx-space-3) var(--bx-space-4)}.help-modal .bloxxy-speech-content:before{left:20px;top:-12px;border-width:0 8px 12px 8px;border-color:transparent transparent var(--bx-surface) transparent;filter:drop-shadow(0 -2px 0 var(--bx-line))}.help-markdown-content{font-size:var(--bx-text-md)}.help-modal .help-actions{padding:var(--bx-space-3) var(--bx-space-4)}}.custom-success-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:max(var(--bx-space-4),env(safe-area-inset-top)) max(var(--bx-space-4),env(safe-area-inset-right)) max(var(--bx-space-4),env(safe-area-inset-bottom)) max(var(--bx-space-4),env(safe-area-inset-left));background:var(--bx-scrim);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:bx-fade var(--bx-dur-2) var(--bx-ease);font-family:var(--bx-font-body)}.custom-success-modal{position:relative;width:100%;max-width:520px;max-height:100%;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;background:var(--bx-surface);color:var(--bx-ink);border-radius:var(--bx-radius-xl);box-shadow:var(--bx-shadow-3),0 0 0 2px var(--bx-line);animation:bx-pop var(--bx-dur-3) var(--bx-ease-spring)}.custom-success-content{display:flex;flex-direction:column;flex:1}.custom-success-header{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;align-items:center;gap:var(--bx-space-2);padding:var(--bx-space-5);background:radial-gradient(120% 90% at 50% 0%,var(--bx-accent-tint) 0%,var(--bx-accent-soft) 55%,var(--bx-surface) 100%);border-bottom:2px solid var(--bx-line)}.custom-success-header:before,.custom-success-header:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background-repeat:no-repeat}.custom-success-header:before{background-image:radial-gradient(circle,var(--bx-star) 0 4px,transparent 5px),radial-gradient(circle,var(--bx-move) 0 3px,transparent 4px),radial-gradient(circle,var(--bx-jump) 0 4px,transparent 5px),radial-gradient(circle,var(--bx-func) 0 3px,transparent 4px),radial-gradient(circle,var(--bx-danger) 0 3px,transparent 4px),radial-gradient(circle,var(--bx-turn) 0 3px,transparent 4px);background-size:12px 12px;background-position:12% 20%,22% 70%,84% 16%,90% 62%,8% 88%,76% 90%;opacity:.75;animation:bxr-cl-float 4.8s ease-in-out infinite alternate}.custom-success-header:after{background-image:linear-gradient(35deg,transparent 45%,var(--bx-func) 45% 55%,transparent 55%),linear-gradient(-30deg,transparent 45%,var(--bx-star) 45% 55%,transparent 55%),linear-gradient(60deg,transparent 45%,var(--bx-jump) 45% 55%,transparent 55%);background-size:16px 16px;background-position:18% 42%,82% 38%,70% 8%;opacity:.6;animation:bxr-cl-float 5.6s ease-in-out -2s infinite alternate-reverse}@keyframes bxr-cl-float{0%{transform:translateY(-4px)}to{transform:translateY(6px)}}.custom-success-hero{position:relative;display:grid;place-items:center;width:112px;height:104px}.custom-success-bloxxy{width:92px;height:auto;max-height:100px;object-fit:contain;filter:drop-shadow(0 6px 0 color-mix(in oklab,var(--bx-ink) 14%,transparent));animation:bx-bounce-in calc(var(--bx-dur-3) * 1.4) var(--bx-ease-spring) both,bxr-cl-bob 2.6s ease-in-out calc(var(--bx-dur-3) * 1.4) infinite}@keyframes bxr-cl-bob{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-6px) rotate(2deg)}}.custom-success-icon{position:absolute;right:-6px;bottom:2px;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;font-size:1.6rem;line-height:1;background:var(--bx-star);box-shadow:0 4px 0 var(--bx-star-deep),0 0 0 3px var(--bx-surface);animation:bx-bounce-in var(--bx-dur-3) var(--bx-ease-spring) .6s both}.custom-success-title{margin:0;font-family:var(--bx-font-display);font-size:var(--bx-text-3xl);font-weight:600;line-height:1.1;color:var(--bx-ink);text-align:center;animation:bx-pop var(--bx-dur-3) var(--bx-ease-spring) .1s both}.custom-success-level-name{margin:0;max-width:100%;padding:var(--bx-space-1) var(--bx-space-4);border-radius:var(--bx-radius-pill);background:var(--bx-surface);box-shadow:inset 0 0 0 2px var(--bx-line);font-family:var(--bx-font-display);font-size:var(--bx-text-md);font-weight:500;color:var(--bx-ink-2);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.custom-success-body{display:flex;flex-direction:column;align-items:center;gap:var(--bx-space-5);padding:var(--bx-space-5)}.custom-motivation-text{text-align:center;animation:bx-fade var(--bx-dur-3) var(--bx-ease) .5s both}.custom-motivation-text p{margin:0;font-size:var(--bx-text-lg);line-height:1.45;color:var(--bx-ink-2)}.custom-record-box{display:flex;align-items:center;gap:var(--bx-space-3);margin-top:var(--bx-space-4);padding:var(--bx-space-3) var(--bx-space-4);border-radius:var(--bx-radius-lg, 16px);background:color-mix(in oklab,var(--bx-ink-3) 8%,var(--bx-surface));text-align:left;animation:bx-fade var(--bx-dur-3) var(--bx-ease) .7s both}.custom-record-box--first,.custom-record-box--new{background:color-mix(in oklab,var(--bx-star) 24%,var(--bx-surface));box-shadow:inset 0 0 0 2px color-mix(in oklab,var(--bx-star-deep) 45%,transparent)}.custom-record-box--tie{background:color-mix(in oklab,var(--bx-success) 14%,var(--bx-surface))}.custom-record-icon{font-size:2rem;line-height:1}.custom-record-title{margin:0;font-family:var(--bx-font-display);font-weight:700;font-size:var(--bx-text-lg);color:var(--bx-ink-1, var(--bx-ink))}.custom-record-text{margin:2px 0 0;color:var(--bx-ink-2);line-height:1.4}.custom-motivation-text strong{font-family:var(--bx-font-display);font-weight:600;color:var(--bx-ink)}.custom-success-buttons{display:flex;gap:var(--bx-space-3);width:100%;padding-bottom:var(--bx-depth)}.custom-success-buttons .custom-success-btn{flex:1 1 0;min-width:0;padding:0 var(--bx-space-4);font-size:var(--bx-text-lg)}.custom-success-buttons .custom-success-btn-primary{text-shadow:0 1px 0 rgba(0,0,0,.18)}@media screen and (max-height: 600px){.custom-success-hero{width:84px;height:78px}.custom-success-bloxxy{width:68px;max-height:74px}.custom-success-icon{width:38px;height:38px;font-size:1.25rem}.custom-success-header{padding:var(--bx-space-4)}.custom-success-body{padding:var(--bx-space-4);gap:var(--bx-space-4)}.custom-success-title{font-size:var(--bx-text-2xl)}}@media screen and (max-width: 767px){.custom-success-modal{max-width:460px}.custom-success-title{font-size:var(--bx-text-2xl)}.custom-motivation-text p{font-size:var(--bx-text-md)}}@media screen and (max-width: 479px){.custom-success-modal-overlay{padding:var(--bx-space-3)}.custom-success-modal{border-radius:var(--bx-radius-lg)}.custom-success-header,.custom-success-body{padding:var(--bx-space-4)}.custom-success-buttons{flex-direction:column-reverse}.custom-success-buttons .custom-success-btn{flex:0 0 auto;width:100%}}@media (hover: none) and (pointer: coarse){.custom-success-buttons .custom-success-btn:hover:not(:disabled){filter:none}}@media (prefers-reduced-motion: reduce){.custom-success-modal-overlay *,.custom-success-modal-overlay *:before,.custom-success-modal-overlay *:after,.custom-success-modal{animation:none!important}}.gameplay-notes{position:absolute;left:50%;top:64px;transform:translate(-50%);z-index:190;display:flex;flex-direction:column;align-items:center;gap:var(--bx-space-2);width:min(460px,calc(100% - 2 * var(--bx-space-3)));pointer-events:none}.bloxxy-note{--_tone: var(--bx-accent);--_tone-soft: var(--bx-accent-soft);position:relative;display:flex;align-items:flex-start;gap:var(--bx-space-3);width:100%;padding:var(--bx-space-3) var(--bx-space-4) var(--bx-space-3) var(--bx-space-3);background:var(--bx-surface);color:var(--bx-ink);border-radius:var(--bx-radius-lg);box-shadow:inset 0 0 0 2px var(--bx-line),inset 6px 0 0 var(--_tone),var(--bx-shadow-3);font-family:var(--bx-font-body);pointer-events:auto;animation:bx-note-in var(--bx-dur-3) var(--bx-ease-spring)}.bloxxy-note--error{--_tone: var(--bx-danger);--_tone-soft: color-mix(in oklab, var(--bx-danger) 12%, var(--bx-surface))}.bloxxy-note--info{--_tone: var(--bx-func);--_tone-soft: color-mix(in oklab, var(--bx-func) 12%, var(--bx-surface))}.bloxxy-note--pattern{--_tone: var(--bx-func);--_tone-soft: color-mix(in oklab, var(--bx-func) 10%, var(--bx-surface))}.bloxxy-note__avatar{flex:0 0 auto;width:44px;height:44px;object-fit:contain;border-radius:50%;background:var(--_tone-soft);padding:4px}.bloxxy-note__body{flex:1 1 auto;min-width:0;padding-right:var(--bx-space-4)}.bloxxy-note__title{font-family:var(--bx-font-display);font-size:var(--bx-text-md);font-weight:700;color:var(--_tone);line-height:1.2;margin-bottom:2px}.bloxxy-note--error .bloxxy-note__title{color:var(--bx-danger-deep)}.bloxxy-note--info .bloxxy-note__title,.bloxxy-note--pattern .bloxxy-note__title{color:var(--bx-func-deep)}.bloxxy-note__message{margin:0;font-size:var(--bx-text-md);font-weight:600;line-height:1.35}.bloxxy-note__tip{margin:4px 0 0;font-size:var(--bx-text-sm);color:var(--bx-ink-2);line-height:1.35}.bloxxy-note__actions{display:flex;flex-wrap:wrap;gap:var(--bx-space-2);margin-top:var(--bx-space-2)}.bloxxy-note__btn{height:36px;padding:0 var(--bx-space-3);border:0;border-radius:var(--bx-radius-sm);background:var(--bx-surface-2);color:var(--bx-ink);font-family:var(--bx-font-display);font-size:var(--bx-text-sm);font-weight:600;box-shadow:inset 0 0 0 2px var(--bx-line),0 3px 0 var(--bx-line-strong);cursor:pointer;touch-action:manipulation}.bloxxy-note__btn.is-primary{background:var(--bx-func);color:#fff;box-shadow:0 3px 0 var(--bx-func-deep)}.bloxxy-note__btn:active{transform:translateY(3px);box-shadow:none}.bloxxy-note__close{position:absolute;top:8px;right:8px;display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:50%;background:transparent;color:var(--bx-ink-3);cursor:pointer}.bloxxy-note__close:hover{background:var(--bx-surface-2);color:var(--bx-ink)}.bloxxy-step-badge{display:inline-flex;align-items:center;gap:var(--bx-space-2);height:32px;padding:0 var(--bx-space-3);border-radius:var(--bx-radius-pill);background:color-mix(in oklab,var(--bx-move) 14%,var(--bx-surface));color:var(--bx-move-deep);font-family:var(--bx-font-display);font-size:var(--bx-text-sm);font-weight:600;box-shadow:inset 0 0 0 2px color-mix(in oklab,var(--bx-move) 45%,transparent),var(--bx-shadow-2);pointer-events:auto}.bloxxy-step-badge__dot{width:10px;height:10px;border-radius:50%;background:var(--bx-move)}.bloxxy-step-badge__count{font-family:var(--bx-font-body);font-weight:700;color:var(--bx-ink-2);font-variant-numeric:tabular-nums}[data-theme=dark] .bloxxy-step-badge{color:#cfe0ff}@keyframes bx-note-in{0%{opacity:0;transform:translateY(-8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@media (prefers-reduced-motion: reduce){.bloxxy-note{animation:none}}@media (max-width: 700px){.gameplay-notes{top:56px}.bloxxy-note__avatar{width:36px;height:36px}}.glass-btn{background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-sm);color:var(--text-white);font-weight:600;cursor:pointer;transition:all var(--transition-normal);text-shadow:0 1px 2px rgba(0,0,0,.1)}.glass-btn:hover:not(:disabled){background:var(--glass-bg-hover);border-color:var(--glass-border-hover);transform:translateY(-2px);box-shadow:0 0 0 2px color-mix(in srgb,var(--bx-accent) 20%,transparent)}.glass-btn:active:not(:disabled){transform:translateY(0)}.glass-btn:disabled{opacity:.4;cursor:not-allowed}.glass-btn-themed{background:color-mix(in srgb,var(--bx-accent) 15%,transparent);border-color:color-mix(in srgb,var(--bx-accent) 30%,rgba(255,255,255,.2))}.glass-btn-themed:hover:not(:disabled){background:color-mix(in srgb,var(--bx-accent) 25%,transparent);border-color:color-mix(in srgb,var(--bx-accent) 40%,rgba(255,255,255,.3))}.glass-panel{background:var(--card-bg);backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);border:1px solid var(--glass-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.modal-base{background:var(--modal-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);border:2px solid var(--bx-line)}.themed-header{background:var(--theme-gradient);background-size:200% 200%;position:relative;overflow:hidden}.themed-header:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 20% 50%,rgba(255,255,255,.15) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(255,255,255,.15) 0%,transparent 50%);pointer-events:none}@keyframes gradientFlow{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.text-gradient{background:var(--theme-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.text-themed{color:var(--bx-accent)}.error-boundary{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;align-items:center;justify-content:center;overflow-y:auto;padding:max(var(--bx-space-5),env(safe-area-inset-top)) max(var(--bx-space-5),env(safe-area-inset-right)) max(var(--bx-space-5),env(safe-area-inset-bottom)) max(var(--bx-space-5),env(safe-area-inset-left));background-color:var(--bx-bg);background-image:var(--bx-bg-pattern);background-size:22px 22px;font-family:var(--bx-font-body);color:var(--bx-ink)}.error-boundary .error-boundary-content{width:100%;max-width:720px;margin:auto;padding:var(--bx-space-6);text-align:center;background:var(--bx-surface);color:var(--bx-ink);border:2px solid var(--bx-line);border-radius:var(--bx-radius-xl);box-shadow:var(--bx-shadow-3);animation:bx-pop var(--bx-dur-3) var(--bx-ease-spring)}.error-boundary .error-icon{display:grid;place-items:center;width:88px;height:88px;margin:0 auto var(--bx-space-4);border-radius:50%;font-size:2.75rem;line-height:1;background:color-mix(in oklab,var(--bx-warning) 22%,var(--bx-surface));box-shadow:inset 0 0 0 3px color-mix(in oklab,var(--bx-warning) 45%,transparent);animation:bx-wiggle .7s var(--bx-ease) .4s 1}.error-boundary h1{margin:0 0 var(--bx-space-3);font-family:var(--bx-font-display);font-size:var(--bx-text-3xl);font-weight:600;line-height:1.15;color:var(--bx-ink)}.error-boundary .error-message{margin:0 auto var(--bx-space-2);max-width:54ch;font-size:var(--bx-text-lg);line-height:1.5;color:var(--bx-ink-2)}.error-boundary .error-kid-hint{margin:0 auto var(--bx-space-4);max-width:54ch;font-size:var(--bx-text-md);line-height:1.5;color:var(--bx-ink-2)}.error-boundary .error-kid-hint strong{font-family:var(--bx-font-display);font-weight:600;color:var(--bx-ink)}.error-boundary .error-teacher-hint{margin:0 auto var(--bx-space-5);max-width:60ch;padding:var(--bx-space-3) var(--bx-space-4);border-radius:var(--bx-radius-md);background:var(--bx-accent-soft);font-size:var(--bx-text-sm);line-height:1.5;color:var(--bx-ink-2);text-align:left}.error-boundary .error-teacher-hint strong{font-family:var(--bx-font-display);font-weight:600;color:var(--bx-ink)}.error-boundary .error-details{margin:0 0 var(--bx-space-5);text-align:left;border-radius:var(--bx-radius-md);background:var(--bx-surface-2);box-shadow:inset 0 2px 0 var(--bx-line);overflow:hidden}.error-boundary .error-details summary{display:flex;align-items:center;min-height:var(--bx-touch);padding:0 var(--bx-space-4);cursor:pointer;font-family:var(--bx-font-display);font-size:var(--bx-text-md);font-weight:600;color:var(--bx-ink-2);list-style-position:inside;transition:background-color var(--bx-dur-1) var(--bx-ease)}.error-boundary .error-details summary:hover{background:var(--bx-surface-3)}.error-boundary .error-details summary:focus-visible{outline:none;box-shadow:inset var(--bx-ring)}.error-boundary .error-details[open] summary{border-bottom:2px solid var(--bx-line)}.error-boundary .error-info{padding:var(--bx-space-4)}.error-boundary .error-info h3{margin:var(--bx-space-4) 0 var(--bx-space-2);font-family:var(--bx-font-display);font-size:var(--bx-text-sm);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--bx-ink-3)}.error-boundary .error-info h3:first-child{margin-top:0}.error-boundary .error-info pre{margin:0;max-height:200px;overflow:auto;padding:var(--bx-space-3);border-radius:var(--bx-radius-sm);background:var(--bx-surface);border:2px solid var(--bx-line);font-family:var(--bx-font-mono);font-size:var(--bx-text-xs);line-height:1.5;color:var(--bx-ink);white-space:pre-wrap;word-break:break-word}.error-boundary .error-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--bx-space-3);margin-bottom:var(--bx-space-5);padding-bottom:var(--bx-depth)}.error-boundary .error-actions .error-btn{font-size:var(--bx-text-md)}.error-boundary .error-actions .error-btn-primary{flex:1 1 100%;font-size:var(--bx-text-xl)}.error-boundary .error-debug-hint{display:flex;align-items:flex-start;gap:var(--bx-space-3);padding:var(--bx-space-4);border-radius:var(--bx-radius-md);border:2px dashed var(--bx-line-strong);text-align:left}.error-boundary .debug-hint-icon{flex:0 0 auto;display:grid;place-items:center;width:40px;height:40px;border-radius:var(--bx-radius-sm);background:var(--bx-surface-2);font-size:1.25rem;line-height:1}.error-boundary .debug-hint-content{flex:1 1 auto;min-width:0}.error-boundary .error-hint-title{margin:0 0 var(--bx-space-1);font-family:var(--bx-font-display);font-size:var(--bx-text-md);font-weight:600;color:var(--bx-ink)}.error-boundary .error-hint{margin:0;font-size:var(--bx-text-sm);line-height:1.7;color:var(--bx-ink-2)}.error-boundary .error-hint strong{color:var(--bx-ink)}.error-boundary .error-hint kbd{display:inline-block;min-width:1.6em;padding:0 var(--bx-space-2);border-radius:var(--bx-radius-xs);background:var(--bx-surface);border:2px solid var(--bx-line-strong);box-shadow:0 2px 0 var(--bx-line-strong);font-family:var(--bx-font-mono);font-size:var(--bx-text-xs);line-height:1.6;color:var(--bx-ink);text-align:center}@media screen and (max-width: 768px){.error-boundary{padding:var(--bx-space-4)}.error-boundary .error-boundary-content{padding:var(--bx-space-5) var(--bx-space-4)}.error-boundary h1{font-size:var(--bx-text-2xl)}.error-boundary .error-message{font-size:var(--bx-text-md)}.error-boundary .error-actions{flex-direction:column}.error-boundary .error-actions .error-btn{width:100%;flex:0 0 auto}}@media screen and (max-width: 479px){.error-boundary .error-boundary-content{border-radius:var(--bx-radius-lg)}.error-boundary .error-icon{width:72px;height:72px;font-size:2.25rem}.error-boundary h1{font-size:var(--bx-text-xl)}.error-boundary .error-info pre{max-height:150px;font-size:.6875rem}}@media (prefers-reduced-motion: reduce){.error-boundary .error-boundary-content,.error-boundary .error-icon{animation:none}}.debug-console{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:90vw;max-width:900px;height:80vh;max-height:700px;background:#000000f2;border:2px solid #00ff00;border-radius:12px;z-index:10000;display:flex;flex-direction:column;font-family:Courier New,monospace;box-shadow:0 10px 40px #00ff004d;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);animation:debugFadeIn .3s ease-out}@keyframes debugFadeIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.debug-console-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background:#00ff001a;border-bottom:1px solid #00ff00;border-radius:10px 10px 0 0}.debug-console-header h3{margin:0;font-size:1.125rem;color:#0f0;font-weight:700}.debug-console-actions{display:flex;gap:.5rem}.debug-btn{background:#00ff001a;border:1px solid #00ff00;color:#0f0;padding:.5rem .75rem;border-radius:6px;cursor:pointer;font-size:1rem;transition:all .2s;font-family:Courier New,monospace;min-width:36px;height:36px;display:flex;align-items:center;justify-content:center}.debug-btn:hover{background:#0f03;box-shadow:0 0 10px #00ff004d}.debug-btn:active{transform:scale(.95)}.debug-btn-close{border-color:#f33;color:#f33;background:#ff33331a}.debug-btn-close:hover{background:#f333;box-shadow:0 0 10px #ff33334d}.debug-console-info{padding:.75rem 1.25rem;background:#00640033;border-bottom:1px solid rgba(0,255,0,.3);display:flex;flex-direction:column;gap:.375rem;max-height:150px;overflow-y:auto}.info-item{display:flex;gap:.5rem;font-size:.75rem;line-height:1.4}.info-label{color:#0f0;font-weight:700;min-width:120px}.info-value{color:#8f8;word-break:break-all;flex:1}.debug-console-body{flex:1;overflow-y:auto;overflow-x:hidden;padding:1rem;background:#00000080;-webkit-overflow-scrolling:touch}.debug-console-body::-webkit-scrollbar{width:10px}.debug-console-body::-webkit-scrollbar-track{background:#00ff000d}.debug-console-body::-webkit-scrollbar-thumb{background:#00ff004d;border-radius:5px}.debug-console-body::-webkit-scrollbar-thumb:hover{background:#00ff0080}.debug-console-empty{display:flex;align-items:center;justify-content:center;height:100%;color:#666;font-size:.875rem;text-align:center;padding:2rem}.debug-log-entry{margin-bottom:.5rem;padding:.5rem .75rem;border-radius:6px;font-size:.8125rem;line-height:1.5;display:flex;flex-wrap:wrap;gap:.5rem;word-break:break-word;border-left:3px solid transparent;transition:background .2s}.debug-log-entry:hover{background:#ffffff0d}.debug-log-log{background:#c8c8c81a;border-left-color:#888}.debug-log-error{background:#ff000026;border-left-color:#f33}.debug-log-warn{background:#ffa50026;border-left-color:orange}.debug-log-info{background:#0096ff26;border-left-color:#0096ff}.log-timestamp{color:#666;font-size:.75rem;min-width:80px}.log-type{font-weight:700;min-width:60px}.debug-log-log .log-type{color:#888}.debug-log-error .log-type{color:#f33}.debug-log-warn .log-type{color:orange}.debug-log-info .log-type{color:#0096ff}.log-count{background:#ffffff1a;padding:.125rem .375rem;border-radius:4px;font-size:.7rem;color:#0f0}.log-message{flex:1;color:#ccc;white-space:pre-wrap;word-break:break-word}.debug-console-footer{padding:.75rem 1.25rem;background:#00ff001a;border-top:1px solid #00ff00;color:#0f0;font-size:.75rem;text-align:center;border-radius:0 0 10px 10px}@media screen and (max-width: 768px){.debug-console{width:95vw;height:85vh}.debug-console-header h3{font-size:1rem}.debug-btn{padding:.375rem .625rem;font-size:.875rem;min-width:32px;height:32px}.info-item{font-size:.6875rem}.info-label{min-width:100px}.debug-log-entry{font-size:.75rem;padding:.375rem .625rem}.log-timestamp{font-size:.6875rem;min-width:70px}.log-type{min-width:50px}}@media screen and (max-width: 479px){.debug-console{width:98vw;height:90vh;max-height:none}.debug-console-header{padding:.75rem 1rem}.debug-console-header h3{font-size:.9375rem}.debug-btn{padding:.25rem .5rem;font-size:.8125rem;min-width:30px;height:30px}.debug-console-info{padding:.625rem 1rem}.info-item{font-size:.625rem;flex-direction:column;gap:.25rem}.info-label{min-width:auto}.debug-console-body{padding:.75rem}.debug-log-entry{font-size:.6875rem;padding:.375rem .5rem;gap:.375rem}.log-timestamp{font-size:.625rem;min-width:auto;flex-basis:100%}.log-type{min-width:auto}.debug-console-footer{padding:.625rem 1rem;font-size:.6875rem}}.native-gate-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:12000;display:flex;align-items:center;justify-content:center;padding:max(var(--bx-space-4),env(safe-area-inset-top)) max(var(--bx-space-4),env(safe-area-inset-right)) max(var(--bx-space-4),env(safe-area-inset-bottom)) max(var(--bx-space-4),env(safe-area-inset-left));background:var(--bx-scrim);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:bx-fade var(--bx-dur-2) var(--bx-ease);font-family:var(--bx-font-body)}.native-gate{width:100%;max-width:420px;max-height:100%;overflow-y:auto;padding:var(--bx-space-6) var(--bx-space-5) var(--bx-space-5);background:var(--bx-surface);color:var(--bx-ink);border-radius:var(--bx-radius-xl);box-shadow:var(--bx-shadow-3),0 0 0 2px var(--bx-line);animation:bx-pop var(--bx-dur-3) var(--bx-ease-spring);text-align:center}.native-gate-icon{display:grid;place-items:center;width:64px;height:64px;margin:0 auto var(--bx-space-3);border-radius:var(--bx-radius-lg);background:var(--bx-accent-soft);color:var(--bx-accent)}.native-gate h3{margin:0 0 var(--bx-space-2);font-family:var(--bx-font-display);font-size:var(--bx-text-xl);font-weight:600}.native-gate p{margin:0 0 var(--bx-space-4);color:var(--bx-ink-2);font-size:var(--bx-text-md);line-height:1.45}.native-gate-task{display:block;margin-bottom:var(--bx-space-2);font-family:var(--bx-font-display);font-size:var(--bx-text-2xl);font-weight:600}.native-gate-input{width:140px;padding:var(--bx-space-2) var(--bx-space-3);border:2px solid var(--bx-line-strong);border-radius:var(--bx-radius-md);background:var(--bx-surface-2);color:var(--bx-ink);font-family:var(--bx-font-display);font-size:var(--bx-text-2xl);text-align:center}.native-gate-input:focus{outline:none;border-color:var(--bx-accent)}.native-gate-message{min-height:1.5em;margin:var(--bx-space-2) 0;color:var(--bx-danger-deep);font-size:var(--bx-text-sm)}.native-gate-actions{display:flex;gap:var(--bx-space-3);justify-content:center}.native-offline{position:fixed;top:max(var(--bx-space-3),env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:11500;display:flex;align-items:center;gap:var(--bx-space-2);max-width:min(640px,calc(100vw - 2 * var(--bx-space-4)));padding:var(--bx-space-2) var(--bx-space-4);border-radius:var(--bx-radius-md);background:var(--bx-surface);color:var(--bx-ink);box-shadow:var(--bx-shadow-3),0 0 0 2px color-mix(in oklab,var(--bx-warning) 60%,transparent);font-family:var(--bx-font-body);font-size:var(--bx-text-sm);pointer-events:none}.native-offline svg{flex:none;color:var(--bx-warning)}:root{--theme-primary: #4EC4C4;--theme-primary-light: color-mix(in oklab, var(--theme-primary) 70%, #fff);--theme-secondary: var(--theme-primary);--theme-secondary-light: var(--theme-primary-light);--theme-gradient: linear-gradient(135deg, var(--theme-primary) 0%, var(--theme-secondary) 100%);--theme-gradient-hover: var(--theme-gradient);--theme-shadow: color-mix(in oklab, var(--theme-primary) 35%, transparent);--bg-primary: var(--bx-surface);--bg-secondary: var(--bx-surface-2);--bg-tertiary: var(--bx-surface-3);--bg-gradient: var(--bx-bg);--bg-panel: var(--bx-surface);--bg-card: var(--bx-surface);--tertiary-bg: var(--bx-surface-3);--text-primary: var(--bx-ink);--text-secondary: var(--bx-ink-2);--text-tertiary: var(--bx-ink-3);--text-dark: var(--bx-ink);--text-gray: var(--bx-ink-3);--text-white: #fff;--text-white-80: rgba(255, 255, 255, .8);--text-white-60: rgba(255, 255, 255, .6);--border-color: var(--bx-line);--border-color-strong: var(--bx-line-strong);--hover-bg: var(--bx-surface-2);--hover-border: var(--bx-line-strong);--scrollbar-track: transparent;--scrollbar-thumb: var(--bx-line-strong);--shadow-sm: var(--bx-shadow-1);--shadow-md: var(--bx-shadow-2);--shadow-lg: var(--bx-shadow-2);--shadow-xl: var(--bx-shadow-3);--radius-sm: var(--bx-radius-sm);--radius-md: var(--bx-radius-md);--radius-lg: var(--bx-radius-lg);--radius-xl: var(--bx-radius-xl);--glass-bg: rgba(255, 255, 255, .16);--glass-bg-hover: rgba(255, 255, 255, .26);--glass-border: rgba(255, 255, 255, .24);--glass-border-hover: rgba(255, 255, 255, .36);--card-bg: var(--bx-surface);--card-bg-hover: var(--bx-surface-2);--modal-bg: var(--bx-surface);--section-bg: var(--bx-surface-2);--transition-fast: var(--bx-dur-1) var(--bx-ease);--transition-normal: var(--bx-dur-2) var(--bx-ease);--transition-slow: var(--bx-dur-3) var(--bx-ease)}*{margin:0;padding:0;box-sizing:border-box}html{overflow:hidden;position:fixed;width:100%;height:100%;overscroll-behavior:none}body{font-family:var(--bx-font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bx-bg);background-image:var(--bx-bg-pattern);background-size:22px 22px;color:var(--bx-ink);min-height:100vh;min-height:-webkit-fill-available;overflow:hidden;touch-action:pan-x pan-y;-webkit-tap-highlight-color:transparent;transition:background .3s ease,color .3s ease;overscroll-behavior:none;overscroll-behavior-y:none;overscroll-behavior-x:none;position:fixed;width:100%;height:100%}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}#root{width:100%;height:100%;overflow:hidden;position:relative;overscroll-behavior:none;overscroll-behavior-y:none;overscroll-behavior-x:none}:fullscreen,:-webkit-full-screen,:-moz-full-screen,:-ms-fullscreen{width:100%;height:100%;overflow:hidden}@media all and (display-mode: standalone){body{overscroll-behavior:none;overscroll-behavior-y:none;overscroll-behavior-x:none;-webkit-overflow-scrolling:touch}}@supports (padding: max(0px)){body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}}*{touch-action:manipulation}button,a,input,textarea{-webkit-tap-highlight-color:transparent}.app,#root{-webkit-transform:translateZ(0);transform:translateZ(0);isolation:isolate}
