/* ============================================================
   JULIÁN CAVIEDES — DESIGN SYSTEM
   Quiet editorial authority. Black / bronze / one yellow spark.
   ============================================================ */

:root{
  /* color tokens */
  --black:#0a0a0a;
  --ink:#141311;
  --paper:#f5f1e8;
  --white:#faf7f0;
  --stone:#8c8578;
  --stone-light:#cdc7b8;
  --stone-dark:#48433a;
  --line:#e2dbc9;
  --line-dark:rgba(250,247,240,.14);
  --accent:#b6976a;
  --accent-soft:rgba(182,151,106,.16);
  --quick:#f2be00;

  /* type */
  --font-display:'Fraunces', 'Iowan Old Style', Georgia, serif;
  --font-sans:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  /* grid + spacing */
  --maxw:1360px;
  --edge:6vw;
  --section-y:clamp(56px,7vw,100px);

  /* motion */
  --ease:cubic-bezier(.16,.8,.28,1);
  --ease-soft:cubic-bezier(.4,0,.2,1);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:auto;}
html.has-lenis{scroll-behavior:auto;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-sans);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
figure{margin:0;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;margin:0;padding:0;}
button{font-family:inherit;background:none;border:0;color:inherit;cursor:pointer;}
::selection{background:var(--quick);color:var(--black);}

.section{
  padding:var(--section-y) var(--edge);
  max-width:var(--maxw);
  margin:0 auto;
  position:relative;
}
.section--flush{max-width:none;padding-left:0;padding-right:0;}
.section--dark{background:var(--black);color:var(--white);}
.dark-block{background:var(--black);color:var(--white);}

.eyebrow{
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--accent);
  display:flex;
  align-items:center;
  gap:.6em;
  margin-bottom:1.4em;
}
.eyebrow::before{
  content:'';
  width:28px;height:1px;
  background:var(--accent);
  display:inline-block;
}

h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:500;
  line-height:1.05;
  margin:0;
  letter-spacing:-.01em;
}
.display-hero{font-size:clamp(2.9rem,9.5vw,7.6rem);line-height:.98;}
.display-1{font-size:clamp(2.3rem,5.6vw,4.4rem);}
.display-2{font-size:clamp(1.9rem,3.8vw,3rem);}
.display-3{font-size:clamp(1.3rem,2.2vw,1.8rem);}
.lede{
  font-size:clamp(1.05rem,1.7vw,1.3rem);
  line-height:1.55;
  color:var(--stone-dark);
  max-width:46ch;
}
.dark-block .lede{color:var(--stone-light);}
p{margin:0 0 1em;}
.small{font-size:.85rem;color:var(--stone);}

.grid{display:grid;gap:32px;}
@media(min-width:1024px){
  .grid-12{grid-template-columns:repeat(12,1fr);}
}
@media(max-width:1023px) and (min-width:768px){
  .grid-12{grid-template-columns:repeat(8,1fr);}
}
@media(max-width:767px){
  .grid-12{grid-template-columns:repeat(4,1fr);gap:20px;}
  :root{--edge:6vw;--section-y:64px;}
}

/* ---------------- buttons / CTA ---------------- */
.btn{
  display:inline-flex;
  align-items:center;
  gap:.6em;
  font-family:var(--font-sans);
  font-size:.86rem;
  font-weight:600;
  letter-spacing:.03em;
  text-transform:uppercase;
  padding:1.05em 1.7em;
  border:1px solid currentColor;
  border-radius:2px;
  transition:background .4s var(--ease-soft),color .4s var(--ease-soft),transform .4s var(--ease-soft);
  white-space:nowrap;
}
.btn svg{width:14px;height:14px;transition:transform .35s var(--ease);}
.btn:hover svg{transform:translateX(4px);}
.btn--solid{background:var(--black);color:var(--white);border-color:var(--black);}
.btn--solid:hover{background:var(--quick);color:var(--black);border-color:var(--quick);}
.btn--ghost{background:transparent;color:var(--black);}
.btn--ghost:hover{background:var(--black);color:var(--white);}
.dark-block .btn--ghost{color:var(--white);}
.dark-block .btn--ghost:hover{background:var(--white);color:var(--black);}
.btn--quick{background:var(--quick);color:var(--black);border-color:var(--quick);}
.btn--quick:hover{background:var(--black);color:var(--quick);border-color:var(--black);}

