/* ============================================================
   Love Prescriptions — The Relationship Institute theme
   Palette (Institute):
     Concerto #D7D7D6 · Cloudy Sky #B7B8BB · Alaska Gray #595D66
     Cinereous #A08A81 (warm accent) · Blue Anthracite #272B36
     Playfair Display (serif display) + Inter (sans)
   Covers: landing page, tools hub, and a full restyle of the ported
   tool engine's .bp-* / .pd-* classes into the LP palette.
   ============================================================ */
:root {
  --bg:#edeae5; --bg-2:#e3ded5; --panel:#f7f5f1; --panel-2:#e9e4db;
  --line:#d7d7d6; --line-2:#b7b8bb;
  --text:#272b36; --text-2:#454a54; --muted:#595d66;
  --plum:#272b36; --plum-2:#333947;
  --on-dark:#d7d7d6; --on-dark-muted:rgba(237,234,229,0.74); --line-on-dark:rgba(237,234,229,0.16);
  --gold:#a08a81; --gold-2:#7d655c; --gold-soft:rgba(160,138,129,0.15);
  --blush:#a08a81; --blush-2:#8a7168;
  --radius:10px; --radius-lg:18px; --radius-pill:999px;
  --shadow-1:0 14px 44px rgba(39,43,54,0.10); --shadow-2:0 22px 64px rgba(39,43,54,0.18);
  --shadow-menu:0 26px 60px rgba(39,43,54,0.22);
  --serif:"Playfair Display","Cormorant Garamond",Georgia,serif;
  --sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --tracked:0.26em;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:64px; }
body { margin:0; font-family:var(--sans); background:var(--bg); color:var(--text); -webkit-font-smoothing:antialiased; line-height:1.65; }
h1,h2,h3,h4 { font-family:var(--serif); font-weight:500; color:var(--text); line-height:1.14; margin:0; }
h1 { font-size:clamp(2.4rem,5.5vw,4rem); letter-spacing:-0.015em; font-weight:400; }
h2 { font-size:clamp(1.9rem,3.6vw,2.8rem); letter-spacing:-0.012em; }
h3 { font-size:1.32rem; }
p { margin:0 0 1rem; }
em { font-style:italic; color:var(--gold-2); }
a { color:var(--gold-2); text-decoration:none; }
.mono { font-family:var(--sans); text-transform:uppercase; letter-spacing:var(--tracked); font-size:0.7rem; font-weight:600; }
.eyebrow { color:var(--gold-2); }
.rule { display:block; width:48px; height:1px; background:var(--gold); margin:1.2rem 0; }
.rule.center { margin:1.2rem auto; }
.wrap { max-width:1120px; margin:0 auto; }
section { padding:clamp(1.4rem,3.2vw,2.8rem) clamp(1.2rem,5vw,3.5rem); } /* vertical -60%: was 3.5-7rem */

button { font-family:var(--sans); font-size:0.92rem; font-weight:600; letter-spacing:0.01em; padding:0.9rem 1.8rem; border:none; border-radius:var(--radius-pill); background:var(--gold); color:#fff; cursor:pointer; display:inline-flex; align-items:center; gap:0.4rem; transition:transform .18s ease, background-color .25s ease, box-shadow .25s ease; box-shadow:0 10px 26px rgba(160,138,129,0.30); }
button:hover { background:var(--gold-2); transform:translateY(-2px); }
button.outline-light { background:transparent; color:var(--on-dark); border:1px solid rgba(237,234,229,0.55); box-shadow:none; }
button.outline-light:hover { background:rgba(237,234,229,0.10); border-color:var(--gold); color:#fff; }
button.outline-dark { background:transparent; color:var(--text); box-shadow:none; border:1px solid var(--line-2); }
button.outline-dark:hover { background:var(--bg-2); border-color:var(--gold); color:var(--gold-2); }
button.small { padding:0.62rem 1.25rem; font-size:0.82rem; box-shadow:none; }
.btn-row { display:flex; flex-wrap:wrap; gap:0.9rem; margin-top:1.7rem; }

/* ---------- loading / error / toast ---------- */
.lp-loading { text-align:center; padding:6rem 1rem; color:var(--muted); font-size:0.9rem; }
.lp-error { max-width:560px; margin:6rem auto; text-align:center; background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-lg); padding:2.5rem; }
#toast { position:fixed; bottom:24px; left:50%; transform:translateX(-50%) translateY(20px); background:var(--plum); color:var(--on-dark); padding:0.8rem 1.3rem; border-radius:var(--radius-pill); font-size:0.85rem; opacity:0; pointer-events:none; transition:opacity .25s, transform .25s; z-index:200; }
#toast.show { opacity:1; transform:translateX(-50%) translateY(0); }

/* ============ TOP BAR + MENUS ============ */
.topbar { position:sticky; top:0; z-index:60; display:flex; align-items:center; justify-content:space-between; padding:0.9rem clamp(1.2rem,5vw,3.5rem); background:rgba(39,40,54,0.94); backdrop-filter:blur(10px); border-bottom:1px solid var(--line-on-dark); }
.brand { display:flex; flex-direction:row; align-items:center; gap:0.8rem; line-height:1; text-decoration:none; flex-shrink:0; }
.brand-crest { flex:0 0 auto; display:block; }
.brand-text { display:flex; flex-direction:column; }
.brand-footer { display:flex; flex-direction:row; align-items:center; gap:0.6rem; }
.brand-word { font-family:var(--serif); font-size:1.22rem; font-weight:600; letter-spacing:0.05em; text-transform:uppercase; color:var(--on-dark); }
.brand-word .dot { color:var(--gold); }
.brand-tag { font-family:var(--sans); text-transform:uppercase; letter-spacing:0.24em; font-size:0.5rem; font-weight:500; color:var(--gold); margin-top:0.42rem; }
/* 3-line lockup matching the hero logo format:
   shield spans the two wordmark lines; LOVE (large) letter-spread to match
   PRESCRIPTIONS width; THE RELATIONSHIP INSTITUTE justified from under the
   shield to the end of PRESCRIPTIONS. */
.brand--stack { display:inline-flex; flex-direction:column; align-items:flex-start; gap:0; }
.brand--stack .brand-top { display:flex; flex-direction:row; align-items:flex-end; gap:0.5rem; }
.brand--stack .brand-crest { flex:0 0 auto; height:2.7rem; width:auto; display:block; }
.brand--stack .brand-words { display:flex; flex-direction:column; align-items:stretch; }
.brand--stack .brand-love { display:flex; justify-content:space-between; font-family:var(--serif); font-weight:500; text-transform:uppercase; color:var(--on-dark); font-size:1.95rem; line-height:0.8; }
.brand--stack .brand-love span { display:block; }
.brand--stack .brand-presc { font-family:var(--serif); font-weight:500; text-transform:uppercase; color:var(--on-dark); font-size:0.76rem; letter-spacing:0.02em; white-space:nowrap; line-height:1; margin-top:0.12rem; }
.brand--stack .brand-tag--stretch { align-self:stretch; text-align:center; text-transform:uppercase; font-family:var(--sans); font-weight:500; font-size:0.56rem; letter-spacing:0.02em; word-spacing:-0.09em; color:#B7B8BB; line-height:1; margin-top:0.32rem; }
.topnav { display:flex; align-items:center; gap:0.4rem; }
.nav-item { position:relative; }
.nav-link { background:none; border:none; box-shadow:none; cursor:pointer; font-family:var(--sans); color:var(--on-dark-muted); font-size:0.98rem; font-weight:500; letter-spacing:0.02em; padding:0.6rem 0.9rem; display:inline-flex; align-items:center; gap:0.35rem; border-radius:var(--radius-pill); transition:color .2s, background-color .2s; }
.nav-link:hover, .nav-item.open .nav-link { color:var(--gold); background:rgba(237,234,229,0.06); transform:none; }
.nav-link .caret { font-size:0.6rem; opacity:0.8; transition:transform .2s; }
.nav-item.open .nav-link .caret { transform:rotate(180deg); }
.nav-actions { display:flex; align-items:center; gap:0.8rem; margin-left:0.6rem; }
.nav-login { color:var(--on-dark); font-size:0.98rem; font-weight:500; padding:0.5rem 0.4rem; }
.nav-login:hover { color:var(--gold); }
.nav-collapse { display:contents; }
.nav-toggle { display:none; background:none; border:none; cursor:pointer; padding:0.4rem; margin-left:auto; border-radius:var(--radius); }
.nav-toggle-bars { display:block; width:24px; height:16px; position:relative; }
.nav-toggle-bars span { position:absolute; left:0; right:0; height:2px; background:var(--on-dark); border-radius:2px; transition:transform .25s ease, opacity .2s ease, top .25s ease; }
.nav-toggle-bars span:nth-child(1) { top:0; }
.nav-toggle-bars span:nth-child(2) { top:7px; }
.nav-toggle-bars span:nth-child(3) { top:14px; }
body.nav-open .nav-toggle-bars span:nth-child(1) { top:7px; transform:rotate(45deg); }
body.nav-open .nav-toggle-bars span:nth-child(2) { opacity:0; }
body.nav-open .nav-toggle-bars span:nth-child(3) { top:7px; transform:rotate(-45deg); }
.menu { position:absolute; top:calc(100% + 12px); left:0; background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-lg); box-shadow:var(--shadow-menu); padding:1.1rem; min-width:300px; opacity:0; visibility:hidden; transform:translateY(8px); transition:opacity .2s ease, transform .2s ease, visibility .2s; }
.nav-item.open .menu { opacity:1; visibility:visible; transform:translateY(0); }
.menu::before { content:""; position:absolute; top:-6px; left:26px; width:12px; height:12px; background:var(--panel); border-left:1px solid var(--line); border-top:1px solid var(--line); transform:rotate(45deg); }
.menu.mega { min-width:560px; display:grid; grid-template-columns:1fr 1fr; gap:0.4rem 1.4rem; }
.menu-label { grid-column:1 / -1; color:var(--gold-2); text-transform:uppercase; letter-spacing:0.16em; font-size:0.6rem; font-weight:700; padding:0.2rem 0.7rem 0.5rem; }
.menu a.mrow { display:flex; gap:0.75rem; align-items:flex-start; padding:0.6rem 0.7rem; border-radius:var(--radius); color:var(--text); transition:background-color .18s; }
.menu a.mrow:hover { background:var(--bg-2); }
.mrow .ic { flex-shrink:0; width:30px; height:30px; border-radius:8px; background:var(--gold-soft); color:var(--gold-2); display:inline-flex; align-items:center; justify-content:center; font-size:0.95rem; }
.mrow .mt { font-weight:600; font-size:0.86rem; color:var(--text); display:block; }
.mrow .md { font-size:0.76rem; color:var(--muted); display:block; margin-top:1px; line-height:1.4; }
@media (max-width:900px){
  .nav-toggle { display:inline-flex; align-items:center; justify-content:center; }
  .nav-collapse { display:none; position:fixed; top:var(--topbar-h,60px); left:0; right:0; z-index:59; flex-direction:column; align-items:stretch; gap:0.35rem; max-height:calc(100dvh - var(--topbar-h,60px)); overflow-y:auto; padding:0.75rem 1.1rem 1.4rem; background:rgba(39,40,54,0.98); backdrop-filter:blur(10px); border-bottom:1px solid var(--line-on-dark); box-shadow:var(--shadow-menu); }
  body.nav-open .nav-collapse { display:flex; }
  .topnav { flex-direction:column; align-items:stretch; gap:0; width:100%; }
  .nav-item { position:static; border-bottom:1px solid var(--line-on-dark); }
  .nav-link { width:100%; justify-content:space-between; font-size:1rem; padding:0.9rem 0.4rem; color:var(--on-dark); }
  .menu, .menu.mega { position:static; opacity:1; visibility:visible; transform:none; display:none; min-width:0; border:none; box-shadow:none; background:transparent; padding:0 0 0.6rem 0.4rem; }
  .nav-item.open .menu, .nav-item.open .menu.mega { display:block; }
  .menu::before { display:none; }
  .menu-label { color:var(--on-dark-muted); padding-top:0; }
  .menu a.mrow { color:var(--on-dark); }
  .menu a.mrow:hover { background:rgba(237,234,229,0.06); }
  .mrow .mt { color:var(--on-dark); }
  .mrow .md { color:var(--on-dark-muted); }
  .nav-actions { flex-direction:column; align-items:stretch; gap:0.6rem; margin-left:0; padding-top:0.8rem; }
  .nav-actions .small { width:100%; }
  .nav-login { display:block; color:var(--on-dark); padding:0.6rem 0.4rem; }
}

/* ---------- HERO (Institute split) ---------- */
.hero { position:relative; overflow:hidden; background:var(--bg); padding:clamp(2.2rem,5vw,4rem) clamp(1.2rem,5vw,3.5rem) clamp(3rem,6vw,5rem); }
.hero-split { max-width:1180px; margin:0 auto; display:grid; grid-template-columns:minmax(300px,0.9fr) 1.1fr; gap:clamp(1.8rem,4vw,3.5rem); align-items:stretch; }
.hero-figure { margin:0; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-2); background:var(--plum); min-height:420px; }
.hero-figure img { display:block; width:100%; height:100%; object-fit:cover; }
.hero-inner { align-self:center; max-width:560px; }
.hero-eyebrow { color:var(--gold-2); letter-spacing:var(--tracked); text-transform:uppercase; font-size:0.7rem; font-weight:600; margin-bottom:1.1rem; }
.hero-eyebrow::before { content:""; display:inline-block; width:26px; height:1px; background:var(--gold); vertical-align:middle; margin-right:0.7rem; }
.hero h1, .hero-head { color:var(--text); font-family:var(--serif); font-weight:500; line-height:1.14; font-size:clamp(2.1rem,4.2vw,3.3rem); margin:0; }
.hero-head em, .hero h1 em { color:var(--gold-2); font-style:italic; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.lede { color:var(--text-2); font-size:1.08rem; max-width:520px; margin:1.4rem 0 0; }
.hero .btn-row { justify-content:flex-start; }
.count-strip { display:flex; flex-wrap:wrap; gap:clamp(1.5rem,5vw,3.5rem); margin-top:2.6rem; padding-top:1.8rem; border-top:1px solid var(--line-2); }
.count { text-align:left; }
.count b { display:block; font-family:var(--serif); font-size:2rem; color:var(--gold-2); font-weight:600; }
.count span { font-size:0.68rem; color:var(--muted); letter-spacing:0.14em; text-transform:uppercase; }
@media (max-width:860px){
  .hero-split { grid-template-columns:1fr; }
  .hero-figure { min-height:340px; max-height:460px; }
  .hero-inner { max-width:none; }
}

/* ---------- WHY ---------- */
.why-inner { display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,4.5rem); align-items:start; }
@media (max-width:860px){ .why-inner { grid-template-columns:1fr; } }
.why-lead p { color:var(--text-2); }
.why-lead h2 em { color:var(--gold-2); }
.exp-item { display:flex; gap:1.1rem; padding:1.3rem 0; border-bottom:1px solid var(--line); }
.exp-item:last-child { border-bottom:none; }
.exp-num { font-family:var(--serif); font-size:1.05rem; color:var(--gold-2); font-weight:600; min-width:2ch; }
.exp-item h3 { font-size:1.08rem; margin-bottom:0.3rem; }
.exp-item p { color:var(--muted); font-size:0.94rem; margin:0; }

