:root{
  --bg:#0c1310;
  --bg2:#101a15;
  --surface:#152119;
  --surface2:#1b2a20;
  --line:#27392e;
  --text:#eaf3ec;
  --muted:#93aa9b;
  --ember:#ff7a3c;
  --ember2:#ffb15c;
  --gold:#f4c95d;
  --danger:#ff5d5d;
  --ok:#57d98f;
  --radius:18px;
  --font-body:'Outfit',system-ui,sans-serif;
  --font-display:'Fraunces',serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:var(--font-body);line-height:1.6;min-height:100vh;position:relative;overflow-x:hidden}
.hidden{display:none !important}
.muted{color:var(--muted)}
.small{font-size:.85rem}

/* ambient glow */
.torch-glow{position:fixed;top:-30vh;right:-20vw;width:70vw;height:70vw;background:radial-gradient(circle,rgba(255,122,60,.14),transparent 60%);pointer-events:none;z-index:0;animation:flicker 6s ease-in-out infinite}
@keyframes flicker{0%,100%{opacity:.9}40%{opacity:.6}70%{opacity:1}}

/* header */
.site-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:1rem clamp(1rem,4vw,3rem);background:rgba(12,19,16,.82);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.logo{font-family:var(--font-display);font-weight:800;font-size:1.3rem;color:var(--text);text-decoration:none;display:flex;align-items:center;gap:.4rem}
.logo span:not(.logo-flame):not(.pill){color:var(--ember)}
.logo-flame{filter:drop-shadow(0 0 8px rgba(255,122,60,.7))}
.nav{display:flex;align-items:center;gap:1.25rem}
.nav a{color:var(--muted);text-decoration:none;font-weight:500;transition:color .2s}
.nav a:hover{color:var(--text)}
.nav-nick{color:var(--gold);font-weight:600}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background:linear-gradient(135deg,var(--ember),#e8571f);color:#170b05;font-weight:700;font-family:var(--font-body);border:none;border-radius:999px;padding:.75rem 1.6rem;font-size:1rem;cursor:pointer;text-decoration:none;transition:transform .15s ease,box-shadow .15s ease,filter .15s;box-shadow:0 4px 20px rgba(255,122,60,.25)}
.btn:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(255,122,60,.4);filter:brightness(1.05)}
.btn:active{transform:translateY(0)}
.btn:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}
.btn-sm{padding:.5rem 1.1rem;font-size:.9rem}
.btn-lg{padding:.95rem 2.2rem;font-size:1.1rem}
.btn-full{width:100%}
.btn-ghost{background:transparent;color:var(--text);border:1px solid var(--line);box-shadow:none}
.btn-ghost:hover{border-color:var(--ember);box-shadow:none;color:var(--ember2)}
.btn-danger{background:linear-gradient(135deg,#ff5d5d,#d63030);color:#1b0505;box-shadow:0 4px 20px rgba(255,93,93,.25)}

/* hero */
main{position:relative;z-index:1}
.hero{padding:clamp(3rem,8vw,6rem) clamp(1rem,4vw,3rem) 4rem;max-width:1100px;margin:0 auto;text-align:center}
.eyebrow{text-transform:uppercase;letter-spacing:.25em;font-size:.8rem;color:var(--ember2);font-weight:600;margin-bottom:1rem}
.hero h1{font-family:var(--font-display);font-weight:800;font-size:clamp(2.8rem,9vw,5.5rem);line-height:1.02;letter-spacing:-.02em}
.hero h1 em{font-style:italic;color:var(--ember);text-shadow:0 0 30px rgba(255,122,60,.35)}
.lede{max-width:560px;margin:1.5rem auto 2rem;color:var(--muted);font-size:1.15rem}
.hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-bottom:3rem}

/* season card */
.season-card{max-width:640px;margin:0 auto;background:linear-gradient(160deg,var(--surface),var(--surface2));border:1px solid var(--line);border-radius:var(--radius);padding:2rem;box-shadow:0 20px 60px rgba(0,0,0,.4)}
.season-loading,.season-error{color:var(--muted)}
.season-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}
.season-head h2{font-family:var(--font-display);font-size:1.5rem;text-align:left}
.pill{background:rgba(87,217,143,.12);color:var(--ok);border:1px solid rgba(87,217,143,.35);padding:.15rem .75rem;border-radius:999px;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em}
.pill-closed{background:rgba(255,93,93,.12);color:var(--danger);border-color:rgba(255,93,93,.35)}
.pill-admin{background:rgba(244,201,93,.12);color:var(--gold);border-color:rgba(244,201,93,.35);font-size:.65rem;margin-left:.4rem}
.season-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.5rem}
.stat{background:rgba(0,0,0,.25);border-radius:12px;padding:1rem .5rem;display:flex;flex-direction:column;align-items:center}
.stat-num{font-family:var(--font-display);font-size:1.7rem;font-weight:800;color:var(--gold)}
.stat-label{font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}
.countdown-label{font-size:.8rem;text-transform:uppercase;letter-spacing:.2em;color:var(--muted);margin-bottom:.5rem}
.countdown-grid{display:flex;justify-content:center;gap:1.5rem}
.countdown-grid div{display:flex;flex-direction:column;align-items:center}
.countdown-grid b{font-family:var(--font-display);font-size:2rem;color:var(--ember2)}
.countdown-grid span{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}

