:root{--bg-0: #0d1626;--bg-1: #16233a;--panel: #1d2c47;--panel-2: #243655;--ink: #f2f5fb;--ink-dim: #9fb0cc;--accent: #ff8fa3;--accent-2: #ffd36e;--leaf: #7ed6a4;--radius: 18px;--font: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", "Segoe UI", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);color:var(--ink);background:radial-gradient(120% 80% at 50% -10%,#2a3d63 0%,transparent 60%),linear-gradient(180deg,var(--bg-1),var(--bg-0));-webkit-font-smoothing:antialiased;overscroll-behavior:none}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none;-webkit-tap-highlight-color:transparent}.screen{min-height:100dvh;display:flex;flex-direction:column;padding:max(12px,env(safe-area-inset-top)) 16px max(12px,env(safe-area-inset-bottom))}.eyebrow{margin:0 0 4px;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);font-weight:700}.splash{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;width:100%;padding:24px;background:radial-gradient(120% 80% at 50% -10%,#2a3d63 0%,transparent 60%),linear-gradient(180deg,var(--bg-1),var(--bg-0));animation:splash-in .6s ease both}.splash.leaving{animation:splash-out .45s ease both}@keyframes splash-in{0%{opacity:0}}@keyframes splash-out{to{opacity:0;transform:scale(1.04)}}.bear{width:min(60vw,240px);height:auto;filter:drop-shadow(0 18px 40px rgba(0,0,0,.5));animation:bear-breathe 3.2s ease-in-out infinite}@keyframes bear-breathe{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-3px) scale(1.012)}}.bear .zzz text{animation:zzz 2.4s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.bear .zzz text:nth-child(2){animation-delay:.4s}.bear .zzz text:nth-child(3){animation-delay:.8s}@keyframes zzz{0%,to{opacity:.35;transform:translateY(2px)}50%{opacity:1;transform:translateY(-3px)}}.wordmark{margin:0;display:flex;flex-direction:column;align-items:center;line-height:1;font-weight:900;text-align:center}.wordmark span:first-child{font-size:clamp(30px,9vw,44px);letter-spacing:.01em}.wordmark span:last-child{margin-top:8px;font-size:13px;letter-spacing:.42em;text-transform:uppercase;color:var(--accent-2);padding-left:.42em}.hero{padding:24px 4px 12px}.hero h1{margin:0;font-size:clamp(26px,7vw,36px);line-height:1.1;font-weight:900}.hero .sub{margin:10px 0 0;color:var(--ink-dim);font-size:14px;line-height:1.45}.level-grid{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.level-card{position:relative;width:100%;border-radius:var(--radius);overflow:hidden;background:var(--panel);display:flex;align-items:flex-end;box-shadow:0 10px 30px #00000059;transition:transform .15s ease;padding:0;text-align:left}.level-card:active{transform:scale(.97)}.level-card img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.level-card.locked{cursor:default;background:linear-gradient(160deg,var(--panel-2),var(--panel))}.level-card .lock{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:34px;opacity:.5}.level-card .level-meta{position:relative;width:100%;padding:36px 12px 12px;display:flex;flex-direction:column;gap:2px;background:linear-gradient(180deg,transparent,rgba(8,14,28,.85))}.level-card .lvl{font-size:12px;color:var(--ink-dim);display:flex;gap:8px;align-items:center}.level-card .lvl em{font-style:normal;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#1a1a1a;background:var(--accent-2);padding:2px 6px;border-radius:999px}.level-card strong{font-size:16px}.level-card .grid-size{font-size:12px;color:var(--ink-dim)}.level-card.challenge{outline:2px solid var(--accent-2);outline-offset:-2px}.footnote{margin:20px 0 0;text-align:center;color:var(--ink-dim);font-size:12px}.install-hint{display:flex;align-items:center;gap:10px;margin:4px 0 8px;padding:10px 10px 10px 14px;border-radius:14px;background:var(--panel);border:1px solid rgba(255,211,110,.35)}.install-hint p{margin:0;flex:1;font-size:13px;line-height:1.4;color:var(--ink-dim)}.install-hint strong{color:var(--ink)}.install-hint em{font-style:normal;color:var(--accent-2)}.install-hint .icon{width:32px;height:32px;font-size:18px;background:var(--panel-2)}.play{height:100dvh;min-height:0;overflow:hidden;touch-action:none;-webkit-user-select:none;user-select:none}.bar{display:flex;align-items:center;gap:10px;min-height:44px}.bar.bottom{justify-content:space-between;padding-top:8px}.bar-title{flex:1;display:flex;align-items:baseline;gap:8px;min-width:0}.bar-title .lvl{font-size:12px;color:var(--ink-dim)}.bar-title strong{font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.badge{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#1a1a1a;background:var(--accent-2);padding:2px 7px;border-radius:999px}.icon{width:40px;height:40px;border-radius:12px;background:var(--panel);font-size:22px;line-height:1;display:grid;place-items:center}.hint{font-size:11px;color:var(--ink-dim);text-align:right}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0 10px}.stats>div,.result>div{background:var(--panel);border-radius:14px;padding:8px 10px;display:flex;flex-direction:column;gap:1px}.stats span,.result span{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim)}.stats strong,.result strong{font-size:18px;font-variant-numeric:tabular-nums}.board-area{flex:1;min-height:0;display:grid;place-items:center}.board{position:relative;background:var(--bg-0);border-radius:10px;box-shadow:inset 0 0 0 1px #ffffff0f,0 20px 50px #00000073;overflow:visible;touch-action:none}.piece{position:absolute;left:0;top:0;background-repeat:no-repeat;will-change:transform;transition:transform .2s cubic-bezier(.2,.8,.2,1),clip-path .18s ease;filter:drop-shadow(0 1px 1px rgba(0,0,0,.35))}.board.is-locked .piece{transition:clip-path .4s ease,transform .2s ease}.piece.lifted{transition:clip-path .18s ease;z-index:10;filter:drop-shadow(0 10px 14px rgba(0,0,0,.55)) brightness(1.06)}.target{position:absolute;left:0;top:0;z-index:5;pointer-events:none;box-shadow:inset 0 0 0 2px var(--leaf);border-radius:4px;opacity:.9}.admire{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:flex;align-items:flex-end;justify-content:center;padding-bottom:max(28px,env(safe-area-inset-bottom));background:transparent}.play.admiring .bar.bottom{visibility:hidden}.admire span{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim);background:#0d1626b3;padding:8px 14px;border-radius:999px;animation:breathe 2.4s ease-in-out infinite}@keyframes breathe{0%,to{opacity:.45}50%{opacity:1}}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:20px;background:#080c188c;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:fade .3s ease both}@keyframes fade{0%{opacity:0}}.card{background:var(--panel);border-radius:24px;padding:22px 20px;width:min(360px,100%);box-shadow:0 30px 80px #0009;text-align:center;position:relative;animation:pop .4s cubic-bezier(.2,.9,.3,1.3) both}@keyframes pop{0%{transform:translateY(20px) scale(.92);opacity:0}}.card h2{margin:0 0 14px;font-size:28px;font-weight:900}.result{display:grid;grid-template-columns:1fr 1fr;gap:10px}.result>div{background:var(--panel-2)}.best{margin:12px 0 16px;color:var(--accent-2);font-weight:700;font-size:14px}.actions{display:flex;flex-direction:column;gap:8px}.primary,.ghost{padding:12px 16px;border-radius:14px;font-weight:700;font-size:16px}.primary{background:linear-gradient(135deg,var(--accent),#ff6b8b);color:#1a1a1a;box-shadow:0 8px 20px #ff6b8b59}.ghost{background:var(--panel-2);color:var(--ink)}.bar .ghost{padding:8px 14px;font-size:14px}.petals{position:fixed;top:0;right:0;bottom:0;left:0;z-index:110;overflow:hidden;pointer-events:none}.petals span{position:absolute;top:-20px;width:12px;height:10px;background:var(--accent);border-radius:60%/80% 80% 40% 40%;opacity:.85;animation:fall 3.2s linear infinite}.petals span:nth-child(odd){background:var(--accent-2)}.petals span:nth-child(3n){background:#ffd6de}.petals span:nth-child(4n){background:var(--leaf);border-radius:2px;width:8px;height:12px}.petals span:nth-child(5n){background:#8fd3ff;border-radius:2px}@keyframes fall{to{transform:translateY(110vh) rotate(540deg) translate(40px);opacity:.2}}
