:root{--bg:#110c09;--glow:#2a1a10;--card:#1f1610;--line:rgba(255,122,26,.25);--ink:#f4ead8;--dim:#a8988a;--orange:#ff7a1a;--orange2:#ffb070;--on:#140b05;--input:#160f0b;
      --green:#2fbf6b;--red:#e5483a;--ghost:rgba(255,255,255,.2);--soft:rgba(255,255,255,.02);
      --disp:'Bebas Neue',sans-serif;--dispStyle:normal;--dispWeight:400;--dispScale:1;--dispTrack:.01em;--dispCase:none;
      --logo:'Bebas Neue',sans-serif;--logoW:400;--logoTrack:.03em;--logoCase:none;--logoSize:30px;--pattern:none;--patSize:auto;--radius:12px}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--bg);transition:background-color .8s}
body{background:radial-gradient(ellipse at 20% 0%,var(--glow),transparent 60%);color:var(--ink);font-family:Inter,-apple-system,system-ui,sans-serif;min-height:100vh;line-height:1.5;transition:color .8s}
a{color:var(--orange2);transition:color .8s}
.hidden{display:none!important}
body::before{content:'';position:fixed;inset:0;pointer-events:none;background-image:var(--pattern);background-size:var(--patSize)}
body>*{position:relative}
.wrap{max-width:1040px;margin:0 auto;padding:0 22px}
nav{display:flex;justify-content:space-between;align-items:center;padding:22px 0}
.logo{font-family:var(--logo);font-weight:var(--logoW);font-size:var(--logoSize);letter-spacing:var(--logoTrack);text-transform:var(--logoCase);white-space:nowrap;color:var(--orange);text-decoration:none;transition:color .8s}
nav .links a{margin-left:18px;text-decoration:none;font-weight:700;color:var(--ink)}
nav .links a.btn{color:var(--on)}
.btn{display:inline-block;font:inherit;font-size:16px;font-weight:800;padding:13px 22px;border-radius:var(--radius);border:none;background:var(--orange);color:var(--on);cursor:pointer;text-decoration:none;transition:background .8s,color .8s,border-color .8s}
.btn.ghost{background:transparent;color:var(--ink);border:1.5px solid var(--ghost)}
.btn.small{font-size:13px;padding:8px 12px;border-radius:min(var(--radius),9px)}
.btn.red{background:var(--red);color:#fff}
.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:22px;transition:background .8s,border-color .8s}
html.light .card{box-shadow:0 10px 30px rgba(60,30,20,.06)}
h1,h2,h3{line-height:1.1}
.display{font-family:var(--disp);font-style:var(--dispStyle);font-weight:var(--dispWeight);letter-spacing:var(--dispTrack);text-transform:var(--dispCase)}
label{display:block;font-size:13px;font-weight:700;color:var(--dim);margin:14px 0 6px}
input,select{width:100%;font:inherit;font-size:16px;padding:13px 14px;border-radius:12px;border:1.5px solid var(--ghost);background:var(--input);color:var(--ink)}
input:focus{outline:none;border-color:var(--orange)}
.err{color:#e5584a;font-size:14px;min-height:20px;margin-top:10px}
.muted{color:var(--dim);transition:color .8s}
.pill{display:inline-block;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:100px;background:rgba(255,122,26,.15);color:var(--orange2)}
.pill.ok{background:rgba(47,191,107,.15);color:#3fbf72}
.pill.off{background:rgba(229,72,58,.15);color:#e5584a}
footer{padding:50px 0 40px;color:var(--dim);font-size:13px;text-align:center}
/* party-type switcher (home + every /for page) */
.chips{display:flex;flex-wrap:wrap;gap:8px;padding:4px 0 0}
.chips a{font-size:14px;font-weight:700;padding:8px 14px;border-radius:100px;border:1.5px solid var(--line);background:var(--soft);color:var(--ink);text-decoration:none;white-space:nowrap;transition:background .5s,border-color .5s,color .5s}
.chips a:hover{border-color:var(--orange)}
.chips a.on{background:var(--orange);border-color:var(--orange);color:var(--on)}
/* formal themes: engraved caps, square corners */
html[data-theme=ivory] .btn,html[data-theme=gala] .btn{text-transform:uppercase;letter-spacing:.16em;font-size:13px;font-weight:700;padding:15px 24px}
html[data-theme=ivory] .btn.small,html[data-theme=gala] .btn.small{font-size:11px;padding:9px 13px}
html[data-theme=ivory] .chips a,html[data-theme=gala] .chips a{text-transform:uppercase;letter-spacing:.12em;font-size:12px;border-width:1px}
html[data-theme=ivory] .card,html[data-theme=gala] .card{border-radius:4px}
html[data-theme=ivory] nav .links a:not(.btn),html[data-theme=gala] nav .links a:not(.btn){text-transform:uppercase;letter-spacing:.14em;font-size:12px}
@media (max-width:620px){nav .logo{font-size:calc(var(--logoSize) * .72)}nav .links{display:flex;align-items:center;white-space:nowrap}nav .links a{margin-left:12px}.chips{flex-wrap:nowrap;overflow-x:auto;margin:0 -22px;padding:6px 22px 4px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chips a{flex:none}}