/* ---------------- scroll progress ---------------- */
.scroll-progress{
  position:fixed;top:0;left:0;height:3px;width:0%;
  background:var(--quick);z-index:1300;
  transition:width .1s linear;
}

/* ---------------- NAVIGATION ---------------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:900;
  display:flex;align-items:center;justify-content:space-between;
  padding:26px var(--edge);
  color:var(--white);
  transition:padding .4s var(--ease-soft),background .4s var(--ease-soft),border-color .4s var(--ease-soft),color .4s var(--ease-soft);
}
body.light-top .nav{color:var(--ink);}
.nav.is-scrolled{
  padding-top:14px;padding-bottom:14px;
  background:rgba(245,241,232,.86);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
  color:var(--ink);
}
.nav-mark{
  font-family:var(--font-display);
  font-size:1.15rem;
  font-weight:600;
  letter-spacing:.01em;
}
.nav-links{display:flex;gap:2.6vw;align-items:center;}
.nav-links a{
  font-size:.8rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  position:relative;padding:4px 0;
}
.nav-links a::after{
  content:'';position:absolute;left:0;bottom:0;height:1px;width:0;
  background:currentColor;transition:width .4s var(--ease);
}
.nav-links a:hover::after,.nav-links a.is-active::after{width:100%;}
.nav-links{display:none;}
@media(min-width:900px){.nav-links{display:flex;}}

.nav-right{display:flex;align-items:center;gap:22px;}
.lang-switch{font-size:.78rem;font-weight:700;letter-spacing:.08em;padding:4px 2px;}
.lang-switch span{opacity:.4;}
.lang-switch:hover span,.lang-switch .is-current{opacity:1;}
.menu-lang{display:flex;gap:10px;font-size:.8rem;font-weight:700;letter-spacing:.06em;}
.menu-lang a{color:var(--stone-light);}
.menu-lang a.is-current{color:var(--quick);}
.menu-btn{
  display:flex;align-items:center;gap:.7em;
  font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
}
.menu-btn .bars{width:26px;height:14px;position:relative;}
.menu-btn .bars span{position:absolute;left:0;width:100%;height:1.5px;background:currentColor;transition:transform .35s var(--ease),opacity .35s var(--ease);}
.menu-btn .bars span:nth-child(1){top:0;}
.menu-btn .bars span:nth-child(2){bottom:0;}
body.menu-open .menu-btn .bars span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
body.menu-open .menu-btn .bars span:nth-child(2){transform:translateY(-6.5px) rotate(-45deg);}

/* fullscreen overlay menu */
.menu-overlay{
  position:fixed;inset:0;z-index:1000;
  background:var(--black);color:var(--white);
  display:flex;flex-direction:column;justify-content:space-between;
  padding:26px var(--edge) 40px;
  transform:translateY(-100%);
  transition:transform .6s var(--ease);
  overflow-y:auto;
}
body.menu-open .menu-overlay{transform:translateY(0);}
.menu-overlay-top{display:flex;justify-content:space-between;align-items:center;}
.menu-close{font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;display:flex;align-items:center;gap:.6em;}
.menu-primary{margin-top:6vh;}
.menu-primary a{
  display:block;font-family:var(--font-display);
  font-size:clamp(2.4rem,7vw,5.2rem);
  line-height:1.06;
  padding:.08em 0;
  color:var(--white);
  opacity:.35;
  transition:opacity .4s var(--ease),padding-left .4s var(--ease);
}
.menu-primary a:hover,.menu-primary a:focus-visible{opacity:1;padding-left:.25em;color:var(--quick);}
.menu-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:24px;align-items:flex-end;border-top:1px solid var(--line-dark);padding-top:24px;}
.menu-secondary{display:flex;gap:28px;}
.menu-secondary a,.menu-social a{font-size:.8rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--stone-light);}
.menu-secondary a:hover,.menu-social a:hover{color:var(--quick);}
.menu-social{display:flex;flex-wrap:wrap;gap:12px 20px;}

