/* ============================================================
   POLLUX — shared stylesheet
   Design tokens from build/00-global.md (graphite + burnt orange,
   Inter, [DARK]/[CREAM] section rhythm). Single source of truth
   for all five pages + 404. Mobile-first, no horizontal scroll.
   ============================================================ */

:root{
  --graphite:#1A1A1D; --tile:#232327; --tile2:#2A2A2F;
  --orange:#E45D1C; --orange2:#F0894E; --cream:#ECE6DC;
  --ink:#1A1A1D; --muted:#9A9A97; --muted-dk:#6F6B66;
  --body-cream:#3A3733;
  --line:rgba(255,255,255,.10); --line-dk:rgba(26,26,29,.14);
  --maxw:1140px;
}

*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  margin:0;background:var(--graphite);color:var(--cream);
  font-family:"Inter",system-ui,sans-serif;line-height:1.55;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img,video,iframe{max-width:100%;}
a{color:inherit;text-decoration:none;}

/* ---- skip link (a11y) ---- */
.skip{position:absolute;left:-9999px;top:0;background:var(--orange);color:#fff;
  padding:10px 16px;border-radius:0 0 8px 0;z-index:100;font-weight:600;}
.skip:focus{left:0;}

/* ---- scroll progress ---- */
#progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--orange);z-index:60;transition:width .08s linear;}

/* ---------- NAV ---------- */
.nav{position:sticky;top:0;z-index:50;background:rgba(26,26,29,.86);
  backdrop-filter:saturate(160%) blur(10px);-webkit-backdrop-filter:saturate(160%) blur(10px);
  border-bottom:1px solid var(--line);}
.nav-in{max-width:var(--maxw);margin:0 auto;padding:14px 24px;display:flex;
  align-items:center;justify-content:space-between;gap:18px;}
.brand{display:flex;align-items:center;gap:12px;}
.brand .mk{width:34px;height:34px;display:block;flex-shrink:0;}
.brand .mk .spin{transform-origin:50px 50px;animation:spin 22s linear infinite;}
.brand-lock{display:flex;flex-direction:column;}
.brand .pn{font-weight:600;letter-spacing:.2em;font-size:26px;color:var(--cream);line-height:1;}
.navlinks{display:flex;gap:6px;align-items:center;}
.navlinks a{color:var(--muted);font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;
  font-weight:600;padding:9px 12px;border-radius:8px;transition:.18s;}
.navlinks a:hover{color:var(--cream);}
.navlinks a.active{color:var(--graphite);background:var(--cream);}
.nav-toggle{display:none;background:none;border:0;cursor:pointer;padding:8px;
  width:44px;height:44px;align-items:center;justify-content:center;}
.nav-toggle span{display:block;width:22px;height:2px;background:var(--cream);position:relative;transition:.2s;}
.nav-toggle span::before,.nav-toggle span::after{content:"";position:absolute;left:0;width:22px;height:2px;
  background:var(--cream);transition:.2s;}
.nav-toggle span::before{top:-7px;}
.nav-toggle span::after{top:7px;}

@media (max-width:780px){
  .nav-toggle{display:inline-flex;}
  .navlinks{position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;
    gap:0;background:rgba(26,26,29,.98);border-bottom:1px solid var(--line);
    padding:8px 16px 16px;display:none;}
  .nav.open .navlinks{display:flex;}
  .navlinks a{padding:14px 12px;font-size:13px;border-radius:8px;}
  .nav.open .nav-toggle span{background:transparent;}
  .nav.open .nav-toggle span::before{top:0;transform:rotate(45deg);}
  .nav.open .nav-toggle span::after{top:0;transform:rotate(-45deg);}
}

/* ---------- LAYOUT ---------- */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px;}
section.band{padding:92px 0;position:relative;overflow:hidden;}
section.band.cream{background:var(--cream);color:var(--ink);}
section.band.tight{padding:64px 0;}
@media (max-width:640px){
  section.band{padding:64px 0;}
  section.band.tight{padding:48px 0;}
}

.eyebrow{font-size:16px;letter-spacing:.26em;text-transform:uppercase;color:var(--orange);
  margin:0 0 18px;font-weight:700;}
