/* DON'T PANIC, design system. Dark mode only. Apple meets ancient temple. */
/* Self-hosted serif (Playfair Display, OFL), every device renders the hero identically. No Google. */
@font-face{
  font-family:"DP Serif"; font-style:normal; font-weight:400; font-display:swap;
  src:url("assets/fonts/playfair-400.woff2") format("woff2");
}
@font-face{
  font-family:"DP Serif"; font-style:normal; font-weight:600; font-display:swap;
  src:url("assets/fonts/playfair-600.woff2") format("woff2");
}
:root{
  --void:#0A0A0A; --carbon:#141414; --charcoal:#1E1E1E; --line:#262626;
  --bone:#F5F5F5; --ash:#A0A0A0; --fog:#666;
  --copper:#B5723C; --copper-soft:#C0894F; --gold:#C4A04E;
  --teal:#4ECDC4; --ember:#E85D3A; --green:#4CAF50;
  --accent:var(--copper);            /* flips by tier */
  --radius:14px;
  --font:"Helvetica Neue","Inter",-apple-system,system-ui,sans-serif;
  --serif:"DP Serif","Didot","Canela",Georgia,serif;
}
*{box-sizing:border-box;margin:0;padding:0;}
html,body{height:100%;}
body{
  background:var(--void); color:var(--bone); font-family:var(--font);
  -webkit-font-smoothing:antialiased; line-height:1.5; overflow-x:hidden;
}
body[data-tier="upgrade"]{--accent:var(--teal);}
body[data-tier="shift"], body[data-tier="live"]{--accent:var(--copper);}
::selection{background:var(--accent); color:#000;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;}

/* ---------- header ---------- */
.topbar{
  position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;
  padding:16px 22px;background:rgba(10,10,10,.82);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.brand{font-weight:600;letter-spacing:.30em;font-size:15px;text-indent:.30em;cursor:pointer;}
.brand .dot{color:var(--accent);}
.tierpill{
  font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--ash);
  border:1px solid var(--line);border-radius:999px;padding:5px 11px;cursor:pointer;transition:.2s;
}
.tierpill:hover{border-color:var(--accent);color:var(--bone);}
.tierpill b{color:var(--accent);}
.panic-trigger{
  display:flex;align-items:center;gap:8px;background:var(--ember);color:#fff;
  font-weight:600;font-size:12px;letter-spacing:.12em;text-transform:uppercase;
  padding:9px 15px;border-radius:999px;box-shadow:0 0 0 0 rgba(232,93,58,.5);
  animation:pulse 3.2s infinite;
}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(232,93,58,.45);}70%{box-shadow:0 0 0 12px rgba(232,93,58,0);}100%{box-shadow:0 0 0 0 rgba(232,93,58,0);}}
.right{display:flex;align-items:center;gap:12px;}

/* ---------- layout ---------- */
.shell{max-width:1080px;margin:0 auto;padding:30px 22px 90px;}
.eyebrow{font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:var(--fog);margin-bottom:14px;}
.section{margin:42px 0;}
.section-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:16px;}
.section-head h2{font-size:13px;letter-spacing:.28em;text-transform:uppercase;color:var(--ash);font-weight:600;}
.section-head a{font-size:12px;color:var(--accent);letter-spacing:.04em;}
.grid{display:grid;gap:14px;}
.g3{grid-template-columns:repeat(3,1fr);}
.g2{grid-template-columns:repeat(2,1fr);}
@media(max-width:760px){.g3{grid-template-columns:1fr;}.g2{grid-template-columns:1fr;}}

/* ---------- cards ---------- */
.card{background:var(--carbon);border:1px solid var(--line);border-radius:var(--radius);padding:20px;transition:.18s;}
.card.click{cursor:pointer;}
.card.click:hover{border-color:#3a3a3a;background:var(--charcoal);transform:translateY(-2px);}
.today-card{position:relative;overflow:hidden;}
.today-card .k{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);}
.today-card h3{font-size:19px;margin:8px 0 6px;font-weight:600;}
.today-card p{font-size:13px;color:var(--ash);}
.today-card .mins{position:absolute;top:18px;right:18px;font-size:11px;color:var(--fog);}

