/* ACU Vault — the real Vault. Member accounts, admin moderation, live Stripe checkout. */
/* Design: private cinema. Champagne gold on near-black, editorial serif, hairline rules, slow motion. */
:root{
  --black:#070707; --ink:#0e0d0b; --panel:#121110; --panel2:#1a1815;
  --gold:#c9a227; --gold2:#e9c767; --gold3:#f7e8b0; --gold-dim:#8a6d1f;
  --gold-line:rgba(201,162,39,.28);
  --cream:#f3ecdc; --muted:#b3ab99; --muted2:#857d6c;
  --red:#c0392b; --line:#232019; --radius:18px;
  --serif:"Playfair Display",Georgia,"Times New Roman",serif;
  --sans:"Manrope",Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --shadow:0 24px 60px rgba(0,0,0,.55);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--black);color:var(--cream);font-family:var(--sans);line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:var(--gold2);text-decoration:none}
a:hover{text-decoration:underline}
button{font-family:inherit;cursor:pointer}
h1,h2,h3{line-height:1.08;margin:0;font-family:var(--serif);font-weight:700}
.eyebrow{letter-spacing:.34em;text-transform:uppercase;color:var(--gold2);font-size:11px;font-weight:700}

/* Nav */
.topnav{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:22px;padding:16px 32px;background:rgba(7,7,7,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--gold-line)}
.logo{font-family:var(--serif);font-weight:800;letter-spacing:.14em;font-size:22px;color:var(--cream);white-space:nowrap}
.logo b{color:var(--gold2);font-style:italic}
.topnav nav{display:flex;gap:22px;align-items:center}
.topnav nav a{color:var(--cream);font-weight:600;font-size:13px;letter-spacing:.08em;text-transform:uppercase}
.topnav nav a:hover{color:var(--gold2);text-decoration:none}
.search-wrap{flex:1;display:flex;justify-content:center}
.search-wrap input{width:min(420px,100%);padding:11px 18px;border-radius:999px;border:1px solid var(--line);background:#141210;color:var(--cream);font-size:14px;font-family:var(--sans);transition:border-color .2s,box-shadow .2s}
.search-wrap input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,162,39,.18)}
.search-wrap input::placeholder{color:var(--muted2)}
.btn{border:0;border-radius:999px;padding:13px 24px;font-weight:800;font-size:13px;letter-spacing:.1em;text-transform:uppercase;transition:transform .2s,box-shadow .2s,filter .2s}
.btn:hover{transform:translateY(-1px)}
.btn-gold{background:linear-gradient(135deg,var(--gold3),var(--gold2) 45%,var(--gold));color:#171204;box-shadow:0 10px 28px rgba(201,162,39,.28)}
.btn-gold:hover{filter:brightness(1.06);box-shadow:0 14px 34px rgba(201,162,39,.36)}
.btn-outline{background:transparent;color:var(--cream);border:1px solid var(--gold-dim);padding:12px 22px}
.btn-outline:hover{border-color:var(--gold2);background:rgba(201,162,39,.08)}
.btn-small{padding:9px 16px;font-size:12px}
.nav-actions{display:flex;gap:10px;align-items:center}

/* Hero — cinematic, never black/empty */
.hero{position:relative;overflow:hidden;padding:104px 32px 84px;
  background:
    radial-gradient(1000px 480px at 82% 8%, rgba(201,162,39,.30), transparent 62%),
    radial-gradient(760px 520px at 8% 95%, rgba(150,60,120,.32), transparent 55%),
    radial-gradient(600px 400px at 55% 40%, rgba(90,40,20,.25), transparent 60%),
    linear-gradient(115deg,#241a05 0%,#0f0a04 38%,#340e1c 68%,#070707 100%);
  border-bottom:1px solid var(--gold-line)}
.hero::before{content:"";position:absolute;inset:0;opacity:.05;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.6'/%3E%3C/svg%3E")}
.hero::after{content:"CHECK, PLEASE!  •  LOVE HER  •  THE PERRY SISTERS  •  KINGDOM COME  •  LONDON & GREYSON";position:absolute;right:-20px;bottom:16px;transform:rotate(-2deg);font-family:var(--serif);font-weight:800;font-size:54px;letter-spacing:.04em;color:rgba(255,255,255,.055);white-space:nowrap;pointer-events:none}
.hero-inner{position:relative;z-index:2;max-width:920px}
.hero h1{font-size:clamp(56px,9vw,110px);letter-spacing:.01em;font-weight:800}
.hero h1 span{color:var(--gold2);font-style:italic}
.hero .tagline{font-family:var(--serif);font-size:clamp(22px,3vw,32px);font-style:italic;color:#efe6c8;margin:18px 0 10px}
.hero p.lede{color:var(--muted);font-size:18px;max-width:660px}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin:28px 0 16px}
.hero-meta{font-size:13px;color:var(--muted);letter-spacing:.04em}
.hero-badges{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
.pill{border:1px solid var(--gold-line);color:var(--gold3);border-radius:999px;padding:7px 14px;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;background:rgba(201,162,39,.06)}

/* Sections */
.wrap{max-width:1280px;margin:0 auto;padding:0 32px}
section{padding:48px 0 12px}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.section-head h2{font-size:36px;font-weight:800}
.section-head p{color:var(--muted);margin:8px 0 0;max-width:720px;font-size:15px}
.row{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(260px,320px);gap:18px;overflow-x:auto;padding-bottom:14px;scroll-snap-type:x mandatory}
.row::-webkit-scrollbar{height:8px}.row::-webkit-scrollbar-thumb{background:#333;border-radius:99px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;text-align:left;padding:0;color:var(--cream);transition:transform .35s cubic-bezier(.2,.7,.3,1),border-color .35s,box-shadow .35s;box-shadow:0 8px 24px rgba(0,0,0,.35)}
.card:hover{transform:translateY(-6px);border-color:var(--gold-line);box-shadow:var(--shadow)}
.poster{height:180px;display:flex;flex-direction:column;justify-content:flex-end;padding:14px;position:relative;overflow:hidden}
.poster-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .8s cubic-bezier(.2,.7,.3,1)}
.card:hover .poster-img{transform:scale(1.05)}
.poster iframe.trailer{position:absolute;inset:0;width:100%;height:100%;border:0;pointer-events:none}
.trailer-box{border:1px solid var(--gold-line);border-radius:14px;overflow:hidden;box-shadow:0 12px 32px rgba(0,0,0,.45)}
.poster-img.portrait{object-fit:contain;background:#000}
/* Trial: fill the card box with the poster (cover crop, never stretched) */
.poster-img.fill{object-fit:cover;object-position:var(--fill-pos,center 30%)}
.modal .poster-img.fill{object-fit:contain;object-position:center}
/* Portrait posters are narrow on the card — the MEMBERS ONLY badge would cover the title, so hide it on cards only (it still shows in the show modal) */
.card .poster:has(.poster-img.portrait) .lock{display:none}
.modal .poster.landscape-img{height:auto;aspect-ratio:16/9}
.modal .poster.portrait-img{height:420px}
.poster .poster-title{font-family:var(--serif);font-weight:800;font-size:24px;line-height:1.05;text-shadow:0 2px 14px rgba(0,0,0,.75)}
.poster .poster-sub{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.85);margin-top:6px}
.poster .lock{position:absolute;top:12px;right:12px;z-index:3;background:rgba(0,0,0,.62);backdrop-filter:blur(4px);border:1px solid var(--gold-line);color:var(--gold3);border-radius:999px;padding:5px 10px;font-size:11px;font-weight:800;letter-spacing:.06em}
.poster .badge{position:absolute;top:12px;left:12px;z-index:3;background:linear-gradient(135deg,var(--gold3),var(--gold));color:#171204;border-radius:999px;padding:5px 10px;font-size:11px;font-weight:900;letter-spacing:.06em}
.poster-badges{position:absolute;top:12px;left:12px;z-index:3;display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.poster-badges .badge{position:static}
.poster .badge.ma{background:rgba(0,0,0,.72);border:1px solid var(--gold);color:var(--gold3)}
/* Watch while you do other things — picture-in-picture section */
.pip-steps{margin:16px 0 18px;padding:0;list-style:none;display:grid;gap:12px}
.pip-steps li{display:flex;gap:12px;align-items:flex-start}
.pip-steps .num{flex:0 0 26px;height:26px;border-radius:50%;background:linear-gradient(135deg,var(--gold3),var(--gold));color:#171204;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:900}
.pip-steps p{margin:0}
#pipDemoVideo{width:100%;border-radius:12px;margin-top:16px;background:#000}
.card-body{padding:18px 18px 20px}
.card-body h3{font-size:21px}
.card-body .meta{color:var(--gold2);font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;margin:8px 0}
.card-body p{color:var(--muted);font-size:14px;margin:0 0 14px;min-height:42px}
.card-foot{display:flex;justify-content:space-between;align-items:center;gap:10px}
.muted{color:var(--muted);font-size:13px}
.progress{height:6px;background:#2c2822;border-radius:99px;overflow:hidden;margin:12px 0 8px}
.progress i{display:block;height:100%;background:linear-gradient(90deg,var(--gold3),var(--gold))}
.ep-card .poster{height:150px}
.ep-card .poster-title{font-size:19px}

/* Poster gradients — CSS art only, no copied images */
.g-perry{background:linear-gradient(135deg,#7a1f3d,#c0392b 45%,#d4af37 110%)}
.g-london{background:linear-gradient(135deg,#1b2a52,#7a2a4d 55%,#d4af37)}
.g-marked{background:linear-gradient(135deg,#0f2a4a,#3a6ea5 50%,#f2d06b)}
.g-kingdom{background:linear-gradient(135deg,#111,#5b1a1a 55%,#d4af37)}
.g-loveher{background:linear-gradient(135deg,#4a1030,#b03a6b 55%,#f2d06b)}
.g-aeon{background:linear-gradient(135deg,#0a2a3a,#2a6a8a 50%,#d4af37)}
.g-check{background:linear-gradient(135deg,#202020,#8a6d1a 60%,#f2d06b)}
.g-girls{background:linear-gradient(135deg,#5b1a5e,#e06ba8 55%,#f2d06b)}
.g-liar{background:linear-gradient(135deg,#1a1a2e,#7a1f3d 55%,#d4af37)}

/* Community */
.community-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:20px}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:0 8px 24px rgba(0,0,0,.3)}
.panel h3{font-size:22px}
.comment{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}
.comment:last-child{border-bottom:0}
.avatar{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--gold3),var(--gold));color:#171204;display:flex;align-items:center;justify-content:center;font-weight:900;flex:none}
.comment b{font-size:14px}.comment .time{color:var(--muted2);font-size:12px;margin-left:8px}
.comment p{margin:4px 0 8px;font-size:14px;color:#e8e2d4}
.reactions{display:flex;gap:8px;flex-wrap:wrap}
.react{border:1px solid var(--line);background:#1d1a16;border-radius:999px;padding:6px 11px;color:var(--cream);font-size:13px;transition:border-color .2s,background .2s}
.react:hover{border-color:var(--gold-dim)}
.react.on{border-color:var(--gold);background:#33290a}
.poll-opt{display:block;width:100%;text-align:left;background:#1d1a16;border:1px solid var(--line);color:var(--cream);border-radius:12px;padding:12px 14px;margin:8px 0;transition:border-color .2s}
.poll-opt:hover{border-color:var(--gold-dim)}
.poll-bar{height:8px;background:#2c2822;border-radius:99px;overflow:hidden;margin-top:8px}
.poll-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--gold3),var(--gold))}
.countdown{display:flex;gap:10px;margin:16px 0}
.countdown div{background:#0f0e0c;border:1px solid var(--gold-line);border-radius:12px;padding:12px;min-width:68px;text-align:center}
.countdown b{font-family:var(--serif);font-size:26px;color:var(--gold2);display:block}
.countdown span{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}

/* Membership */
.tiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}
.tier{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:28px;box-shadow:0 8px 24px rgba(0,0,0,.3)}
.tier.featured{border:1px solid var(--gold);background:linear-gradient(180deg,#241c06,#141210);box-shadow:0 24px 60px rgba(201,162,39,.16)}
.tier h3{font-size:24px}.tier .price{font-family:var(--serif);font-size:44px;font-weight:800;margin:12px 0 2px}.tier .price small{font-family:var(--sans);font-size:16px;color:var(--muted)}
.tier ul{padding-left:18px;color:var(--muted)}.tier li{margin:7px 0}
.strike{text-decoration:line-through;color:var(--muted2)}
.note{font-size:13px;color:var(--muted)}
.age{border:1px solid var(--gold-line);border-radius:12px;padding:14px 16px;background:#1a1505;margin-top:18px;font-size:14px}

/* Modal */
.modal-back{position:fixed;inset:0;background:rgba(0,0,0,.86);backdrop-filter:blur(6px);display:none;align-items:flex-start;justify-content:center;padding:40px 16px;z-index:100;overflow:auto}
.modal-back.open{display:flex}
/* The 18+ birthday popup must always sit above every other modal (Support, show detail, etc.) — it opens on top of them from the checkout, tip and watch flows, and a visitor must be able to see and click it with no workaround. */
#ageModal{z-index:300}
.modal{background:#131110;border:1px solid var(--gold-line);border-radius:20px;max-width:780px;width:100%;overflow:hidden;box-shadow:var(--shadow)}
.modal .poster{height:220px}
.modal-body{padding:26px}
.modal-body h2{font-size:34px}
.ep-row{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}
.season-select{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.16);border-radius:10px;color:#fff;font:inherit;font-weight:700;cursor:pointer;padding:12px 14px;text-align:left}
.season-select:hover{border-color:rgba(212,175,55,.6);background:rgba(255,255,255,.06)}
.season-select .season-chev{color:#d4af37;font-size:16px}
.ep-row:last-child{border-bottom:0}
.ep-row b{font-size:15px}.ep-row p{margin:2px 0 0;color:var(--muted);font-size:13px}
.close-x{float:right;background:#1d1a16;color:var(--cream);border:1px solid var(--line);border-radius:50%;width:38px;height:38px;font-size:18px;transition:border-color .2s}
.close-x:hover{border-color:var(--gold2)}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:linear-gradient(135deg,var(--gold3),var(--gold));color:#171204;font-weight:800;padding:13px 20px;border-radius:999px;display:none;z-index:200;box-shadow:0 12px 34px rgba(0,0,0,.55);font-size:14px}
.toast.show{display:block}
.player{background:#000;border:1px solid var(--gold-line);border-radius:14px;padding:30px;text-align:center;margin:16px 0}
.player .big{font-size:46px}
footer{border-top:1px solid var(--gold-line);margin-top:48px;padding:32px;background:#050505}
.foot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:18px}
.foot-grid h4{color:var(--gold2);margin:0 0 10px;font-size:12px;letter-spacing:.18em;text-transform:uppercase}
.foot-grid a{display:block;color:var(--muted);margin:6px 0;font-size:14px}
.faq details{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin:8px 0}
.faq summary{cursor:pointer;font-weight:700;font-family:var(--serif);font-size:17px}
.faq p{color:var(--muted)}
.empty{padding:22px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:12px}
@media(max-width:820px){
  .topnav{flex-wrap:wrap;padding:12px 16px}.search-wrap{order:3;flex-basis:100%}
  .community-grid{grid-template-columns:1fr}.hero::after{display:none}
  .wrap{padding:0 16px}.hero{padding:56px 16px 44px}
  .section-head h2{font-size:28px}
}

/* Featured trailer bar */
.plan-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:#100f0d;border-bottom:1px solid var(--line);padding:9px 16px;font-size:13px;position:sticky;top:0;z-index:60}
.plan-bar-label{font-weight:700;color:var(--gold2);letter-spacing:.06em}
.plan-btn{background:#1e1b17;color:#ddd;border:1px solid var(--line);border-radius:999px;padding:7px 13px;cursor:pointer;font-size:13px;transition:border-color .2s,background .2s}
.plan-btn:hover{border-color:var(--gold-dim)}
.plan-btn.active{background:linear-gradient(135deg,var(--gold3),var(--gold));color:#171204;border-color:var(--gold);font-weight:700}
.plan-badge{font-size:12px;color:var(--gold2);border:1px solid var(--gold-dim);border-radius:999px;padding:5px 11px;white-space:nowrap}
.tier{position:relative}
.tier.current{outline:2px solid var(--gold);outline-offset:3px}
.current-plan{display:inline-block;background:linear-gradient(135deg,var(--gold3),var(--gold));color:#171204;font-size:11px;font-weight:700;border-radius:999px;padding:4px 10px;margin-bottom:10px;letter-spacing:.05em}
#composer textarea{width:100%;background:#0f0e0c;border:1px solid var(--line);border-radius:12px;color:#f5f5f5;padding:11px;font:inherit;resize:vertical;margin:10px 0 8px}
#composer textarea:focus{outline:none;border-color:var(--gold)}

/* Episode comments — YouTube-style, better */
.comment-gif{max-width:240px;border-radius:12px;margin:6px 0 8px;display:block}
.gif-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0}
.gif-pick{border:1px solid var(--line);border-radius:12px;overflow:hidden;padding:0;background:#111;cursor:pointer;transition:border-color .2s}
.gif-pick:hover{border-color:var(--gold)}
.gif-pick img{width:100%;height:64px;object-fit:cover;display:block}
.gif-pick span{display:block;font-size:11px;padding:4px;text-align:center;color:var(--cream)}
.replies{margin-left:54px;border-left:2px solid var(--gold-line);padding-left:14px}
.pinned{border:1px solid var(--gold-line);border-radius:14px;padding:12px 14px;margin-bottom:8px;background:rgba(201,162,39,.05)}
.pinned .comment{border-bottom:0;padding:4px 0}
.pinned-tag{color:var(--gold2);font-size:11px;font-weight:700;letter-spacing:.08em}
.badge-team{color:var(--gold2);font-weight:700}
.badge-founding{color:var(--gold2);font-weight:700}
.badge-member{color:#2dd4bf;font-weight:700}
.comment-composer textarea,.reply-box textarea{width:100%;background:#0f0e0c;border:1px solid var(--line);border-radius:12px;color:#f5f5f5;padding:11px;font:inherit;resize:vertical;margin:8px 0}
.comment-composer textarea:focus,.reply-box textarea:focus{outline:none;border-color:var(--gold)}
.reply-box{margin-top:8px}

/* Moderation queue + VaultBot */
.mod-item{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}
.mod-item:last-child{border-bottom:0}
.mod-item p{margin:4px 0 8px;font-size:14px;color:#e8e2d4}
.verdict{display:inline-block;font-size:12px;font-weight:700;border-radius:999px;padding:5px 11px;margin:2px 0}
.verdict.clean{background:#0f2e1e;color:#4ade80;border:1px solid #166534}
.verdict.flagged{background:#3d1a10;color:#fca5a5;border:1px solid #7f1d1d}
@media (prefers-reduced-motion: reduce){
  *{transition:none!important;scroll-behavior:auto!important}
  .card:hover .poster-img{transform:none}
}

/* Featured hero — full-bleed autoplaying trailer, Netflix-style */
.hero-featured{min-height:min(84vh,780px);display:flex;align-items:flex-end;padding:0 32px 72px;background:#070707}
.hero-featured::after{display:none}
.hero-video-wrap{position:absolute;inset:0}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border:0;pointer-events:none}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,7,7,.95) 0%,rgba(7,7,7,.62) 42%,rgba(7,7,7,.10) 74%),linear-gradient(0deg,#070707 2%,rgba(7,7,7,0) 46%),linear-gradient(180deg,rgba(7,7,7,.6),transparent 32%)}
.hero-featured .hero-inner{max-width:700px;padding-top:130px}
.hero-featured h1{font-size:clamp(64px,10vw,124px)}
.hero-meta-row{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0 4px}
.btn-glass{background:rgba(20,18,15,.55);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--cream);border:1px solid rgba(243,236,220,.35);padding:12px 22px}
.btn-glass:hover{border-color:var(--gold2);background:rgba(201,162,39,.16)}
.hero-brand{font-family:var(--serif);font-style:italic;color:var(--gold2);font-size:16px;margin-top:20px}
@media(max-width:820px){
  .hero-featured{min-height:620px;padding:0 16px 48px}
  .hero-featured .hero-inner{padding-top:90px}
}

.hero-greet{color:var(--gold2);font-size:13px;letter-spacing:.04em;margin:0 0 2px;min-height:0}

/* Fullscreen exit for the hero video — visible only while fullscreen */
.hero-fs-close{position:absolute;top:18px;right:18px;z-index:99999;display:none;background:rgba(10,9,7,.72);backdrop-filter:blur(8px);color:var(--cream);border:1px solid rgba(243,236,220,.45);border-radius:999px;padding:10px 18px;font:600 14px var(--body);letter-spacing:.06em;cursor:pointer}
.hero-fs-close.show{display:block}
.hero-fs-close:hover{border-color:var(--gold2);color:var(--gold2)}

#featuredPicker{display:inline-flex;gap:6px;flex-wrap:wrap}

/* BTS placeholder — swapped in where the watch-party card was */
.bts-placeholder{aspect-ratio:16/9;border-radius:14px;border:1px solid var(--gold-line);background:linear-gradient(135deg,#241b08,#0a0908 65%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--cream);text-align:center;padding:16px}

/* ---- Control Room (admin only) ---- */
.cr-test{background:linear-gradient(135deg,#3a2f10,#241d08);border:1px solid var(--gold);color:#f3d98b;border-radius:12px;padding:12px 16px;font-size:14px;margin:0 0 18px}
.cr-grid{display:grid;grid-template-columns:1.1fr 1.4fr 1fr;gap:18px}
.cr-grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}
@media(max-width:900px){.cr-grid,.cr-grid2{grid-template-columns:1fr}}
.cr-big{font-family:'Playfair Display',serif;font-size:64px;line-height:1;font-weight:800;color:#fff;margin:10px 0 4px}
.cr-tier{margin-top:14px}
.cr-tier .cr-row{display:flex;justify-content:space-between;font-size:14px;margin-bottom:6px}
.cr-bar{height:8px;border-radius:99px;background:#26200f;overflow:hidden}
.cr-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--gold3),var(--gold))}
.cr-bar i.teal{background:linear-gradient(90deg,#0f766e,#2dd4bf)}
.cr-bar i.plum{background:linear-gradient(90deg,#7c3aed,#c084fc)}
.cr-bars{display:flex;align-items:flex-end;gap:3px;height:150px;margin-top:14px}
.cr-bars i{flex:1;background:linear-gradient(180deg,var(--gold),var(--gold3));border-radius:3px 3px 0 0;min-height:4px}
.cr-series{display:flex;justify-content:space-between;gap:10px;padding:11px 0;border-bottom:1px solid var(--line);font-size:14px}
.cr-series .eps{color:var(--gold2);font-weight:800;white-space:nowrap}
.cr-act{display:flex;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px}
.cr-dot{width:9px;height:9px;border-radius:50%;background:#2dd4bf;margin-top:6px;flex:none}
.cr-dot.up{background:var(--gold)}
.cr-table{width:100%;border-collapse:collapse;font-size:14px;min-width:560px}
.cr-table th{text-align:left;letter-spacing:.14em;text-transform:uppercase;font-size:11px;color:var(--muted);padding:10px 8px;border-bottom:1px solid var(--line)}
.cr-table td{padding:11px 8px;border-bottom:1px solid var(--line)}
.cr-badge{display:inline-block;padding:3px 10px;border-radius:99px;font-size:12px;font-weight:800}
.cr-badge.free{background:#2a1c0e;color:#e8a04c}
.cr-badge.member{background:#0d2b28;color:#2dd4bf}
.cr-badge.founding{background:#3a2f10;color:#f3d98b}
.cr-badge.twoshow{background:#2a1a3d;color:#c084fc}

/* My Account — profile page */
.acct-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}
.acct-row:last-child{border-bottom:0}
/* NOTE: the label rule must use a direct-child `>` — a bare descendant
   `.acct-row span:first-child` also matched the value span inside <b>
   (it is the first child of <b>) and, at (0,2,1), beat
   .acct-status.warn (0,2,0), so Canceled/Active rendered muted gray
   instead of red/green. The `>` only ever matches the label. */
.acct-row>span:first-child{color:var(--muted)}
.acct-row b{text-align:right;overflow-wrap:anywhere}
.acct-status{color:#4ade80;font-weight:800}
.acct-status.warn{color:#f87171}
.acct-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.acct-sub{font-family:var(--serif);font-size:19px;margin:16px 0 4px}
.acct-div{border:none;border-top:1px solid var(--line);margin:20px 0 12px}
/* My Account — card layout (Tink, Nov 11): the page is cards, like the
   design she showed — a Membership card with the tier in big gold and a
   green/red status pill, an Account Info card, and an Actions card with
   a red boxed Cancel Membership button. The outer panel goes plain so
   the cards sit straight on the page. */
#account.panel{background:transparent;border:0;box-shadow:none;padding:0}
.acct-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:22px 24px;margin-bottom:16px;box-shadow:0 8px 24px rgba(0,0,0,.3)}
.acct-mem-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:10px}
.acct-tier{font-size:26px;font-weight:800;color:var(--gold2);letter-spacing:.06em;text-transform:uppercase;line-height:1.2}
.acct-pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:7px 14px;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;color:var(--gold3);background:rgba(201,162,39,.08);border:1px solid var(--gold-line)}
.acct-pill.ok{color:#4ade80;background:rgba(74,222,128,.12);border:1px solid rgba(74,222,128,.4)}
.acct-pill.warn{color:#f87171;background:rgba(248,113,113,.12);border:1px solid rgba(248,113,113,.4)}
.acct-action-row{display:flex;justify-content:space-between;align-items:center;width:100%;background:transparent;border:0;border-bottom:1px solid var(--line);color:var(--cream);padding:14px 2px;font-size:15px;font-weight:600;font-family:inherit;cursor:pointer;text-align:left}
.acct-action-row:last-of-type{border-bottom:0}
.acct-arrow{color:var(--gold2);font-weight:800}
.acct-cancel-link{display:inline-block;border:1px solid #f87171;color:#f87171;background:transparent;border-radius:8px;padding:11px 20px;font-weight:700;font-size:13px;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;cursor:pointer}
.acct-cancel .note{margin:0 0 12px}

/* Support The Vault — one-time tip chips */
.support-chips{display:flex;gap:10px;flex-wrap:wrap}
.chip{background:#1a1712;border:1px solid var(--line);color:var(--cream);padding:12px 20px;border-radius:999px;font-weight:800;cursor:pointer;font-size:15px;font-family:inherit}
.chip:hover{border-color:var(--gold2)}
.chip.on{border-color:var(--gold);background:rgba(201,162,39,.14);color:var(--gold)}

/* Social page — the feeds, inside the Vault */
.topnav nav a.active{color:var(--gold2)}
.ig-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px}
.ig-card{display:block;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;color:var(--cream);transition:transform .35s cubic-bezier(.2,.7,.3,1),border-color .35s,box-shadow .35s}
.ig-card:hover{transform:translateY(-6px);border-color:var(--gold-line);box-shadow:var(--shadow);text-decoration:none}
.ig-thumb{position:relative;aspect-ratio:4/5;overflow:hidden;background:#000}
.ig-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.2,.7,.3,1)}
.ig-card:hover .ig-thumb img{transform:scale(1.04)}
.ig-badge{position:absolute;top:12px;left:12px;z-index:2;background:linear-gradient(135deg,var(--gold3),var(--gold));color:#171204;border-radius:999px;padding:5px 10px;font-size:11px;font-weight:900;letter-spacing:.06em}
.ig-play{position:absolute;right:12px;bottom:12px;z-index:2;background:rgba(0,0,0,.62);backdrop-filter:blur(4px);border:1px solid var(--gold-line);color:var(--gold3);border-radius:999px;padding:5px 10px;font-size:11px;font-weight:800;letter-spacing:.06em}
.ig-body{padding:14px 16px 16px}
.ig-body p{color:var(--muted);font-size:14px;margin:0 0 10px;min-height:42px}
.ig-meta{color:var(--gold2);font-size:12px;font-weight:700;letter-spacing:.06em}
.yt-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,320px));gap:20px;justify-content:center}
.yt-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.yt-card iframe{width:100%;aspect-ratio:9/16;border:0;display:block;background:#000}
.yt-body{padding:14px 16px 16px}
.yt-body h3{font-size:17px}
.yt-body p{margin:8px 0 0;font-size:13px}
.yt-playlist{max-width:880px;margin:0 auto;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.yt-playlist iframe{width:100%;aspect-ratio:16/9;border:0;display:block;background:#000}

/* Chat with Iris — 1:1 member chat (/iris). Iris's bubbles on the left
   with the gold ✦ mark; the member's on the right. Same black-and-gold
   language as the episode comments. */
.iris-thread{display:flex;flex-direction:column;gap:14px;max-height:560px;overflow-y:auto;padding:6px 2px 10px}
.iris-msg{display:flex;gap:10px;max-width:88%}
.iris-msg.iris{align-self:flex-start}
.iris-msg.mine{align-self:flex-end;flex-direction:row-reverse}
.iris-avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--gold3),var(--gold));color:#171204;display:flex;align-items:center;justify-content:center;font-weight:900;flex:none;font-size:18px}
.iris-bubble{background:#171512;border:1px solid var(--line);border-radius:14px;padding:12px 14px}
.iris-msg.mine .iris-bubble{background:#2a2113;border-color:#6b5a2e}
.iris-bubble b{font-size:13px;color:var(--gold)}
.iris-msg.mine .iris-bubble b{color:#f5f5f5}
.iris-bubble p{margin:4px 0 6px;font-size:14px;line-height:1.55;color:#e8e2d4;white-space:pre-wrap;word-break:break-word}
.iris-time{font-size:11px;color:var(--muted2)}
.iris-composer{display:flex;gap:10px;align-items:flex-end;margin-top:6px}
.iris-composer textarea{flex:1;background:#0f0e0c;border:1px solid var(--line);border-radius:12px;color:#f5f5f5;padding:11px;font:inherit;resize:vertical;min-height:44px}
.iris-composer textarea:focus{outline:none;border-color:var(--gold)}
@media(max-width:640px){.iris-msg{max-width:96%}.iris-thread{max-height:480px}}