h1{font-weight:700;font-size:clamp(32px,5.6vw,58px);line-height:1.04;letter-spacing:-.025em;margin:0 0 22px;}
h2{font-weight:700;font-size:clamp(25px,3.6vw,38px);line-height:1.08;letter-spacing:-.02em;margin:0 0 18px;}
h3{font-weight:600;font-size:19px;letter-spacing:-.01em;margin:0 0 8px;}
.lead{font-size:clamp(16px,1.7vw,19px);max-width:60ch;color:var(--muted);margin:0 0 16px;}
.cream .lead{color:var(--muted-dk);}
p.body{font-size:16px;max-width:62ch;margin:0 0 16px;color:var(--muted);}
.cream p.body{color:var(--body-cream);}

/* ---- orbit watermark ---- */
.wm{position:absolute;pointer-events:none;opacity:.05;width:520px;height:520px;z-index:0;}
.wm.tr{right:-150px;top:-120px;}
.wm.bl{left:-170px;bottom:-160px;}
.wm .spin{transform-origin:50px 50px;animation:spin 60s linear infinite;}
.wrap{position:relative;z-index:1;}
@keyframes spin{to{transform:rotate(360deg);}}

/* ---------- HERO ---------- */
.hero{padding:96px 0;}
@media (max-width:640px){.hero{padding:64px 0;}}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center;}
@media (max-width:880px){.hero-grid{grid-template-columns:1fr;gap:34px;}}
/* Hero film ~25% bigger, anchored to its left edge so it only grows rightward and never
   shifts into the copy column. Gated to viewports wide enough that the growth has real
   room past the wrap's edge before the section's own overflow:hidden would clip it. */
@media (min-width:1360px){
  .hero-grid .media.r16x9{transform:scale(1.25);transform-origin:left center;}
}

/* ---------- BUTTONS ---------- */
.cta-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px;}
.btn{font-family:inherit;font-weight:600;font-size:14.5px;letter-spacing:.02em;cursor:pointer;
  border:0;border-radius:10px;padding:15px 26px;transition:.18s;display:inline-flex;
  align-items:center;justify-content:center;gap:9px;}
.btn.primary{background:var(--orange);color:#fff;}
.btn.primary:hover{background:var(--orange2);transform:translateY(-1px);}
.btn.ghost{background:transparent;color:var(--cream);border:1px solid var(--line);}
.cream .btn.ghost{color:var(--ink);border-color:var(--line-dk);}
.btn.ghost:hover{border-color:var(--orange);color:var(--orange);}

/* ---------- IMAGE / VIDEO PLACEHOLDERS ---------- */
.ph{position:relative;border:1.5px dashed rgba(228,93,28,.55);border-radius:16px;background:
  repeating-linear-gradient(135deg, rgba(255,255,255,.018) 0 14px, rgba(255,255,255,0) 14px 28px), var(--tile);
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  padding:26px;gap:10px;color:var(--cream);overflow:hidden;}
.cream .ph{background:
  repeating-linear-gradient(135deg, rgba(26,26,29,.03) 0 14px, rgba(26,26,29,0) 14px 28px), #fff;color:var(--ink);}
.ph.r16x9{aspect-ratio:16/9;}
.ph.r4x5{aspect-ratio:4/5;}
.ph.r1x1{aspect-ratio:1/1;height:100%;}
.ph .tag{position:absolute;top:12px;left:12px;font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  font-weight:700;color:#fff;background:var(--orange);padding:5px 9px;border-radius:6px;}
.ph .glyph{width:54px;height:54px;border-radius:50%;border:2px solid var(--orange);display:grid;
  place-items:center;color:var(--orange);}
.ph .glyph svg{width:24px;height:24px;}
.ph.play .glyph{animation:pulse 2.4s ease-in-out infinite;}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(228,93,28,.35);}50%{box-shadow:0 0 0 12px rgba(228,93,28,0);}}
.ph .lab{font-weight:700;font-size:15px;letter-spacing:.02em;}
.ph .note{font-size:12.5px;color:var(--muted);max-width:34ch;line-height:1.45;}
.cream .ph .note{color:var(--muted-dk);}
/* real media, once dropped in, fills the same frame */
.media{border-radius:16px;overflow:hidden;display:block;width:100%;}
.media.r16x9{aspect-ratio:16/9;}
.media.r4x5{aspect-ratio:4/5;}
.media video,.media img{width:100%;height:100%;object-fit:cover;display:block;}

/* ---------- CREDIBILITY STRIP ---------- */
.strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.strip .wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;padding-top:34px;padding-bottom:34px;}
@media (max-width:720px){.strip .wrap{grid-template-columns:1fr;gap:18px;}}
.strip .c{display:flex;gap:13px;align-items:flex-start;}
.strip .c .dot{flex:0 0 auto;width:8px;height:8px;border-radius:50%;background:var(--orange);margin-top:10px;}
.strip .c p{margin:0;font-size:16px;color:var(--muted);line-height:1.55;}
.strip .c strong{display:block;color:var(--cream);font-weight:600;font-size:18px;margin-bottom:2px;}