/* ---------- journey ---------- */
.phase{margin-bottom:10px;}
.phase-label{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--fog);margin:18px 0 10px;}
.module{
  display:flex;align-items:center;gap:14px;padding:15px 18px;background:var(--carbon);
  border:1px solid var(--line);border-radius:12px;margin-bottom:8px;transition:.16s;
}
.module.open{cursor:pointer;}
.module.open:hover{border-color:#3a3a3a;background:var(--charcoal);}
.module.locked{opacity:.45;}
.dotmark{width:9px;height:9px;border-radius:50%;flex:0 0 auto;background:var(--line);}
.module.done .dotmark{background:var(--green);}
.module.current .dotmark{background:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 25%,transparent);}
.module .mname{font-weight:500;font-size:15px;}
.module .mdesc{font-size:12.5px;color:var(--ash);margin-top:2px;}
.module .mstate{margin-left:auto;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--fog);}
.module.done .mstate{color:var(--green);}
.module.current .mstate{color:var(--accent);}

/* ---------- deep dives ---------- */
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px;}
.chip{font-size:12px;letter-spacing:.06em;color:var(--ash);border:1px solid var(--line);border-radius:999px;padding:7px 14px;transition:.15s;}
.chip:hover{color:var(--bone);border-color:#3a3a3a;}
.chip.active{background:var(--accent);color:#000;border-color:var(--accent);font-weight:600;}
.dd-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
@media(max-width:760px){.dd-grid{grid-template-columns:repeat(2,1fr);}}
.dd{background:var(--carbon);border:1px solid var(--line);border-radius:12px;padding:16px;cursor:pointer;transition:.15s;min-height:92px;display:flex;flex-direction:column;justify-content:space-between;}
.dd:hover{border-color:var(--accent);transform:translateY(-2px);}
.dd .cat{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--fog);}
.dd .t{font-size:14.5px;font-weight:500;margin-top:8px;}
.dd.locked{opacity:.5;cursor:not-allowed;}
.dd.locked:hover{transform:none;border-color:var(--line);}
.dd .lock{font-size:11px;color:var(--accent);margin-top:6px;}

/* ---------- audio ---------- */
.audio-row{display:flex;align-items:center;gap:14px;padding:13px 16px;border:1px solid var(--line);border-radius:11px;margin-bottom:8px;background:var(--carbon);}
.play{width:34px;height:34px;border-radius:50%;border:1px solid var(--accent);color:var(--accent);display:flex;align-items:center;justify-content:center;flex:0 0 auto;font-size:12px;}
.audio-row.soon{opacity:.5;}
.audio-row .alen{margin-left:auto;font-size:12px;color:var(--fog);}

/* ---------- tease ---------- */
.tease{border:1px dashed #3a3a3a;border-radius:var(--radius);padding:26px;text-align:center;background:linear-gradient(180deg,var(--carbon),transparent);}
.tease h3{font-family:var(--serif);font-size:22px;font-weight:400;margin-bottom:8px;}
.tease p{color:var(--ash);font-size:14px;margin-bottom:18px;}
.btn{display:inline-block;background:var(--accent);color:#000;font-weight:600;font-size:13px;letter-spacing:.08em;padding:12px 22px;border-radius:999px;text-transform:uppercase;}
.btn.ghost{background:transparent;color:var(--bone);border:1px solid var(--line);}

/* ---------- module detail ---------- */
.back{font-size:12px;color:var(--ash);letter-spacing:.08em;margin-bottom:18px;display:inline-block;}
.hero{height:200px;border-radius:var(--radius);background:
  radial-gradient(ellipse at 50% 30%, color-mix(in srgb,var(--accent) 22%,transparent), transparent 60%),
  linear-gradient(160deg,#1a1a1a,#0c0c0c);
  border:1px solid var(--line);display:flex;align-items:center;justify-content:center;margin-bottom:18px;position:relative;overflow:hidden;}
.hero .vid{width:64px;height:64px;border-radius:50%;border:1px solid var(--bone);display:flex;align-items:center;justify-content:center;font-size:18px;opacity:.85;}
.hero .vtag{position:absolute;bottom:12px;left:16px;font-size:11px;color:var(--ash);letter-spacing:.1em;}
.detail h1{font-size:28px;font-weight:600;margin-bottom:6px;}
.detail .body{color:#d8d8d8;font-size:15px;line-height:1.7;margin:18px 0;}
/* ---------- rendered module content (markdown store) ---------- */
.body.md{font-size:15.5px;line-height:1.75;}
.body.md h2,.body.md h3,.body.md h4,.body.md h5,.body.md h6{
  color:var(--bone);font-weight:600;line-height:1.3;letter-spacing:.005em;}
.body.md h2{font-size:21px;margin:30px 0 10px;padding-top:18px;border-top:1px solid var(--line);}
.body.md h3{font-size:17px;margin:22px 0 8px;color:var(--accent);}
.body.md h4{font-size:15px;margin:18px 0 6px;color:var(--copper-soft);}
.body.md h5,.body.md h6{font-size:13px;margin:14px 0 4px;color:var(--ash);text-transform:uppercase;letter-spacing:.08em;}
.body.md p{margin:0 0 14px;}
.body.md strong{color:var(--bone);font-weight:600;}
.body.md em{color:#e6e6e6;font-style:italic;}
.body.md ul,.body.md ol{margin:0 0 16px;padding-left:22px;}
.body.md li{margin:0 0 7px;}
.body.md ul li::marker{color:var(--accent);}
.body.md ol li::marker{color:var(--accent);font-weight:600;}
.body.md .md-box{color:var(--accent);font-size:15px;}
.body.md hr{border:none;border-top:1px solid var(--line);margin:24px 0;}
.body.md blockquote{
  margin:0 0 18px;padding:12px 16px;border-left:3px solid var(--accent);
  background:var(--carbon);border-radius:0 8px 8px 0;color:#c8c8c8;font-style:italic;}
.body.md blockquote p:last-child{margin-bottom:0;}
.body.md code{
  background:var(--charcoal);padding:2px 6px;border-radius:5px;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;color:var(--copper-soft);}
.body.md .md-pre{
  background:var(--charcoal);border:1px solid var(--line);border-radius:10px;
  padding:14px 16px;margin:0 0 20px;overflow-x:auto;}
.body.md .md-pre code{
  background:none;padding:0;border-radius:0;color:var(--bone);
  font-size:12.5px;line-height:1.5;white-space:pre;display:block;}
.body.md .md-tw{overflow-x:auto;margin:0 0 20px;border:1px solid var(--line);border-radius:10px;}
.body.md table{width:100%;border-collapse:collapse;font-size:13.5px;min-width:max-content;}
.body.md th,.body.md td{
  text-align:left;padding:9px 13px;border-bottom:1px solid var(--line);vertical-align:top;}
.body.md th{
  background:var(--carbon);color:var(--accent);font-weight:600;
  text-transform:uppercase;letter-spacing:.05em;font-size:11.5px;white-space:nowrap;}
.body.md tbody tr:last-child td{border-bottom:none;}
.body.md tbody tr:nth-child(even){background:rgba(255,255,255,.015);}
.complete{margin-top:8px;}

/* ---------- splash / landing / auth ---------- */
.splash{min-height:100vh;text-align:center;padding:0 22px 80px;
  background:radial-gradient(ellipse at 50% 35%, #16110c, var(--void) 62%);}
.splash .logo{font-weight:600;letter-spacing:.34em;font-size:34px;text-indent:.34em;margin-bottom:14px;}
.splash .logo .dot{color:var(--copper);}
.splash .slogan{font-family:var(--font);font-weight:400;letter-spacing:.42em;text-transform:lowercase;color:var(--ash);font-size:14px;}

/* hero */
.land-hero{min-height:92vh;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;}
.land-tagline{font-family:var(--serif);font-weight:400;font-size:38px;line-height:1.15;letter-spacing:.005em;
  margin:40px 0 18px;max-width:680px;}
@media(max-width:600px){.land-tagline{font-size:28px;}}
.land-sub{color:var(--ash);font-size:16px;line-height:1.6;max-width:560px;margin:0 auto;}
.land-cta{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-top:34px;}
.land-cta .btn{cursor:pointer;}
.land-scroll{position:absolute;bottom:26px;color:var(--fog);font-size:20px;animation:bob 2.4s infinite;}
@keyframes bob{0%,100%{transform:translateY(0);opacity:.5;}50%{transform:translateY(6px);opacity:1;}}

/* shared landing blocks */
.land-block{max-width:880px;margin:0 auto;padding:54px 0;border-top:1px solid var(--line);}
.land-eyebrow{font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:var(--copper-soft);margin-bottom:22px;}
.land-eyebrow.center{text-align:center;}
.land-lead{font-size:19px;line-height:1.7;color:#dcdcdc;max-width:720px;margin:0 auto;font-weight:300;}
@media(max-width:600px){.land-lead{font-size:17px;}}

/* three doors */
.doors{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;text-align:left;}
@media(max-width:760px){.doors{grid-template-columns:1fr;}}
.door{background:var(--carbon);border:1px solid var(--line);border-radius:var(--radius);padding:24px;}
.door-k{font-family:var(--serif);font-size:22px;margin-bottom:10px;color:var(--bone);}
.door p{font-size:14px;line-height:1.65;color:var(--ash);}

/* panic feature */
.panic-feature{border:1px solid #3a2620;border-radius:18px;padding:40px 30px;text-align:center;
  background:radial-gradient(ellipse at 50% 0%, rgba(232,93,58,.10), transparent 70%), var(--carbon);}
.pf-badge{display:inline-block;color:var(--ember);font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;margin-bottom:18px;}
.panic-feature h2{font-family:var(--serif);font-weight:400;font-size:30px;line-height:1.2;margin-bottom:16px;}
@media(max-width:600px){.panic-feature h2{font-size:24px;}}
.panic-feature p{color:var(--ash);font-size:16px;line-height:1.65;max-width:560px;margin:0 auto;}

/* feature grid */
.feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;text-align:left;}
@media(max-width:760px){.feat-grid{grid-template-columns:1fr;}}
.feat{background:var(--carbon);border:1px solid var(--line);border-radius:12px;padding:22px;transition:.16s;}
.feat:hover{border-color:#3a3a3a;transform:translateY(-2px);}
.feat-n{font-weight:600;font-size:16px;margin-bottom:8px;color:var(--bone);}
.feat-n::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--copper);margin-right:9px;vertical-align:middle;}
.feat p{font-size:13.5px;line-height:1.6;color:var(--ash);}
.tier-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;max-width:760px;width:100%;margin:0 auto;}
@media(max-width:760px){.tier-cards{grid-template-columns:1fr;}}
.tier-card{border:1px solid var(--line);border-radius:var(--radius);padding:26px 20px;cursor:pointer;transition:.18s;background:var(--carbon);text-align:left;}
.tier-card:hover{transform:translateY(-3px);border-color:var(--accent-c);}
.tier-card .nm{font-size:18px;font-weight:600;}
.tier-card .pr{font-size:13px;color:var(--ash);margin:6px 0 14px;}
.tier-card .desc{font-size:12.5px;color:var(--fog);line-height:1.55;}
.tier-card.up{--accent-c:var(--teal);} .tier-card.sh{--accent-c:var(--copper);} .tier-card.lv{--accent-c:var(--gold);}
.tier-card .tagc{display:inline-block;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent-c);margin-bottom:14px;}

/* ---------- panic overlay ---------- */
.overlay{position:fixed;inset:0;z-index:90;background:rgba(6,6,6,.96);backdrop-filter:blur(6px);overflow-y:auto;display:none;}
.overlay.on{display:block;}
.ov-inner{max-width:680px;margin:0 auto;padding:46px 24px 80px;}
.ov-close{position:fixed;top:20px;right:22px;font-size:26px;color:var(--ash);z-index:91;}
.ov-q{text-align:center;font-family:var(--serif);font-size:26px;font-weight:400;margin-bottom:30px;}
.panic-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;}
.panic-grid button{background:var(--carbon);border:1px solid var(--line);border-radius:12px;padding:22px;font-size:15px;font-weight:500;letter-spacing:.04em;transition:.15s;}
.panic-grid button:hover{border-color:var(--ember);color:#fff;background:#1a1110;}
.crisis{margin-top:14px;width:100%;background:var(--ember);color:#fff;font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-size:13px;padding:16px;border-radius:12px;}
.crisis-link{display:flex;flex-direction:column;gap:3px;background:var(--carbon);border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin-bottom:10px;transition:.15s;}
.crisis-link:hover{border-color:var(--ember);}
.crisis-link b{font-size:15px;letter-spacing:.02em;}
.crisis-link span{font-size:12.5px;color:var(--ash);}
.crisis-link.danger{background:var(--ember);border-color:var(--ember);color:#fff;}
.crisis-link.danger span{color:rgba(255,255,255,.85);}
.paywait{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);z-index:120;background:var(--carbon);border:1px solid var(--copper);border-radius:12px;padding:14px 22px;font-size:13.5px;letter-spacing:.03em;color:var(--bone);box-shadow:0 12px 40px rgba(0,0,0,.5);max-width:92vw;text-align:center;cursor:pointer;}
.proto h2{font-size:24px;font-weight:600;margin-bottom:4px;}
.proto .time{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--ember);margin-bottom:24px;}
.step{display:flex;gap:16px;margin-bottom:22px;}
.step .n{width:30px;height:30px;flex:0 0 auto;border-radius:50%;border:1px solid var(--ember);color:var(--ember);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;}
.step .h{font-weight:600;font-size:15px;margin-bottom:5px;}
.step .b{color:#cfcfcf;font-size:14px;line-height:1.6;}

/* ---------- footer note ---------- */
.seam{margin-top:50px;border:1px dashed #332b22;border-radius:12px;padding:16px 18px;font-size:12px;color:var(--fog);line-height:1.6;}
.seam b{color:var(--copper-soft);}
.hidden{display:none!important;}

/* ---------- logo mark + nav + new screens ---------- */
.brandmark{height:22px;width:auto;vertical-align:middle;margin-right:11px;margin-top:-3px;}
.splash{background:
  radial-gradient(ellipse at 50% 30%, rgba(181,114,60,.10), transparent 60%),
  radial-gradient(ellipse at 50% 35%, #16110c, var(--void) 62%);}

.shell{padding-bottom:120px;}
.botnav{position:fixed;left:0;right:0;bottom:0;z-index:50;display:flex;justify-content:center;gap:4px;
  padding:10px 8px calc(10px + env(safe-area-inset-bottom));background:rgba(10,10,10,.9);
  backdrop-filter:blur(16px);border-top:1px solid var(--line);}
.botnav button{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 14px;color:var(--fog);min-width:62px;}
.botnav button .ni{font-size:17px;line-height:1;}
.botnav button .nl{font-size:10px;letter-spacing:.06em;}
.botnav button.on{color:var(--accent);}

.cat-hero{height:230px;background-size:cover;background-position:center;
  margin:0 0 14px;position:relative;display:flex;align-items:flex-end;
  -webkit-mask-image:radial-gradient(130% 118% at 50% 42%, #000 46%, transparent 100%);
          mask-image:radial-gradient(130% 118% at 50% 42%, #000 46%, transparent 100%);}
.cat-hero::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 42%,rgba(10,10,10,.9)),
             linear-gradient(90deg,rgba(10,10,10,.55),transparent 22%,transparent 78%,rgba(10,10,10,.55));}
.ch-label{position:relative;z-index:2;font-family:var(--serif);font-size:34px;padding:18px 26px;}

.avatar{width:52px;height:52px;border-radius:50%;background:linear-gradient(160deg,var(--copper),#5e3c1f);
  display:flex;align-items:center;justify-content:center;font-weight:600;font-size:20px;color:#000;flex:0 0 auto;}
.pbar{height:6px;border-radius:99px;background:var(--charcoal);margin-top:16px;overflow:hidden;}
.pfill{height:100%;background:var(--accent);border-radius:99px;}

.ass-row{display:flex;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid var(--line);}
.ass-q{flex:1;font-size:14px;}
.ass-row input[type=range]{flex:1;accent-color:var(--accent);max-width:200px;}
.ass-val{width:26px;text-align:right;color:var(--accent);font-weight:600;}
.ass-score{display:flex;align-items:baseline;gap:8px;margin-bottom:18px;color:var(--ash);font-size:13px;}
.ass-score b{font-size:30px;color:var(--bone);}

.live-row{display:flex;align-items:center;gap:16px;padding:15px 18px;background:var(--carbon);border:1px solid var(--line);border-radius:12px;margin-bottom:8px;}
.live-day{width:54px;flex:0 0 auto;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);}

/* ---------- auth (live mode) ---------- */
.splash-login{margin-top:22px;font-size:13px;color:var(--ash);text-align:center;}
.splash-login a{color:var(--accent);cursor:pointer;text-decoration:underline;}
.auth-modal{position:fixed;inset:0;background:rgba(0,0,0,.82);backdrop-filter:blur(8px);
  display:none;align-items:center;justify-content:center;z-index:9999;padding:24px;}
.auth-modal.on{display:flex;}
.auth-card{width:100%;max-width:380px;background:var(--carbon);border:1px solid var(--line);
  border-radius:18px;padding:30px 26px;position:relative;}
.auth-card h3{font-size:20px;font-weight:600;margin:6px 0 18px;color:var(--bone);}
.auth-logo{font-weight:700;letter-spacing:.04em;color:var(--bone);font-size:15px;}
.auth-card input{width:100%;box-sizing:border-box;background:var(--void);border:1px solid var(--line);
  border-radius:10px;padding:13px 14px;margin-bottom:11px;color:var(--bone);font-size:15px;}
.auth-card input:focus{outline:none;border-color:var(--accent);}
.auth-card .btn{width:100%;margin-top:4px;}
.auth-err{color:var(--ember,#E85D3A);font-size:12.5px;min-height:16px;margin-bottom:6px;}
.auth-switch{margin-top:16px;font-size:13px;color:var(--ash);text-align:center;}
.auth-switch a{color:var(--accent);cursor:pointer;}
.auth-x{position:absolute;top:14px;right:16px;background:none;border:none;color:var(--ash);
  font-size:18px;cursor:pointer;}

/* ── Doorway to The Shift · for her ─────────────────────── */
.her-door{display:flex;flex-direction:column;align-items:center;gap:6px;
  max-width:420px;margin:30px auto 0;padding:20px 24px;text-align:center;
  border:1px solid var(--line);border-radius:14px;text-decoration:none;
  transition:border-color .2s, background .2s;}
.her-door:hover{border-color:#C08497;background:color-mix(in srgb,#C08497 7%,transparent);}
.her-door-lead{color:var(--ash);font-size:13.5px;letter-spacing:.02em;}
.her-door-cta{color:#C79AA6;font-family:var(--serif);font-size:19px;letter-spacing:.01em;}
.her-door:hover .her-door-cta{color:#D7AEB8;}

/* ---------- deep dive imagery (added 2026-07-13) ---------- */
.dd-hero{margin:6px 0 20px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);}
.dd-hero img{width:100%;display:block;aspect-ratio:3/2;object-fit:cover;}
.dd.hasimg{position:relative;background-size:cover;background-position:center;overflow:hidden;}
.dd.hasimg::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,10,10,.30) 0%,rgba(10,10,10,.92) 92%);z-index:0;}
.dd.hasimg .cat,.dd.hasimg .t,.dd.hasimg .lock{position:relative;z-index:1;}
.dd.hasimg .t{text-shadow:0 1px 6px rgba(0,0,0,.75);}
.dd.hasimg.locked::before{background:linear-gradient(180deg,rgba(10,10,10,.55) 0%,rgba(10,10,10,.94) 92%);}

/* ---------- landing flagship portrait (added 2026-07-13) ---------- */
/* grayscale cinematic portrait with dark edges, a radial vignette mask dissolves
   the rectangle into the page black so it reads as a gallery piece, not a boxed image. */
/* flagship hero, warmed into the page's copper palette + edges dissolved into black,
   so it reads as native page material. Wide crop on desktop, tall crop on mobile. */
.land-portrait{margin:24px auto 6px;position:relative;}
.land-portrait img{width:100%;display:block;
  filter:sepia(.5) saturate(1.45) hue-rotate(-12deg) brightness(.82) contrast(1.06);}
/* soft copper bloom behind the figure so it sits IN the page's warmth */
.land-portrait::after{content:"";position:absolute;inset:-6%;z-index:-1;pointer-events:none;
  background:radial-gradient(closest-side, rgba(181,114,60,.13), transparent 72%);}
/* desktop: wide cinematic, figure on the right, whole frame feathered into black */
@media(min-width:721px){
  .land-portrait{max-width:1180px;width:100%;}
  .land-portrait img{
    -webkit-mask-image:radial-gradient(76% 116% at 63% 48%, #000 30%, rgba(0,0,0,.35) 62%, transparent 86%);
    mask-image:radial-gradient(76% 116% at 63% 48%, #000 30%, rgba(0,0,0,.35) 62%, transparent 86%);}
}
/* mobile: full-bleed hero, fills the screen edge-to-edge, top+bottom fade into black */
@media(max-width:720px){
  .land-portrait{max-width:none;width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);margin-top:6px;margin-bottom:6px;}
  .land-portrait img{width:100vw;height:88vh;object-fit:cover;object-position:50% 38%;
    -webkit-mask-image:linear-gradient(to bottom, transparent 0%, #000 13%, #000 80%, transparent 100%);
    mask-image:linear-gradient(to bottom, transparent 0%, #000 13%, #000 80%, transparent 100%);}
  .land-portrait::after{display:none;}
}

/* ---------- small-screen topbar (added 2026-07-20) ---------- */
/* the brand must never wrap; pill + panic shrink before anything clips */
@media(max-width:480px){
  .topbar{padding:13px 14px;gap:10px;}
  .brand{font-size:13px;letter-spacing:.22em;text-indent:.22em;white-space:nowrap;}
  .tierpill{padding:4px 9px;font-size:10px;letter-spacing:.16em;}
  .panic-trigger{padding:8px 12px;font-size:11px;letter-spacing:.08em;}
  .right{gap:8px;}
}

/* ---------- back-to-app button (landing peek, added 2026-07-13) ---------- */
#backToApp{display:none;position:fixed;top:14px;left:50%;transform:translateX(-50%);z-index:5000;
  background:var(--copper);color:#0A0A0A;border:none;border-radius:999px;
  padding:9px 18px;font-size:13px;font-weight:600;letter-spacing:.02em;cursor:pointer;
  box-shadow:0 6px 20px rgba(0,0,0,.5);}
#backToApp:hover{background:var(--copper-soft);}
body.peeking #backToApp{display:block;}
