/* ============================================================
   YH2 — Your Health, Your Hands
   Stylesheet for yh2med.com
   ============================================================
   Sections:
   1. Design tokens (CSS custom properties)
   2. Base & typography
   3. Layout primitives (.wrap, .reveal)
   4. Header & navigation
   5. Hero
   6. Pillars
   7. About
   8. Audiences
   9. Features (dark band)
   10. Product showcase
   11. Sharing & Security
   12. Team
   13. Founders' Stories
   14. Contact
   15. Newsletter
   16. Footer
   17. Animations & responsive
   ============================================================ */

:root{
  --cream:#F4F0E6;
  --paper:#FAF7EF;
  --ink:#0E1530;
  --ink-soft:#3A4258;
  --navy:#1F2D7C;
  --navy-deep:#15205A;
  --sky:#2A9DD8;
  --sky-soft:#B8DEEF;
  --steel:#6B7894;
  --accent:#E07856;
  --clay:#F0CDB8;
  --line:#D5CDB9;
  --line-cool:#C9D1DD;
  --serif:'Fraunces', 'Times New Roman', serif;
  --sans:'Manrope', -apple-system, sans-serif;
  --mono:'JetBrains Mono', monospace;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:var(--sans);
  background:var(--cream);
  color:var(--ink);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

body::before{
  content:'';
  position:fixed;inset:0;
  pointer-events:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.04 0'/></filter><rect width='200' height='200' filter='url(%23n)'/></svg>");
  z-index:1000;
  mix-blend-mode:multiply;
  opacity:.55;
}

a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}

.wrap{max-width:1280px;margin:0 auto;padding:0 32px}
@media (max-width:640px){.wrap{padding:0 20px}}





/* HEADER */
.header{
  position:sticky;top:0;z-index:50;
  background:rgba(244,240,230,1);
  border-bottom:1px solid var(--line);
}
.nav{display:flex;align-items:center;justify-content:space-between;padding:10px 10px}
.logo-img{
  height:54px;width:auto;
  mix-blend-mode:multiply;
  transition:transform .4s cubic-bezier(.2,.8,.2,1);
}
.logo:hover .logo-img{transform:rotate(-3deg) scale(1.1)}

.nav-links{display:flex;gap:36px;align-items:center;font-size:14px;font-weight:500;color:var(--ink)}
.nav-links a{position:relative;padding:4px 0;transition:color .25s}
.nav-links a::after{
  content:'';position:absolute;bottom:-2px;left:0;
  width:0;height:1px;background:var(--navy);
  transition:width .3s ease;
}
.nav-links a:hover{color:var(--navy)}
.nav-links a:hover::after{width:100%}

.nav-cta{display:flex;gap:10px;align-items:center}
.btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 20px;font-size:14px;font-weight:500;
  border-radius:999px;
  transition:all .3s cubic-bezier(.2,.8,.2,1);
  border:1px solid transparent;
}
.btn-primary{background:var(--navy);color:var(--cream)}
.btn-primary:hover{background:var(--navy-deep);transform:translateY(-1px);box-shadow:0 6px 18px -8px var(--navy)}
.btn-ghost{border-color:var(--ink);color:var(--ink)}
.btn-ghost:hover{background:var(--ink);color:var(--cream);transform:translateY(-1px); box-shadow:0 6px 18px -8px var(--ink)}
.btn-arrow{transition:transform .3s}
.btn:hover .btn-arrow{transform:translateX(3px)}

