:root{--bg: #11151c;--panel: #1b2230;--cell: #2a3345;--line: #3a465e;--piece: #5fa8ff;--blockloveBlue: var(--piece);--blocklove-blue: var(--piece);--text: #e8eef8;--muted: #9aa7bf;--ok: #4ac97a;--bad: #e86f6f}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:radial-gradient(circle at top,#1c2535 0%,var(--bg) 60%);background-repeat:no-repeat;background-size:cover;background-position:center;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}body{overflow-x:hidden}.game-viewport{width:100%;max-width:100vw;min-height:100vh;min-height:100dvh;display:flex;justify-content:center;align-items:flex-start;overflow:hidden;position:relative;isolation:isolate}.app{width:min(100%,540px);padding:12px;transform-origin:top center;will-change:transform;overflow:hidden;contain:paint;display:flex;flex-direction:column;transition:filter .3s ease-in-out}.app.is-gameover{filter:grayscale(100%) brightness(.5)}.splash-overlay{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:calc(20px + env(safe-area-inset-top)) 20px calc(20px + env(safe-area-inset-bottom));background:radial-gradient(circle at top,#1c2535 0%,var(--bg) 60%);opacity:1;pointer-events:auto;transition:none}.splash-overlay.is-fading{opacity:0;pointer-events:none;transition:opacity 1s ease-in-out}.splash-content{text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px}.splash-mark{width:clamp(110px,24vw,170px);height:auto;opacity:.9;pointer-events:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.splash-wordmark{font-family:Open Sans,Helvetica Neue,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif;font-size:clamp(24px,7vw,38px);font-weight:900;letter-spacing:.08em;color:#ffffffe6;line-height:1}.splash-subtitle{font-family:Open Sans,Helvetica Neue,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif;font-size:clamp(11px,2.8vw,13px);letter-spacing:.08em;text-transform:uppercase;color:#e8eef86b}.topbar{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;font-family:Open Sans,Helvetica Neue,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif}.score-wrap{display:flex;gap:8px;flex-wrap:nowrap;min-width:0}.score-item{background:#1b2230d9;border-radius:10px;padding:8px 10px;font-size:clamp(16px,2.2vw,20px);font-weight:900;line-height:1;border:none;outline:none;box-shadow:none}.score-current{color:#fff}.score-pieces{display:flex;align-items:center;gap:6px;color:#e8eef8e6}.pieces-icon{width:clamp(16px,2vw,18px);height:clamp(16px,2vw,18px);fill:var(--blocklove-blue);opacity:.85;flex-shrink:0}.metric{display:flex;align-items:center;gap:6px}.score-current #score{display:inline-block;color:#fff;transform-origin:center;will-change:transform,color,text-shadow}.score-high{display:flex;align-items:center;gap:7px;color:#fff9}.trophy-icon{width:clamp(16px,2vw,18px);height:clamp(16px,2vw,18px);color:#dcbe78e6;flex:0 0 auto}main{background:#141a25bf;border:1px solid var(--line);border-radius:12px;padding:8px;overflow:hidden;position:relative}canvas{width:100%;height:auto;display:block;touch-action:none}.first-move-hint{position:absolute;left:50%;top:50%;display:inline-flex;align-items:center;justify-content:center;gap:8px;width:min(100%,var(--hint-max-width, 460px));max-width:calc(100% - 20px);padding:0 10px;color:#e8eef8bd;font-family:Open Sans,Helvetica Neue,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif;font-size:clamp(12px,3vw,13.2px);line-height:1.35;text-align:center;letter-spacing:.01em;opacity:0;transform:translate(-50%,calc(-50% + 5px));transition:opacity .46s ease,transform .46s ease;pointer-events:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.first-move-hint.is-visible{opacity:.75;transform:translate(-50%,-50%)}.first-move-hint.is-exiting{opacity:0;transform:translate(-50%,calc(-50% - 2px))}.first-move-hint span{white-space:nowrap}.first-move-hint.is-wrapped span{white-space:normal;text-wrap:balance}.first-move-hint-icon{width:14.5px;height:14.5px;flex:0 0 auto;color:var(--blocklove-blue);opacity:.9;filter:drop-shadow(0 0 4px rgba(95,168,255,.28));transform-origin:center}.first-move-hint.is-visible .first-move-hint-icon{animation:hint-icon-breathe 2.6s ease-in-out infinite}@keyframes hint-icon-breathe{0%,to{transform:scale(1);opacity:.88;filter:drop-shadow(0 0 3px rgba(95,168,255,.22))}50%{transform:scale(1.03);opacity:.96;filter:drop-shadow(0 0 5px rgba(95,168,255,.34))}}@media(prefers-reduced-motion:reduce){.first-move-hint{transition:opacity .18s ease;transform:translate(-50%,-50%)}.first-move-hint.is-exiting{transform:translate(-50%,-50%)}.first-move-hint.is-visible .first-move-hint-icon{animation:none}}.gameover-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:16px;padding-top:calc(16px + env(safe-area-inset-top));padding-bottom:calc(16px + env(safe-area-inset-bottom));opacity:0;pointer-events:none;transition:opacity .3s ease-in-out;z-index:1100}.gameover-overlay:before{content:"";position:absolute;inset:0;background:#00000040;pointer-events:none}.gameover-overlay.is-visible{opacity:1;pointer-events:auto}.gameover-card{position:relative;z-index:1;width:min(84%,320px);padding:16px 14px;border-radius:12px;border:1px solid rgba(91,110,140,.88);background:#101620eb;box-shadow:0 10px 26px #00000057;text-align:center;font-family:Open Sans,Helvetica Neue,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif}.gameover-title{margin:0;font-size:clamp(20px,5.4vw,28px);font-weight:900;letter-spacing:.02em;color:#fffffff2}.gameover-subtext{margin:9px 0 14px;font-size:clamp(12px,3.2vw,14px);color:#e8eef8bd}.play-again-btn{opacity:.88;border-color:#7a92b6e6;background:#2d3d5ac7;letter-spacing:.05em;padding-inline:14px}.mobile-gameplay #gameShell,.mobile-gameplay #gameShell *{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.mobile-gameplay #gameSurface,.mobile-gameplay #gameSurface canvas{touch-action:none}.btn{touch-action:manipulation}.btn{border:1px solid #51627f;background:#233049;color:var(--text);border-radius:9px;padding:8px 10px;font-size:13px;font-family:Open Sans,Helvetica Neue,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif;font-weight:900}.btn:active{transform:translateY(1px)}.new-game-btn{opacity:.6;letter-spacing:.05em;border-color:#667896d9}.brand-footer-zone{position:relative;display:flex;justify-content:center;align-items:center;flex:1 1 auto;min-height:0;padding-top:10px;padding-bottom:calc(12px + env(safe-area-inset-bottom));pointer-events:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.brand-mark{width:clamp(104px,20vw,172px);height:auto;opacity:0;transition:opacity .34s ease;pointer-events:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.brand-mark.is-visible{opacity:.28}.modal-overlay{position:absolute;inset:0;display:none;align-items:center;justify-content:center;padding:18px;padding-bottom:calc(18px + env(safe-area-inset-bottom));background:#0000008c;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:1000;opacity:0;transform:scale(.995);transition:opacity .18s ease-out,transform .18s ease-out;pointer-events:none}.modal-overlay.open{display:flex;pointer-events:auto;opacity:1;transform:scale(1)}.modal-overlay.closing{display:flex;pointer-events:none;opacity:0;transform:scale(.98);transition-duration:.14s}.modal-card{width:min(92vw,420px);border-radius:14px;border:1px solid rgba(79,94,121,.85);background:#141b27f5;box-shadow:0 8px 26px #00000059;padding:16px 16px 14px;color:var(--text);font-family:Open Sans,Helvetica Neue,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif}.modal-title{margin:0 0 8px;font-size:18px;font-weight:900}.modal-body{margin:0;font-size:14px;line-height:1.4;color:#e8eef8cc}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}.modal-btn{font-size:13px;font-weight:900;padding:8px 11px}.modal-btn-cancel{opacity:.72}.modal-btn-confirm{opacity:.9}body.modal-open{overflow:hidden}@media(max-width:420px){.score-wrap{gap:6px}.score-item,.btn{font-size:12px}}@media(pointer:fine){body{overflow:hidden}.app{min-height:auto}.brand-footer-zone{flex:0 0 auto}.new-game-btn:hover,.new-game-btn:focus-visible{opacity:.7}}@media(pointer:coarse){.app{min-height:100dvh;min-height:100vh}}