/* ---------- CYCLE ---------- */
.cycle { background:radial-gradient(100% 120% at 100% 0%, rgba(160,138,129,0.18), transparent 52%), linear-gradient(150deg,#272b36,#333947); color:var(--on-dark); text-align:center; }
.cycle h2 { color:var(--on-dark); } .cycle h2 em { color:var(--gold); }
.cycle .lede2 { color:var(--on-dark-muted); max-width:600px; margin:1rem auto 0; }
.cycle-flow { display:flex; flex-wrap:wrap; justify-content:center; align-items:stretch; gap:0.6rem; margin-top:3rem; }
.cyc { background:rgba(237,234,229,0.05); border:1px solid var(--line-on-dark); border-radius:var(--radius); padding:1.1rem 1.2rem; min-width:150px; flex:1 1 150px; max-width:190px; text-align:left; }
.cyc b { font-family:var(--serif); font-weight:500; font-size:1.05rem; color:var(--gold); display:block; margin-bottom:0.3rem; }
.cyc span { font-size:0.8rem; color:var(--on-dark-muted); }
.cyc-arrow { align-self:center; color:var(--gold); font-size:1.1rem; }
.cycle-flow--3 { max-width:860px; margin-left:auto; margin-right:auto; gap:0.9rem; }
.cycle-flow--3 .cyc { flex:1 1 200px; max-width:260px; padding:1.4rem 1.4rem; }
.cycle-flow--3 .cyc b { font-size:1.3rem; }
.cycle-flow--3 .cyc span { font-size:0.9rem; line-height:1.55; }
@media (max-width:720px){ .cyc-arrow { display:none; } .cyc { max-width:none; } }

/* ---------- LAB / sec-head ---------- */
.lab { background:var(--bg-2); }
.sec-head { text-align:center; margin-bottom:3rem; }
.sec-head h2 em { color:var(--gold-2); }
.lab-cols { display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem; }
@media (max-width:860px){ .lab-cols { grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .lab-cols { grid-template-columns:1fr; } }
.lab-col { background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-lg); padding:1.9rem 1.5rem; box-shadow:var(--shadow-1); transition:transform .2s, box-shadow .2s; }
.lab-col:hover { transform:translateY(-4px); box-shadow:var(--shadow-2); }
.lab-icon { width:44px; height:44px; border-radius:12px; background:var(--gold-soft); color:var(--gold-2); display:inline-flex; align-items:center; justify-content:center; font-size:1.25rem; margin-bottom:1rem; }
.lab-col h3 { font-size:1.1rem; margin-bottom:0.5rem; }
.lab-col p { color:var(--muted); font-size:0.9rem; margin:0; }

/* ---------- WAYS TO GROW (paths) ---------- */
.paths { display:grid; grid-template-columns:repeat(3,1fr); gap:1.3rem; }
@media (max-width:860px){ .paths { grid-template-columns:1fr; } }
.path { background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-lg); padding:1.9rem 1.6rem; box-shadow:var(--shadow-1); transition:transform .2s, box-shadow .2s; }
.path:hover { transform:translateY(-4px); box-shadow:var(--shadow-2); }
.path .peyebrow { color:var(--gold-2); text-transform:uppercase; letter-spacing:0.16em; font-size:0.62rem; font-weight:700; margin-bottom:0.5rem; }
.path h3 { font-size:1.16rem; margin-bottom:0.55rem; }
.path p { color:var(--muted); font-size:0.9rem; margin:0 0 0.9rem; }
.path a.learn { font-size:0.82rem; font-weight:600; color:var(--gold-2); }
.path a.learn:hover { color:var(--gold); }

/* ---------- PRICING ---------- */
.pricing { background:var(--bg-2); }
.price-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; align-items:stretch; }
@media (max-width:860px){ .price-grid { grid-template-columns:1fr; } }
.price-card { border-radius:var(--radius-lg); padding:2.2rem 1.9rem; display:flex; flex-direction:column; }
.price-a, .price-c { background:var(--panel); border:1px solid var(--line); box-shadow:var(--shadow-1); }
.price-b { background:linear-gradient(155deg,#333947,#272b36); color:var(--on-dark); position:relative; box-shadow:var(--shadow-2); }
.price-badge { position:absolute; top:1.3rem; right:1.4rem; font-size:0.58rem; letter-spacing:0.14em; text-transform:uppercase; font-weight:700; color:var(--plum); background:var(--gold); padding:0.3rem 0.6rem; border-radius:var(--radius-pill); }
.price-tier { text-transform:uppercase; letter-spacing:0.16em; font-size:0.64rem; font-weight:700; color:var(--gold-2); }
.price-b .price-tier { color:var(--gold); }
.price-amt { font-family:var(--serif); font-size:2.4rem; font-weight:500; margin:0.5rem 0 0.1rem; }
.price-b .price-amt { color:var(--on-dark); }
.price-per { font-size:0.8rem; color:var(--muted); }
.price-b .price-per { color:var(--on-dark-muted); }
.price-desc { font-size:0.9rem; color:var(--muted); margin:0.9rem 0 1.1rem; }
.price-b .price-desc { color:var(--on-dark-muted); }
.checks { list-style:none; padding:0; margin:0 0 1.4rem; flex-grow:1; }
.checks li { display:flex; align-items:flex-start; gap:0.6rem; padding:0.4rem 0; font-size:0.9rem; color:var(--text); }
.price-b .checks li { color:var(--on-dark); }
.ck { color:var(--gold-2); font-weight:700; }
.price-b .ck { color:var(--gold); }
.price-card button { width:100%; justify-content:center; }

/* ---------- PROOF ---------- */
.proof { text-align:center; }
.proof-quote { font-family:var(--serif); font-style:italic; font-size:clamp(1.2rem,2.6vw,1.7rem); color:var(--text-2); max-width:680px; margin:0 auto 1.4rem; }
.proof h2 em { color:var(--gold-2); }
.markers { display:flex; flex-wrap:wrap; justify-content:center; gap:0.7rem; margin-top:1.8rem; }
.marker { border:1px solid var(--line-2); border-radius:var(--radius-pill); padding:0.5rem 1.1rem; font-size:0.82rem; color:var(--gold-2); background:var(--panel); }

/* ---------- ASSESS CTA ---------- */
.assess { text-align:center; background:radial-gradient(90% 120% at 50% 0%, rgba(160,138,129,0.2), transparent 55%), linear-gradient(150deg,#272b36,#2e333f); color:var(--on-dark); }
.assess h2 { color:var(--on-dark); } .assess h2 em { color:var(--gold); }
.assess p { color:var(--on-dark-muted); max-width:560px; margin:1rem auto 0; }
.assess .btn-row { justify-content:center; }
.assess-note { color:var(--on-dark-muted); font-size:0.78rem; letter-spacing:0.05em; margin-top:1rem; }

/* ---------- FOOTER ---------- */
.footer { background:#272836; color:var(--on-dark-muted); padding:3rem clamp(1.2rem,5vw,3.5rem) 2rem; border-top:1px solid var(--line-on-dark); }
.footer-grid { max-width:1120px; margin:0 auto; display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:2rem; }
@media (max-width:780px){ .footer-grid { grid-template-columns:1fr 1fr; } }
.footer h4 { color:var(--on-dark); font-family:var(--sans); text-transform:uppercase; letter-spacing:0.16em; font-size:0.62rem; font-weight:700; margin-bottom:0.9rem; }
.footer .brand-word { font-size:1.3rem; }
.footer p { font-size:0.82rem; color:var(--on-dark-muted); max-width:260px; margin-top:0.8rem; }
.footer ul { list-style:none; padding:0; margin:0; }
.footer li { margin:0.45rem 0; }
.footer a { color:var(--on-dark-muted); font-size:0.84rem; }
.footer a:hover { color:var(--gold); }
.footer-base { max-width:1120px; margin:2rem auto 0; padding-top:1.4rem; border-top:1px solid var(--line-on-dark); font-size:0.7rem; letter-spacing:0.14em; text-transform:uppercase; }

/* ============ TOOLS HUB ============ */
.lp-hub-hero { text-align:center; background:radial-gradient(100% 120% at 50% 0%, rgba(160,138,129,0.16), transparent 55%), var(--bg); padding-bottom:2.5rem; }
.lp-hub-hero h1 em { color:var(--gold-2); }
.lp-hub-lede { color:var(--text-2); max-width:600px; margin:1.2rem auto 0; }
.lp-hub { background:var(--bg-2); }
.lp-tool-group { margin-bottom:2.6rem; }
.lp-group-label { color:var(--gold-2); text-transform:uppercase; letter-spacing:0.16em; font-size:0.66rem; font-weight:700; margin-bottom:1rem; }
.lp-tool-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.3rem; }
@media (max-width:860px){ .lp-tool-grid { grid-template-columns:1fr; } }
.lp-tool-card { display:flex; flex-direction:column; background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-lg); padding:1.8rem 1.6rem; box-shadow:var(--shadow-1); transition:transform .2s, box-shadow .2s, border-color .2s; }
.lp-tool-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-2); border-color:var(--line-2); }
.lp-tool-diamond { color:var(--gold); font-size:1.2rem; margin-bottom:0.7rem; }
.lp-tool-card h3 { font-size:1.14rem; margin-bottom:0.5rem; color:var(--text); }
.lp-tool-card p { color:var(--muted); font-size:0.88rem; margin:0 0 1.1rem; flex-grow:1; }
.lp-tool-go { color:var(--gold-2); font-size:0.82rem; font-weight:600; }
.lp-learn-head { margin-bottom:1.4rem; }
.lp-learn-sub { color:var(--text-2); font-size:0.92rem; max-width:640px; margin:0; }
.lp-course-tag { display:inline-block; align-self:flex-start; background:var(--gold-soft); color:var(--gold-2); border:1px solid var(--line-2); border-radius:var(--radius-pill); padding:0.2rem 0.7rem; font-size:0.6rem; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; margin-bottom:0.7rem; }
.lp-course-soon { color:var(--muted); font-size:0.8rem; font-weight:600; }

/* About us — mission page + founder & team bios */
.lp-about { background:var(--bg-2); }
.lp-prose-card { background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-lg); padding:2.6rem 2.4rem; box-shadow:var(--shadow-1); }
.lp-prose p { color:var(--text-2); font-size:1.02rem; margin:0 0 1.15rem; }
.lp-prose p:last-child { margin-bottom:0; }
.lp-prose-accent { font-family:var(--serif); font-style:italic; color:var(--text); font-size:1.14rem; margin:1.4rem 0 !important; }
@media (max-width:620px){ .lp-prose-card { padding:1.8rem 1.4rem; } }
.lp-about-wrap { max-width:820px; }
.lp-bio { background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-lg); padding:2.6rem 2.4rem; box-shadow:var(--shadow-1); }
.lp-bio::after { content:""; display:block; clear:both; }
.lp-bio + .lp-bio { margin-top:1.8rem; }
.lp-bio-portrait { float:left; width:210px; margin:0.3rem 1.8rem 1.2rem 0; }
.lp-bio-portrait img { display:block; width:100%; height:auto; border-radius:var(--radius-lg); border:1px solid var(--line); box-shadow:var(--shadow-1); }
@media (max-width:620px){ .lp-bio-portrait { float:none; width:200px; margin:0 auto 1.4rem; } }
.lp-bio-head { margin-bottom:1.4rem; }
.lp-bio-name { font-size:clamp(1.5rem,3vw,2rem); color:var(--text); margin:0; }
.lp-bio-creds { display:block; font-family:var(--sans); font-size:0.7rem; font-weight:600; letter-spacing:0.16em; text-transform:uppercase; color:var(--gold-2); margin-top:0.5rem; }
.lp-bio-role { color:var(--muted); font-size:0.95rem; font-weight:500; margin:0.6rem 0 0; }
.lp-bio-body p { color:var(--text-2); font-size:1.02rem; margin:0 0 1.15rem; }
.lp-bio-body p:last-child { margin-bottom:0; }
.lp-bio-pull { font-family:var(--serif); font-style:italic; font-size:1.2rem; color:var(--text); border-left:2px solid var(--gold); padding-left:1.1rem; margin:1.5rem 0 !important; }
@media (max-width:620px){ .lp-bio { padding:1.8rem 1.4rem; } }

/* persistent exit on tool screens */
#lp-exit { display:none; position:fixed; top:18px; left:18px; z-index:120; background:var(--panel); border:1px solid var(--line-2); color:var(--gold-2); font-size:0.8rem; font-weight:600; padding:0.5rem 1rem; border-radius:var(--radius-pill); box-shadow:var(--shadow-1); }
#lp-exit:hover { background:var(--bg-2); border-color:var(--gold); }
/* #lp-exit is superseded by the global header (kept hidden for backward-compat). */

