:root{--glass:rgba(255,255,255,.14);--line:rgba(255,255,255,.28);--ink:#fff}
html,body{margin:0;min-height:100%;font-family:'Bricolage Grotesque',sans-serif;color:var(--ink);overflow-x:hidden}
body{background:#1e3a5f;transition:background 1.2s}
#sky{position:fixed;inset:0;width:100vw;height:100vh;z-index:0;pointer-events:none}
#root{position:relative;z-index:1}
body.snowy{--glass:rgba(15,25,45,.35)}
.mono{font-family:'JetBrains Mono',monospace}
body.snowy{--glass:rgba(15,25,45,.35)}
.glass{background:var(--glass);backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);border:1px solid var(--line);border-radius:1.4rem;box-shadow:0 10px 40px rgba(0,0,0,.18)}
.chip{min-width:64px;min-height:44px}
.btn{min-height:44px;padding:0 14px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.12);transition:.2s;font-weight:500}
.btn:hover{background:rgba(255,255,255,.25)}
.btn.on{background:#fff;color:#123}
.editable{outline:1.5px dashed rgba(255,255,255,.55);outline-offset:3px;border-radius:10px;cursor:pointer}
.rise{animation:rise .7s cubic-bezier(.2,.8,.2,1) both}
@keyframes rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
.sheet-bg{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:50;display:flex;align-items:flex-end;justify-content:center}
@media(min-width:640px){.sheet-bg{align-items:center}}
.sheet{background:#0f1c2e;color:#fff;width:100%;max-width:440px;border-radius:1.5rem 1.5rem 0 0;padding:20px;border:1px solid var(--line)}
@media(min-width:640px){.sheet{border-radius:1.5rem}}
input,select{background:rgba(255,255,255,.1);border:1px solid var(--line);border-radius:12px;padding:10px;color:#fff;width:100%;min-height:44px}
select option{color:#000}
input[type=range]{padding:0;accent-color:#ffd166}
.scrollx{scrollbar-width:thin}
.confetti{position:fixed;top:-20px;width:10px;height:14px;z-index:60;animation:fall linear forwards}
@keyframes fall{to{transform:translateY(110vh) rotate(720deg)}}
.spin{animation:sp 12s linear infinite;display:inline-block}
@keyframes sp{to{transform:rotate(360deg)}}