:root{--bg:#070a17;--panel:#121732d6;--panel-border:#78a0ff38;--text:#e8ecff;--text-dim:#9aa5d6;--accent:#3fd0ff;--accent-contrast:#04121a;--danger:#ff5f7a;--success:#38ffb0;--star:#ffd23f;--focus:#ffd23f;--radius:16px;--shadow:0 10px 40px #00000059;--font:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=minimal]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);font-family:var(--font);-webkit-tap-highlight-color:transparent;overscroll-behavior:none;margin:0;overflow:hidden}#app{position:fixed;inset:0}.stage{touch-action:none;position:absolute;inset:0}.stage-canvas{width:100%;height:100%;display:block}.ui{pointer-events:none;padding:max(10px, env(safe-area-inset-top)) max(10px, env(safe-area-inset-right)) max(10px, env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left));position:absolute;inset:0}.ui>*,.ui .panel,.ui button,.ui input,.ui select,.ui a,.ui textarea{pointer-events:auto}.screen{pointer-events:none;position:absolute;inset:0}.screen>*{pointer-events:auto}.screen>.hud{pointer-events:none}.panel{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);-webkit-backdrop-filter:blur(14px)saturate(140%);backdrop-filter:blur(14px)saturate(140%);box-shadow:var(--shadow)}.btn{font:inherit;color:var(--text);border:1px solid var(--panel-border);cursor:pointer;background:#ffffff0f;border-radius:12px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:10px 16px;font-weight:600;transition:background .15s,transform .1s,border-color .15s;display:inline-flex}.btn:hover{border-color:var(--accent);background:#ffffff1f}.btn:active{transform:scale(.97)}.btn.primary{background:var(--accent);color:var(--accent-contrast);border-color:#0000}.btn.primary:hover{filter:brightness(1.1)}.btn.danger{border-color:var(--danger);color:var(--danger)}.btn.big{width:100%;padding:14px 22px;font-size:1.1rem}.btn.small{min-height:34px;padding:6px 12px;font-size:.9rem}.btn:disabled,.icon-btn:disabled{opacity:.4;cursor:not-allowed}.icon-btn{color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:10px;justify-content:center;align-items:center;width:44px;height:44px;transition:background .15s;display:inline-flex}.icon-btn:hover:not(:disabled){background:#ffffff1a}.icon-btn.active{color:var(--accent);background:#ffffff14}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}[hidden]{display:none!important}.menu-screen{background:radial-gradient(#0000 0%,#00000059 100%);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:16px;display:flex;position:absolute;inset:0}.logo{letter-spacing:.02em;text-shadow:0 0 24px color-mix(in srgb, var(--accent) 60%, transparent);align-items:center;gap:14px;margin:0;font-size:clamp(2.6rem,9vw,4.6rem);font-weight:800;display:flex}.logo-block{background:linear-gradient(160deg,#ff8fc0,#ff3d8b);border-radius:6px;width:.45em;height:.9em;display:inline-block;transform:rotate(-12deg);box-shadow:0 0 22px #ff3d8b99}.tagline{color:var(--text-dim);margin:0 0 18px}.menu-list{flex-direction:column;gap:10px;width:min(360px,100%);padding:18px;display:flex}.menu-footer{flex-wrap:wrap;justify-content:center;gap:4px 18px;margin-top:12px;display:flex}.link-btn{font:inherit;color:var(--text-dim);cursor:pointer;min-height:32px;text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, currentColor 40%, transparent);text-decoration-color:color-mix(in srgb, currentColor 40%, transparent);text-underline-offset:3px;background:0 0;border:none;padding:6px 2px;font-size:.9rem}.link-btn:hover{color:var(--text)}.menu-lang{top:max(12px, env(safe-area-inset-top));right:max(12px, env(safe-area-inset-right));min-height:36px;padding:4px 8px;font-size:.9rem;position:absolute}.help-legend{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px 18px;margin:12px 0;padding:0;list-style:none;display:grid}.help-legend li{align-items:center;gap:10px;display:flex}.help-icon{flex-shrink:0;display:inline-flex}.help-links{flex-wrap:wrap;gap:18px;display:flex}.help-links a{color:var(--accent)}.overlay-panel.feedback-dialog{width:min(520px,100%)}.feedback-form{text-align:left;flex-direction:column;gap:6px;display:flex}.feedback-form p{margin:0 0 6px}.feedback-form label{margin-top:6px;font-weight:600}.feedback-form textarea{resize:vertical;min-height:7em}.feedback-form .hint{margin-top:8px}.hp-field{opacity:0;width:1px;height:1px;position:absolute;left:-10000px}.legal-page{width:min(760px,100%);line-height:1.55}.legal-page h3{margin:18px 0 6px;font-size:1.05rem}.legal-page p,.legal-page ul{margin:0 0 8px}.legal-page address{margin-bottom:8px;font-style:normal}.legal-page a{color:var(--accent)}.hud{pointer-events:none;flex-direction:column;display:flex;position:absolute;inset:0}.hud-top{grid-template-columns:1fr auto 1fr;align-items:start;gap:8px;display:grid}.hud-top>.hud-right{justify-self:end}.hud-top>.hud-left{justify-self:start}.hud-left,.hud-right,.hud-center{align-items:center;gap:4px;padding:4px 8px;display:flex}.hud-left{min-width:0;max-width:100%}.hud-titles{min-width:0;padding:0 6px}.hud-title{white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.hud-subtitle{color:var(--text-dim);font-size:.8rem}.hud-center{font-variant-numeric:tabular-nums;gap:10px;padding:8px 16px}.hud-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;font-size:.85rem}.hud-moves-value{text-align:center;min-width:2ch;font-size:1.4rem;font-weight:800}.hud-par{color:var(--text-dim);font-size:.9rem}.hud-hint{pointer-events:auto;align-self:center;align-items:center;gap:14px;max-width:min(520px,100%);margin-top:10px;padding:14px 18px;animation:.3s ease-out pop-in;display:flex}.hint-icon{flex-shrink:0;display:inline-flex}.hud-hint p{margin:0;line-height:1.45}.hud-hint .btn{white-space:nowrap;flex-shrink:0}.hud-bottom{flex-direction:column;align-items:center;gap:10px;margin-top:auto;display:flex}.swap-btn{pointer-events:auto}.dpad{pointer-events:auto;grid-template-rows:repeat(2,58px);grid-template-columns:repeat(3,58px);gap:6px;display:grid}.dpad-btn{border:1px solid var(--panel-border);background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--text);cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;border-radius:14px;justify-content:center;align-items:center;display:flex}.dpad-btn:active{background:var(--accent);color:var(--accent-contrast)}.dpad-U{grid-area:1/2}.dpad-L{grid-area:2/1}.dpad-D{grid-area:2/2}.dpad-R{grid-area:2/3}.overlay-backdrop{opacity:0;pointer-events:auto;z-index:20;background:#03050c8c;justify-content:center;align-items:center;padding:16px;transition:opacity .2s;display:flex;position:fixed;inset:0}.overlay-backdrop.visible{opacity:1}.overlay-panel{text-align:center;width:min(440px,100%);max-height:calc(100% - 20px);padding:22px;animation:.25s ease-out pop-in;overflow:auto}.overlay-panel.wide{text-align:left;width:min(720px,100%)}.overlay-panel h2{margin:0 0 10px;font-size:1.5rem}.overlay-panel p{color:var(--text-dim);margin:6px 0}.overlay-panel .actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:18px;display:flex}.overlay-panel.compact .actions{flex-direction:column}.reduced-motion .overlay-panel,.reduced-motion .hud-hint{animation:none}@keyframes pop-in{0%{opacity:0;transform:scale(.94)translateY(8px)}to{opacity:1;transform:none}}.stars{color:#ffffff2e;justify-content:center;gap:6px;margin:8px 0;display:flex}.stars svg{width:40px;height:40px}.stars .on{color:var(--star);fill:currentColor;filter:drop-shadow(0 0 8px color-mix(in srgb, var(--star) 70%, transparent))}.toast{background:var(--panel);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--text);opacity:0;pointer-events:none;z-index:40;text-align:center;border-radius:999px;max-width:calc(100% - 32px);padding:10px 18px;transition:opacity .2s,transform .2s;position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px)}.toast.visible{opacity:1;transform:translate(-50%)}@media (width<=560px){.hud-top{grid-template-columns:1fr auto}.hud-top>.hud-center{grid-area:2/1/auto/-1;justify-self:center}.icon-btn{width:40px;height:40px}}.input,select.input{font:inherit;color:var(--text);border:1px solid var(--panel-border);background:#00000040;border-radius:10px;min-width:0;min-height:40px;padding:8px 10px}.field-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin:12px 0;display:flex}.field-row .input{width:9em}.segmented{flex-wrap:wrap;justify-content:center;gap:6px;margin:8px 0;display:flex}.segmented [aria-checked=true],.segmented [aria-selected=true],.segmented .selected,.segmented [aria-pressed=true]{background:var(--accent);color:var(--accent-contrast);border-color:#0000}.page-screen{background:#00000040;justify-content:center;align-items:flex-start;padding:12px;display:flex;position:absolute;inset:0;overflow:auto}.page{width:min(980px,100%);margin:max(0px,4vh) 0 auto;padding:18px}.page-header{align-items:center;gap:12px;margin-bottom:12px;display:flex}.page-header h2{margin:0;font-size:1.4rem}.tabs{scrollbar-width:thin;border-bottom:1px solid var(--panel-border);flex-wrap:nowrap;gap:6px;margin-bottom:14px;padding-bottom:10px;display:flex;overflow-x:auto}.tab{font:inherit;color:var(--text-dim);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;flex-shrink:0;align-items:center;gap:6px;min-height:40px;padding:8px 12px;font-weight:600;display:inline-flex}.tab svg{width:16px;height:16px}.tab[aria-selected=true]{color:var(--text);border-color:var(--accent);background:#ffffff0f}.tab-count{color:var(--text-dim);font-variant-numeric:tabular-nums;font-size:.8rem}.level-grid{grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:12px;display:grid}.level-card{box-shadow:none;border-radius:14px;transition:transform .12s,border-color .12s;position:relative}.level-card:hover:not(.locked){border-color:var(--accent);transform:translateY(-2px)}.level-card.solved{border-color:color-mix(in srgb, var(--success) 45%, transparent)}.level-play{font:inherit;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:14px;flex-direction:column;align-items:center;gap:4px;width:100%;padding:14px 10px 10px;display:flex}.level-play:disabled{cursor:not-allowed;opacity:.45}.level-num{font-size:1.6rem;font-weight:800;line-height:1}.level-name{text-align:center;align-items:center;min-height:2.4em;font-size:.9rem;display:flex}.level-card .stars svg{width:20px;height:20px}.level-card .stars{margin:0}.level-best{color:var(--text-dim);font-size:.78rem}.level-replay{width:34px;height:34px;position:absolute;top:4px;right:4px}.level-replay svg{width:18px;height:18px}.locked-hint,.empty-hint{color:var(--text-dim);align-items:center;gap:8px;display:flex}.win .win-moves{font-size:1.05rem}.new-best{font-weight:700;color:var(--success)!important}.win .actions{flex-direction:column}.win .actions .btn{width:100%}.replay-screen{pointer-events:none;flex-direction:column;justify-content:space-between;align-items:center;display:flex;position:absolute;inset:0}.replay-top,.replay-bar{pointer-events:auto;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;padding:8px 14px;display:flex}.replay-badge{color:var(--accent);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:6px;font-size:.8rem;font-weight:700;display:inline-flex}.replay-badge svg{width:18px;height:18px}.replay-progress{font-variant-numeric:tabular-nums;text-align:center;min-width:5em}.speed{margin:0}.level-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.level-row{box-shadow:none;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;display:flex}.level-row-main{align-items:center;gap:10px;min-width:0;display:flex}.level-row-main .stars svg{width:18px;height:18px}.level-row-main .stars{margin:0}.level-row-actions{flex-wrap:wrap;gap:6px;display:flex}.level-row-actions svg{width:18px;height:18px}.editor-page{width:min(1100px,100%)}.ed-toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;display:flex}.ed-name{flex:200px}.ed-size{color:var(--text-dim);align-items:center;gap:6px;display:inline-flex}.ed-size .input{width:4.5em}.ed-palette{flex-wrap:wrap;gap:6px;display:flex}.ed-tool{font:inherit;color:var(--text);border:1px solid var(--panel-border);cursor:pointer;background:#ffffff0a;border-radius:10px;align-items:center;gap:6px;min-height:40px;padding:5px 9px 5px 5px;font-size:.82rem;display:inline-flex}.ed-tool[aria-checked=true]{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 20%, transparent)}.ed-swatch{border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;font-weight:800;display:inline-flex}.ed-help{color:var(--text-dim);margin:8px 0;font-size:.85rem}.ed-main{flex-wrap:wrap;align-items:flex-start;gap:14px;display:flex}.ed-grid-wrap{touch-action:none;background:#00000040;border-radius:12px;max-width:100%;padding:6px;overflow:auto}.ed-grid{--ed-cell:clamp(22px, min(4.2vw, 5.2vh), 40px);-webkit-user-select:none;user-select:none;gap:2px;display:grid}.ed-cell{width:var(--ed-cell);height:var(--ed-cell);font:inherit;font-weight:800;font-size:calc(var(--ed-cell) * .5);color:#fff;cursor:crosshair;border:1px solid #ffffff0d;border-radius:5px;justify-content:center;align-items:center;padding:0;line-height:1;display:flex;position:relative}.t-void{background:#ffffff08}.t-floor,.t-start{background:#33406f}.t-start{color:#ffd23f}.t-goal{color:#0000;background:radial-gradient(circle,#0a0d1a 40%,#38ffb0 41%,#33406f 60%)}.t-fragile{color:#5a2a00;background:#ff9f43}.t-soft,.t-hard{color:var(--g,#ffd23f);background:#33406f}.t-bridge{background:repeating-linear-gradient(45deg, var(--g,#ffd23f) 0 4px, #151a33 4px 9px);opacity:.55}.t-bridge.t-open{opacity:1}.t-teleport{color:#c56bff;background:#33406f}.ed-cell.selected{outline-offset:-2px;z-index:1;outline:3px solid #fff}.ed-cell.linked{box-shadow:0 0 0 2px var(--g,#fff) inset}.ed-cell.target{box-shadow:inset 0 0 0 3px #c56bff}.ed-group{font-size:calc(var(--ed-cell) * .32);color:#fff;text-shadow:0 0 3px #000;position:absolute;bottom:0;right:1px}.ed-props{border:1px solid var(--panel-border);border-radius:12px;flex-direction:column;gap:8px;min-width:200px;padding:12px;display:flex}.ed-props h3{margin:0;font-size:1rem}.ed-props label{color:var(--text-dim);justify-content:space-between;align-items:center;gap:8px;display:flex}.ed-hint{color:var(--text-dim);max-width:240px;margin:0;font-size:.82rem}.ed-status{min-height:1.4em;margin:10px 0}.ed-status[data-kind=ok]{color:var(--success)}.ed-status[data-kind=error]{color:var(--danger)}.ed-actions{flex-wrap:wrap;gap:8px;display:flex}.ed-actions svg{width:18px;height:18px}.ed-text{resize:vertical;width:100%;font-family:ui-monospace,monospace;font-size:.85rem}.settings-page{width:min(900px,100%)}.settings-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;display:grid}.settings-grid section{flex-direction:column;gap:10px;display:flex}.settings-grid h3{margin:8px 0 0;font-size:1.05rem}.setting{justify-content:space-between;align-items:center;gap:12px;display:flex}.setting label{color:var(--text);flex:1}.setting .input{max-width:58%}.switch{width:22px;height:22px;accent-color:var(--accent);outline:1px solid var(--panel-border);outline-offset:1px}:root[data-theme=wood] .input,:root[data-theme=minimal] .input{background:#ffffffe6}:root[data-theme=mono-high-contrast] .input{background:#000}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.hint{color:var(--text-dim);font-size:.88rem}.sync-box{flex-direction:column;gap:8px;display:flex}.sync-code{letter-spacing:.15em;color:var(--accent);font-family:ui-monospace,monospace;font-size:1.2rem}.board{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.board th,.board td{text-align:left;border-bottom:1px solid var(--panel-border);padding:6px 10px}.board th:last-child,.board td:last-child,.board th:first-child,.board td:first-child{text-align:center;width:4em}.board tr.me td{color:var(--accent);font-weight:700}.you-badge{background:var(--accent);color:var(--accent-contrast);border-radius:999px;margin-left:8px;padding:1px 6px;font-size:.75rem}.win-online{flex-direction:column;align-items:center;gap:6px;display:flex}.win-online svg{width:18px;height:18px}.fatal-error{text-align:center;max-width:560px;color:var(--text);margin:18vh auto 0;padding:24px}.fatal-error a{color:var(--accent)}.stars.pop svg{animation:.45s cubic-bezier(.2,1.6,.4,1) both star-pop}.stars.pop svg:first-child{animation-delay:.35s}.stars.pop svg:nth-child(2){animation-delay:.61s}.stars.pop svg:nth-child(3){animation-delay:.87s}@keyframes star-pop{0%{opacity:0;transform:scale(0)rotate(-40deg)}to{opacity:1;transform:scale(1)rotate(0)}}.range-wrap{align-items:center;gap:10px;display:inline-flex}.range{width:140px;accent-color:var(--accent)}.range-value{text-align:right;min-width:3.2em;color:var(--text-dim);font-variant-numeric:tabular-nums}.name-prompt{border:1px solid var(--panel-border);text-align:left;border-radius:12px;margin:12px 0 4px;padding:12px}.name-prompt p{margin:0 0 8px}.name-prompt .row{flex-wrap:nowrap}.name-prompt .input{flex:1}