.nav-toggle, .side-menu, .close-bnt{display:none}
@media (max-width:880px){
  .logo-img{height:54px}
  .nav-links{display:none}
  .nav-cta .btn{padding: 8px 15px; font-size:14px}
  .nav-toggle{display:flex; flex-direction:column; gap:5px; padding:10px; transition: transform .3s}
  .nav-toggle span{width:20px;height:1.5px;background:var(--ink)}
  .nav-toggle:hover{transform:scale(1.2)}
  .side-menu {
    position: fixed;
    top: 0;
    right: 0;
    width: 100%;
    height: 100vh;
    background:rgba(244,240,230,.98);
    transform: translateX(100%);
    transition: transform 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .side-menu:target {transform: translateX(0)}
  .close-btn {position:absolute; top:10px; right:20px; color:var(--ink-soft); 
    font-size:40px; transition: transform .3s}
  .close-btn:hover{transform:scale(1.2)}
  .side-menu ul {list-style: none; padding: 0; margin: 0; text-align: center}
  .side-menu ul li{padding: 5px 0; transition: transform .3s}
  .side-menu ul li:hover{transform:scale(1.1)}
  .side-menu ul li a {color: var(--navy); font-size: 22px; font-family: var(--serif)}
}





/* HERO */
.hero{padding:80px 0 70px;position:relative;overflow:hidden}
.hero-circle{
  position:absolute;top:-80px;right:-180px;
  width:680px;height:680px;z-index:-1;
  pointer-events:none;opacity:.55;
}
@media (max-width:880px){
  .hero-circle{width:480px;height:480px;top:auto;bottom:-120px;right:-200px;opacity:.35}
}

.hero-grid{display:grid;grid-template-columns:1fr 380px;gap:60px;align-items:end}
@media (max-width:980px){.hero-grid{grid-template-columns:1fr;gap:40px}}

.hero-tag{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--mono);font-size:11px;
  letter-spacing:.18em;text-transform:uppercase;
  color:var(--navy);margin-bottom:32px;
}
.hero-tag-line{width:32px;height:1px;background:var(--navy)}

.hero-title{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(56px, 9vw, 144px);
  line-height:.92;letter-spacing:-0.035em;
  color:var(--ink);
  font-variation-settings:"opsz" 144, "SOFT" 30;
}
.hero-title em{
  font-style:italic;font-weight:300;
  color:var(--navy);
  font-variation-settings:"opsz" 144, "SOFT" 80;
  display:block;padding-left:.15em;position:relative;
}
.hero-pulse{
  display:inline-block;
  width:120px;height:24px;
  margin-left:14px;vertical-align:middle;
  color:var(--sky);
}

.hero-sub{margin-top:36px;max-width:520px;font-size:18px;line-height:1.55;color:var(--ink-soft)}
.hero-actions{margin-top:36px;display:flex;gap:14px;flex-wrap:wrap}

.hero-side{display:flex;flex-direction:column;gap:24px;padding-bottom:8px}
.hero-meta{
  font-family:var(--mono);font-size:11px;
  letter-spacing:.15em;text-transform:uppercase;
  color:var(--steel);
  display:flex;align-items:center;gap:10px;
}
.hero-meta::before{content:'';width:24px;height:1px;background:var(--steel)}

.hero-quote{
  font-family:var(--serif);font-style:italic;
  font-size:21px;line-height:1.4;color:var(--ink);
  font-variation-settings:"opsz" 36, "SOFT" 100;
  border-left:2px solid var(--accent);
  padding-left:20px;
}
.hero-quote-attr{
  margin-top:14px;font-family:var(--sans);font-style:normal;
  font-size:12px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--steel);
}





/* PILLARS */
.pillars{
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:50px 0;margin-top:50px;position:relative;
}
.pillars-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
@media (max-width:880px){.pillars-grid{grid-template-columns:repeat(2,1fr);gap:32px 24px}}
@media (max-width:480px){.pillars-grid{grid-template-columns:1fr}}

.pillar{position:relative;padding:0 28px}
.pillar:not(:last-child){border-right:1px solid var(--line)}
@media (max-width:880px){.pillar{border-right:none !important;padding:0 16px}}

