/* ============================================================
   JoelPolley.com — "Night Watch" design system
   Twin of anniechitate.com (shared family DNA: Fraunces /
   Newsreader / Manrope, editorial rows, bronze accent) with an
   inverted, dark-dominant luxury palette and a full motion
   system. Annie is the dawn; Joel is the night shift.
   ============================================================ */

:root{
  /* --- surfaces --- */
  --night:#0B111B;        /* body background (deep pressure navy) */
  --ink:#121B29;          /* raised dark surface */
  --abyss:#070C14;        /* deepest sections */
  --ivory:#F6F2EA;        /* light sections (family DNA) */
  --parchment:#ECE5DA;

  /* --- text --- */
  --cream:#F3EEE6;        /* headings on dark */
  --mist:#C7D0DB;         /* body on dark  (≈10:1 on night) */
  --steel:#93A0AF;        /* secondary on dark (≈5.6:1) */
  --inkhead:#101923;      /* headings on light */
  --charcoal:#292826;     /* body on light */

  /* --- accents --- */
  --bronze:#A77B48;       /* family accent */
  --brass:#C2914F;        /* brighter bronze for on-dark accents */
  --artery:#6E3437;       /* deep arterial red (work pathways) */

  /* --- lines --- */
  --line-dark:rgba(199,208,219,0.14);
  --line-darker:rgba(199,208,219,0.08);
  --line-light:#C9BFB2;

  /* --- type --- */
  --display:'Fraunces', Georgia, serif;
  --serif:'Newsreader', Georgia, serif;
  --sans:'Manrope', system-ui, sans-serif;

  /* --- motion --- */
  --out-expo:cubic-bezier(0.19,1,0.22,1);
  --out-quart:cubic-bezier(0.25,1,0.5,1);

  /* --- z scale --- */
  --z-header:50; --z-progress:60; --z-cursorless:70;
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--serif);
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
  background:var(--night);
  color:var(--mist);
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
::selection{background:var(--brass);color:var(--abyss);}

.wrap{max-width:1180px;margin:0 auto;padding:0 40px;}
@media (max-width:720px){.wrap{padding:0 22px;}}

.on-light{color:var(--charcoal);}
.on-light h1,.on-light h2,.on-light h3,.on-light h4{color:var(--inkhead);}

.eyebrow{font-family:var(--sans);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--brass);font-weight:700;}
.on-light .eyebrow{color:var(--bronze);}
.rule{width:48px;height:1px;background:var(--brass);margin:16px 0 22px;transform-origin:left center;}
.on-light .rule{background:var(--bronze);}

h1,h2,h3{text-wrap:balance;}

/* ---- film grain ---- */
.grain{position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");
  animation:grain-shift 9s steps(6) infinite;}
@keyframes grain-shift{
  0%,100%{background-position:0 0;}17%{background-position:-52px 34px;}
  34%{background-position:38px -46px;}51%{background-position:-34px -38px;}
  68%{background-position:50px 30px;}85%{background-position:-20px 48px;}
}

/* ---- scroll progress hairline ---- */
#progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:var(--z-progress);
  background:linear-gradient(to right,var(--bronze),var(--brass));
  transform:scaleX(0);transform-origin:left center;}

/* ---- header ---- */
header{position:fixed;top:0;left:0;right:0;z-index:var(--z-header);
  transition:transform .55s var(--out-expo), background .4s, border-color .4s, backdrop-filter .4s;
  background:transparent;border-bottom:1px solid transparent;}
