/* UpwardTeaching — shared UI stylesheet (home + persona pages).
   Tokens, header/nav, layout, type, footer, and the shared capture form. */
:root{
  --paper:#F5F5F7;
  --surface:#FFFFFF;
  --ink:#07070B;
  --ink-soft:#2a2a33;
  --muted:#5b5b66;
  --muted-2:#8a8a94;
  --line:rgba(7,7,11,.10);
  --line-2:rgba(7,7,11,.16);
  --g1:#3B9EFF; --g2:#6E5CFF; --g3:#C04DFF;
  --grad:linear-gradient(100deg,var(--g1),var(--g2) 52%,var(--g3));
  --sans:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Helvetica Neue",Helvetica,Arial,sans-serif;
  --mono:"SF Mono",ui-monospace,"JetBrains Mono",Menlo,"Cascadia Code",monospace;
  --maxw:1080px;
  --textw:680px;
}
*{box-sizing:border-box;}
html,body{height:100%;}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--sans);line-height:1.55;-webkit-font-smoothing:antialiased;
  display:flex;flex-direction:column;min-height:100%;
}
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background:
    radial-gradient(55% 45% at 50% -8%, rgba(110,92,255,.13), transparent 70%),
    radial-gradient(40% 40% at 88% 6%, rgba(59,158,255,.10), transparent 70%);
}

/* ---- header: brand left, nav right, one line ---- */
.site-header{
  position:sticky;top:0;z-index:10;
  background:rgba(245,245,247,.82);
  backdrop-filter:saturate(180%) blur(14px);
  -webkit-backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid var(--line);
}
.nav-inner{
  max-width:var(--maxw);margin:0 auto;
  padding:12px 22px;
  display:flex;align-items:center;gap:16px 24px;justify-content:space-between;flex-wrap:wrap;
}
.brand{
  display:flex;align-items:center;gap:9px;
  font-weight:600;letter-spacing:-.01em;font-size:15px;color:var(--ink);
  text-decoration:none;white-space:nowrap;
}
.brand .dot{width:12px;height:12px;border-radius:50%;background:var(--grad);box-shadow:0 0 16px rgba(110,92,255,.35);}
.nav{display:flex;align-items:center;gap:22px;margin-left:auto;flex-wrap:wrap;}
.nav a{
  position:relative;font-size:14px;color:var(--muted);text-decoration:none;white-space:nowrap;padding:3px 0;
  transition:color .15s;
}
.nav a:hover{color:var(--ink);}
.nav a.active{color:var(--ink);font-weight:600;}
.nav a.active::after{
  content:"";position:absolute;left:0;right:0;bottom:-3px;height:2px;border-radius:2px;background:var(--grad);
}

/* ---- layout ---- */
main{position:relative;z-index:1;flex:1;width:100%;max-width:var(--maxw);margin:0 auto;padding:clamp(26px,5vw,56px) 22px 0;}