.pillar-num{font-family:var(--mono);font-size:11px;letter-spacing:.15em;color:var(--accent);margin-bottom:14px}
.pillar-icon{width:38px;height:38px;margin-bottom:18px;color:var(--navy)}
.pillar h3{
  font-family:var(--serif);font-weight:500;
  font-size:24px;letter-spacing:-0.02em;
  margin-bottom:8px;color:var(--ink);
  font-variation-settings:"opsz" 36, "SOFT" 50;
}
.pillar p{font-size:14px;line-height:1.55;color:var(--ink-soft)}





/* ABOUT */
.about{padding:140px 0 100px}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}
@media (max-width:880px){.about-grid{grid-template-columns:1fr;gap:40px}}

.section-label{
  font-family:var(--mono);font-size:11px;
  letter-spacing:.18em;text-transform:uppercase;
  color:var(--accent);
  display:flex;align-items:center;gap:10px;
  margin-bottom:24px;
}
.section-label::before{content:'';width:24px;height:1px;background:var(--accent)}

.about-title{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(40px, 5vw, 72px);
  line-height:1;letter-spacing:-0.03em;color:var(--ink);
  font-variation-settings:"opsz" 144, "SOFT" 30;
}
.about-title em{font-style:italic;color:var(--navy);font-variation-settings:"opsz" 144, "SOFT" 80}

.about-body{font-size:17px;line-height:1.7;color:var(--ink-soft)}
.about-body p:not(:last-child){margin-bottom:18px}
.about-dropcap::first-letter{
  font-family:var(--serif);font-size:64px;font-weight:400;
  line-height:.85;float:left;padding:6px 12px 0 0;
  color:var(--navy);
  font-variation-settings:"opsz" 144, "SOFT" 50;
}





/* AUDIENCES */
.audiences{padding:80px 0 120px}
.audiences-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:60px;flex-wrap:wrap;gap:24px}
.audiences-head h2{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(36px, 4.5vw, 56px);
  line-height:1.05;letter-spacing:-0.025em;
  max-width:680px;
  font-variation-settings:"opsz" 96, "SOFT" 40;
}
.audiences-head h2 em{font-style:italic;color:var(--navy);font-variation-settings:"opsz" 96, "SOFT" 80}

.audiences-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
  background:var(--line);border:1px solid var(--line);
  border-radius:4px;overflow:hidden;
}
@media (max-width:980px){.audiences-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.audiences-grid{grid-template-columns:1fr}}

.audience{
  background:var(--paper);padding:36px 28px;
  position:relative;transition:background .3s;
  display:flex;flex-direction:column;gap:18px;min-height:300px;
}
.audience:hover{background:var(--cream)}

.audience-icon{
  width:54px;height:54px;
  display:flex;align-items:center;justify-content:center;
  border:1px solid var(--navy);border-radius:50%;
  color:var(--navy);margin-bottom:6px;position:relative;
}
.audience-icon::before{
  content:'';position:absolute;inset:-3px;border-radius:50%;
  border:1px solid var(--sky);opacity:.4;transform:rotate(-8deg);
}

.audience h3{
  font-family:var(--serif);font-weight:500;
  font-size:22px;letter-spacing:-0.015em;color:var(--ink);
  font-variation-settings:"opsz" 36, "SOFT" 50;
}
.audience p{font-size:14px;line-height:1.6;color:var(--ink-soft);flex:1}
.audience-tag{
  font-family:var(--mono);font-size:10px;
  letter-spacing:.15em;text-transform:uppercase;
  color:var(--accent);margin-top:auto;
}





/* FEATURES (manifesto on dark navy) */
.features{
  background:var(--navy-deep);color:var(--cream);
  padding:120px 0;position:relative;overflow:hidden;
}
.features::before{
  content:'';position:absolute;top:-200px;left:-200px;
  width:600px;height:600px;border-radius:50%;
  background:radial-gradient(circle, var(--navy) 0%, transparent 70%);
  opacity:.6;
}
.features-circle{
  position:absolute;bottom:-200px;right:-100px;
  width:700px;height:700px;opacity:.35;
  pointer-events:none;color:var(--sky);
}