header.solid{background:rgba(9,14,22,0.82);backdrop-filter:blur(14px);border-bottom-color:var(--line-darker);}
header.hid{transform:translateY(-101%);}
nav{display:flex;align-items:center;justify-content:space-between;padding:22px 40px;max-width:1180px;margin:0 auto;}
.logo{font-family:var(--display);font-size:19px;letter-spacing:.03em;color:var(--cream);font-weight:500;position:relative;}
.logo em{color:var(--brass);font-style:italic;}
.logo .rn{font-family:var(--sans);font-size:9.5px;letter-spacing:.22em;color:var(--steel);font-weight:700;margin-left:8px;vertical-align:2px;}
.nav-links{display:flex;gap:34px;font-family:var(--sans);font-size:12px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;}
.nav-links a{color:var(--mist);opacity:.75;transition:opacity .25s,color .25s;position:relative;padding-bottom:4px;}
.nav-links a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:var(--brass);
  transform:scaleX(0);transform-origin:right center;transition:transform .45s var(--out-expo);}
.nav-links a:hover,.nav-links a.active{opacity:1;color:var(--brass);}
.nav-links a:hover::after,.nav-links a.active::after{transform:scaleX(1);transform-origin:left center;}
.nav-cta{font-family:var(--sans);font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;
  background:var(--cream);color:var(--abyss);padding:12px 22px;border-radius:4px;white-space:nowrap;
  transition:background .3s,transform .3s;}
.nav-cta:hover{background:var(--brass);}
@media (max-width:860px){.nav-links{display:none;}nav{padding:18px 22px;}}

section{padding:110px 0;position:relative;}
@media (max-width:760px){section{padding:72px 0;}}
.section-head{max-width:640px;margin-bottom:52px;}
.section-head h2{font-family:var(--display);font-weight:400;font-size:clamp(28px,3.6vw,42px);line-height:1.14;color:var(--cream);}
.section-head h2 em{color:var(--brass);font-style:italic;}
.on-light .section-head h2{color:var(--inkhead);}
.on-light .section-head h2 em{color:var(--bronze);}

/* ---- buttons ---- */
.btn-primary,.btn-ghost{position:relative;display:inline-flex;align-items:center;gap:8px;overflow:hidden;
  font-family:var(--sans);font-size:13px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;
  padding:16px 30px;border-radius:4px;transition:transform .35s var(--out-quart),background .3s,border-color .3s,color .3s;
  will-change:transform;}
.btn-primary{background:var(--brass);color:var(--abyss);}
.btn-primary:hover{background:#D2A363;}
.btn-primary::after{content:"";position:absolute;top:0;left:-80%;width:50%;height:100%;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,0.38),transparent);
  transform:skewX(-20deg);transition:left .7s var(--out-quart);pointer-events:none;}
.btn-primary:hover::after{left:130%;}
.btn-ghost{border:1px solid var(--line-dark);color:var(--cream);}
.btn-ghost:hover{border-color:var(--brass);color:var(--brass);}
.on-light .btn-ghost{border-color:var(--line-light);color:var(--inkhead);}
.on-light .btn-ghost:hover{border-color:var(--bronze);color:var(--bronze);}

/* ---- photo slots (placeholder convention, matches Annie's site) ---- */
.photo-slot{position:relative;border:1px dashed rgba(194,145,79,0.5);overflow:hidden;
  background:linear-gradient(160deg,rgba(194,145,79,0.09),rgba(255,255,255,0.02));
  display:flex;align-items:center;justify-content:center;text-align:center;}
.slot-label{position:relative;z-index:1;font-family:var(--sans);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--mist);opacity:.8;padding:0 26px;}
.on-light .slot-label{color:var(--charcoal);opacity:.75;}
.slot-label b{display:block;color:var(--brass);font-size:11.5px;margin-bottom:8px;letter-spacing:.12em;opacity:1;}

/* real photo frame with wipe reveal */
.photo-frame{position:relative;overflow:hidden;}
.photo-frame img{width:100%;height:100%;object-fit:cover;}
html.js .photo-frame[data-reveal] img{transform:scale(1.12);transition:transform 1.6s var(--out-expo);}
html.js .photo-frame[data-reveal].in img{transform:scale(1.02);}

/* ============================================================
   MOTION SYSTEM
   Visible by default; hidden states only exist once JS adds
   html.js, so no-JS visitors and crawlers see everything.
   ============================================================ */
