/* ============================================================
   REDEMPTION HOUSE — SHARED STYLESHEET
   One file, loaded by every page (public + admin).
   Convention: one CSS rule per line.
   ============================================================ */

/* ---------- design tokens ---------- */
:root {
    --ink: #0d0a14;
    --ink-2: #151020;
    --ink-3: #1e1830;
    --ink-contrast: #f3eae0;
    --primary: #520eb9;
    --secondary: #00a1b3;
    --ember: #520eb9;
    --secondary: #00a1b3;
    --ember-glow: #8514e1;
    --bone: #f3eae0;
    --smoke: #978c82;
    --line: rgba(243, 234, 224, 0.09);
    --line-strong: rgba(243, 234, 224, 0.16);
    --good: #7fae6f;
    --warn: #d6a24c;
    --bad: #e8432f;
    --sidebar-w: 236px;
}

/* ---------- light mode ---------- */
html.light{ --ink:#ffffff; --ink-2:#f8f6ff; --ink-3:#efe8ff; --ink-contrast:#0d0a14; --bone:#0d0a14; --smoke:#6b6280; --line:rgba(82,14,185,0.12); --line-strong:rgba(82,14,185,0.20); }
html.light header{ background:#ffffff; }
html.light .topbar{ background:rgba(246,241,233,0.94); }
html.light .btn-primary, html.light .btn-gold{ box-shadow:none; }
html.light .rh-inline-control .rh-ie-toggle, html.light .rh-inline-editor, html.light .nav-drop-menu{ background:#ffffff; }
html.light .rh-toast, html.light .admin-modal .modal-content{ background:#ffffff; }
html.light .rh-inline-editor textarea{ background:#f6f1e9; }

/* ---------- reset & base ---------- */
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{ background:var(--ink); color:var(--bone); font-family:'Space Grotesk', sans-serif; -webkit-font-smoothing:antialiased; overflow-x:hidden; }
a{ color:inherit; text-decoration:none; }
img{max-width:100%; display:block;}
::selection{ background:var(--primary); color:var(--ink-contrast); }
:focus-visible{ outline:2px solid var(--primary); outline-offset:3px; }
::-webkit-scrollbar{ width:8px; height:8px; }
::-webkit-scrollbar-thumb{ background:var(--ink-3); border-radius:4px; }
.wrap{ max-width:1180px; margin:0 auto; padding:0 32px; }

.wrap-narrow{ max-width:720px; margin:0 auto; padding:0 32px; }

/* ---------- typography helpers ---------- */
.display{ font-family:'Anton', sans-serif; text-transform:uppercase; letter-spacing:0.5px; }
.mono{ font-family:'JetBrains Mono', monospace; }
.kicker{ font-family:'JetBrains Mono',monospace; font-size:12px; letter-spacing:3px; color:var(--primary); margin-bottom:10px; display:block; }
.h2{ font-size:clamp(32px,4.5vw,48px); }

/* ---------- background texture ---------- */
.grain{ position:fixed; inset:0; pointer-events:none; z-index:1; opacity:0.05; mix-blend-mode:overlay; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='90'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }

/* ---------- buttons ---------- */
.btn{ display:inline-flex; align-items:center; gap:8px; justify-content:center; padding:11px 22px; border-radius:2px; font-size:13px; font-weight:600; letter-spacing:1.2px; text-transform:uppercase; cursor:pointer; border:1px solid transparent; transition:transform .18s ease, box-shadow .18s ease, background .18s ease; white-space:nowrap; }
.btn-primary{ background:var(--primary); color:var(--ink-contrast); }
.btn-primary:hover{ transform:translateY(-2px); box-shadow:0 10px 30px -8px rgba(82,14,185,0.55); }
.btn-ghost{ border-color:var(--line-strong); color:var(--bone); }
.btn-ghost:hover{ border-color:var(--primary); color:var(--primary); }
.btn-gold{ background:var(--primary); color:var(--ink-contrast); }
.btn-gold:hover{ transform:translateY(-2px); box-shadow:0 10px 30px -8px rgba(214,162,76,0.5); }
.btn-outline{ border-color:var(--line-strong); color:var(--bone); padding:9px 18px; font-size:12px; }
.btn-outline:hover{ border-color:var(--primary); color:var(--primary); }
.btn:disabled{ opacity:0.4; cursor:not-allowed; transform:none !important; box-shadow:none !important; }
.navcta-link{ font-size:13px; color:var(--smoke); letter-spacing:0.5px; transition:color .15s ease; }
.navcta-link:hover{ color:var(--bone); }

/* ---------- public nav / header ---------- */
header{ position:sticky; top:0; z-index:50; background:rgba(11,9,8,0.82); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); }
header nav{ display:flex; align-items:center; justify-content:space-between; padding:18px 0; }
.brand{ display:flex; align-items:center; gap:10px; font-size:15px; letter-spacing:2px; }
.brand .mark{ width:26px; height:26px; }
.brand b{ font-weight:700; }
.navlinks{ display:flex; gap:26px; font-size:14px; color:var(--smoke); }
.navlinks a:hover{ color:var(--bone); }
.nav-drop{ position:relative; }
.nav-drop-btn{ background:none; border:none; color:var(--smoke); font-size:14px; font-family:inherit; letter-spacing:inherit; cursor:pointer; padding:0; display:inline-flex; align-items:center; gap:5px; }
.nav-drop-btn:hover{ color:var(--bone); }
.nav-caret{ font-size:11px; color:var(--primary); }
.nav-drop-menu{ display:none; position:absolute; top:calc(100% + 16px); left:50%; transform:translateX(-50%); background:var(--ink-2); border:1px solid var(--line-strong); border-radius:4px; min-width:220px; padding:6px; box-shadow:0 16px 40px rgba(0,0,0,.45); z-index:60; }
.nav-drop-menu::before{ content:''; position:absolute; top:-8px; left:50%; width:12px; height:12px; background:var(--ink-2); border-left:1px solid var(--line-strong); border-top:1px solid var(--line-strong); transform:translateX(-50%) rotate(45deg); }
.nav-drop-group{ padding:6px 0; }
.nav-drop-group:not(:last-child){ border-bottom:1px solid var(--line-strong); }
.nav-drop-group-title{ font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--primary); padding:8px 12px 4px; }
.nav-drop-menu a{ display:block; padding:9px 12px; font-size:13.5px; color:var(--smoke); border-radius:2px; }
.nav-drop-menu a:hover{ color:var(--bone); background:var(--ink); }
.nav-drop:hover .nav-drop-menu, .nav-drop:focus-within .nav-drop-menu, .nav-drop.open .nav-drop-menu{ display:block; }

/* ---------- mega menu ---------- */
.mega-menu{ display:none; position:fixed; top:78px; left:50%; transform:translateX(-50%); width:500px; background:var(--ink-2); border:1px solid var(--line-strong); border-top:none; border-radius:0 0 6px 6px; box-shadow:0 24px 60px rgba(0,0,0,.55); z-index:59; padding:28px 32px 20px; }
.mega-grid{ display:grid; grid-template-columns:1fr 1fr; gap:40px; }
.mega-col-title{ font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:2px; text-transform:uppercase; color:var(--primary); margin-bottom:14px; padding-bottom:8px; border-bottom:1px solid var(--line-strong); }
.mega-col a{ display:block; padding:7px 0; font-size:14px; color:var(--smoke); border-radius:2px; }
.mega-col a:hover{ color:var(--bone); background:transparent; }
.mega-footer{ margin-top:20px; padding-top:14px; border-top:1px solid var(--line-strong); }
.mega-footer a{ font-family:'JetBrains Mono',monospace; font-size:12px; letter-spacing:1.5px; color:var(--primary); text-transform:uppercase; }
.mega-footer a:hover{ color:var(--bone); background:transparent; }
.nav-drop:hover .mega-menu, .nav-drop:focus-within .mega-menu, .mega-drop.open .mega-menu{ display:block; }
.navcta{ display:flex; align-items:center; gap:18px; }

/* ---------- hero ---------- */
.hero{ position:relative; padding:96px 0 50px; overflow:hidden; }
.eyebrow{ display:inline-flex; align-items:center; gap:10px; font-family:'JetBrains Mono',monospace; font-size:12px; letter-spacing:3px; color:var(--primary); margin-bottom:26px; }
.eyebrow::before{ content:''; width:22px; height:1px; background:var(--primary); }
.hero-grid{ display:grid; grid-template-columns:1.15fr 0.85fr; gap:40px; align-items:center; position:relative; }

.headline{ font-size:clamp(52px, 8.6vw, 104px); line-height:0.88; }
.headline .line2{ color:var(--primary); }
.sub{ margin-top:26px; max-width:460px; font-size:17px; line-height:1.65; color:var(--smoke); }
.hero-ctas{ display:flex; gap:14px; margin-top:36px; flex-wrap:wrap; }
.arch-stage{ position:relative; height:420px; display:flex; align-items:flex-end; justify-content:center; }
.arch-glow{ position:absolute; width:340px; height:340px; border-radius:50%; background:radial-gradient(circle, rgba(82,14,185,0.55), rgba(232,67,47,0) 68%); filter:blur(6px); animation:pulse 4.5s ease-in-out infinite; }

.arch-svg{ position:relative; z-index:2; width:370px; max-width:100%; height:auto; }
.arch-svg.small{ width:120px; }
.ember-particle{ position:absolute; bottom:20px; width:5px; height:5px; border-radius:50%; background:var(--ember-glow); box-shadow:0 0 10px 2px rgba(183, 82, 255, 0.8); animation:rise 5s linear infinite; }

/* ---------- marquee ---------- */
.marquee-wrap{ border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--ink-2); padding:16px 0; overflow:hidden; white-space:nowrap; }
.marquee{ display:inline-flex; gap:0; animation:scroll 34s linear infinite; }
.marquee span{ font-family:'JetBrains Mono',monospace; font-size:13px; letter-spacing:2px; color:var(--smoke); padding:0 22px; display:inline-flex; align-items:center; gap:22px; }
.marquee span::after{ content:'•'; color:var(--primary); }

/* ---------- manifesto band ---------- */
.manifesto{ padding:76px 0; text-align:center; border-bottom:1px solid var(--line); position:relative; }
.manifesto::before{ content:''; display:block; width:1px; height:40px; background:var(--line-strong); margin:0 auto 28px; }
.manifesto::after{ content:''; display:block; width:1px; height:40px; background:var(--line-strong); margin:28px auto 0; }
.manifesto-line{ font-size:clamp(22px,3.6vw,34px); line-height:1.35; color:var(--smoke); }
.manifesto-line b{ color:var(--bone); font-weight:600; }
.manifesto-line .accent{ color:var(--primary); }

/* ---------- section shell ---------- */
section{ padding:88px 0; position:relative; }
section.tight{ padding:60px 0; }
.section-head{ display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:44px; gap:20px; flex-wrap:wrap; }
.section-note{ color:var(--smoke); font-size:14px; max-width:300px; text-align:right; }

/* ---------- flyer / next edition ---------- */
.flyer{ background:linear-gradient(160deg, var(--ink-3), var(--ink-2)); border:1px solid var(--line-strong); border-radius:4px; display:grid; grid-template-columns:1fr 1.1fr; position:relative; overflow:hidden; }
.flyer::before{ content:''; position:absolute; top:-40%; right:-10%; width:400px; height:400px; border-radius:50%; background:radial-gradient(circle, rgba(214,162,76,0.16), transparent 70%); }

.flyer-left{ padding:44px; border-right:1px solid var(--line); position:relative; z-index:2; }

.edition-tag{ font-family:'JetBrains Mono',monospace; color:var(--primary); font-size:13px; letter-spacing:2px; }
.edition-title{ font-size:40px; margin-top:14px; line-height:1; }
.edition-meta{ margin-top:22px; display:flex; flex-direction:column; gap:8px; color:var(--smoke); font-size:14px; }
.edition-meta b{ color:var(--bone); font-weight:500; }
.flyer-cta{ margin-top:30px; }
.schedule{ padding:44px; display:flex; flex-direction:column; gap:0; position:relative; z-index:2; }
.slot{ display:grid; grid-template-columns:74px 1fr; gap:18px; padding:13px 0; border-bottom:1px solid var(--line); align-items:baseline; }
.slot:last-child{ border-bottom:none; }
.slot .time{ font-family:'JetBrains Mono',monospace; color:var(--primary); font-size:13px; }
.slot .name{ font-size:15px; }
.slot .tag{ font-size:11px; color:var(--smoke); letter-spacing:1px; text-transform:uppercase; }

/* ---------- tickets ---------- */
.ticket-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }

.ticket-card{ background:var(--ink-2); border:1px solid var(--line); border-radius:5px; padding:28px; display:flex; flex-direction:column; transition:border-color .18s ease; }
.ticket-card:hover{ border-color:var(--primary); }
.ticket-card.featured{ border-color:var(--primary); background:linear-gradient(160deg, var(--ink-3), var(--ink-2)); }
.ticket-name{ font-size:15px; letter-spacing:0.3px; }
.ticket-price{ font-size:26px; font-weight: 600; margin:14px 0 4px; font-family:'JetBrains Mono',monospace; color:var(--primary); }
.ticket-price small{ font-size:12px; color:var(--smoke); font-family:'Space Grotesk',sans-serif; }
.ticket-desc{ font-size:13px; color:var(--smoke); line-height:1.55; margin-bottom:20px; flex:1; }
.ticket-cta{ margin-top:auto; }

/* ---------- faq ---------- */
.faq-list{ display:flex; flex-direction:column; border-top:1px solid var(--line); }
.faq-item{ padding:22px 0; border-bottom:1px solid var(--line); }
.faq-q{ font-size:16px; margin-bottom:8px; }
.faq-a{ font-size:14px; color:var(--smoke); line-height:1.6; max-width:640px; }

/* ---------- pillar / house grid ---------- */
.pillar-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }

.pillar-card{ background:var(--ink); padding:32px 26px; transition:background .2s ease; }
.pillar-card:hover{ background:var(--ink-2); }
.pillar-icon{ width:42px; height:42px; border-radius:50%; display:flex; align-items:center; justify-content:center; border:1px solid var(--line-strong); margin-bottom:20px; }
.pillar-icon svg{ width:19px; height:19px; }
.pillar-name{ font-size:17px; margin-bottom:8px; }
.pillar-tag{ font-family:'JetBrains Mono',monospace; font-size:10.5px; letter-spacing:1.5px; text-transform:uppercase; color:var(--primary); margin-bottom:10px; display:block; }
.pillar-desc{ font-size:13.5px; color:var(--smoke); line-height:1.55; }

/* ---------- rap arena feature ---------- */
.arena{ background:var(--ink-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.arena-grid{ display:grid; grid-template-columns:1.1fr 0.9fr; gap:50px; align-items:center; }

.arena-title{ font-size:clamp(38px,5.5vw,58px); line-height:0.95; margin:14px 0 20px; }
.arena-title .accent{ color:var(--primary); }
.arena-formats{ display:flex; flex-wrap:wrap; gap:10px; margin-top:26px; }
.format-pill{ font-family:'JetBrains Mono',monospace; font-size:12px; letter-spacing:0.6px; padding:8px 14px; border:1px solid var(--line-strong); border-radius:3px; }
.champion-card{ background:linear-gradient(160deg, var(--ink-3), var(--ink)); border:1px solid var(--line-strong); border-radius:6px; padding:36px; position:relative; overflow:hidden; }
.champion-card::before{ content:''; position:absolute; top:-30%; left:-20%; width:280px; height:280px; border-radius:50%; background:radial-gradient(circle, rgba(232,67,47,0.22), transparent 70%); }
.champion-belt{ font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:2px; color:var(--primary); position:relative; z-index:2; }
.champion-name{ font-size:30px; margin:14px 0 6px; position:relative; z-index:2; }
.champion-sub{ font-size:13px; color:var(--smoke); position:relative; z-index:2; margin-bottom:24px; }
.champion-prize{ display:flex; flex-direction:column; gap:10px; position:relative; z-index:2; }
.prize-row{ display:flex; justify-content:space-between; font-size:13px; padding:10px 0; border-top:1px solid var(--line); color:var(--smoke); }
.prize-row b{ color:var(--bone); font-weight:500; }

/* ---------- talent grid ---------- */
.talent-grid{ display:grid; grid-template-columns:repeat(4, 1fr); gap:1px; background:var(--line); border:1px solid var(--line); }

.talent-card{ background:var(--ink); padding:30px 26px; transition:background .2s ease; }
.talent-card:hover{ background:var(--ink-2); }
.avatar{ width:52px; height:52px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:'JetBrains Mono',monospace; font-weight:600; font-size:14px; color:var(--ink-contrast); margin-bottom:18px; border:2px solid var(--ink); }
.talent-name{ font-size:17px; margin-bottom:4px; }
.talent-role{ font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--primary); letter-spacing:1.5px; text-transform:uppercase; margin-bottom:12px; }
.talent-bio{ font-size:13.5px; color:var(--smoke); line-height:1.55; }

/* ---------- weekly rhythm ---------- */
.rhythm-track{ display:grid; grid-template-columns:repeat(7,1fr); gap:8px; }

.rhythm-day{ background:var(--ink-2); border:1px solid var(--line); border-radius:5px; padding:18px 14px; text-align:center; }
.rhythm-day.today{ background:var(--primary); border-color:var(--primary); }
.rhythm-day.today .rhythm-dow{ color:rgba(11,9,8,0.65); }
.rhythm-day.today .rhythm-label{ color:var(--ink-contrast); }
.rhythm-dow{ font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:1.5px; color:var(--smoke); margin-bottom:8px; display:block; }
.rhythm-label{ font-size:13.5px; line-height:1.35; }

/* ---------- passport tier track ---------- */
.passport-track{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; position:relative; }

.passport-track::before{ content:''; position:absolute; top:26px; left:0; right:0; height:1px; background:var(--line-strong); }

.tier{ position:relative; padding-right:30px; }
.tier-num{ width:52px; height:52px; border-radius:50%; background:var(--ink); border:1px solid var(--line-strong); display:flex; align-items:center; justify-content:center; font-family:'JetBrains Mono',monospace; font-size:13px; color:var(--primary); position:relative; z-index:2; margin-bottom:22px; }
.tier-nights{ font-size:19px; margin-bottom:6px; }
.tier-reward{ font-size:13.5px; color:var(--smoke); line-height:1.5; }

/* ---------- awards grid ---------- */
.awards-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }

.award-card{ background:var(--ink-2); border:1px solid var(--line); border-radius:5px; padding:26px; display:flex; align-items:center; gap:16px; transition:border-color .18s ease; }
.award-card:hover{ border-color:var(--primary); }
.award-icon{ width:38px; height:38px; flex-shrink:0; color:var(--primary); }
.award-name{ font-size:15px; }
.award-sub{ font-size:12px; color:var(--smoke); margin-top:2px; }

/* ---------- challenge panel ---------- */
.challenge-panel{ background:linear-gradient(160deg, var(--ink-3), var(--ink-2)); border:1px solid var(--line-strong); border-radius:4px; padding:56px; text-align:center; }
.challenge-tag{ font-family:'JetBrains Mono',monospace; font-size:14px; color:var(--primary); letter-spacing:1px; }
.challenge-chips{ display:flex; justify-content:center; flex-wrap:wrap; gap:10px; margin:26px 0 30px; }

/* ---------- join panel + chips (home teaser) ---------- */
.join-panel{ background:var(--ink-2); border:1px solid var(--line-strong); border-radius:4px; padding:52px; display:grid; grid-template-columns:0.9fr 1.1fr; gap:40px; }