/* ---------------- HERO ---------------- */
.hero{
  min-height:100svh;
  position:relative;
  overflow:hidden;
  background:var(--black);
  color:var(--white);
}
.hero-frames{position:absolute;inset:0;z-index:0;}
.hero-frame{
  position:absolute;inset:0;
  background-size:cover;background-position:center top;
  opacity:0;transform:scale(1.08);
  transition:opacity 1.4s var(--ease),transform 2.6s var(--ease);
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:120px var(--edge) 90px;
}
.hero-frame.is-active{opacity:1;transform:scale(1);}
.hero-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,10,10,.15) 0%,rgba(10,10,10,.35) 55%,rgba(10,10,10,.92) 100%);z-index:1;}
.hero-scrim--heavy{background:linear-gradient(180deg,rgba(10,10,10,.45) 0%,rgba(10,10,10,.55) 40%,rgba(10,10,10,.94) 100%);}
.hero-frame-content{position:relative;z-index:2;max-width:920px;padding-right:0;}
@media(min-width:640px){.hero-frame-content{padding-right:150px;}}
.hero-name{
  font-family:var(--font-display);font-weight:500;
  font-size:clamp(2.8rem,9vw,7rem);line-height:1;
  text-transform:uppercase;letter-spacing:.01em;margin:0;
}
.hero-tagline{font-family:var(--font-sans);font-size:clamp(1.05rem,1.8vw,1.35rem);color:var(--stone-light);margin-top:22px;}
.hero-statement{
  font-family:var(--font-display);font-weight:500;
  font-size:clamp(2.4rem,7.2vw,5.6rem);line-height:1.04;margin:0;
}
.hero-statement span{display:block;}
.hero-statement span:nth-child(2){margin-left:clamp(16px,5vw,90px);}
.hero-statement span:nth-child(3){margin-left:clamp(32px,9vw,160px);color:var(--quick);}
.hero-substatement{font-family:var(--font-sans);font-size:clamp(1rem,1.6vw,1.2rem);color:var(--stone-light);margin-top:30px;max-width:34ch;}
.hero-cta{position:absolute;left:var(--edge);bottom:56px;z-index:3;}
.scroll-cue{
  display:flex;flex-direction:column;align-items:center;gap:10px;
  font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--stone-light);
  position:absolute;bottom:28px;right:var(--edge);z-index:2;
}
.scroll-cue .line{width:1px;height:38px;background:linear-gradient(var(--white),transparent);animation:pulse-line 2.2s infinite;}
@keyframes pulse-line{0%{opacity:.2;}50%{opacity:1;}100%{opacity:.2;}}

/* page hero (sub-pages) */
.page-hero{
  min-height:70svh;display:flex;align-items:flex-end;
  padding:150px var(--edge) 64px;
  background:var(--black) center top/cover no-repeat;
  color:var(--white);position:relative;
}
.page-hero::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,10,10,.25),rgba(10,10,10,.88));}
.page-hero-inner{position:relative;z-index:1;max-width:var(--maxw);margin:0 auto;width:100%;}
.hero-text-panel{
  display:inline-block;
  max-width:640px;
  background:rgba(10,10,10,.62);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  padding:30px 34px;
  border-radius:3px;
}
.page-hero .eyebrow{color:var(--quick);}

