html { background:#0c0a11; color-scheme:dark; }
body { margin:0; min-height:100vh; background:#0c0a11; color:#f1e8d6; font-family:"SB Body", "Bricolage Grotesque", ui-rounded, "Segoe UI", sans-serif; -webkit-font-smoothing:antialiased; }
#app { min-height:100vh; }
.loading { min-height:80vh; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; color:rgba(241,232,214,.7); }
.pumpkin { font-size:72px; animation:bob 2.4s ease-in-out infinite; filter:drop-shadow(0 0 26px rgba(255,117,24,.7)); }
@keyframes bob { 50% { transform:translateY(-8px) rotate(-6deg); } }
.nojs { text-align:center; padding:40px; }
footer { max-width:860px; margin:0 auto; padding:28px 18px 48px; text-align:center; font-size:13.5px; line-height:1.55; color:rgba(241,232,214,.62); }
footer p { margin:0 0 10px; }
footer .tip { color:#ffd6a8; font-weight:600; }
footer .small { font-size:12px; opacity:.8; }
footer a, .linkish, dialog a { color:#ff9a4d; }
.linkish { background:none; border:0; padding:0; font:inherit; text-decoration:underline; cursor:pointer; }
dialog { max-width:min(760px, calc(100vw - 24px)); max-height:min(80vh, 900px); width:100%; border:1px solid rgba(241,232,214,.12); border-radius:20px;
  background:#16111e; color:#f1e8d6; padding:22px 24px; box-shadow:0 30px 80px -20px #000; }
dialog::backdrop { background:rgba(5,3,8,.72); backdrop-filter:blur(4px); }
dialog h2 { font-family:"SB Display", "Pirata One", Georgia, serif; font-weight:400; font-size:34px; margin:0 0 6px; color:#ffe9c7; }
dialog h3 { font-family:"SB Display", "Pirata One", Georgia, serif; font-weight:400; font-size:22px; margin:18px 0 6px; color:#ffe9c7; }
dialog p { color:rgba(241,232,214,.7); font-size:14px; }
dialog ul { margin:0; padding-left:18px; font-size:13.5px; line-height:1.6; }
dialog .close { position:absolute; top:10px; right:14px; background:none; border:0; color:inherit; font-size:28px; cursor:pointer; }
#toast { position:fixed; left:50%; bottom:24px; transform:translate(-50%, 20px); opacity:0; pointer-events:none; transition:.25s;
  background:#231a2e; border:1px solid rgba(255,117,24,.5); color:#f1e8d6; padding:10px 16px; border-radius:12px; font-size:14px; box-shadow:0 12px 30px -10px #000; max-width:calc(100vw - 32px); }
#toast.on { opacity:1; transform:translate(-50%, 0); }
.install { background:linear-gradient(180deg, #ff9a4d, #ff7518); color:#1a0f00; border:0; border-radius:12px; padding:10px 16px; font:inherit; font-weight:800; cursor:pointer; }