/* ---------- unsaved-changes modal ---------- */
.lp-modal-overlay { position:fixed; inset:0; z-index:200; display:flex; align-items:center; justify-content:center; padding:1.2rem; background:rgba(11,20,38,0.55); backdrop-filter:blur(3px); animation:lp-modal-fade .16s ease; }
.lp-modal { background:var(--panel); color:var(--text); border:1px solid var(--line); border-radius:var(--radius-lg); box-shadow:var(--shadow-menu); width:min(440px,100%); padding:1.6rem 1.5rem 1.4rem; animation:lp-modal-pop .18s ease; }
.lp-modal h2 { font-family:var(--serif); font-size:1.35rem; font-weight:500; margin:0 0 0.5rem; }
.lp-modal p { font-size:0.9rem; color:var(--muted); margin:0 0 1.3rem; line-height:1.6; }
.lp-modal-actions { display:flex; flex-direction:column; gap:0.55rem; }
.lp-modal-btn { width:100%; padding:0.75rem 1rem; border-radius:var(--radius-pill); border:1px solid var(--line-2); background:var(--bg-2); color:var(--text); font-family:var(--sans); font-size:0.9rem; font-weight:600; cursor:pointer; transition:background-color .18s, border-color .18s, color .18s; }
.lp-modal-btn:hover { border-color:var(--gold); }
.lp-modal-btn.primary { background:var(--gold); border-color:var(--gold); color:#2a1e12; }
.lp-modal-btn.primary:hover { filter:brightness(1.05); }
.lp-modal-btn.ghost { background:transparent; border-color:transparent; color:var(--muted); }
.lp-modal-btn.ghost:hover { color:var(--text); border-color:var(--line-2); }
@keyframes lp-modal-fade { from { opacity:0; } to { opacity:1; } }
@keyframes lp-modal-pop { from { opacity:0; transform:translateY(8px) scale(0.98); } to { opacity:1; transform:none; } }

/* ============================================================
   TOOL ENGINE — .bp-* / .pd-* restyled to the LP palette.
   (Original was a dark cream-on-charcoal theme; here it's warm
   ivory with plum ink and champagne gold accents.)
   ============================================================ */
.bp { min-height:100vh; background:var(--bg); color:var(--text); max-width:760px; margin:0 auto; padding:clamp(4rem,8vw,6rem) clamp(1.2rem,5vw,2rem) 5rem; }
.bp-landing { text-align:center; max-width:640px; margin:0 auto; }
.bp-meta-line { font-family:var(--sans); text-transform:uppercase; letter-spacing:var(--tracked); font-size:0.7rem; font-weight:600; color:var(--gold-2); margin-bottom:1.2rem; }
.bp-landing h1 { font-size:clamp(2rem,4.5vw,3rem); margin-bottom:0.4rem; }
.bp-rule { width:48px; height:1px; background:var(--gold); margin:1.4rem 0; }
.bp-sub { color:var(--text-2); font-size:1.05rem; max-width:520px; margin:0 auto 1.6rem; }
.bp-card { background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-lg); padding:1.6rem 1.5rem; box-shadow:var(--shadow-1); text-align:left; margin:0 auto 1.8rem; max-width:480px; }
.bp-card .eyebrow { display:block; color:var(--gold-2); text-transform:uppercase; letter-spacing:0.16em; font-size:0.62rem; font-weight:700; margin-bottom:0.8rem; }
.bp-expect { display:flex; gap:0.6rem; align-items:flex-start; padding:0.35rem 0; font-size:0.92rem; color:var(--text-2); }
.bp-expect .ck { color:var(--gold); font-weight:700; }
.bp-btn-primary { background:var(--gold); color:#fff; border:none; border-radius:var(--radius-pill); font-family:var(--sans); font-size:0.92rem; font-weight:600; padding:0.95rem 2rem; cursor:pointer; box-shadow:0 10px 26px rgba(160,138,129,0.30); transition:transform .18s, background-color .25s; }
.bp-btn-primary:hover { background:var(--gold-2); transform:translateY(-2px); }

/* progress + topbars */
.bp-progress { position:fixed; top:0; left:0; right:0; height:4px; background:var(--line); z-index:100; }
.bp-progress > div { height:100%; background:var(--gold); transition:width .3s ease; }
.bp-topbar { display:flex; align-items:center; justify-content:space-between; margin:-1.5rem 0 2rem; }
.bp-topbar-right .meta, .bp-topbar .meta { font-size:0.78rem; color:var(--muted); letter-spacing:0.08em; }
.bp-link-btn { background:none; border:none; box-shadow:none; color:var(--gold-2); font-family:var(--sans); font-size:0.82rem; font-weight:600; cursor:pointer; padding:0.4rem 0.2rem; }
.bp-link-btn:hover { color:var(--gold); background:none; transform:none; }
.bp-results-topbar { display:flex; justify-content:flex-end; margin:-1.5rem 0 1rem; }

/* question view */
.bp-qwrap { min-height:50vh; display:flex; align-items:center; }
.bp-qinner { width:100%; }
.bp-q-purpose { color:var(--gold-2); text-transform:uppercase; letter-spacing:0.16em; font-size:0.64rem; font-weight:700; margin-bottom:0.8rem; }
.bp-q-text { font-family:var(--serif); font-size:clamp(1.4rem,3vw,1.9rem); line-height:1.3; color:var(--text); margin-bottom:1.8rem; }
.bp-q-hint { color:var(--muted); font-size:0.85rem; margin-top:-1rem; margin-bottom:1.4rem; }

/* likert (pd-) */
.pd-likert { display:flex; flex-direction:column; gap:0.6rem; }
.pd-likert-row { display:flex; align-items:center; gap:0.9rem; width:100%; text-align:left; background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:0.95rem 1.1rem; cursor:pointer; box-shadow:none; color:var(--text); font-weight:500; transition:border-color .15s, background-color .15s, transform .1s; }
.pd-likert-row:hover { border-color:var(--line-2); background:var(--panel-2); transform:none; }
.pd-likert-row.sel { border-color:var(--gold); background:var(--gold-soft); }
.pd-radio { width:16px; height:16px; border-radius:50%; border:2px solid var(--line-2); flex-shrink:0; transition:border-color .15s, background-color .15s; }
.pd-likert-row.sel .pd-radio { border-color:var(--gold); background:var(--gold); box-shadow:inset 0 0 0 3px var(--panel); }
.pd-likert-label { flex-grow:1; font-size:0.95rem; }
.pd-likert-num { color:var(--muted); font-size:0.8rem; font-variant-numeric:tabular-nums; }

/* choice / checkbox options (bp-) */
.bp-options { display:flex; flex-direction:column; gap:0.6rem; }
.bp-options.pd-check-grid { display:grid; grid-template-columns:1fr 1fr; }
@media (max-width:560px){ .bp-options.pd-check-grid { grid-template-columns:1fr; } }
.bp-option { text-align:left; background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:0.95rem 1.1rem; cursor:pointer; box-shadow:none; color:var(--text); font-weight:500; font-size:0.95rem; transition:border-color .15s, background-color .15s; }
.bp-option:hover { border-color:var(--line-2); background:var(--panel-2); transform:none; }
.bp-option.sel { border-color:var(--gold); background:var(--gold-soft); color:var(--gold-2); }

/* textarea */
.pd-textarea { width:100%; background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:1rem 1.1rem; font-family:var(--sans); font-size:0.98rem; color:var(--text); resize:vertical; }
.pd-textarea:focus { outline:none; border-color:var(--gold); box-shadow:0 0 0 3px var(--gold-soft); }

/* generating */
.bp-generating { min-height:60vh; display:flex; align-items:center; justify-content:center; color:var(--text-2); }
.bp-spinner { width:38px; height:38px; border:3px solid var(--line); border-top-color:var(--gold); border-radius:50%; margin:0 auto 1.2rem; animation:bpspin 0.8s linear infinite; }
@keyframes bpspin { to { transform:rotate(360deg); } }

/* results */
.bp-results { max-width:640px; margin:0 auto; }
.bp-res-eyebrow { color:var(--gold-2); text-transform:uppercase; letter-spacing:var(--tracked); font-size:0.68rem; font-weight:700; margin-bottom:0.6rem; text-align:center; }
.bp-res-title { font-size:clamp(1.9rem,4vw,2.6rem); text-align:center; }
.bp-res-sub { color:var(--text-2); text-align:center; max-width:540px; margin:0.9rem auto 0; }
.bp-results .bp-rule { margin:1.6rem auto; }
.bp-retake-row { text-align:center; margin-top:2.4rem; }

/* result sections + report blocks */
.bp-section { background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-lg); padding:1.6rem 1.5rem; box-shadow:var(--shadow-1); }
.bp-block.heading { font-family:var(--serif); font-size:1.15rem; color:var(--text); margin:0 0 0.6rem; }
.bp-block.paragraph { color:var(--text-2); font-size:0.96rem; margin:0 0 0.8rem; }
.bp-callout { background:var(--gold-soft); border:1px solid var(--line-2); border-radius:var(--radius); padding:1.1rem 1.3rem; color:var(--text-2); font-style:italic; }
.bp-lede { font-family:var(--serif); font-style:italic; color:var(--gold-2); font-size:1.15rem; }
.bp-note { color:var(--muted); font-size:0.85rem; }
.bp-gold { color:var(--gold-2); } .bp-sage { color:#6f7d5f; }

/* chips as stat cards (core values + blueprint) */
.bp-chips { display:grid; grid-template-columns:repeat(2,1fr); gap:0.8rem; margin:0 0 2rem; }
@media (max-width:560px){ .bp-chips { grid-template-columns:1fr 1fr; } }
.bp-chip { background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:1rem 1.1rem; }
.bp-chip .lbl { font-size:0.6rem; letter-spacing:0.15em; text-transform:uppercase; color:var(--muted); margin:0 0 4px; }
.bp-chip .val { font-family:var(--serif); font-size:1rem; font-weight:500; color:var(--text); margin:0; }

/* tab groups (blueprint result navigation) */
.bp-tabgroup-label { font-size:0.6rem; letter-spacing:0.24em; text-transform:uppercase; font-weight:700; margin:1.4rem 0 0.7rem; }
.bp-tabgroup-label.primary { color:var(--gold-2); }
.bp-tabgroup-label.supporting { color:#6f7d5f; }
.bp-tabs { display:grid; gap:0.5rem; margin-bottom:1.6rem; }
.bp-tabs.primary { grid-template-columns:repeat(4,1fr); }
.bp-tabs.supporting { grid-template-columns:repeat(5,1fr); }
@media (max-width:560px){ .bp-tabs.primary { grid-template-columns:repeat(2,1fr); } .bp-tabs.supporting { grid-template-columns:repeat(3,1fr); } }
.bp-tab { display:flex; flex-direction:column; align-items:center; gap:6px; padding:0.7rem 0.3rem; background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); cursor:pointer; color:var(--text-2); box-shadow:none; transition:border-color .15s, background-color .15s; }
.bp-tab:hover { border-color:var(--line-2); background:var(--panel-2); transform:none; }
.bp-tab.sel { border-color:var(--gold); background:var(--gold-soft); color:var(--gold-2); }
.bp-tab .ic { font-size:0.95rem; color:var(--muted); }
.bp-tab.sel .ic { color:var(--gold-2); }
.bp-tab .tl { font-size:0.56rem; letter-spacing:0.1em; text-transform:uppercase; line-height:1.2; text-align:center; }

/* lists */
.bp-list { padding-left:1.1rem; color:var(--text-2); }
.bp-list li { margin:0.35rem 0; }

/* likert scale (blueprint 1–5) */
.bp-scale { display:grid; grid-template-columns:repeat(5,1fr); gap:0.5rem; }
.bp-scale button { aspect-ratio:1; border:1px solid var(--line); background:var(--panel); border-radius:var(--radius); color:var(--text); font-weight:600; font-size:1rem; cursor:pointer; box-shadow:none; transition:border-color .15s, background-color .15s; }
.bp-scale button:hover { border-color:var(--line-2); background:var(--panel-2); transform:none; }
.bp-scale button.sel { border-color:var(--gold); background:var(--gold); color:#fff; }
.bp-scale-labels { display:flex; justify-content:space-between; color:var(--muted); font-size:0.72rem; letter-spacing:0.04em; margin-top:0.5rem; }

/* landing lede + disclaimer + error + result head + subheading */
.bp-lede { font-family:var(--serif); color:var(--text); font-size:clamp(1.3rem,2.6vw,1.6rem); line-height:1.3; margin:0.2rem 0; }
.bp-lede.italic { font-style:italic; color:var(--gold-2); }
.bp-note { border:1px solid var(--line); background:var(--panel); border-radius:var(--radius); padding:1rem 1.2rem; margin:0 auto 1.8rem; max-width:480px; text-align:left; }
.bp-note .eyebrow { display:block; font-size:0.6rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--gold-2); font-weight:700; margin:0 0 0.5rem; }
.bp-note p { font-size:0.82rem; color:var(--muted); line-height:1.6; margin:0; }
.strong, .bp-note .strong { color:var(--text-2); font-weight:600; }
.bp-error { max-width:480px; margin:80px auto; background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-lg); padding:2rem; color:var(--text-2); text-align:center; }
.bp-block.subheading { font-size:0.65rem; letter-spacing:0.15em; text-transform:uppercase; color:#6f7d5f; font-weight:700; margin-top:1.2rem; }
.bp-block.subheading.gold { color:var(--gold-2); }
.bp-section .result-head { padding-bottom:1rem; border-bottom:1px solid var(--line); margin-bottom:1.2rem; }
.bp-section .result-head .lbl { font-size:0.62rem; letter-spacing:0.24em; text-transform:uppercase; color:var(--muted); margin:0 0 4px; }
.bp-section .result-head h2 { font-family:var(--serif); font-size:1.5rem; font-weight:500; color:var(--text); margin:0; }
.bp-continue { background:transparent; border:1px solid var(--line-2); color:var(--text-2); border-radius:var(--radius-pill); padding:0.8rem 1.6rem; font-family:var(--sans); font-weight:600; font-size:0.85rem; cursor:pointer; box-shadow:none; }
.bp-continue:hover { border-color:var(--gold); color:var(--gold-2); background:var(--bg-2); transform:none; }

/* featured Blueprint card on the Learn page */
.lp-blueprint-feature { display:flex; align-items:center; justify-content:space-between; gap:2rem; background:linear-gradient(155deg,#333947,#272b36); color:var(--on-dark); border-radius:var(--radius-lg); padding:2.2rem 2.3rem; box-shadow:var(--shadow-2); margin-bottom:2.6rem; transition:transform .2s; }
.lp-blueprint-feature:hover { transform:translateY(-3px); }
.lp-bpf-copy { max-width:660px; }
.lp-blueprint-feature h3 { color:var(--on-dark); font-size:1.5rem; margin:0.5rem 0 0.6rem; }
.lp-blueprint-feature p { color:var(--on-dark-muted); font-size:0.92rem; margin:0 0 0.9rem; }
.lp-blueprint-feature .lp-tool-go { color:var(--gold); }
.lp-blueprint-feature .lp-course-tag { background:rgba(160,138,129,0.22); color:var(--gold); border-color:transparent; }
.lp-bpf-mark { font-size:3.5rem; color:var(--gold); opacity:0.5; flex-shrink:0; }
@media (max-width:640px){ .lp-blueprint-feature { flex-direction:column; align-items:flex-start; } .lp-bpf-mark { display:none; } }

/* score bars (pd-) */
.pd-bar-row { margin-bottom:1.1rem; }
.pd-bar-head { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:0.4rem; }
.pd-bar-name { font-weight:600; font-size:0.92rem; color:var(--text); }
.pd-bar-val { font-size:0.82rem; color:var(--muted); font-variant-numeric:tabular-nums; }
.pd-bar-track { height:8px; background:var(--bg-2); border-radius:var(--radius-pill); overflow:hidden; }
.pd-bar-fill { height:100%; background:var(--gold); border-radius:var(--radius-pill); transition:width .6s ease; }
.pd-bar-fill.primary { background:linear-gradient(90deg,var(--gold),var(--blush)); }
.pd-bar-expl { color:var(--muted); font-size:0.84rem; margin:0.4rem 0 0; }

/* reflections */
.pd-reflect-row { border-top:1px solid var(--line); padding:0.9rem 0; }
.pd-reflect-row:first-child { border-top:none; }
.pd-reflect-q { color:var(--gold-2); font-weight:600; font-size:0.9rem; margin:0 0 0.3rem; }
.pd-reflect-num { color:var(--muted); font-size:0.8rem; }

/* pattern-detector extras */
.pd-grid, .pd-values-grid, .pd-check-grid { display:grid; grid-template-columns:1fr 1fr; gap:0.8rem; }
@media (max-width:560px){ .pd-grid, .pd-values-grid { grid-template-columns:1fr; } }
.pd-card-theme { background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-lg); padding:1.5rem; box-shadow:var(--shadow-1); }
.pd-card-title { font-family:var(--serif); font-size:1.2rem; color:var(--text); margin-bottom:0.4rem; }
.pd-tag, .pd-badge, .pd-value-chip, .pd-opt-key { display:inline-block; background:var(--gold-soft); color:var(--gold-2); border:1px solid var(--line-2); border-radius:var(--radius-pill); padding:0.3rem 0.8rem; font-size:0.78rem; font-weight:600; }
.pd-value-chip { cursor:pointer; }
.pd-value-chip.sel { background:var(--gold); color:#fff; border-color:var(--gold); }
.pd-rating { display:flex; gap:0.5rem; flex-wrap:wrap; }
.pd-rating-btn { width:44px; height:44px; border-radius:var(--radius); border:1px solid var(--line); background:var(--panel); color:var(--text); font-weight:600; cursor:pointer; box-shadow:none; }
.pd-rating-btn:hover { border-color:var(--line-2); transform:none; }
.pd-rating-btn.sel { border-color:var(--gold); background:var(--gold-soft); color:var(--gold-2); }
.pd-field { margin:1rem 0; }
.pd-field-label { font-weight:600; font-size:0.9rem; color:var(--text); margin-bottom:0.5rem; display:block; }
.pd-back, .pd-start, .pd-continue, .pd-retake-top, .pd-retake-bottom { cursor:pointer; }
.pd-correct { color:#5b7a4a; } .pd-incorrect { color:var(--blush-2); }
.pd-check-grid .pd-value-chip { text-align:center; }

/* ============================================================
   RELATIONSHIP PULSE™  (ported from the Lovable project)
   Assessment (#/pulse) + prescription (#/prescription), restyled
   from the Lovable theme into the Love Prescriptions palette.
   ============================================================ */

/* --- library card accent --- */
.lp-tool-card-pulse { border-color:var(--line-2); background:linear-gradient(160deg, var(--panel), var(--panel-2)); }
.lp-tool-card-pulse .lp-tool-diamond { color:var(--blush-2); }
.lp-tool-tag { display:inline-block; align-self:flex-start; background:var(--gold-soft); color:var(--gold-2); border:1px solid var(--line-2); border-radius:var(--radius-pill); padding:0.2rem 0.7rem; font-size:0.6rem; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; margin-bottom:0.6rem; }

/* --- shell --- */
.pulse { min-height:100vh; background:linear-gradient(180deg, var(--bg), var(--bg-2)); }
.pulse-main { max-width:760px; margin:0 auto; padding:1.5rem clamp(1.1rem,4vw,2rem) 6rem; }
.pulse-topbar { max-width:760px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1.6rem clamp(1.1rem,4vw,2rem) 0; }
.pulse-brand { display:flex; align-items:center; gap:0.65rem; text-decoration:none; }
.pulse-mark { display:grid; place-items:center; width:36px; height:36px; border-radius:50%; background:var(--gold-soft); color:var(--gold-2); font-size:1rem; }
.pulse-mark.big { width:56px; height:56px; font-size:1.4rem; margin:0 auto 1.1rem; }
.pulse-brand-text { display:flex; flex-direction:column; line-height:1.25; }
.pulse-brand-eyebrow { font-size:0.62rem; font-weight:600; letter-spacing:0.18em; text-transform:uppercase; color:var(--muted); }
.pulse-brand-name { font-family:var(--serif); font-size:1.02rem; color:var(--text); }
.pulse-ghost-btn { background:var(--panel); color:var(--muted); border:1px solid var(--line); box-shadow:none; padding:0.5rem 1rem; font-size:0.78rem; }
.pulse-ghost-btn:hover { background:var(--panel-2); color:var(--text); transform:none; }

/* --- shared bits --- */
.pulse-card { background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-lg); padding:clamp(1.5rem,4vw,2.4rem); box-shadow:var(--shadow-1); margin-bottom:1.4rem; }
.pulse-card p { color:var(--text-2); font-size:0.96rem; }
.pulse-pill { display:inline-flex; align-items:center; gap:0.4rem; background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-pill); padding:0.4rem 0.95rem; font-size:0.72rem; font-weight:600; color:var(--muted); letter-spacing:0.04em; }
.pulse-badge { display:inline-flex; align-items:center; gap:0.4rem; background:var(--gold-soft); color:var(--gold-2); border-radius:var(--radius-pill); padding:0.32rem 0.85rem; font-size:0.62rem; font-weight:700; letter-spacing:0.2em; text-transform:uppercase; margin-bottom:1rem; }
.pulse-badge.strength { background:rgba(160,138,129,0.16); color:var(--gold-2); }
.pulse-badge.growth { background:rgba(160,138,129,0.18); color:var(--blush-2); }
.pulse-badge.onplum { background:rgba(237,234,229,0.18); color:var(--on-dark); }
.pulse-sec-title { font-family:var(--serif); font-size:1.5rem; color:var(--text); margin:0 0 0.4rem; }
.pulse-sec-title.center, .mono.eyebrow.center, .pulse-card p.center { text-align:center; }
.pulse-sub { color:var(--muted); font-size:0.88rem; margin:0 0 1rem; }
.pulse-sublabel { font-size:0.62rem; font-weight:700; letter-spacing:0.2em; text-transform:uppercase; color:var(--muted); margin:1.5rem 0 0.5rem; }
.pulse-accent { color:var(--gold-2); }
.pulse-fineprint { color:var(--muted); font-size:0.76rem; line-height:1.6; }
.pulse-fineprint.center { text-align:center; }
.pulse-primary { background:var(--gold); color:#fff; padding:1rem 2rem; font-size:0.95rem; }
.pulse-primary.light { background:var(--panel); color:var(--gold-2); box-shadow:0 10px 26px rgba(36,26,38,0.24); }
.pulse-primary.done { background:var(--panel-2); color:var(--gold-2); box-shadow:none; }
.pulse-primary:disabled { cursor:default; transform:none; }
.pulse-outline { background:transparent; color:var(--text); border:1px solid var(--line-2); box-shadow:none; }
.pulse-outline:hover { background:var(--panel-2); border-color:var(--gold); color:var(--gold-2); transform:none; }
.pulse-link { background:none; color:var(--muted); box-shadow:none; padding:0.6rem 0.9rem; font-size:0.86rem; }
.pulse-link:hover { background:none; color:var(--gold-2); transform:none; }
.pulse-back { display:inline-block; background:none; color:var(--muted); box-shadow:none; padding:0 0 0 0; font-size:0.86rem; margin-bottom:1.4rem; text-decoration:none; }
.pulse-back:hover { background:none; color:var(--text); transform:none; }
.pulse-quote { margin:0; border-left:2px solid var(--gold); background:var(--panel-2); border-radius:0 var(--radius) var(--radius) 0; padding:1.1rem 1.4rem; font-family:var(--serif); font-size:1.1rem; line-height:1.45; color:var(--text); }
.pulse-quote.big { font-size:1.45rem; }

/* --- welcome --- */
.pulse-welcome { text-align:center; padding-top:2.5rem; }
.pulse-welcome h1 { font-size:clamp(2.6rem,7vw,4rem); margin:1.6rem 0 0; }
.pulse-lede { max-width:32rem; margin:1.2rem auto 0; font-size:1.1rem; color:var(--muted); }
.pulse-expect { margin-top:2.4rem; text-align:left; }
.pulse-expect ul { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:1rem; }
.pulse-expect li { display:flex; align-items:flex-start; gap:0.8rem; font-size:0.95rem; color:var(--text-2); }
.pulse-expect .ck { flex:0 0 auto; display:grid; place-items:center; width:20px; height:20px; border-radius:50%; background:var(--gold-soft); color:var(--gold-2); font-size:0.7rem; margin-top:0.15rem; }
.pulse-expect strong { color:var(--gold-2); }
.pulse-cta-col { display:flex; flex-direction:column; align-items:center; gap:0.6rem; margin-top:2rem; }
.pulse-cta-col .pulse-primary { width:100%; max-width:22rem; }
.pulse-welcome .pulse-fineprint { max-width:28rem; margin:2.4rem auto 0; }

/* --- season --- */
.pulse-season-wrap { padding-top:0.5rem; }
.pulse-step-head { text-align:center; margin-bottom:2rem; }
.pulse-step-head h2 { font-size:clamp(1.7rem,4vw,2.3rem); margin:0.7rem 0 0; }
.pulse-step-head .pulse-sub { margin-top:0.8rem; }
.pulse-season-grid { display:flex; flex-direction:column; gap:1rem; }
.pulse-season { display:flex; align-items:center; gap:1rem; width:100%; text-align:left; background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-lg); padding:1.3rem 1.4rem; color:var(--text); box-shadow:var(--shadow-1); }
.pulse-season:hover { background:var(--panel); border-color:var(--gold); transform:translateY(-2px); }
.pulse-season.sel { border-color:var(--gold); box-shadow:0 0 0 3px var(--gold-soft), var(--shadow-1); }
.pulse-season-mark { flex:0 0 auto; display:grid; place-items:center; width:46px; height:46px; border-radius:14px; background:var(--gold-soft); color:var(--gold-2); font-size:1.1rem; }
.pulse-season-copy { display:flex; flex-direction:column; gap:0.25rem; flex:1 1 auto; min-width:0; }
.pulse-season-title { font-family:var(--serif); font-size:1.15rem; }
.pulse-season-blurb { font-size:0.86rem; color:var(--muted); font-weight:400; letter-spacing:0; }
.pulse-season-arrow { color:var(--muted); }

/* --- questions --- */
.pulse-progress-head { display:flex; justify-content:space-between; font-size:0.75rem; font-weight:600; color:var(--muted); margin-bottom:0.5rem; }
.pulse-progress { height:6px; background:var(--panel-2); border-radius:var(--radius-pill); overflow:hidden; }
.pulse-progress > div { height:100%; background:linear-gradient(90deg, var(--gold), var(--blush)); border-radius:var(--radius-pill); transition:width .35s ease; }
.pulse-domain-chip { display:flex; align-items:center; gap:0.5rem; margin:1.5rem 0 1rem; font-size:0.66rem; font-weight:600; letter-spacing:0.18em; text-transform:uppercase; color:var(--muted); }
.pulse-domain-chip .dot { width:9px; height:9px; border-radius:50%; }
.pulse-qcard h2 { font-family:var(--serif); font-size:clamp(1.35rem,3.4vw,1.75rem); line-height:1.3; margin:0; }
.pulse-qhint { color:var(--muted); font-size:0.85rem; margin:0.8rem 0 0; }
.pulse-opts { display:flex; flex-direction:column; gap:0.65rem; margin-top:1.8rem; }
.pulse-opt { display:flex; align-items:center; justify-content:space-between; width:100%; text-align:left; background:var(--bg); border:1px solid var(--line); border-radius:14px; padding:0.95rem 1.2rem; color:var(--text); box-shadow:none; font-weight:500; }
.pulse-opt:hover { background:var(--panel-2); border-color:var(--gold); transform:none; }
.pulse-opt.sel { border-color:var(--gold); background:var(--gold-soft); }
.pulse-opt-left { display:flex; align-items:center; gap:1rem; }
.pulse-opt-num { display:grid; place-items:center; width:32px; height:32px; border-radius:50%; border:2px solid var(--line-2); font-size:0.78rem; font-weight:700; color:var(--muted); }
.pulse-opt.sel .pulse-opt-num { background:var(--gold); border-color:var(--gold); color:#fff; }
.pulse-opt-label { font-size:0.98rem; }
.pulse-opt-check { color:var(--gold-2); }
.pulse-qnav { display:flex; align-items:center; justify-content:space-between; margin-top:1.4rem; }
.pulse-next { background:var(--plum); color:var(--on-dark); box-shadow:none; }
.pulse-next:hover { background:var(--plum-2); transform:none; }
.pulse-next:disabled { opacity:0.38; cursor:default; }
.pulse-qnav + .pulse-fineprint { margin-top:1.4rem; }

/* --- results --- */
.pulse-hero-score { text-align:center; background:linear-gradient(180deg, var(--panel), var(--panel-2)); }
.pulse-hero-score h1 { font-size:clamp(1.5rem,4vw,2rem); margin:1.1rem 0 0; }
.pulse-ring { position:relative; display:grid; place-items:center; margin:1.8rem auto 0; width:200px; height:200px; }
.pulse-ring svg circle.track { fill:none; stroke:var(--panel-2); }
.pulse-ring svg circle.value { fill:none; stroke:url(#pulseGrad); transition:stroke-dashoffset 1s ease-out; }
.pulse-ring-center { position:absolute; display:flex; flex-direction:column; align-items:center; }
.pulse-ring-center .num { font-family:var(--serif); font-size:3rem; line-height:1; color:var(--text); }
.pulse-ring-center .lbl { margin-top:0.35rem; font-size:0.62rem; font-weight:600; letter-spacing:0.18em; text-transform:uppercase; color:var(--muted); }
.pulse-category { display:inline-block; margin-top:1.4rem; border:1px solid var(--line-2); background:var(--gold-soft); color:var(--gold-2); border-radius:var(--radius-pill); padding:0.4rem 1.1rem; font-size:0.68rem; font-weight:700; letter-spacing:0.2em; text-transform:uppercase; }
.pulse-narrative { max-width:30rem; margin:1.3rem auto 0; }
.pulse-drows { display:flex; flex-direction:column; gap:1.15rem; margin-top:1.4rem; }
.pulse-drow-head { display:flex; align-items:baseline; justify-content:space-between; gap:1rem; margin-bottom:0.45rem; }
.pulse-drow-copy { display:flex; flex-direction:column; min-width:0; }
.pulse-drow-title { font-weight:600; font-size:0.94rem; color:var(--text); }
.pulse-drow-sub { font-size:0.76rem; color:var(--muted); }
.pulse-drow-val { font-family:var(--serif); font-size:1.15rem; color:var(--text); font-variant-numeric:tabular-nums; }
.pulse-bar { height:8px; background:var(--panel-2); border-radius:var(--radius-pill); overflow:hidden; }
.pulse-bar > div { height:100%; border-radius:var(--radius-pill); transition:width .7s ease-out; }

/* --- prescription hero --- */
.pulse-rx { position:relative; overflow:hidden; background:linear-gradient(150deg, var(--plum), var(--plum-2)); color:var(--on-dark); border-radius:var(--radius-lg); padding:clamp(1.8rem,5vw,3rem); margin-bottom:1.4rem; }
.pulse-rx h1, .pulse-rx h2 { color:var(--on-dark); font-family:var(--serif); }
.pulse-rx h2 { font-size:clamp(1.7rem,4.4vw,2.5rem); line-height:1.18; margin:0; }
.pulse-rx h1 { font-size:clamp(2rem,5.5vw,3rem); margin:0.4rem 0 0; }
.pulse-rx p { color:var(--on-dark-muted); font-size:0.98rem; margin:1.2rem 0 0; max-width:34rem; }
.pulse-rx strong { color:var(--on-dark); }
.pulse-rx-eyebrow { font-size:0.66rem !important; font-weight:700; letter-spacing:0.24em; text-transform:uppercase; color:var(--on-dark-muted) !important; margin:0 !important; }
.pulse-rx-time { display:inline-flex; align-items:center; gap:0.4rem; margin-top:1.5rem; background:rgba(237,234,229,0.14); border-radius:var(--radius-pill); padding:0.45rem 1rem; font-size:0.78rem; }
.pulse-rx .pulse-primary { margin-top:1.8rem; }
.pulse-rx-est { display:inline-flex; align-items:center; gap:0.85rem; margin-top:1.8rem; background:rgba(237,234,229,0.14); border-radius:14px; padding:0.85rem 1.1rem; }
.pulse-rx-est .ic { display:grid; place-items:center; width:34px; height:34px; border-radius:50%; background:rgba(237,234,229,0.16); }
.pulse-rx-est .lbl { display:block; font-size:0.58rem; font-weight:700; letter-spacing:0.2em; text-transform:uppercase; color:var(--on-dark-muted); }
.pulse-rx-est .val { display:block; font-family:var(--serif); font-size:1.1rem; }

/* --- practice / reflect / journal --- */
.pulse-steps { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:0.85rem; }
.pulse-steps li { display:flex; align-items:flex-start; gap:0.8rem; color:var(--text-2); font-size:0.95rem; }
.pulse-steps .n { flex:0 0 auto; display:grid; place-items:center; width:24px; height:24px; border-radius:50%; background:var(--gold-soft); color:var(--gold-2); font-size:0.72rem; font-weight:700; }
.pulse-practice-foot { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1rem; margin-top:2rem; padding-top:1.5rem; border-top:1px solid var(--line); }
.pulse-time { display:inline-flex; align-items:center; gap:0.4rem; font-size:0.85rem; font-weight:600; color:var(--muted); }
.pulse-reflect { display:flex; flex-direction:column; gap:1.2rem; margin-top:1.4rem; }
.pulse-field { display:block; }
.pulse-field-label { display:block; font-size:0.88rem; font-weight:600; color:var(--text); margin-bottom:0.5rem; }
.pulse-reflect textarea { width:100%; resize:vertical; border:1px solid var(--line); background:var(--bg); border-radius:14px; padding:0.85rem 1rem; font-family:var(--sans); font-size:0.94rem; color:var(--text); outline:none; transition:border-color .2s, background-color .2s; }
.pulse-reflect textarea:focus { border-color:var(--gold); background:var(--panel); }
.pulse-reflect textarea::placeholder { color:var(--muted); opacity:0.7; }

/* --- celebrate --- */
.pulse-celebrate { text-align:center; }
.pulse-stats { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--line); border-radius:var(--radius-lg); background:var(--panel-2); margin-top:1.8rem; }
.pulse-stats > div { padding:1.2rem 0.6rem; }
.pulse-stats > div + div { border-left:1px solid var(--line); }
.pulse-stats .lbl { display:block; font-size:0.58rem; font-weight:700; letter-spacing:0.2em; text-transform:uppercase; color:var(--muted); }
.pulse-stats .val { display:block; margin-top:0.35rem; font-family:var(--serif); font-size:1.4rem; color:var(--text); }
.pulse-stats .val.small { font-size:1rem; }
.pulse-celebrate-actions, .pulse-results-actions { display:flex; flex-wrap:wrap; gap:0.8rem; justify-content:center; margin-top:1.8rem; }
.pulse-results-actions { margin-bottom:1.4rem; }
.pulse-empty { text-align:center; max-width:36rem; margin:4rem auto; }
.pulse-empty h1 { font-size:1.7rem; }
.pulse-empty .pulse-primary { margin-top:1.8rem; }

/* --- trend --- */
.pulse-trend-head { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }
.pulse-count { flex:0 0 auto; background:var(--panel-2); border-radius:var(--radius-pill); padding:0.4rem 0.9rem; font-size:0.75rem; font-weight:600; color:var(--text-2); }
.pulse-trend { border:1px solid var(--line); border-radius:14px; background:var(--bg); padding:0.9rem; }
.pulse-trend svg { width:100%; display:block; }
.pulse-trend .grid { stroke:var(--line-2); stroke-dasharray:2 4; }
.pulse-trend .line { stroke:url(#lineGrad); }
.pulse-trend .dot { fill:var(--panel); stroke:var(--gold); stroke-width:2; }
.pulse-trend-labels { display:flex; justify-content:space-between; padding:0 0.5rem; margin-top:0.5rem; font-size:0.68rem; color:var(--muted); }
.pulse-trend-empty { display:grid; place-items:center; height:10rem; border:1px dashed var(--line-2); border-radius:14px; background:var(--bg); color:var(--muted); font-size:0.88rem; text-align:center; padding:1rem; }

@media (max-width:560px) {
  .pulse-practice-foot { flex-direction:column; align-items:stretch; }
  .pulse-practice-foot .pulse-primary { width:100%; justify-content:center; }
  .pulse-stats { grid-template-columns:1fr; }
  .pulse-stats > div + div { border-left:none; border-top:1px solid var(--line); }
}

/* ============================================================
   RELATIONSHIP COMPASS™ / ENTRANCE EXAM  (ported from Lovable)
   Exam, results (score dial + 12-department wheel), daily
   prescription, and the 30-day semester browser — restyled into
   the Love Prescriptions palette.
   ============================================================ */

.lp-compass-feature .lp-bpf-mark { color:var(--blush); }
.lp-compass-feature .lp-course-tag { background:rgba(192,138,130,0.20); color:var(--blush-2); }

.compass { min-height:100vh; background:linear-gradient(180deg, var(--bg), var(--bg-2)); }
.compass-main { max-width:880px; margin:0 auto; padding:2rem clamp(1.1rem,4vw,2.4rem) 6rem; }
.compass-topbar { max-width:880px; margin:0 auto; padding:1.6rem clamp(1.1rem,4vw,2.4rem) 0; }
.compass-brand { display:flex; align-items:center; gap:0.7rem; text-decoration:none; }
.compass-mark { display:grid; place-items:center; width:38px; height:38px; border-radius:50%; background:var(--gold-soft); color:var(--gold-2); font-size:1.05rem; }
.compass-mark.big { width:58px; height:58px; font-size:1.5rem; margin:0 auto 1.2rem; }
.compass-brand-text { display:flex; flex-direction:column; line-height:1.3; }
.compass-eyebrow { font-size:0.6rem; font-weight:600; letter-spacing:0.18em; text-transform:uppercase; color:var(--muted); }
.compass-brand-name { font-family:var(--serif); font-size:1.05rem; color:var(--text); }
.compass .rule { width:48px; height:1px; background:var(--gold); margin:1.4rem 0; }
.compass h1 { font-family:var(--serif); }
.compass-sub { color:var(--muted); font-size:0.9rem; max-width:36rem; margin:0.6rem 0 0; }
.compass .mono.eyebrow { color:var(--gold-2); }

/* buttons / links */
.compass-primary { display:inline-flex; align-items:center; gap:0.4rem; background:var(--gold); color:#fff; border:none; border-radius:var(--radius-pill); padding:1rem 2rem; font-family:var(--sans); font-weight:600; font-size:0.95rem; cursor:pointer; text-decoration:none; box-shadow:0 10px 26px rgba(176,141,87,0.30); transition:transform .18s, background-color .25s; }
.compass-primary:hover { background:var(--gold-2); transform:translateY(-2px); }
.compass-outline { display:inline-flex; align-items:center; gap:0.4rem; background:transparent; color:var(--text); border:1px solid var(--line-2); border-radius:var(--radius-pill); padding:1rem 1.8rem; font-weight:600; font-size:0.9rem; text-decoration:none; }
.compass-outline:hover { background:var(--panel-2); border-color:var(--gold); color:var(--gold-2); }
.compass-ghost { background:transparent; color:var(--muted); border:1px solid var(--line-2); border-radius:var(--radius-pill); padding:0.8rem 1.6rem; font-family:var(--sans); font-weight:600; font-size:0.88rem; cursor:pointer; }
.compass-ghost:hover:not(:disabled) { border-color:var(--gold); color:var(--text); }
.compass-ghost:disabled { opacity:0.35; cursor:default; }
.compass-link { color:var(--muted); font-size:0.9rem; text-decoration:none; }
.compass-link:hover { color:var(--gold-2); text-decoration:underline; }
.compass-back { display:inline-block; color:var(--muted); font-size:0.86rem; text-decoration:none; margin-bottom:1.4rem; }
.compass-back:hover { color:var(--text); }
.compass-actions { display:flex; flex-wrap:wrap; gap:0.9rem; margin-top:2rem; }

/* welcome */
.compass-welcome h1 { font-size:clamp(2.6rem,7vw,4rem); line-height:1.05; margin:0.4rem 0 0; }
.compass-welcome h1 .tm { font-size:0.4em; vertical-align:super; color:var(--blush-2); }
.compass-lede { max-width:34rem; font-size:1.1rem; color:var(--muted); margin:1.6rem 0 0; }
.compass-welcome-notes { margin:1.8rem 0 0; display:flex; flex-direction:column; gap:0.5rem; color:var(--muted); font-size:0.92rem; }
.compass-welcome-notes .strong { color:var(--text); }
.compass-cta-row { display:flex; flex-wrap:wrap; align-items:center; gap:1.2rem; margin-top:2.2rem; }
.compass-facts { margin-top:3rem; display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; background:var(--line); gap:1px; }
.compass-facts > div { background:var(--panel); padding:1.5rem 1.4rem; display:flex; flex-direction:column; gap:0.3rem; }
.compass-facts .n { font-family:var(--serif); font-size:1.9rem; color:var(--text); }
.compass-facts .l { font-size:0.66rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--muted); }

/* exam */
.compass-exam-bar { position:sticky; top:0; z-index:20; background:rgba(247,242,236,0.9); backdrop-filter:blur(8px); border-bottom:1px solid var(--line); }
.compass-exam-bar-inner { max-width:880px; margin:0 auto; padding:1.1rem clamp(1.1rem,4vw,2.4rem); }
.compass-exam-head { display:flex; justify-content:space-between; font-size:0.68rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--muted); }
.compass-exam-head a { color:var(--muted); text-decoration:none; }
.compass-exam-head a:hover { color:var(--gold-2); }
.compass-progress { height:3px; background:var(--panel-2); border-radius:var(--radius-pill); overflow:hidden; margin-top:0.9rem; }
.compass-progress > div { height:100%; background:var(--gold); border-radius:var(--radius-pill); transition:width .5s ease; }
.compass-exam-note { font-size:0.72rem; color:var(--muted); margin:0.7rem 0 0; }
.compass-qwrap { padding-top:3.5rem; }
.compass-q { font-size:clamp(1.6rem,4vw,2.5rem); line-height:1.22; margin:1rem 0 0; }
.compass-opts { display:grid; gap:0.6rem; margin-top:2.6rem; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); }
.compass-opt { display:flex; align-items:center; gap:0.7rem; background:var(--panel); border:1px solid var(--line); border-radius:14px; padding:1rem 1.1rem; text-align:left; color:var(--text); cursor:pointer; font-family:var(--sans); font-size:0.9rem; transition:border-color .2s, background-color .2s; }
.compass-opt:hover { border-color:var(--gold); background:var(--panel-2); }
.compass-opt.sel { border-color:var(--gold); background:var(--gold-soft); }
.compass-opt-dot { flex:0 0 auto; width:18px; height:18px; border-radius:50%; border:1px solid var(--line-2); display:grid; place-items:center; font-size:0.6rem; color:var(--gold-2); }
.compass-opt.sel .compass-opt-dot { border-color:var(--gold); }
.compass-qnav { display:flex; justify-content:space-between; margin-top:2.6rem; }
.compass-finishing { text-align:center; padding-top:6rem; }
.compass-spinner { width:64px; height:64px; border-radius:50%; border:2px solid var(--line); border-top-color:var(--gold); margin:0 auto 2rem; animation:compass-spin 1.4s linear infinite; }
@keyframes compass-spin { to { transform:rotate(360deg); } }

/* cards / results */
.compass-card { background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-lg); padding:clamp(1.5rem,4vw,2.2rem); box-shadow:var(--shadow-1); margin-top:1.6rem; }
.compass-card h2 { font-family:var(--serif); font-size:clamp(1.6rem,3.4vw,2.2rem); color:var(--text); margin:0.4rem 0 0; }
.compass-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:1.2rem; }
.compass-card-score { font-family:var(--serif); font-size:1.9rem; color:var(--gold-2); }
.compass-card-body { color:var(--text-2); margin:1rem 0 0; }
.compass-card-focus { color:var(--muted); font-size:0.92rem; margin:1rem 0 0; }
.compass-subjects { list-style:none; display:flex; flex-wrap:wrap; gap:0.5rem; margin:1.2rem 0 0; padding:0; }
.compass-subjects li { border:1px solid var(--gold-soft); background:var(--gold-soft); color:var(--gold-2); border-radius:var(--radius-pill); padding:0.35rem 0.9rem; font-size:0.76rem; }
.compass-results h2 { font-family:var(--serif); }
.compass-dial-wrap { text-align:center; margin-top:3rem; }
.compass-dial-note { max-width:32rem; margin:2rem auto 0; color:var(--muted); font-size:0.9rem; }
.compass-dial { position:relative; display:inline-flex; flex-direction:column; align-items:center; }
.compass-dial-value { transition:stroke-dashoffset 1.2s cubic-bezier(0.22,1,0.36,1); }
.compass-dial-center { position:absolute; top:104px; left:0; right:0; transform:translateY(-50%); display:flex; flex-direction:column; align-items:center; }
.compass-dial-center .num { font-family:var(--serif); font-size:3.4rem; line-height:1; color:var(--text); }
.compass-dial-center .of { font-size:0.7rem; letter-spacing:0.16em; color:var(--muted); margin-top:0.3rem; }
.compass-dial-label { margin-top:1rem; }
.compass-wheel-section, .compass-curric-section { margin-top:3.2rem; }
.compass-wheel-section h2, .compass-curric-section h2 { font-family:var(--serif); font-size:1.7rem; margin:0.4rem 0 0; }
.compass-wheel-card { display:grid; place-items:center; }
.compass-wheel { width:100%; }
.compass-wheel svg { width:100%; max-width:720px; height:auto; display:block; margin:0 auto; }
.compass-curric-list { list-style:none; margin:2rem 0 0; padding:0; border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; background:var(--line); display:flex; flex-direction:column; gap:1px; }
.compass-curric-row { display:flex; align-items:center; gap:1.2rem; background:var(--panel); padding:1.1rem 1.4rem; flex-wrap:wrap; }
.compass-curric-num { font-family:var(--serif); font-size:1.5rem; color:var(--muted); }
.compass-curric-main { flex:1 1 12rem; min-width:0; }
.compass-curric-main .name { color:var(--text); margin:0; }
.compass-curric-main .focus { color:var(--muted); font-size:0.78rem; margin:0.25rem 0 0; }
.compass-curric-role { font-size:0.66rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold-2); }
.compass-curric-score { width:2.5rem; text-align:right; color:var(--muted); font-size:0.9rem; }

/* dashboard */
.compass-dash-head { display:flex; align-items:baseline; justify-content:space-between; }
.compass-dash-links { display:flex; gap:1.2rem; }
.compass-dash-links a { font-size:0.66rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--muted); text-decoration:none; }
.compass-dash-links a:hover { color:var(--gold-2); }
.compass-why { margin-top:2.4rem; }
.compass-why-lead { font-family:var(--serif); font-size:clamp(1.4rem,3vw,1.9rem); line-height:1.35; color:var(--text); margin:1rem 0 0; }
.compass-why-lead .accent { color:var(--gold-2); }
.compass-why-focus { color:var(--muted); margin:1rem 0 0; }
.compass-dashboard textarea, .compass-day textarea { width:100%; resize:vertical; border:1px solid var(--line); background:var(--bg); border-radius:14px; padding:0.85rem 1rem; font-family:var(--sans); font-size:0.94rem; color:var(--text); outline:none; margin-top:1.2rem; }
.compass-dashboard textarea:focus { border-color:var(--gold); background:var(--panel); }
.compass-reflect-prompt { color:var(--text); font-size:1.05rem; margin:0.8rem 0 0; }
.compass-reflect-note { color:var(--muted); font-size:0.76rem; margin:0.8rem 0 0; }
.compass-progress-block { margin-top:2.4rem; }
.compass-progress-head { display:flex; align-items:baseline; justify-content:space-between; }
.compass-progress-head span { color:var(--muted); font-size:0.9rem; }
.compass-progress-block .compass-progress { margin-top:1rem; }
.compass-next { color:var(--muted); font-size:0.8rem; margin:1rem 0 0; }