html.js [data-reveal]{opacity:0;transform:translateY(34px);
  transition:opacity 1s var(--out-expo),transform 1s var(--out-expo);}
html.js [data-reveal].in{opacity:1;transform:translateY(0);}

html.js [data-reveal="wipe"]{transform:none;clip-path:inset(0 0 100% 0);
  transition:opacity .9s var(--out-expo),clip-path 1.25s var(--out-expo);}
html.js [data-reveal="wipe"].in{clip-path:inset(0 0 0% 0);}

html.js [data-reveal="wipe-left"]{transform:none;clip-path:inset(0 100% 0 0);
  transition:opacity .9s var(--out-expo),clip-path 1.25s var(--out-expo);}
html.js [data-reveal="wipe-left"].in{clip-path:inset(0 0% 0 0);}

html.js [data-reveal="rule"]{transform:scaleX(0);opacity:1;transform-origin:left center;
  transition:transform 1.1s var(--out-expo);}
html.js [data-reveal="rule"].in{transform:scaleX(1);}

/* staggered children */
html.js [data-reveal-stagger]>*{opacity:0;transform:translateY(30px);
  transition:opacity .9s var(--out-expo),transform .9s var(--out-expo);
  transition-delay:calc(var(--i,0)*110ms);}
html.js [data-reveal-stagger].in>*{opacity:1;transform:translateY(0);}

/* hero load choreography */
html.js .hero-line{display:block;overflow:hidden;}
html.js .hero-line>span{display:block;transform:translateY(115%);
  transition:transform 1.25s var(--out-expo);}
html.js body.loaded .hero-line>span{transform:translateY(0);}
html.js .hero-fade{opacity:0;transform:translateY(26px);
  transition:opacity 1.1s var(--out-expo),transform 1.1s var(--out-expo);}
html.js body.loaded .hero-fade{opacity:1;transform:translateY(0);}
html.js .hero-portrait{clip-path:inset(100% 0 0 0);transition:clip-path 1.5s var(--out-expo) .25s;}
html.js body.loaded .hero-portrait{clip-path:inset(0 0 0 0);}
html.js .hero-portrait img{transform:scale(1.15);transition:transform 2.4s var(--out-expo) .25s;}
html.js body.loaded .hero-portrait img{transform:scale(1.02);}
.d1{transition-delay:.08s!important}.d2{transition-delay:.18s!important}
.d3{transition-delay:.3s!important}.d4{transition-delay:.44s!important}
.d5{transition-delay:.6s!important}.d6{transition-delay:.78s!important}

/* scroll-scrubbed word reveal (vision quote) */
.scrub-words span{opacity:.13;transition:opacity .35s linear;}
.scrub-words span.lit{opacity:1;}

/* ---- HERO ---- */
.hero{background:radial-gradient(1100px 700px at 78% 18%,rgba(194,145,79,0.13),transparent 60%),
  radial-gradient(900px 600px at 8% 90%,rgba(110,52,55,0.18),transparent 55%),var(--abyss);
  min-height:92vh;display:flex;align-items:center;padding:170px 0 90px;}
.hero::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(760px 520px at 70% 30%,rgba(194,145,79,0.10),transparent 65%);
  animation:glow-drift 22s ease-in-out infinite alternate;}
@keyframes glow-drift{from{transform:translate3d(-4%,2%,0) scale(1);}to{transform:translate3d(4%,-3%,0) scale(1.08);}}
.hero-grid{display:grid;grid-template-columns:1.05fr 0.95fr;gap:60px;align-items:center;position:relative;z-index:2;}
@media (max-width:920px){.hero-grid{grid-template-columns:1fr;}.hero{min-height:0;padding:140px 0 70px;}}
.hero h1{font-family:var(--display);font-weight:400;font-size:clamp(40px,5.4vw,74px);line-height:1.04;margin:18px 0 20px;color:var(--cream);letter-spacing:-0.015em;}
.hero .tag{font-family:var(--display);font-style:italic;font-weight:400;font-size:clamp(19px,2.2vw,25px);color:var(--brass);margin-bottom:22px;}
.hero p.lede{font-size:18px;color:var(--steel);max-width:500px;margin-bottom:34px;}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap;}
.hero-portrait{aspect-ratio:4/5;position:relative;}
.hero-portrait::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 1px rgba(194,145,79,0.28);pointer-events:none;}
.hero-portrait .edge{position:absolute;left:-14px;bottom:-14px;width:58%;height:38%;
  border-left:1px solid var(--brass);border-bottom:1px solid var(--brass);opacity:.55;pointer-events:none;}
