/* ============ SELF-HOSTED FONTS (no third-party requests) ============ */
:root{
  /* Mapped onto the shared brand core in css/brand.css. Values are not
     repeated here — change them in client-ops/system/brand.css and re-run
     scripts/sync-brand.js. Local names are kept so no rule below changes. */
  --bg: var(--sm-void);
  --panel: var(--sm-panel);
  --panel-2: var(--sm-panel-2);
  --edge: var(--sm-edge);
  --teal: var(--sm-teal);
  --teal-dim: var(--sm-teal-deep);
  --blue: var(--sm-blue);
  --text: var(--sm-paper);
  --muted: var(--sm-slate);
  --green: var(--sm-green);
  --red: var(--sm-red);

  /* site-local, not part of the shared core */
  --mono:'JetBrains Mono',ui-monospace,Menlo,Consolas,monospace;
  --sans:'Outfit',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --disp:'Unbounded','Outfit',sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:var(--sans);font-weight:300;line-height:1.6;overflow-x:hidden}
a{color:var(--teal);text-decoration:none}
img{max-width:100%;display:block}
::selection{background:var(--teal);color:var(--bg)}

.wrap{max-width:1160px;margin:0 auto;padding:0 24px}
.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:4px;color:var(--teal);text-transform:uppercase}
.h-disp{font-family:var(--disp);font-weight:800;line-height:1.12}
section{padding:96px 0;position:relative}
section.alt{background:var(--panel-2);border-top:1px solid var(--edge);border-bottom:1px solid var(--edge)}

/* ---------- NAV ---------- */
nav{position:fixed;top:0;left:0;right:0;z-index:50;background:rgba(6,10,18,.82);backdrop-filter:blur(12px);border-bottom:1px solid var(--edge)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:64px}
.nav-brand{display:flex;align-items:center;gap:11px;color:var(--text)}
.nav-brand img{height:32px;width:auto;filter:drop-shadow(0 0 5px rgba(77,212,206,.45))}
.nav-brand span{font-family:var(--disp);font-weight:600;font-size:13px;letter-spacing:2px}
.nav-links{display:flex;gap:22px}
.nav-links a{font-family:var(--mono);font-size:11px;letter-spacing:2px;color:var(--muted);transition:color .2s}
.nav-links a:hover{color:var(--teal)}
@media(max-width:820px){.nav-links{display:none}}

/* ---------- HERO ---------- */
.hero{min-height:88vh;display:flex;align-items:center;padding:140px 0 90px;position:relative}
.hero-bg{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.hero-bg svg{position:absolute;inset:0;width:100%;height:100%;opacity:.55}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:52px;align-items:center;position:relative}
@media(max-width:880px){.hero-grid{grid-template-columns:1fr;text-align:center}.hero-emblem{order:-1;margin:0 auto}.hero p.lead{margin:0 auto}.hero-cta{justify-content:center}}
.hero h1{font-size:clamp(34px,5.4vw,62px);margin:18px 0 20px}
.hero h1 .lt{color:var(--teal)}
.hero p.lead{font-size:19px;color:var(--muted);max-width:620px;font-weight:300}
.hero-cta{display:flex;gap:14px;margin-top:34px;flex-wrap:wrap}
.hero-tape{margin-top:56px;font-family:var(--mono);font-size:11px;letter-spacing:3px;color:var(--muted)}
.hero-tape b{color:var(--teal);font-weight:700}
.hero-emblem{position:relative;width:min(330px,72vw);margin-left:auto}
.hero-emblem img{width:100%;height:auto;filter:drop-shadow(0 0 55px rgba(77,212,206,.32))}
.hero-emblem::after{content:"";position:absolute;inset:-12%;border:1px dashed rgba(77,212,206,.25);border-radius:50%;animation:spin 40s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.hero-emblem::after{animation:none}}

.btn{display:inline-block;font-family:var(--mono);font-size:12px;letter-spacing:2px;padding:14px 26px;border:1px solid var(--teal);transition:all .2s;cursor:pointer;background:transparent;color:var(--teal)}
.btn.solid{background:var(--teal);color:var(--bg);font-weight:700}
.btn.solid:hover{background:#7BE2DD;border-color:#7BE2DD}
.btn:hover{background:rgba(77,212,206,.1)}
.btn:disabled{opacity:.5;cursor:wait}

/* ---------- SECTION HEADERS ---------- */
.sec-head{max-width:720px;margin-bottom:52px}
.sec-head h2{font-size:clamp(26px,3.6vw,42px);margin:14px 0 16px}
.sec-head p{color:var(--muted);font-size:17px}

/* ---------- THEOSIS ---------- */
.prose{max-width:720px;display:grid;gap:18px}
.prose p{color:var(--muted);font-size:16.5px}
.prose p::first-letter{color:var(--text)}
.big-quote{font-family:var(--disp);font-weight:600;font-size:clamp(20px,3vw,32px);line-height:1.4;margin-top:56px;max-width:820px}
.big-quote em{color:var(--teal);font-style:normal}

/* ---------- ECHOES ---------- */
.echo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:860px){.echo-grid{grid-template-columns:1fr}}
.echo-card{background:var(--panel);border:1px solid var(--edge);border-top:3px solid var(--teal);padding:30px}
.echo-card .e-num{font-family:var(--disp);font-weight:800;font-size:28px;color:var(--teal);margin-bottom:12px}
.echo-card h3{font-family:var(--disp);font-weight:600;font-size:17px;margin-bottom:10px}
.echo-card p{color:var(--muted);font-size:14.5px}
.echo-foot{margin-top:36px;font-family:var(--disp);font-weight:600;font-size:17px;max-width:640px}