/* ---- hero slot (replace the placeholder with the commented <picture>) ---- */
.hero{margin:0 0 clamp(30px,6vw,60px);}
.hero .frame{
  width:100%;aspect-ratio:16 / 9;overflow:hidden;
  border-radius:22px;border:1px solid var(--line);
  background:linear-gradient(120deg,#eceff5,#f4edf8 55%,#f7eef6);
  box-shadow:0 1px 2px rgba(7,7,11,.04),0 26px 64px -36px rgba(7,7,11,.36);
  display:flex;align-items:center;justify-content:center;
}
.hero picture{display:block;width:100%;height:100%;}
.hero img{width:100%;height:100%;object-fit:cover;display:block;}
.hero .ph{font-family:var(--mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted-2);}

/* ---- message ---- */
.eyebrow{
  font-family:var(--mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);
  display:flex;align-items:center;gap:9px;margin:0 0 18px;
}
.eyebrow .pip{width:6px;height:6px;border-radius:50%;background:var(--grad);}
h1{
  font-size:clamp(40px,8vw,72px);line-height:1.02;letter-spacing:-.035em;font-weight:680;
  margin:0 0 22px;max-width:14ch;
}
h1 .grad{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;}
.lede{font-size:clamp(17px,2.4vw,22px);color:var(--ink-soft);margin:0 0 6px;max-width:38ch;}

/* ---- supporting points (kept sparse) ---- */
.points{list-style:none;margin:clamp(30px,5vw,46px) 0 0;padding:0;display:grid;gap:22px;max-width:var(--textw);}
.points li{display:grid;gap:3px;}
.points b{font-size:17px;font-weight:650;letter-spacing:-.01em;}
.points span{color:var(--muted);font-size:16px;}

/* ---- call to action ---- */
.cta{
  margin:clamp(40px,7vw,72px) 0 clamp(52px,8vw,96px);
  padding:clamp(26px,4vw,36px);
  background:var(--surface);border:1px solid var(--line);border-radius:22px;
  box-shadow:0 1px 2px rgba(7,7,11,.04),0 18px 50px -30px rgba(7,7,11,.30);
  max-width:var(--textw);
}
.cta h2{font-size:clamp(22px,3vw,30px);line-height:1.12;letter-spacing:-.02em;margin:0 0 16px;}
/* gradient button — shared by link CTAs (a.btn) and the capture form's submit */
a.btn,.subscribe-form button{
  display:inline-block;font:inherit;font-size:16px;font-weight:600;cursor:pointer;
  padding:14px 24px;border:0;border-radius:12px;background:var(--grad);color:#fff;text-decoration:none;
  box-shadow:0 8px 22px -10px rgba(110,92,255,.7);transition:transform .12s ease,box-shadow .12s ease,opacity .12s;
}
a.btn:hover,.subscribe-form button:hover{transform:translateY(-1px);box-shadow:0 12px 26px -10px rgba(110,92,255,.8);}
.subscribe-form button:active{transform:translateY(0);}
.subscribe-form button[disabled]{opacity:.6;cursor:default;transform:none;box-shadow:none;}
.cta .note{font-size:14px;color:var(--muted);margin:16px 0 0;}
.cta .note a{color:var(--g2);text-decoration:none;border-bottom:1px solid rgba(110,92,255,.3);}
.cta .note a:hover{border-bottom-color:var(--g2);}

/* ---- shared capture form (home gate + persona CTAs) ---- */
/* .gate = standalone card (home). On persona pages .capture sits inside .cta,
   which already supplies the card, so .capture itself carries no card styling. */
.gate{
  background:var(--surface);border:1px solid var(--line);border-radius:20px;
  padding:26px 24px;box-shadow:0 1px 2px rgba(7,7,11,.04),0 18px 50px -28px rgba(7,7,11,.30);
  max-width:430px;
}
.gate h2{font-size:13px;font-weight:600;letter-spacing:.01em;margin:0 0 4px;}
.capture .hint{font-size:14px;color:var(--muted);margin:0 0 16px;}
.capture a{color:var(--g2);text-decoration:none;border-bottom:1px solid rgba(110,92,255,.3);}
.capture a:hover{border-bottom-color:var(--g2);}
.capture .thanks-title{font-size:16px;font-weight:650;letter-spacing:-.01em;margin:0 0 6px;}
.subscribe-form{display:flex;gap:10px;flex-wrap:wrap;}
label.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}
/* Honeypot: off-screen, never shown to humans; bots that autofill it are dropped. */
.hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;}
.subscribe-form input[type=email]{
  flex:1 1 200px;min-width:0;font:inherit;font-size:15px;padding:12px 14px;
  border:1px solid var(--line-2);border-radius:11px;background:#fff;color:var(--ink);
  transition:border-color .15s,box-shadow .15s;
}
.subscribe-form input[type=email]::placeholder{color:var(--muted-2);}
.subscribe-form input[type=email]:focus{outline:none;border-color:var(--g2);box-shadow:0 0 0 3px rgba(110,92,255,.18);}
.capture .error{font-size:14px;color:#c0392b;margin:12px 0 0;display:none;}
.capture .error.show{display:block;}
.capture .invited{font-size:14px;color:var(--muted);margin:16px 0 0;}
@media (max-width:520px){ .subscribe-form{flex-direction:column;} .subscribe-form button{width:100%;} }

/* ---- footer ---- */
footer{
  position:relative;z-index:1;max-width:var(--maxw);margin:0 auto;width:100%;
  padding:24px 22px 32px;border-top:1px solid var(--line);
  color:var(--muted);font-size:13px;
  display:flex;flex-wrap:wrap;gap:6px 18px;align-items:baseline;justify-content:space-between;
}
footer a{color:var(--g2);text-decoration:none;border-bottom:1px solid rgba(110,92,255,.3);}
footer a:hover{border-bottom-color:var(--g2);}
footer .tag{color:var(--muted-2);}

@media (max-width:560px){
  h1{font-size:clamp(34px,11vw,48px);max-width:18ch;}
  .nav{gap:16px;}
}