@media (max-width:920px){.hero-portrait{max-width:430px;}}
.hero-scrollcue{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);z-index:2;
  font-family:var(--sans);font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--steel);
  display:flex;flex-direction:column;align-items:center;gap:10px;}
.hero-scrollcue::after{content:"";width:1px;height:44px;background:linear-gradient(var(--brass),transparent);
  animation:cue-drop 2.2s var(--out-expo) infinite;}
@keyframes cue-drop{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
@media (max-width:920px){.hero-scrollcue{display:none;}}

/* ---- marquee authority ticker ---- */
.marquee{background:var(--ink);border-top:1px solid var(--line-darker);border-bottom:1px solid var(--line-darker);
  overflow:hidden;padding:26px 0;position:relative;}
.marquee-track{display:flex;gap:0;width:max-content;animation:marquee 36s linear infinite;}
.marquee:hover .marquee-track{animation-play-state:paused;}
.marquee-item{font-family:var(--sans);font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--mist);font-weight:600;white-space:nowrap;padding:0 28px;position:relative;}
.marquee-item::after{content:"·";position:absolute;right:-4px;color:var(--brass);}
@keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* ---- stats ---- */
.stat-strip{background:var(--abyss);border-bottom:1px solid var(--line-darker);}
.stat-grid{display:flex;justify-content:center;padding:54px 0;flex-wrap:wrap;}
.stat{text-align:center;padding:0 52px;position:relative;}
.stat:not(:last-child)::after{content:"";position:absolute;right:0;top:8px;bottom:8px;width:1px;background:var(--line-darker);}
@media (max-width:760px){.stat{padding:14px 24px;flex:1 1 40%;}.stat:not(:last-child)::after{display:none;}}
.stat .num{font-family:var(--display);font-size:46px;font-weight:400;color:var(--brass);line-height:1;font-variant-numeric:tabular-nums;}
.stat .num sup{font-size:22px;color:var(--bronze);}
.stat .label{font-family:var(--sans);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--steel);margin-top:12px;}

/* ---- punch quotes ---- */
#punch{background:var(--night);text-align:center;}
#punch .wrap{max-width:820px;}
.punch-card{border-top:1px solid rgba(194,145,79,0.3);border-bottom:1px solid rgba(194,145,79,0.3);padding:38px 20px;margin-bottom:36px;}
.punch-card .quote-mark{font-family:var(--display);font-size:46px;color:var(--brass);line-height:1;margin-bottom:4px;}
.punch-card p{font-family:var(--display);font-style:italic;font-weight:400;font-size:clamp(21px,2.8vw,29px);color:var(--cream);line-height:1.34;}
#punch .close-line{font-family:var(--sans);font-style:normal;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--brass);font-weight:700;margin-top:20px;}
#punch .personal{font-family:var(--serif);font-size:17px;color:var(--steel);line-height:1.7;max-width:640px;margin:28px auto 0;}
#punch .personal strong{color:var(--cream);font-weight:500;}

/* ---- editorial intro (light) ---- */
.intro-grid{display:grid;grid-template-columns:0.78fr 1.22fr;gap:60px;align-items:start;}
@media (max-width:920px){.intro-grid{grid-template-columns:1fr;gap:36px;}}
.intro-slot{aspect-ratio:3/4;}
.intro-copy p{font-size:17.5px;margin-bottom:20px;color:var(--charcoal);max-width:66ch;}
.intro-copy p.pull{font-family:var(--serif);font-style:italic;font-size:22px;border-left:2px solid var(--bronze);padding-left:22px;margin:28px 0;color:var(--inkhead);}
.intro-copy h2{font-family:var(--display);font-weight:400;font-size:clamp(26px,3.2vw,36px);line-height:1.18;margin-bottom:24px;color:var(--inkhead);}

