.tetris-app{background:#bfe7f5;overflow:hidden;touch-action:none;-moz-user-select:none;user-select:none;-webkit-user-select:none}.tet-scene{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:0}.tet-top{position:absolute;top:calc(10px + env(safe-area-inset-top));left:12px;right:12px;z-index:4;display:flex;justify-content:space-between;pointer-events:none}.tet-icon-btn{pointer-events:auto;width:42px;height:42px;display:grid;place-items:center;border:2px solid #fff;border-radius:14px;background:var(--play-paper);color:var(--play-ink);box-shadow:0 3px 0 var(--play-shadow);cursor:pointer}.tet-icon-btn:active{transform:translateY(2px);box-shadow:0 1px 0 var(--play-shadow)}.tet-icon-btn .off,.tet-icon-btn[aria-pressed=true] .on{display:none}.tet-icon-btn[aria-pressed=true] .off{display:inline}.tetris-app:not([data-phase=play]):not([data-phase=ready]) #tet-pause{visibility:hidden}.tet-side{position:absolute;z-index:3;display:flex;flex-direction:column;gap:10px;width:132px;pointer-events:none}.tet-box,.tet-stats{background:#fffbedee;border:3px solid #fff;border-radius:18px;box-shadow:0 4px 0 var(--play-shadow);padding:8px 10px;margin:0}.tet-box{display:flex;flex-direction:column;align-items:center;gap:4px}.tet-label{font-size:13px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:#52667a}.tet-preview{display:block;width:96px;height:56px}.tet-preview-small{width:72px;height:40px;opacity:.8}.tet-stats{display:grid;grid-gap:4px;gap:4px}.tet-stats div{display:flex;flex-direction:column}.tet-stats dt{font-size:12px;font-weight:800;color:#52667a;text-transform:uppercase;letter-spacing:.4px}.tet-stats dd{margin:0;font-size:22px;font-weight:800;color:var(--play-accent);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.1}.tetris-app[data-layout=side] .tet-left{right:calc(100% - var(--well-l, 30%) + 26px);top:var(--well-t,80px)}.tetris-app[data-layout=side] .tet-right{left:calc(var(--well-r, 70%) + 26px);top:var(--well-t,80px)}.tetris-app[data-layout=stack] .tet-side{top:calc(58px + env(safe-area-inset-top));width:auto;flex-direction:row;gap:6px}.tetris-app[data-layout=stack] .tet-left{left:8px;right:128px}.tetris-app[data-layout=stack] .tet-right{right:8px}.tetris-app[data-layout=stack] .tet-box{padding:4px 6px;border-radius:14px;gap:0}.tetris-app[data-layout=stack] .tet-hold-box .tet-preview{width:56px;height:40px}.tetris-app[data-layout=stack] .tet-next-box{display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;grid-column-gap:2px;column-gap:2px}.tetris-app[data-layout=stack] .tet-next-box .tet-label{grid-column:1/3}.tetris-app[data-layout=stack] .tet-preview-main{width:56px;height:40px;grid-row:2}.tetris-app[data-layout=stack] .tet-preview-small{width:44px;height:28px;grid-row:2;align-self:center}.tetris-app[data-layout=stack] #tet-next-3{display:none}.tetris-app[data-layout=stack] .tet-stats{flex:1 1;grid-template-columns:repeat(2,1fr);gap:0 8px;padding:4px 10px;border-radius:14px}.tetris-app[data-layout=stack] .tet-stats dt{font-size:10px}.tetris-app[data-layout=stack] .tet-stats dd{font-size:16px}.tetris-app[data-layout=stack] .tet-label{font-size:10px}.tet-banner{position:absolute;z-index:5;left:var(--well-cx,50%);top:var(--well-cy,50%);transform:translate(-50%,-50%) scale(.6);opacity:0;pointer-events:none;display:flex;flex-direction:column;align-items:center;text-align:center;white-space:nowrap}.tet-banner b{font:800 clamp(30px,7vw,56px)/1 Playful,Avenir Next,sans-serif;color:#fffbed;-webkit-text-stroke:2px var(--play-accent);paint-order:stroke fill;text-shadow:0 5px 0 var(--play-accent)}.tet-banner span{margin-top:8px;font-size:18px;font-weight:800;color:#fff;text-shadow:0 2px 4px #0006}.tet-banner span:empty{display:none}.tet-banner[data-tone=tetris] b{color:#ffe066;-webkit-text-stroke-color:#c0392b;text-shadow:0 5px 0 #c0392b,0 0 24px #ffd23f;font-size:clamp(40px,10vw,76px)}.tet-banner[data-tone=level] b{color:#d6fff1;-webkit-text-stroke-color:#1f9d77;text-shadow:0 5px 0 #1f9d77}.tet-banner[data-tone=count] b{font-size:clamp(54px,12vw,96px)}.tet-banner.pop{animation:tet-pop 1.25s ease-out forwards}@keyframes tet-pop{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}14%{opacity:1;transform:translate(-50%,-50%) scale(1.12)}24%{transform:translate(-50%,-50%) scale(1)}75%{opacity:1;transform:translate(-50%,-60%) scale(1)}to{opacity:0;transform:translate(-50%,-75%) scale(.96)}}.tet-pops{position:absolute;inset:0;z-index:5;pointer-events:none}.tet-points{position:absolute;left:var(--well-cx,50%);top:calc(var(--well-cy, 50%) + 56px);transform:translateX(-50%);font:800 24px Playful,sans-serif;color:#fff;text-shadow:0 2px 0 var(--play-accent),0 0 8px #0004;animation:tet-rise 1.1s ease-out forwards}@keyframes tet-rise{0%{opacity:1;translate:0 0}to{opacity:0;translate:0 -60px}}.tet-pad{position:absolute;z-index:4;left:0;right:0;bottom:0;display:none;grid-template-columns:repeat(7,1fr);gap:6px;padding:8px 8px calc(10px + env(safe-area-inset-bottom))}.tetris-app[data-touch=true] .tet-pad{display:grid}.tetris-app:not([data-phase=play]):not([data-phase=ready]) .tet-pad{visibility:hidden}.tet-pad-btn{height:56px;display:grid;place-items:center;border:3px solid #fff;border-radius:16px;background:#fffbedf2;color:var(--play-ink);box-shadow:0 4px 0 var(--play-shadow);touch-action:none}.tet-pad-btn.down{transform:translateY(3px);box-shadow:0 1px 0 var(--play-shadow);background:var(--play-soft)}.tet-pad-drop{background:#ffd45e;color:#604619;border-color:#fff4c7}.tet-pad-ccw,.tet-pad-cw{color:var(--play-accent)}.playful-game .tet-card{width:min(420px,100%);text-align:center;display:flex;flex-direction:column;align-items:stretch;gap:10px}.tet-kicker{font-size:14px;font-weight:800;letter-spacing:1.5px;color:#52667a}.tet-logo{margin:0;font:800 clamp(34px,9vw,60px)/1 Playful,sans-serif;white-space:nowrap;color:#fffbed;-webkit-text-stroke:2px var(--play-accent);paint-order:stroke fill;text-shadow:0 6px 0 var(--play-accent);transform:rotate(-2deg)}.tet-logo span{margin-left:8px;font-size:.55em;color:#ffd45e;-webkit-text-stroke-color:#bb842e;text-shadow:0 4px 0 #bb842e}.tet-sub{margin:4px 0;font-size:16px;line-height:1.45}.tet-levels{display:flex;flex-direction:column;gap:6px}.tet-level-row{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:8px;gap:8px}.tet-lv{min-height:44px;border:2px solid #c8d5d1;border-radius:12px;background:#fffdf5;color:var(--play-ink);font-size:18px;font-weight:800;cursor:pointer}.tet-lv[aria-pressed=true]{background:var(--play-soft);border-color:var(--play-accent);color:var(--play-accent)}.tet-best-line{margin:0;font-size:15px;color:#52667a}.tet-best-line b{color:var(--play-accent)}.tet-help{list-style:none;margin:4px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;grid-gap:6px 12px;gap:6px 12px;text-align:left;font-size:14px}.tet-help li{display:flex;align-items:center;gap:8px}.tet-help i,.tet-help kbd{min-width:46px;text-align:center;padding:2px 6px;border-radius:8px;background:var(--play-soft);border:2px solid #9abdc5;font:800 13px/1.4 Playful,sans-serif;font-style:normal;color:var(--play-ink)}.tet-help-touch,.tetris-app[data-touch=true] .tet-help-keys{display:none}.tetris-app[data-touch=true] .tet-help-touch{display:grid}.tet-title{margin:0 0 6px;font-size:34px;color:var(--play-accent)}.tet-paused .a-secondary,.tet-results .a-secondary{margin-top:0}.tet-r-score{margin:0;font:800 clamp(46px,12vw,68px)/1 Playful,sans-serif;color:var(--play-accent);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tet-r-best{margin:0;font-size:16px;font-weight:800;color:#52667a}.tet-r-best[data-best=true]{color:#d0582f}.tet-r-stats{list-style:none;margin:6px 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);grid-gap:6px;gap:6px}.tet-r-stats li{display:flex;flex-direction:column;padding:8px 2px;border-radius:14px;background:var(--play-soft)}.tet-r-stats b{font-size:22px;color:var(--play-ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tet-r-stats span{font-size:12px;font-weight:700;color:#52667a}.tet-r-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px;align-items:stretch}.tet-r-row .share-btn{margin-top:0}.tetris-app .overlay.tet-paused,.tetris-app .overlay.tet-results{background:#d9edf2c4}.tetris-app .overlay.tet-menu{background:#d9edf2a8}