.chips{ display:flex; flex-wrap:wrap; gap:10px; margin-top:26px; }
.chip{ font-size:13px; padding:9px 16px; border:1px solid var(--line-strong); border-radius:999px; color:var(--smoke); transition:all .18s ease; cursor:default; }
.chip:hover{ border-color:var(--primary); color:var(--bone); }

/* ---------- wall gallery ---------- */
.wall-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:12px; }

.wall-tile{ aspect-ratio:3/4; border-radius:3px; position:relative; overflow:hidden; border:1px solid var(--line); display:flex; align-items:flex-end; padding:12px; }
.wall-tile::after{ content:''; position:absolute; inset:0; background:linear-gradient(180deg, transparent 45%, rgba(0,0,0,0.8)); }
.wall-tile span{ position:relative; z-index:2; font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:0.5px; color:var(--bone); }
.w1{ background:linear-gradient(150deg,#3a1712,#1c0e0b); }
.w2{ background:linear-gradient(150deg,#2a1f0e,#1a1410); }
.w3{ background:linear-gradient(150deg,#241012,#150c0d); }
.w4{ background:linear-gradient(150deg,#1c1a12,#12100c); }
.w5{ background:linear-gradient(150deg,#2e1a1a,#160d0d); }
.w6{ background:linear-gradient(150deg,#1f1c16,#100e0b); }

/* ---------- media strip ---------- */
.media-strip{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:14px; }

.media-tile{ aspect-ratio:4/5; border-radius:3px; position:relative; overflow:hidden; display:flex; align-items:flex-end; padding:18px; border:1px solid var(--line); }
.media-tile span{ font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--bone); letter-spacing:1px; position:relative; z-index:2; }
.media-tile::after{ content:''; position:absolute; inset:0; background:linear-gradient(180deg, transparent 40%, rgba(0,0,0,0.75)); }
.m1{ background:linear-gradient(150deg,#3a1712,#1c0e0b); grid-row:span 2; }
.m2{ background:linear-gradient(150deg,#2a1f0e,#1a1410); }
.m3{ background:linear-gradient(150deg,#241012,#150c0d); }
.m4{ background:linear-gradient(150deg,#1c1a12,#12100c); }

/* ---------- partners ---------- */
.partners-panel{ text-align:center; padding:64px 40px; border:1px dashed var(--line-strong); border-radius:6px; }
.partner-row{ display:flex; justify-content:center; flex-wrap:wrap; gap:14px; margin:30px 0 34px; }
.partner-chip{ font-family:'JetBrains Mono',monospace; font-size:11.5px; letter-spacing:1.5px; color:var(--smoke); padding:12px 20px; border:1px solid var(--line-strong); border-radius:3px; }

/* ---------- find the house ---------- */
.find-grid{ display:grid; grid-template-columns:1fr 1fr; gap:20px; align-items:stretch; }

.find-info{ display:flex; flex-direction:column; justify-content:center; gap:16px; }
.find-row{ font-size:14px; color:var(--smoke); }
.find-row b{ color:var(--bone); font-weight:500; display:block; margin-bottom:3px; }
.map-box{ background:var(--ink-2); border:1px solid var(--line-strong); border-radius:5px; min-height:260px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; position:relative; overflow:hidden; }
.map-box::before{ content:''; position:absolute; inset:0; background-image:radial-gradient(circle, rgba(243,234,224,0.05) 1px, transparent 1px); background-size:22px 22px; }
.map-pin{ width:36px; height:36px; color:var(--primary); position:relative; z-index:2; }
.map-label{ font-family:'JetBrains Mono',monospace; font-size:12px; letter-spacing:1px; color:var(--smoke); position:relative; z-index:2; }

/* ---------- stay looped in / social ---------- */
.loop-panel{ text-align:center; padding:70px 40px; }
.loop-cta-row{ display:flex; justify-content:center; gap:14px; flex-wrap:wrap; margin-top:30px; }
.social-row{ display:flex; justify-content:center; gap:14px; margin-top:26px; }
.social-icon{ width:40px; height:40px; border-radius:50%; border:1px solid var(--line-strong); display:flex; align-items:center; justify-content:center; transition:border-color .18s ease; }
.social-icon:hover{ border-color:var(--primary); }
.social-icon svg{ width:17px; height:17px; }

/* ---------- footer ---------- */
footer{ border-top:1px solid var(--line); padding:50px 0 40px; }
.foot-grid{ display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:30px; }
.foot-links{ display:flex; gap:28px; font-size:13px; color:var(--smoke); flex-wrap:wrap; }
.foot-links a:hover{ color:var(--bone); }
.foot-loc{ font-size:12px; color:var(--smoke); font-family:'JetBrains Mono',monospace; margin-top:10px; }
.foot-social{ display:flex; gap:10px; margin-top:14px; }
.social-icon-sm{ width:32px; height:32px; border-radius:50%; border:1px solid var(--line-strong); display:flex; align-items:center; justify-content:center; }
.social-icon-sm svg{ width:14px; height:14px; }
.copyright{ margin-top:34px; font-size:12px; color:var(--smoke); font-family:'JetBrains Mono',monospace; }

/* ---------- reveal-on-scroll ---------- */
.reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease; }
.reveal.in{ opacity:1; transform:translateY(0); }

/* ============================================================
   JOIN / APPLY FLOW
   ============================================================ */
.apply-shell{ padding:56px 0 90px; }
.apply-head{ text-align:center; margin-bottom:46px; }
.apply-head .sub{ max-width:520px; margin:16px auto 0; text-align:center; }
.progress{ display:flex; align-items:center; justify-content:center; gap:0; max-width:460px; margin:0 auto 50px; height:auto; overflow:visible; background:none; border-radius:0; }
.progress-step{ display:flex; align-items:center; gap:10px; }
.progress-num{ width:34px; height:34px; border-radius:50%; border:1px solid var(--line-strong); display:flex; align-items:center; justify-content:center; font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--smoke); flex-shrink:0; transition:all .2s ease; }
.progress-step.active .progress-num{ border-color:var(--primary); background:var(--primary); color:var(--ink-contrast); }
.progress-step.done .progress-num{ border-color:var(--primary); background:var(--primary); color:var(--ink-contrast); }
.progress-label{ font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:1px; color:var(--smoke); text-transform:uppercase; }
.progress-step.active .progress-label{ color:var(--bone); }
.progress-line{ width:56px; height:1px; background:var(--line-strong); margin:0 10px; }

.apply-card{ background:var(--ink-2); border:1px solid var(--line-strong); border-radius:6px; padding:44px; }

.apply-step{ display:none; }
.apply-step.active{ display:block; }
.apply-step h3{ font-size:24px; margin-bottom:8px; }
.apply-step-note{ color:var(--smoke); font-size:14px; margin-bottom:30px; }

.role-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }

.role-card{ border:1px solid var(--line-strong); border-radius:5px; padding:20px 16px; text-align:center; cursor:pointer; transition:all .18s ease; background:var(--ink); }
.role-card:hover{ border-color:var(--primary); }
.role-card.selected{ border-color:var(--primary); background:linear-gradient(160deg, rgba(82,14,185,0.14), rgba(82,14,185,0.04)); }
.role-card svg{ width:22px; height:22px; margin:-3px 4px 0px 0px; color:var(--smoke); }
.role-card.selected svg{ color:var(--primary); }
.role-card span{ font-size:13.5px; }

.field{ margin-bottom:22px; }
.field label{ display:block; font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:1.2px; text-transform:uppercase; color:var(--smoke); margin-bottom:10px; }
.field input, .field textarea, .field select{ width:100%; background:var(--ink); border:1px solid var(--line-strong); border-radius:4px; padding:13px 14px; color:var(--bone); font-family:'Space Grotesk',sans-serif; font-size:14px; transition:border-color .18s ease; }
.field input:focus, .field textarea:focus, .field select:focus{ outline:none; border-color:var(--primary); }
.field input::placeholder, .field textarea::placeholder{ color:var(--smoke); opacity:0.7; }
.field textarea{ resize:vertical; min-height:100px; }
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }

.upload-box{ border:1px dashed var(--line-strong); border-radius:5px; padding:26px; text-align:center; color:var(--smoke); font-size:13px; cursor:pointer; transition:border-color .18s ease; }
.upload-box:hover{ border-color:var(--primary); }
.upload-box svg{ width:24px; height:24px; margin:0 auto 10px; }

.review-list{ display:flex; flex-direction:column; gap:0; border-top:1px solid var(--line); margin-bottom:30px; }
.review-row{ display:flex; justify-content:space-between; gap:20px; padding:15px 0; border-bottom:1px solid var(--line); font-size:14px; }
.review-row span:first-child{ color:var(--smoke); }
.review-row span:last-child{ text-align:right; }

.apply-actions{ display:flex; justify-content:space-between; align-items:center; margin-top:36px; gap:14px; }
.apply-actions .spacer{ flex:1; }
#contactForm{ background:var(--ink-2); border:1px solid var(--line); border-radius:6px; padding:28px; }
#contactForm .field{ margin-bottom:20px; }

.success-state{ text-align:center; padding:20px 0; }
.success-icon{ width:64px; height:64px; margin:0 auto 24px; border-radius:50%; background:rgba(82,14,185,0.12); display:flex; align-items:center; justify-content:center; }
.success-icon svg{ width:28px; height:28px; color:var(--primary); }

/* ============================================================
   ADMIN DASHBOARD
   ============================================================ */
.app{ min-height:100vh; }
.sidebar{ position:fixed; top:0; left:0; bottom:0; width:var(--sidebar-w); background:var(--ink-2); border-right:1px solid var(--line); display:flex; flex-direction:column; overflow:hidden; z-index:40; }

.side-brand{ display:flex; align-items:center; gap:10px; padding:22px 22px; border-bottom:1px solid var(--line); font-size:13px; letter-spacing:1.5px; flex-shrink:0; }
.side-brand svg{ width:22px; height:22px; flex-shrink:0; }
.side-brand b{ font-weight:700; }
.side-nav{ flex:1 1 auto; min-height:0; overflow-y:auto; padding:18px 12px; }
.side-group{ margin-bottom:22px; display:block; width:100%; }
.side-label{ font-family:'JetBrains Mono',monospace; font-size:10.5px; letter-spacing:2px; color:var(--smoke); padding:0 12px 8px; text-transform:uppercase; }
.side-link{ display:flex; align-items:center; gap:11px; padding:9px 12px; border-radius:4px; font-size:14px; color:var(--smoke); cursor:pointer; transition:background .15s ease, color .15s ease; position:relative; }
.side-link:hover{ background:var(--ink-3); color:var(--bone); }
.side-link.active{ background:var(--ink-3); color:var(--bone); }
.side-link.active::before{ content:''; position:absolute; left:-12px; top:8px; bottom:8px; width:3px; background:var(--primary); border-radius:2px; }
.side-link .ic{ width:16px; height:16px; flex-shrink:0; opacity:0.85; }
.side-badge{ margin-left:auto; font-family:'JetBrains Mono',monospace; font-size:10.5px; background:var(--primary); color:var(--ink-contrast); padding:1px 7px; border-radius:10px; font-weight:600; }
.side-badge.gold{ background:var(--primary); }
.side-foot{ padding:16px 22px; border-top:1px solid var(--line); display:flex; align-items:center; gap:10px; flex-shrink:0; }
.side-avatar{ width:32px; height:32px; border-radius:50%; background:var(--primary); display:flex; align-items:center; justify-content:center; font-family:'JetBrains Mono',monospace; font-size:12px; font-weight:700; color:var(--ink-contrast); }
.side-foot .who{ font-size:13px; }
.side-foot .role{ font-size:11px; color:var(--smoke); }

.main{ min-width:0; margin-left:var(--sidebar-w); }

.topbar{ display:flex; align-items:center; justify-content:space-between; gap:20px; padding:18px 32px; border-bottom:1px solid var(--line); position:sticky; top:0; background:rgba(11,9,8,0.9); backdrop-filter:blur(8px); z-index:10; }
.search{ display:flex; align-items:center; gap:10px; background:var(--ink-2); border:1px solid var(--line-strong); border-radius:4px; padding:9px 14px; width:340px; max-width:40vw; }
.search input{ background:none; border:none; outline:none; color:var(--bone); font-family:inherit; font-size:13px; width:100%; }
.search input::placeholder{ color:var(--smoke); }
.top-actions{ display:flex; align-items:center; gap:18px; }
.icon-btn{ width:36px; height:36px; border-radius:50%; border:1px solid var(--line-strong); display:flex; align-items:center; justify-content:center; cursor:pointer; position:relative; }
.icon-btn:hover{ border-color:var(--primary); }
.dot{ position:absolute; top:6px; right:7px; width:6px; height:6px; border-radius:50%; background:var(--primary); }

.content{ padding:32px; }
.page-head{ display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:28px; flex-wrap:wrap; gap:14px; }
.page-eyebrow{ font-family:'JetBrains Mono',monospace; font-size:11.5px; letter-spacing:2.5px; color:var(--primary); display:block; margin-bottom:8px; }
.page-title{ font-size:30px; }
.page-sub{ color:var(--smoke); font-size:13.5px; margin-top:6px; }

.stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:34px; }

.stat{ background:var(--ink-2); border:1px solid var(--line); border-radius:5px; padding:20px; transition:border-color .15s ease; }
.stat:hover{ border-color:var(--line-strong); }
.stat-label{ font-family:'JetBrains Mono',monospace; font-size:10.5px; letter-spacing:1.5px; color:var(--smoke); text-transform:uppercase; }
.stat-value{ font-size:26px; margin-top:10px; font-weight:600; }
.stat-value small{ font-size:13px; color:var(--smoke); font-weight:400; }
.stat-trend{ font-size:11.5px; margin-top:6px; font-family:'JetBrains Mono',monospace; }
.up{ color:var(--good); } .flat{ color:var(--smoke); } .warn-t{ color:var(--warn); }

.grid-2{ display:grid; grid-template-columns:1.5fr 1fr; gap:20px; margin-bottom:20px; }

.grid-2.even{ grid-template-columns:1fr 1fr; }
.panel{ background:var(--ink-2); border:1px solid var(--line); border-radius:6px; overflow:hidden; }
.panel-head{ display:flex; justify-content:space-between; align-items:center; padding:18px 22px; border-bottom:1px solid var(--line); }
.panel-title{ font-size:15px; font-weight:600; }
.panel-link{ font-size:12px; color:var(--primary); }
.panel-link:hover{ text-decoration:underline; }

table{ width:100%; border-collapse:collapse; }
th{ text-align:left; font-family:'JetBrains Mono',monospace; font-size:10.5px; letter-spacing:1.2px; color:var(--smoke); text-transform:uppercase; padding:12px 22px; border-bottom:1px solid var(--line); }
td{ padding:14px 22px; font-size:13.5px; border-bottom:1px solid var(--line); }
tr:last-child td{ border-bottom:none; }
tr:hover td{ background:var(--ink-3); }
.name-cell{ display:flex; align-items:center; gap:10px; }
.mini-avatar{ width:28px; height:28px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:'JetBrains Mono',monospace; font-size:11px; font-weight:700; color:var(--ink-contrast); flex-shrink:0; }
.status{ font-size:11px; padding:4px 10px; border-radius:20px; font-family:'JetBrains Mono',monospace; letter-spacing:0.6px; display:inline-block; }
.status-pending{ background:rgba(214,162,76,0.15); color:var(--primary); }
.status-review{ background:rgba(243,234,224,0.1); color:var(--smoke); }
.status-approved{ background:rgba(127,174,111,0.15); color:var(--good); }
.status-paid{ background:rgba(127,174,111,0.15); color:var(--good); }
.status-inactive{ background:rgba(243,234,224,0.06); color:var(--smoke); }

.lineup-item{ display:flex; align-items:center; gap:14px; padding:14px 22px; border-bottom:1px solid var(--line); }
.lineup-item:last-child{ border-bottom:none; }
.lineup-time{ font-family:'JetBrains Mono',monospace; font-size:12.5px; color:var(--primary); width:44px; flex-shrink:0; }
.lineup-name{ font-size:14px; }
.lineup-tag{ font-size:11px; color:var(--smoke); }
.drag{ margin-left:auto; color:var(--smoke); font-size:14px; cursor:grab; }

.activity-item{ display:flex; gap:12px; padding:14px 22px; border-bottom:1px solid var(--line); }
.activity-item.hidden{ display:none; }
.activity-item:last-child{ border-bottom:none; }
.activity-dot{ width:7px; height:7px; border-radius:50%; margin-top:6px; flex-shrink:0; }
.activity-text{ font-size:13.5px; line-height:1.5; }
.activity-text b{ font-weight:600; }
.activity-time{ font-size:11px; color:var(--smoke); font-family:'JetBrains Mono',monospace; margin-top:3px; }

.arena-item{ display:flex; align-items:center; gap:14px; padding:14px 22px; border-bottom:1px solid var(--line); }
.arena-item:last-child{ border-bottom:none; }
.arena-rank{ font-family:'JetBrains Mono',monospace; font-size:13px; color:var(--primary); width:22px; flex-shrink:0; }
.arena-name{ font-size:14px; flex:1; }
.arena-record{ font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--smoke); }
.arena-crown{ color:var(--primary); font-size:13px; }

.challenge-item{ padding:14px 22px; border-bottom:1px solid var(--line); display:flex; align-items:center; gap:14px; }
.challenge-item:last-child{ border-bottom:none; }
.challenge-cat{ font-family:'JetBrains Mono',monospace; font-size:10.5px; letter-spacing:1px; text-transform:uppercase; color:var(--primary); background:rgba(82,14,185,0.12); padding:4px 9px; border-radius:3px; flex-shrink:0; }
.challenge-name{ font-size:13.5px; flex:1; }
.challenge-votes{ font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--smoke); }

/* ============================================================
   TALENT DIRECTORY & PROFILE
   ============================================================ */
.page-hero{ padding:70px 0 50px; text-align:center; }
.page-hero .h2{ margin-top:6px; }
.page-hero .sub{ max-width:520px; margin:16px auto 0; text-align:center; }

.filter-row{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:40px; justify-content:center; }
.filter-chip{ font-family:'JetBrains Mono',monospace; font-size:12px; letter-spacing:0.8px; padding:9px 16px; border:1px solid var(--line-strong); border-radius:999px; color:var(--smoke); cursor:pointer; transition:all .18s ease; background:none; }
.filter-chip:hover{ border-color:var(--primary); color:var(--bone); }
.filter-chip.active{ background:var(--primary); border-color:var(--primary); color:var(--ink-contrast); }

.talent-card .view-link{ margin-top:14px; display:inline-block; font-family:'JetBrains Mono',monospace; font-size:11.5px; letter-spacing:1px; color:var(--primary); }
.talent-card .view-link:hover{ text-decoration:underline; }
.talent-card{ transition:background .2s ease, opacity .2s ease; }
.talent-card.hidden{ display:none; }

.profile-hero{ background:linear-gradient(160deg, var(--ink-3), var(--ink-2)); border-bottom:1px solid var(--line); padding:70px 0 50px; position:relative; overflow:hidden; }
.profile-hero::before{ content:''; position:absolute; top:-30%; right:-10%; width:420px; height:420px; border-radius:50%; background:radial-gradient(circle, rgba(232,67,47,0.18), transparent 70%); }
.profile-top{ display:flex; align-items:center; gap:26px; position:relative; z-index:2; flex-wrap:wrap; }
.profile-avatar-lg{ width:96px; height:96px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:'JetBrains Mono',monospace; font-weight:700; font-size:28px; color:var(--ink-contrast); flex-shrink:0; border:3px solid var(--ink); }
.profile-name{ font-size:clamp(30px,4vw,44px); line-height:1; }
.profile-role{ font-family:'JetBrains Mono',monospace; font-size:12.5px; letter-spacing:2px; color:var(--primary); text-transform:uppercase; margin-top:10px; display:block; }
.profile-actions{ display:flex; gap:12px; margin-top:22px; flex-wrap:wrap; }

.profile-stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:44px; position:relative; z-index:2; }

.pstat{ background:var(--ink); border:1px solid var(--line); border-radius:5px; padding:18px; }
.pstat-label{ font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:1.2px; color:var(--smoke); text-transform:uppercase; }
.pstat-value{ font-size:22px; margin-top:8px; }

.profile-body-grid{ display:grid; grid-template-columns:1.3fr 0.7fr; gap:40px; }

.profile-bio{ font-size:15px; line-height:1.75; color:var(--smoke); text-align:center; max-width:800px; margin:0 auto; }
.profile-bio+ .profile-bio{ margin-top:18px; }
.profile-side-card{ background:var(--ink-2); border:1px solid var(--line); border-radius:6px; padding:26px; margin-bottom:20px; }
.profile-side-title{ font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:1.5px; color:var(--primary); text-transform:uppercase; margin-bottom:16px; display:block; }
.profile-social-list{ display:flex; flex-direction:column; gap:12px; }
.profile-social-row{ display:flex; align-items:center; gap:10px; font-size:13.5px; color:var(--smoke); }
.profile-social-row svg{ width:16px; height:16px; color:var(--primary); flex-shrink:0; }
.profile-gallery{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:20px; }

/* ---------- mobile sidebar trigger (Bootstrap Offcanvas) ---------- */
.hamburger-btn{ display:none; width:36px; height:36px; border-radius:50%; border:1px solid var(--line-strong); align-items:center; justify-content:center; cursor:pointer; background:none; color:var(--bone); }

.offcanvas{ background:var(--ink-2) !important; border-right:1px solid var(--line) !important; width:var(--sidebar-w) !important; }
.offcanvas .side-nav{ height:calc(100vh - 66px); }

/* ============================================================
   EVENT DETAIL
   ============================================================ */
.event-badge{ display:inline-flex; align-items:center; gap:8px; font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:1.5px; text-transform:uppercase; color:var(--primary); background:rgba(82,14,185,0.12); border:1px solid rgba(82,14,185,0.35); padding:6px 14px; border-radius:999px; margin-bottom:20px; }
.event-badge::before{ content:''; width:6px; height:6px; border-radius:50%; background:var(--primary); }

.countdown-row{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:40px; position:relative; z-index:2; max-width:460px; }

.countdown-box{ background:var(--ink); border:1px solid var(--line-strong); border-radius:5px; padding:16px 8px; text-align:center; }
.countdown-num{ font-family:'JetBrains Mono',monospace; font-size:26px; color:var(--primary); }
.countdown-label{ font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:1px; color:var(--smoke); text-transform:uppercase; margin-top:4px; display:block; }

.lineup-full{ display:flex; flex-direction:column; }
.lineup-full-row{ display:grid; grid-template-columns:90px 1fr auto; gap:20px; align-items:center; padding:20px 0; border-bottom:1px solid var(--line); }

.lineup-full-time{ font-family:'JetBrains Mono',monospace; color:var(--primary); font-size:14px; }
.lineup-full-name{ font-size:16px; }
.lineup-full-sub{ font-size:12.5px; color:var(--smoke); margin-top:2px; }
.lineup-full-link{ font-family:'JetBrains Mono',monospace; font-size:11.5px; color:var(--primary); }
.lineup-full-link:hover{ text-decoration:underline; }

/* ============================================================
   MEMBER ACCOUNT DASHBOARD
   ============================================================ */
.member-badge{ display:inline-flex; align-items:center; gap:8px; font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:1.5px; text-transform:uppercase; color:var(--primary); background:rgba(214,162,76,0.12); border:1px solid rgba(214,162,76,0.35); padding:6px 14px; border-radius:999px; margin-bottom:18px; }
.member-badge::before{ content:''; width:6px; height:6px; border-radius:50%; background:var(--primary); }

.progress-bar-track{ background:var(--ink); border:1px solid var(--line-strong); border-radius:999px; height:10px; overflow:hidden; margin-top:14px; }
.progress-bar-fill{ height:100%; background:linear-gradient(90deg, var(--primary), var(--primary)); border-radius:999px; }
.progress-caption{ font-size:12.5px; color:var(--smoke); margin-top:10px; }

.tier.current .tier-num{ background:var(--primary); border-color:var(--primary); color:var(--ink-contrast); }
.tier.current .tier-nights{ color:var(--primary); }
.tier.done .tier-num{ background:var(--primary); border-color:var(--primary); color:var(--ink-contrast); }

.mini-flyer{ background:linear-gradient(160deg, var(--ink-3), var(--ink-2)); border:1px solid var(--line-strong); border-radius:6px; padding:28px; position:relative; overflow:hidden; }
.mini-flyer::before{ content:''; position:absolute; top:-30%; right:-15%; width:220px; height:220px; border-radius:50%; background:radial-gradient(circle, rgba(232,67,47,0.18), transparent 70%); }
.mini-flyer-inner{ position:relative; z-index:2; }

.profile-row{ display:flex; justify-content:space-between; align-items:center; padding:13px 0; border-bottom:1px solid var(--line); font-size:13.5px; }
.profile-row:last-child{ border-bottom:none; }
.profile-row span:first-child{ color:var(--smoke); }

/* ============================================================
   EVENTS LIST
   ============================================================ */
.editions-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }

.edition-card{ background:var(--ink-2); border:1px solid var(--line); border-radius:5px; padding:28px; display:flex; flex-direction:column; gap:8px; transition:border-color .18s ease, transform .18s ease; position:relative; overflow:hidden; }
.edition-card:hover{ border-color:var(--primary); transform:translateY(-3px); }
.edition-card::before{ content:''; position:absolute; top:-40%; right:-15%; width:180px; height:180px; border-radius:50%; background:radial-gradient(circle, rgba(232,67,47,0.14), transparent 70%); }
.edition-card.upcoming{ border-color:var(--primary); background:linear-gradient(160deg, var(--ink-3), var(--ink-2)); }
.edition-card .edition-status{ font-family:'JetBrains Mono',monospace; font-size:10.5px; letter-spacing:1.5px; color:var(--primary); text-transform:uppercase; position:relative; z-index:2; }
.edition-card .edition-num{ font-size:38px; line-height:1; position:relative; z-index:2; }
.edition-card .edition-date{ font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--smoke); letter-spacing:1px; position:relative; z-index:2; }
.edition-card .edition-highlight{ font-size:13.5px; color:var(--smoke); line-height:1.5; flex:1; position:relative; z-index:2; }
.edition-card .view-link{ font-family:'JetBrains Mono',monospace; font-size:11.5px; letter-spacing:1px; color:var(--primary); position:relative; z-index:2; }
.edition-card .view-link:hover{ text-decoration:underline; }
.edition-card.hidden{ display:none; }

/* ============================================================
   ARENA HUB
   ============================================================ */
.bracket{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }

.matchup-card{ background:var(--ink-2); border:1px solid var(--line); border-radius:6px; padding:22px; }
.matchup-round{ font-family:'JetBrains Mono',monospace; font-size:10.5px; letter-spacing:2px; color:var(--smoke); text-transform:uppercase; margin-bottom:16px; display:block; }
.matchup-vs{ display:flex; align-items:center; gap:12px; }
.matchup-side{ flex:1; display:flex; flex-direction:column; gap:2px; }
.matchup-name{ font-size:15px; }
.matchup-side.fav .matchup-name{ color:var(--primary); }
.matchup-record{ font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--smoke); }
.matchup-divider{ font-family:'JetBrains Mono',monospace; color:var(--primary); font-size:13px; flex-shrink:0; }
.arena-standings a{ color:inherit; }
.arena-standings .arena-name:hover{ color:var(--primary); }
.champion-row{ display:flex; justify-content:space-between; align-items:center; gap:16px; padding:16px 0; border-bottom:1px solid var(--line); }
.champion-row:last-child{ border-bottom:none; }
.champion-month{ font-size:14px; }
.champion-winner{ font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--primary); }
.format-note{ max-width:520px; color:var(--smoke); font-size:14px; line-height:1.65; }
.judge-split{ display:flex; gap:10px; flex-wrap:wrap; margin-top:20px; }

/* ============================================================
   MEDIA ARCHIVE
   ============================================================ */
.media-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }

.media-grid .media-tile{ grid-row:auto; }
.media-tile.wall{ aspect-ratio:3/4; }
.media-tile .tile-tag{ font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:0.5px; color:var(--bone); position:relative; z-index:2; }
.media-tile .tile-ed{ font-family:'JetBrains Mono',monospace; font-size:9px; letter-spacing:1px; color:var(--primary); position:relative; z-index:2; display:block; margin-bottom:4px; }
.media-tile.hidden{ display:none; }

/* ============================================================
   ABOUT / TIMELINE
   ============================================================ */
.timeline{ display:flex; flex-direction:column; border-left:1px solid var(--line-strong); margin-left:6px; }
.timeline-item{ position:relative; padding:0 0 34px 34px; }
.timeline-item:last-child{ padding-bottom:0; }
.timeline-item::before{ content:''; position:absolute; left:-5px; top:4px; width:9px; height:9px; border-radius:50%; background:var(--primary); box-shadow:0 0 0 3px rgba(232,67,47,0.15); }
.timeline-ed{ font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:2px; color:var(--primary); text-transform:uppercase; margin-bottom:6px; display:block; }
.timeline-title{ font-size:17px; margin-bottom:4px; }
.timeline-text{ font-size:13.5px; color:var(--smoke); line-height:1.55; max-width:560px; }

/* ============================================================
   LOGIN / AUTH
   ============================================================ */
.auth-shell{ padding:56px 0 90px; }
.auth-card{ max-width:440px; margin:0 auto; background:var(--ink-2); border:1px solid var(--line-strong); border-radius:6px; padding:40px; }
.auth-tabs{ display:flex; gap:0; border-bottom:1px solid var(--line); margin-bottom:30px; }
.auth-tab{ flex:1; text-align:center; padding:14px 0; font-family:'JetBrains Mono',monospace; font-size:12px; letter-spacing:1.5px; text-transform:uppercase; color:var(--smoke); cursor:pointer; border-bottom:2px solid transparent; transition:color .18s ease, border-bottom-color .18s ease; background:none; }
.auth-tab:hover{ color:var(--bone); }
.auth-tab.active{ color:var(--bone); border-bottom-color:var(--primary); }
.auth-panel{ display:none; }
.auth-panel.active{ display:block; }
.auth-note{ font-size:12.5px; color:var(--smoke); margin-top:20px; text-align:center; line-height:1.6; }

/* ============================================================
   ADMIN PAGES (EVENTS / PEOPLE / COMPETITIONS +)
   ============================================================ */
.people-row.hidden{ display:none; }
.soon-panel{ border:1px dashed var(--line-strong); border-radius:6px; padding:44px; text-align:center; }
.soon-panel .soon-title{ font-size:18px; margin-bottom:6px; }
.soon-panel .soon-note{ font-size:13px; color:var(--smoke); }
.tab-row{ display:flex; gap:0; border-bottom:1px solid var(--line); margin-bottom:24px; flex-wrap:wrap; }
.tab-pill{ font-family:'JetBrains Mono',monospace; font-size:12px; letter-spacing:1px; text-transform:uppercase; color:var(--smoke); padding:12px 20px; cursor:pointer; border-bottom:2px solid transparent; transition:color .15s ease, border-bottom-color .15s ease; }
.tab-pill:hover{ color:var(--bone); }
.tab-pill.active{ color:var(--bone); border-bottom-color:var(--primary); }
.tab-panel{ display:block; }
.actions-cell{ display:flex; gap:10px; font-size:12px; }
.actions-cell a{ color:var(--primary); }
.actions-cell a:hover{ text-decoration:underline; }

/* ============================================================
   ANIMATIONS & MOTION
   Keyframe definitions live in css/keyframes.css. Motion is
   disabled globally for prefers-reduced-motion (responsive.css).
   ============================================================ */
.btn-primary{ transition:transform .18s ease, box-shadow .18s ease, background-color .18s ease, border-color .18s ease; }
.btn-primary:hover{ transform:translateY(-1px); box-shadow:0 10px 28px -12px rgba(82,14,185,0.6); }
.btn-primary:active{ transform:translateY(0); }
.filter-chip{ transition:transform .15s ease, background-color .18s ease, border-color .18s ease, color .18s ease; }
.filter-chip:hover{ transform:translateY(-1px); }
.filter-chip.active{ animation:pop .25s ease; }
.icon-btn{ transition:border-color .18s ease, transform .18s ease; }
.icon-btn:hover{ transform:scale(1.08); }
.stat{ transition:transform .18s ease, border-color .15s ease; }
.stat:hover{ transform:translateY(-3px); border-color:var(--line-strong); }
.side-link{ transition:background .15s ease, color .15s ease, padding-left .18s ease; }
.side-link.active::before{ animation:blink 2.8s ease-in-out infinite; }
.side-badge{ animation:blink 3.2s ease-in-out infinite; }
.status-pending{ animation:blink 2.4s ease-in-out infinite; }
.dot{ animation:blink 1.6s ease-in-out infinite; }
.arena-crown{ animation:float 3s ease-in-out infinite; }
.champion-card{ animation:float 6s ease-in-out infinite; }
.arch-glow{ animation:pulse 4.5s ease-in-out infinite; }
.ember-particle{ animation:rise 5s linear infinite; }
.upload-box{ animation:glowGold 4s ease-in-out infinite; }
.panel{ animation:fadeUp .45s ease both; }
.talent-card,.edition-card,.media-tile,.ticket-card,.pillar-card{ animation:fadeUp .5s ease both; }
.talent-grid>*:nth-child(2),.editions-grid>*:nth-child(2),.media-grid>*:nth-child(2){ animation-delay:.06s; }
.talent-grid>*:nth-child(3),.editions-grid>*:nth-child(3),.media-grid>*:nth-child(3){ animation-delay:.12s; }
.talent-grid>*:nth-child(4),.editions-grid>*:nth-child(4),.media-grid>*:nth-child(4){ animation-delay:.18s; }
.talent-grid>*:nth-child(5),.editions-grid>*:nth-child(5),.media-grid>*:nth-child(5){ animation-delay:.24s; }
.talent-grid>*:nth-child(6),.editions-grid>*:nth-child(6),.media-grid>*:nth-child(6){ animation-delay:.3s; }
.stats .stat:nth-child(2){ animation-delay:.05s; }
.stats .stat:nth-child(3){ animation-delay:.1s; }
.stats .stat:nth-child(4){ animation-delay:.15s; }
.lineup-item,.arena-item{ animation:fadeUp .4s ease both; }
.actions-cell a{ transition:color .15s ease; }
.actions-cell a:hover{ color:var(--primary); }
/* Admin UI — modal, toast, drag reorder, form rows */
.admin-modal .modal-content{ background:var(--ink-2); border:1px solid var(--line-strong); border-radius:8px; color:var(--bone); }
.admin-modal .btn-close{ filter:invert(1) grayscale(1); }
.admin-modal .field{ margin-bottom:18px; }
.admin-modal .field input, .admin-modal .field textarea, .admin-modal .field select{ background:var(--ink); }
.modal-backdrop.show{ opacity:.7; }
.rh-toast{ background:var(--ink-2); border:1px solid var(--line-strong); border-left:3px solid var(--good); color:var(--bone); font-size:13px; padding:12px 16px; border-radius:4px; box-shadow:0 12px 30px rgba(0,0,0,.4); transition:opacity .25s ease; max-width:320px; }
.rh-toast.err{ border-left-color:var(--primary); }
.drag-item.dragging{ opacity:.4; }
.lineup-item.drag-item, .arena-item.drag-item{ cursor:grab; }
.lineup-item.drag-item .drag, .arena-item.drag-item .drag{ cursor:grab; }
.drag-placeholder{ height:44px; border:1px dashed var(--line-strong); border-radius:4px; margin:4px 0; }
/* Inline page editor */
.rh-inline-control{ position:fixed; z-index:9000; right:18px; bottom:18px; display:flex; flex-direction:column; align-items:flex-end; gap:8px; font-family:'Space Grotesk',sans-serif; }
.rh-ie-toggle{ background:var(--ink-2); border:1px solid var(--line-strong); color:var(--bone); font-size:13px; font-weight:600; padding:10px 16px; border-radius:6px; cursor:pointer; box-shadow:0 8px 24px rgba(0,0,0,.35); }
.rh-ie-toggle:hover{ border-color:var(--primary); color:var(--primary); }
.rh-ie-badge{ display:none; background:rgba(232,67,47,.16); border:1px solid var(--primary); color:var(--primary); font-size:11px; font-family:'JetBrains Mono',monospace; letter-spacing:.6px; padding:6px 10px; border-radius:4px; }
.rh-ie-badge.rh-edit-on{ display:block; }
.rh-edit-on .rh-edit-target{ outline:1px dashed var(--primary); outline-offset:2px; cursor:text; }
.rh-inline-editor{ position:absolute; z-index:9100; background:var(--ink-2); border:1px solid var(--line-strong); border-radius:6px; padding:10px; box-shadow:0 16px 40px rgba(0,0,0,.45); display:flex; flex-direction:column; gap:8px; }
.rh-inline-editor textarea{ background:var(--ink); color:var(--bone); border:1px solid var(--line-strong); border-radius:4px; font-family:inherit; font-size:14px; padding:8px; width:100%; resize:vertical; min-height:34px; }
.rh-inline-editor textarea:focus{ outline:none; border-color:var(--primary); }
.rh-inline-editor-actions{ display:flex; gap:8px; }
.rh-ie-save{ background:var(--primary); color:var(--ink-contrast); border:none; border-radius:4px; font-size:12px; font-weight:700; padding:7px 14px; cursor:pointer; }
.rh-ie-cancel{ background:transparent; color:var(--smoke); border:1px solid var(--line-strong); border-radius:4px; font-size:12px; padding:7px 14px; cursor:pointer; }
.rh-ie-hint{ font-size:11px; color:var(--smoke); font-family:'JetBrains Mono',monospace; letter-spacing:.4px; }
/* Theme toggle */
.rh-theme-toggle{ display:flex; align-items:center; justify-content:center; width:36px; height:36px; border-radius:50%; border:1px solid var(--line-strong); background:var(--ink-2); color:var(--bone); cursor:pointer; flex-shrink:0; transition:transform .18s ease, border-color .18s ease; }
.rh-theme-toggle:hover{ transform:scale(1.08); border-color:var(--primary); color:var(--primary); }
.rh-theme-toggle.floating{ position:fixed; bottom:18px; left:18px; z-index:9000; box-shadow:0 8px 24px rgba(0,0,0,.3); }

/* ============================================================
   REDEMPTION HOUSE — Brand Colors
   Primary: #520eb9 (Purple)
   Secondary: #00a1b3 (Teal)
   ============================================================ */
.btn-primary{ background:var(--primary); border-color:var(--primary); }
.btn-primary:hover{ background:#3d0a8f; border-color:#3d0a8f; }
.btn-gold{ background:var(--secondary); border-color:var(--secondary); color:var(--ink); }
.btn-gold:hover{ background:#008a9a; border-color:#008a9a; }
.accent{ color:var(--primary); }
.kicker{ color:var(--secondary); }
.mark path{ stroke:var(--primary); }
.mark circle{ fill:var(--secondary); }
.format-pill{ background:var(--primary); }
.chip.active{ background:var(--primary); }
.tier.current .tier-num{ background:var(--primary); border-color:var(--primary); }
.tier.done .tier-num{ background:var(--secondary); border-color:var(--secondary); }
.status-approved{ background:var(--primary); }
.status-pending{ background:var(--warn); }
.status-review{ background:var(--secondary); }

/* Light mode button overrides */
html.light .btn-primary{ color:#ffffff; }
html.light .btn-primary:hover{ background:#3d0a8f; border-color:#3d0a8f; }
html.light .format-pill{ color:#ffffff; }


html.light .avatar,
html.light .rhythm-day.today .rhythm-dow,
html.light .rhythm-day.today .rhythm-label,
html.light .progress-step.active .progress-num {color:#ffffff;}
/* ============================================================
   INLINE EDITOR TOOLBAR
   ============================================================ */
#ptBar {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 9999;
  display: flex;
  align-items: center;
  gap: 8px;
  background: rgba(10, 10, 15, 0.95);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 12px;
  padding: 10px 14px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.05);
  transition: all 0.3s ease;
}

#ptBar:hover {
  border-color: rgba(82, 14, 185, 0.4);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5), 0 0 20px rgba(82, 14, 185, 0.15);
}

.pt-status {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: var(--primary);
  padding-right: 8px;
  border-right: 1px solid rgba(255, 255, 255, 0.1);
  margin-right: 4px;
}

.pt-status svg {
  opacity: 0.9;
}

.pt-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 14px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.3px;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s ease;
  font-family: 'Space Grotesk', sans-serif;
}

.pt-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

#ptToggle {
  background: var(--primary);
  color: #0a0a0f;
}

#ptToggle:hover:not(:disabled) {
  background: var(--secondary);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(82, 14, 185, 0.4);
}

#ptSave {
  background: var(--primary);
  color: white;
}

#ptSave:hover:not(:disabled) {
  background: #ff573d;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(232, 67, 47, 0.4);
}

#ptDiscard {
  background: transparent;
  color: var(--text-secondary);
  border: 1px solid rgba(255, 255, 255, 0.2);
}

#ptDiscard:hover {
  background: rgba(255, 255, 255, 0.1);
  color: var(--text-primary);
}

.pt-dirty {
  animation: pt-pulse 2s ease-in-out infinite;
}

@keyframes pt-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.7; }
}