.features-head{
  display:grid;grid-template-columns:1fr 1.2fr;gap:60px;align-items:end;
  margin-bottom:80px;position:relative;
}
@media (max-width:880px){.features-head{grid-template-columns:1fr;gap:24px}}

.features-head .section-label{color:var(--sky-soft)}
.features-head .section-label::before{background:var(--sky-soft)}

.features-head h2{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(40px, 5vw, 64px);
  line-height:1.02;letter-spacing:-0.025em;
  font-variation-settings:"opsz" 144, "SOFT" 50;
}
.features-head h2 em{font-style:italic;color:var(--sky-soft);font-variation-settings:"opsz" 144, "SOFT" 100}
.features-head p{font-size:16px;line-height:1.65;color:rgba(244,240,230,.75);max-width:480px}

.feature-list{position:relative;display:flex;flex-direction:column}
.feature-row{
  display:grid;grid-template-columns:90px 1fr 1.5fr;gap:32px;
  padding:36px 0;
  border-top:1px solid rgba(244,240,230,.15);
  align-items:start; transition:background .3s;
}
.feature-row:last-child{border-bottom:1px solid rgba(244,240,230,.15)}
.feature-row:hover{background:rgba(244,240,230,.03)}

@media (max-width:780px){
  .feature-row{grid-template-columns:60px 1fr;gap:16px}
  .feature-row p{grid-column:1 / -1;margin-top:8px}
}

.feature-num{
  font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:48px;color:var(--sky);line-height:.9;
  font-variation-settings:"opsz" 96, "SOFT" 100;
}
.feature-row h3{
  font-family:var(--serif);font-weight:500;
  font-size:26px;line-height:1.15;letter-spacing:-0.015em;
  font-variation-settings:"opsz" 36, "SOFT" 50;
}
.feature-row p{font-size:15px;line-height:1.65;color:rgba(244,240,230,.75);padding-top:6px}
.feature-coming{
  display:inline-block;margin-top:8px;
  font-family:var(--mono);font-size:10px;
  letter-spacing:.15em;text-transform:uppercase;
  color:var(--sky-soft);border:1px solid var(--sky-soft);
  padding:3px 9px;border-radius:999px;
}





/* PRODUCT SHOWCASE */
.showcase{
  padding:140px 0 120px;
  position:relative;overflow:hidden;
}

.showcase-head{
  max-width:760px;margin:0 auto 90px;text-align:center;position:relative;
}
.showcase-head .section-label{justify-content:center}
.showcase-head h2{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(40px, 5vw, 64px);
  line-height:1.05;letter-spacing:-0.025em;
  margin-bottom:24px;
  font-variation-settings:"opsz" 144, "SOFT" 30;
}
.showcase-head h2 em{font-style:italic;color:var(--navy);font-variation-settings:"opsz" 144, "SOFT" 80}
.showcase-head p{font-size:17px;line-height:1.7;color:var(--ink-soft)}

.showcase-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:48px;align-items:start;position:relative;
}
@media (max-width:900px){.showcase-grid{grid-template-columns:1fr;gap:80px;max-width:380px;margin:0 auto}}

.shot{display:flex;flex-direction:column;align-items:center;text-align:center}
/* stagger the middle phone downward on desktop for rhythm */
@media (min-width:901px){
  .shot:nth-child(2){margin-top:56px}
}

