/* Editorial finish: clear actions, comfortable reading, and a complete close. */
.nav-links a,.button,.menu-button{font-family:var(--sans);font-size:14px;text-transform:none;letter-spacing:0}
.nav-links{gap:clamp(18px,2vw,30px)}
.nav-links a{min-height:44px;display:inline-flex;align-items:center}
.button{min-height:48px;border-radius:4px;padding:14px 20px;gap:22px}
.nav-book,.hero-primary,.final-book{background:var(--navy);color:var(--paper);border-color:var(--navy)}
.nav-book:hover,.hero-primary:hover,.final-book:hover{background:var(--leaf);color:var(--paper);border-color:var(--leaf)}
.menu-button{min-width:52px;min-height:44px}
.mobile-nav{padding:18px 6vw 26px;box-shadow:0 16px 24px #0f253810}
.mobile-nav:not([hidden]){gap:0}
.mobile-nav a{padding:13px 0;border-bottom:1px solid #0f253814;font:400 25px/1.2 var(--serif);min-height:52px}
.mobile-nav a:last-child{font:500 14px/1.5 var(--sans);color:var(--leaf);border:0;margin-top:8px}
.body-copy{font-size:17px;line-height:1.8;opacity:1;color:var(--muted)}
.first .eyebrow{color:var(--leaf);font-weight:500}
.first .body-copy{max-width:410px}
.hero-actions{display:flex;align-items:flex-start;flex-direction:column;gap:13px;margin-top:28px}
.hero-secondary{display:inline-flex;align-items:center;gap:12px;min-height:44px;font:14px/1.5 var(--sans);text-underline-offset:5px}
.hero-secondary:hover{text-decoration:underline}
.story-note{font:12px/1.7 var(--sans);margin-top:17px;max-width:360px}
.product .body-copy{font-size:17px;line-height:1.8}
.product h2{max-width:650px}
.product .product-wrap{width:100%;margin-left:0;margin-right:0}
.panel-head{font:13px/1.5 var(--sans);padding:17px 20px}
.panel-head>span:first-child{font-weight:500}.panel-head>span:last-child{opacity:1;color:var(--muted);font-size:12px}
.wb th,.wb td{font-size:13px;line-height:1.6;padding:13px 18px}
.wb thead th{font-size:14px;font-weight:500}.wb .rowlabel{font-size:12px}
.step .what{font-size:15px}.step .who{font-size:13px;opacity:1;color:var(--muted)}
.step .state{font:13px/1.6 var(--sans)}
.final-book{font-size:14px;margin-top:28px}
.review-note{font-size:13px;line-height:1.7;max-width:350px}
.text-link{font-size:14px;min-height:44px;display:inline-flex;align-items:center;gap:8px}
.reading-bar{height:48px;font:11px/1.5 var(--sans);letter-spacing:0}
.chapter-links a{width:30px;min-height:44px;padding:12px 4px}
.chapter-links a:before{width:14px}.chapter-links a[aria-current="step"]:before{width:24px}
.skip-story{font:12px/1.5 var(--sans);text-transform:none;letter-spacing:0;min-height:44px;align-items:center}
.site-footer{display:grid;grid-template-columns:minmax(220px,1.5fr) 1fr 1fr;gap:36px 64px;padding:64px 5.4vw 88px}
.site-footer .footer-intro{display:block;margin:0;grid-column:auto}
.site-footer .footer-brand{display:inline-flex;align-items:center;gap:10px;min-height:44px}
.site-footer .footer-brand img:first-child{width:29px;height:30px;object-fit:contain}
.site-footer .footer-brand .wordmark{width:96px;height:auto}
.site-footer p{font:15px/1.8 var(--sans);max-width:280px;margin:17px 0 0;color:#526370}
.footer-group{display:flex;flex-direction:column;align-items:flex-start;gap:0}
.footer-group h3{font:500 13px/1.5 var(--sans);margin:4px 0 14px;color:#526370}
.footer-group a{display:inline-flex;align-items:center;min-height:44px;font:14px/1.5 var(--sans);text-underline-offset:5px}
.footer-group a:hover,.footer-bottom a:hover{text-decoration:underline}
.site-footer .footer-bottom{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 24px;grid-column:1/-1;border-top:1px solid #0f25381a;margin:0;padding-top:24px}
.footer-bottom small{font:12px/1.6 var(--sans);grid-column:auto}
.footer-bottom nav{display:flex;flex-wrap:wrap;gap:24px}
.footer-bottom a{display:inline-flex;align-items:center;min-height:44px;font:13px/1.5 var(--sans)}
@media(min-width:1700px){.site-footer{padding-left:8vw;padding-right:8vw}}
@media(max-width:1199px){.nav-links{display:none}.nav-book{font-size:13px}.product .body-copy{font-size:16px}.site-footer{gap:32px}}
@media(max-width:767px){
  .nav{padding:0 20px;gap:10px}.nav-book{font-size:11px;padding:10px 11px;min-height:42px}.menu-button{font-size:12px;min-width:48px}
  .stage,.has-scroll .stage{padding-left:24px;padding-right:24px}
  .first .stage{padding-top:92px;gap:20px}
  .first .eyebrow{font-size:12px;margin-bottom:18px}
  .first h1{font-size:clamp(40px,10.8vw,60px);line-height:1.02;margin-bottom:21px}
  .body-copy,.product .body-copy{font-size:15px;line-height:1.75;max-width:100%}
  .hero-actions{margin-top:22px;gap:8px}.hero-primary{font-size:13px;min-height:46px;padding:12px 17px}.hero-secondary{font-size:13px}
  .story-note{display:none}.first .art-wrap{height:clamp(180px,25svh,240px)}
  .scene-foot{left:24px;right:24px}.scroll-invitation{left:24px}
  .product .chapter-copy{display:block}.product .body-copy{margin-top:18px}
  .product .panel-head{padding:14px 16px}.panel-head>span:last-child{font-size:11px}
  .reading-bar{padding:0 16px;gap:8px}.chapter-links{gap:0}.chapter-links a{width:24px;padding:12px 4px}.chapter-links a:before{width:10px}.chapter-links a[aria-current="step"]:before{width:16px}
  .skip-story{font-size:11px;max-width:86px;gap:8px}.reading-bar #story-clock{font-size:10px;white-space:nowrap}
  .review-note{font-size:13px}.final-book{font-size:13px;padding:14px 18px}.text-link{font-size:13px}
  .site-footer{grid-template-columns:1fr 1fr;padding:44px 24px 80px;gap:28px 24px}
  .site-footer .footer-intro{grid-column:1/-1}.site-footer p{font-size:14px;margin-top:10px;max-width:300px}
  .footer-group h3{margin-bottom:8px}.footer-group a{font-size:14px}
  .site-footer .footer-bottom{display:block;padding-top:20px}.footer-bottom nav{margin-top:8px}
}
@media(max-width:399px){.nav{padding-left:16px;padding-right:16px;gap:8px}.wordmark{width:70px}.reading-bar #story-clock{display:none}.reading-bar{justify-content:space-between}.first .eyebrow{font-size:11px}}
@media(max-width:767px) and (max-height:740px){.first .stage{height:auto;min-height:740px;padding-top:88px;padding-bottom:108px}.first .art-wrap{height:170px}.first h1{font-size:40px}}
@media(prefers-reduced-motion:reduce){.button{transition:none}}

/* Keep every navigation link reachable on short screens and at larger zoom. */
.mobile-nav {
  max-height: calc(100vh - var(--nav-h));
  max-height: calc(100dvh - var(--nav-h));
  overflow-y: auto;
  overscroll-behavior: contain;
}
@media (min-width: 1200px) {
  .mobile-nav:not([hidden]) { display: none; }
}