/* Editor active state */
body.rh-editing #ptBar {
  bottom: 32px;
}

body.rh-editing .pt-status svg {
  animation: pt-draw 1.5s ease-in-out infinite;
}

@keyframes pt-draw {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(-15deg); }
}

/* Editable elements highlight */
.pt-editable {
  cursor: text;
  transition: all 0.2s ease;
  border-radius: 3px;
  padding: 2px 4px;
  margin: -2px -4px;
}

.pt-editable:hover {
  background: rgba(82, 14, 185, 0.15);
  outline: 1px dashed rgba(82, 14, 185, 0.5);
}

.pt-editable:focus {
  background: rgba(82, 14, 185, 0.25);
  outline: 2px solid var(--primary);
  outline-offset: 2px;
}

.pt-saved {
  animation: pt-flash 0.6s ease;
}

@keyframes pt-flash {
  0% { background: rgba(76, 175, 80, 0.3); }
  100% { background: transparent; }
}

/* ============================================================
   STAGGER ANIMATIONS
   ============================================================ */
.stagger-1{ animation-delay:0.08s; }
.stagger-2{ animation-delay:0.16s; }
.stagger-3{ animation-delay:0.24s; }
.stagger-4{ animation-delay:0.32s; }
.stagger-5{ animation-delay:0.40s; }
.stagger-6{ animation-delay:0.48s; }
.stagger-7{ animation-delay:0.56s; }
.stagger-8{ animation-delay:0.64s; }

