/* Shared editorial type scale. Emphasis uses color, with a consistent upright face. */
:root {
  --type-body: 1.0625rem;
  --type-heading: clamp(2.5rem, 4.5vw, 4.75rem);
  --type-subheading: clamp(1.625rem, 2.3vw, 2.125rem);
}
body { font-size:var(--type-body); line-height:1.65; }
h1,h2,h3 { font-family:var(--serif); font-weight:500; font-style:normal; }
h1 em,h2 em,h3 em,.pattern-row em { font-style:normal; font-weight:inherit; }
h2,.map-intro h2,.understand h2,.author h2,.purchase h2,.faq h2 {
  font-size:var(--type-heading);
  line-height:1.12;
  letter-spacing:-.025em;
}
.hero h1 { line-height:1.1; letter-spacing:-.025em; }
.hero-title { width:65%; }
.hero h1 .motion-word { max-width:100%; overflow-wrap:anywhere; }
.map-benefits h3,.include-row h3 {
  font-size:var(--type-subheading); line-height:1.2; letter-spacing:-.015em;
}
.pattern-row p { font-size:var(--type-subheading); line-height:1.3; font-weight:500; }
.pattern-outro { font-size:var(--type-heading); line-height:1.12; font-weight:500; }
.pattern-outro strong { font-weight:inherit; }
.hero-bottom p,.pattern-heading p,.map-intro p,.map-benefits p,
.understand-copy p,.included-top p,.include-row p,.author p,
.purchase-description p,.faq details p {
  font-family:var(--sans); font-size:var(--type-body); line-height:1.7;
}
.section-label,.little-label,.hero-meta,.scroll-link {
  font-family:var(--sans); font-size:.8125rem; line-height:1.5; letter-spacing:.09em;
}
.button,.nav-buy,.text-link,.author .text-link,.faq summary { font-size:1rem; line-height:1.4; }
.micro,.map-note,.author-photo>span { font-size:.8125rem; line-height:1.6; letter-spacing:0; }
.author-signature { font:500 1.125rem/1.5 var(--sans); letter-spacing:0; }
.author h2 { margin:24px 0; }
.author p { max-width:38ch; }
.author h2 br { display:none; }
.author h2 em::before { content:' '; }
.pattern-grid,.map-intro,.archetype-layout,.understand,.author,.purchase-bottom {
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
}
.pattern-grid>*,.map-intro>*,.archetype-layout>*,.understand>*,
.author>*,.purchase-bottom>*,.included-top>*,.include-row>* { min-width:0; }
.include-row { grid-template-columns:3rem minmax(0,1.5fr) minmax(0,1fr); }
.map-intro { align-items:start; }
.map-intro p { max-width:38ch; }
.archetype-layout { gap:8%; }
.map-benefits p { max-width:38ch; }
.orbit {
  position:relative; display:block; width:100%; max-width:520px;
  min-width:0; aspect-ratio:auto; overflow:hidden; isolation:isolate;
}
.orbit::before { content:''; display:block; padding-top:100%; }
.orbit-numbers { position:absolute; inset:0; width:100%; height:100%; }
.orbit-numbers>span {
  margin:0; width:clamp(2.5rem,4.4vw,3.75rem); height:clamp(2.5rem,4.4vw,3.75rem);
  transform:translate(-50%,-50%); font:400 clamp(1.25rem,2.1vw,1.75rem)/1 var(--sans);
  font-variant-numeric:lining-nums tabular-nums;
}
.orbit-center strong { font-size:clamp(5.5rem,10vw,8rem); line-height:1.15; letter-spacing:0; }
.orbit-center span { font-size:.75rem; letter-spacing:.1em; }
.understand-copy { padding:65px 9%; }
.author-photo>span { white-space:normal; text-align:right; }
.price { font-size:clamp(4.5rem,7vw,6rem); letter-spacing:-.04em; }
.price span { font-size:.45em; }
@media(max-width:1000px) {
  .hero h1 { font-size:6.5vw; }
  .header nav { gap:18px; }
  .nav-buy { padding:12px 16px; gap:14px; }
}
@media(max-width:700px) {
  :root { --type-body:1rem; --type-heading:clamp(2.375rem,9.6vw,3.5rem); --type-subheading:1.625rem; }
  .hero-title { width:100%; }
  .hero h1 { font-size:clamp(2rem,9.3vw,4rem); line-height:1.12; }
  .hero-title>p { font-size:.9375rem; }
  .pattern-grid,.map-intro,.archetype-layout,.purchase-bottom { grid-template-columns:minmax(0,1fr); }
  .include-row { grid-template-columns:1.75rem minmax(0,1fr); }
  .include-row p { grid-column:2; }
  .section-label,.little-label { font-size:.75rem; }
  .button,.hero .button,.button.light,.author .text-link,.faq summary { font-size:1rem; }
  .nav-buy { font-size:.875rem; padding:10px; gap:6px; }
  .header { gap:8px; }
  .brand .brand-name { font-size:24px; }
  .brand .brand-symbol { width:40px; height:40px; }
  .motion-toggle { width:30px; height:30px; }
  .understand-copy { padding:40px 6% 60px; }
  .orbit { max-width:360px; }
  .orbit-numbers>span { width:2.5rem; height:2.5rem; font-size:1.25rem; }
  .orbit-center strong { font-size:6rem; }
}