/* ---------------- pillars / cards ---------------- */
.pillars{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);margin-top:56px;}
@media(min-width:860px){.pillars{grid-template-columns:repeat(3,1fr);}}
.pillar{
  background:var(--paper);padding:44px 36px;
  transition:background .4s var(--ease-soft);
  position:relative;
}
.pillar:hover{background:var(--white);}
.pillar-index{font-family:var(--font-display);font-size:.85rem;color:var(--accent);margin-bottom:24px;}
.pillar h3{font-size:clamp(1.6rem,2.6vw,2.1rem);margin-bottom:14px;}
.pillar p{color:var(--stone-dark);font-size:.95rem;max-width:38ch;}
.pillar-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px;}
.pillar-tags span{font-size:.72rem;letter-spacing:.04em;color:var(--stone);border:1px solid var(--line);padding:5px 10px;border-radius:2px;}
.pillar-link{display:inline-flex;align-items:center;gap:.5em;margin-top:26px;font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;}
.pillar-link svg{width:13px;height:13px;transition:transform .3s var(--ease);}
.pillar:hover .pillar-link svg{transform:translateX(4px);}

/* ---------------- offer grid (what he does) ---------------- */
.offer-grid{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:2px;
  background:var(--line);
  border:1px solid var(--line);
  margin-top:56px;
}
.offer-tile{
  display:block;
  position:relative;overflow:hidden;
  aspect-ratio:1/1;
  grid-column:span 3;
  background:var(--stone-dark);
}
.offer-tile.offer--narrow{grid-column:span 2;}
.offer-tile img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease);}
.offer-tile:hover img{transform:scale(1.06);}
.offer-tile::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(10,10,10,.05) 45%,rgba(10,10,10,.85) 100%);
}
.offer-tile span{
  position:absolute;left:22px;right:22px;bottom:18px;z-index:1;
  color:#fff;font-family:var(--font-display);font-weight:600;
  font-size:clamp(1.05rem,2.2vw,1.5rem);letter-spacing:.01em;
}
@media(max-width:767px){
  .offer-grid{grid-template-columns:repeat(2,1fr);}
  .offer-tile,.offer-tile.offer--narrow{grid-column:span 1;}
}

/* ---------------- manifesto (legacy, unused) ---------------- */
.manifesto{
  text-align:left;
  position:relative;
  background-size:cover;
  background-position:left center;
  min-height:70svh;
  display:flex;
  flex-direction:column;
  justify-content:center;
  overflow:hidden;
  border-top:1px solid var(--line-dark);
  margin-top:4px;
}
.manifesto::before{
  content:'';
  position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(10,10,10,.3) 0%,rgba(10,10,10,.85) 48%,rgba(10,10,10,.97) 100%);
  pointer-events:none;
}
.manifesto .eyebrow,.manifesto p{position:relative;z-index:1;}
.manifesto p{
  font-family:var(--font-display);
  font-size:clamp(1.7rem,4.4vw,3.3rem);
  line-height:1.22;
  max-width:18ch;
  margin-left:auto;
  text-align:right;
  color:var(--stone-light);
}
.manifesto p em{font-style:normal;color:var(--white);}
@media(max-width:767px){
  .manifesto{background-position:30% center;}
  .manifesto p{text-align:left;margin-left:0;max-width:100%;}
}

/* ---------------- intro (home, "building what's next") ---------------- */
.intro{
  position:relative;
  background-size:cover;
  background-position:left center;
  min-height:80svh;
  display:flex;
  align-items:center;
  overflow:hidden;
  border-top:1px solid var(--line-dark);
  margin-top:4px;
}
.intro::before{
  content:'';
  position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(10,10,10,.5) 0%,rgba(10,10,10,.93) 52%,rgba(10,10,10,.99) 100%);
  pointer-events:none;
}
.intro-panel{position:relative;z-index:1;max-width:600px;margin-left:auto;}
.intro-panel h2{
  font-family:var(--font-display);font-weight:500;text-transform:uppercase;
  font-size:clamp(2rem,4.6vw,3.3rem);line-height:1.1;letter-spacing:.01em;
  margin:0 0 28px;color:var(--white);
}
.intro-panel p{font-family:var(--font-sans);font-size:1.05rem;line-height:1.7;color:var(--stone-light);margin:0 0 18px;max-width:50ch;}
.intro-panel p:last-of-type{margin-bottom:0;}
.intro-panel .btn{margin-top:30px;}
@media(max-width:767px){
  .intro{background-position:30% center;}
  .intro-panel{margin-left:0;max-width:100%;}
}