/* ============================================================
   JOIN PAGE STEP TRANSITIONS
   ============================================================ */
.apply-step{ animation:fadeUp .35s ease both; }
.apply-step.active{ display:block; }

/* ============================================================
   CONTACT PAGE CARD ANIMATIONS
   ============================================================ */
.profile-side-card{ animation:fadeUp .5s ease both; }
.profile-side-card:nth-child(1){ animation-delay:0.1s; }
.profile-side-card:nth-child(2){ animation-delay:0.2s; }
.profile-side-card:nth-child(3){ animation-delay:0.3s; }
.profile-side-card:nth-child(4){ animation-delay:0.4s; }

/* ============================================================
   ABOUT PAGE SECTION ANIMATIONS
   ============================================================ */
.about-section{ animation:fadeUp .55s ease both; }
.about-section:nth-of-type(2){ animation-delay:0.1s; }
.about-section:nth-of-type(3){ animation-delay:0.2s; }
.about-section:nth-of-type(4){ animation-delay:0.3s; }
.about-section:nth-of-type(5){ animation-delay:0.4s; }

/* Light mode ptBar override */
html.light #ptBar {
  background: #ffffff;
  border-color: rgba(82,14,185,0.15);
}

/* Dashboard specific overrides */
html.light .topbar {
  background: #f5f5f7 !important;
  border-bottom: 1px solid rgba(0,0,0,0.08);
}

