@font-face{font-family:Titan One;src:url("../fonts/titan-one-latin.woff2") format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Nunito;src:url("../fonts/nunito-var-latin.woff2") format("woff2");font-weight:400 900;font-display:swap}:root{--ink: #eef1ff;--ink-dim: #9aa3d1;--panel: rgba(21, 25, 54, .86);--panel-edge: #3b4379;--panel-edge-dark: #14172f;--accent: #3ecfff;--accent-2: #ffd23f;--pink: #ff5a5a;--green: #5de665;--purple: #b366ff;--shadow: 0 18px 40px rgba(5, 8, 24, .55)}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;overflow:hidden;background:#101228;font-family:Nunito,system-ui,sans-serif;color:var(--ink);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:none}#scene{position:fixed;inset:0;width:100%;height:100%;display:block}#app{position:fixed;inset:0;pointer-events:none}.layer{position:absolute;inset:0}.hidden{display:none!important}#hud{z-index:5}.hud-top{position:absolute;top:max(10px,env(safe-area-inset-top));left:50%;transform:translate(-50%);display:flex;align-items:center;gap:18px;flex-direction:column}.hud-score{display:flex;flex-direction:column;align-items:center;background:var(--panel);border:2px solid var(--panel-edge);border-bottom:4px solid var(--panel-edge-dark);border-radius:12px;padding:6px 22px 8px;box-shadow:var(--shadow),inset 0 2px #ffffff14}.hud-label{font-size:10px;font-weight:800;letter-spacing:.18em;color:var(--ink-dim)}.hud-value{font-family:Titan One,Nunito,sans-serif;font-size:clamp(22px,4vw,34px);line-height:1.05;color:var(--ink);text-shadow:0 3px 0 rgba(0,0,0,.45);font-variant-numeric:tabular-nums;transition:transform 90ms ease}.hud-value.pop{transform:scale(1.18)}.hud-stats{display:flex;gap:8px}.hud-chip{display:flex;flex-direction:column;align-items:center;background:#15193699;border:2px solid rgba(90,100,160,.4);border-radius:10px;padding:3px 12px 5px;min-width:64px}.hud-chip span:last-child{font-weight:900;font-size:17px;font-variant-numeric:tabular-nums}.hud-chip.best span:last-child{color:var(--accent-2)}.panel-box{position:absolute;background:#15193666;border:2px solid rgba(90,100,160,.35);border-bottom:4px solid rgba(20,23,47,.6);border-radius:14px;box-shadow:0 10px 26px #05081866;transform:translate(-50%);pointer-events:none}.panel-label{position:absolute;font-size:11px;font-weight:900;letter-spacing:.22em;color:var(--ink-dim);text-shadow:0 2px 0 rgba(0,0,0,.5);background:#1012288c;border:2px solid rgba(90,100,160,.35);border-radius:8px;padding:3px 10px;transform:translate(-50%);left:0}#hud-buttons{position:absolute;top:max(10px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right));display:flex;gap:8px;pointer-events:auto}.icon-btn{width:42px;height:42px;display:grid;place-items:center;color:var(--ink);background:var(--panel);border:2px solid var(--panel-edge);border-radius:10px;cursor:pointer;box-shadow:0 4px 0 var(--panel-edge-dark);transition:transform 60ms ease,box-shadow 60ms ease}.icon-btn:active{transform:translateY(3px);box-shadow:0 1px 0 var(--panel-edge-dark)}#popups{z-index:6;pointer-events:none}.popup{position:absolute;left:50%;font-family:Titan One,Nunito,sans-serif;text-align:center;white-space:nowrap;animation:popup-rise 1s cubic-bezier(.2,.9,.3,1) forwards}.popup-label{font-size:clamp(26px,5vw,44px);letter-spacing:.04em;text-shadow:0 2px 0 #00000055,0 6px 0 rgba(5,8,24,.5),0 14px 30px rgba(0,0,0,.45)}.popup-label small{display:block;font-size:.45em;letter-spacing:.2em;margin-top:4px}.popup-sub{font-size:clamp(15px,2.2vw,20px);color:var(--accent-2)}.popup.tetra .popup-label{color:var(--accent)}.popup.double .popup-label{color:var(--green)}.popup.triple .popup-label,.popup.tspin .popup-label{color:var(--purple)}.popup.combo .popup-label{color:var(--accent-2);font-size:clamp(20px,3.4vw,30px)}.popup.perfect .popup-label{color:#fff;background:linear-gradient(90deg,var(--pink),var(--accent-2),var(--green),var(--accent));-webkit-background-clip:text;background-clip:text}@keyframes popup-rise{0%{transform:translate(-50%) scale(.4);opacity:0}14%{transform:translate(-50%,-8px) scale(1.15);opacity:1}28%{transform:translate(-50%,-12px) scale(1)}72%{transform:translate(-50%,-40px) scale(1);opacity:1}to{transform:translate(-50%,-74px) scale(.92);opacity:0}}.score-pop{position:absolute;left:50%;font-family:Titan One,Nunito,sans-serif;font-size:clamp(18px,3vw,26px);color:#fff;text-shadow:0 3px 0 rgba(5,8,24,.6);animation:score-rise .9s ease-out forwards}@keyframes score-rise{0%{transform:translate(-50%);opacity:0}15%{opacity:1}to{transform:translate(-50%,-60px);opacity:0}}.banner{position:absolute;top:22%;left:50%;transform:translate(-50%);z-index:7;pointer-events:none;font-family:Titan One,Nunito,sans-serif;font-size:clamp(30px,6vw,54px);color:#fff;text-shadow:0 4px 0 #1b9dc4,0 10px 0 rgba(5,8,24,.5),0 18px 40px rgba(0,0,0,.5);animation:banner-in 1.5s cubic-bezier(.2,.9,.3,1) forwards}@keyframes banner-in{0%{transform:translate(-50%) scale(.3) rotate(-4deg);opacity:0}12%{transform:translate(-50%) scale(1.12) rotate(1deg);opacity:1}22%{transform:translate(-50%) scale(1) rotate(0)}78%{transform:translate(-50%) scale(1);opacity:1}to{transform:translate(-50%) scale(.9);opacity:0}}.countdown{position:absolute;inset:0;display:grid;place-items:center;z-index:8;font-family:Titan One,Nunito,sans-serif;font-size:clamp(70px,16vw,130px);color:var(--accent-2);text-shadow:0 6px 0 #b8860b,0 16px 0 rgba(5,8,24,.5),0 30px 60px rgba(0,0,0,.6);animation:count-pop .42s ease-out}@keyframes count-pop{0%{transform:scale(1.8);opacity:0}45%{transform:scale(1);opacity:1}to{transform:scale(.92);opacity:.9}}.vignette{position:absolute;inset:0;z-index:4;pointer-events:none;background:radial-gradient(ellipse at center,transparent 52%,rgba(255,40,60,.28) 100%);animation:danger-pulse 1.9s ease-in-out infinite}@keyframes danger-pulse{0%,to{opacity:.5}50%{opacity:.82}}.overlay{z-index:10;display:grid;place-items:center;background:#0a0c1e73;backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);pointer-events:auto}#title{background:linear-gradient(#0a0c1e40,#0a0c1e8c)}.title-inner{display:flex;flex-direction:column;align-items:center;gap:14px;padding:24px;animation:title-in .6s cubic-bezier(.2,.9,.3,1.2)}@keyframes title-in{0%{transform:translateY(26px) scale(.94);opacity:0}to{transform:none;opacity:1}}.logo{display:flex;flex-direction:column;align-items:center;line-height:.95;font-family:Titan One,Nunito,sans-serif}.logo-voxel{font-size:clamp(30px,6vw,52px);letter-spacing:.42em;margin-right:-.42em;color:#c8d4ff;text-shadow:0 3px 0 #4a5590,0 7px 0 rgba(5,8,24,.55),0 16px 30px rgba(0,0,0,.5)}.logo-tetris{font-size:clamp(58px,12vw,104px);letter-spacing:.02em;background:linear-gradient(180deg,#7ee9ff 12%,#3ecfff 45%,#1e9fd0 70%,#ffd23f 71% 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 4px 0 #13621f) drop-shadow(0 10px 0 rgba(5,8,24,.55)) drop-shadow(0 20px 40px rgba(0,0,0,.55));animation:logo-bob 3.2s ease-in-out infinite}@keyframes logo-bob{0%,to{transform:translateY(0) rotate(-.6deg)}50%{transform:translateY(-6px) rotate(.6deg)}}.tagline{color:var(--ink-dim);font-weight:800;letter-spacing:.28em;font-size:12px;text-transform:uppercase;margin-top:-4px}.title-best{font-family:Titan One,Nunito,sans-serif;color:var(--accent-2);font-size:18px;letter-spacing:.12em;text-shadow:0 3px 0 rgba(5,8,24,.5)}.title-controls{display:grid;gap:4px;font-size:12.5px;color:var(--ink-dim);font-weight:700;text-align:center}.kbd{display:inline-block;min-width:22px;padding:1px 6px;margin:0 1px;background:#232a52;border:1.5px solid #414a86;border-bottom:3px solid #14172f;border-radius:6px;color:var(--ink);font-size:11px;font-weight:900}.title-settings{display:flex;gap:10px}.panel{display:flex;flex-direction:column;align-items:center;gap:12px;background:var(--panel);border:3px solid var(--panel-edge);border-bottom:6px solid var(--panel-edge-dark);border-radius:18px;padding:26px 34px;box-shadow:var(--shadow),inset 0 2px #ffffff17;animation:panel-pop .35s cubic-bezier(.2,.9,.3,1.4);max-width:min(92vw,420px)}@keyframes panel-pop{0%{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}.panel-title{font-family:Titan One,Nunito,sans-serif;font-size:clamp(28px,5vw,40px);color:var(--ink);text-shadow:0 3px 0 #3b4379,0 7px 0 rgba(5,8,24,.5),0 14px 30px rgba(0,0,0,.4)}.panel-hint{color:var(--ink-dim);font-size:12px;font-weight:700;letter-spacing:.08em}#gameover .panel-title{color:#ff8d8d;text-shadow:0 3px 0 #7e1f2e,0 7px 0 rgba(5,8,24,.5)}.newbest{font-family:Titan One,Nunito,sans-serif;color:#101228;background:linear-gradient(90deg,var(--accent-2),#ffe98a);padding:3px 14px;border-radius:10px;font-size:15px;letter-spacing:.1em;animation:best-flash .6s ease-in-out infinite alternate}@keyframes best-flash{0%{transform:scale(1) rotate(-1.5deg)}to{transform:scale(1.08) rotate(1.5deg)}}.go-score{font-family:Titan One,Nunito,sans-serif;font-size:clamp(38px,8vw,58px);color:var(--accent-2);text-shadow:0 4px 0 #8a6d00,0 10px 0 rgba(5,8,24,.5)}.go-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:100%}.go-cell{display:flex;flex-direction:column;align-items:center;background:#1e244ab3;border:2px solid rgba(90,100,160,.35);border-radius:10px;padding:7px 4px;gap:2px}.go-cell span:last-child{font-weight:900;font-size:17px;font-variant-numeric:tabular-nums}.btn{pointer-events:auto;font-family:Titan One,Nunito,sans-serif;font-size:17px;letter-spacing:.08em;color:var(--ink);background:linear-gradient(180deg,#3a4480,#2a315e);border:2.5px solid #4d5a9e;border-bottom:6px solid #161a38;border-radius:14px;padding:12px 26px;cursor:pointer;min-width:190px;box-shadow:0 6px #05081866,0 14px 26px #05081859;transition:transform 60ms ease,box-shadow 60ms ease,filter .12s}.btn:hover{filter:brightness(1.12)}.btn:active{transform:translateY(4px);box-shadow:0 2px #05081866}.btn-primary{background:linear-gradient(180deg,#49e2ff,#1fa8d8);border-color:#7deeff;border-bottom-color:#0d5f80;color:#06283a;text-shadow:0 1px 0 rgba(255,255,255,.35)}.btn-big{font-size:22px;padding:15px 44px;min-width:220px}.btn-toggle{min-width:110px;font-size:13px;padding:9px 14px}.btn-toggle[aria-pressed=false]{filter:saturate(.25) brightness(.75)}#touch{z-index:9;pointer-events:none;display:flex;align-items:flex-end;justify-content:space-between;gap:10px;padding:0 max(14px,env(safe-area-inset-left)) max(14px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-right))}.touch-pad,.touch-side,.touch-rotate{display:flex;gap:10px;pointer-events:auto;align-items:flex-end}.touch-side{flex-direction:column;align-items:stretch}.touch-rotate{flex-direction:column}.t-btn{pointer-events:auto;display:grid;place-items:center;width:62px;height:62px;border-radius:16px;border:2.5px solid #4d5a9e;border-bottom:6px solid #161a38;background:linear-gradient(180deg,#3a4480eb,#2a315eeb);color:var(--ink);font-family:Titan One,Nunito,sans-serif;font-size:13px;cursor:pointer;backdrop-filter:blur(3px);box-shadow:0 6px #05081866}.t-btn.big{width:72px;height:72px}.t-btn.active{transform:translateY(4px);box-shadow:0 2px #05081866;filter:brightness(1.25)}.t-btn[data-btn=cw]{background:linear-gradient(180deg,#3ecfffeb,#1fa8d8eb);color:#06283a}.t-btn[data-btn=drop]{background:linear-gradient(180deg,#ffd23feb,#e0a820eb);color:#402d00}@media (max-width: 700px){.title-controls{display:none}.go-grid{grid-template-columns:repeat(2,1fr)}.hud-stats{gap:6px}.hud-chip{min-width:56px;padding:2px 8px 4px}}@media (prefers-reduced-motion: reduce){.logo-tetris,.vignette,.newbest{animation:none}}