/* curriculum browser */
.compass-major-tabs { display:flex; flex-wrap:wrap; gap:0.7rem; margin-bottom:1.8rem; }
.compass-major-tab { border:1px solid var(--line-2); border-radius:var(--radius-pill); padding:0.5rem 1.1rem; font-size:0.66rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--muted); text-decoration:none; }
.compass-major-tab:hover { color:var(--gold-2); border-color:var(--gold); }
.compass-major-tab.sel { border-color:var(--gold); color:var(--gold-2); background:var(--gold-soft); }
.compass-curriculum h1 { font-size:clamp(2.4rem,6vw,3.4rem); margin:0.4rem 0 0; }
.compass-sem-theme { font-family:var(--serif); font-size:1.4rem; color:var(--gold-2); margin:1rem 0 0; }
.compass-sem-promise { max-width:44rem; color:var(--muted); margin:1.2rem 0 0; line-height:1.7; }
.compass-objectives { margin-top:2.4rem; }
.compass-objectives ul { list-style:none; margin:1rem 0 0; padding:0; display:grid; gap:0.6rem; grid-template-columns:repeat(auto-fit,minmax(16rem,1fr)); }
.compass-objectives li { display:flex; gap:0.6rem; color:var(--text-2); font-size:0.9rem; }
.compass-objectives li::before { content:"·"; color:var(--gold-2); }
.compass-week { margin-top:2.8rem; }
.compass-week-head { display:flex; align-items:baseline; justify-content:space-between; gap:1rem; }
.compass-week-arc { font-size:0.78rem; color:var(--muted); }
.compass-week-obj { color:var(--muted); font-size:0.86rem; margin:0.6rem 0 0; }
.compass-day-grid { display:grid; gap:0.8rem; grid-template-columns:repeat(auto-fit,minmax(15rem,1fr)); margin-top:1.4rem; }
.compass-day-card { background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-lg); padding:1.3rem 1.4rem; text-decoration:none; box-shadow:var(--shadow-1); transition:transform .18s, border-color .2s; }
.compass-day-card:hover { transform:translateY(-3px); border-color:var(--gold); }
.compass-day-card h3 { font-family:var(--serif); font-size:1.2rem; color:var(--text); margin:0.5rem 0 0; }
.compass-day-card:hover h3 { color:var(--gold-2); }
.compass-day-card p:last-child { color:var(--muted); font-size:0.8rem; margin:0.5rem 0 0; }

/* curriculum day */
.compass-day h1 { font-size:clamp(2rem,5vw,3rem); margin:0.4rem 0 0; }
.compass-day-obj { color:var(--muted); margin:1rem 0 0; }
.compass-day-lesson { margin-top:1rem; }
.compass-lesson-body { margin-top:1rem; display:flex; flex-direction:column; gap:1.1rem; }
.compass-lesson-body p { color:var(--text-2); line-height:1.75; margin:0; }
.compass-takeaway { border-left:2px solid var(--gold); padding-left:1.2rem; font-family:var(--serif); font-size:1.3rem; line-height:1.4; color:var(--text); margin:1.8rem 0 0; }
.compass-reflect-list { list-style:none; margin:1rem 0 0; padding:0; display:flex; flex-direction:column; gap:0.8rem; }
.compass-reflect-list li { display:flex; gap:0.7rem; color:var(--text-2); }
.compass-reflect-list .dot { color:var(--gold-2); }
.compass-coaching { margin-top:1.6rem; }
.compass-coaching p { color:var(--muted); font-size:0.9rem; line-height:1.7; margin:1rem 0 0; }
.compass-encouragement { text-align:center; font-family:var(--serif); font-size:1.4rem; color:var(--gold-2); margin:3rem 0 0; }
.compass-day-nav { display:flex; justify-content:space-between; margin-top:3rem; }
.compass-day-nav a { color:var(--muted); text-decoration:none; font-size:0.9rem; }
.compass-day-nav a:hover { color:var(--gold-2); }

.compass-empty { text-align:center; max-width:36rem; margin:5rem auto; }
.compass-empty h1 { font-size:1.9rem; }
.compass-empty p { color:var(--muted); margin:0.8rem 0 0; }
.compass-empty .compass-primary { margin-top:2rem; }

@media (max-width:560px) {
  .compass-facts { grid-template-columns:1fr; }
  .compass-curric-role { order:3; width:100%; }
}

/* ============================================================
   RESPONSIVE GLOBAL HEADER — orientation-aware, always fixed
   ------------------------------------------------------------
   Portrait / narrow (<900px, any orientation): fixed TOP bar.
   Landscape AND ≥900px (width-guarded): fixed LEFT sidebar.
   The header is always fixed so users can always reach it.
   JS keeps --topbar-h synced to the real bar height in top mode.
   (Appended last so these rules win the cascade.)
   ============================================================ */
:root { --topbar-h:84px; --sidebar-w:264px; }

/* ---- Top-bar mode (default) ---- */
.topbar { position:fixed; top:0; left:0; right:0; }
#app { padding-top:var(--topbar-h); }
html { scroll-padding-top:calc(var(--topbar-h) + 8px); }
/* keep any in-tool sticky sub-bar clear of the fixed header */
.compass-exam-bar { top:var(--topbar-h); }

/* ---- Landscape sidebar mode (width-guarded) ---- */
@media (orientation:landscape) and (min-width:900px) {
  .topbar {
    position:fixed; inset:0 auto 0 0; width:var(--sidebar-w);
    flex-direction:column; align-items:stretch; justify-content:flex-start;
    gap:1.15rem; overflow-y:auto; overflow-x:hidden;
    padding:1.4rem 1.1rem;
    border-bottom:none; border-right:1px solid var(--line-on-dark);
    /* No backdrop-filter here: a filter/transform on the rail would make the
       flyout's position:fixed resolve against the rail (and get clipped by its
       overflow). Removing it lets the flyout resolve against the viewport and
       escape the clip. The rail bg is nearly opaque, so the blur isn't missed. */
    background:rgb(37,38,52); backdrop-filter:none;
  }
  .brand--stack { align-items:flex-start; }
  .nav-toggle { display:none !important; }
  .nav-collapse { display:contents; }
  .topnav { flex-direction:column; align-items:stretch; gap:0.1rem; width:100%; }
  .nav-item { position:relative; }
  .nav-link { width:100%; justify-content:space-between; font-size:0.95rem; }
  .nav-actions {
    flex-direction:column; align-items:stretch; gap:0.55rem;
    margin-left:0; margin-top:auto; padding-top:1rem;
  }
  .nav-actions .small { width:100%; }
  .nav-login { display:block; padding:0.5rem 0.9rem; }
  /* Right-side hover flyout. The panel is position:fixed so the rail's overflow
     never clips it and the rail list never reflows — nothing shifts under the
     cursor. --fly-top is set per-item by bindNav() on hover; it resolves against
     the viewport because the rail has no filter/transform (see .topbar above).
     Light --panel card (base colors apply), like the top-bar dropdown. */
  .menu, .menu.mega {
    position:fixed; left:var(--sidebar-w); top:var(--fly-top,96px); margin:0;
    display:block; min-width:290px; width:max-content; max-width:340px;
    padding:1.1rem; background:var(--panel); border:1px solid var(--line);
    border-radius:var(--radius-lg); box-shadow:var(--shadow-menu); z-index:120;
    opacity:0; visibility:hidden; transform:translateX(-6px);
    transition:opacity .16s ease, transform .16s ease, visibility .16s;
  }
  .menu.mega { grid-template-columns:1fr 1fr; min-width:500px; max-width:540px; }
  .nav-item.open .menu, .nav-item.open .menu.mega { opacity:1; visibility:visible; transform:translateX(0); }
  /* Invisible bridge across the rail→panel seam so a diagonal move keeps hover. */
  .menu::before {
    content:""; display:block; position:absolute; top:0; bottom:0; left:-16px;
    width:16px; height:auto; background:transparent; border:none; transform:none;
  }
  /* shift page content past the fixed rail */
  #app { padding-top:0; margin-left:var(--sidebar-w); }
  /* Left-align the main content within the rail-offset area. Otherwise the
     `margin:0 auto` wrappers center inside the wide space to the RIGHT of the
     rail, leaving a large empty gutter between the rail and the content on wide
     screens. Left-aligning keeps that gap at ~one section-padding (matching the
     hero's rail→content gap); the extra width falls to the right instead.
     #app-scoped so it beats the base `.wrap` / `.hero-split` centering rules. */
  #app .wrap, #app .hero-split, #app .footer-grid { margin-left:0; margin-right:auto; }
  /* …but the testimonial band is a deliberately centered element (its eyebrow
     and dots are centered), so keep it centered rather than left-aligned. */
  #app .lp-tw .wrap { margin-left:auto; margin-right:auto; }
  .compass-exam-bar { top:0; }
  html { scroll-padding-top:8px; }
}