.phone{
  position:relative;
  width:100%;max-width:300px;
  background:#0E1530;
  border-radius:42px;
  padding:11px;
  box-shadow:
    0 2px 4px rgba(14,21,48,.12),
    0 24px 48px -16px rgba(14,21,48,.32),
    inset 0 0 0 2px rgba(255,255,255,.06);
  transition:transform .5s cubic-bezier(.2,.8,.2,1), box-shadow .5s;
}
.shot:hover .phone{
  transform:translateY(-8px);
  box-shadow:
    0 4px 8px rgba(14,21,48,.14),
    0 36px 64px -18px rgba(31,45,124,.4),
    inset 0 0 0 2px rgba(255,255,255,.06);
}
.phone::before{
  /* speaker/notch pill */
  content:'';position:absolute;top:22px;left:50%;
  transform:translateX(-50%);
  width:88px;height:7px;border-radius:99px;
  background:rgba(255,255,255,.18);
  z-index:3;
}
.phone img{
  width:100%;height:auto;
  border-radius:32px;display:block;
}

.shot-num{
  font-family:var(--mono);font-size:10px;
  letter-spacing:.18em;color:var(--accent);
  margin:32px 0 10px;
}
.shot h3{
  font-family:var(--serif);font-weight:500;
  font-size:23px;letter-spacing:-0.015em;color:var(--ink);
  margin-bottom:10px;
  font-variation-settings:"opsz" 36, "SOFT" 50;
}
.shot h3 em{font-style:italic;color:var(--navy);font-variation-settings:"opsz" 36, "SOFT" 100}
.shot p{font-size:14px;line-height:1.6;color:var(--ink-soft);max-width:300px}





/* SHARE & SECURITY */
.share{padding:40px 0 120px;position:relative}
.share-panel{
  position:relative;
  border-radius:28px;
  overflow:hidden;
  background:linear-gradient(155deg, var(--paper) 0%, #E7F2FA 100%);
  border:1px solid var(--line-cool);
  display:grid;grid-template-columns:1.05fr .95fr;
  align-items:center;
  min-height:520px;
}
@media (max-width:900px){
  .share-panel{grid-template-columns:1fr;min-height:0}
}
.share-panel-circle{
  position:absolute;top:-160px;left:-140px;
  width:420px;height:420px;opacity:.18;pointer-events:none;
}
.share-text{padding:72px 64px}
@media (max-width:900px){.share-text{padding:56px 32px 8px}}
@media (max-width:560px){.share-text{padding:44px 24px 8px}}

.share-text .section-label{color:var(--accent)}
.share-text .section-label::before{background:var(--accent)}
.share-text h2{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(34px, 4vw, 54px);
  line-height:1.04;letter-spacing:-0.025em;
  margin-bottom:22px;color:var(--ink);
  font-variation-settings:"opsz" 144, "SOFT" 30;
}
.share-text h2 em{font-style:italic;color:var(--navy);font-variation-settings:"opsz" 144, "SOFT" 80}
.share-text p{font-size:16px;line-height:1.7;color:var(--ink-soft);max-width:440px;margin-bottom:32px}

.share-options{display:flex;flex-direction:column;gap:18px;max-width:460px}
.share-option{display:flex;gap:16px;align-items:flex-start}
.share-option-icon{
  flex-shrink:0;width:40px;height:40px;border-radius:50%;
  background:var(--navy);color:var(--cream);
  display:flex;align-items:center;justify-content:center;
}
.share-option-icon svg{width:18px;height:18px}
.share-option h4{
  font-family:var(--sans);font-weight:600;font-size:15px;
  color:var(--ink);margin-bottom:3px;
}
.share-option p{font-size:13.5px;line-height:1.55;color:var(--ink-soft);margin:0;max-width:none}

/* phone bleeding up from bottom of the panel */
.share-visual{
  position:relative;
  align-self:stretch;
  overflow:hidden;
  min-height:520px;
}
@media (max-width:900px){.share-visual{min-height:430px}}
.share-visual .phone{
  position:absolute;
  top:64px;left:50%;
  transform:translateX(-50%);
  width:282px;
  margin:0;
}
@media (max-width:900px){
  .share-visual .phone{width:258px;top:24px}
}





/* TEAM */
.team{padding:140px 0 100px}
.team-head{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:end;margin-bottom:80px}
@media (max-width:880px){.team-head{grid-template-columns:1fr;gap:24px}}

.team-head h2{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(40px, 5vw, 72px);
  line-height:1;letter-spacing:-0.03em;
  font-variation-settings:"opsz" 144, "SOFT" 30;
}
.team-head h2 em{font-style:italic;color:var(--navy);font-variation-settings:"opsz" 144, "SOFT" 80}
.team-head p{font-size:16px;line-height:1.7;color:var(--ink-soft);max-width:440px}

.team-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:20px}
@media (max-width:1200px){.team-grid{grid-template-columns:repeat(4,1fr);gap:48px 24px}}
@media (max-width:980px){.team-grid{grid-template-columns:repeat(3,1fr);gap:48px 24px}}
@media (max-width:740px){.team-grid{grid-template-columns:repeat(2,1fr);gap:48px 24px}}
@media (max-width:520px){.team-grid{grid-template-columns:1fr;gap:48px}}