/* ---- proof pills ---- */
.stages{display:flex;flex-wrap:wrap;gap:12px;align-items:center;}
.stages .label{font-family:var(--sans);font-size:11px;letter-spacing:.1em;text-transform:uppercase;opacity:.6;margin-right:6px;}
.stage-pill{font-family:var(--sans);font-size:13px;border:1px solid var(--line-light);border-radius:4px;padding:8px 15px;color:var(--inkhead);
  transition:border-color .3s,transform .3s;}
.stage-pill:hover{border-color:var(--bronze);transform:translateY(-2px);}
.stage-pill.primary{border-color:var(--bronze);color:var(--bronze);font-weight:600;}
.on-dark-pills .stage-pill{border-color:var(--line-dark);color:var(--cream);}
.on-dark-pills .stage-pill.primary{border-color:var(--brass);color:var(--brass);}
.on-dark-pills .stages .label{color:var(--steel);}

/* ---- vision quote (scrubbed) ---- */
#vision{background:var(--abyss);text-align:center;padding:150px 0;}
#vision .wrap{max-width:780px;}
#vision p.scrub-words{font-family:var(--display);font-style:italic;font-weight:400;font-size:clamp(24px,3.4vw,38px);color:var(--cream);line-height:1.34;margin-bottom:22px;}
#vision .attr{font-family:var(--sans);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--brass);}

/* ---- directory rows ---- */
.dir-list{border-top:1px solid var(--line-dark);}
.dir-row{display:grid;grid-template-columns:1fr 1.7fr auto;gap:22px;align-items:center;padding:30px 18px;margin:0 -18px;
  border-bottom:1px solid var(--line-dark);position:relative;transition:background .4s,padding-left .4s;}
.dir-row:hover{background:rgba(194,145,79,0.06);padding-left:30px;}
@media (max-width:760px){.dir-row{grid-template-columns:1fr;gap:6px;}}
.dir-row h4,.dir-row h3{font-family:var(--display);font-size:20px;font-weight:400;color:var(--cream);}
.dir-row p{font-size:14.5px;color:var(--steel);}
.dir-row .d-link{font-family:var(--sans);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--brass);white-space:nowrap;
  display:inline-flex;align-items:center;gap:7px;}
.dir-row .d-link .arr{transition:transform .4s var(--out-expo);display:inline-block;}
.dir-row:hover .d-link .arr{transform:translateX(6px);}
.on-light .dir-row{border-bottom-color:var(--line-light);}
.on-light .dir-row h4,.on-light .dir-row h3{color:var(--inkhead);}
.on-light .dir-row p{color:var(--charcoal);opacity:.8;}
.on-light .dir-row:hover{background:rgba(167,123,72,0.07);}
.on-light .dir-list{border-top-color:var(--line-light);}

/* ---- tease bands ---- */
.tease-band{padding:92px 0;text-align:center;}
.tease-band .wrap{max-width:660px;}
.tease-band .eyebrow{display:block;margin-bottom:14px;}
.tease-band p{font-family:var(--display);font-weight:400;font-style:italic;font-size:clamp(20px,2.6vw,27px);line-height:1.42;margin-bottom:30px;color:var(--cream);}

/* ---- topics (speaking) ---- */
.topics-row{border-top:1px solid var(--line-light);}
.topic-row{display:grid;grid-template-columns:70px 1fr 90px;gap:24px;align-items:start;padding:38px 18px;margin:0 -18px;
  border-bottom:1px solid var(--line-light);transition:background .4s,padding-left .4s;}