/* staggered two-line heading with motion */
.line-reveal{display:block;}
.line-reveal span{display:block;}
.line-reveal span.reveal.is-in{transition-delay:0s;}
.line-reveal span.reveal:nth-child(2).is-in{transition-delay:.14s;}

/* ---------------- image / media blocks ---------------- */
.media-frame{overflow:hidden;position:relative;border-radius:2px;background:var(--stone-dark);}
.media-frame img{width:100%;height:100%;object-fit:cover;object-position:center top;transition:transform 1.2s var(--ease);}
.media-frame:hover img{transform:scale(1.045);}
.ratio-portrait{aspect-ratio:4/5;}
.ratio-wide{aspect-ratio:16/9;}
.ratio-square{aspect-ratio:1/1;}

.split{display:grid;gap:56px;align-items:center;}
@media(min-width:960px){.split{grid-template-columns:1fr 1fr;gap:80px;}
  .split--reverse{direction:rtl;}
  .split--reverse>*{direction:ltr;}
}

/* ---------------- timeline ---------------- */
.timeline{position:relative;margin-top:60px;padding-left:34px;}
.timeline::before{content:'';position:absolute;left:5px;top:6px;bottom:6px;width:1px;background:var(--line-dark,var(--line));}
.dark-block .timeline::before{background:var(--line-dark);}
.timeline-item{position:relative;padding-bottom:64px;}
.timeline-item:last-child{padding-bottom:0;}
.timeline-item::before{
  content:'';position:absolute;left:-34px;top:6px;width:9px;height:9px;border-radius:50%;
  background:var(--quick);box-shadow:0 0 0 4px var(--paper);
}
.dark-block .timeline-item::before{box-shadow:0 0 0 4px var(--black);}
.timeline-year{font-family:var(--font-display);font-size:1.5rem;color:var(--accent);margin-bottom:8px;}
.timeline-item h3{font-size:clamp(1.3rem,2vw,1.7rem);margin-bottom:10px;}
.timeline-item p{max-width:60ch;color:var(--stone-dark);}
.dark-block .timeline-item p{color:var(--stone-light);}

/* ---------------- stats ---------------- */
.stat-row{display:grid;gap:32px;margin-top:48px;}
@media(min-width:768px){.stat-row{grid-template-columns:repeat(4,1fr);}}
.stat b{display:block;font-family:var(--font-display);font-size:clamp(2rem,4vw,3rem);color:var(--white);}
.stat span{font-size:.78rem;letter-spacing:.05em;color:var(--stone-light);text-transform:uppercase;}

/* ---------------- podcast feature ---------------- */
.podcast-card{
  display:grid;gap:40px;background:var(--black);color:var(--white);
  border-radius:2px;overflow:hidden;
}
@media(min-width:900px){.podcast-card{grid-template-columns:.9fr 1.1fr;}}
.podcast-card img{width:100%;height:100%;object-fit:cover;min-height:320px;}
.podcast-copy{padding:52px var(--edge) 52px 0;display:flex;flex-direction:column;justify-content:center;}
@media(max-width:899px){.podcast-copy{padding:0 var(--edge) 52px;}}
.podcast-question{font-family:var(--font-display);font-size:clamp(1.6rem,3vw,2.3rem);color:var(--quick);margin-bottom:18px;}
.topic-row{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 30px;}
.topic-row span{font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;border:1px solid var(--line-dark);padding:6px 12px;color:var(--stone-light);border-radius:2px;}