.member{display:flex;flex-direction:column}
.member-portrait{
  position:relative;aspect-ratio:4 / 5;
  background:var(--paper);margin-bottom:18px;
  overflow:hidden;border-radius:2px;
}
.member-portrait img{
  width:100%;height:100%;object-fit:cover;
  filter:grayscale(.15) contrast(1.02);
  transition:filter .5s, transform .8s ease;
  position:relative;z-index:1;
}
.member:hover .member-portrait img{
  filter:grayscale(0) contrast(1.05);
  transform:scale(1.03);
}
.member-portrait::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg, transparent 60%, rgba(14,21,48,.18));
  z-index:2;
}
.member-monogram{
  position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--serif);font-size:80px;font-style:italic;
  color:var(--navy);
  background:linear-gradient(135deg, var(--sky-soft), var(--paper));
  font-variation-settings:"opsz" 144, "SOFT" 100;
  z-index:0;
}

.member-num{font-family:var(--mono);font-size:10px;letter-spacing:.18em;color:var(--accent);margin-bottom:6px}
.member h3{
  font-family:var(--serif);font-weight:500;
  font-size:20px;letter-spacing:-0.015em;color:var(--ink);
  font-variation-settings:"opsz" 36, "SOFT" 50;
}
.member-creds{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--steel);margin-top:4px}
.member-bio{font-size:13px;line-height:1.6;color:var(--ink-soft);margin-top:14px}
.member-link{
  margin-top:14px;
  font-family:var(--mono);font-size:11px;
  letter-spacing:.1em;text-transform:uppercase;
  color:var(--navy);
  display:inline-flex;align-items:center;gap:6px;
}
.member-link:hover{color:var(--accent)}





/* STORIES */
.stories{
  padding:120px 0;background:var(--paper);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  position:relative;overflow:hidden;
}
.stories-circle{
  position:absolute;top:50%;left:50%;
  transform:translate(-50%,-50%);
  width:900px;height:900px;
  opacity:.06;pointer-events:none;color:var(--navy);
}
.stories-intro{
  text-align:center;max-width:720px;
  margin:0 auto 100px;position:relative;
}
.stories-intro .section-label{justify-content:center}
.stories-intro h2{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(40px, 5vw, 64px);
  line-height:1.05;letter-spacing:-0.025em;
  margin-bottom:24px;
  font-variation-settings:"opsz" 144, "SOFT" 30;
}
.stories-intro h2 em{font-style:italic;color:var(--navy);font-variation-settings:"opsz" 144, "SOFT" 80}
.stories-intro p{font-size:17px;line-height:1.7;color:var(--ink-soft)}

.story{
  display:grid;grid-template-columns:180px 1fr;gap:64px;
  max-width:980px;margin:0 auto 100px;
  align-items:start;position:relative;
}
.story:last-of-type{margin-bottom:0}
/* delicate divider between stories */
.story + .story::before{
  content:'';position:absolute;top:-50px;left:50%;
  width:60px;height:1px;background:var(--line);
  transform:translateX(-50%);
}