.dashboard-content {
  background: #f5f5f7 !important;
  min-height: calc(100vh - 70px);
}

.app.dashboard-app .content {
  background: transparent;
}

/* ============================================================
   CLIENT-SIDE ROUTER
   ============================================================ */
.rh-loader {
  position: fixed;
  inset: 0;
  background: var(--ink);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  transition: opacity 0.3s ease;
}
.rh-spinner {
  width: 40px;
  height: 40px;
  border: 3px solid var(--line-strong);
  border-top-color: var(--primary);
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }
.rh-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 80px 0;
}

/* Editions grid */
.editions-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 20px;
  margin-top: 32px;
}
.edition-card {
  background: var(--ink-2);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 24px;
  transition: all 0.2s ease;
  cursor: pointer;
}
.edition-card:hover {
  border-color: var(--primary);
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(82,14,185,0.2);
}
.edition-number {
  font-family: 'Anton', sans-serif;
  font-size: 48px;
  color: var(--primary);
  line-height: 1;
}
.edition-date {
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  color: var(--smoke);
  margin-top: 8px;
}
.edition-name {
  font-size: 18px;
  font-weight: 600;
  color: var(--bone);
  margin-top: 12px;
}
.edition-highlight {
  font-size: 14px;
  color: var(--smoke);
  line-height: 1.5;
  margin-top: 8px;
}
.edition-meta {
  display: flex;
  gap: 8px;
  margin-top: 16px;
}