/* ---------- PSYCHOLOGY ---------- */
.psy-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:820px){.psy-grid{grid-template-columns:1fr}}
.psy-card{background:var(--panel);border:1px solid var(--edge);padding:30px;transition:border-color .25s}
.psy-card:hover{border-color:var(--teal-dim)}
.psy-card h3{font-family:var(--disp);font-weight:600;font-size:16.5px;margin-bottom:10px}
.psy-card p{color:var(--muted);font-size:14.5px}
.psy-bridge{margin-top:16px;background:var(--panel);border:1px solid var(--edge);border-left:3px solid var(--teal);padding:28px 30px;display:grid;gap:14px;justify-items:start}
.psy-bridge p{color:var(--muted);font-size:15px;max-width:720px}
.cm-tagm{font-family:var(--mono);font-size:10px;letter-spacing:3px;color:var(--teal)}
.cm-tagm.sm{color:var(--blue)}

/* ---------- PATHWAY ---------- */
.phases{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:22px 40px;max-width:980px}
@media(max-width:820px){.phases{grid-template-columns:1fr}}
.phases li{display:grid;grid-template-columns:48px 1fr;gap:14px;align-items:start}
.phases .p-num{font-family:var(--disp);font-weight:800;font-size:22px;color:var(--teal);line-height:1.3}
.phases h3{font-family:var(--disp);font-weight:600;font-size:15.5px;margin-bottom:4px}
.phases p{color:var(--muted);font-size:14px}

/* ---------- CURRICULUM ---------- */
.chips{display:flex;flex-wrap:wrap;gap:10px;max-width:820px;margin-bottom:28px}
.chips span{font-family:var(--mono);font-size:11px;letter-spacing:.5px;border:1px solid var(--edge);color:var(--text);padding:7px 14px}
.cur-found{color:var(--muted);font-size:15.5px;max-width:640px;margin-bottom:16px}
.cur-note{font-family:var(--mono);font-size:9.5px;letter-spacing:1.5px;color:var(--muted)}

/* ---------- SOVEREIGN BRIDGE ---------- */
.bridge{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--edge);background:var(--panel)}
@media(max-width:760px){.bridge{grid-template-columns:1fr}}
.bridge-half{padding:44px 36px;display:grid;gap:16px;align-content:start;justify-items:start}
.bridge-half:first-child{border-right:1px solid var(--edge);background:linear-gradient(160deg,rgba(77,212,206,.09),transparent 60%)}
@media(max-width:760px){.bridge-half:first-child{border-right:none;border-bottom:1px solid var(--edge)}}
.bridge-half:last-child{background:linear-gradient(200deg,rgba(85,164,214,.07),transparent 60%)}
.bridge-half p{color:var(--muted);font-size:15px}

/* ---------- CONTACT ---------- */
#contact h2{font-size:clamp(26px,3.6vw,42px);margin:14px 0 18px}
#contact .contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
@media(max-width:820px){#contact .contact-grid{grid-template-columns:1fr}}
#contact p.sub{color:var(--muted);font-size:17px;margin-bottom:24px}
.form{display:grid;gap:14px;background:var(--panel);border:1px solid var(--edge);padding:28px}
.form label{font-family:var(--mono);font-size:10px;letter-spacing:2px;color:var(--muted);display:grid;gap:7px}
.form input,.form textarea{background:var(--bg);border:1px solid var(--edge);color:var(--text);font-family:var(--sans);font-weight:400;font-size:15px;padding:12px 14px;width:100%}
.form textarea{min-height:120px;resize:vertical}
.form select{background:var(--bg);border:1px solid var(--edge);color:var(--text);font-family:var(--sans);font-weight:400;font-size:15px;padding:12px 14px;width:100%;appearance:none}
.form input:focus,.form textarea:focus,.form select:focus,.btn:focus,a:focus{outline:2px solid var(--teal);outline-offset:2px}
.form .hp{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}
.form-msg{font-family:var(--mono);font-size:12px;letter-spacing:1px;min-height:18px}
.form-msg.ok{color:var(--green)}
.form-msg.err{color:var(--red)}

footer{border-top:1px solid var(--edge);padding:34px 0;font-family:var(--mono);font-size:10px;letter-spacing:2px;color:var(--muted)}
.foot-inner{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}

.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* ---------- 404 ---------- */
.err-page{min-height:100vh;display:grid;place-items:center;text-align:center;padding:24px}
.err-page .code{font-family:var(--disp);font-weight:800;font-size:clamp(64px,14vw,140px);color:var(--teal);line-height:1}
.err-page p{color:var(--muted);margin:14px 0 28px}

/* ---------- CONSENT CHECKBOX ---------- */
.form label.consent{display:grid;grid-template-columns:18px 1fr;gap:10px;align-items:start;font-family:inherit;font-size:12.5px;letter-spacing:0;text-transform:none;line-height:1.5}
.form label.consent input{width:18px;height:18px;margin-top:2px}
.form label.consent a{text-decoration:underline}

/* ---------- REDUCED MOTION ---------- */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}
}
.mt-md{margin-top:22px}

.foot-inner a{text-decoration:underline}


/* ---------- Transmission film embed ------------------------------------
   Self-hosted MP4. The site CSP is `default-src 'self'` with no media-src,
   so the file must be served same-origin — an external player is blocked.  */
.film { padding: clamp(48px, 7vw, 96px) 0; }
.film .film-head { margin-bottom: 22px; }
.film video {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  background: #060A12;
  border: 1px solid rgba(77, 212, 206, .22);
}
.film .film-cap {
  margin-top: 14px;
  font-family: var(--mono, "JetBrains Mono", monospace);
  font-size: 13px;
  letter-spacing: .18em;
  text-transform: uppercase;
  opacity: .68;
}