/* sections */
.section{max-width:1100px;margin:0 auto;padding:4rem clamp(1rem,4vw,3rem)}
.section-title{font-family:var(--font-display);font-size:clamp(1.8rem,4vw,2.6rem);margin-bottom:2.5rem;text-align:center}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.25rem}
.step{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.75rem;transition:transform .2s,border-color .2s}
.step:hover{transform:translateY(-4px);border-color:var(--ember)}
.step-num{display:inline-flex;width:2.2rem;height:2.2rem;align-items:center;justify-content:center;border-radius:50%;background:var(--ember);color:#170b05;font-weight:800;margin-bottom:1rem}
.step h3{font-family:var(--font-display);margin-bottom:.5rem}
.step p{color:var(--muted);font-size:.95rem}

/* payouts */
.payout-bars{max-width:700px;margin:0 auto;display:flex;flex-direction:column;gap:1rem}
.payout{display:grid;grid-template-columns:1fr 160px;align-items:center;gap:1rem}
.payout-bar{height:2.6rem;width:var(--w);min-width:70px;background:linear-gradient(90deg,var(--ember),var(--gold));border-radius:8px;display:flex;align-items:center;justify-content:flex-end;padding-right:.75rem;font-weight:800;color:#170b05;animation:grow 1s ease both}
.payout-house{background:linear-gradient(90deg,#4a5d52,#6b8274);color:var(--text)}
@keyframes grow{from{width:0}}
.payout p{font-weight:600}
.payout-note{text-align:center;color:var(--muted);margin-top:2rem}
.payout-note b{color:var(--gold)}
.cta-band{text-align:center}
.cta-band h2{font-family:var(--font-display);font-size:2rem;margin-bottom:1.5rem}

/* footer */
.site-footer{border-top:1px solid var(--line);padding:2.5rem clamp(1rem,4vw,3rem);max-width:1100px;margin:2rem auto 0;color:var(--muted);font-size:.9rem}
.site-footer.slim{padding:1.5rem}
.site-footer .legal{margin-top:.75rem;font-size:.8rem;opacity:.8}

/* auth */
.auth-wrap{display:flex;justify-content:center;padding:clamp(2rem,6vw,5rem) 1rem}
.auth-card{width:100%;max-width:440px;background:linear-gradient(160deg,var(--surface),var(--surface2));border:1px solid var(--line);border-radius:var(--radius);padding:2.25rem;box-shadow:0 20px 60px rgba(0,0,0,.4)}
.auth-title{font-family:var(--font-display);font-size:1.9rem;margin-bottom:.4rem}
.auth-sub{color:var(--muted);margin-bottom:1.5rem;font-size:.95rem}
.tabs{display:flex;background:rgba(0,0,0,.3);border-radius:999px;padding:.3rem;margin-bottom:1.5rem}
.tab{flex:1;background:none;border:none;color:var(--muted);font-family:var(--font-body);font-weight:600;padding:.55rem;border-radius:999px;cursor:pointer;transition:all .2s}
.tab.active{background:var(--ember);color:#170b05}
.auth-form{display:flex;flex-direction:column;gap:1rem}
.auth-form label{display:flex;flex-direction:column;gap:.35rem;font-weight:600;font-size:.9rem}
.auth-form small{color:var(--muted);font-weight:400}
input,textarea,select{background:rgba(0,0,0,.3);border:1px solid var(--line);border-radius:10px;padding:.7rem .9rem;color:var(--text);font-family:var(--font-body);font-size:1rem;transition:border-color .2s,box-shadow .2s;width:100%}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--ember);box-shadow:0 0 0 3px rgba(255,122,60,.18)}
.form-error{color:var(--danger);font-size:.9rem}
.form-msg{font-size:.9rem;color:var(--ok)}
.form-msg.err{color:var(--danger)}
.auth-fine{margin-top:1.25rem;font-size:.8rem;color:var(--muted)}

/* dashboard */
.dash{max-width:1100px;margin:0 auto;padding:2.5rem clamp(1rem,4vw,3rem);display:flex;flex-direction:column;gap:1.5rem}
.page-loading{text-align:center;color:var(--muted);padding:4rem 0;font-size:1.1rem}
.spinner{display:inline-block;width:1em;height:1em;border:2px solid var(--line);border-top-color:var(--ember);border-radius:50%;animation:spin .8s linear infinite;vertical-align:-2px}
@keyframes spin{to{transform:rotate(360deg)}}
.banner{border-radius:12px;padding:1rem 1.25rem;font-weight:600}
.banner-success{background:rgba(87,217,143,.12);border:1px solid rgba(87,217,143,.4);color:var(--ok)}
.dash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem}
#dash-content{display:flex;flex-direction:column;gap:1.5rem}
.card{background:linear-gradient(160deg,var(--surface),var(--surface2));border:1px solid var(--line);border-radius:var(--radius);padding:1.75rem;transition:border-color .2s}
.card:hover{border-color:#33493c}
.card-label{text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;color:var(--muted);font-weight:600;margin-bottom:.5rem}
.card h2{font-family:var(--font-display);font-size:1.5rem}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}
.contestant-name{color:var(--gold);font-size:1.8rem}
.me-status{margin:.75rem 0;font-weight:600}
.status-in{color:var(--ok)}.status-out{color:var(--danger)}.status-unpaid{color:var(--ember2)}
.pay-copy{color:var(--muted);font-size:.9rem;margin-bottom:.75rem}
.season-list{list-style:none;margin-top:.75rem}
.season-list li{display:flex;justify-content:space-between;padding:.45rem 0;border-bottom:1px dashed var(--line);font-size:.95rem}
.season-list li span{color:var(--muted)}
.table-wrap{overflow-x:auto}
.table{width:100%;border-collapse:collapse;font-size:.95rem}
.table th{text-align:left;color:var(--muted);text-transform:uppercase;font-size:.72rem;letter-spacing:.12em;padding:.6rem .75rem;border-bottom:1px solid var(--line)}
.table td{padding:.65rem .75rem;border-bottom:1px solid rgba(39,57,46,.5)}
.table tr.is-out td{opacity:.5}
tr.is-me td{background:rgba(255,122,60,.07)}
.tag{display:inline-block;padding:.1rem .6rem;border-radius:999px;font-size:.75rem;font-weight:700}
.tag-in{background:rgba(87,217,143,.14);color:var(--ok)}
.tag-out{background:rgba(255,93,93,.14);color:var(--danger)}
.tag-place{background:rgba(244,201,93,.16);color:var(--gold)}
.sub-head{font-family:var(--font-display);margin:1.5rem 0 .75rem;font-size:1.1rem}
.elim-log{list-style:none;display:flex;flex-direction:column;gap:.4rem}
.elim-log li{padding:.55rem .9rem;background:rgba(0,0,0,.25);border-radius:10px;font-size:.9rem}
.elim-log li b{color:var(--danger)}
.standings{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}
.standing-pool{background:rgba(0,0,0,.25);border:1px solid var(--line);border-radius:12px;padding:1rem 1.25rem}
.standing-pool h4{font-family:var(--font-display);margin-bottom:.6rem;color:var(--ember2)}
.standing-pool ul{list-style:none;font-size:.9rem}
.standing-pool li{padding:.2rem 0}
.standing-pool li.out{color:var(--muted);text-decoration:line-through}
.standing-pool li .medal{margin-left:.3rem}

/* admin */
.admin-gate{margin:3rem auto}
.stat-band{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem}
.stat-tile{background:linear-gradient(160deg,var(--surface),var(--surface2));border:1px solid var(--line);border-radius:14px;padding:1.1rem;text-align:center}
.stat-tile b{display:block;font-family:var(--font-display);font-size:1.7rem;color:var(--gold)}
.stat-tile span{font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}
.admin-grid{grid-template-columns:1fr 1fr;align-items:start}
.card-stack{display:flex;flex-direction:column;gap:1.5rem}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.field-row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem}
.card-danger{border-color:rgba(255,93,93,.35)}
.payout-result{margin-top:.75rem;background:rgba(244,201,93,.08);border:1px solid rgba(244,201,93,.35);border-radius:12px;padding:1rem;font-size:.95rem}
.payout-result b{color:var(--gold)}

/* toast */
.toast{position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%,150%);background:#26160e;border:1px solid var(--ember);color:var(--text);padding:.8rem 1.4rem;border-radius:12px;box-shadow:0 10px 40px rgba(0,0,0,.5);transition:transform .3s ease;z-index:100;max-width:90vw;font-weight:600}
.toast.show{transform:translate(-50%,0)}
.toast.err{border-color:var(--danger)}

@media(max-width:860px){
  .admin-grid{grid-template-columns:1fr}
  .payout{grid-template-columns:1fr 120px}
  .field-row3{grid-template-columns:1fr}
}
@media(max-width:560px){
  .nav a:not(.btn){display:none}
  .season-stats{grid-template-columns:1fr 1fr 1fr;gap:.5rem}
  .countdown-grid{gap:.9rem}
  .field-row{grid-template-columns:1fr}
}
