@import "https://fonts.googleapis.com/css2?family=Nunito:wght@600;700;800&display=swap";:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{-webkit-user-select:none;user-select:none}body{margin:0}:root{--color-bg:#f5f0e6;--color-panel:#fffaf0;--color-ink:#2c2416;--color-muted:#6b5e4e;--color-silhouette:#3d3a35;--color-accent:#e67e22;--shadow-panel:0 8px 24px #2c24161f;--radius:20px;--pad-page:.75rem;--pad-game:.85rem;--pad-ctrl:.5rem 1rem;--ctrl-min-w:80px;--ctrl-min-h:72px;--ctrl-icon:28px;--ctrl-font:.9rem;--ctrl-label:.85rem;--ctrl-back-min:64px;--title-game:2rem;--title-home:2.75rem;--text-subtitle:.95rem;--app-max-w:1400px;--puzzle-card-min:200px;--puzzle-name:1.1rem;--dialog-max-w:560px;--dialog-title:2rem;--dialog-text:1rem;--artwork-w:320px;--artwork-h:240px;color:var(--color-ink);background:var(--color-bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Nunito,Segoe UI,system-ui,sans-serif;line-height:1.45}*,:before,:after{box-sizing:border-box}body{background:var(--color-bg);-webkit-user-select:none;user-select:none;height:100dvh;margin:0;overflow:hidden}#root{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.app{width:100%;min-height:0;max-width:var(--app-max-w);padding:var(--pad-page);flex-direction:column;flex:1;margin:0 auto;display:flex;overflow:hidden}.app-game{max-width:none;padding:.5rem .75rem}.game{background:var(--color-panel);border-radius:var(--radius);min-height:0;box-shadow:var(--shadow-panel);padding:var(--pad-game);border:2px solid #2c24160f;flex-direction:column;flex:1;display:flex;overflow:hidden}.game-header{flex-shrink:0;grid-template-columns:minmax(64px,1fr) auto minmax(64px,1fr);align-items:center;gap:1rem;margin-bottom:.5rem;display:grid}.game-header h1{text-align:center;font-size:clamp(1.5rem, 4vw, var(--title-game));letter-spacing:-.02em;grid-column:2;margin:0;font-weight:800}.game-header .ctrl-back-small{grid-column:1;justify-self:start}.game-header-spacer{grid-column:3;min-width:64px;min-height:1px}.subtitle{color:var(--color-muted);font-size:var(--text-subtitle);margin:.25rem 0 0}.preview-panel{background:var(--color-panel);border-radius:var(--radius);box-shadow:var(--shadow-panel);border:2px solid #2c24160f;margin-top:1.5rem;padding:1.25rem 1.25rem 1.5rem}.preview-panel h2{margin:0;font-size:1.35rem;font-weight:700}.hint-text{color:var(--color-muted);margin:.35rem 0 1rem;font-size:.9rem}.board-wrap{touch-action:none;-webkit-user-select:none;user-select:none;flex:1;width:100%;min-height:0;margin:0 auto;position:relative}.board-wrap svg{width:100%;height:100%;display:block;overflow:visible}.piece{transition:opacity .12s}.piece-dragging{opacity:.92;filter:drop-shadow(0 6px 10px #00000047)}.piece-snapped{cursor:default}.controls{flex-wrap:wrap;flex-shrink:0;justify-content:center;gap:.85rem;margin-top:.75rem;display:flex}.ctrl{font-family:inherit;font-weight:800;font-size:var(--ctrl-font);color:#fff;background:var(--color-accent);padding:var(--pad-ctrl);min-width:var(--ctrl-min-w);min-height:var(--ctrl-min-h);cursor:pointer;border:none;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:4px;line-height:1.2;transition:transform 80ms,box-shadow 80ms;display:inline-flex;box-shadow:0 4px #0000002e}.ctrl-icon{width:var(--ctrl-icon);height:var(--ctrl-icon);flex-shrink:0}.ctrl-label{font-size:var(--ctrl-label);white-space:nowrap;font-weight:700}.ctrl:hover:not(:disabled){transform:translateY(-1px)}.ctrl:active:not(:disabled){transform:translateY(2px);box-shadow:0 2px #0000002e}.ctrl:disabled{box-shadow:none;cursor:not-allowed;background:#c9bfae}.ctrl:focus-visible{outline-offset:2px;outline:3px solid #fff}.ctrl-hint{background:#16a085}.ctrl-reset{background:#c0392b}.complete-banner{text-align:center;background:#fef5e7;border:2px solid #f39c12;border-radius:16px;flex-direction:column;align-items:center;gap:.75rem;margin-top:1rem;padding:1.25rem;display:flex}.complete-banner p{margin:0;font-size:1.4rem;font-weight:800}.complete-banner .ctrl{background:#16a085}.board-wrap svg:focus{outline:none}.board-wrap svg:focus-visible{outline-offset:-2px;outline:4px solid #f39c12}.rot-handle-line{stroke:#ffffff73;stroke-width:1.5px;stroke-dasharray:4 3;pointer-events:none}.rot-handle-knob{fill:#fff;stroke:var(--color-accent);stroke-width:3px;cursor:pointer;transition:fill .1s}.rot-handle-knob:hover,.rot-handle-knob:active{fill:#e8e0d4}.rot-handle-icon{pointer-events:none;stroke:var(--color-accent);fill:none;stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round}@media (prefers-reduced-motion:reduce){.piece,.ctrl,.rot-handle-knob{transition:none}}@media (width<=899px){.ctrl{min-width:72px;min-height:64px}.ctrl-icon{width:24px;height:24px}.ctrl-label{font-size:.8rem}}@media (width<=480px){.controls{gap:.4rem}.ctrl{min-width:64px;min-height:60px}}body:has(.home){background:#ebe1cf}body:has(.home) .app{max-width:none}.home{--home-top:clamp(10px, 5.4vh, 90px);width:100%;min-height:0;margin-top:var(--home-top);background:var(--color-bg);border:3px dashed #2c241629;border-radius:clamp(24px,4vh,56px);flex-direction:column;flex:1;align-self:stretch;padding:clamp(8px,1.3vh,18px);display:flex;overflow:hidden}.home-header{text-align:center;flex:none;margin-bottom:clamp(6px,1.2vh,14px)}.home-header h1{font-size:clamp(1.5rem, 2.6vh, var(--title-home));letter-spacing:-.02em;margin:0;font-weight:800;line-height:1.05}.home-header .subtitle{font-size:clamp(.9rem, 1.4vh, var(--text-subtitle));margin-top:.25em;font-weight:600;line-height:1.2}.puzzle-grid{flex:1;grid-template-rows:repeat(2,1fr);grid-template-columns:repeat(3,1fr);gap:clamp(10px,min(1.8vh,1.4vw),24px);min-height:0;margin:0;padding:0;list-style:none;display:grid}.puzzle-grid>li{min-height:0;display:flex}.puzzle-card{border-radius:var(--radius);background:var(--color-panel);width:100%;box-shadow:var(--shadow-panel);cursor:pointer;border:2px solid #2c24161a;flex-direction:column;flex:1;align-items:center;gap:clamp(4px,.8vh,12px);padding:clamp(8px,1.3vh,18px);font-family:inherit;transition:transform .1s,box-shadow .1s;display:flex}.puzzle-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px #2c241629}.puzzle-card:focus-visible{outline:3px solid var(--color-accent);outline-offset:3px}.puzzle-thumb{flex:1;width:100%;min-height:0}.puzzle-thumb svg{width:100%;height:100%;display:block}.puzzle-name{font-weight:800;font-size:var(--puzzle-name);line-height:1.15}@media (orientation:portrait){.home{width:100%}.puzzle-grid{grid-template-rows:none;grid-template-columns:repeat(2,1fr);gap:clamp(10px,2.5vw,18px)}}.dwell-btn{position:relative;overflow:hidden}.dwell-progress{pointer-events:none;transform-origin:0;background:#ffd34d;height:8px;position:absolute;inset:auto 0 0;transform:scaleX(0)}.dwell-btn.is-dwelling .dwell-progress{animation:dwell-sweep var(--dwell-ms,.85s) linear infinite}@keyframes dwell-sweep{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@media (prefers-reduced-motion:reduce){.dwell-btn.is-dwelling .dwell-progress{background:#ffd34d;animation:none;transform:scaleX(1)}}.complete-dialog{border-radius:var(--radius);background:0 0;border:none;max-width:90vw;padding:0}.complete-dialog::backdrop{background:#2c241680}.complete-dialog-body{background:var(--color-panel);border-radius:var(--radius);text-align:center;border:3px solid #f39c12;flex-direction:column;align-items:center;gap:.75rem;padding:2rem 1.75rem;display:flex}.complete-dialog-body h2{font-size:var(--dialog-title);color:var(--color-accent);margin:0;font-weight:800}.complete-dialog-body p{color:var(--color-muted);font-size:var(--dialog-text);margin:0 0 .5rem}.complete-dialog-actions{flex-wrap:wrap;justify-content:center;gap:1.25rem;display:flex}.complete-dialog--achievement{max-width:min(var(--dialog-max-w), 92vw)}.complete-dialog--achievement .complete-dialog-body{max-height:92dvh;padding:1.75rem 1.5rem 1.5rem;overflow-y:auto}.complete-dialog--achievement .complete-dialog-body p{margin-bottom:0}.completion-artwork{width:100%;max-width:var(--artwork-w);height:clamp(150px, 28dvh, var(--artwork-h));background:var(--color-bg);border:2px solid #2c24161f;border-radius:16px;padding:.5rem;box-shadow:inset 0 1px 3px #2c241614}.completion-artwork svg{width:100%;height:100%;display:block}@media (height<=600px){.complete-dialog--achievement .complete-dialog-body{gap:.5rem;padding:1.25rem}.complete-dialog--achievement .complete-dialog-body h2{font-size:1.5rem}.completion-artwork{height:clamp(120px,24dvh,200px)}}.ctrl-back{background:#6b5e4e}.ctrl-back-small{font-size:var(--ctrl-label);min-height:var(--ctrl-back-min);min-width:var(--ctrl-back-min);background:#6b5e4e;padding:.4rem .9rem}@media (width>=2560px) and (height>=1440px){:root{--pad-page:1.25rem;--pad-game:1.25rem;--pad-ctrl:.85rem 1.75rem;--ctrl-min-w:144px;--ctrl-min-h:128px;--ctrl-icon:48px;--ctrl-font:1.2rem;--ctrl-label:1.2rem;--ctrl-back-min:96px;--title-game:3rem;--title-home:4rem;--text-subtitle:1.35rem;--app-max-w:2800px;--puzzle-card-min:400px;--puzzle-name:1.6rem;--dialog-max-w:960px;--dialog-title:3rem;--dialog-text:1.5rem;--artwork-w:480px;--artwork-h:360px}}.dpad-stage{background:var(--color-panel,#fffaf0);border-radius:var(--radius,20px);min-height:0;box-shadow:var(--shadow-panel);border:2px solid #2c24160f;flex-direction:column;flex:1;gap:.4rem;padding:.6rem .75rem 1.6rem;display:flex}.game.dpad-game{box-shadow:none;background:0 0;border:none;padding:0;overflow:visible}.dpad-banner{text-align:center;min-height:3.4rem;color:var(--color-ink,#2c2416);background:#ffffffd9;border:2px solid #2c241614;border-radius:14px;flex-wrap:wrap;flex-shrink:0;justify-content:center;align-items:center;gap:.85rem;margin:0;padding:.35rem 1rem;font-size:clamp(1.15rem,2.4vh,1.7rem);font-weight:800;display:flex}.dpad-banner-ok{color:#145a32;background:#d9f2e3;border-color:#27ae60}.dpad-banner-warn{color:#7e4700;background:#fdebd0;border-color:#e67e22}.dpad-banner-line{display:inline-block}.dpad-banner-line.is-ok{animation:.45s cubic-bezier(.34,1.56,.64,1) dpad-banner-pop}.dpad-banner-line.is-warn{animation:.45s ease-out dpad-banner-shake}@keyframes dpad-banner-pop{0%{transform:translateY(0)scale(1)}35%{transform:translateY(-4px)scale(1.08)}to{transform:translateY(0)scale(1)}}@keyframes dpad-banner-shake{0%,to{transform:translate(0)}15%{transform:translate(-12px)}30%{transform:translate(11px)}45%{transform:translate(-9px)}60%{transform:translate(7px)}75%{transform:translate(-4px)}}@media (prefers-reduced-motion:reduce){.dpad-banner-line.is-ok,.dpad-banner-line.is-warn{animation:none}}.dpad-banner-btn{min-width:110px;min-height:64px;color:var(--color-ink,#2c2416);box-shadow:none;background:#ffffffeb;border:2px solid #2c241626;border-radius:12px;padding:.2rem 1rem;font-size:1rem}.dpad-banner-confirm{color:#fff;background:#27ae60;border-color:#1e8449}.dpad-board-wrap{min-height:0;box-shadow:none;background:0 0;border:0;border-radius:0;flex:1;position:relative}.dpad-board{touch-action:none;-webkit-user-select:none;user-select:none;transform-origin:50%;flex:1;min-height:0;transform:scale(.9)}.dpad-silhouette{filter:drop-shadow(0 12px 24px #0000006b)}.dpad-hint-guide{animation:1s ease-in-out infinite dpad-hint-pulse}@keyframes dpad-hint-pulse{0%,to{opacity:1}50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.dpad-hint-guide{animation:none}}.dpad-board-wrap .ctrl svg{width:var(--ctrl-icon,28px);height:var(--ctrl-icon,28px)}.dpad-tray-icon{width:2.6rem!important;height:2.6rem!important}.dpad-tray{z-index:3;flex-wrap:wrap;justify-content:flex-end;gap:.75rem;max-width:min(38vw,24rem);display:flex;position:absolute;top:.5rem;right:.5rem}.dpad-tray-btn{background:var(--color-panel,#f5f0e6);min-width:84px;min-height:84px;color:var(--color-ink,#2c2416);flex-direction:column;justify-content:center;align-items:center;gap:.15rem;padding:.35rem .55rem;display:flex}.dpad-tray-label{text-align:center;font-size:.8rem;font-weight:700;line-height:1.1}.dpad-utility{z-index:3;gap:.75rem;display:flex;position:absolute;top:.5rem;left:.5rem}.dpad-utility-btn{background:var(--color-panel,#f5f0e6);min-height:64px;color:var(--color-ink,#2c2416);border:2px solid #2c24161f;gap:.4rem;padding:.3rem .55rem;box-shadow:0 2px #0000001f;flex-direction:row!important;min-width:64px!important}.dpad-console{flex-wrap:wrap;flex-shrink:0;justify-content:center;align-items:center;gap:3rem;padding:.15rem 0 .6rem;display:flex}.dpad-group{background:#2c24160d;border:2px solid #2c24160f;border-radius:18px;justify-content:center;align-items:center;gap:3rem;padding:.35rem .5rem;display:flex}.dpad-group-orient{flex-direction:row}.dpad-group-orient>.dpad-turn-btn:hover:not(:disabled),.dpad-group-orient>.dpad-turn-btn:focus-visible{transform-origin:bottom;z-index:1;transform:scale(1.75)}.dpad-wide-btn{justify-content:center;gap:.15rem;min-height:64px;padding:.25rem .5rem;flex-direction:column!important;min-width:76px!important}.dpad-group-actions{gap:2.5rem}.dpad-group>.ctrl{min-width:72px;min-height:72px;padding:.3rem .45rem}.dpad-anchored-control{color:#fff;cursor:pointer;touch-action:none;opacity:.75;transform-box:fill-box;transform-origin:50%;outline:none;transition:opacity .15s,transform .15s,visibility .15s}.dpad-anchored-control:hover,.dpad-anchored-control:focus-visible{opacity:1;transform:scale(1.75)}.dpad-board:has(.dpad-anchored-control:hover) .dpad-anchored-control:not(:hover){opacity:0;visibility:hidden}.dpad-anchored-hit{fill:#0000;pointer-events:all}.dpad-anchored-disc{fill:#434343;stroke:#ffffffd9;stroke-width:1.5px}.dpad-anchored-arrow{fill:currentColor;stroke:currentColor;stroke-width:3px;stroke-linejoin:round;pointer-events:none}.dpad-anchored-control:hover .dpad-anchored-disc{fill:#5c5c5c}.dpad-anchored-control.is-active .dpad-anchored-disc{fill:#e67e22;stroke:#fff}.dpad-anchored-ring{fill:none;stroke:#ffd34d;stroke-width:3px;opacity:0;pointer-events:none}.dpad-anchored-control:focus-visible .dpad-anchored-ring{opacity:1}.dpad-group-actions .ctrl{min-width:110px;min-height:72px}.dpad-group-actions .ctrl-place .ctrl-label{font-size:1.15rem}.ctrl-place{background:#27ae60;box-shadow:0 4px #0000002e}.ctrl-place:disabled{box-shadow:none;cursor:default;background:#b7bfae}.dpad-reset-btn{padding:.3rem .75rem}@media (width<=719px){.dpad-stage{padding:.5rem .55rem 1.2rem;overflow-y:auto}.dpad-board-wrap{flex:none}.dpad-board-wrap .dpad-board{height:min(115vw,44vh)}.dpad-tray{justify-content:flex-start;max-width:none;margin-top:.45rem;position:static}.dpad-utility{margin-top:.45rem;padding-bottom:.35rem;position:static}.dpad-console{flex-wrap:wrap;gap:1rem;padding-top:.35rem}}.classic-pad-game .dpad-stage{background:var(--color-panel,#fffaf0);border-radius:var(--radius,20px);min-height:0;box-shadow:var(--shadow-panel);border:2px solid #2c24160f;flex-direction:column;flex:1;gap:.4rem;padding:.6rem .75rem 1.6rem;display:flex}.classic-pad-game.game.dpad-game{box-shadow:none;background:0 0;border:none;padding:0;overflow:visible}.classic-pad-game .dpad-banner{text-align:center;min-height:3.4rem;color:var(--color-ink,#2c2416);background:#ffffffd9;border:2px solid #2c241614;border-radius:14px;flex-wrap:wrap;flex-shrink:0;justify-content:center;align-items:center;gap:.5rem;margin:0;padding:.35rem 1rem;font-size:clamp(1.15rem,2.4vh,1.7rem);font-weight:800;display:flex}.classic-pad-game .dpad-banner-ok{color:#145a32;background:#d9f2e3;border-color:#27ae60}.classic-pad-game .dpad-banner-warn{color:#7e4700;background:#fdebd0;border-color:#e67e22}.classic-pad-game .dpad-banner-btn{min-width:110px;min-height:64px;color:var(--color-ink,#2c2416);box-shadow:none;background:#ffffffeb;border:2px solid #2c241626;border-radius:12px;padding:.2rem 1rem;font-size:1rem}.classic-pad-game .dpad-banner-confirm{color:#fff;background:#27ae60;border-color:#1e8449}.classic-pad-game .dpad-board-wrap{min-height:0;box-shadow:none;background:0 0;border:0;border-radius:0;flex:1;position:relative}.classic-pad-game .dpad-board{touch-action:none;-webkit-user-select:none;user-select:none;transform-origin:50%;flex:1;min-height:0;transform:scale(.9)}.classic-pad-game .dpad-silhouette{filter:drop-shadow(0 12px 24px #0000006b)}.classic-pad-game .dpad-hint-guide{animation:1s ease-in-out infinite dpad-hint-pulse}@media (prefers-reduced-motion:reduce){.classic-pad-game .dpad-hint-guide{animation:none}}.classic-pad-game .dpad-board-wrap .ctrl svg{width:var(--ctrl-icon,28px);height:var(--ctrl-icon,28px)}.classic-pad-game .dpad-tray-icon{width:2.6rem!important;height:2.6rem!important}.classic-pad-game .dpad-tray{z-index:3;flex-wrap:wrap;justify-content:flex-end;gap:.45rem;max-width:min(38vw,24rem);display:flex;position:absolute;top:.5rem;right:.5rem}.classic-pad-game .dpad-tray-btn{background:var(--color-panel,#f5f0e6);min-width:84px;min-height:84px;color:var(--color-ink,#2c2416);flex-direction:column;justify-content:center;align-items:center;gap:.15rem;padding:.35rem .55rem;display:flex}.classic-pad-game .dpad-tray-label{text-align:center;font-size:.8rem;font-weight:700;line-height:1.1}.classic-pad-game .dpad-utility{z-index:3;gap:.45rem;display:flex;position:absolute;top:.5rem;left:.5rem}.classic-pad-game .dpad-utility-btn{background:var(--color-panel,#f5f0e6);min-height:64px;color:var(--color-ink,#2c2416);border:2px solid #2c24161f;gap:.4rem;padding:.3rem .55rem;box-shadow:0 2px #0000001f;flex-direction:row!important;min-width:64px!important}.classic-pad-game .dpad-console{flex-wrap:wrap;flex-shrink:0;justify-content:center;align-items:center;gap:3rem;padding:.15rem 0 .6rem;display:flex}.classic-pad-game .dpad-group{background:#2c24160d;border:2px solid #2c24160f;border-radius:18px;justify-content:center;align-items:center;gap:3rem;padding:.35rem .5rem;display:flex}.classic-pad-game .dpad-group-move{background:0 0;border-color:#0000;padding:0;overflow:visible}.classic-pad-game .dpad-group-orient{flex-direction:row}.classic-pad-game .dpad-wide-btn{justify-content:center;gap:.15rem;min-height:64px;padding:.25rem .5rem;flex-direction:column!important;min-width:76px!important}.classic-pad-game .dpad-group-actions{gap:2.5rem}.classic-pad-game .dpad-group>.ctrl{min-width:72px;min-height:72px;padding:.3rem .45rem}.classic-pad-game .dpad-pad{--dpad-size:264px;--dpad-btn:80px;--dpad-inset:12px;--dpad-arrow:56px;width:var(--dpad-size);height:var(--dpad-size);background:#434343;border-radius:50%;position:relative;overflow:visible;box-shadow:0 4px #00000040}.classic-pad-game .dpad-btn{width:var(--dpad-btn);height:var(--dpad-btn);color:#fff;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:none;transform-origin:50%;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;min-width:72px;min-height:72px;margin:0;padding:0;transition:transform .12s,background .12s;display:flex;position:absolute}.classic-pad-game .dpad-btn[data-direction=up]{top:var(--dpad-inset);left:calc(50% - var(--dpad-btn) / 2)}.classic-pad-game .dpad-btn[data-direction=down]{bottom:var(--dpad-inset);left:calc(50% - var(--dpad-btn) / 2)}.classic-pad-game .dpad-btn[data-direction=left]{left:var(--dpad-inset);top:calc(50% - var(--dpad-btn) / 2)}.classic-pad-game .dpad-btn[data-direction=right]{right:var(--dpad-inset);top:calc(50% - var(--dpad-btn) / 2)}.classic-pad-game .dpad-arrow{width:var(--dpad-arrow);height:var(--dpad-arrow);pointer-events:none}.classic-pad-game .dpad-arrow path{fill:currentColor;stroke:currentColor}.classic-pad-game .dpad-btn:hover:not(:disabled){background:#ffffff24}.classic-pad-game .dpad-pad-active .dpad-btn.dpad-btn-active:not(:disabled){z-index:2;background:#ffffff38;border-radius:50%;width:100%;height:100%;inset:0;transform:none}.classic-pad-game .dpad-pad-active .dpad-btn.dpad-btn-active:not(:disabled) .dpad-arrow{width:60%;height:60%}.classic-pad-game .dpad-pad-active .dpad-btn:not(.dpad-btn-active){visibility:hidden;pointer-events:none}.classic-pad-game .dpad-btn:disabled{opacity:.35;color:#cfcfcf;cursor:not-allowed;background:0 0;transform:none}.classic-pad-game .dpad-btn:focus-visible{outline-offset:2px;z-index:2;outline:4px solid #ffd34d}@media (prefers-reduced-motion:reduce){.classic-pad-game .dpad-btn{transition:none}}@media (width>=2560px) and (height>=1440px){.classic-pad-game .dpad-pad{--dpad-size:360px;--dpad-btn:112px;--dpad-inset:18px;--dpad-arrow:78px}}.classic-pad-game .dpad-group-actions .ctrl{min-width:110px;min-height:72px}.classic-pad-game .dpad-group-actions .ctrl-place .ctrl-label{font-size:1.15rem}.classic-pad-game .ctrl-place{background:#27ae60;box-shadow:0 4px #0000002e}.classic-pad-game .ctrl-place:disabled{box-shadow:none;cursor:default;background:#b7bfae}.classic-pad-game .dpad-reset-btn{padding:.3rem .75rem}@media (width<=719px){.classic-pad-game .dpad-stage{padding:.5rem .55rem 1.2rem;overflow-y:auto}.classic-pad-game .dpad-board-wrap{flex:none}.classic-pad-game .dpad-board-wrap .dpad-board{height:min(115vw,44vh)}.classic-pad-game .dpad-tray{justify-content:flex-start;max-width:none;margin-top:.45rem;position:static}.classic-pad-game .dpad-utility{margin-top:.45rem;padding-bottom:.35rem;position:static}.classic-pad-game .dpad-console{flex-wrap:wrap;gap:1rem;padding-top:.35rem}.classic-pad-game .dpad-pad{--dpad-size:216px;--dpad-btn:72px;--dpad-inset:10px;--dpad-arrow:50px}}.prototype-header{flex-shrink:0;align-items:center;gap:.75rem;display:flex}.prototype-header h1{font-size:clamp(1.5rem, 4vw, var(--title-game));letter-spacing:-.02em;margin:0;font-weight:800}.prototype-puzzle-name{font-size:var(--text-subtitle);color:var(--color-muted);margin:.5rem 0 0;font-weight:700}.playtest{flex:1;gap:.75rem;min-height:0;display:flex}.playtest-main{flex-direction:column;flex:1;gap:.5rem;min-width:0;min-height:0;display:flex}.playtest-board{touch-action:none;-webkit-user-select:none;user-select:none;background:var(--color-panel);border-radius:var(--radius);width:100%;height:auto;min-height:0;box-shadow:var(--shadow-panel);border:2px solid #2c24160f;flex:1;display:block}.playtest-feedback{text-align:center;min-height:2.2rem;color:var(--color-ink);flex-shrink:0;justify-content:center;align-items:center;margin:0;font-size:1.05rem;font-weight:800;display:flex}.playtest-side{flex-direction:column;flex-shrink:0;gap:.5rem;width:min(20rem,34vw);padding:.25rem;display:flex;overflow-y:auto}.playtest-subtitle{margin:0;font-size:1.1rem;font-weight:800}.selector-grid{grid-template-columns:repeat(2,minmax(72px,1fr));gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.selector-grid>li{display:flex}.selector{background:var(--color-panel);min-width:72px;min-height:72px;color:var(--color-ink);cursor:pointer;border:3px solid #2c241626;border-radius:14px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;padding:.45rem .35rem;font-family:inherit;font-size:.8rem;font-weight:700;line-height:1.15;transition:border-color .1s,background-color .1s;display:inline-flex}.selector:hover:not(:disabled){border-color:var(--color-accent)}.selector:disabled{opacity:.55;cursor:default;border-color:#2c24161a}.selector:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.selector-selected{border-color:var(--color-accent);background:#fef5e7;box-shadow:0 4px #0000001f}.selector-icon{width:34px;height:34px;color:var(--color-silhouette)}.selector-label{white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.playtest-controls{flex-wrap:nowrap;margin-top:auto}.playtest-controls .ctrl{flex:1;min-width:0;min-height:64px;padding:.5rem .35rem}@media (width>=720px){.playtest-controls{grid-template-columns:repeat(2,minmax(64px,1fr));gap:.4rem;display:grid}.playtest-controls .ctrl{width:100%}}@media (width<=719px){.playtest{flex-direction:column;overflow-y:auto}.playtest-side{width:100%;overflow:visible}.playtest-board{aspect-ratio:1;flex-shrink:0;height:auto}.playtest-controls{flex-wrap:wrap;margin-top:0}.playtest-controls .ctrl{flex:1 0 calc(33% - .4rem);min-height:64px}}@media (prefers-reduced-motion:reduce){.selector{transition:none}}