@media (max-width:880px){
  .story{grid-template-columns:1fr;gap:24px;margin-bottom:72px}
  .story + .story::before{top:-36px}
}

.story-aside{display:flex;flex-direction:column;gap:14px}
.story-body{max-width:640px}
.story-num{
  font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:80px;line-height:.85;color:var(--accent);
  font-variation-settings:"opsz" 144, "SOFT" 100;
}
.story-aside-meta{
  font-family:var(--mono);font-size:11px;
  letter-spacing:.15em;text-transform:uppercase;
  color:var(--steel);line-height:1.6;
}
.story-aside-meta strong{color:var(--ink);font-weight:500;display:block;margin-bottom:2px}

.story-body p{
  font-family:var(--serif);font-weight:300;
  font-size:21px;line-height:1.55;color:var(--ink);
  font-variation-settings:"opsz" 36, "SOFT" 30;
  margin-bottom:18px;
}
.story-body p:first-of-type::first-letter{
  font-size:72px;font-weight:400;float:left;line-height:.85;
  padding:8px 12px 0 0;color:var(--navy);
}
.story-body strong{font-weight:500;color:var(--navy);font-style:normal}
.story-pull{
  font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:32px !important;line-height:1.25 !important;
  color:var(--navy-deep) !important;
  border-left:2px solid var(--accent);
  padding-left:24px;margin:32px 0 !important;
  font-variation-settings:"opsz" 96, "SOFT" 100 !important;
}





/* CONTACT */
.contact{padding:140px 0 100px}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}
@media (max-width:880px){.contact-grid{grid-template-columns:1fr;gap:48px}}

.contact-title{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(40px, 5vw, 72px);
  line-height:1;letter-spacing:-0.03em;
  margin-bottom:24px;
  font-variation-settings:"opsz" 144, "SOFT" 30;
}
.contact-title em{font-style:italic;color:var(--navy);font-variation-settings:"opsz" 144, "SOFT" 80}
.contact-text{font-size:17px;line-height:1.7;color:var(--ink-soft);max-width:440px;margin-bottom:40px}

.contact-detail{
  display:flex;align-items:center;gap:16px;
  padding:20px 0;border-top:1px solid var(--line);
  font-size:15px;
}
.contact-detail:last-child{border-bottom:1px solid var(--line)}
.contact-detail svg{width:20px;height:20px;color:var(--navy);flex-shrink:0}
.contact-detail strong{
  font-family:var(--mono);font-size:10px;
  letter-spacing:.15em;text-transform:uppercase;
  color:var(--steel);
  display:block;font-weight:500;margin-bottom:2px;
}

.form{display:flex;flex-direction:column;gap:24px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:520px){.form-row{grid-template-columns:1fr}}

.field{position:relative;display:flex;flex-direction:column}
.field label{
  font-family:var(--mono);font-size:10px;
  letter-spacing:.15em;text-transform:uppercase;
  color:var(--steel);margin-bottom:8px;
}
.field input,
.field textarea{
  font:inherit;background:transparent;border:none;
  border-bottom:1px solid var(--line);
  padding:10px 0 12px;color:var(--ink);font-size:16px;
  font-family:var(--serif);
  font-variation-settings:"opsz" 36, "SOFT" 30;
  transition:border-color .3s;resize:vertical;
}
.field textarea{min-height:100px}
.field input:focus,
.field textarea:focus{outline:none;border-bottom-color:var(--navy)}





/* NEWSLETTER */
.newsletter{
  background:var(--accent);color:var(--cream);
  padding:80px 0;position:relative;overflow:hidden;
}
.newsletter::before{
  content:'';position:absolute;top:50%;right:-150px;
  transform:translateY(-50%);width:400px;height:400px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(244,240,230,.18) 0%, transparent 70%);
}
.newsletter-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;position:relative}
@media (max-width:780px){.newsletter-grid{grid-template-columns:1fr;gap:24px}}