/* ---------------- footer ---------------- */
.site-footer{background:var(--black);color:var(--stone-light);padding:80px var(--edge) 30px;}
.footer-top{display:grid;gap:48px;padding-bottom:56px;border-bottom:1px solid var(--line-dark);}
@media(min-width:900px){.footer-top{grid-template-columns:1.4fr repeat(3,.8fr);}}
.footer-mark{font-family:var(--font-display);font-size:1.6rem;color:var(--white);margin-bottom:14px;}
.footer-col h4{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--stone);margin-bottom:18px;font-family:var(--font-sans);font-weight:700;}
.footer-col a{display:block;font-size:.9rem;margin-bottom:12px;color:var(--stone-light);}
.footer-col a:hover{color:var(--quick);}
.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px;padding-top:26px;font-size:.78rem;color:var(--stone);}

/* ---------------- final CTA ---------------- */
.final-cta{background:var(--black);color:var(--white);text-align:left;overflow:hidden;position:relative;}
.final-cta h2{font-size:clamp(2.6rem,7vw,6rem);max-width:14ch;}
.final-cta .btn{margin-top:44px;}

/* ---------------- misc utilities ---------------- */
.tag-row{display:flex;flex-wrap:wrap;gap:10px;}
.reveal{opacity:0;transform:translateY(36px);}
.reveal.is-in{opacity:1;transform:none;transition:opacity 1s var(--ease),transform 1s var(--ease);}
.center{text-align:center;}
.mt-lg{margin-top:64px;}
.section-head{max-width:640px;margin-bottom:56px;}
.section-head.wide{max-width:820px;}

/* custom cursor */
.cursor-dot{
  position:fixed;top:0;left:0;width:8px;height:8px;border-radius:50%;
  background:var(--quick);pointer-events:none;z-index:2000;
  transform:translate(-50%,-50%);
  transition:width .25s var(--ease),height .25s var(--ease),opacity .25s var(--ease);
  display:none;
}
@media(hover:hover) and (pointer:fine){.cursor-dot{display:block;}}
.cursor-dot.is-link{width:44px;height:44px;background:transparent;border:1px solid var(--quick);}

@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1;transform:none;transition:none;}
  .hero-frame{transition:opacity .4s linear;}
  .cursor-dot{display:none;}
}

.two-col-media{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:56px;}
@media(max-width:640px){.two-col-media{grid-template-columns:1fr;}}
.two-col-media figcaption{margin-top:16px;font-size:.85rem;color:var(--stone);}

/* card grids (advisory / shop / speaking) */
.card-grid{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);}
@media(min-width:768px){.card-grid--3{grid-template-columns:repeat(3,1fr);}
  .card-grid--2{grid-template-columns:repeat(2,1fr);}}
.card{background:var(--paper);padding:38px 32px;}
.card h3{font-size:1.3rem;margin-bottom:12px;}
.card p{color:var(--stone-dark);font-size:.92rem;}

.quote-block{border-left:2px solid var(--quick);padding-left:28px;margin:40px 0;}
.quote-block p{font-family:var(--font-display);font-size:clamp(1.3rem,2.4vw,1.8rem);line-height:1.4;color:var(--ink);}
.dark-block .quote-block p{color:var(--white);}

form.form{display:grid;gap:20px;margin-top:40px;max-width:560px;}
.form label{font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--stone);display:block;margin-bottom:8px;}
.form input,.form select,.form textarea{
  width:100%;background:transparent;border:0;border-bottom:1px solid var(--line);
  padding:10px 0;font-family:var(--font-sans);font-size:1rem;color:var(--ink);
}
.dark-block .form input,.dark-block .form select,.dark-block .form textarea{color:var(--white);border-color:var(--line-dark);}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--accent);}
.form textarea{resize:vertical;min-height:100px;}