.topic-row:hover{background:rgba(167,123,72,0.06);padding-left:30px;}
@media (max-width:820px){.topic-row{grid-template-columns:44px 1fr;}.topic-row .topic-arrow{display:none;}}
.topic-num{font-family:var(--display);font-size:26px;color:var(--bronze);font-weight:400;line-height:1.3;}
.topic-tag{font-family:var(--sans);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--bronze);font-weight:700;margin-bottom:6px;}
.topic-title{font-family:var(--display);font-size:23px;font-weight:400;color:var(--inkhead);margin-bottom:10px;}
.topic-ground{font-family:var(--serif);font-style:italic;font-size:15.5px;color:var(--inkhead);opacity:.9;line-height:1.6;margin-bottom:12px;max-width:70ch;}
.topic-desc{font-size:15px;color:var(--charcoal);opacity:.9;max-width:72ch;}
.topic-bracket{font-family:var(--sans);font-size:13px;color:var(--charcoal);opacity:.7;font-style:italic;margin-top:10px;max-width:72ch;}
.topic-arrow{font-family:var(--sans);font-size:20px;color:var(--bronze);text-align:right;transition:transform .4s var(--out-expo);}
.topic-row:hover .topic-arrow{transform:translateX(8px);}

/* ---- proof gallery ---- */
.proof-gallery{display:grid;grid-template-columns:1.4fr 1fr 1fr;grid-template-rows:auto auto;gap:14px;margin-bottom:46px;}
.proof-gallery .photo-slot:nth-child(1){grid-row:1/3;aspect-ratio:auto;}
.proof-gallery .photo-slot{aspect-ratio:4/3;}
@media (max-width:820px){.proof-gallery{grid-template-columns:1fr 1fr;}.proof-gallery .photo-slot:nth-child(1){grid-column:1/-1;grid-row:auto;aspect-ratio:16/9;}}
.credibility-line{font-size:17px;max-width:640px;margin-bottom:48px;}
.reel-slot{aspect-ratio:16/9;margin-top:44px;}

/* ---- pathways (work page) ---- */
.pathways{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1px;background:rgba(243,238,230,0.15);border:1px solid rgba(243,238,230,0.15);margin-bottom:20px;}
@media (max-width:860px){.pathways{grid-template-columns:1fr;}}
.pathway{background:var(--artery);padding:34px 28px;transition:background .4s;}
.pathway:hover{background:#7C3A3E;}
.pathway h4{font-family:var(--display);font-weight:400;font-size:19px;color:var(--cream);margin-bottom:10px;}
.pathway p{color:rgba(243,238,230,0.78);font-size:14px;}

.offer-detail{padding:96px 0;border-bottom:1px solid var(--line-light);}
.offer-detail:last-of-type{border-bottom:none;}
.offer-detail-grid{display:grid;grid-template-columns:0.4fr 1fr;gap:48px;}
@media (max-width:820px){.offer-detail-grid{grid-template-columns:1fr;gap:20px;}}
.offer-detail h3{font-family:var(--display);font-weight:400;font-size:30px;color:var(--inkhead);margin-bottom:6px;}
.offer-detail .offer-for{font-family:var(--sans);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--bronze);}
.offer-detail p{font-size:16px;color:var(--charcoal);margin-bottom:18px;max-width:66ch;}
.offer-detail ul{list-style:none;margin-bottom:22px;}
.offer-detail li{font-size:15px;padding:10px 0 10px 24px;position:relative;border-top:1px solid var(--line-light);max-width:70ch;}
.offer-detail li:first-child{border-top:none;}
.offer-detail li::before{content:"—";position:absolute;left:0;color:var(--bronze);}

/* ---- book spotlight ---- */
#book{background:var(--abyss);}
.book-grid{display:grid;grid-template-columns:0.55fr 1fr;gap:56px;align-items:center;}
@media (max-width:820px){.book-grid{grid-template-columns:1fr;gap:32px;}}
.book-slot{aspect-ratio:2/3;}
#book h2{color:var(--cream);}
#book .book-copy p{color:var(--steel);font-size:16px;margin-bottom:20px;max-width:64ch;}
#book .book-copy p.hook{font-family:var(--serif);font-style:italic;color:var(--cream);font-size:20px;}