.newsletter h2{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(32px, 4vw, 48px);
  line-height:1.05;letter-spacing:-0.025em;
  font-variation-settings:"opsz" 96, "SOFT" 30;
}
.newsletter h2 em{font-style:italic;font-variation-settings:"opsz" 96, "SOFT" 100}

.newsletter-form{
  display:flex;background:rgba(244,240,230,.12);
  border:1px solid rgba(244,240,230,.3);
  border-radius:999px;padding:6px;gap:6px;
}
.newsletter-form input{
  flex:1;background:transparent;border:none;
  padding:14px 22px;color:var(--cream);
  font:inherit;font-size:15px;
}
.newsletter-form input::placeholder{color:rgba(244,240,230,.6)}
.newsletter-form input:focus{outline:none}
.newsletter-form button{
  background:var(--cream);color:var(--accent);
  padding:12px 24px;border-radius:999px;
  font-weight:600;font-size:14px;
  transition:transform .3s;
}
.newsletter-form button:hover{transform:translateX(2px)}





/* FOOTER */
.footer{
  background:var(--ink);color:var(--cream);
  padding:80px 0 32px;position:relative;overflow:hidden;
}
.footer::before{
  content:'';position:absolute;top:-100px;right:-150px;
  width:400px;height:400px;border-radius:50%;
  background:radial-gradient(circle, var(--navy) 0%, transparent 70%);
  opacity:.4;
}
.footer-grid{
  display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:48px;
  margin-bottom:60px;position:relative;
}
@media (max-width:880px){.footer-grid{grid-template-columns:1fr 1fr;gap:40px 24px}}
@media (max-width:520px){.footer-grid{grid-template-columns:1fr}}

.footer-logo{
  height:80px;width:auto;
  /* mix-blend-mode:screen; */
  mix-blend-mode: multiply;
  margin-bottom:20px;margin-left:-12px;
}
.footer-brand p{font-size:14px;line-height:1.65;color:rgba(244,240,230,.65);max-width:340px}

.footer-col h4{
  font-family:var(--mono);font-size:10px;
  letter-spacing:.18em;text-transform:uppercase;
  color:var(--sky-soft);margin-bottom:18px;font-weight:500;
}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:10px}
.footer-col a{font-size:14px;color:rgba(244,240,230,.75);transition:color .3s}
.footer-col a:hover{color:var(--sky)}

.footer-bottom{
  border-top:1px solid rgba(244,240,230,.12);padding-top:24px;
  display:flex;justify-content:space-between;align-items:center;
  font-family:var(--mono);font-size:11px;
  letter-spacing:.12em;text-transform:uppercase;
  color:rgba(244,240,230,.5);
  flex-wrap:wrap;gap:16px;position:relative;
}





/* ANIMATIONS */
.reveal{
  opacity:0;transform:translateY(30px);
  transition:opacity .9s ease, transform .9s cubic-bezier(.2,.8,.2,1);
}
.reveal.in{opacity:1;transform:translateY(0)}

.hero-title-line{display:block;overflow:hidden}
.hero-title-line span{
  display:inline-block;transform:translateY(110%);
  animation:rise 1.1s cubic-bezier(.2,.8,.2,1) forwards;
}
.hero-title-line:nth-child(2) span{animation-delay:.15s}
@keyframes rise{to{transform:translateY(0)}}

@keyframes drawPulse{
  from{stroke-dashoffset:1000}
  to{stroke-dashoffset:0}
}
.pulse-draw path{
  stroke-dasharray:1000;
  stroke-dashoffset:1000;
  animation:drawPulse 2.2s ease-out .5s forwards;
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:0s !important;transition:none !important}
}