/* Member experience (#/member, body.lp-member-screen) hides the global header
   (#lp-header) and uses its own left nav. But #app still carries the offset that
   normally clears the fixed rail — margin-left:var(--sidebar-w) in the sidebar
   layout, padding-top:var(--topbar-h) in the top-bar layout — which shows up as
   a large empty band to the left (or top) of the member UI. Drop it here. Higher
   specificity than the bare `#app` rules, so no !important needed. */
.lp-member-screen #app { margin-left:0; padding-top:0; }

/* ============================================================
   ADMIN — header menu + admin area
   ------------------------------------------------------------
   The Admin control lives inside .nav-actions right after the
   "Start free assessment" button, so DOM order gives us exactly
   the requested placement for free:
     · Landscape sidebar (nav-actions is a column) → BELOW the button
     · Portrait top bar   (nav-actions is a row)    → RIGHT of the button
   ============================================================ */
.nav-admin { position:relative; }
.nav-admin[hidden] { display:none; }
.nav-admin-link { color:var(--on-dark) !important; border:1px solid var(--line-on-dark); }
.nav-admin-link:hover { color:var(--gold) !important; }
/* Top-bar mode: the button sits at the right edge, so open the dropdown
   right-aligned to keep it on-screen, and lift it above page content. */
.nav-admin .menu { left:auto; right:0; min-width:288px; z-index:120; }
.nav-admin .menu::before { left:auto; right:26px; }
.mrow .ic { font-family:var(--sans); }

/* Landscape sidebar: the rail clips horizontal fly-outs (overflow-x:hidden),
   so instead of flying the Admin menu out to the right, open it IN PLACE as a
   panel directly below the button — which is also exactly where it was asked to
   sit in landscape. */
@media (orientation:landscape) and (min-width:900px) {
  .nav-admin { position:static; }
  .nav-admin .menu {
    position:static; left:auto; right:auto; top:auto; margin:0.5rem 0 0;
    width:100%; min-width:0; display:none; transform:none; box-shadow:none;
    padding:0.5rem;
  }
  .nav-admin.open .menu { display:block; }
  .nav-admin .menu::before { display:none; }
  .nav-admin-link { width:100%; justify-content:space-between; }
}
/* Narrow / hamburger: the admin menu becomes a stacked block like the rest
   (the shared mobile menu rules already handle static/open display). */
@media (max-width:900px) {
  .nav-admin { position:static; }
  .nav-admin .menu { left:0; right:auto; }
  .nav-admin-link { width:100%; justify-content:space-between; }
}

/* ---------- admin area pages ---------- */
.lp-admin { padding:clamp(1.6rem,4vw,3rem) clamp(1.1rem,5vw,3.5rem) 4rem; }
.lp-admin-wrap { max-width:960px; margin:0 auto; }
.lp-admin-eyebrow { font-family:var(--sans); text-transform:uppercase; letter-spacing:0.18em; font-size:0.62rem; font-weight:700; color:var(--gold-2); margin:0 0 0.6rem; }
.lp-admin-head h1 { font-size:clamp(1.7rem,3.6vw,2.5rem); }
.lp-admin-sub { color:var(--muted); margin:0.55rem 0 0; max-width:60ch; }
.lp-admin-tabs { display:flex; flex-wrap:wrap; gap:0.4rem; margin-top:1.4rem; border-bottom:1px solid var(--line); padding-bottom:0; }
.lp-admin-tabs a, .lp-admin-tab-logout {
  font-family:var(--sans); font-size:0.88rem; font-weight:600; color:var(--muted);
  padding:0.6rem 0.9rem; border:none; background:none; cursor:pointer; border-bottom:2px solid transparent; border-radius:0; box-shadow:none;
}
.lp-admin-tabs a:hover, .lp-admin-tab-logout:hover { color:var(--gold-2); background:none; transform:none; border-bottom-color:var(--gold); }
.lp-admin-tab-logout { margin-left:auto; color:var(--gold-2); }

.lp-admin-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:1rem; margin-top:1.6rem; }
.lp-admin-panel { background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-lg); padding:1.4rem; }
.lp-admin-panel-wide { grid-column:1 / -1; }
a.lp-admin-panel-link { display:block; color:inherit; transition:border-color .2s, box-shadow .2s, transform .2s; }
a.lp-admin-panel-link:hover { border-color:var(--gold); box-shadow:var(--shadow-1); transform:translateY(-2px); }
.lp-admin-panel-label { font-family:var(--sans); text-transform:uppercase; letter-spacing:0.14em; font-size:0.6rem; font-weight:700; color:var(--gold-2); margin:0 0 0.5rem; }
.lp-admin-panel-big { font-family:var(--serif); font-size:1.7rem; color:var(--text); margin:0 0 0.3rem; }
.lp-admin-panel-k { color:var(--muted); font-size:0.86rem; margin:0.2rem 0 0; }
.lp-admin-badge { display:inline-block; margin-top:0.7rem; font-size:0.66rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:var(--gold-2); background:var(--gold-soft); border-radius:var(--radius-pill); padding:0.28rem 0.7rem; }
.lp-admin-badge.is-super { color:#fff; background:var(--gold-2); }

.lp-admin-h2 { font-size:1.15rem; margin-bottom:0.9rem; }
.lp-admin-note { color:var(--muted); font-size:0.82rem; margin-top:1rem; }
.lp-admin-note code { background:var(--bg-2); border-radius:6px; padding:0.05rem 0.35rem; font-size:0.8em; }
.lp-admin-error { color:#a3312a; font-size:0.85rem; margin:0.2rem 0 0; }
.lp-admin-you { font-size:0.62rem; font-weight:700; text-transform:uppercase; letter-spacing:0.06em; color:var(--gold-2); background:var(--gold-soft); border-radius:var(--radius-pill); padding:0.1rem 0.45rem; vertical-align:middle; }

/* forms */
.lp-admin-form { display:flex; flex-direction:column; gap:1rem; margin-top:0.4rem; }
.lp-admin-form-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }
.lp-admin-form label { display:flex; flex-direction:column; gap:0.35rem; font-size:0.8rem; font-weight:600; color:var(--text-2); }
.lp-admin-form input, .lp-admin-form select, .lp-admin-form textarea {
  font-family:var(--sans); font-size:0.95rem; color:var(--text); background:#fff;
  border:1px solid var(--line); border-radius:var(--radius); padding:0.7rem 0.85rem; width:100%; box-sizing:border-box;
}
.lp-admin-form input:focus, .lp-admin-form select:focus, .lp-admin-form textarea:focus { outline:none; border-color:var(--gold); box-shadow:0 0 0 3px var(--gold-soft); }
.lp-admin-form textarea { resize:vertical; }
.lp-admin-primary { align-self:flex-start; }
.lp-admin-form-grid .lp-admin-primary, .lp-admin-form-grid .lp-admin-error { grid-column:1 / -1; }

.lp-admin-toggle { display:flex; }
.lp-admin-switch { flex-direction:row !important; align-items:center; gap:0.6rem; cursor:pointer; font-weight:600; color:var(--text); }
.lp-admin-switch input { width:auto !important; accent-color:var(--gold); transform:scale(1.15); }

/* table */
.lp-admin-tablewrap { padding:0.4rem; overflow-x:auto; }
.lp-admin-table { width:100%; border-collapse:collapse; font-size:0.9rem; }
.lp-admin-table th { text-align:left; font-family:var(--sans); text-transform:uppercase; letter-spacing:0.1em; font-size:0.6rem; font-weight:700; color:var(--gold-2); padding:0.8rem 0.9rem; border-bottom:1px solid var(--line); }
.lp-admin-table td { padding:0.85rem 0.9rem; border-bottom:1px solid var(--line); color:var(--text-2); vertical-align:middle; }
.lp-admin-table tr:last-child td { border-bottom:none; }
.lp-admin-row-actions { text-align:right; white-space:nowrap; }
.lp-admin-mini {
  font-family:var(--sans); font-size:0.76rem; font-weight:600; padding:0.4rem 0.75rem; margin-left:0.4rem;
  border-radius:var(--radius-pill); border:1px solid var(--line-2); background:transparent; color:var(--text-2); box-shadow:none; cursor:pointer;
}
.lp-admin-mini:hover { border-color:var(--gold); color:var(--gold-2); background:var(--bg-2); transform:none; }
.lp-admin-mini.danger:hover { border-color:#c0564d; color:#a3312a; background:rgba(192,86,77,0.08); }

/* login card */
.lp-admin-login { display:flex; align-items:center; justify-content:center; min-height:60vh; }
.lp-admin-card { width:100%; max-width:420px; background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-lg); box-shadow:var(--shadow-1); padding:clamp(1.6rem,4vw,2.4rem); }
.lp-admin-card h1 { font-size:1.7rem; }
@media (orientation:landscape) and (min-width:900px) { .lp-admin-login { min-height:80vh; } }

/* ============================================================
   LANDING TESTIMONIALS ROTATOR (just below the hero)
   ============================================================ */
.lp-tw { background:var(--bg-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:clamp(2rem,4vw,3.4rem) clamp(1.2rem,5vw,3.5rem); }
.lp-tw .wrap { max-width:840px; margin:0 auto; }
.lp-tw-eyebrow { text-align:center; color:var(--gold-2) !important; margin-bottom:0.4rem; }
/* Fixed-height viewport; each slide scrolls internally when long. */
.lp-tw-viewport { position:relative; height:260px; }
.lp-tw-slide { position:absolute; inset:0; margin:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1rem; text-align:center; opacity:0; visibility:hidden; transition:opacity .55s ease; }
.lp-tw-slide.is-active { opacity:1; visibility:visible; }
.lp-tw-quote { margin:0; max-height:200px; overflow-y:auto; padding:0 0.6rem; font-family:var(--serif); font-style:italic; font-size:clamp(0.95rem,1.3vw,1.1rem); line-height:1.62; color:var(--text); }
.lp-tw-quote::before { content:"\201C"; color:var(--gold); font-family:var(--serif); font-size:1.5em; line-height:0; vertical-align:-0.25em; margin-right:0.06em; }
.lp-tw-quote::after { content:"\201D"; color:var(--gold); font-family:var(--serif); font-size:1.5em; line-height:0; vertical-align:-0.35em; margin-left:0.04em; }
.lp-tw-quote::-webkit-scrollbar { width:6px; }
.lp-tw-quote::-webkit-scrollbar-thumb { background:var(--line-2); border-radius:3px; }
.lp-tw-attr { font-family:var(--sans); font-size:0.78rem; font-weight:600; letter-spacing:0.08em; text-transform:uppercase; color:var(--gold-2); }
.lp-tw-dots { display:flex; flex-wrap:wrap; gap:0.5rem; justify-content:center; margin-top:1.3rem; }
.lp-tw-dot { width:9px; height:9px; padding:0; border:none; border-radius:50%; background:var(--line-2); box-shadow:none; cursor:pointer; transition:background-color .2s, transform .2s; }
.lp-tw-dot:hover { background:var(--gold); transform:none; }
.lp-tw-dot.is-active { background:var(--gold-2); transform:scale(1.25); }
@media (max-width:560px) { .lp-tw-viewport { height:320px; } .lp-tw-quote { max-height:260px; } }
.lp-tw-toggle { display:block; margin:0.85rem auto 0; width:34px; height:34px; padding:0; border-radius:50%; border:1px solid var(--line-2); background:transparent; color:var(--gold-2); font-size:0.72rem; line-height:1; box-shadow:none; cursor:pointer; transition:border-color .2s, color .2s, background-color .2s; }
.lp-tw-toggle:hover { border-color:var(--gold); color:var(--gold); background:var(--bg); transform:none; }
.lp-tw-toggle.is-playing { letter-spacing:0.08em; }
/* Respect reduced-motion: no crossfade/scale animations (auto-rotation is also
   disabled in JS, which starts paused under this preference). */
@media (prefers-reduced-motion: reduce) {
  .lp-tw-slide { transition:none; }
  .lp-tw-dot { transition:none; }
}

/* ============================================================
   ADMIN — testimonials CMS
   ============================================================ */
.lp-tst-list { margin-top:0.4rem; display:flex; flex-direction:column; gap:1rem; }
.lp-tst-list > .lp-admin-h2 { margin-bottom:0.2rem; }
.lp-tst-card { background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-lg); padding:1.2rem; display:flex; flex-direction:column; gap:0.7rem; }
.lp-tst-card-head { display:flex; align-items:center; gap:0.8rem; }
.lp-tst-num { font-family:var(--sans); font-weight:700; color:var(--gold-2); font-size:0.82rem; }
.lp-tst-move { display:flex; gap:0.3rem; }
.lp-tst-move .lp-admin-mini { padding:0.2rem 0.55rem; margin-left:0; font-size:0.85rem; line-height:1; }
.lp-tst-enable { margin-left:auto; }
.lp-tst-card label { display:flex; flex-direction:column; gap:0.3rem; font-size:0.78rem; font-weight:600; color:var(--text-2); }
.lp-tst-card textarea, .lp-tst-card [data-attr] {
  font-family:var(--sans); font-size:0.9rem; color:var(--text); background:#fff;
  border:1px solid var(--line); border-radius:var(--radius); padding:0.6rem 0.75rem; width:100%; box-sizing:border-box; resize:vertical;
}
.lp-tst-card textarea:focus, .lp-tst-card input:focus { outline:none; border-color:var(--gold); box-shadow:0 0 0 3px var(--gold-soft); }
.lp-tst-actions { display:flex; gap:0.6rem; align-items:center; }
.lp-admin-mini[disabled] { opacity:0.4; cursor:default; }
.lp-admin-mini[disabled]:hover { border-color:var(--line-2); color:var(--text-2); background:transparent; }

/* ============================================================
   ANNOUNCEMENT BANNER — top of content on every route
   ============================================================ */
.lp-announce { background:var(--text); color:var(--on-dark); }
.lp-announce-inner { max-width:1180px; margin:0 auto; display:flex; align-items:center; justify-content:center; gap:0.55rem; padding:0.6rem clamp(1.2rem,5vw,3.5rem); text-align:center; }
.lp-announce-icon { color:var(--gold); flex:0 0 auto; font-size:0.85rem; }
.lp-announce-text { font-family:var(--sans); font-size:0.86rem; font-weight:500; letter-spacing:0.01em; line-height:1.45; }

/* Site Controls — single Save-changes row (rendered at top and bottom) */
.lp-admin-saverow { display:flex; align-items:center; gap:0.9rem; flex-wrap:wrap; margin:0 0 1.2rem; }
.lp-admin-saverow-bottom { margin:1.4rem 0 0; }
.lp-admin-saverow .lp-admin-note { margin:0; }

/* Admin dropdown — subtle "signed in as" footer (no icon; logout lives on admin pages) */
.menu-signed { padding:0.5rem 0.7rem 0.2rem; font-size:0.74rem; color:var(--muted); border-top:1px solid var(--line); margin-top:0.35rem; }

/* Activity log (Site Controls) */
.lp-activity-head { display:flex; align-items:center; justify-content:space-between; gap:0.8rem; }
.lp-activity-head .lp-admin-h2 { margin:0; }
.lp-activity-filters { display:flex; flex-wrap:wrap; gap:0.8rem; margin:0.8rem 0 0.4rem; }
.lp-activity-filter { display:flex; flex-direction:column; gap:0.3rem; font-size:0.72rem; font-weight:600; text-transform:uppercase; letter-spacing:0.08em; color:var(--gold-2); }
.lp-activity-search { flex:1 1 220px; }
.lp-activity-filter select, .lp-activity-filter input { font-family:var(--sans); font-size:0.9rem; font-weight:400; text-transform:none; letter-spacing:normal; color:var(--text); background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:0.5rem 0.7rem; }
.lp-activity-filter select:focus, .lp-activity-filter input:focus { outline:none; border-color:var(--gold); box-shadow:0 0 0 3px var(--gold-soft); }
.lp-activity-foot { display:flex; align-items:center; gap:0.9rem; margin-top:0.8rem; }
.lp-activity-list { list-style:none; margin:0.6rem 0 0; padding:0; max-height:420px; overflow-y:auto; }
.lp-activity-list li { display:grid; grid-template-columns:minmax(140px,auto) minmax(120px,auto) 1fr; gap:0.6rem 1rem; align-items:baseline; padding:0.55rem 0; border-bottom:1px solid var(--line); font-size:0.85rem; }
.lp-activity-list li:last-child { border-bottom:none; }
.lp-activity-when { color:var(--muted); font-variant-numeric:tabular-nums; white-space:nowrap; }
.lp-activity-who { font-weight:600; color:var(--gold-2); }
.lp-activity-what { color:var(--text-2); }
@media (max-width:640px) {
  .lp-activity-list li { grid-template-columns:1fr; gap:0.15rem; padding:0.6rem 0; }
  .lp-activity-when { font-size:0.78rem; }
}

/* ============================================================
   CONSCIOUS DATING COURSE  (ported from the Lovable video course)
   Course overview + LP-themed lesson video player. The source used
   a dark "Dating Skills 101" look; here it wears the LP palette.
   ============================================================ */

.lp-cd-feature .lp-bpf-mark { color:var(--blush); font-size:2.4rem; }
.lp-cd-feature .lp-course-tag { background:rgba(192,138,130,0.18); color:var(--blush-2); }

.cd { min-height:100vh; background:linear-gradient(180deg, var(--bg), var(--bg-2)); }
.cd-main { max-width:960px; margin:0 auto; padding:2rem clamp(1.1rem,4vw,2.4rem) 6rem; }
.cd-player-main { max-width:820px; }
.cd-topbar { max-width:960px; margin:0 auto; padding:1.6rem clamp(1.1rem,4vw,2.4rem) 0; }
.cd-brand { display:flex; align-items:center; gap:0.7rem; text-decoration:none; }
.cd-mark { display:grid; place-items:center; width:38px; height:38px; border-radius:50%; background:var(--gold-soft); color:var(--blush-2); font-size:1.1rem; }
.cd-brand-text { display:flex; flex-direction:column; line-height:1.3; }
.cd-eyebrow { font-size:0.6rem; font-weight:600; letter-spacing:0.18em; text-transform:uppercase; color:var(--muted); }
.cd-brand-name { font-family:var(--serif); font-size:1.05rem; color:var(--text); }
.cd .rule { width:48px; height:1px; background:var(--gold); margin:1.3rem 0; }
.cd .mono.eyebrow { color:var(--gold-2); }

.cd-primary { display:inline-flex; align-items:center; gap:0.4rem; background:var(--gold); color:#fff; border-radius:var(--radius-pill); padding:1rem 2rem; font-weight:600; font-size:0.95rem; text-decoration:none; box-shadow:0 10px 26px rgba(176,141,87,0.30); transition:transform .18s, background-color .25s; }
.cd-primary:hover { background:var(--gold-2); transform:translateY(-2px); }
.cd-link { color:var(--muted); font-size:0.9rem; text-decoration:none; }
.cd-link:hover { color:var(--gold-2); text-decoration:underline; }
.cd-back { display:inline-block; color:var(--muted); font-size:0.86rem; text-decoration:none; margin-bottom:1.4rem; }
.cd-back:hover { color:var(--text); }

/* hero */
.cd-hero h1 { font-family:var(--serif); font-size:clamp(2.6rem,7vw,4rem); line-height:1.05; margin:0.4rem 0 0; }
.cd-hero h1 em { color:var(--blush-2); font-style:italic; }
.cd-lede { max-width:40rem; font-size:1.05rem; color:var(--muted); margin:1.4rem 0 0; line-height:1.7; }
.cd-hero-meta { display:flex; flex-wrap:wrap; gap:0.6rem; margin:1.6rem 0 0; }
.cd-hero-meta span { border:1px solid var(--line-2); border-radius:var(--radius-pill); padding:0.35rem 0.9rem; font-size:0.74rem; letter-spacing:0.04em; color:var(--muted); }
.cd-hero-cta { display:flex; flex-wrap:wrap; align-items:center; gap:1.2rem; margin-top:2rem; }
.cd-welcome { max-width:620px; margin:1.8rem auto 0.4rem; }
.cd-welcome .cd-video-wrap { margin-top:0; }

/* modules */
.cd-module { margin-top:3.4rem; }
.cd-module-head h2 { font-family:var(--serif); font-size:1.7rem; color:var(--text); margin:0.3rem 0 0; }
.cd-lesson-grid { display:grid; gap:0.9rem; grid-template-columns:repeat(auto-fill,minmax(16rem,1fr)); margin-top:1.4rem; }
.cd-lesson-card { display:flex; flex-direction:column; background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-lg); padding:1.4rem; text-decoration:none; box-shadow:var(--shadow-1); transition:transform .18s, border-color .2s; }
.cd-lesson-card:hover { transform:translateY(-3px); border-color:var(--gold); }
.cd-lesson-card-head { display:flex; align-items:baseline; justify-content:space-between; }
.cd-lesson-label { font-size:0.62rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold-2); font-weight:700; }
.cd-lesson-dur { font-size:0.74rem; color:var(--muted); }
.cd-lesson-card h3 { font-family:var(--serif); font-size:1.22rem; color:var(--text); margin:0.5rem 0 0; }
.cd-lesson-card:hover h3 { color:var(--gold-2); }
.cd-lesson-card p { color:var(--muted); font-size:0.82rem; margin:0.6rem 0 1rem; flex-grow:1; line-height:1.55; }
.cd-lesson-go { color:var(--gold-2); font-size:0.78rem; font-weight:600; }