/* ---- humanity (light close) ---- */
.humanity-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
@media (max-width:860px){.humanity-grid{grid-template-columns:1fr;gap:36px;}}
.humanity-slot{aspect-ratio:4/3;}
.humanity-copy p{font-size:16.5px;color:var(--charcoal);margin-bottom:18px;max-width:62ch;}

/* ---- inquiry form ---- */
.ff-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
@media (max-width:640px){.ff-grid{grid-template-columns:1fr;}}
#inquiry-form label{display:block;font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--steel);}
#inquiry-form input,#inquiry-form textarea{display:block;width:100%;margin-top:8px;background:rgba(243,238,230,0.05);
  border:1px solid var(--line-dark);border-radius:4px;padding:15px 16px;color:var(--cream);
  font-family:var(--serif);font-size:16px;transition:border-color .3s,background .3s,box-shadow .3s;}
#inquiry-form input::placeholder{color:rgba(243,238,230,0.62);}
#inquiry-form input:focus,#inquiry-form textarea:focus{outline:none;border-color:var(--brass);background:rgba(243,238,230,0.09);
  box-shadow:0 0 0 3px rgba(194,145,79,0.15);}
#inquiry-form .ff-full{margin-top:18px;}
.ff-actions{margin-top:28px;display:flex;align-items:center;gap:20px;flex-wrap:wrap;}
.ff-status{font-family:var(--sans);font-size:14px;color:var(--brass);}
.ff-status.ok{color:#9DBE9A;}
#inquiry-form button.btn-primary{border:none;cursor:pointer;}
#inquiry-form button.btn-primary:disabled{opacity:.6;cursor:default;transform:none;}
#inquiry-form button.sending{animation:send-pulse 1.1s ease-in-out infinite;}
@keyframes send-pulse{0%,100%{opacity:.65;}50%{opacity:1;}}

/* ---- footer ---- */
footer{background:var(--abyss);padding:80px 0 32px;border-top:1px solid var(--line-darker);}
.foot-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:36px;margin-bottom:56px;}
@media (max-width:760px){.foot-grid{grid-template-columns:1fr;gap:30px;}}
.foot-wordmark{font-family:var(--display);font-size:26px;color:var(--cream);margin-bottom:12px;transition:letter-spacing .6s var(--out-expo);}
footer:hover .foot-wordmark{letter-spacing:.04em;}
.foot-desc{color:var(--steel);font-size:13.5px;max-width:270px;}
.foot-col .label{font-family:var(--sans);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--steel);margin-bottom:16px;}
.foot-col a{display:block;font-size:14px;margin-bottom:9px;color:var(--cream);opacity:.85;transition:opacity .25s,color .25s,transform .3s;}
.foot-col a:hover{opacity:1;color:var(--brass);transform:translateX(4px);}
.foot-bottom{border-top:1px solid var(--line-darker);padding-top:24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-family:var(--sans);font-size:11.5px;color:var(--steel);}
.foot-note{font-size:11px;color:var(--steel);opacity:.8;margin-top:14px;max-width:560px;}

/* ---- reduced motion: everything instant, everything visible ---- */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001s!important;animation-iteration-count:1!important;transition-duration:.001s!important;}
  html.js [data-reveal],html.js [data-reveal-stagger]>*{opacity:1!important;transform:none!important;clip-path:none!important;}
  html.js .hero-line>span,html.js .hero-fade{transform:none!important;opacity:1!important;}
  html.js .hero-portrait{clip-path:none!important;}
  html.js .hero-portrait img,html.js .photo-frame[data-reveal] img{transform:none!important;}
  .scrub-words span{opacity:1!important;}
  .marquee-track{animation:none!important;flex-wrap:wrap;width:auto;justify-content:center;}
  .grain{display:none;}
}
