:root {
  --pearl: #f8f6f1;
  --paper: #fffefb;
  --ink: #252e30;
  --quiet: #515c5e;
  --line: #d0d5cf;
  --lilac: #e6def2;
  --mint: #dcece3;
  --teal: #24574f;
  --violet: #55446f;
  --body: "DM Sans", Arial, sans-serif;
  --display: "Bodoni Moda", Georgia, serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 2rem; }
body { margin: 0; color: var(--ink); background: var(--pearl); font-family: var(--body); font-size: 18px; line-height: 1.65; -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .24em; }
a, button, summary { display: inline-flex; align-items: center; min-width: 40px; min-height: 40px; max-width: 100%; padding: 8px 4px; overflow-wrap: anywhere; }
a:hover { color: var(--teal); }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 3px solid var(--violet); outline-offset: 6px; border-radius: 2px; }
button, summary { font: inherit; }
h1, h2, h3, p, figure, ul, ol, dl { margin: 0; }
h1, h2, h3 { line-height: 1.1; font-weight: 400; text-wrap: balance; }
p { text-wrap: pretty; }
p + p { margin-top: 1.1em; }
::selection { background: var(--lilac); color: var(--ink); }
.jump-to-copy { position: absolute; z-index: 30; top: -120px; left: 20px; padding: 12px 20px; background: var(--ink); color: var(--paper); }
.jump-to-copy:focus { top: 12px; }
.folio-head { position: relative; z-index: 5; display: flex; align-items: center; justify-content: space-between; gap: 28px; max-width: 1320px; min-height: 104px; padding: 18px 48px; margin: 0 auto; border-bottom: 1px solid var(--line); }
.signature { display: flex; align-items: center; gap: 17px; padding: 0; text-decoration: none; }
.signature-symbol { width: 35px; height: 40px; }
.signature-word { font-family: var(--display); font-size: 39px; line-height: 1; letter-spacing: -.05em; }
.signature-caption { border-left: 1px solid var(--line); padding-left: 18px; font-size: 12px; line-height: 1.5; letter-spacing: .13em; text-transform: uppercase; max-width: 145px; }
.folio-links { display: flex; align-items: center; gap: 26px; font-size: 15px; line-height: 1.4; }
.folio-links a { padding: 8px 0; text-decoration: none; }
.folio-links a:hover, .folio-links a[aria-current] { text-decoration: underline; }
.folio-menu { display: none; }
.opening-sheet { position: relative; display: grid; grid-template-columns: 1.12fr 1fr; column-gap: 42px; max-width: 1320px; margin: 0 auto; padding: 55px 48px 46px; }
.opening-copy { z-index: 1; align-self: center; }
.index-label { display: block; color: var(--quiet); font-size: 12px; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; line-height: 1.6; }
.opening-sheet h1 { margin: 21px 0 21px; font-family: var(--display); font-size: clamp(48px, 4.6vw, 70px); line-height: 1.07; letter-spacing: -.035em; }
.opening-sheet h1 span { display: block; }
.opening-sheet h1 em { font-weight: 400; color: var(--teal); }
.opening-intro { max-width: 510px; font-size: 18px; line-height: 1.6; }
.prism-plate { position: relative; align-self: stretch; min-height: 500px; overflow: hidden; border-radius: 180px 180px 3px 3px; background: #edf0e9; }
.prism-plate img { width: 100%; height: 100%; object-fit: cover; }
.plate-note { position: absolute; bottom: 24px; left: 30px; right: 30px; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--quiet); background: var(--paper); border-top: 1px solid #bbc7c0; padding: 10px 12px; }
.promise-feature { position: relative; margin-top: 20px; padding-top: 16px; max-width: 530px; }
.promise-feature::before, .quiet-spread::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: linear-gradient(90deg, #91b9af, #c3b7d9 34%, #e8c9b1 66%, #a5c8c1); }
.feature-context { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--quiet); }
.promise-feature-link { display: flex; align-items: center; gap: 18px; padding: 4px 2px; min-height: 44px; margin: 9px 0 11px; font-size: 21px; line-height: 1.35; font-weight: 500; text-decoration: none; color: var(--teal); }
.promise-feature-link .link-words { min-width: 0; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .22em; }
.link-arrow { flex: 0 0 34px; font-size: 28px; font-weight: 400; transition: transform .15s ease; }
.promise-feature-link:hover .link-arrow { transform: translateX(5px); }
.disclosure-line { color: var(--quiet); font-size: 16px; line-height: 1.55; max-width: 490px; }
.feature-status { color: var(--quiet); font-size: 16px; line-height: 1.55; margin-top: 11px; max-width: 500px; }
.feature-status p + p { margin-top: 4px; }
.reading-ribbon { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; column-gap: 24px; row-gap: 8px; max-width: 1224px; padding: 16px 0; margin: 0 auto; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); font-size: 13px; color: var(--quiet); }
.reading-ribbon a { font-size: 13px; }
.editorial-flow { max-width: 1224px; margin: 0 auto; }
.spread { display: grid; grid-template-columns: 245px minmax(0, 1fr); column-gap: 55px; padding: 76px 0; border-bottom: 1px solid var(--line); }
.spread > .margin-heading { padding-top: 9px; }
.margin-heading h2 { font-family: var(--display); font-size: 30px; letter-spacing: -.02em; margin-top: 15px; }
.spread-content { min-width: 0; }
.spread-content > h2 { max-width: 780px; font-family: var(--display); font-size: 44px; letter-spacing: -.025em; margin-bottom: 22px; }
.spread-intro { max-width: 750px; margin-bottom: 30px; }
.ingredient-index { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; margin-top: 10px; }
.ingredient-entry { min-width: 0; padding-top: 21px; border-top: 1px solid var(--line); }
.ingredient-number { font-family: var(--display); font-style: italic; font-size: 26px; color: var(--quiet); }
.ingredient-entry h3 { font-family: var(--display); font-size: 37px; margin: 13px 0; }
.ingredient-tag { display: block; color: var(--quiet); font-size: 12px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 14px; }
.ingredient-entry p { font-size: 16px; line-height: 1.7; }
.text-route { display: inline-flex; font-size: 16px; line-height: 1.5; color: var(--teal); margin-top: 20px; }
.two-contexts { display: grid; grid-template-columns: 1fr 1fr; gap: 36px; }
.context-piece { padding-top: 25px; border-top: 1px solid var(--line); }
.context-piece h3 { font-family: var(--display); font-size: 30px; margin-bottom: 17px; }
.context-piece p { font-size: 17px; }
.editorial-aside { border-left: 2px solid #92b7ab; margin-top: 30px; padding: 5px 0 5px 24px; color: var(--quiet); font-size: 17px; max-width: 790px; }
.route-steps { list-style: none; padding: 0; }
.route-steps li { display: grid; grid-template-columns: 36px 1fr; gap: 25px; padding: 26px 0; border-top: 1px solid var(--line); }
.route-step-num { font-family: var(--display); font-size: 33px; line-height: 1.2; color: var(--teal); }
.route-steps h3 { font-size: 20px; font-weight: 500; margin-bottom: 10px; line-height: 1.35; }
.route-steps p { max-width: 720px; font-size: 17px; }
.route-conditions { border-top: 1px solid var(--line); padding-top: 22px; color: var(--quiet); font-size: 16px; }
.brief-questions { display: grid; gap: 28px; }
.brief-questions h3 { font-size: 19px; font-weight: 500; line-height: 1.4; margin-bottom: 8px; }
.brief-questions p { max-width: 720px; font-size: 17px; }
.closing-spread { max-width: 1224px; display: grid; grid-template-columns: 1fr 1.1fr; gap: 65px; padding: 70px 0; margin: 0 auto; }
.closing-spread h2 { font-family: var(--display); font-size: 49px; line-height: 1.13; letter-spacing: -.025em; margin: 13px 0 20px; }
.closing-spread .promise-feature { margin-top: 9px; }
.closing-spread .closing-intro { max-width: 500px; font-size: 17px; }
.footer-folio { background: #eaece5; border-top: 1px solid #c4cec5; padding: 39px 48px 31px; }
.footer-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 27px 70px; max-width: 1224px; margin: 0 auto; }
.footer-signature { font-family: var(--display); font-size: 42px; line-height: 1; letter-spacing: -.05em; }
.footer-tag { display: block; font-size: 12px; color: var(--quiet); margin-top: 14px; }
.footer-paths { display: flex; flex-wrap: wrap; justify-content: flex-end; align-content: start; gap: 14px 22px; padding-top: 8px; font-size: 14px; }
.footer-note { grid-column: 1 / -1; border-top: 1px solid #c4cec5; padding-top: 22px; color: var(--quiet); font-size: 16px; line-height: 1.6; }
.footer-note p + p { margin-top: 7px; }
.footer-note p { max-width: 1050px; }
.lumira-footer-invitation { display: flex; align-items: baseline; gap: 16px; flex-wrap: wrap; margin-bottom: 13px; }
.lumira-footer-invitation a { color: var(--teal); }
.breadcrumb-trail { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; padding: 12px 48px 0; max-width: 1320px; margin: 0 auto; font-size: 12px; color: var(--quiet); }
.subject-sheet { padding-top: 20px; grid-template-columns: 1.45fr .8fr; gap: 60px; }
.subject-sheet h1 { max-width: 740px; font-size: clamp(45px, 4.3vw, 64px); }
.subject-sheet .opening-intro { max-width: 650px; }
.subject-sheet .prism-plate { min-height: 420px; max-height: 530px; border-radius: 3px 150px 3px 150px; }
.subject-sheet .promise-feature { max-width: 620px; }
.subject-sheet .feature-status { max-width: 580px; }
.subject-flow .spread { grid-template-columns: 245px minmax(0, 1fr); }
.subject-flow .prose-text { max-width: 780px; }
.prose-text p { font-size: 18px; }
.margin-heading .section-number { font-family: var(--display); font-style: italic; font-size: 30px; color: var(--quiet); display: block; margin-bottom: 16px; }
.quiet-spread { position: relative; background: #eef1e9; border-bottom: 0; padding: 42px; margin: 32px 0; grid-template-columns: 203px minmax(0, 1fr); }
.quiet-spread h2 { font-family: var(--display); font-size: 30px; }
.quiet-spread .spread-content p { font-size: 17px; }
.question-prompts { margin-top: 23px; padding-left: 24px; }
.question-prompts li { padding-left: 8px; margin-top: 13px; }
.question-prompts li::marker { color: var(--teal); }
.comparison-lines { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; }
.comparison-piece { min-width: 0; padding-top: 24px; border-top: 2px solid #a8bcb3; }
.comparison-piece h3 { font-family: var(--display); font-size: 39px; margin-bottom: 24px; }
.comparison-piece dt { text-transform: uppercase; font-size: 12px; letter-spacing: .1em; font-weight: 600; color: var(--quiet); margin: 24px 0 10px; }
.comparison-piece dd { margin: 0; font-size: 16px; }
.comparison-piece .text-route { font-size: 16px; }
.faq-column { max-width: 850px; margin: 0 auto; padding: 20px 0 55px; }
.answer-fold { border-bottom: 1px solid var(--line); }
.answer-fold summary { display: flex; align-items: start; gap: 20px; cursor: pointer; padding: 26px 0; list-style: none; }
.answer-fold summary::-webkit-details-marker { display: none; }
.answer-fold summary::after { content: "+"; font-size: 26px; line-height: 1; color: var(--teal); margin-left: auto; flex: 0 0 25px; }
.answer-fold[open] summary::after { content: "−"; }
.answer-fold h2 { font-size: 21px; font-weight: 500; line-height: 1.4; max-width: 700px; }
.answer-num { font-family: var(--display); font-size: 21px; font-style: italic; color: var(--quiet); line-height: 1.4; flex: 0 0 27px; }
.answer-copy { padding: 0 43px 27px 47px; font-size: 18px; }
.source-reading { list-style: none; padding: 0; margin-top: 25px; }
.source-reading li { border-top: 1px solid var(--line); padding: 23px 0; }
.source-reading .source-title { display: inline-flex; font-size: 18px; font-weight: 500; line-height: 1.5; }
.source-reading .source-publisher { display: block; font-size: 16px; color: var(--quiet); letter-spacing: .035em; margin-top: 6px; }
.source-reading .source-use { font-size: 16px; max-width: 700px; margin-top: 12px; }
.page-sources { padding-top: 46px; padding-bottom: 46px; }
.page-sources h2 { font-size: 29px; }
.page-sources .source-reading { margin-top: 0; }
.page-sources .source-title { font-size: 16px; }
.page-sources .source-reading li { padding: 14px 0; }
.lumira-reading-paths { display: flex; gap: 18px 30px; flex-wrap: wrap; margin-top: 24px; }
.lumira-reading-paths a { color: var(--teal); font-size: 16px; }
.lost-sheet { max-width: 900px; padding: 70px 48px; margin: 0 auto; }
.lost-sheet h1 { font-family: var(--display); font-size: 65px; margin: 24px 0; letter-spacing: -.03em; }
.lost-sheet p { max-width: 650px; }
@media (max-width: 1250px) {
  .editorial-flow, .reading-ribbon, .closing-spread { margin-left: 48px; margin-right: 48px; }
  .spread { grid-template-columns: 195px minmax(0, 1fr); gap: 36px; }
  .subject-flow .spread { grid-template-columns: 195px minmax(0, 1fr); }
  .ingredient-index, .comparison-lines { gap: 22px; }
  .folio-links { gap: 22px; }
  .signature-caption { display: none; }
}
@media (max-width: 900px) {
  .opening-sheet, .subject-sheet { gap: 30px; padding-left: 32px; padding-right: 32px; }
  .folio-head { padding-left: 32px; padding-right: 32px; }
  .opening-sheet h1, .subject-sheet h1 { font-size: 48px; }
  .editorial-flow, .reading-ribbon, .closing-spread { margin-left: 32px; margin-right: 32px; }
  .spread, .subject-flow .spread { grid-template-columns: 1fr; gap: 22px; }
  .margin-heading h2 { font-size: 38px; max-width: 670px; }
  .spread > .margin-heading { padding-top: 0; }
  .margin-heading .section-number { display: none; }
  .quiet-spread { padding: 30px; }
  .closing-spread { gap: 36px; }
  .prism-plate { min-height: 460px; }
  .subject-sheet .prism-plate { min-height: 370px; }
  .footer-folio { padding-left: 32px; padding-right: 32px; }
}
@media (max-width: 650px) {
  body { font-size: 17px; line-height: 1.65; }
  .folio-head { min-height: 79px; padding: 17px 22px; margin: 0 0; }
  .signature-word { font-size: 35px; }
  .signature { gap: 12px; }
  .signature-symbol { width: 27px; height: 32px; }
  .folio-links { display: none; }
  .folio-menu { display: block; }
  .folio-menu > summary { display: flex; gap: 9px; align-items: center; cursor: pointer; list-style: none; font-size: 14px; padding: 10px 0 10px 10px; }
  .folio-menu > summary::-webkit-details-marker { display: none; }
  .folio-menu > summary::after { content: "+"; color: var(--teal); font-size: 20px; line-height: 1; }
  .folio-menu[open] > summary::after { content: "−"; }
  .folio-menu:not([open]) .phone-contents { display: none; }
  .phone-contents { position: absolute; left: 0; right: 0; top: 100%; display: flex; flex-direction: column; padding: 12px 22px 21px; background: var(--paper); border-bottom: 1px solid var(--line); box-shadow: 0 12px 20px #252e3012; }
  .phone-contents a { padding: 12px 0; border-bottom: 1px solid #e3e6df; font-size: 17px; text-decoration: none; }
  .opening-sheet, .subject-sheet { display: flex; flex-direction: column; padding: 26px 22px 29px; gap: 27px; }
  .opening-copy { align-self: stretch; }
  .index-label { font-size: 12px; letter-spacing: .12em; }
  .opening-sheet h1, .subject-sheet h1 { font-size: 44px; line-height: 1.07; margin: 14px 0 14px; letter-spacing: -.035em; }
  .opening-intro { font-size: 17px; line-height: 1.6; }
  .promise-feature { margin-top: 16px; padding-top: 14px; }
  .feature-context { font-size: 12px; letter-spacing: .075em; }
  .promise-feature-link { margin: 9px 0 12px; font-size: 20px; line-height: 1.4; gap: 12px; }
  .link-arrow { flex-basis: 24px; font-size: 25px; }
  .disclosure-line { font-size: 16px; line-height: 1.5; }
  .feature-status { font-size: 16px; line-height: 1.5; margin-top: 12px; }
  .prism-plate, .subject-sheet .prism-plate { min-height: 0; height: 310px; border-radius: 150px 150px 3px 3px; }
  .subject-sheet .prism-plate { height: 190px; border-radius: 3px 95px 3px 95px; }
  .plate-note { font-size: 12px; left: 22px; right: 22px; bottom: 20px; }
  .reading-ribbon, .editorial-flow, .closing-spread { margin-left: 22px; margin-right: 22px; }
  .reading-ribbon { padding: 13px 0; font-size: 12px; gap: 9px; }
  .reading-ribbon a { font-size: 12px; }
  .spread, .subject-flow .spread { padding: 43px 0; gap: 22px; }
  .margin-heading h2 { font-size: 33px; margin-top: 13px; }
  .spread-content > h2 { font-size: 33px; margin-bottom: 19px; }
  .spread-intro { margin-bottom: 23px; }
  .ingredient-index, .comparison-lines { grid-template-columns: 1fr; gap: 32px; }
  .ingredient-entry { display: grid; grid-template-columns: 38px minmax(0, 1fr); column-gap: 16px; padding-top: 20px; }
  .ingredient-number { grid-column: 1; grid-row: 1 / 6; padding-top: 4px; font-size: 25px; }
  .ingredient-entry h3, .ingredient-entry p, .ingredient-entry .ingredient-tag, .ingredient-entry .text-route { grid-column: 2; }
  .ingredient-entry h3 { font-size: 34px; margin-top: 0; margin-bottom: 10px; }
  .ingredient-tag { margin-bottom: 10px; font-size: 12px; }
  .ingredient-entry p { font-size: 17px; line-height: 1.65; }
  .ingredient-entry .text-route { justify-self: start; }
  .two-contexts { grid-template-columns: 1fr; gap: 28px; }
  .context-piece { padding-top: 22px; }
  .context-piece h3 { font-size: 28px; margin-bottom: 14px; }
  .context-piece p { font-size: 17px; }
  .editorial-aside { padding-left: 19px; font-size: 16px; margin-top: 25px; }
  .route-steps li { gap: 17px; padding: 23px 0; grid-template-columns: 30px 1fr; }
  .route-steps h3 { font-size: 19px; }
  .route-steps p { font-size: 17px; }
  .route-conditions { font-size: 16px; }
  .brief-questions { gap: 23px; }
  .brief-questions h3 { font-size: 18px; }
  .closing-spread { grid-template-columns: 1fr; gap: 19px; padding: 44px 0 49px; }
  .closing-spread h2 { font-size: 37px; margin-bottom: 19px; }
  .closing-spread .closing-intro { font-size: 16px; }
  .closing-spread .promise-feature { margin-top: 0; }
  .footer-folio { padding: 29px 22px 27px; }
  .footer-inner { grid-template-columns: 1fr; gap: 24px; }
  .footer-signature { font-size: 39px; }
  .footer-tag { font-size: 12px; margin-top: 10px; }
  .footer-paths { justify-content: start; gap: 14px 23px; padding-top: 0; }
  .footer-note { font-size: 16px; }
  .lumira-footer-invitation { gap: 6px; }
  .breadcrumb-trail { padding: 8px 22px 0; font-size: 12px; }
  .subject-sheet { padding-top: 14px; }
  .subject-sheet h1 { font-size: 42px; }
  .prose-text p { font-size: 17px; }
  .subject-flow .quiet-spread { padding: 25px 22px; margin-top: 17px; margin-bottom: 17px; }
  .quiet-spread h2 { font-size: 28px; }
  .quiet-spread .spread-content p { font-size: 16px; }
  .comparison-piece { padding-top: 21px; }
  .comparison-piece h3 { font-size: 34px; margin-bottom: 21px; }
  .comparison-piece dd { font-size: 17px; }
  .comparison-piece dt { margin-top: 20px; }
  .comparison-piece .text-route { font-size: 16px; }
  .faq-column { padding: 2px 22px 24px; }
  .answer-fold summary { padding: 23px 0; gap: 12px; }
  .answer-fold h2 { font-size: 18px; }
  .answer-num { flex-basis: 23px; font-size: 19px; }
  .answer-copy { font-size: 17px; padding: 0 0 24px 35px; }
  .answer-fold summary::after { flex-basis: 18px; font-size: 23px; }
  .source-reading .source-title { font-size: 17px; }
  .source-reading .source-use { font-size: 16px; }
  .page-sources .source-title { font-size: 16px; }
  .lumira-reading-paths { gap: 14px 24px; }
  .lost-sheet { padding: 42px 22px; }
  .lost-sheet h1 { font-size: 45px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .link-arrow { transition: none; }
}