/* player */
.cd-player-head { display:flex; align-items:flex-start; justify-content:space-between; gap:1.2rem; margin-top:0.6rem; }
.cd-player-head h1 { font-family:var(--serif); font-size:clamp(1.9rem,4.4vw,2.7rem); line-height:1.15; color:var(--text); margin:0; }
.cd-player-dur { flex:0 0 auto; color:var(--muted); font-size:0.9rem; margin-top:0.4rem; }
.cd-player-blurb { color:var(--text-2); max-width:44rem; margin:1.2rem 0 0; line-height:1.7; }
.cd-video-wrap { margin-top:1.8rem; border-radius:var(--radius-lg); overflow:hidden; border:1px solid var(--line-2); background:#0b0b0d; box-shadow:var(--shadow-2); }
.cd-video { display:block; width:100%; aspect-ratio:16 / 9; background:#0b0b0d; }
.cd-video-note { color:var(--muted); font-size:0.78rem; margin:0.9rem 0 0; text-align:center; }
.cd-player-nav { display:flex; justify-content:space-between; gap:1rem; margin-top:2.4rem; }
.cd-nav-btn { display:flex; flex-direction:column; gap:0.2rem; max-width:46%; text-decoration:none; border:1px solid var(--line); border-radius:var(--radius-lg); padding:0.9rem 1.2rem; background:var(--panel); transition:border-color .2s; }
.cd-nav-btn.right { text-align:right; margin-left:auto; }
.cd-nav-btn:hover { border-color:var(--gold); }
.cd-nav-btn .dir { font-size:0.68rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold-2); }
.cd-nav-btn .ttl { font-family:var(--serif); color:var(--text); font-size:1rem; }

@media (max-width:560px) {
  .cd-nav-btn { max-width:48%; }
}

/* Text-only lesson overview (the 9 no-video lessons) */
.cd-overview { margin-top:1.8rem; border:1px solid var(--line-2); border-radius:var(--radius-lg); background:var(--panel); padding:1.6rem clamp(1.2rem,4vw,2rem); }
.cd-overview-grid { display:grid; gap:1.6rem; grid-template-columns:1fr; }
@media (min-width:720px) { .cd-overview-grid { grid-template-columns:1fr 1.4fr; } }
.cd-overview-label { font-size:0.66rem; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; color:var(--gold-2); margin:0 0 0.6rem; }
.cd-overview-list { margin:0; padding-left:1.2rem; color:var(--text-2); line-height:1.6; }
.cd-overview-list li { margin-bottom:0.4rem; }
.cd-overview-copy p { color:var(--text-2); line-height:1.7; margin:0 0 0.9rem; }
.cd-overview-copy strong { color:var(--text); }
.cd-overview-transform { font-style:italic; color:var(--gold-2); }

/* Practice: interactions, reflection, challenge, quiz, takeaways */
.cd-practice { margin-top:2.6rem; }
.cd-section { margin-top:2.4rem; }
.cd-section-title { font-family:var(--serif); font-size:1.4rem; color:var(--text); margin:0 0 1.1rem; }

.cd-int { border:1px solid var(--line); border-radius:var(--radius-lg); background:var(--panel); padding:1.4rem clamp(1.1rem,3.5vw,1.8rem); margin-bottom:1.2rem; }
.cd-int h4 { font-family:var(--serif); font-size:1.1rem; color:var(--text); margin:0 0 0.5rem; }
.cd-int-instr { color:var(--muted); font-size:0.88rem; line-height:1.6; margin:0 0 1rem; }

/* mapping */
.cd-map-head { display:grid; grid-template-columns:1fr 1fr; gap:0.8rem; font-size:0.68rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:var(--gold-2); margin-bottom:0.5rem; }
.cd-map-rows { display:flex; flex-direction:column; gap:0.6rem; }
.cd-map-row { display:grid; grid-template-columns:1fr 1fr; gap:0.8rem; }
.cd-map-cell { width:100%; min-height:3.2rem; resize:vertical; border:1px solid var(--line-2); border-radius:var(--radius); background:var(--bg); color:var(--text); font:inherit; font-size:0.86rem; padding:0.6rem 0.7rem; }
.cd-int-add { margin-top:0.8rem; background:none; border:1px dashed var(--line-2); border-radius:var(--radius-pill); padding:0.4rem 1rem; color:var(--gold-2); font-size:0.8rem; cursor:pointer; }
.cd-int-add:hover { border-color:var(--gold); }

/* scale */
.cd-scale-item { margin-bottom:1.1rem; }
.cd-scale-item label { display:block; font-size:0.88rem; color:var(--text-2); margin-bottom:0.5rem; }
.cd-scale-row { display:flex; align-items:center; gap:0.7rem; }
.cd-scale-row input[type="range"] { flex:1; accent-color:var(--gold); }
.cd-scale-end { font-size:0.68rem; color:var(--muted); white-space:nowrap; min-width:4.5rem; }
.cd-scale-end:last-child { text-align:right; }

/* checklist */
.cd-check-list { display:flex; flex-direction:column; gap:0.6rem; }
.cd-check-opt { display:flex; align-items:flex-start; gap:0.6rem; font-size:0.88rem; color:var(--text-2); cursor:pointer; }
.cd-check-opt input { margin-top:0.2rem; accent-color:var(--gold); }

/* journal / reflection prompts */
.cd-journal-prompt { margin-bottom:1rem; }
.cd-journal-prompt p { font-size:0.88rem; color:var(--text-2); margin:0 0 0.5rem; }
.cd-journal-prompt textarea { width:100%; border:1px solid var(--line-2); border-radius:var(--radius); background:var(--bg); color:var(--text); font:inherit; font-size:0.86rem; padding:0.6rem 0.7rem; resize:vertical; }

/* scenario */
.cd-scenario-text { font-style:italic; color:var(--text-2); border-left:2px solid var(--gold-soft); padding-left:0.9rem; margin:0 0 1rem; }
.cd-scenario-choices { display:flex; flex-direction:column; gap:0.6rem; }
.cd-scenario-choice-wrap { display:flex; flex-direction:column; gap:0.4rem; }
.cd-scenario-choice { text-align:left; border:1px solid var(--line-2); border-radius:var(--radius); background:var(--bg); color:var(--text); font:inherit; font-size:0.86rem; padding:0.7rem 0.9rem; cursor:pointer; transition:border-color .18s; }
.cd-scenario-choice:hover:not(:disabled) { border-color:var(--gold); }
.cd-scenario-choice.is-chosen { border-color:var(--gold); background:var(--gold-soft); }
.cd-scenario-choice.is-dim { opacity:0.5; }
.cd-scenario-choice:disabled { cursor:default; }
.cd-scenario-coaching { font-size:0.84rem; line-height:1.55; margin:0 0 0 0.2rem; padding-left:0.7rem; border-left:2px solid var(--line-2); }
.cd-scenario-coaching.is-good { color:var(--gold-2); border-left-color:var(--gold); }
.cd-scenario-coaching.is-caution { color:var(--muted); }
.cd-int-reset { margin-top:0.9rem; background:none; border:none; color:var(--gold-2); font-size:0.8rem; text-decoration:underline; cursor:pointer; padding:0; }

/* ranking */
.cd-rank-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:0.5rem; }
.cd-rank-row { display:flex; align-items:center; gap:0.8rem; border:1px solid var(--line-2); border-radius:var(--radius); background:var(--bg); padding:0.6rem 0.9rem; }
.cd-rank-num { font-family:var(--serif); font-size:1rem; color:var(--gold-2); min-width:1.2rem; }
.cd-rank-label { flex:1; font-size:0.86rem; color:var(--text); }
.cd-rank-btns { display:flex; gap:0.3rem; }
.cd-rank-btns button { border:1px solid var(--line-2); background:var(--panel); border-radius:6px; width:1.8rem; height:1.8rem; cursor:pointer; color:var(--text-2); }
.cd-rank-btns button:hover:not(:disabled) { border-color:var(--gold); color:var(--gold-2); }
.cd-rank-btns button:disabled { opacity:0.35; cursor:default; }

/* challenge */
.cd-challenge h4 { margin-top:0; }
.cd-challenge p { color:var(--text-2); font-size:0.9rem; line-height:1.65; margin:0 0 0.8rem; }
.cd-challenge-success { color:var(--text-2); }
.cd-challenge-done { display:flex; align-items:center; gap:0.5rem; font-size:0.86rem; color:var(--text-2); cursor:pointer; margin-top:1rem; }
.cd-challenge-done input { accent-color:var(--gold); }

/* quiz */
.cd-quiz-q { border:1px solid var(--line); border-radius:var(--radius-lg); background:var(--panel); padding:1.3rem clamp(1.1rem,3.5vw,1.8rem); margin-bottom:1rem; }
.cd-quiz-question { font-size:0.95rem; color:var(--text); margin:0 0 0.9rem; }
.cd-quiz-opts { display:flex; flex-direction:column; gap:0.5rem; }
.cd-quiz-opt { text-align:left; border:1px solid var(--line-2); border-radius:var(--radius); background:var(--bg); color:var(--text); font:inherit; font-size:0.86rem; padding:0.65rem 0.9rem; cursor:pointer; }
.cd-quiz-opt:hover:not(:disabled) { border-color:var(--gold); }
.cd-quiz-opt.is-correct { border-color:var(--gold); background:var(--gold-soft); color:var(--gold-2); font-weight:600; }
.cd-quiz-opt.is-wrong { border-color:var(--line-2); opacity:0.55; text-decoration:line-through; }
.cd-quiz-opt:disabled { cursor:default; }
.cd-quiz-explain { font-size:0.84rem; line-height:1.6; margin:0.9rem 0 0; padding-left:0.7rem; border-left:2px solid var(--line-2); color:var(--muted); }
.cd-quiz-explain.is-correct { border-left-color:var(--gold); color:var(--gold-2); }

/* takeaways */
.cd-takeaways { margin:0; padding-left:1.2rem; color:var(--text-2); line-height:1.7; }
.cd-takeaways li { margin-bottom:0.5rem; }

/* overview grid: mark no-video cards distinctly */
.cd-lesson-card-novideo { border-style:dashed; }
.cd-lesson-card-novideo .cd-lesson-go { color:var(--muted); }

/* ---------- Conscious Masculinity (30-day course) ---------- */
.cm-main { max-width:780px; }
.cm .eyebrow { margin:0; }
.cm-loading { color:var(--muted); padding:3rem 0; text-align:center; }
.cm-hero { margin-bottom:2rem; }
.cm-hero h1 { font-family:var(--serif); font-size:clamp(2.4rem,6vw,3.6rem); line-height:1.05; margin:0.4rem 0 0; color:var(--text); }
.cm-hero h1 em { color:var(--blush-2); font-style:italic; }
.cm-h1 { font-family:var(--serif); font-size:clamp(1.9rem,4.4vw,2.6rem); line-height:1.15; color:var(--text); margin:0.4rem 0 0; }
.cm-h2 { font-family:var(--serif); font-size:1.5rem; color:var(--text); margin:0.5rem 0 0.4rem; }
.cm-subtitle { font-family:var(--serif); font-size:1.3rem; color:var(--gold-2); margin:0.6rem 0 0; }
.cm-muted { color:var(--muted); margin:0.3rem 0 0; line-height:1.6; }
.cm-small { color:var(--muted); font-size:0.84rem; line-height:1.55; margin:0.5rem 0 0; }
.cm-label { font-size:0.68rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--muted); margin:1.1rem 0 0.3rem; }
.cm-gold { color:var(--gold-2); }
.cm-pre { white-space:pre-wrap; color:var(--text-2); margin:0.3rem 0 0; line-height:1.6; }
.cm-panel { border:1px solid var(--line); border-radius:var(--radius-lg); background:var(--panel); padding:1.5rem clamp(1.1rem,4vw,2rem); box-shadow:var(--shadow-1); }
.cm-center { text-align:center; margin-top:2rem; }
.cm-continue { margin-bottom:2.6rem; }
.cm-bar { height:6px; border-radius:999px; background:var(--panel-2); overflow:hidden; margin-top:1.2rem; }
.cm-bar span { display:block; height:100%; background:var(--gold); transition:width .3s; }
.cm-actions { display:flex; flex-wrap:wrap; align-items:center; gap:1rem; margin-top:1.4rem; }
.cm-center .cm-actions { justify-content:center; }
.cm-actions-end { margin-top:2.4rem; }
.cm-outline .cm-small { margin-bottom:0.6rem; }
.cm-rows { list-style:none; margin:0.6rem 0 0; padding:0; border-top:1px solid var(--line); }
.cm-rows > li { border-bottom:1px solid var(--line); }
.cm-row { display:flex; align-items:center; gap:1rem; padding:0.85rem 0.2rem; text-decoration:none; color:var(--text); }
a.cm-row:hover .cm-row-title { color:var(--gold-2); }
.cm-row.is-locked { opacity:0.55; }
.cm-row-num { width:2.2rem; flex:0 0 auto; font-size:0.85rem; color:var(--muted); font-variant-numeric:tabular-nums; }
.cm-row-num.is-done { color:var(--gold-2); }
.cm-row-title { flex:1; font-size:0.96rem; }
.cm-row-format { color:var(--muted); font-size:0.84rem; }
.cm-row-state { font-size:0.74rem; color:var(--muted); text-align:right; }
.cm-rows > li.cm-section-note { border-bottom:none; background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-lg); padding:1.1rem 1.3rem; margin:1rem 0; }
.cm-section-note h3 { font-family:var(--serif); font-size:1.3rem; margin:0.35rem 0 0.3rem; color:var(--text); }
.cm-section-note p:last-child { color:var(--muted); font-size:0.86rem; margin:0; line-height:1.55; }
.cm-article { margin-top:0.4rem; }
.cm-prose p { color:var(--text-2); font-size:1.04rem; line-height:1.75; margin:0 0 1rem; }
.cm-prose { margin-top:1.4rem; }
.cm-intro-sec { border-top:1px solid var(--line); padding-top:1.4rem; margin-top:1.6rem; }
.cm-list { margin:0 0 1rem; padding-left:1.3rem; color:var(--text-2); line-height:1.7; }
.cm-list li::marker { color:var(--gold); }
.cm-lesson-top { display:flex; justify-content:space-between; align-items:baseline; gap:1rem; }
.cm-lesson-top .cd-back { margin-bottom:1rem; }
.cm-step { margin-top:1.6rem; }
.cm-step-nav { display:flex; justify-content:space-between; align-items:center; gap:1rem; margin-top:2.4rem; }
.cm-next { border:none; cursor:pointer; font:inherit; font-weight:600; }
.cm-quote { font-family:var(--serif); font-size:1.45rem; line-height:1.4; color:var(--text); border:1px solid var(--line); border-radius:var(--radius-lg); background:var(--panel); padding:1.3rem 1.5rem; margin:1rem 0; }
.cm-quote-sm { margin:0.4rem 0 0; padding-left:0.8rem; border-left:2px solid var(--line-2); color:var(--muted); white-space:pre-wrap; }
.cm-q { margin:1.6rem 0 0.6rem; color:var(--text); }
.cm-choices { display:flex; flex-direction:column; gap:0.5rem; }
.cm-choices-wrap { flex-direction:row; flex-wrap:wrap; }
.cm-choice { text-align:left; border:1px solid var(--line-2); border-radius:var(--radius); background:var(--bg); color:var(--text); font:inherit; font-size:0.9rem; padding:0.6rem 0.95rem; cursor:pointer; transition:border-color .18s; }
.cm-choice:hover { border-color:var(--gold); }
.cm-choice.is-on { border-color:var(--gold); background:var(--gold-soft); color:var(--gold-2); font-weight:600; }
.cm-field-label { display:block; font-weight:600; color:var(--text); font-size:0.95rem; margin:0 0 0.5rem; }
.cm-checkin-label, label.cm-field-label[for="cm-checkin-note"] { font-weight:400; color:var(--muted); margin-top:1.2rem; }
.cm-field { width:100%; box-sizing:border-box; border:1px solid var(--line-2); border-radius:var(--radius); background:var(--bg); color:var(--text); font:inherit; font-size:0.92rem; padding:0.65rem 0.8rem; resize:vertical; }
.cm-field:focus { outline:2px solid var(--gold-soft); border-color:var(--gold); }
.cm-field-lg { font-size:1.05rem; margin-top:1rem; }
.cm-choices-wrap + .cm-field { margin-top:0.7rem; }
.cm-prompts { margin-top:1.4rem; display:flex; flex-direction:column; gap:1.4rem; }
.cm-prompts.cm-two { display:grid; }
.cm-two { display:grid; gap:1.2rem; grid-template-columns:1fr; }
@media (min-width:720px) { .cm-two { grid-template-columns:1fr 1fr; } }
.cm-textlink { background:none; border:none; padding:0; color:var(--gold-2); font:inherit; font-size:0.88rem; text-decoration:underline; cursor:pointer; margin-top:0.8rem; }
.cm-step-nav .cm-textlink { margin-top:0; color:var(--muted); }
.cm-example { margin-bottom:1rem; }
.cm-example p:not(.eyebrow):not(.cm-label) { color:var(--text-2); line-height:1.65; margin:0.5rem 0 0; }
.cm-section-intro { margin-bottom:1.6rem; }
.cm-questions { list-style:none; margin:1rem 0 0; padding:0; font-family:var(--serif); font-style:italic; font-size:1.2rem; color:var(--gold-2); line-height:1.6; }
.cm-context { border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:1.1rem 0; margin-top:1.2rem; }
.cm-context h3 { font-family:var(--serif); font-size:1.3rem; margin:0; color:var(--text); }
.cm-context h4 { font-size:0.88rem; color:var(--gold-2); margin:0.9rem 0 0.2rem; }