/* ============================================================
   POLISH LAYER — scrollbar, grain, focus, motion
   ============================================================ */

/* branded scrollbar */
html{scrollbar-width:thin;scrollbar-color:var(--stone) var(--paper);}
::-webkit-scrollbar{width:10px;height:10px;}
::-webkit-scrollbar-track{background:var(--paper);}
::-webkit-scrollbar-thumb{background:var(--stone);border-radius:10px;border:2px solid var(--paper);}
::-webkit-scrollbar-thumb:hover{background:var(--quick);}

/* film grain over everything (very subtle) */
body::after{
  content:'';position:fixed;inset:0;pointer-events:none;z-index:1200;
  opacity:.07;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .5  0 0 0 0 .5  0 0 0 0 .5  0 0 0 .9 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}

/* keyboard focus */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:2px solid var(--quick);outline-offset:4px;border-radius:2px;
}

/* buttons: depth on hover (magnetic offset is applied by JS) */
.btn:hover{box-shadow:0 14px 30px -14px rgba(10,10,10,.45);}

/* staggered entrance inside grids */
.card-grid .card.reveal.is-in:nth-child(3n+2),
.pillars .pillar.reveal.is-in:nth-child(3n+2),
.offer-grid .offer-tile.reveal.is-in:nth-child(3n+2){transition-delay:.09s;}
.card-grid .card.reveal.is-in:nth-child(3n+3),
.pillars .pillar.reveal.is-in:nth-child(3n+3),
.offer-grid .offer-tile.reveal.is-in:nth-child(3n+3){transition-delay:.18s;}
.offer-grid .offer-tile.reveal.is-in:nth-child(4){transition-delay:.12s;}
.offer-grid .offer-tile.reveal.is-in:nth-child(5){transition-delay:.24s;}
.topic-row span{opacity:0;transform:translateY(10px);transition:opacity .6s var(--ease),transform .6s var(--ease);}
.reveal.is-in .topic-row span,.podcast-card.is-in .topic-row span{opacity:1;transform:none;}
.reveal.is-in .topic-row span:nth-child(2),.podcast-card.is-in .topic-row span:nth-child(2){transition-delay:.08s;}
.reveal.is-in .topic-row span:nth-child(3),.podcast-card.is-in .topic-row span:nth-child(3){transition-delay:.16s;}
.reveal.is-in .topic-row span:nth-child(4),.podcast-card.is-in .topic-row span:nth-child(4){transition-delay:.24s;}
.reveal.is-in .topic-row span:nth-child(5),.podcast-card.is-in .topic-row span:nth-child(5){transition-delay:.32s;}
.reveal.is-in .topic-row span:nth-child(6),.podcast-card.is-in .topic-row span:nth-child(6){transition-delay:.4s;}

/* hero + page-hero entrance choreography */
@keyframes riseIn{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}
.hero-frame.is-active .hero-frame-content > *{animation:riseIn 1.1s var(--ease) both;}
.hero-frame.is-active .hero-frame-content > *:nth-child(2){animation-delay:.12s;}
.hero-frame.is-active .hero-frame-content > *:nth-child(3){animation-delay:.26s;}
.page-hero-inner > *{animation:riseIn 1.1s var(--ease) both;}
.page-hero-inner > *:nth-child(2){animation-delay:.12s;}
.page-hero-inner > *:nth-child(3){animation-delay:.26s;}


/* page transitions */
@keyframes pageIn{from{opacity:0;}to{opacity:1;}}
body{animation:pageIn .6s ease both;}
html.is-leaving body{opacity:0;transition:opacity .32s ease;}

@media (prefers-reduced-motion: reduce){
  body{animation:none;}
  .hero-frame.is-active .hero-frame-content > *,.page-hero-inner > *{animation:none;}
  .topic-row span{opacity:1;transform:none;transition:none;}
  body::after{display:none;}
}