/* ---------- login page ---------- */
.login-container{width:100%;max-width:400px;padding:20px;justify-self: center;margin:70px}
.login-card{background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.08);border-radius:20px;padding:40px;}
.login-logo{text-align:center;margin-bottom:32px;}
.login-logo img{height:48px;width:auto;margin-bottom:16px;}
.login-logo h1{font-family:'Anton',sans-serif;font-size:32px;letter-spacing:3px;text-transform:uppercase;}
.login-logo h1 span{color:var(--secondary);}
.login-logo p{font-size:13px;color:rgba(255,255,255,0.6);margin-top:8px;}
.form-group{margin-bottom:20px;}
.form-label{display:block;font-size:11px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:rgba(255,255,255,0.6);margin-bottom:8px;}
.form-input{width:100%;padding:14px 16px;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.08);border-radius:12px;color:#fff;font-size:15px;font-family:inherit;transition:all 0.2s;}
.form-input:focus{outline:none;border-color:var(--secondary);background:rgba(0,161,179,0.05);}
.btn-login{width:100%;padding:16px;background:var(--secondary);border:none;border-radius:12px;color:#fff;font-size:14px;font-weight:700;font-family:inherit;letter-spacing:1px;text-transform:uppercase;cursor:pointer;transition:all 0.2s;}
.btn-login:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,161,179,0.4);}
.btn-login:disabled{opacity:0.6;cursor:not-allowed;transform:none;}
.error-msg{display:none;padding:12px 16px;background:rgba(232,67,47,0.15);border:1px solid rgba(232,67,47,0.3);border-radius:10px;color:#ff6b5a;font-size:14px;margin-bottom:20px;}
.login-footer{text-align:center;margin-top:24px;}
.login-footer a{color:rgba(255,255,255,0.6);font-size:14px;text-decoration:none;}
.login-footer a:hover{color:var(--secondary);}

/* ============ APPLICATION VIEW PREMIUM STYLING ============ */

/* ---------- two-column detail layout ---------- */
.detail-layout { display: grid; grid-template-columns: 2fr 1fr; gap: 24px; align-items: start; margin-top: 24px; }
.detail-main { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.detail-side { display: flex; flex-direction: column; gap: 20px; min-width: 0; }

/* ---------- applicant card ---------- */
.applicant-card { background: linear-gradient(135deg, rgba(82,14,185,0.15) 0%, rgba(82,14,185,0.05) 100%); border: 1px solid rgba(82,14,185,0.3); border-radius: 16px; overflow: hidden; }
.applicant-header { display: flex; align-items: center; gap: 20px; padding: 24px; background: linear-gradient(135deg, var(--ember) 0%, var(--primary) 100%); color: var(--ink-contrast); }
.applicant-avatar { width: 72px; height: 72px; border-radius: 16px; display: flex; align-items: center; justify-content: center; font-size: 28px; font-weight: 700; font-family: 'Anton', sans-serif; letter-spacing: 2px; box-shadow: 0 8px 32px rgba(82,14,185,0.4); }
.applicant-name { font-family: 'Anton', sans-serif; font-size: 24px; letter-spacing: 1px; margin: 0 0 8px; }
.applicant-meta { display: flex; align-items: center; gap: 12px; font-size: 13px; flex-wrap: wrap; }
.role-badge { padding: 4px 12px; border-radius: 8px; font-weight: 600; font-size: 12px; text-transform: uppercase; letter-spacing: 1px; }
.applicant-status { margin-left: auto; }
.applicant-card .panel-head { background: transparent; border: none; padding: 20px 24px 12px; }
.applicant-card .panel-head .panel-title { font-family: 'Anton', sans-serif; font-size: 16px; letter-spacing: 1px; color: var(--secondary); }

/* ---------- quick actions ---------- */
.quick-actions { background: transparent; border: 1px solid var(--line); border-radius: 16px; }
.action-buttons { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; padding: 24px; }
.action-buttons .btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 16px; font-weight: 600; font-size: 13px; text-transform: uppercase; letter-spacing: 0.5px; border-radius: 12px; transition: all 0.2s; white-space: nowrap; }
.action-buttons .btn svg { flex-shrink: 0; }
.action-buttons .btn:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0,0,0,0.3); }
.btn-whatsapp { background: #25D366; border-color: #25D366; color: #ffffff; }
.btn-instagram { background: linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888); border-color: transparent; color: #ffffff; }

/* ---------- detail grid ---------- */
.detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; padding: 24px; }
.detail-row { display: flex; flex-direction: column; gap: 6px; padding: 16px; background: rgba(255,255,255,0.02); border: 1px solid var(--line); border-radius: 12px; transition: all 0.2s; }
.detail-row:hover { border-color: rgba(82,14,185,0.3); background: rgba(82,14,185,0.05); }
.detail-label { font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--smoke); margin-bottom: 4px; }
.detail-value { font-size: 14px; color: var(--bone); word-break: break-all; }
.detail-value a { color: var(--secondary); text-decoration: none; transition: color 0.2s; }
.detail-value a:hover { color: var(--ember-glow); }
.detail-value .status { font-size: 12px; padding: 4px 10px; border-radius: 8px; font-weight: 600; text-transform: capitalize; }