/* Admin › Content › Courses (Conscious Masculinity review & edit) */
.cm-adm-head { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:0.8rem; margin:1rem 0; }
.cm-adm-banner { border:1px solid var(--gold); background:var(--gold-soft); border-radius:var(--radius); padding:0.7rem 1rem; display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:0.6rem; margin:0.8rem 0 1.2rem; }
.cm-adm-banner strong { color:var(--gold-2); }
.cm-adm-list { list-style:none; margin:0; padding:0; border-top:1px solid var(--line); }
.cm-adm-list li { border-bottom:1px solid var(--line); }
.cm-adm-list a { display:flex; gap:0.9rem; align-items:center; padding:0.7rem 0.2rem; text-decoration:none; color:var(--text); }
.cm-adm-list a:hover .cm-adm-t { color:var(--gold-2); }
.cm-adm-n { width:2rem; color:var(--gold-2); font-size:0.85rem; font-variant-numeric:tabular-nums; }
.cm-adm-t { flex:1; }
.cm-adm-t small { display:block; color:var(--muted); font-size:0.78rem; }
.cm-adm-pill { font-size:0.7rem; border:1px solid var(--line-2); border-radius:999px; padding:0.15rem 0.6rem; color:var(--muted); white-space:nowrap; }
.cm-adm-pill.is-off { border-color:var(--blush); color:var(--blush-2); }
.cm-adm-nav { display:flex; justify-content:space-between; gap:0.8rem; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:0.7rem 0; margin:1rem 0; }
.cm-adm-sec { border-top:1px solid var(--line); padding:1.2rem 0; }
.cm-adm-sec > h3 { font-family:var(--serif); font-size:1.25rem; margin:0 0 0.4rem; color:var(--text); }
.cm-adm-sec > p.cm-small { margin:0 0 0.8rem; }
.cm-adm-grid { display:grid; gap:0.8rem; grid-template-columns:1fr; }
@media (min-width:720px) { .cm-adm-grid { grid-template-columns:2fr 1.2fr 0.6fr; } }
.cm-adm label.cm-adm-f { display:block; font-size:0.78rem; font-weight:600; color:var(--muted); margin-bottom:0.7rem; }
.cm-adm label.cm-adm-f input:not([type=checkbox]), .cm-adm label.cm-adm-f textarea, .cm-adm label.cm-adm-f select { display:block; width:100%; box-sizing:border-box; margin-top:0.3rem; border:1px solid var(--line-2); border-radius:var(--radius); background:var(--bg); color:var(--text); font:inherit; font-size:0.9rem; font-weight:400; padding:0.5rem 0.65rem; resize:vertical; }
.cm-adm-check { display:inline-flex; align-items:center; gap:0.45rem; font-size:0.86rem; color:var(--text-2); margin:0 1.2rem 0.6rem 0; }
.cm-adm-item { border:1px solid var(--line); border-radius:var(--radius); background:var(--panel); padding:0.8rem 0.9rem 0.2rem; margin-bottom:0.7rem; position:relative; }
.cm-adm-item-bar { display:flex; justify-content:flex-end; gap:0.3rem; margin-bottom:0.3rem; }
.cm-adm-item-bar button, .cm-adm-add { border:1px solid var(--line-2); background:var(--bg); border-radius:6px; font:inherit; font-size:0.75rem; padding:0.2rem 0.55rem; cursor:pointer; color:var(--text-2); }
.cm-adm-item-bar button:hover, .cm-adm-add:hover { border-color:var(--gold); color:var(--gold-2); }
.cm-adm-add { border-style:dashed; padding:0.35rem 0.8rem; margin-bottom:0.4rem; }
.cm-adm-actions { position:sticky; bottom:0; display:flex; flex-wrap:wrap; gap:0.8rem; align-items:center; justify-content:space-between; background:var(--bg); border-top:1px solid var(--line); padding:0.8rem 0; margin-top:1rem; z-index:2; }
.cm-adm-dirty { font-size:0.8rem; color:var(--blush-2); }

/* Results page follows the same section rhythm as the rest of the site:
   spacing comes from the global `section` padding, so drop the extra compass
   section margins (3.2rem/3rem) instead of stacking margin on top of padding. */
.compass-results .compass-dial-wrap,
.compass-results .compass-wheel-section,
.compass-results .compass-curric-section { margin-top:0; }
.compass-results .compass-actions { margin-top:0.6rem; }       /* was 2rem */

/* ============================================================
   ADMIN — Content hub (sub-tabs + Exams/Tools catalog)
   ============================================================ */
.lp-content-subtabs { display:flex; flex-wrap:wrap; gap:0.4rem; margin:0 0 1.2rem; border-bottom:1px solid var(--line); }
.lp-content-subtabs a { font-family:var(--sans); font-size:0.9rem; font-weight:600; color:var(--muted); padding:0.55rem 0.9rem; border-bottom:2px solid transparent; margin-bottom:-1px; }
.lp-content-subtabs a:hover { color:var(--gold-2); }
.lp-content-subtabs a.is-active { color:var(--text); border-bottom-color:var(--gold); }

.lp-cat-list { display:flex; flex-direction:column; gap:0.9rem; margin-top:0.4rem; }
.lp-cat-card { background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-lg); padding:1.1rem; display:flex; flex-direction:column; gap:0.7rem; }
.lp-cat-head { display:flex; align-items:center; gap:0.8rem; }
.lp-cat-move { display:flex; gap:0.3rem; }
.lp-cat-move .lp-admin-mini { padding:0.2rem 0.55rem; margin-left:0; font-size:0.85rem; line-height:1; }
.lp-cat-name { display:flex; flex-direction:column; gap:0.1rem; min-width:0; flex:1; }
.lp-cat-name strong { font-size:0.98rem; color:var(--text); }
.lp-cat-id { font-family:var(--sans); font-size:0.66rem; letter-spacing:0.04em; text-transform:uppercase; color:var(--muted); }
.lp-cat-enable { margin-left:auto; flex:0 0 auto; }
.lp-cat-field { display:flex; flex-direction:column; gap:0.3rem; font-size:0.78rem; font-weight:600; color:var(--text-2); }
.lp-cat-field .lp-admin-note { font-weight:400; }
.lp-cat-field input, .lp-cat-field textarea { font-family:var(--sans); font-size:0.9rem; font-weight:400; color:var(--text); background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:0.55rem 0.7rem; width:100%; box-sizing:border-box; resize:vertical; }
.lp-cat-field input:focus, .lp-cat-field textarea:focus { outline:none; border-color:var(--gold); box-shadow:0 0 0 3px var(--gold-soft); }

/* Content › Exams & Tools — "Edit wording" affordance on a tool card */
.lp-cat-editrow { display:flex; align-items:center; gap:0.7rem; flex-wrap:wrap; }
.lp-cat-edit { font-family:var(--sans); font-size:0.82rem; font-weight:700; color:var(--gold-2); }
.lp-cat-edit:hover { color:var(--gold); }

/* Tool wording editor (#/admin/content/tool/:id) */
.lp-admin-ghost { background:transparent; color:var(--gold-2); box-shadow:none; border:1px solid var(--line-2); }
.lp-admin-ghost:hover { background:var(--bg-2); color:var(--gold); border-color:var(--gold); transform:none; box-shadow:none; }
.lp-admin-back { font-family:var(--sans); font-size:0.86rem; font-weight:600; color:var(--gold-2); }
.lp-admin-back:hover { color:var(--gold); }
.lp-admin-saverow .lp-admin-back { margin-right:auto; }
.lp-te-field { display:flex; flex-direction:column; gap:0.3rem; margin-bottom:0.9rem; }
.lp-te-field:last-child { margin-bottom:0; }
.lp-te-lab { font-size:0.78rem; font-weight:600; color:var(--text-2); }
.lp-te-lab .lp-admin-note { font-weight:400; margin:0; }
.lp-te-input, .lp-te-area { font-family:var(--sans); font-size:0.9rem; font-weight:400; color:var(--text); background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:0.55rem 0.7rem; width:100%; box-sizing:border-box; resize:vertical; }
.lp-te-input:focus, .lp-te-area:focus { outline:none; border-color:var(--gold); box-shadow:0 0 0 3px var(--gold-soft); }
.lp-te-input::placeholder, .lp-te-area::placeholder { color:var(--muted); opacity:0.75; }
.lp-te-section { border-top:1px solid var(--line); padding-top:1rem; margin-top:1rem; }
.lp-te-section:first-of-type { border-top:none; padding-top:0; margin-top:0; }
.lp-te-qs { display:flex; flex-direction:column; gap:0.5rem; margin-top:0.6rem; }
.lp-te-qrow { display:flex; align-items:center; gap:0.6rem; }
.lp-te-qnum { flex:0 0 auto; min-width:3.2rem; font-family:var(--sans); font-size:0.64rem; letter-spacing:0.04em; text-transform:uppercase; color:var(--muted); }
.lp-te-scale { display:flex; flex-direction:column; gap:0.5rem; }
.lp-te-scaleitem { display:flex; align-items:center; gap:0.6rem; }
.lp-te-scalek { flex:0 0 auto; width:1.4rem; text-align:center; font-weight:700; color:var(--gold-2); }
.lp-te-cat { border-top:1px solid var(--line); padding-top:0.9rem; margin-top:0.9rem; }
.lp-te-cat:first-of-type { border-top:none; padding-top:0; margin-top:0; }
.lp-te-catkey { font-family:var(--sans); font-size:0.66rem; letter-spacing:0.04em; text-transform:uppercase; color:var(--muted); margin:0 0 0.5rem; }

