/* English typography only. Local font families avoid external font requests. */
.english-reading-guide { display: none; }
html:lang(en) {
  --serif: "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
  --sans: Optima, Candara, "Trebuchet MS", sans-serif;
  --en-body: 17px;
  --en-small: 14px;
  --en-heading: clamp(28px, 3.1vw, 42px);
}
html:lang(en) body.culture-body {
  font-family: var(--sans);
  font-size: var(--en-body);
  line-height: 1.65;
  letter-spacing: 0;
  -webkit-text-size-adjust: 100%;
}
html:lang(en) body.culture-body :is(h1,h2,h3,h4) {
  font-family: var(--serif);
  font-weight: 600;
  letter-spacing: -.025em;
  overflow-wrap: normal;
  word-break: normal;
  text-wrap: balance;
}
html:lang(en) body.culture-body :is(p,li,dd) { word-break: normal; }
html:lang(en) body.culture-body :is(button,input,select,textarea) { font-family: var(--sans); }
html:lang(en) body.culture-body .culture-header { grid-template-columns: auto minmax(0,1fr) auto; gap: 24px; }
html:lang(en) body.culture-body .product-signature { flex-direction: column; align-items: center; gap: 2px; min-width: 0; }
html:lang(en) body.culture-body .product-signature b { font: 600 25px/1.2 var(--serif); letter-spacing: -.025em; text-align: center; }
html:lang(en) body.culture-body .product-signature span { font: 12px/1.5 var(--sans); letter-spacing: .025em; text-align: center; }
html:lang(en) body.culture-body .back-link { font-size: 14px; letter-spacing: 0; }
html:lang(en) body.culture-body .local-badge { font-size: 12px; letter-spacing: 0; }
html:lang(en) body.culture-body[data-reading-mode] .culture-hero {
  min-height: 460px;
  padding-block: clamp(56px,7vw,90px);
}
html:lang(en) body.culture-body[data-reading-mode] .culture-hero h1 {
  width: calc(100% - 210px);
  max-width: 22ch;
  margin-block: 24px;
  font: 500 clamp(44px,5.7vw,78px)/1.1 var(--serif);
  letter-spacing: -.04em;
  white-space: pre-line;
}
html:lang(en) body.culture-body[data-reading-mode] .hero-copy {
  max-width: min(62ch,calc(100% - 190px));
  font: 18px/1.8 var(--sans);
  letter-spacing: 0;
  text-indent: 0;
}
html:lang(en) body.culture-body .hero-seal span {
  font-family: "Noto Serif SC", "Songti SC", STSong, serif;
}
html:lang(en) body.culture-body .eyebrow {
  font: 600 11px/1.6 var(--sans);
  letter-spacing: .17em;
}
html:lang(en) body.culture-body :is(.shared-birth-heading h2,.edition-heading h2,.section-heading h2,.method-notes h2) {
  font: 500 var(--en-heading)/1.22 var(--serif);
  letter-spacing: -.025em;
  white-space: normal;
  max-width: 27ch;
}
html:lang(en) body.culture-body :is(.shared-birth-heading > p:last-child,.edition-heading > p:last-child,.section-heading > p) {
  max-width: 65ch;
  font: var(--en-body)/1.8 var(--sans);
  text-indent: 0;
  letter-spacing: 0;
}
html:lang(en) body.culture-body .shared-birth-information { padding-top: 40px; }
html:lang(en) body.culture-body #shared-birth-form {
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 24px;
  padding: clamp(22px,3vw,36px);
}
html:lang(en) body.culture-body #shared-birth-form > label:not(.check-line) > span {
  font: 600 14px/1.4 var(--sans);
  min-height: 2.8em;
  display: flex;
  align-items: flex-end;
}
html:lang(en) body.culture-body :is(#shared-birth-form,#oracle-form,#stars-form) :is(input:not([type="checkbox"]),select,textarea) {
  font: 16px/1.5 var(--sans);
  letter-spacing: 0;
  min-width: 0;
}
html:lang(en) body.culture-body :is(#shared-birth-form,#oracle-form,#stars-form) :is(input:not([type="checkbox"]),select) { min-height: 52px; }
html:lang(en) body.culture-body #oracle-form textarea { padding: 14px 16px; line-height: 1.75; }
html:lang(en) body.culture-body #shared-birth-form label > small { font: 13px/1.65 var(--sans); margin-top: 8px; }
html:lang(en) body.culture-body #shared-birth-form .shared-time-note { grid-column: 1 / -1; align-items: flex-start; }
html:lang(en) body.culture-body #shared-birth-form .shared-time-note span { font-size: 14px; line-height: 1.65; }
html:lang(en) body.culture-body #shared-birth-form .shared-time-note input { margin-top: 5px; flex-shrink: 0; }
html:lang(en) body.culture-body :is(.shared-coordinate-details,.shared-custom-city-fields,.shared-privacy) { grid-column: 1 / -1; }
html:lang(en) body.culture-body :is(.shared-coordinate-details summary,.shared-privacy,.shared-custom-city-fields p) { font: 14px/1.7 var(--sans); }
html:lang(en) body.culture-body .shared-extra-fields { grid-template-columns: repeat(2,minmax(0,1fr)); }
html:lang(en) body.culture-body .reading-navigation { gap: 14px; padding-top: 30px; }
html:lang(en) body.culture-body .reading-navigation a { min-width: 0; padding: 24px 20px; gap: 12px; }
html:lang(en) body.culture-body .reading-navigation strong { font: 500 clamp(23px,2.25vw,30px)/1.2 var(--serif); letter-spacing: -.025em; }
html:lang(en) body.culture-body .reading-navigation a > span { font: 600 10px/1.5 var(--sans); letter-spacing: .13em; }
html:lang(en) body.culture-body .reading-navigation small { font: 14px/1.55 var(--sans); letter-spacing: 0; }
html:lang(en) body.culture-body .reading-location { font: 13px/1.6 var(--sans); letter-spacing: 0; }
html:lang(en) body.culture-body .edition-card { padding: 26px 24px; gap: 8px; }
html:lang(en) body.culture-body .edition-name { font: 600 12px/1.5 var(--sans); letter-spacing: .07em; }
html:lang(en) body.culture-body .edition-card strong { font: 500 clamp(28px,3.2vw,42px)/1.2 var(--serif); letter-spacing: -.035em; font-variant-numeric: lining-nums tabular-nums; }
html:lang(en) body.culture-body .edition-card p { font: 15px/1.7 var(--sans); margin-block: 10px 20px; min-height: 5.1em; letter-spacing: 0; }
html:lang(en) body.culture-body .edition-card small { font: 600 13px/1.5 var(--sans); letter-spacing: 0; }
html:lang(en) body.culture-body .edition-preview-note { max-width: 85ch; font: 13px/1.75 var(--sans); }
html:lang(en) body.culture-body :is(.generate-reading-action,.primary-action) { min-height: 54px; font: 600 16px/1.5 var(--sans); letter-spacing: .01em; }
html:lang(en) body.culture-body .card-kicker { flex-wrap: wrap; gap: 10px; }
html:lang(en) body.culture-body .card-kicker b { font: 500 25px/1.3 var(--serif); letter-spacing: -.02em; }
html:lang(en) body.culture-body .input-card > label { font: 600 15px/1.6 var(--sans); letter-spacing: 0; }
html:lang(en) body.culture-body .method-card h3 { font: 500 27px/1.3 var(--serif); letter-spacing: -.02em; }
html:lang(en) body.culture-body .method-card li { gap: 18px; }
html:lang(en) body.culture-body .method-card li b { font: 600 12px/1.6 var(--sans); letter-spacing: .08em; }
html:lang(en) body.culture-body .method-card li span { font: 15px/1.75 var(--sans); }
html:lang(en) body.culture-body :is(.privacy-note,.coin-credit,.field-hint) { font: 13px/1.7 var(--sans); }
html:lang(en) body.culture-body #oracle-panel .oracle-steps span { font: 600 16px/1.4 var(--sans); letter-spacing: .06em; }
html:lang(en) body.culture-body #oracle-panel .oracle-steps small { font: 14px/1.65 var(--sans); }
html:lang(en) body.culture-body #oracle-panel .oracle-resting-state h3 { font: 500 30px/1.3 var(--serif); letter-spacing: -.025em; }
html:lang(en) body.culture-body #oracle-panel .oracle-resting-state > p:not(.eyebrow) { max-width: 42ch; margin-inline: auto; font: 16px/1.8 var(--sans); }
html:lang(en) body.culture-body #oracle-panel .coin-instruction { font: 15px/1.75 var(--sans); }
html:lang(en) body.culture-body #oracle-panel .cast-stage-head { align-items: flex-start; flex-direction: column; gap: 12px; }
html:lang(en) body.culture-body #oracle-panel .cast-stage-head h2 { font: 500 30px/1.25 var(--serif); }
html:lang(en) body.culture-body #oracle-panel .cast-stage-head strong { font: 14px/1.65 var(--sans); letter-spacing: 0; }
html:lang(en) body.culture-body #oracle-panel .cast-line { grid-template-columns: 3.2em minmax(48px,1fr) minmax(0,8em); gap: 12px; }
html:lang(en) body.culture-body #oracle-panel .cast-line :is(span,b) { font: 13px/1.55 var(--sans); letter-spacing: 0; }
html:lang(en) body.culture-body :is(.result-head h2,.depth-heading h2) { font: 500 clamp(28px,3.4vw,44px)/1.2 var(--serif); letter-spacing: -.03em; }
html:lang(en) body.culture-body .result-head { gap: 22px; flex-wrap: wrap; }
html:lang(en) body.culture-body .result-head button { min-height: 44px; font: 14px/1.5 var(--sans); }
html:lang(en) body.culture-body .date-strip span { font: 13px/1.6 var(--sans); }
html:lang(en) body.culture-body .pillar { padding: 22px 14px; }
html:lang(en) body.culture-body .pillar span { font: 600 12px/1.4 var(--sans); letter-spacing: .09em; }
html:lang(en) body.culture-body .pillar strong { font-family: "Noto Serif SC","Songti SC",STSong,serif; font-size: 42px; }
html:lang(en) body.culture-body .pillar-gloss { display: block; max-width: 21ch; margin: 14px auto 0; font: 14px/1.6 var(--sans); }
html:lang(en) body.culture-body :is(.life-metrics,.domain-grid,.oracle-analysis-grid) { grid-template-columns: repeat(2,minmax(0,1fr)); }
html:lang(en) body.culture-body .life-metrics article > strong { font: 500 25px/1.35 var(--serif); }
html:lang(en) body.culture-body .life-metrics article > span { font: 600 13px/1.5 var(--sans); }
html:lang(en) body.culture-body .life-metrics article > p { font: 15px/1.7 var(--sans); }
html:lang(en) body.culture-body .element-row { grid-template-columns: 48px 1fr 34px; font: 13px/1.5 var(--sans); }
html:lang(en) body.culture-body :is(.domain-grid,.classics-grid) h3 { font: 500 25px/1.3 var(--serif); margin-block: 18px 14px; }
html:lang(en) body.culture-body :is(.domain-grid,.classics-grid) p { font: var(--en-body)/1.8 var(--sans); max-width: 64ch; }
html:lang(en) body.culture-body :is(.domain-grid,.classics-grid) article { padding: clamp(22px,3vw,34px); min-width: 0; }
html:lang(en) body.culture-body :is(.depth-report,.method-notes) { letter-spacing: 0; }
html:lang(en) body.culture-body :is(#depth-life,#depth-oracle,#depth-stars) .depth-item { padding: 28px; }
html:lang(en) body.culture-body :is(#depth-life,#depth-oracle,#depth-stars) .depth-item h3 { font: 500 25px/1.35 var(--serif); letter-spacing: -.02em; }
html:lang(en) body.culture-body :is(#depth-life,#depth-oracle,#depth-stars) .depth-meaning { max-width: 68ch; font: 17px/1.8 var(--sans); white-space: pre-line; }
html:lang(en) body.culture-body :is(.evidence-details,.rule-trace) { font: 14px/1.8 var(--sans); }
html:lang(en) body.culture-body .evidence-details h4 { font: 600 15px/1.5 var(--sans); letter-spacing: 0; }
html:lang(en) body.culture-body .evidence-details summary { padding-block: 8px; min-height: 40px; }
html:lang(en) body.culture-body .evidence-links { gap: 12px 22px; }
html:lang(en) body.culture-body .synthesis p { max-width: 68ch; font: 20px/1.75 var(--serif); }
html:lang(en) body.culture-body #oracle-result .oracle-verdict > strong { font: 500 clamp(28px,3.8vw,46px)/1.2 var(--serif); letter-spacing: -.025em; text-wrap: balance; }
html:lang(en) body.culture-body #oracle-result .oracle-verdict p { max-width: 68ch; font: 17px/1.8 var(--sans); }
html:lang(en) body.culture-body #oracle-result .oracle-analysis-grid b { font: 600 18px/1.4 var(--serif); }
html:lang(en) body.culture-body #oracle-result .oracle-analysis-grid p { font: 16px/1.8 var(--sans); }
html:lang(en) body.culture-body #oracle-result .hexagram-pair article div { min-width: 0; gap: 18px; }
html:lang(en) body.culture-body #oracle-result .hexagram-pair h3 { font: 500 clamp(22px,2.5vw,30px)/1.3 var(--serif); }
html:lang(en) body.culture-body #oracle-result .question-receipt > strong { font: 500 24px/1.45 var(--serif); }
html:lang(en) body.culture-body[data-reading-family="western"] #stars-panel > .section-heading { gap: 36px; }
html:lang(en) body.culture-body[data-reading-family="western"] #stars-panel > .section-heading > p { font: 17px/1.8 var(--sans); text-indent: 0; }
html:lang(en) body.culture-body[data-reading-family="western"] .western-reading-title { font: 500 clamp(28px,3.1vw,40px)/1.3 var(--serif); white-space: normal; text-align: center; max-width: 23ch; }
html:lang(en) body.culture-body[data-reading-family="western"] #star-observatory .western-chart-title { max-width: 34ch; margin-inline: auto; font: 500 clamp(24px,2.8vw,36px)/1.3 var(--serif); white-space: normal; text-wrap: balance; letter-spacing: -.025em; }
html:lang(en) body.culture-body #sky-chart-stage #star-chart { width: min(100%,640px); }
html:lang(en) body.culture-body .sky-placeholder b { font: 600 14px/1.5 var(--sans); letter-spacing: .14em; }
html:lang(en) body.culture-body .sky-placeholder p { max-width: 34ch; padding-inline: 12px; font: 15px/1.75 var(--sans); }
html:lang(en) body.culture-body #star-summary p { font: 17px/1.8 var(--sans); }
html:lang(en) body.culture-body #star-summary small { display: block; max-width: 65ch; font: 14px/1.75 var(--sans); }
html:lang(en) body.culture-body #star-summary .eyebrow { font: 600 11px/1.6 var(--sans); letter-spacing: .12em; }
html:lang(en) body.culture-body .classic-shelf { grid-template-columns: repeat(auto-fit,minmax(190px,1fr)); }
html:lang(en) body.culture-body .classic-shelf a { min-height: 210px; padding: 24px; gap: 18px; }
html:lang(en) body.culture-body .classic-shelf b { font: 500 26px/1.25 var(--serif); letter-spacing: -.02em; }
html:lang(en) body.culture-body .classic-shelf small { font: 14px/1.7 var(--sans); }
html:lang(en) body.culture-body .classic-library .section-heading h2 { white-space: normal; }
html:lang(en) body.culture-body .method-notes > p { max-width: 72ch; font: 16px/1.8 var(--sans); }
html:lang(en) body.culture-body .method-notes details { font: 14px/1.8 var(--sans); }
html:lang(en) body.culture-body .source-library a { font: 14px/1.6 var(--sans); }
html:lang(en) body.culture-body .english-reading-guide {
  display: block;
  max-width: 1248px;
  margin: 32px auto;
  padding: 24px 28px;
  border-block: 1px solid var(--line);
}
html:lang(en) body.culture-body .english-reading-guide > summary { font: 500 24px/1.4 var(--serif); cursor: pointer; padding-block: 6px; }
html:lang(en) body.culture-body .english-reading-guide > p { max-width: 70ch; font: 16px/1.8 var(--sans); }
html:lang(en) body.culture-body .english-reading-guide dl { display: grid; grid-template-columns: 1fr 1fr; gap: 24px 42px; margin: 28px 0 6px; }
html:lang(en) body.culture-body .english-reading-guide dl > div { padding-top: 18px; border-top: 1px solid var(--line); }
html:lang(en) body.culture-body .english-reading-guide dt { font: 600 19px/1.4 var(--serif); }
html:lang(en) body.culture-body .english-reading-guide dd { margin: 10px 0 0; font: 16px/1.8 var(--sans); }
html:lang(en) body.culture-body #checkout-page #checkout-title { font: 500 clamp(30px,4vw,46px)/1.2 var(--serif); letter-spacing: -.03em; }
html:lang(en) body.culture-body #checkout-page .checkout-subtitle { font: 20px/1.65 var(--serif); }
html:lang(en) body.culture-body #checkout-page #checkout-price { font: 500 clamp(36px,5vw,52px)/1.2 var(--serif); letter-spacing: -.035em; font-variant-numeric: lining-nums tabular-nums; }
html:lang(en) body.culture-body #checkout-page .checkout-includes { font: 17px/1.75 var(--sans); }
html:lang(en) body.culture-body #checkout-page .checkout-includes li + li { margin-top: 12px; }
html:lang(en) body.culture-body #checkout-page :is(.checkout-context,.checkout-status,.checkout-availability) { font: 15px/1.8 var(--sans); max-width: 66ch; }
html:lang(en) body.culture-body .culture-disclaimer { grid-template-columns: 180px minmax(0,1fr); }
html:lang(en) body.culture-body .culture-disclaimer strong { font: 600 19px/1.4 var(--serif); }
html:lang(en) body.culture-body .culture-disclaimer p { max-width: 80ch; font: 14px/1.8 var(--sans); }
@media (max-width: 1100px) {
  html:lang(en) body.culture-body .local-badge { display: none; }
  html:lang(en) body.culture-body #shared-birth-form { grid-template-columns: repeat(2,minmax(0,1fr)); }
  html:lang(en) body.culture-body .reading-navigation.reading-navigation { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 760px) {
  html:lang(en) body.culture-body .culture-header { padding-inline: 18px; gap: 12px; }
  html:lang(en) body.culture-body .product-signature span { display: none; }
  html:lang(en) body.culture-body[data-reading-mode] .culture-hero { min-height: auto; padding: 50px 22px 56px; }
  html:lang(en) body.culture-body[data-reading-mode] .culture-hero h1 { width: 100%; max-width: 22ch; font-size: clamp(34px,6.8vw,50px); letter-spacing: -.035em; }
  html:lang(en) body.culture-body[data-reading-mode] .hero-copy { max-width: 56ch; font-size: 17px; }
  html:lang(en) body.culture-body[data-reading-mode] .hero-seal { display: none; }
  html:lang(en) body.culture-body :is(.section-heading h2,.edition-heading h2,.shared-birth-heading h2,.method-notes h2) { font-size: clamp(27px,5vw,34px); }
  html:lang(en) body.culture-body .section-heading { gap: 24px; }
  html:lang(en) body.culture-body .english-reading-guide { margin-inline: 18px; padding-inline: 6px; }
  html:lang(en) body.culture-body .english-reading-guide dl { grid-template-columns: 1fr; gap: 16px; }
  html:lang(en) body.culture-body #oracle-result .hexagram-pair { grid-template-columns: 1fr; }
  html:lang(en) body.culture-body[data-reading-family="western"] #stars-panel > .section-heading { grid-template-columns: 1fr; }
  html:lang(en) body.culture-body .culture-disclaimer { grid-template-columns: 1fr; gap: 14px; }
}
@media (max-width: 520px) {
  html:lang(en) body.culture-body .culture-header { grid-template-columns: 32px minmax(0,1fr) auto; }
  html:lang(en) body.culture-body .back-link { font-size: 0; width: 32px; }
  html:lang(en) body.culture-body .back-link::before { content: "\2190"; font: 24px/1 var(--sans); }
  html:lang(en) body.culture-body .product-signature b { font-size: 20px; }
  html:lang(en) body.culture-body .language-toggle { min-width: 44px; padding-inline: 8px; }
  html:lang(en) body.culture-body #shared-birth-form { grid-template-columns: 1fr; gap: 22px; padding: 22px; }
  html:lang(en) body.culture-body #shared-birth-form > label:not(.check-line) > span { min-height: 0; }
  html:lang(en) body.culture-body .shared-extra-fields { grid-template-columns: 1fr; }
  html:lang(en) body.culture-body .reading-navigation a { padding: 18px 14px; gap: 10px; }
  html:lang(en) body.culture-body .reading-navigation strong { font-size: 22px; }
  html:lang(en) body.culture-body .reading-navigation small { font-size: 13px; }
  html:lang(en) body.culture-body .reading-navigation a > span { font-size: 9px; letter-spacing: .08em; }
  html:lang(en) body.culture-body .edition-card { padding: 22px 18px; }
  html:lang(en) body.culture-body .edition-card strong { font-size: 28px; }
  html:lang(en) body.culture-body .edition-card p { min-height: 0; margin-block: 0 10px; }
  html:lang(en) body.culture-body .edition-name { letter-spacing: .03em; font-size: 11px; }
  html:lang(en) body.culture-body :is(.life-metrics,.domain-grid,.oracle-analysis-grid,.classic-shelf) { grid-template-columns: 1fr; }
  html:lang(en) body.culture-body :is(#depth-life,#depth-oracle,#depth-stars) .depth-item { padding: 22px 18px; }
  html:lang(en) body.culture-body :is(#depth-life,#depth-oracle,#depth-stars) .depth-item h3 { font-size: 23px; }
  html:lang(en) body.culture-body .result-head h2 { font-size: 30px; }
  html:lang(en) body.culture-body .classic-shelf a { min-height: 170px; }
  html:lang(en) body.culture-body #oracle-panel .coin-controls { grid-template-columns: 1fr; }
  html:lang(en) body.culture-body #oracle-panel .coin-controls button { width: 100%; min-height: 48px; }
  html:lang(en) body.culture-body #oracle-panel .cast-line { gap: 8px; font-size: 13px; }
}
@media print {
  .english-reading-guide { display: none !important; }
  html:lang(en) body.culture-body .domain-grid { grid-template-columns: 1fr 1fr; }
}