/* ---------- MARQUEE ---------- */
.marq{border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;white-space:nowrap;}
.marq .track{display:inline-flex;animation:slide 26s linear infinite;}
.marq:hover .track{animation-play-state:paused;}
.marq span{font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);
  font-weight:600;padding:18px 0;}
.marq i{color:var(--orange);margin:0 26px;font-style:normal;}
@keyframes slide{to{transform:translateX(-50%);}}
@media (max-width:600px){.marq span{font-size:11.5px;}.marq i{margin:0 18px;}}

/* ---------- CARD GRIDS ---------- */
.grid{display:grid;gap:18px;margin-top:36px;}
.g2{grid-template-columns:1fr 1fr;}
.g3{grid-template-columns:repeat(3,1fr);}
.g4{grid-template-columns:repeat(4,1fr);}
@media (max-width:900px){.g3,.g4{grid-template-columns:1fr 1fr;}}
@media (max-width:600px){.g2,.g3,.g4{grid-template-columns:1fr;}}
.card{border:1px solid var(--line);border-radius:14px;padding:26px;background:var(--tile);transition:.2s;}
.card:hover{transform:translateY(-4px);border-color:rgba(228,93,28,.5);}
.cream .card{background:#fff;border-color:var(--line-dk);}
.card .num{font-size:12px;font-weight:700;letter-spacing:.14em;color:var(--orange);margin-bottom:12px;}
.card h3{color:var(--cream);}
.cream .card h3{color:var(--ink);}
.card p{margin:0;font-size:14.5px;color:var(--muted);line-height:1.5;}
.cream .card p{color:#46423d;}

/* ---------- OUTCOME TILES ---------- */
.stat{border:1px solid var(--line);border-radius:14px;padding:28px 24px;background:var(--tile);transition:.2s;}
.stat:hover{transform:translateY(-4px);border-color:rgba(228,93,28,.5);}
.stat .big{font-weight:700;font-size:20px;letter-spacing:-.01em;margin:0 0 7px;color:var(--cream);}
.stat p{margin:0;font-size:13.5px;color:var(--muted);line-height:1.5;}

/* case-study stat tiles (cream, larger numbers) */
.cs-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
@media (max-width:520px){.cs-grid{grid-template-columns:1fr;}}
.cs-tile{background:#fff;border:1px solid var(--line-dk);border-radius:14px;padding:28px 24px;transition:.2s;}
.cs-tile:hover{transform:translateY(-4px);border-color:rgba(228,93,28,.5);}
.cs-big{font-weight:700;font-size:40px;letter-spacing:-.01em;color:var(--ink);line-height:1;margin-bottom:8px;}
.cs-big.word{font-size:28px;line-height:1.2;}
.cs-tile p{margin:0;font-size:13.5px;color:var(--muted-dk);line-height:1.5;}
.cs-summary{margin:22px 0 0;font-size:16px;color:var(--body-cream);line-height:1.55;max-width:62ch;}

/* ---------- SPLIT (image + copy) ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;}
.split.narrow-img{grid-template-columns:.8fr 1.2fr;}
.split.top{align-items:start;}
@media (max-width:840px){.split,.split.narrow-img{grid-template-columns:1fr;gap:30px;}}

/* ---------- STEP LIST ---------- */
.steps{margin-top:40px;display:grid;gap:16px;}
.step{display:grid;grid-template-columns:64px 1.25fr .9fr;gap:26px;align-items:start;
  border:1px solid var(--line);border-radius:16px;padding:30px;background:var(--tile);}
.step .idx{font-weight:700;font-size:30px;color:var(--orange);line-height:1;letter-spacing:-.02em;}
.step h3{color:var(--cream);}
.step .body{font-size:15px;color:var(--muted);margin:0;line-height:1.55;max-width:none;}
.step ul{margin:14px 0 0;padding:0;list-style:none;display:grid;gap:9px;}
.step li{position:relative;padding-left:20px;font-size:14.5px;color:var(--muted);}
.step li::before{content:"";position:absolute;left:0;top:8px;width:7px;height:7px;border-radius:50%;background:var(--orange);}
.step .shot{align-self:stretch;}
@media (max-width:760px){.step{grid-template-columns:1fr;gap:14px;padding:24px;}}

/* ---------- BELIEFS ---------- */
.belief{border-left:2px solid var(--orange);padding:6px 0 6px 22px;margin:0 0 26px;}
.belief .q{font-weight:600;font-size:clamp(19px,2.4vw,24px);letter-spacing:-.01em;line-height:1.25;
  margin:0 0 6px;color:var(--ink);}
.belief p{margin:0;font-size:15px;color:var(--muted-dk);line-height:1.55;}

/* ---------- CTA PANEL ---------- */
.panel{position:relative;border-radius:20px;padding:clamp(36px,5vw,64px);
  background:linear-gradient(135deg,#232327,#1A1A1D);border:1px solid var(--line);
  text-align:center;overflow:hidden;}
.panel .pwm{position:absolute;right:-80px;bottom:-90px;width:300px;height:300px;opacity:.08;}
.panel .pwm .spin{transform-origin:50px 50px;animation:spin 50s linear infinite;}
.panel h2{margin-bottom:10px;position:relative;color:var(--cream);}
.panel .lead{margin:0 auto 0;position:relative;max-width:60ch;}
.panel .cta-row{justify-content:center;position:relative;margin-top:26px;}

/* ---------- LIST (contact expect) ---------- */
.checklist{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:12px;max-width:62ch;}
.checklist li{position:relative;padding-left:22px;font-size:16px;color:var(--muted);line-height:1.5;}
.checklist li::before{content:"";position:absolute;left:0;top:9px;width:8px;height:8px;border-radius:50%;background:var(--orange);}

/* ---------- FORM ---------- */
.form{margin-top:36px;display:grid;gap:18px;max-width:680px;}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
@media (max-width:560px){.frow{grid-template-columns:1fr;}}
.field{display:flex;flex-direction:column;gap:7px;}
.field label{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-dk);font-weight:600;}
.field input,.field textarea{font-family:inherit;font-size:15px;color:var(--ink);
  background:#fff;border:1px solid var(--line-dk);border-radius:10px;padding:13px 14px;outline:none;transition:.18s;}
.field textarea{resize:vertical;min-height:120px;}
.field input:focus,.field textarea:focus{border-color:var(--orange);}
.reassure{font-size:13.5px;color:var(--muted-dk);margin-top:4px;}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden;}
.form-success{margin-top:28px;border:1px solid var(--line-dk);background:#fff;border-radius:14px;
  padding:26px 28px;max-width:680px;}
.form-success h3{color:var(--ink);margin:0 0 6px;}
.form-success p{margin:0;color:var(--body-cream);font-size:15px;line-height:1.55;}
.form-error{color:#B23A16;font-size:14px;margin-top:10px;}

/* ---------- FOOTER ---------- */
footer{border-top:1px solid var(--line);padding:48px 0;}
footer .wrap{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;}
footer .legal{font-size:12.5px;color:var(--muted);line-height:1.7;}
footer .legal a{color:var(--muted);text-decoration:underline;text-underline-offset:2px;}
footer .legal a:hover{color:var(--orange);}
footer .fnav{display:flex;gap:18px;flex-wrap:wrap;}
footer .fnav a{color:var(--muted);font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;}
footer .fnav a:hover{color:var(--orange);}
@media (max-width:640px){footer .wrap{flex-direction:column;align-items:flex-start;}}
/* Footer credential lockup (site-wide, next to the copyright) */
footer .foot-left{display:flex;align-items:center;gap:22px;flex-wrap:wrap;}
.foot-cert{display:inline-flex;align-items:center;gap:9px;text-decoration:none;}
.foot-cert img{display:block;width:34px;height:34px;border-radius:6px;flex-shrink:0;}
.foot-cert span{font-size:11px;line-height:1.25;letter-spacing:.06em;text-transform:uppercase;font-weight:600;color:var(--muted);}
.foot-cert:hover span{color:var(--orange);}

/* ---------- Claude Certified badge (About · Meet the founder) ---------- */
.cert-badge{display:flex;align-items:center;gap:14px;margin-top:22px;text-decoration:none;
  border:1px solid var(--line-dk);border-radius:12px;padding:14px 16px;background:#fff;transition:.2s;max-width:360px;}
.cert-badge:hover{border-color:rgba(228,93,28,.5);transform:translateY(-2px);}
.cert-badge img{display:block;width:52px;height:52px;flex-shrink:0;}
.cert-badge-txt{font-size:13px;line-height:1.45;color:#46423d;}
.cert-badge-txt strong{display:block;color:var(--ink);font-size:14px;margin-bottom:2px;}
.cert-verify{color:var(--orange);font-weight:600;white-space:nowrap;}
.cert-badge:hover .cert-verify{color:var(--orange2);}

/* ---------- 404 ---------- */
.nf{min-height:60vh;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:80px 24px;}
.nf .code{font-size:clamp(64px,14vw,120px);font-weight:800;color:var(--orange);line-height:1;letter-spacing:-.03em;}

/* ---------- REVEAL MOTION ---------- */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease, transform .6s ease;}
.reveal.in{opacity:1;transform:none;}
.reveal.d1{transition-delay:.05s;}.reveal.d2{transition-delay:.12s;}
.reveal.d3{transition-delay:.19s;}.reveal.d4{transition-delay:.26s;}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .reveal{opacity:1;transform:none;transition:none;}
  .spin{animation:none;}
  .marq .track{animation:none;}
  .ph.play .glyph{animation:none;}
  .card:hover,.stat:hover,.cs-tile:hover,.btn:hover{transform:none;}
  .cookie-bar{transition:none;}
}

/* ---------- Cookie consent bar (site-wide, gates GA4) ---------- */
.cookie-bar{position:fixed;left:16px;right:16px;bottom:16px;z-index:90;
  max-width:900px;margin:0 auto;
  background:var(--cream);color:var(--ink);border-radius:12px;
  box-shadow:0 16px 40px rgba(0,0,0,.35);
  padding:16px 18px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  transform:translateY(160%);transition:transform .5s cubic-bezier(.22,.9,.32,1);}
.cookie-bar.shown{transform:translateY(0);}
.cookie-txt{flex:1 1 240px;font-size:13.5px;line-height:1.5;color:var(--body-cream);}
.cookie-txt a{color:var(--orange);font-weight:600;text-decoration:underline;}
.cookie-actions{display:flex;gap:8px;flex-wrap:wrap;}
.cookie-btn{font-family:inherit;font-size:12.5px;font-weight:700;letter-spacing:.02em;
  border-radius:999px;padding:9px 16px;cursor:pointer;border:1px solid transparent;white-space:nowrap;}
.cookie-btn.primary{background:var(--orange);color:#fff;}
.cookie-btn.primary:hover{background:var(--orange2);}
.cookie-btn.ghost{background:transparent;color:var(--ink);border-color:rgba(26,26,29,.3);}
.cookie-btn.ghost:hover{border-color:var(--orange);color:var(--orange);}
@media (max-width:560px){.cookie-bar{left:10px;right:10px;bottom:10px;padding:14px;}}

/* ---------- Legal document pages (Privacy / Terms) ---------- */
.legal-doc{max-width:700px;}
.legal-doc h2{font-size:20px;margin:36px 0 12px;color:var(--ink);}
.legal-doc h2:first-child{margin-top:0;}
.legal-doc p{margin:0 0 14px;}
.legal-doc ul{margin:0 0 14px;padding-left:22px;}
.legal-doc li{margin-bottom:6px;}
.legal-doc .flagged{background:rgba(228,93,28,.08);border:1px dashed var(--orange);border-radius:4px;
  padding:0 6px;color:var(--orange);font-weight:700;}
.legal-updated{font-size:13px;color:var(--muted-dk);margin-bottom:6px;}
