:root{color-scheme:dark;--bg:#10131e;--panel:#191e2d;--muted:#8d96af;--text:#edf0fc;--accent:#bcabff;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% 0,#242139 0, var(--bg) 65%);color:var(--text);overscroll-behavior:none}button,input{font:inherit}button{border:1px solid #33394e;background:var(--panel);color:var(--text);border-radius:13px;min-width:48px;min-height:48px;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:hover{background:#292e43}button:active{transform:translateY(1px);background:#3a3551}button:disabled{opacity:.4;cursor:default}button:focus-visible,input:focus-visible{outline:3px solid #d3c6ff;outline-offset:3px}[hidden]{display:none!important}
.app{width:min(100%,480px);height:100svh;height:100dvh;min-height:570px;margin:auto;padding:max(16px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));display:flex;flex-direction:column;gap:14px;user-select:none;-webkit-user-select:none}header{display:flex;justify-content:space-between;align-items:center}.brand{display:flex;gap:11px;align-items:center}.brand-icon{color:var(--accent);font-size:39px;line-height:1}h1{font-size:25px;letter-spacing:-1.1px;line-height:1.1;margin:0;font-weight:800}h1 span{color:var(--accent)}.brand p{font-size:8px;letter-spacing:2.4px;margin:6px 0 0;color:var(--muted)}.icon-button{font-size:23px}.stats{display:grid;grid-template-columns:1.4fr 1.4fr .75fr .75fr;gap:10px;padding:13px 15px;background:#1b1e2caa;border:1px solid #303347;border-radius:14px}.stats div{display:flex;flex-direction:column;gap:4px}.stats span,aside h2{font-size:9px;font-weight:600;letter-spacing:1.5px;color:var(--muted)}.stats strong{font-size:20px;font-variant-numeric:tabular-nums;letter-spacing:.5px}.stats div:first-child strong{color:var(--accent)}.play-area{display:flex;justify-content:center;gap:14px;min-height:0;flex:1}.board-wrap{position:relative;aspect-ratio:1/2;height:100%;max-width:calc(100% - 82px);border:1px solid #3a3d54;border-radius:10px;overflow:hidden;background:#0c101b;box-shadow:0 12px 50px #0003}#board{display:block;width:100%;height:100%;touch-action:none}aside{width:68px;flex-shrink:0;display:flex;flex-direction:column;gap:22px}.next-card{border:1px solid #303347;background:#191d2a;border-radius:12px;padding:12px 5px 5px}aside h2{margin:0;text-align:center}#next{width:100%;height:auto;display:block}.side-note{display:flex;gap:6px;font-size:8px;line-height:1.8;letter-spacing:.7px;color:var(--muted)}.status-dot{width:5px;height:5px;background:#76dfae;border-radius:50%;margin-top:5px;flex-shrink:0}.side-decoration{margin-top:auto;margin-bottom:10px;display:grid;grid-template-columns:18px 18px;gap:4px;opacity:.2;transform:rotate(-10deg);align-self:center}.side-decoration i{height:18px;border-radius:4px;background:var(--accent)}.side-decoration i:first-child{visibility:hidden}.overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:18px;text-align:center;background:#101321ed;backdrop-filter:blur(5px)}.overlay-mark{color:var(--accent);font-size:45px;margin-bottom:12px}.overlay p{font-size:12px;line-height:1.7;color:#a4adc4}.overlay #overlay-kicker{font-size:7px;letter-spacing:1.3px;color:var(--accent)}.overlay h2{font-size:clamp(23px,6vw,34px);letter-spacing:-1.2px;line-height:1.13;margin:10px 0}.primary{background:var(--accent);color:#191329;font-weight:750;border:0;padding:0 22px}.primary:hover{background:#cfc2ff}.overlay .primary{width:100%;margin-top:14px}.primary span{margin-left:14px}.secondary{background:transparent;margin-top:10px;padding:0 16px;width:100%;font-size:13px}.feedback{height:16px;margin:0;text-align:center;color:var(--muted);font-size:11px;letter-spacing:.2px}.controls{display:flex;flex-direction:column;gap:9px;touch-action:none}.move-controls,.rotate-controls{display:flex;gap:9px}.controls button{flex:1;font-size:27px;min-height:49px}.controls .drop{flex:2.2;background:#baabff;color:#201932;font-size:13px;font-weight:800;letter-spacing:1.8px;border:0}.drop span{font-size:23px;margin-left:10px}footer{display:flex;align-items:center;justify-content:space-between;gap:6px}footer>span{font-size:8px;letter-spacing:.7px;color:#7d86a0}footer button{font-size:11px;min-height:44px;border:0;background:transparent;padding:0 6px;color:#bac1d5}footer button span{margin-left:5px}#flash{position:absolute;inset:0;pointer-events:none}.cleared{animation:clear .32s ease-out}.landed{animation:land .15s ease-out}@keyframes clear{from{background:#bcabff40}to{background:transparent}}@keyframes land{50%{background:#ffffff14}}dialog{border:1px solid #42445b;border-radius:22px;background:#191d2c;color:var(--text);width:min(420px,calc(100% - 28px));max-height:85dvh;padding:22px;overscroll-behavior:contain}dialog::backdrop{background:#050811b8;backdrop-filter:blur(5px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between}.dialog-heading h2{margin:0;font-size:24px}dialog label{min-height:55px;display:flex;justify-content:space-between;align-items:center;font-size:14px;border-bottom:1px solid #30354a}input{width:24px;height:24px;accent-color:var(--accent)}dialog h3{font-size:14px;margin-top:24px}dialog p{font-size:12px;line-height:1.7;color:#afb8ce}body.playing{overflow:hidden;touch-action:none}body.playing .app{touch-action:none}@media(min-width:600px){.app{max-height:950px;padding-top:28px;padding-bottom:20px;gap:16px}}@media(max-height:720px){.app{gap:8px;padding-top:max(8px,env(safe-area-inset-top));padding-bottom:max(5px,env(safe-area-inset-bottom))}.stats{padding:8px 12px}.stats strong{font-size:17px}header .icon-button{min-height:44px}h1{font-size:22px}.controls button{min-height:44px}.overlay-mark{font-size:26px;margin-bottom:0}.overlay p{margin:6px 0}.overlay h2{font-size:24px}.overlay .primary{margin-top:8px}footer button{min-height:38px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
