:root{--ink:#1d2350;--paper:#fffaf2;--pop:#ffcf3f;--pop-ink:#3a2a00;--moon:#fff2a6;--glass:#ffffffdb;--radius-l:32px;--radius-m:20px;color:var(--ink);-webkit-tap-highlight-color:transparent;font-family:"Baloo 2",Comic Sans MS,system-ui,sans-serif}*{box-sizing:border-box}body{background:#0e1440;min-height:100dvh;margin:0}.scene{z-index:-1;position:fixed;inset:0}.scene svg{width:100%;height:100%}.page{max-width:480px;min-height:100dvh;padding:max(16px, env(safe-area-inset-top)) 16px max(24px, env(safe-area-inset-bottom));flex-direction:column;gap:16px;margin:0 auto;display:flex}a{color:inherit;text-decoration:none}:focus-visible{outline:4px solid var(--pop);outline-offset:3px}.button{font:inherit;background:var(--pop);color:var(--pop-ink);cursor:pointer;text-align:center;border:0;border-radius:999px;padding:10px 22px;font-size:1.15rem;font-weight:800;box-shadow:0 5px #d9a514}.button:active{translate:0 3px;box-shadow:0 2px #d9a514}.button.big{padding:14px 24px;font-size:1.4rem}.back{color:#fff;text-shadow:0 2px 6px #0000004d;font-size:1.2rem;font-weight:700}.link{font:inherit;color:#fff;opacity:.75;cursor:pointer;background:0 0;border:0;align-self:center;margin-top:auto;text-decoration:underline}.brand{color:#fff;text-align:center;text-shadow:0 4px #0000002e;margin:24px 0 8px;font-size:clamp(2.2rem,11vw,3.2rem);line-height:1}.cards{gap:14px;margin:0;padding:0;list-style:none;display:grid}.card{border-radius:var(--radius-l);color:#fff;text-shadow:0 2px 4px #00000040;border:3px solid #ffffff80;grid-template-columns:auto 1fr;grid-template-areas:"emoji title""emoji nights";align-items:center;column-gap:14px;padding:14px 18px;display:grid}.card-emoji{grid-area:emoji;font-size:2.6rem}.card-title{grid-area:title;font-size:1.25rem;font-weight:700;line-height:1.15}.card-nights{grid-area:nights;font-size:1.05rem}.card-nights b{font-size:1.6rem}.panel{background:var(--glass);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--radius-l);flex-direction:column;gap:16px;padding:20px;display:flex}.panel h1{margin:0;font-size:1.9rem;line-height:1.1}label,legend{flex-direction:column;gap:4px;font-size:1.1rem;font-weight:700;display:flex}input{font:inherit;border-radius:var(--radius-m);color:var(--ink);background:#fff;border:3px solid #d6d9ef;padding:10px 14px;font-size:1.2rem}fieldset{border:0;margin:0;padding:0}.picker{grid-template-columns:repeat(4,1fr);gap:8px;margin-top:6px;display:grid}.picker button{font:inherit;border-radius:var(--radius-m);color:var(--ink);cursor:pointer;background:#fff;border:3px solid #0000;flex-direction:column;align-items:center;padding:6px 2px;font-size:.85rem;display:flex}.picker button span{font-size:1.8rem;line-height:1.2}.picker button[aria-pressed=true]{border-color:var(--ink);background:var(--pop)}.emojis{grid-template-columns:repeat(6,1fr)}.detail{color:#fff;text-align:center;text-shadow:0 3px 8px #0000004d}.bar{justify-content:space-between;align-items:center;display:flex}.bar .button{text-shadow:none}.detail-emoji{text-shadow:none;margin:8px 0 0;font-size:4rem;line-height:1}.detail-title{margin:0;font-size:1.7rem;line-height:1.1}.hero{flex-direction:column;margin:0;line-height:1;display:flex}.hero-pre,.hero-post{font-size:clamp(1.6rem,8vw,2.2rem);font-weight:800}.hero-number{color:var(--moon);text-shadow:0 8px #00000026,0 0 40px #fff2a699;font-size:clamp(8rem,48vw,13rem);font-weight:800;line-height:.9}.party{color:var(--moon);margin-top:40px;font-size:clamp(3rem,16vw,4.5rem);font-weight:800;animation:1s ease-in-out infinite alternate bounce}@keyframes bounce{to{transform:translateY(-14px)scale(1.05)}}.ticker{justify-content:center;gap:8px;margin:0;padding:0;list-style:none;display:flex}.ticker li{border-radius:var(--radius-m);background:#00000038;flex-direction:column;min-width:64px;padding:6px 8px;font-size:.9rem;display:flex}.ticker b{font-variant-numeric:tabular-nums;font-size:1.6rem;line-height:1.1}.moons{flex-wrap:wrap;justify-content:center;gap:6px;margin:4px 0 0;padding:0;list-style:none;display:flex}.moons li{width:26px;height:26px;box-shadow:inset -8px -3px 0 0 var(--moon);filter:drop-shadow(0 0 6px #fff2a6b3);border-radius:50%;rotate:-20deg}.moons li.slept{opacity:.2;filter:none}.progress{background:#00000040;border-radius:999px;height:26px;overflow:hidden}.progress div{background:var(--moon);border-radius:999px;height:100%}.toast{border-radius:var(--radius-m);background:var(--paper);max-width:448px;color:var(--ink);text-shadow:none;margin:0 auto;padding:12px 16px;font-weight:700;position:fixed;bottom:24px;left:16px;right:16px}@media (prefers-reduced-motion:reduce){.party{animation:none}}