/* ---------- status badges ---------- */
.status { display: inline-block; font-size: 12px; padding: 4px 10px; border-radius: 8px; font-weight: 600; text-transform: capitalize; }
.status-new { background: rgba(82,14,185,0.18); color: var(--secondary); }
.status-in-review { background: rgba(214,162,76,0.18); color: var(--warn); }
.status-offer-sent { background: rgba(127,174,111,0.18); color: var(--good); }
.status-declined { background: rgba(232,67,47,0.18); color: var(--bad); }

/* ---------- pitch text ---------- */
.pitch-text { padding: 24px; background: rgba(255,255,255,0.02); border: 1px solid var(--line); line-height: 1.8; font-size: 14px; color: var(--bone); white-space: pre-wrap; }

/* ---------- portfolio link ---------- */
.portfolio-link { display: inline-flex; align-items: center; gap: 10px; padding: 16px 24px; background: rgba(255,255,255,0.03); border: 1px solid var(--line); border-radius: 12px; color: var(--bone); font-weight: 500; font-family: 'JetBrains Mono', monospace; font-size: 13px; transition: all 0.2s; text-decoration: none; }
.portfolio-link:hover { background: rgba(82,14,185,0.2); border-color: var(--ember); color: var(--secondary); }
.portfolio-link-inline { display: inline-flex; align-items: center; gap: 10px; color: var(--secondary); font-weight: 500; font-family: 'JetBrains Mono', monospace; font-size: 13px; transition: all 0.2s; text-decoration: none; padding: 12px 16px; background: rgba(0,161,179,0.1); border: 1px solid rgba(0,161,179,0.2); border-radius: 10px; }
.portfolio-link-inline:hover { color: var(--ember-glow); background: rgba(82,14,185,0.15); border-color: var(--ember); }

/* ---------- media preview ---------- */
.media-preview { border-radius: 12px; overflow: hidden; background: var(--ink-2); }
.media-preview img, .media-preview video { width: 100%; max-height: 340px; object-fit: cover; display: block; }
.media-placeholder { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 60px 20px; text-align: center; color: var(--smoke); }
.media-placeholder p { font-size: 14px; margin-top: 12px; }

/* ---------- file upload ---------- */
.upload-box { border: 2px dashed var(--line-strong); border-radius: 16px; padding: 40px 20px; text-align: center; cursor: pointer; transition: all 0.2s; position: relative; background: rgba(255,255,255,0.01); }
.upload-box:hover, .upload-box.drag-over { border-color: var(--ember); background: rgba(82,14,185,0.08); }
.upload-box.has-file { border-style: solid; border-color: var(--ember); background: rgba(82,14,185,0.1); }
.upload-box svg { width: 48px; height: 48px; color: var(--smoke); margin-bottom: 16px; transition: color 0.2s; }
.upload-box:hover svg, .upload-box.drag-over svg { color: var(--ember); }
.upload-box span { display: block; font-size: 15px; color: var(--bone); margin-bottom: 4px; }
.upload-box small { display: block; font-size: 12px; color: var(--smoke); }

.file-preview { margin-top: 16px; display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }
.file-preview-item { position: relative; width: 100px; height: 100px; border-radius: 10px; overflow: hidden; background: var(--ink-2); }
.file-preview-item img, .file-preview-item video { width: 100%; height: 100%; object-fit: cover; }
.file-preview-item span { position: absolute; bottom: 0; left: 0; right: 0; padding: 6px; background: linear-gradient(transparent, rgba(13,10,20,0.9)); color: var(--bone); font-size: 10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.required { color: var(--ember); margin-left: 4px; }

/* ---------- form validation / focus ---------- */
.field input:required:invalid, .field textarea:required:invalid, .field select:required:invalid { border-color: rgba(232,67,47,0.3); }
.field input:valid, .field textarea:valid, .field select:valid { border-color: rgba(127,174,111,0.3); }
.field input:focus, .field textarea:focus, .field select:focus { outline: none; border-color: var(--ember); background: rgba(82,14,185,0.1); box-shadow: 0 0 0 3px rgba(82,14,185,0.15); }

/* ---------- progress steps ---------- */
.progress-step .progress-num { width: 36px; height: 36px; border-radius: 50%; background: rgba(255,255,255,0.1); display: flex; align-items: center; justify-content: center; font-family: 'JetBrains Mono', monospace; font-weight: 600; font-size: 14px; color: var(--smoke); transition: all 0.3s; }
.progress-step.active .progress-num { background: var(--ember); color: var(--ink-contrast); }
.progress-step.done .progress-num { background: var(--good); color: var(--ink-contrast); }
.progress-step.done .progress-label, .progress-step.active .progress-label { color: var(--bone); }

.apply-step { display: none; }
.apply-step.active { display: block; animation: fadeIn 0.3s ease; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }

/* ---------- success state ---------- */
.success-state { text-align: center; padding: 40px 20px; }
.success-icon { width: 80px; height: 80px; border-radius: 50%; background: linear-gradient(135deg, var(--good) 0%, #5db85b 100%); display: flex; align-items: center; justify-content: center; margin: 0 auto 24px; box-shadow: 0 16px 48px rgba(127,174,111,0.4); }
.success-icon svg { width: 40px; height: 40px; stroke: var(--ink-contrast); }

/* ---------- buttons ---------- */
.btn-primary { background: var(--ember); border-color: var(--ember); color: var(--ink-contrast); transition: all 0.2s; }
.btn-primary:hover { background: var(--ember-glow); border-color: var(--ember-glow); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(82,14,185,0.4); }
.btn-ghost { background: transparent; border-color: var(--line-strong); color: var(--bone); }
.btn-ghost:hover { border-color: var(--ember); color: var(--ember); }

/* ---------- base panel ---------- */
.panel { background: var(--ink-2); border: 1px solid var(--line); border-radius: 16px; }
.panel-nested { margin-top: 20px; background: var(--ink-2); border: 1px solid var(--line); border-radius: 12px; }
.panel-head { display: flex; align-items: center; justify-content: space-between; padding: 20px 24px 0; }
.panel-title { font-family: 'JetBrains Mono', monospace; font-size: 12px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--smoke); }

/* ---------- stage form ---------- */
.stage-form { padding: 20px 24px 24px; }
.stage-form .field-row { display: flex; align-items: flex-end; gap: 12px; }
.stage-form .field { flex: 1; }
.stage-form .field label { display: block; font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--smoke); margin-bottom: 8px; }
.stage-select { width: 100%; height: 48px; padding: 0 14px; border-radius: 10px; border: 1px solid var(--line-strong); background: var(--ink-3); color: var(--bone); font-size: 14px; appearance: none; }
.stage-select:focus { outline: none; border-color: var(--ember); box-shadow: 0 0 0 3px rgba(82,14,185,0.15); }
.stage-form .field .btn { height: 48px; width: 100%; }


/* ---------- light mode overrides ---------- */
html.light .applicant-card { background: linear-gradient(135deg, rgba(82,14,185,0.08) 0%, rgba(82,14,185,0.02) 100%); border-color: rgba(82,14,185,0.18); }
html.light .applicant-header { color: #ffffff; }
html.light .quick-actions { border-color: var(--line); }
html.light .detail-row { background: rgba(82,14,185,0.03); border-color: var(--line); }
html.light .detail-row:hover { background: rgba(82,14,185,0.06); border-color: rgba(82,14,185,0.25); }
html.light .pitch-text { background: rgba(82,14,185,0.03); border-color: var(--line); }
html.light .portfolio-link { background: rgba(82,14,185,0.04); border-color: var(--line); }
html.light .portfolio-link-inline { background: rgba(0,161,179,0.06); border-color: rgba(0,161,179,0.18); }
html.light .media-preview { background: var(--ink-2); }
html.light .upload-box { background: rgba(82,14,185,0.02); border-color: var(--line-strong); }
html.light .file-preview-item { background: var(--ink-2); }
html.light .action-buttons .btn:hover { box-shadow: 0 8px 24px rgba(82,14,185,0.15); }
html.light .success-icon svg { stroke: #ffffff; }
html.light .panel { background: var(--ink); border-color: var(--line); }
html.light .panel-nested { background: var(--ink); border-color: var(--line); }
html.light .stage-select { background: #ffffff; border-color: var(--line-strong); }


/* ---------- responsive ---------- */
@media (max-width: 900px) {
  .detail-layout { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  .detail-grid { grid-template-columns: 1fr; }
  .action-buttons { grid-template-columns: 1fr; }
  .applicant-header { flex-direction: column; text-align: center; }
  .applicant-status { margin-left: 0; margin-top: 12px; }
}