/* Gyrium site — shared styles. Sora + Spectral, BrandSynth tokens, sharp/gridded. */
:root{
  --page:#F7F8FA; --surface:#FFFFFF; --fill:#EDF0F4; --line:#D5D9E0; --line-2:#9CA3AF;
  --sub:#6B7280; --muted:#4B5563; --sec:#1F2937; --pri:#111827;
  --ind50:#EEF0FF; --ind500:#5B54E6; --ind600:#4338CA; --ind700:#3730A3; --ind900:#1E1B4B;
  --teal:#1D9E75; --teal-light:#E0F2E9; --teal-text:#0F6E56;
  --sora:'Sora',-apple-system,sans-serif; --serif:'Spectral',Georgia,serif;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--page);color:var(--pri);font-family:var(--sora);font-weight:400;line-height:1.5;-webkit-font-smoothing:antialiased;}
.wrap{max-width:1240px;margin:0 auto;padding:0 40px;}
/* increased kerning on Sora bold titles */
h1,h2,h3{font-family:var(--sora);font-weight:700;line-height:1.05;letter-spacing:.012em;text-wrap:balance;}
a{color:inherit;text-decoration:none;}
.label{font-family:var(--sora);font-weight:600;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--sub);}
.btn{font-family:var(--sora);font-weight:600;font-size:13px;letter-spacing:.03em;border:none;border-radius:0;cursor:pointer;padding:14px 22px;display:inline-flex;align-items:center;gap:9px;transition:background .15s,color .15s;}
.btn i{font-size:15px;}
.btn-primary{background:var(--ind500);color:#fff;} .btn-primary:hover{background:var(--ind600);}
.btn-light{background:#fff;color:var(--ind700);} .btn-light:hover{background:#eceaff;}
.btn-outline{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.4);} .btn-outline:hover{border-color:#fff;}
.btn-dark{background:var(--ind900);color:#fff;} .btn-dark:hover{background:var(--ind700);}

/* logo (CSS mask so it recolours: currentColor) */
.logo{display:inline-block;height:22px;width:162px;background-color:currentColor;
  -webkit-mask:url(logo.svg) no-repeat left center; mask:url(logo.svg) no-repeat left center;
  -webkit-mask-size:contain; mask-size:contain;}
.foot .logo{height:20px;width:147px;}

/* light interior nav (sticky) */
.nav-light{position:sticky;top:0;z-index:60;background:rgba(247,248,250,.86);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);}
.nav-in{display:flex;align-items:center;justify-content:space-between;height:70px;}
.nav-in .brand{color:var(--pri);}
.nav-in .links{display:flex;align-items:center;gap:26px;}
.nav-in .links a{font-family:var(--sora);font-weight:600;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);}
.nav-in .links a:hover{color:var(--pri);}

/* full-bleed dark hero (homepage) */
.hero{position:relative;background:var(--ind900);color:#fff;overflow:hidden;}
.hero .bg{position:absolute;inset:0;background:
    radial-gradient(120% 90% at 82% 20%, rgba(91,84,230,.42), transparent 60%),
    radial-gradient(90% 80% at 12% 100%, rgba(29,158,117,.28), transparent 55%),
    linear-gradient(180deg,#191537,#0E0B22);}
.hero .ph-note{position:absolute;top:12px;left:40px;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.26);font-weight:600;}
.hnav{position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between;height:82px;border-bottom:1px solid rgba(255,255,255,.12);}
.hnav .links{display:flex;align-items:center;gap:28px;}
.hnav .links a{font-family:var(--sora);font-weight:600;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.7);}
.hnav .links a:hover{color:#fff;}
.hero-in{position:relative;z-index:2;display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center;padding:84px 0 92px;}
.hero .prov{color:var(--teal);font-weight:600;font-size:12px;letter-spacing:.14em;text-transform:uppercase;line-height:1.5;max-width:42ch;}
.hero h1{font-size:clamp(36px,4.8vw,60px);font-weight:800;letter-spacing:.006em;line-height:1.04;margin-top:20px;}
.hero .whatis{font-family:var(--sora);font-weight:500;font-size:18px;color:#b9b4ff;margin-top:22px;max-width:44ch;}
.hero .sub{font-weight:300;font-size:16.5px;color:rgba(255,255,255,.82);max-width:52ch;margin-top:16px;}
.hero .cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px;}
.hero .urgency{font-weight:300;font-size:13.5px;color:rgba(255,255,255,.62);max-width:52ch;margin-top:18px;border-left:2px solid var(--teal);padding-left:14px;}
.nodes{width:100%;height:auto;}
.nodes text{font-family:var(--sora);font-weight:600;font-size:12px;letter-spacing:.02em;fill:#fff;}
.nodes .core{font-size:11px;fill:#b9b4ff;}

/* page hero (interior, light) */
.phero{padding:76px 0 56px;border-bottom:1px solid var(--line);}
.phero .ey{color:var(--ind700);margin-bottom:20px;}
.phero h1{font-size:clamp(34px,4.4vw,54px);font-weight:800;letter-spacing:.008em;line-height:1.03;}
.phero .lead{font-weight:300;font-size:19px;color:var(--sec);max-width:60ch;margin-top:18px;}

/* gridded light sections */
.grid-frame{border-left:1px solid var(--line);border-right:1px solid var(--line);max-width:1240px;margin:0 auto;}
section.band{border-bottom:1px solid var(--line);padding:76px 40px;}
.marker{display:flex;align-items:center;gap:12px;margin-bottom:24px;}
.marker .no{font-family:var(--sora);font-weight:700;font-size:12px;letter-spacing:.06em;color:var(--ind500);}
.marker i{font-size:16px;color:var(--ind700);} .marker .label{color:var(--sub);}
.lede{font-size:clamp(28px,3.8vw,44px);font-weight:700;letter-spacing:.01em;line-height:1.05;}
.sub-lede{font-weight:300;font-size:18px;color:var(--sec);max-width:60ch;margin-top:16px;}
.pull{font-family:var(--sora);font-weight:600;font-size:clamp(20px,2.4vw,28px);letter-spacing:.01em;color:var(--pri);margin-top:26px;max-width:26ch;}
.pull b{color:var(--ind700);}
.prose p{font-weight:300;font-size:17px;color:var(--sec);max-width:64ch;margin-top:16px;}
.prose p b{font-weight:600;color:var(--pri);}

/* generic grid of cells (drift, sor, cards, moments, steps, strip) */
.cellgrid{display:grid;margin-top:36px;border-top:1px solid var(--line);border-left:1px solid var(--line);}
.cellgrid.c2{grid-template-columns:repeat(2,1fr);}
.cellgrid.c3{grid-template-columns:repeat(3,1fr);}
.cellgrid.c4{grid-template-columns:repeat(4,1fr);}
.cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:26px 22px;}
.cell i.big{font-size:24px;color:var(--teal);display:block;margin-bottom:16px;}
.cell .k{font-weight:600;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--pri);margin-bottom:8px;}
.cell .who{font-weight:600;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ind700);margin-bottom:14px;}
.cell .n{font-family:var(--sora);font-weight:700;font-size:13px;color:var(--ind500);letter-spacing:.06em;}
.cell h3,.cell h4{letter-spacing:.01em;margin:8px 0;}
.cell h3{font-size:18px;} .cell h4{font-size:16px;font-weight:600;}
.cell p{font-weight:300;font-size:14px;color:var(--muted);}
.cell .ic{width:48px;height:48px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--ind600);font-size:22px;margin-bottom:18px;}
.cell.on{background:var(--ind900);color:#fff;} .cell.on .k,.cell.on h3{color:#fff;} .cell.on p{color:rgba(255,255,255,.72);}
.cell.trust{display:flex;gap:12px;align-items:flex-start;} .cell.trust i{font-size:20px;color:var(--ind600);} .cell.trust span{font-weight:300;font-size:14px;color:var(--sec);}

/* comparison table */
.diff{width:100%;border-collapse:collapse;margin-top:34px;border:1px solid var(--line);}
.diff td{padding:16px 20px;border:1px solid var(--line);font-size:15px;}
.diff td.a{color:var(--muted);font-weight:300;} .diff td.b{font-weight:600;color:var(--pri);}

/* dark full-bleed band (manifesto / cta) */
.dark{position:relative;background:var(--ind900);color:#fff;overflow:hidden;padding:104px 40px;}
.dark .bg{position:absolute;inset:0;background:radial-gradient(90% 120% at 78% 50%, rgba(91,84,230,.32), transparent 60%),linear-gradient(180deg,#171334,#0E0B22);}
.dark .in{position:relative;z-index:2;max-width:1240px;margin:0 auto;}
.dark .marker .no{color:#9a94ff;} .dark .marker i{color:#9a94ff;} .dark .marker .label{color:rgba(255,255,255,.6);}
.dark p{font-weight:300;font-size:clamp(19px,2.2vw,25px);line-height:1.5;color:rgba(255,255,255,.9);max-width:36ch;}
.dark p+p{margin-top:18px;} .dark p.strong{font-weight:600;color:#fff;} .dark .kick{color:#9a94ff;}

/* cta band */
.cta{text-align:center;padding:112px 40px;} .cta .in{text-align:center;max-width:1240px;margin:0 auto;position:relative;z-index:2;}
.cta h2{font-size:clamp(34px,4.8vw,58px);font-weight:800;letter-spacing:.008em;line-height:1.05;max-width:22ch;margin:0 auto;color:#fff;}
.cta .cl{font-weight:300;font-size:17px;color:rgba(255,255,255,.74);max-width:44ch;margin:18px auto 0;}
.cta .cta-row{display:flex;justify-content:center;margin-top:32px;}

/* gyroscope reveal */
.gyroband{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;}
.gyroband .body p{font-weight:300;font-size:17px;color:var(--sec);} .gyroband .body p+p{margin-top:14px;}
.gyroband .sigline{font-family:var(--sora);font-weight:600;letter-spacing:.02em;color:var(--ind700);margin-top:18px;}
.gyro{width:100%;max-width:340px;height:auto;margin:0 auto;display:block;}
.gyro .r1{transform-origin:170px 170px;animation:s1 32s linear infinite;} .gyro .r2{transform-origin:170px 170px;animation:s2 44s linear infinite;}
@keyframes s1{to{transform:rotate(360deg);}} @keyframes s2{to{transform:rotate(-360deg);}}
@media(prefers-reduced-motion:reduce){.gyro *{animation:none!important;}}

/* faq accordion */
.faq{margin-top:20px;border-top:1px solid var(--line);}
.faq details{border-bottom:1px solid var(--line);}
.faq summary{cursor:pointer;list-style:none;padding:22px 0;font-weight:600;font-size:17px;letter-spacing:.01em;display:flex;justify-content:space-between;gap:16px;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";font-family:var(--sora);color:var(--sub);font-size:20px;}
.faq details[open] summary::after{content:"–";}
.faq .a{padding:0 0 22px;font-weight:300;font-size:15px;color:var(--sec);max-width:74ch;}

/* journal list */
.essays{margin-top:24px;border-top:1px solid var(--line);}
.essays .e{border-bottom:1px solid var(--line);padding:26px 0;}
.essays .e.flag{background:var(--ind50);padding:26px 24px;border:1px solid var(--ind500);margin-bottom:8px;}
.essays .e .tag{font-weight:600;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--teal-text);}
.essays .e h3{font-size:22px;letter-spacing:.01em;margin-top:8px;}
.essays .e p{font-weight:300;font-size:14px;color:var(--muted);margin-top:8px;}

/* apply / form */
.apply{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:start;padding:72px 0;}
.apply .left h1{font-size:clamp(30px,3.6vw,44px);font-weight:800;letter-spacing:.008em;line-height:1.05;}
.apply .left p{font-weight:300;font-size:16.5px;color:var(--sec);margin-top:18px;max-width:44ch;}
.apply .perks{margin-top:26px;border-top:1px solid var(--line);}
.apply .perks .p{display:flex;gap:11px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line);font-size:14.5px;color:var(--sec);font-weight:400;}
.apply .perks .p i{color:var(--teal);font-size:18px;}
.formcard{border:1px solid var(--line);background:var(--surface);padding:34px;}
.formcard .intro{font-weight:300;font-size:14px;color:var(--muted);margin-bottom:22px;}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.field{display:flex;flex-direction:column;gap:7px;} .field.full{grid-column:1 / -1;}
.field label{font-family:var(--sora);font-weight:600;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);}
.field label .opt{color:var(--sub);text-transform:none;letter-spacing:0;font-weight:400;}
.field input,.field select{font-family:var(--sora);font-size:15px;padding:12px 14px;border:1px solid var(--line);border-radius:0;background:var(--page);color:var(--pri);width:100%;}
.field input:focus,.field select:focus{outline:2px solid var(--ind500);outline-offset:1px;border-color:var(--ind500);}
.produces{display:flex;gap:9px;flex-wrap:wrap;}
.produces label{display:inline-flex;align-items:center;gap:8px;font-size:14px;text-transform:none;letter-spacing:0;color:var(--sec);border:1px solid var(--line);padding:9px 14px;cursor:pointer;}
.produces input{width:auto;accent-color:var(--ind500);}
.consent{grid-column:1 / -1;display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--muted);}
.consent input{margin-top:3px;accent-color:var(--ind500);}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.actions{grid-column:1 / -1;display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:6px;}
.formnote{font-size:13px;min-height:18px;} .formnote.ok{color:var(--teal-text);} .formnote.err{color:#b91c1c;}

/* footer */
footer{border-top:1px solid var(--line);padding:46px 40px 64px;}
.foot{max-width:1240px;margin:0 auto;display:flex;justify-content:space-between;flex-wrap:wrap;gap:22px;align-items:flex-start;}
.foot .logo{height:20px;color:var(--pri);} .foot .tag{font-weight:300;font-size:13.5px;color:var(--sub);margin-top:12px;max-width:34ch;}
.foot .cols{display:flex;gap:48px;flex-wrap:wrap;}
.foot .colh{font-weight:600;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--sub);margin-bottom:12px;}
.foot .cols a{display:block;font-size:13px;color:var(--muted);margin-bottom:9px;} .foot .cols a:hover{color:var(--pri);}

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

@media(max-width:900px){
  .hero-in,.gyroband,.apply{grid-template-columns:1fr;}
  .hero .nodes-wrap{order:-1;}
  .cellgrid.c3,.cellgrid.c4{grid-template-columns:1fr 1fr;}
  .fgrid{grid-template-columns:1fr;}
  .nav-in .links a:not(.btn),.hnav .links a:not(.btn){display:none;}
}