/* Membership — tiers side by side × content access (#/admin/membership) */
.lp-admin-wrap.lp-admin-wrap-wide { max-width:1240px; }
.lp-memx-intro { margin:0 0 1rem; max-width:80ch; }
.lp-memx-bar { margin:0 0 1rem; }
.lp-memx-bar.lp-admin-saverow-bottom { margin:1.2rem 0 0; }
.lp-memx-bar .lp-admin-ghost[disabled] { opacity:0.45; cursor:default; }
.lp-memx-bar .lp-admin-mini { margin-left:0; }
.lp-memx-status { font-size:0.82rem; color:var(--muted); }
.lp-memx-status.is-dirty { color:var(--gold-2); font-weight:600; }
.lp-memx-status.is-err { color:#a3312a; font-weight:600; }
.lp-memx-scroll { overflow-x:auto; max-width:100%; border:1px solid var(--line-2); border-radius:var(--radius-lg); background:#fff; }
.lp-memx-scroll:focus-visible { outline:2px solid var(--gold); outline-offset:2px; }
.lp-memx { width:100%; min-width:calc(250px + var(--tiers, 3) * 200px); border-collapse:separate; border-spacing:0; table-layout:fixed; font-size:0.88rem; }
.lp-memx col.lp-memx-labelcol { width:250px; }
.lp-memx th, .lp-memx td { padding:0.5rem 0.8rem; border-bottom:1px solid var(--line); border-left:1px solid var(--line); text-align:left; vertical-align:middle; font-weight:400; background:#fff; }
.lp-memx tr > :first-child { position:sticky; left:0; z-index:1; border-left:none; box-shadow:1px 0 0 var(--line); }
.lp-memx thead th { vertical-align:top; padding:0.9rem 0.8rem 0.8rem; background:var(--panel); border-bottom:1px solid var(--line-2); }
.lp-memx thead th:first-child { z-index:2; vertical-align:bottom; }
.lp-memx-tools { display:flex; gap:0.3rem; margin-bottom:0.6rem; }
.lp-memx-tools .lp-admin-mini { margin-left:0; padding:0.2rem 0.55rem; font-size:0.8rem; line-height:1.2; }
.lp-memx-tools .lp-memx-remove { margin-left:auto; }
.lp-memx-remove.is-armed { border-color:#c0564d; color:#a3312a; background:rgba(192,86,77,0.08); }
.lp-memx input:not([type="checkbox"]), .lp-memx textarea { width:100%; box-sizing:border-box; font-family:var(--sans); font-size:0.86rem; font-weight:400; color:var(--text); background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:0.4rem 0.55rem; }
.lp-memx textarea { resize:vertical; line-height:1.45; }
.lp-memx input:not([type="checkbox"]):focus, .lp-memx textarea:focus { outline:none; border-color:var(--gold); box-shadow:0 0 0 3px var(--gold-soft); }
.lp-memx input.lp-memx-name { font-family:var(--serif); font-size:1.12rem; font-weight:600; padding:0.3rem 0.45rem; border-color:transparent; background:transparent; }
.lp-memx input.lp-memx-name:hover { border-color:var(--line); background:#fff; }
.lp-memx-price { display:grid; grid-template-columns:minmax(0,1fr) 5rem; gap:0.4rem; margin:0.4rem 0; }
.lp-memx-foot { display:flex; align-items:center; justify-content:space-between; gap:0.5rem; flex-wrap:wrap; margin-top:0.55rem; }
.lp-memx-pub { display:inline-flex; font-size:0.8rem; }
.lp-memx-count { font-size:0.74rem; color:var(--muted); font-variant-numeric:tabular-nums; white-space:nowrap; }
.lp-memx-new { display:inline-block; margin-top:0.5rem; font-size:0.66rem; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:var(--gold-2); background:var(--gold-soft); border-radius:var(--radius-pill); padding:0.2rem 0.6rem; }
.lp-memx-glabel { display:block; font-size:0.66rem; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold-2); }
.lp-memx-gnote { display:block; margin-top:0.15rem; font-size:0.74rem; font-weight:400; letter-spacing:0; text-transform:none; color:var(--muted); }
.lp-memx-group th, .lp-memx-group td { background:var(--panel-2); border-bottom-color:var(--line-2); }
.lp-memx-all { display:inline-flex; align-items:center; gap:0.45rem; font-size:0.76rem; font-weight:600; color:var(--text-2); cursor:pointer; font-variant-numeric:tabular-nums; }
.lp-memx input[type="checkbox"] { width:1.05rem; height:1.05rem; margin:0; accent-color:var(--gold-2); cursor:pointer; }
.lp-memx td.lp-memx-cell { padding:0; text-align:center; }
.lp-memx-check { display:flex; align-items:center; justify-content:center; width:100%; min-height:2.3rem; cursor:pointer; }
.lp-memx-row:hover > * { background:#f6f2ec; }
.lp-memx-item { display:block; color:var(--text); font-weight:500; line-height:1.3; }
.lp-memx-row.is-off .lp-memx-item { color:var(--muted); }
.lp-memx-flag { display:inline-block; margin-top:0.25rem; font-size:0.62rem; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:var(--muted); border:1px solid var(--line-2); border-radius:var(--radius-pill); padding:0.05rem 0.45rem; }
.lp-memx-hint { display:block; margin-top:0.2rem; font-size:0.72rem; font-weight:400; color:var(--muted); }
.lp-memx-textrow th { vertical-align:top; padding-top:0.7rem; }
.lp-memx-textrow td.lp-memx-cell { padding:0.45rem 0.55rem; vertical-align:top; }
.lp-memx-cardhead th { padding:0; }
.lp-memx-disclose { all:unset; box-sizing:border-box; display:flex; align-items:baseline; flex-wrap:wrap; gap:0.3rem 0.6rem; width:100%; padding:0.7rem 0.8rem; cursor:pointer; }
.lp-memx-disclose:hover { background:none; transform:none; box-shadow:none; }
.lp-memx-disclose:hover .lp-memx-glabel { color:var(--gold); }
.lp-memx-disclose:focus-visible { outline:2px solid var(--gold); outline-offset:-2px; }
.lp-memx-caret { width:0.8rem; font-size:0.8rem; color:var(--gold-2); }
.lp-memx-cardhead .lp-memx-gnote { display:inline; margin:0; }
.lp-memx tbody:last-child tr:last-child > * { border-bottom:none; }
@media (max-width:640px){
  .lp-memx { min-width:calc(170px + var(--tiers, 3) * 190px); }
  .lp-memx col.lp-memx-labelcol { width:170px; }
}

/* Consistent 'Back to the library' control on every #/learn completion screen */
.bp-retake-row .bp-return-lib { display:block; margin:0.7rem auto 0; text-decoration:none; }

/* ---------- saved results page + library status tags ---------- */
.lp-done-tag{display:inline-block;margin-left:0.5rem;background:var(--sage-soft,#e6efe6);color:var(--sage-2,#3f6b4a);border:1px solid var(--line-2);border-radius:var(--radius-pill);padding:0.2rem 0.65rem;font-size:0.6rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;margin-bottom:0.6rem;}
.lp-done-tag-wip{background:var(--gold-soft);color:var(--gold-2);}
.lp-results-link{color:var(--gold-2);font-weight:600;text-decoration:none;}
.lp-res-wrap{max-width:760px;}
.lp-res-card{background:var(--card,#fff);border:1px solid var(--line-2);border-radius:var(--radius-lg);padding:1.4rem 1.5rem;margin-bottom:1.1rem;}
.lp-res-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;}
.lp-res-head h3{margin:0;font-family:var(--serif);font-weight:500;}
.lp-res-meta{margin:0.2rem 0 0;font-size:0.72rem;color:var(--muted);letter-spacing:0.06em;text-transform:uppercase;}
.lp-res-headline{font-family:var(--serif);font-size:1.35rem;margin:0.9rem 0 0.2rem;}
.lp-res-msg{color:var(--text-2);margin:0.2rem 0 0.8rem;}
.lp-res-bars{margin-top:0.8rem;}
.lp-res-more{margin-top:0.9rem;border-top:1px solid var(--line-2);padding-top:0.7rem;}
.lp-res-more summary{cursor:pointer;color:var(--gold-2);font-weight:600;font-size:0.85rem;}
.lp-res-sec h4{margin:0.9rem 0 0.2rem;font-size:0.8rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted);}
.lp-res-sec p{margin:0;color:var(--text-2);}
.lp-res-empty{text-align:center;color:var(--text-2);padding:2rem 0;}

/* ---------- member sign-in / account ---------- */
.lp-auth-switch{margin:1.1rem 0 0;font-size:0.9rem;color:var(--text-2);text-align:center;}
.lp-auth-switch a,.lp-auth-note a,.lp-res-guest a{color:var(--gold-2);font-weight:600;}
.lp-auth-note{margin:0.8rem 0 0;font-size:0.78rem;color:var(--muted);text-align:center;}
.lp-auth-links{display:flex;flex-wrap:wrap;gap:0.5rem 1.1rem;}
.lp-res-guest{background:var(--gold-soft);border:1px solid var(--line-2);border-radius:var(--radius-lg);padding:0.8rem 1.1rem;margin:0 0 1.1rem;font-size:0.9rem;color:var(--text-2);text-align:center;}

.lp-auth-rule{border:0;border-top:1px solid var(--line-2);margin:1.6rem 0 1rem;}
.lp-danger{background:#8a2b2b !important;border-color:#8a2b2b !important;}

/* Content › Exams & Tools — shared-registry cards (type chip, route, hidden state) */
.lp-cat-secsub { margin:-0.5rem 0 0.9rem; }
.lp-cat-meta { display:flex; align-items:center; gap:0.5rem; flex-wrap:wrap; margin-top:0.15rem; }
.lp-cat-meta a.lp-cat-id { text-transform:none; letter-spacing:0; font-size:0.72rem; color:var(--muted); }
.lp-cat-meta a.lp-cat-id:hover { color:var(--gold-2); }
.lp-cat-type { font-size:0.62rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; border-radius:var(--radius-pill); padding:0.12rem 0.55rem; background:var(--gold-soft); color:var(--gold-2); }
.lp-cat-type-exam { background:rgba(39,43,54,0.09); color:var(--text-2); }
.lp-cat-type-course { background:rgba(79,125,92,0.13); color:#3f6b4b; }
.lp-cat-card.is-off { background:var(--bg-2); border-style:dashed; }
.lp-cat-card.is-off .lp-cat-name strong { color:var(--muted); }
.lp-cat-hint { margin:0.15rem 0 0; font-weight:400; }
.lp-cat-lab { display:flex; align-items:baseline; gap:0.5rem; }
.lp-cat-lab .lp-admin-note { margin:0; font-weight:400; font-size:0.74rem; }

/* Admin › Members — create & manage member accounts */
.lp-mbr-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.lp-mbr-head .lp-admin-h2 { margin:0; }
.lp-mbr-form { margin-top:1rem; }
.lp-mbr-hint { display:block; font-size:0.74rem; font-weight:400; color:var(--muted); }
.lp-mbr-tools { display:flex; flex-wrap:wrap; gap:0.8rem; padding:0.5rem 0.5rem 0.9rem; }
.lp-mbr-tools label { display:flex; flex-direction:column; gap:0.3rem; font-size:0.74rem; font-weight:600; color:var(--text-2); }
.lp-mbr-tools .lp-mbr-search { flex:1 1 220px; }
.lp-mbr-tools input, .lp-mbr-tools select { font-family:var(--sans); font-size:0.88rem; color:var(--text); background:#fff; border:1px solid var(--line-2); border-radius:var(--radius); padding:0.5rem 0.65rem; }
.lp-mbr-tools input:focus, .lp-mbr-tools select:focus { outline:none; border-color:var(--gold); box-shadow:0 0 0 3px var(--gold-soft); }
.lp-mbr-pill { display:inline-block; white-space:nowrap; font-size:0.66rem; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; border-radius:var(--radius-pill); padding:0.22rem 0.6rem; margin-top:0.5rem; }
.lp-admin-table .lp-mbr-pill { margin-top:0; }
.lp-mbr-pill.is-active { background:rgba(79,125,92,0.14); color:#3f6b4b; }
.lp-mbr-pill.is-pending { background:var(--gold-soft); color:var(--gold-2); }
.lp-mbr-pill.is-ended { background:rgba(169,118,42,0.15); color:#8a5e1c; }
.lp-mbr-pill.is-disabled { background:rgba(138,43,43,0.12); color:#8a2b2b; }
.lp-mbr-pill.is-temp { background:rgba(39,43,54,0.08); color:var(--text-2); }
.lp-mbr-pill.is-expired { background:rgba(150,40,40,0.12); color:#8f2a2a; }
.lp-mbr-temp { border-color:var(--gold); box-shadow:0 0 0 3px var(--gold-soft); margin-bottom:1.2rem; }
.lp-mbr-pwrow { display:flex; align-items:center; gap:0.8rem; flex-wrap:wrap; margin:0.8rem 0; }
.lp-mbr-pwlabel { font-size:0.74rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:var(--gold-2); }
.lp-mbr-pw { font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:1.15rem; letter-spacing:0.04em; background:#fff; border:1px dashed var(--gold); border-radius:var(--radius); padding:0.35rem 0.7rem; user-select:all; }
.lp-mbr-welcome { width:100%; box-sizing:border-box; font-family:var(--sans); font-size:0.86rem; line-height:1.5; color:var(--text); background:#fff; border:1px solid var(--line-2); border-radius:var(--radius); padding:0.7rem 0.8rem; resize:vertical; }
.lp-mbr-actions { display:flex; align-items:center; flex-wrap:wrap; gap:0.9rem; margin:0.8rem 0 0.3rem; }
.lp-mbr-actions .lp-admin-primary { align-self:center; }
.lp-mbr-inline { flex-direction:row; align-items:flex-end; flex-wrap:wrap; }
.lp-mbr-inline label { max-width:12rem; }
button.is-armed { outline:2px solid #8a2b2b; outline-offset:2px; }
.lp-admin-form[hidden], .lp-mbr-form[hidden] { display:none; }

/* Member access window: "N days left" bar (final week) and ended state */
.lp-access-notice { display:flex; align-items:center; justify-content:center; gap:0.8rem; background:var(--panel-2); color:var(--text); border-bottom:1px solid var(--line); padding:0.6rem clamp(1rem,5vw,3.5rem); font-size:0.88rem; line-height:1.45; text-align:center; }
.lp-access-notice-x { flex:0 0 auto; background:none; border:0; color:var(--muted); font-size:1.2rem; line-height:1; cursor:pointer; padding:0.15rem 0.35rem; border-radius:6px; }
.lp-access-notice-x:hover, .lp-access-notice-x:focus-visible { color:var(--text); background:rgba(39,43,54,0.06); }
.lp-auth-note.is-ended { color:#8f2a2a; }
.lp-mbr-ending { color:#8a5e1c; font-weight:600; }

/* Content locked by membership tier (Phase 4) */
.lp-lock-tag { display:inline-flex; align-items:center; gap:0.3rem; margin-left:0.4rem; padding:0.18rem 0.55rem; border-radius:var(--radius-pill, 999px); background:rgba(39,43,54,0.08); color:var(--text-2); font-size:0.7rem; font-weight:600; letter-spacing:0.04em; text-transform:uppercase; vertical-align:middle; }
.lp-lock-tag svg { width:12px; height:12px; }
.lp-locked { text-align:center; }
.lp-locked .lp-admin-sub { margin-left:auto; margin-right:auto; }
.lp-locked-mark { display:inline-flex; align-items:center; justify-content:center; width:52px; height:52px; border-radius:50%; background:var(--gold-soft); color:var(--gold-2); margin:0.4rem 0 0.8rem; }
.lp-locked .lp-auth-links { justify-content:center; align-items:center; display:flex; flex-wrap:wrap; gap:0.8rem; margin-top:1.2rem; }
a.lp-locked-btn { display:inline-flex; align-items:center; font-family:var(--sans); font-size:0.92rem; font-weight:600; letter-spacing:0.01em; padding:0.8rem 1.6rem; border-radius:var(--radius-pill, 999px); background:var(--gold); color:#fff; text-decoration:none; box-shadow:0 10px 26px rgba(160,138,129,0.30); transition:transform .18s ease, background-color .25s ease; }
a.lp-locked-btn:hover { background:var(--gold-2); color:#fff; transform:translateY(-2px); }
.lp-blueprint-feature .lp-lock-tag { background:rgba(237,234,229,0.14); color:var(--on-dark); }
.lp-memx-members { display:block; margin-top:0.35rem; font-size:0.78rem; color:var(--muted); text-decoration:none; }
.lp-memx-members:hover { color:var(--gold-2); }

/* Retake waiting period — admin field + member wait screen */
.lp-cat-retake-row { display:flex; align-items:center; gap:0.8rem; flex-wrap:wrap; }
.lp-cat-retake-row input { width:7.5rem; flex:0 0 auto; }
.lp-retake .lp-locked-mark { color:var(--gold-2); }

/* Course video that can't be played (not in plan, membership ended, …) */
.lp-video-denied { padding:2.2rem 1.4rem; border:1px solid var(--line-2); border-radius:var(--radius-lg); background:var(--panel); color:var(--text-2); text-align:center; font-size:0.98rem; line-height:1.6; }

/* "A new version is ready" banner (version-watch.js) */
#lp-update-banner { position:fixed; left:50%; bottom:20px; transform:translateX(-50%); z-index:250; display:flex; align-items:center; gap:0.8rem; max-width:calc(100% - 32px); padding:0.6rem 0.7rem 0.6rem 1.2rem; background:var(--plum); color:var(--on-dark); border-radius:var(--radius-pill); box-shadow:var(--shadow-2); font-size:0.88rem; }
#lp-update-banner .lp-update-go { padding:0.45rem 1rem; font-size:0.82rem; box-shadow:none; }
#lp-update-banner .lp-update-x { padding:0.3rem 0.6rem; background:transparent; color:var(--on-dark-muted); box-shadow:none; font-size:1.1rem; line-height:1; }
#lp-update-banner .lp-update-x:hover { color:#fff; transform:none; }
@media (max-width:520px) { #lp-update-banner { font-size:0.82rem; gap:0.5rem; padding-left:1rem; } }

/* Activity log: who-badges, problems, member filter */
.lp-activity-kind { display:inline-block; margin-right:0.3rem; padding:0.05rem 0.45rem; border-radius:var(--radius-pill, 999px); font-size:0.66rem; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; vertical-align:1px; background:rgba(39,43,54,0.08); color:var(--text-2); }
.lp-activity-kind.is-member { background:var(--gold-soft); color:var(--gold-2); }
.lp-activity-kind.is-visitor { background:rgba(39,43,54,0.05); color:var(--muted); }
.lp-activity-list li.is-warn .lp-activity-what { color:#8f2a2a; }
.lp-activity-email { background:none; border:0; box-shadow:none; padding:0; font:inherit; font-size:0.82rem; color:var(--gold-2); text-decoration:underline; text-underline-offset:2px; cursor:pointer; }
.lp-activity-email:hover { background:none; transform:none; color:var(--text); }
.lp-activity-check .lp-activity-checkrow { display:flex; align-items:center; gap:0.4rem; height:2.3rem; font-size:0.9rem; font-weight:400; text-transform:none; letter-spacing:normal; color:var(--text); }
.lp-activity-member { margin:0.5rem 0 0; padding:0.5rem 0.8rem; border-radius:var(--radius); background:var(--gold-soft); font-size:0.88rem; }
.lp-activity-foot [hidden], .lp-activity-member[hidden] { display:none !important; }

/* Member header (signed-in members): Dashboard · Learn · My Results + name menu */
.topnav--member .nav-link.is-active { color:var(--gold); }
.nav-member .menu { min-width:260px; }
.menu button.mrow.nav-member-signout { display:flex; width:100%; gap:0.75rem; align-items:center; padding:0.6rem 0.7rem; border:none; border-radius:var(--radius); background:transparent; box-shadow:none; color:var(--text); text-align:left; font:inherit; cursor:pointer; transition:background-color .18s; }
.menu button.mrow.nav-member-signout:hover { background:var(--bg-2); transform:none; }

/* Finish-line button back to the member dashboard (results & completion screens) */
.lp-dash-btn { display:inline-flex; align-items:center; justify-content:center; gap:0.4rem; padding:0.85rem 1.7rem; margin:0 0.5rem 0.8rem; border-radius:var(--radius-pill); background:var(--gold); color:#fff; font-weight:600; font-size:0.92rem; text-decoration:none; box-shadow:0 10px 26px rgba(160,138,129,0.30); transition:background-color .2s, transform .2s; }
.lp-dash-btn:hover { background:var(--gold-2); color:#fff; transform:translateY(-2px); text-decoration:none; }
.bp-retake-row > .lp-dash-btn { display:flex; width:max-content; max-width:100%; margin:0 auto 1.1rem; }

/* Menu items / cards for things that aren't available yet ("Coming Soon") */
.menu .mrow.is-soon { display:flex; gap:0.75rem; align-items:flex-start; padding:0.6rem 0.7rem; border-radius:var(--radius); color:var(--text); opacity:.6; cursor:default; }
.menu .mrow.is-soon .md { font-style:italic; }
.path .learn.is-soon { font-size:0.82rem; font-weight:600; color:var(--gold-2); opacity:.6; cursor:default; }

/* Admin › Content › Lessons — edit a major (name, short name, description) */
.lp-cur-medit { font-family:var(--sans); font-size:.78rem; font-weight:600; color:var(--gold-2); background:transparent; border:1px dashed var(--gold); border-radius:var(--radius-pill); padding:.38rem .75rem; box-shadow:none; cursor:pointer; }
.lp-cur-medit:hover { background:var(--gold-soft); color:var(--text); transform:none; }
.lp-cur-medit-panel { margin:.9rem 0 .4rem; padding:1rem 1.1rem; border:1px solid var(--line); border-radius:var(--radius); background:#fff; }
.lp-cur-medit-panel[hidden] { display:none; }
.lp-cur-medit-head { display:flex; flex-direction:column; gap:.25rem; margin-bottom:.7rem; }
.lp-cur-medit-grid { display:grid; grid-template-columns:1fr 1fr; gap:.4rem 1rem; }
.lp-cur-medit-grid input, .lp-cur-medit-grid textarea { width:100%; box-sizing:border-box; font:inherit; font-size:.92rem; padding:.55rem .7rem; border:1px solid var(--line); border-radius:var(--radius); background:#fff; color:var(--text); }
.lp-cur-medit-wide { grid-column:1 / -1; }
.lp-cur-medit-actions { display:flex; flex-wrap:wrap; align-items:center; gap:.6rem 1rem; margin-top:.7rem; }
.lp-cur-medit-review { margin-top:.9rem; padding-top:.9rem; border-top:1px solid var(--line); font-size:.9rem; }
.lp-cur-medit-bulk { font-size:.85rem; color:var(--muted); }
.lp-cur-medit-list { max-height:420px; overflow-y:auto; border:1px solid var(--line); border-radius:var(--radius); padding:.2rem .7rem; background:var(--bg); }
.lp-cur-medit-dayhead { font-size:.72rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--gold-2); margin:.7rem 0 .2rem; }
.lp-cur-medit-row { display:flex; gap:.55rem; align-items:flex-start; padding:.3rem 0; font-size:.86rem; line-height:1.45; color:var(--text-2); cursor:pointer; }
.lp-cur-medit-row input { margin-top:.25rem; flex:0 0 auto; }
.lp-cur-medit-field { display:inline-block; margin-right:.3rem; font-size:.7rem; font-weight:600; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; }
.lp-cur-medit-row del { color:#8f2a2a; }
.lp-cur-medit-row ins { color:#2f6b3a; text-decoration:none; background:rgba(47,107,58,.1); border-radius:3px; padding:0 2px; margin-left:2px; }
@media (max-width:640px) { .lp-cur-medit-grid { grid-template-columns:1fr; } }


/* Admin layout (Nov 2026): full-width pages with half the side padding, a
   full-width page description, and a marked level-1 tab. Scoped to the admin
   shell — member sign-in/account cards (.lp-admin-login) are unchanged. */
.lp-admin:not(.lp-admin-login) { padding-left:clamp(0.55rem,2.5vw,1.75rem); padding-right:clamp(0.55rem,2.5vw,1.75rem); }
.lp-admin-wrap, .lp-admin-wrap.lp-admin-wrap-wide { max-width:none; }
.lp-admin-sub { max-width:none; }
.lp-memx-intro { max-width:none; } /* Membership page intro note: full width too */
.lp-admin-tabs a.is-active { color:var(--text); background:var(--gold-soft); border-radius:8px 8px 0 0; border-bottom:3px solid var(--gold-2); padding-bottom:calc(0.6rem - 1px); margin-bottom:-1px; }
.lp-admin-tabs a.is-active:hover { color:var(--text); background:var(--gold-soft); border-bottom-color:var(--gold-2); }

/* Admin › Members: welcome email templates */
.lp-mbr-tplpick { display:flex; flex-direction:column; gap:.35rem; font-size:.78rem; font-weight:600; color:var(--text-2); margin:.4rem 0 .8rem; max-width:420px; }
.lp-mbr-tplpick select { font-family:var(--sans); font-size:.95rem; padding:.5rem .7rem; border:1px solid var(--line-2); border-radius:var(--radius); background:#fff; color:var(--text); }
.lp-mbr-subject { display:flex; gap:.7rem; align-items:baseline; margin:0 0 .5rem; font-size:.92rem; }
.lp-mbr-tplform { display:flex; flex-direction:column; gap:.9rem; max-width:760px; }
.lp-mbr-tplform textarea { font-family:var(--sans); font-size:.92rem; line-height:1.5; }
.lp-mbr-tokens summary { cursor:pointer; font-size:.85rem; font-weight:600; color:var(--gold-2); }
.lp-mbr-tokens ul { list-style:none; padding:0; margin:.6rem 0; display:grid; gap:.35rem; font-size:.85rem; color:var(--text-2); }
.lp-mbr-token { font-family:ui-monospace,Menlo,monospace; font-size:.8rem; padding:.15rem .45rem; border-radius:6px; border:1px solid var(--line-2); background:var(--bg-2); color:var(--text); box-shadow:none; cursor:pointer; }
.lp-mbr-token:hover { border-color:var(--gold); transform:none; background:var(--bg-2); }
.lp-mbr-tplpreview { border:1px dashed var(--line-2); border-radius:var(--radius); padding:.8rem 1rem; background:var(--panel); }
.lp-mbr-tplpreview pre { margin:.3rem 0 0; white-space:pre-wrap; font-family:var(--sans); font-size:.88rem; color:var(--text-2); }
.lp-mbr-tplprev-subj { margin:.2rem 0 0; font-size:.88rem; font-weight:600; }
.lp-mbr-danger { color:#a33a3a !important; }

/* Home page: "Join the Waitlist" (visitors) */
.lp-cta-btn { display:inline-flex; align-items:center; justify-content:center; gap:.4rem; padding:0.9rem 1.8rem; border-radius:var(--radius-pill); background:var(--gold); color:#fff; font-family:var(--sans); font-size:0.92rem; font-weight:600; letter-spacing:0.01em; text-decoration:none; border:none; cursor:pointer; box-shadow:0 10px 26px rgba(160,138,129,0.30); transition:transform .18s ease, background-color .25s ease; }
.lp-cta-btn:hover { background:var(--gold-2); color:#fff; transform:translateY(-2px); }
.lp-waitlist { padding:clamp(4rem,9vw,7rem) clamp(1rem,4vw,3.5rem); background:var(--bg); }
.lp-waitlist > .lp-waitlist-wrap { max-width:640px; width:100%; margin-left:auto !important; margin-right:auto !important; text-align:center; }
.lp-waitlist h2 { font-size:clamp(2rem,4.4vw,2.8rem); }
.lp-waitlist-lede { color:var(--text-2); font-size:1.08rem; margin:.9rem 0 2rem; }
.lp-waitlist-form, .lp-wl-done { text-align:left; background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-lg); padding:clamp(1.3rem,3vw,2rem); box-shadow:var(--shadow-1); }
.lp-waitlist-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem 1.1rem; }
.lp-waitlist-grid label { display:flex; flex-direction:column; gap:.4rem; font-size:.85rem; font-weight:600; color:var(--text); }
.lp-waitlist-grid .lp-wl-wide { grid-column:1 / -1; }
.lp-waitlist-grid input, .lp-waitlist-grid select { font-family:var(--sans); font-size:1rem; padding:.75rem .9rem; border:1px solid var(--line-2); border-radius:var(--radius); background:#fff; color:var(--text); }
.lp-waitlist-grid input:focus, .lp-waitlist-grid select:focus { outline:2px solid var(--gold); outline-offset:1px; }
.lp-wl-hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.lp-wl-consent { display:flex; gap:.7rem; align-items:flex-start; margin:1.2rem 0 .4rem; font-size:.92rem; color:var(--text-2); cursor:pointer; }
.lp-wl-consent input { width:18px; height:18px; margin-top:.15rem; accent-color:var(--gold-2); flex-shrink:0; }
.lp-wl-error { background:rgba(163,58,58,.08); color:#a33a3a; border-radius:var(--radius); padding:.7rem .9rem; font-size:.9rem; margin:.6rem 0 0; }
.lp-wl-submit { width:100%; margin-top:1rem; }
.lp-wl-done { text-align:center; }
.lp-wl-done-h { font-family:var(--serif); font-size:1.6rem; margin:0 0 .4rem; color:var(--text); }
@media (max-width:560px) { .lp-waitlist-grid { grid-template-columns:1fr; } }
/* Admin: waitlist status */
.lp-mbr-pill.is-waitlist { background:rgba(160,138,129,0.16); color:var(--gold-2); }
.lp-mbr-convert { border:1px solid var(--gold); }

/* Admin › Membership › Curriculum access (per tier) */
.lp-memx td.lp-memx-curcell { padding:0.45rem 0.55rem; vertical-align:top; text-align:left; }
.lp-memx-curcell select, .lp-memx-curcell input[type=number] { width:100%; font:inherit; font-size:0.85rem; padding:0.35rem 0.4rem; border:1px solid var(--line, #ddd); border-radius:6px; background:var(--paper, #fff); color:inherit; }
.lp-memx-curn { display:flex; align-items:center; gap:0.4rem; margin-top:0.35rem; font-size:0.78rem; color:var(--muted, #666); }
.lp-memx-curn[hidden] { display:none; }
.lp-memx-curn input[type=number] { width:4.2rem; }
.lp-memx-cursum { display:block; font-size:0.78rem; color:var(--muted, #666); line-height:1.3; }

/* Curriculum access: locked Majors / days in the Entrance Exam curriculum browser */
.compass-major-tab.is-locked { opacity:0.6; }
.compass-day-card.is-locked { opacity:0.6; box-shadow:none; cursor:default; }
.compass-day-card.is-locked:hover { transform:none; border-color:var(--line); }
.compass-day-card.is-locked p { color:var(--muted); font-size:0.85rem; margin:0.4rem 0 0; }
.compass-locked-note { display:flex; gap:0.8rem; align-items:flex-start; background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-lg); padding:1.1rem 1.3rem; margin:0 0 1.6rem; }
.compass-locked-note p { margin:0; color:var(--text); }

/* Admin › Site Controls › "Show the Membership section on the home page" off */
.lp-hide-membership .lp-mship-link { display:none !important; }

/* Admin › Members › a member › Engagement */
.lp-eng-range { display:flex; flex-wrap:wrap; gap:0.35rem; }
.lp-eng-rbtn { font:600 0.8rem var(--sans); min-height:36px; padding:0 0.85rem; border-radius:var(--radius-pill); border:1px solid var(--line-2); background:var(--panel); color:var(--text-2); box-shadow:none; }
.lp-eng-rbtn:hover { background:var(--panel-2); transform:none; box-shadow:none; color:var(--text); }
.lp-eng-rbtn.is-on { background:var(--plum); border-color:var(--plum); color:#fff; }
.lp-eng-tiles { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:0.7rem; margin:1rem 0 1.2rem; }
@media (max-width:1000px) { .lp-eng-tiles { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:560px) { .lp-eng-tiles { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.lp-eng-tile { display:flex; flex-direction:column; gap:0.15rem; padding:0.8rem 0.9rem; background:#fff; border:1px solid var(--line); border-radius:12px; min-width:0; }
.lp-eng-k { font-size:0.68rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold-2); }
.lp-eng-tile b { font-family:var(--serif); font-weight:500; font-size:1.7rem; line-height:1.1; }
.lp-eng-n { font-size:0.76rem; color:var(--muted); }
.lp-eng-strip { display:flex; align-items:flex-end; gap:2px; height:64px; padding:0 2px; border-bottom:1px solid var(--line); }
.lp-eng-bar { flex:1; min-width:2px; background:var(--gold); border-radius:3px 3px 0 0; }
.lp-eng-bar.is-zero { background:var(--panel-2); }
.lp-eng-axis { display:flex; justify-content:space-between; font-size:0.72rem; color:var(--muted); margin-top:0.3rem; }
.lp-eng-h3 { font-size:1.05rem; margin:1.3rem 0 0.5rem; }
.lp-eng-tablewrap { overflow-x:auto; }
.lp-eng-table td { vertical-align:top; }
.lp-eng-last { display:block; font-size:0.78rem; color:var(--muted); margin-top:0.15rem; }
.lp-eng-pill { display:inline-block; font-size:0.72rem; font-weight:600; padding:0.15rem 0.6rem; border-radius:var(--radius-pill); white-space:nowrap; }
.lp-eng-pill.is-done { background:#e3efe6; color:#2f5d3a; }
.lp-eng-pill.is-wip { background:#f1e7d6; color:#7a5418; }
.lp-eng-pill.is-view { background:#ecebe8; color:#4a4e57; }
