:root{--cream:#fff7e8;--paper:#fffdf7;--ink:#20304a;--ink-soft:#5d6576;--violet:#6c4bf4;--violet-dark:#3d28a2;--teal:#13b8a6;--yellow:#ffc83d;--coral:#ff6b6b;--green:#2eb67d;--blue:#3aa8ff;--pink:#ef5da8;--line:3px solid var(--ink);--toy-shadow:0 7px 0 var(--ink), 0 14px 30px #20304a21;color:var(--ink);font-synthesis:none;text-rendering:optimizelegibility;font-family:Nunito,Avenir Next,Avenir,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:var(--cream);min-width:320px;min-height:100%}body{background:radial-gradient(circle at 5% 6%, #ffc83d52, transparent 21rem), radial-gradient(circle at 96% 90%, #13b8a62e, transparent 24rem), var(--cream);min-width:320px;min-height:100dvh;margin:0;overflow-x:hidden}body.is-playing{overscroll-behavior:none;height:100dvh;overflow:hidden}button,input{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible{outline-offset:3px;outline:4px solid #6c4bf459}.sr-only{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.ambient-shapes{z-index:-1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.ambient{opacity:.12;filter:saturate(.7);display:block;position:absolute}.ambient--circle{border:28px solid var(--violet);border-radius:50%;width:190px;height:190px;top:8%;right:-72px;transform:rotate(12deg)}.ambient--triangle{background:var(--coral);clip-path:polygon(50% 0,100% 100%,0 100%);width:200px;height:200px;bottom:-50px;left:-30px;transform:rotate(-14deg)}.ambient--square{border:18px solid var(--teal);border-radius:18px;width:92px;height:92px;top:45%;left:3%;transform:rotate(22deg)}.screen-shell{width:min(1180px,100%);min-height:100dvh;margin:0 auto;padding:clamp(24px,4vw,58px);position:relative}.screen-shell--centered{flex-direction:column;justify-content:center;align-items:center;gap:24px;display:flex}.toy-card{border:var(--line);box-shadow:var(--toy-shadow);background:#fffdf7f0;border-radius:28px}.eyebrow{color:var(--violet-dark);letter-spacing:.16em;text-transform:uppercase;margin:0 0 8px;font-size:.76rem;font-weight:900}.brand{color:var(--ink);letter-spacing:-.11em;filter:drop-shadow(0 7px #20304a29);align-items:center;font-family:Arial Rounded MT Bold,Avenir Next,system-ui,sans-serif;font-size:clamp(4.1rem,10vw,7.6rem);font-weight:1000;line-height:.8;display:inline-flex;transform:rotate(-1.5deg)}.brand>span:first-child{color:var(--violet)}.brand>span:nth-child(2){color:var(--coral);transform:translateY(5px)}.brand>span:nth-child(3){color:var(--teal)}.brand-x{position:relative}.brand-x i{aspect-ratio:1;border:2px solid var(--ink);background:var(--yellow);border-radius:50%;width:24%;position:absolute;bottom:5%;right:4%}.brand--compact{letter-spacing:-.12em;filter:none;font-size:2.3rem}.simple-header{top:max(20px, env(safe-area-inset-top));justify-content:space-between;align-items:center;display:flex;position:absolute;left:clamp(20px,4vw,48px);right:clamp(20px,4vw,48px)}.icon-button{border:2px solid var(--ink);background:var(--paper);width:48px;height:48px;box-shadow:0 3px 0 var(--ink);cursor:pointer;border-radius:15px;place-items:center;padding:0;font-size:1.5rem;font-weight:900;line-height:1;display:inline-grid}.icon-button:active{box-shadow:0 1px 0 var(--ink);transform:translateY(2px)}.primary-button,.secondary-button{border:var(--line);cursor:pointer;border-radius:17px;justify-content:center;align-items:center;gap:14px;width:100%;min-height:56px;font-weight:900;transition:transform .12s,box-shadow .12s,background .12s;display:flex}.primary-button{color:#fff;background:var(--violet);box-shadow:0 6px 0 var(--violet-dark)}.primary-button>span:last-child{font-size:1.5em;line-height:1}.primary-button .auto-count{font-variant-numeric:tabular-nums;border:2px solid #ffffffb8;border-radius:50%;place-items:center;width:31px;height:31px;font-size:.95rem;display:grid}.primary-button:hover{box-shadow:0 7px 0 var(--violet-dark);background:#6040eb;transform:translateY(-1px)}.primary-button:active{box-shadow:0 2px 0 var(--violet-dark);transform:translateY(4px)}.primary-button--large{min-height:64px;padding:14px 22px;font-size:1.05rem}.secondary-button{background:0 0;border-width:2px}.secondary-button:hover{background:#20304a0f}.setup-screen{grid-template-columns:minmax(0,1.12fr) minmax(360px,.78fr);align-items:center;gap:clamp(34px,7vw,96px);display:grid}.setup-hero h1{letter-spacing:-.045em;max-width:720px;margin:18px 0 0;font-family:Arial Rounded MT Bold,Avenir Next,system-ui,sans-serif;font-size:clamp(2rem,4.4vw,4rem);font-weight:1000;line-height:1.02}.game-instruction{color:var(--ink-soft);margin:16px 0 0;font-size:clamp(.95rem,1.5vw,1.1rem);font-weight:750}.setup-hero h1 em,.handoff-card h1 em{color:var(--violet);font-style:normal}.setup-panel{padding:clamp(24px,4vw,36px)}.panel-heading{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:28px;display:flex}.panel-heading h2{letter-spacing:-.04em;margin:0;font-family:Arial Rounded MT Bold,Avenir Next,system-ui,sans-serif;font-size:clamp(1.8rem,3vw,2.5rem)}.player-count-row{justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.language-picker{border:2px solid var(--ink);background:#fff;border-radius:13px;grid-template-columns:repeat(2,44px);margin:0;padding:0;display:grid;overflow:hidden}.language-picker label{cursor:pointer;display:block;position:relative}.language-picker input{opacity:0;pointer-events:none;position:absolute}.language-picker span{width:44px;height:44px;color:var(--ink-soft);place-items:center;font-size:.78rem;font-weight:1000;display:grid}.language-picker label+label span{border-left:1.5px solid #20304a40}.language-picker input:checked+span{color:#fff;background:var(--violet)}.language-picker input:focus-visible+span{outline-offset:-4px;outline:4px solid #6c4bf459}.stepper{border:2px solid var(--ink);background:#fff;border-radius:13px;grid-template-columns:42px 42px 42px;align-items:center;display:grid;overflow:hidden}.stepper button{cursor:pointer;background:#6c4bf41a;border:0;height:40px;padding:0;font-size:1.45rem;font-weight:900}.stepper button:disabled{cursor:not-allowed;opacity:.28}.stepper output{text-align:center;font-weight:1000}.player-fields{gap:13px;max-height:min(350px,38vh);padding:3px 5px 5px 2px;display:grid;overflow-y:auto}.player-name-input{border:2px solid var(--ink);width:100%;height:50px;color:var(--ink);background:#fff;border-radius:13px;padding:0 15px;font-size:1rem;font-weight:800}.player-name-input:hover{border-color:var(--violet)}.player-field.has-error .player-name-input{background:#fff2f0;border-color:#c83535}.field-error,.form-error{color:#a82020;margin:5px 3px 0;font-size:.72rem;font-weight:800;display:block}.form-error{background:#fff2f0;border-radius:10px;padding:10px}.assist-toggle{cursor:pointer;grid-template-columns:auto 1fr;align-items:center;gap:11px;margin:20px 0;display:grid}.difficulty-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:20px 0;display:grid}.difficulty-options .assist-toggle{background:#fff;border:1.5px solid #20304a38;border-radius:14px;gap:7px;min-height:48px;margin:0;padding:7px}.assist-toggle input{opacity:0;pointer-events:none;position:absolute}.switch{border:2px solid var(--ink);background:#d8d5cd;border-radius:999px;width:44px;height:26px;transition:background .16s;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .16s;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #00000040}.assist-toggle input:checked+.switch{background:var(--teal)}.assist-toggle--hard input:checked+.switch{background:var(--coral)}.assist-toggle input:checked+.switch:after{transform:translate(18px)}.assist-toggle input:focus-visible+.switch{outline-offset:3px;outline:4px solid #6c4bf459}.assist-toggle strong{font-size:.86rem}.round-dots{justify-content:center;align-items:center;gap:6px;display:flex}.round-dots span{background:var(--paper);border:1.5px solid #20304a52;border-radius:50%;width:10px;height:10px}.round-dots span.is-done{border-color:var(--teal);background:var(--teal)}.round-dots span.is-current{border-color:var(--ink);background:var(--violet);width:16px;height:16px;box-shadow:0 2px 0 var(--ink)}.game-progress{justify-content:center;align-items:center;gap:10px;display:flex}.level-glyph{border:2px solid var(--ink);width:30px;height:30px;color:var(--violet-dark);background:var(--yellow);box-shadow:0 2px 0 var(--ink);border-radius:10px;flex:0 0 30px;place-items:center;font-size:.9rem;font-weight:1000;line-height:1;display:grid}.handoff-card{text-align:center;width:min(550px,100%);padding:clamp(28px,5vw,50px)}.handoff-icon{color:var(--violet);align-items:center;gap:8px;margin-bottom:6px;font-size:1.8rem;font-weight:1000;display:inline-flex}.handoff-icon span:last-child{color:var(--yellow);-webkit-text-stroke:2px var(--ink)}.handoff-card h1{letter-spacing:-.05em;margin:0 0 24px;font-family:Arial Rounded MT Bold,Avenir Next,system-ui,sans-serif;font-size:clamp(2.2rem,6vw,4rem);line-height:1.04}.pass-timer{border:2px solid var(--ink);background:var(--cream);border-radius:18px;width:min(270px,100%);margin:0 auto;padding:13px 16px 17px;display:grid;position:relative;overflow:hidden}.pass-timer strong{color:var(--violet);font-family:Arial Rounded MT Bold,Avenir Next,system-ui,sans-serif;font-size:3.1rem;line-height:.95}.pass-timer span{letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:900}.pass-timer i{background:var(--violet);height:7px;transform:scaleX(var(--pass-progress));transform-origin:0;position:absolute;bottom:0;left:0;right:0}.play-screen{width:min(1280px,100%);height:100dvh;min-height:520px;padding:max(12px, env(safe-area-inset-top)) clamp(12px, 2.2vw, 30px) max(8px, env(safe-area-inset-bottom));touch-action:manipulation;grid-template-rows:auto auto minmax(0,1fr) 7px;gap:clamp(8px,1.4vh,16px);margin:0 auto;display:grid}.game-header{grid-template-columns:auto 1fr auto;align-items:center;gap:16px;display:grid}.game-header .icon-button{width:42px;height:42px;font-size:1.25rem}.play-hud{border:2px solid var(--ink);background:#fffdf7f0;border-radius:21px;grid-template-columns:1fr auto 1fr;align-items:center;min-height:76px;padding:8px clamp(12px,2vw,22px);display:grid;box-shadow:0 4px #20304acc}.hud-player{align-items:center;gap:10px;min-width:0;display:flex}.avatar{border:2px solid var(--ink);color:#fff;background:var(--violet);width:48px;height:48px;box-shadow:0 3px 0 var(--ink);border-radius:50%;flex:0 0 48px;place-items:center;font-size:1.15rem;font-weight:1000;display:grid}.hud-player strong,.hud-score strong{min-width:0;margin:0;display:block}.hud-player strong{text-overflow:ellipsis;white-space:nowrap;font-size:clamp(.9rem,2vw,1.18rem);overflow:hidden}.timer-wrap{align-self:center;padding:0 14px}.timer-ring{--timer-color:var(--teal);border:2px solid var(--ink);background:conic-gradient(var(--timer-color) calc(var(--timer-progress) * 1turn), #e4ddd2 0);width:72px;height:72px;box-shadow:0 3px 0 var(--ink);border-radius:50%;place-items:center;padding:6px;display:grid}.timer-ring>div{background:var(--paper);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;display:flex}.timer-ring strong{font-family:Arial Rounded MT Bold,Avenir Next,system-ui,sans-serif;font-size:1.6rem;line-height:.95}.timer-ring.is-warning{--timer-color:var(--yellow)}.timer-ring.is-danger{--timer-color:var(--coral)}.hud-score{text-align:right;justify-self:end;align-items:center;gap:6px;display:flex}.hud-score>span{color:#d99d00;font-size:1.15rem}.hud-score>strong{color:var(--violet-dark);font-family:Arial Rounded MT Bold,Avenir Next,system-ui,sans-serif;font-size:clamp(1.25rem,2.7vw,2rem);line-height:1}.play-layout{grid-template-columns:minmax(0,1fr) minmax(270px,.38fr);gap:clamp(10px,1.5vw,18px);min-height:0;display:grid}.board,.tray{min-width:0;min-height:0;box-shadow:0 5px 0 var(--ink);padding:clamp(12px,1.8vw,20px);overflow:hidden}.board{background:radial-gradient(circle,#20304a14 1.5px,#0000 1.7px) 0 0/21px 21px,#f8eddb;grid-template-rows:minmax(0,1fr);display:grid}.tray{background:#fffdf7;grid-template-rows:minmax(0,1fr);display:grid}.socket-grid{grid-template-columns:repeat(4,minmax(90px,1fr));place-items:center;gap:clamp(8px,2vmin,24px);min-height:0;padding:10px;display:grid}.socket-grid[data-count="1"]{grid-template-columns:minmax(120px,240px);justify-content:center}.socket-grid[data-count="2"],.socket-grid[data-count="3"],.socket-grid[data-count="4"]{grid-template-columns:repeat(2,minmax(110px,220px));justify-content:center}.socket-motion{--start-x:-8%;--start-y:6%;--end-x:8%;--end-y:-6%;--active-motion-duration:var(--motion-duration);place-items:center;width:100%;height:100%;min-height:0;display:grid}.motion-path-1{--start-x:9%;--start-y:-5%;--end-x:-9%;--end-y:5%}.motion-path-2{--start-x:-7%;--start-y:-7%;--end-x:7%;--end-y:7%}.motion-path-3{--start-x:8%;--start-y:5%;--end-x:-8%;--end-y:-5%}.has-moving-sockets .socket-motion{animation:socket-drift var(--active-motion-duration) var(--motion-delay) ease-in-out infinite alternate}.is-hard .socket-motion,.is-hard .piece-motion{--active-motion-duration:var(--hard-motion-duration)}.play-screen:not(.is-hard).is-drop-tracking .socket-motion,.has-moving-sockets:not(.is-hard).is-targeting .socket-motion,.socket-motion.is-settled{animation-play-state:paused}.socket{aspect-ratio:1;width:min(100%,clamp(105px,14vmin,165px));max-height:100%;color:var(--ink);cursor:pointer;touch-action:manipulation;background:#fffdf785;border:3px dashed #20304a73;border-radius:24px;place-items:center;padding:12px;transition:transform .13s,border-color .13s,background .13s,box-shadow .13s;display:grid;position:relative}.socket:hover,.socket.is-hovered{border-color:var(--violet);background:#6c4bf414;transform:scale(1.025);box-shadow:inset 0 0 0 4px #6c4bf41a}.socket.is-filled{border-style:solid;border-color:var(--ink);cursor:default;background:#fff;animation:.28s cubic-bezier(.2,1.5,.4,1) socket-pop;box-shadow:0 4px #20304ab8,inset 0 0 0 5px #2eb67d29}.socket.is-wrong{border-color:var(--coral);animation:.3s gentle-wobble}.shape-art{pointer-events:none;filter:drop-shadow(0 4px #20304a33);width:100%;height:100%;display:block;overflow:visible}.socket .shape-art{width:min(78%,105px);height:min(78%,105px)}.shape-art--socket{opacity:.2;filter:none}.shape-art--socket .shape-marks{opacity:.45}.socket.is-filled .shape-art--socket{color:var(--shape-color);opacity:1;filter:drop-shadow(0 4px #20304a38)}.socket.is-filled .shape-marks{stroke:var(--shape-accent);opacity:1}.piece-grid{grid-template-columns:repeat(2,minmax(92px,1fr));place-content:center;gap:clamp(4px,1vh,12px);min-height:0;padding:8px 0;display:grid}.piece-grid[data-count="1"]{grid-template-columns:minmax(120px,180px)}.piece-motion{--active-motion-duration:var(--motion-duration);--resting-angle:-18deg;place-items:center;width:100%;height:100%;display:grid}.piece:nth-child(4n+2) .piece-motion{--resting-angle:26deg}.piece:nth-child(4n+3) .piece-motion{--resting-angle:-32deg}.piece:nth-child(4n) .piece-motion{--resting-angle:14deg}.has-rotating-pieces .piece-motion{animation:piece-spin var(--active-motion-duration) var(--motion-delay) linear infinite}.has-rotating-pieces .piece-motion.is-reverse{animation-direction:reverse}.has-rotating-pieces .piece.is-dragging .piece-motion,.has-rotating-pieces:not(.is-hard) .piece.is-selected .piece-motion{animation-play-state:paused}.piece{cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;background:0 0;border:2px solid #0000;border-radius:18px;place-items:center;min-width:74px;min-height:74px;padding:5px;transition:transform .15s,background .15s,border-color .15s,opacity .18s;display:grid;position:relative}.piece .shape-art{width:clamp(62px,9vmin,96px);height:clamp(62px,9vmin,96px)}.piece:hover,.piece.is-selected{border-color:var(--violet);background:#6c4bf414;transform:translateY(-3px)rotate(-1deg)}.piece.is-selected:after{border:2px solid var(--ink);color:#fff;background:var(--violet);content:"✓";border-radius:50%;place-items:center;width:23px;height:23px;font-size:.7rem;font-weight:1000;display:grid;position:absolute;top:-6px;right:-4px}.piece.is-dragging{opacity:.18}.piece.is-placed{opacity:0;pointer-events:none;transform:scale(.2)}.piece.is-wrong{animation:.3s gentle-wobble}.drag-ghost{z-index:1000;pointer-events:none;will-change:transform;filter:drop-shadow(0 14px 12px #20304a47);width:96px;height:96px;position:fixed;top:0;left:0}.time-track{border:1.5px solid var(--ink);background:#e4ddd2;border-radius:999px;overflow:hidden}.time-track i{border-radius:inherit;background:linear-gradient(90deg, var(--violet), var(--teal));transform-origin:0;will-change:transform;width:100%;height:100%;display:block}.turn-complete .board{animation:.42s board-celebrate}.result-card,.round-card,.level-card,.final-card{text-align:center;width:min(590px,100%);padding:clamp(27px,5vw,46px)}.result-burst{border:3px solid var(--ink);width:70px;height:70px;color:var(--ink);background:var(--yellow);box-shadow:0 5px 0 var(--ink);border-radius:22px;place-items:center;margin:0 auto 16px;font-size:2rem;display:grid;transform:rotate(-5deg)}.result-card:not(.is-complete) .result-burst{background:#91e2d8}.result-card h1,.round-card h1,.level-card h1,.final-card h1{letter-spacing:-.045em;margin:0;font-family:Arial Rounded MT Bold,Avenir Next,system-ui,sans-serif;font-size:clamp(2rem,5vw,3.4rem);line-height:1.04}.result-player{color:var(--violet);margin:8px 0 18px;font-size:1.05rem;font-weight:900}.result-shapes{flex-wrap:wrap;justify-content:center;gap:6px;margin:8px 0;display:flex}.result-shape{width:33px;height:33px;color:var(--ink-soft);background:#eee8de;border:2px solid #20304a42;border-radius:9px;place-items:center;font-weight:1000;display:grid}.result-shape.is-correct{border-color:var(--ink);color:#fff;background:var(--green);box-shadow:0 2px 0 var(--ink)}.result-points{color:var(--violet-dark);margin:16px 0 22px;font-family:Arial Rounded MT Bold,Avenir Next,system-ui,sans-serif;font-size:clamp(1.7rem,4vw,2.5rem);line-height:1}.leaderboard{gap:8px;margin:0;padding:0;list-style:none;display:grid}.round-card .leaderboard,.level-card .leaderboard{margin:22px 0}.level-card>p{color:var(--violet-dark);margin:8px 0 0;font-weight:900}.level-preview{border:3px solid var(--ink);width:70px;height:70px;color:var(--violet-dark);background:var(--yellow);box-shadow:0 5px 0 var(--ink);border-radius:22px;place-items:center;margin:0 auto 16px;font-size:2rem;font-weight:1000;display:grid;transform:rotate(-5deg)}.leader-row{text-align:left;background:#fff;border:1.5px solid #20304a3d;border-radius:14px;grid-template-columns:30px 38px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 12px;display:grid}.leader-row.is-first{background:#fff8d6;border-color:#b98500}.leader-rank{color:var(--violet);text-align:center;font-weight:1000}.avatar--small{width:34px;height:34px;box-shadow:0 2px 0 var(--ink);border-width:1.5px;flex-basis:34px;font-size:.72rem}.leader-row p,.leader-row p strong,.leader-row p small{min-width:0;margin:0;display:block}.leader-row p strong{text-overflow:ellipsis;white-space:nowrap;font-size:.86rem;overflow:hidden}.leader-row>strong{text-align:right;font-size:.9rem}.final-screen{padding-top:80px;padding-bottom:40px}.final-card{width:min(590px,100%)}.leaderboard--final{margin-top:22px}.final-actions{grid-template-columns:1fr .65fr;align-items:center;gap:10px;margin-top:22px;display:grid}.confetti{z-index:-1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.confetti i{--color:var(--violet);top:-30px;left:calc(var(--x) * 1%);background:var(--color);width:10px;height:18px;animation:confetti-fall calc(4s + (var(--i) % 5) * .35s) calc((var(--i) % 8) * -.45s) linear infinite;transform:rotate(calc(var(--i) * 23deg));border-radius:3px;position:absolute}.confetti i:nth-child(3n){--color:var(--yellow)}.confetti i:nth-child(3n+1){--color:var(--coral)}.confetti i:nth-child(4n){--color:var(--teal);border-radius:50%}@keyframes gentle-wobble{0%,to{transform:translate(0)}25%{transform:translate(-6px)rotate(-2deg)}55%{transform:translate(5px)rotate(2deg)}78%{transform:translate(-3px)}}@keyframes socket-drift{0%{transform:translate(var(--start-x), var(--start-y))}to{transform:translate(var(--end-x), var(--end-y))}}@keyframes piece-spin{to{transform:rotate(1turn)}}@keyframes socket-pop{0%{transform:scale(.88)}65%{transform:scale(1.06)}to{transform:scale(1)}}@keyframes board-celebrate{0%,to{transform:rotate(0)}30%{transform:rotate(-.6deg)scale(1.006)}65%{transform:rotate(.6deg)scale(1.006)}}@keyframes confetti-fall{to{transform:translateY(110vh)rotate(740deg)}}@media (width<=900px){.setup-screen{grid-template-columns:1fr;gap:34px;width:min(720px,100%)}.setup-hero{text-align:center}.setup-hero .brand{justify-content:center}.play-layout{grid-template-columns:minmax(0,1fr) minmax(235px,.38fr)}.socket-grid{grid-template-columns:repeat(2,minmax(80px,1fr))}}@media (width<=680px){.screen-shell{padding:max(24px, env(safe-area-inset-top)) 16px max(28px, env(safe-area-inset-bottom))}.setup-screen{gap:25px}.setup-hero .brand{margin-top:5px}.setup-hero h1{margin-top:14px}.setup-panel{padding:24px 18px}.player-fields{max-height:none}.simple-header{top:max(13px, env(safe-area-inset-top));left:16px;right:16px}.screen-shell--centered{padding-top:88px}.handoff-card{padding:30px 18px}.play-screen{min-height:480px;padding:max(7px, env(safe-area-inset-top)) 7px max(5px, env(safe-area-inset-bottom));grid-template-rows:42px 68px minmax(0,1fr) 6px;gap:7px}.game-header{grid-template-columns:auto 1fr auto;gap:7px}.game-header .brand{font-size:1.75rem}.game-progress{justify-content:flex-end;gap:6px}.round-dots{gap:5px}.level-glyph{border-radius:8px;flex-basis:25px;width:25px;height:25px;font-size:.75rem}.game-header .icon-button{border-radius:11px;width:36px;height:36px}.play-hud{border-radius:15px;min-height:0;padding:5px 8px}.avatar{width:36px;height:36px;box-shadow:0 2px 0 var(--ink);flex-basis:36px;font-size:.82rem}.hud-player{gap:6px}.hud-player strong{max-width:84px;font-size:.77rem}.hud-score>strong{font-size:1.15rem}.timer-wrap{padding:0 7px}.timer-ring{width:56px;height:56px;box-shadow:0 2px 0 var(--ink);border-width:1.5px;padding:4px}.timer-ring strong{font-size:1.22rem}.play-layout{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);gap:7px}.board,.tray{box-shadow:0 3px 0 var(--ink);border-width:2px;border-radius:17px;padding:8px}.socket-grid,.socket-grid[data-count="1"],.socket-grid[data-count="2"],.socket-grid[data-count="3"],.socket-grid[data-count="4"]{grid-template-columns:repeat(2,minmax(70px,1fr));align-content:center;gap:4px 12px;padding:3px 9px}.socket-motion{--start-y:1%;--end-y:-1%}.motion-path-1,.motion-path-2{--start-y:-1%;--end-y:1%}.socket-grid[data-count="1"] .socket-motion{grid-column:1/-1}.socket{border-width:2px;border-radius:15px;width:min(100%,clamp(72px,18.5vw,96px));padding:5px}.socket .shape-art{width:72%;height:72%}.tray{grid-template-rows:auto}.piece-grid,.piece-grid[data-count="1"]{scrollbar-width:none;justify-content:flex-start;align-items:center;gap:2px;min-height:72px;padding:1px 2px 0;display:flex;overflow-x:auto}.piece-grid::-webkit-scrollbar{display:none}.piece{border-radius:12px;flex:0 0 clamp(62px,13.2vw,76px);min-width:62px;min-height:66px;padding:2px}.piece .shape-art{width:clamp(48px,11vw,62px);height:clamp(48px,11vw,62px)}.drag-ghost{width:82px;height:82px}.result-card,.round-card,.level-card,.final-card{padding:28px 17px}.final-screen{justify-content:flex-start}.final-actions{grid-template-columns:1fr}}@media (height<=640px) and (orientation:landscape){.play-screen{grid-template-rows:38px minmax(0,1fr) 5px;gap:5px;min-height:360px;padding:5px 9px}.play-hud{z-index:2;width:min(48vw,440px);min-height:36px;box-shadow:none;border-width:1.5px;padding:2px 8px;position:absolute;top:4px;right:60px}.hud-player .avatar{display:none}.timer-ring{width:38px;height:38px;box-shadow:none;border-width:1px;padding:3px}.timer-ring strong{font-size:.9rem}.play-layout{grid-row:2;grid-template-rows:1fr;grid-template-columns:minmax(0,1fr) minmax(220px,.38fr)}.board,.tray{padding:7px}.tray{grid-template-rows:minmax(0,1fr)}.piece-grid{grid-template-columns:repeat(4,minmax(44px,1fr));gap:2px;padding:0;display:grid;overflow:visible}.piece{min-width:44px;min-height:44px;padding:1px}.piece .shape-art{width:clamp(32px,8.5vh,48px);height:clamp(32px,8.5vh,48px)}.socket-grid,.socket-grid[data-count="1"],.socket-grid[data-count="2"],.socket-grid[data-count="3"],.socket-grid[data-count="4"]{grid-template-columns:repeat(4,minmax(65px,1fr));gap:5px}.socket{border-radius:12px;width:min(100%,17vh)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.socket-motion,.piece-motion{animation:none!important}.has-moving-sockets .socket-motion{transform:translate(var(--end-x), var(--end-y))!important}.has-rotating-pieces .piece-motion{transform:rotate(var(--resting-angle))!important}}
