:root {
  color-scheme: light;
  --paper: #faf8f2;
  --white: #fffefa;
  --ink: #24271f;
  --muted: #76786e;
  --saffron: #d6a62f;
  --gold: #e9c96c;
  --orange: #bd633c;
  --green: #526557;
  --line: #e9e5da;
  --display: "Manrope", sans-serif;
  --body: "DM Sans", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: auto; scroll-padding-top: 82px; }
html { scrollbar-width: auto; }
html.large-text { scroll-padding-top: 96px; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--body); -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
.site-header { height: 82px; padding: 0 7.2%; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(36,39,31,.07); position: relative; z-index: 10; background: var(--paper); }
.brand { display: inline-flex; gap: 10px; align-items: center; font: 800 15px var(--display); letter-spacing: -.055em; }
.brand-mark { color: var(--saffron); font-size: 27px; line-height: 1; }
.site-nav { display: flex; align-items: center; gap: clamp(20px, 3vw, 45px); font-size: 12px; font-weight: 600; color: #55574f; }
.site-nav > a:not(.nav-cta):hover, .text-link:hover, .arrow-link:hover { color: var(--orange); }
.nav-cta { background: var(--ink); color: white; border-radius: 2px; padding: 13px 17px; font-size: 11px; transition: background .2s; }
.nav-cta:hover { background: var(--green); }
.nav-cta span { padding-left: 9px; color: var(--gold); }
.menu-toggle { display: none; }
.hero { min-height: 610px; padding: 0 7.2%; display: grid; grid-template-columns: 1fr .92fr; align-items: center; gap: 5%; position: relative; overflow: hidden; }
.hero-copy { padding: 40px 0 70px; position: relative; z-index: 2; }
.eyebrow, .section-kicker { font-size: 9px; font-weight: 700; letter-spacing: .19em; color: #717267; }
.eyebrow { display: flex; align-items: center; gap: 10px; }
.eyebrow-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--saffron); box-shadow: 0 0 0 4px rgba(214,166,47,.12); }
h1, h2, h3, p { margin-top: 0; }
h1, h2 { font-family: var(--display); letter-spacing: -.065em; }
h1 { margin: 26px 0 19px; font-size: clamp(47px, 6.1vw, 79px); line-height: 1.07; font-weight: 600; }
h1 > span, h2 > span { color: var(--saffron); }
.hero-copy > p { max-width: 440px; font-size: 14px; line-height: 1.9; color: var(--muted); }
.hero-actions { display: flex; align-items: center; gap: 25px; margin-top: 29px; }
.button { padding: 15px 19px; font-size: 11px; font-weight: 600; }
.button-primary { color: white; background: var(--ink); transition: transform .2s, background .2s; }
.button-primary:hover { transform: translateY(-2px); background: var(--green); }
.button-primary span { margin-left: 16px; color: var(--gold); }
.text-link { font-size: 11px; font-weight: 600; transition: color .2s; }
.play-icon { display: inline-grid; place-items: center; width: 27px; height: 27px; margin-right: 7px; border: 1px solid #d8d3c5; border-radius: 50%; font-size: 8px; color: var(--orange); }
.hero-note { display: flex; align-items: center; gap: 11px; margin-top: 51px; font-size: 10px; color: #96958b; font-style: italic; }
.note-line { height: 1px; width: 29px; background: var(--saffron); }
.hero-art { position: relative; height: 490px; width: 100%; max-width: 490px; justify-self: end; }
.hero-image { position: absolute; inset: 0 2% 2% 4%; background: #7d7968 url("assets/india.jpg") center 48% / cover; border-radius: 48% 48% 3px 3px; }
.image-wash { position: absolute; inset: 0 2% 2% 4%; border-radius: 48% 48% 3px 3px; background: linear-gradient(180deg, rgba(37,39,30,.02) 45%, rgba(37,39,30,.45) 100%), linear-gradient(90deg, rgba(110,76,23,.07), transparent 60%); }
.hero-sun { position: absolute; width: 96px; height: 96px; right: -2%; top: 9%; border-radius: 50%; background: rgba(228,194,113,.82); filter: blur(.2px); z-index: -1; }
.hero-badge { position: absolute; z-index: 1; left: -9%; bottom: 14%; background: var(--white); padding: 16px 20px; display: flex; align-items: center; gap: 13px; box-shadow: 0 12px 40px rgba(54,44,21,.09); }
.badge-symbol { color: var(--saffron); font-size: 27px; }
.hero-badge strong, .hero-badge small { display: block; }
.hero-badge strong { font: 700 12px var(--display); }
.hero-badge small { margin-top: 4px; color: var(--muted); font-size: 10px; }
.image-caption { position: absolute; right: -17%; top: 49%; writing-mode: vertical-rl; color: #9b9687; font-size: 8px; letter-spacing: .2em; }
.hero-scroll { position: absolute; bottom: 20px; left: 7.2%; display: flex; align-items: center; gap: 11px; color: #a09d92; font-size: 8px; letter-spacing: .18em; }
.hero-scroll span { display: inline-block; width: 1px; height: 28px; background: var(--saffron); }
.section-pad { padding-left: 12%; padding-right: 12%; }
.intro { background: var(--white); padding-top: 92px; padding-bottom: 77px; }
.section-kicker { color: #929084; }
.section-kicker > span { color: var(--saffron); }
.intro-grid { display: grid; grid-template-columns: 1fr .8fr; gap: 8%; align-items: center; margin-top: 24px; }
h2 { font-size: clamp(34px, 4vw, 52px); line-height: 1.16; font-weight: 600; margin-bottom: 0; }
.intro-copy p { color: var(--muted); font-size: 12px; line-height: 1.9; margin-bottom: 13px; }
.arrow-link { display: inline-block; margin-top: 4px; font-size: 10px; font-weight: 700; transition: color .2s; }
.arrow-link span { color: var(--saffron); margin-left: 8px; }
.stats-row { display: grid; grid-template-columns: repeat(3, 1fr) 1.25fr; gap: 10px; margin-top: 65px; padding-top: 27px; border-top: 1px solid var(--line); }
.stat-item { display: flex; flex-direction: column; gap: 7px; }
.stat-item strong { font: 600 29px var(--display); letter-spacing: -.06em; }
.stat-item strong span { color: var(--saffron); }
.stat-item > span { color: var(--muted); font-size: 10px; }
.stat-aside { align-self: center; justify-self: end; color: #99978d; font-size: 10px; line-height: 1.8; text-align: right; }
.teachings { padding-top: 100px; padding-bottom: 106px; }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 30px; }
.section-heading h2, .traditions-top h2 { margin-top: 20px; }
.section-heading > p, .traditions-top > p { max-width: 305px; margin-bottom: 3px; color: var(--muted); font-size: 11px; line-height: 1.9; }
.truth-grid { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 45px; border-top: 1px solid #e4dfd2; border-bottom: 1px solid #e4dfd2; }
.truth-card { min-height: 220px; padding: 20px 19px 17px; position: relative; border-right: 1px solid #e4dfd2; transition: background .25s, transform .25s; }
.truth-card:first-child { border-left: 1px solid #e4dfd2; }
.truth-card:hover { background: var(--white); transform: translateY(-5px); }
.truth-number { font-size: 9px; color: #a6a294; }
.truth-icon { position: absolute; top: 12px; right: 16px; color: var(--saffron); font-size: 29px; }
.truth-card h3 { font: 700 13px var(--display); margin: 31px 0 9px; letter-spacing: -.035em; }
.truth-card p { min-height: 54px; color: var(--muted); font-size: 10px; line-height: 1.8; margin-bottom: 12px; }
.truth-word { color: #aaa697; font-size: 8px; letter-spacing: .16em; }
.traditions { padding-top: 86px; padding-bottom: 101px; background: #f1eee5; }
.traditions-top { display: flex; align-items: end; justify-content: space-between; gap: 30px; }
.flip-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 19px; margin-top: 38px; }
.flip-card { min-width: 0; height: 352px; padding: 0; border: 0; background: transparent; perspective: 1100px; cursor: pointer; text-align: left; color: white; }
.flip-inner { display: block; position: relative; width: 100%; height: 100%; transform-style: preserve-3d; transition: transform .75s cubic-bezier(.2,.7,.2,1); }
.flip-card:focus-visible .flip-inner, .flip-card.is-flipped .flip-inner { transform: rotateY(180deg); }
.flip-card:focus-visible { outline: 2px solid var(--saffron); outline-offset: 5px; }
.flip-front, .flip-back { position: absolute; inset: 0; display: flex; flex-direction: column; backface-visibility: hidden; -webkit-backface-visibility: hidden; overflow: hidden; }
.flip-front { justify-content: end; padding: 24px; background-position: center; background-size: cover; }
.flip-front::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(19,24,20,.03) 20%, rgba(19,24,20,.68)); transition: background .25s; }
.photo-theravada { background-image: url("assets/theravada.jpg"); }
.photo-mahayana { background-image: url("assets/mahayana.jpg"); }
.photo-vajrayana { background-image: url("assets/vajrayana.jpg"); }
.flip-label, .flip-title, .flip-hint { z-index: 1; }
.flip-label { position: absolute; left: 23px; top: 22px; font-size: 8px; letter-spacing: .15em; }
.flip-title { font: 600 29px var(--display); letter-spacing: -.055em; }
.flip-hint { display: flex; justify-content: space-between; margin-top: 9px; color: rgba(255,255,255,.78); font-size: 9px; }
.flip-hint span { color: var(--gold); font-size: 14px; }
.flip-back { transform: rotateY(180deg); background: var(--green); padding: 28px 25px; }
.flip-card:nth-child(2) .flip-back { background: #9c643f; }
.flip-card:nth-child(3) .flip-back { background: #696244; }
.flip-back-icon { color: #eed18a; font-size: 26px; }
.flip-back-tag { margin-top: 24px; color: rgba(255,255,255,.7); font-size: 8px; letter-spacing: .16em; }
.flip-back-title { margin-top: 9px; font: 600 27px var(--display); letter-spacing: -.06em; }
.flip-back-text { margin-top: 12px; color: rgba(255,255,255,.82); font-size: 10px; line-height: 1.85; }
.flip-back-more { margin-top: auto; color: #f0d997; font-size: 8px; letter-spacing: .1em; }
.arrow-icon { display: inline-block; width: 1em; height: 1em; overflow: visible; vertical-align: -.12em; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.practice { min-height: 560px; padding-top: 82px; padding-bottom: 71px; position: relative; display: grid; place-items: center; overflow: hidden; background: #273b34; color: white; }
.practice-glow { position: absolute; width: 560px; height: 560px; border: 1px solid rgba(235,202,122,.12); border-radius: 50%; box-shadow: 0 0 0 54px rgba(235,202,122,.025), 0 0 0 110px rgba(235,202,122,.02); }
.practice-content { position: relative; max-width: 530px; text-align: center; }
.practice .section-kicker { color: rgba(255,255,255,.55); }
.practice-lotus { display: block; margin: 24px 0 12px; color: #e8c874; font-size: 26px; }
.practice h2 { font-size: clamp(36px, 4.4vw, 53px); }
.practice h2 > span { color: #e8c874; }
.practice-content > p { max-width: 410px; margin: 17px auto 21px; color: rgba(255,255,255,.66); font-size: 11px; line-height: 1.9; }
.timer { display: flex; flex-direction: column; align-items: center; }
.timer-display { font: 400 38px var(--display); letter-spacing: .05em; color: #f1d99b; font-variant-numeric: tabular-nums; }
.timer-presets { display: flex; gap: 7px; margin-top: 10px; }
.timer-preset { padding: 6px 10px; border: 1px solid rgba(255,255,255,.18); background: transparent; color: rgba(255,255,255,.62); font-size: 9px; cursor: pointer; transition: background .2s, color .2s, border-color .2s; }
.timer-preset:hover, .timer-preset.is-selected { border-color: #e8c874; background: rgba(232,200,116,.12); color: #f1d99b; }
.timer-preset:focus-visible, .timer-button:focus-visible { outline: 2px solid #e8c874; outline-offset: 3px; }
.timer-button { border: 1px solid rgba(255,255,255,.37); background: transparent; color: white; padding: 12px 17px; margin-top: 12px; font-size: 10px; cursor: pointer; transition: background .2s, color .2s; }
.timer-button:hover { background: white; color: var(--ink); }
.timer-button span { margin-left: 13px; color: #e8c874; }
.timer-status { min-height: 12px; margin-top: 10px; color: rgba(255,255,255,.42); font-size: 7px; letter-spacing: .2em; }
.practice-credit { display: block; margin-top: 28px; color: rgba(255,255,255,.48); font-size: 9px; }
.practice-credit span { margin: 0 7px; color: #e8c874; }
.practice-side-note { position: absolute; right: 5%; bottom: 44px; writing-mode: vertical-rl; color: rgba(255,255,255,.36); font-size: 8px; letter-spacing: .19em; }
.site-footer { min-height: 79px; padding: 15px 7.2%; display: flex; align-items: center; justify-content: space-between; gap: 15px; color: #8d8b81; font-size: 9px; }
.footer-brand { color: var(--ink); }
.back-top { color: var(--ink); font-weight: 700; }
.site-nav > a.is-active:not(.nav-cta) { color: var(--orange); }
.js-ready .reveal { opacity: 0; transform: translateY(18px); transition: opacity .65s ease, transform .65s ease; }
.js-ready .reveal.is-visible { opacity: 1; transform: translateY(0); }

@media (min-width: 1450px) {
  .hero { padding-left: max(7.2%, calc((100vw - 1240px) / 2)); padding-right: max(7.2%, calc((100vw - 1240px) / 2)); }
  .site-header, .site-footer { padding-left: max(7.2%, calc((100vw - 1240px) / 2)); padding-right: max(7.2%, calc((100vw - 1240px) / 2)); }
}
@media (max-width: 900px) {
  .site-header { padding: 0 5%; }
  .site-nav { gap: 19px; }
  .site-nav > a { font-size: 10px; }
  .nav-cta { padding: 12px; }
  .hero { padding: 0 6%; min-height: 560px; grid-template-columns: 1fr .82fr; gap: 2%; }
  .hero-art { height: 410px; }
  .hero-badge { left: -4%; }
  .image-caption { right: -10%; }
  .section-pad { padding-left: 8%; padding-right: 8%; }
  .truth-card { padding-left: 13px; padding-right: 13px; }
  .flip-card { height: 310px; }
  .flip-back { padding: 20px; }
}
@media (max-width: 680px) {
  html { scroll-padding-top: 70px; }
  .site-header {
    height: auto;
    min-height: calc(68px + env(safe-area-inset-top, 0px));
    padding: env(safe-area-inset-top, 0px) max(6%, env(safe-area-inset-right, 0px)) 0 max(6%, env(safe-area-inset-left, 0px));
  }
  .menu-toggle { display: flex; width: 40px; height: 40px; border: 1px solid var(--line); background: transparent; flex-direction: column; justify-content: center; align-items: center; gap: 6px; cursor: pointer; }
  .menu-toggle span { width: 16px; height: 1px; background: var(--ink); transition: transform .2s; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(3.5px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
  .site-nav { display: none; position: absolute; top: 100%; left: 0; right: 0; padding: 13px 6% 23px; flex-direction: column; align-items: stretch; gap: 0; background: var(--paper); border-bottom: 1px solid var(--line); box-shadow: 0 15px 25px rgba(35,33,25,.07); }
  .site-nav.is-open { display: flex; }
  .site-nav > a:not(.nav-cta) { padding: 13px 0; border-bottom: 1px solid var(--line); font-size: 12px; }
  .nav-cta { text-align: center; margin-top: 13px; padding: 14px; font-size: 11px; }
  .hero { display: flex; flex-direction: column; align-items: stretch; padding: 0 7%; min-height: auto; gap: 0; }
  .hero-copy { padding: 57px 0 27px; }
  h1 { font-size: clamp(44px, 12vw, 62px); margin-top: 21px; }
  .hero-copy > p { max-width: 380px; font-size: 12px; }
  .hero-actions { gap: 14px; margin-top: 23px; }
  .button { padding: 14px 12px; font-size: 10px; }
  .button-primary span { margin-left: 8px; }
  .text-link { font-size: 10px; }
  .play-icon { width: 25px; height: 25px; margin-right: 4px; }
  .hero-note { margin-top: 30px; font-size: 9px; }
  .hero-art { width: 82%; height: min(90vw, 380px); margin: 0 auto 40px; }
  .hero-badge { left: -11%; bottom: 12%; padding: 12px 14px; }
  .image-caption { right: -14%; font-size: 7px; }
  .hero-sun { width: 67px; height: 67px; }
  .hero-scroll { display: none; }
  .section-pad { padding-left: 7%; padding-right: 7%; }
  .intro { padding-top: 65px; padding-bottom: 54px; }
  .intro-grid { grid-template-columns: 1fr; gap: 21px; margin-top: 20px; }
  h2 { font-size: clamp(34px, 9vw, 47px); }
  .intro-copy p { font-size: 11px; }
  .stats-row { grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 38px; padding-top: 20px; }
  .stat-item strong { font-size: 24px; }
  .stat-item > span { max-width: 90px; font-size: 9px; }
  .stat-aside { display: none; }
  .teachings { padding-top: 66px; padding-bottom: 69px; }
  .section-heading, .traditions-top { display: block; }
  .section-heading h2, .traditions-top h2 { margin-top: 17px; }
  .section-heading > p, .traditions-top > p { margin: 14px 0 0; font-size: 10px; }
  .truth-grid { grid-template-columns: repeat(2, 1fr); margin-top: 27px; }
  .truth-card { min-height: 202px; padding: 16px 14px 14px; border-bottom: 1px solid #e4dfd2; }
  .truth-card:nth-child(3) { border-left: 1px solid #e4dfd2; }
  .truth-card h3 { font-size: 12px; margin-top: 26px; }
  .truth-card p { font-size: 9px; }
  .traditions { padding-top: 65px; padding-bottom: 69px; }
  .flip-grid { grid-template-columns: 1fr; gap: 14px; margin-top: 27px; }
  .flip-card { height: 320px; }
  .flip-back { padding: 25px; }
  .flip-back-tag { margin-top: 21px; }
  .practice { min-height: 530px; padding: 68px 7% 64px; }
  .practice-content { max-width: 430px; }
  .practice h2 { font-size: clamp(36px, 9vw, 48px); }
  .practice-content > p { font-size: 10px; }
  .practice-side-note { right: 4%; bottom: 25px; font-size: 7px; }
  .practice-credit { font-size: 8px; }
  .site-footer { padding: 18px 6%; min-height: 74px; }
  .site-footer > span { max-width: 130px; text-align: center; font-size: 8px; }
}
@media (max-width: 360px) {
  .hero-actions { flex-wrap: wrap; }
  .hero-art { width: 85%; }
  .flip-card { height: 285px; }
  .site-footer > span { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .js-ready .reveal { opacity: 1; transform: none; }
}

/* More room for the stories, places and celebrations behind the traditions. */
.site-header { position: sticky; top: 0; box-shadow: 0 5px 22px rgba(48, 42, 29, .035); }
.site-nav { gap: clamp(15px, 2.2vw, 32px); }
.festivals { padding-top: 100px; padding-bottom: 92px; background: var(--white); }
.festivals-heading { display: flex; justify-content: space-between; align-items: end; gap: 35px; }
.festivals-heading h2 { margin-top: 19px; }
.festivals-heading > p { max-width: 320px; margin: 0 0 4px; color: var(--muted); font-size: 11px; line-height: 1.9; }
.festival-feature { min-height: 350px; display: grid; grid-template-columns: 1.12fr .88fr; margin-top: 37px; background: #f4f0e6; }
.festival-feature-photo { min-height: 350px; background: #8e7752 url("assets/vesak.jpg") center 52% / cover; }
.festival-feature-copy { position: relative; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: 45px clamp(25px, 5vw, 65px); overflow: hidden; }
.festival-date { color: var(--orange); font-size: 8px; font-weight: 700; letter-spacing: .14em; line-height: 1.7; }
.festival-feature-copy h3 { position: relative; z-index: 1; margin: 17px 0 12px; font: 600 clamp(23px, 3vw, 34px)/1.2 var(--display); letter-spacing: -.055em; }
.festival-feature-copy p { position: relative; z-index: 1; max-width: 370px; margin: 0; color: var(--muted); font-size: 10px; line-height: 1.9; }
.festival-flower { position: absolute; right: -5px; bottom: -57px; color: rgba(214,166,47,.13); font-size: 190px; line-height: 1; }
.festival-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 29px; }
.festival-item { display: grid; grid-template-columns: 88px 1fr 17px; align-items: center; gap: 14px; min-width: 0; padding: 17px 0; border-bottom: 1px solid var(--line); }
.festival-thumb { height: 92px; width: 88px; background-position: center; background-size: cover; }
.festival-thumb-lantern { background-image: url("assets/kathina.jpg"); }
.festival-thumb-flags { background-image: url("assets/losar.jpg"); }
.festival-thumb-butter { background-image: url("assets/asalha.jpg"); }
.festival-item-copy { min-width: 0; }
.festival-item-copy h3 { margin: 7px 0 5px; font: 700 13px var(--display); letter-spacing: -.04em; }
.festival-item-copy p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.65; }
.festival-arrow { align-self: start; justify-self: end; display: grid; place-items: center; width: 30px; height: 30px; padding: 0; border: 1px solid transparent; border-radius: 50%; background: transparent; color: var(--saffron); font-size: 16px; cursor: pointer; transition: color .2s, background .2s, transform .2s, border-color .2s; }
.festival-arrow:hover, .festival-arrow[aria-expanded="true"] { border-color: var(--saffron); background: rgba(214,166,47,.12); color: var(--orange); transform: rotate(45deg); }
.festival-arrow:focus-visible { outline: 2px solid var(--saffron); outline-offset: 2px; }
.festival-extra { grid-column: 1 / -1; margin: 0; padding: 12px 13px; border-left: 2px solid var(--saffron); background: var(--panel); color: var(--muted); font-size: 12px; line-height: 1.75; }
.festival-extra[hidden] { display: none; }
.festival-footnote { display: flex; align-items: center; gap: 9px; margin-top: 21px; color: #929084; font-size: 9px; line-height: 1.7; }
.festival-footnote span { color: var(--saffron); font-size: 14px; }
.quote-strip { min-height: 210px; position: relative; display: flex; justify-content: center; align-items: center; flex-direction: column; overflow: hidden; background: #e5d5ab; text-align: center; }
.quote-strip::before, .quote-strip::after { content: ""; position: absolute; width: 260px; height: 260px; border: 1px solid rgba(112,87,38,.15); border-radius: 50%; }
.quote-strip::before { left: -120px; top: -115px; box-shadow: 0 0 0 26px rgba(112,87,38,.025), 0 0 0 54px rgba(112,87,38,.025); }
.quote-strip::after { right: -120px; bottom: -115px; box-shadow: 0 0 0 26px rgba(112,87,38,.025), 0 0 0 54px rgba(112,87,38,.025); }
.quote-mark { height: 26px; color: #a78135; font: 700 49px Georgia, serif; line-height: 1; }
.quote-strip p { margin: 5px 0 11px; color: #34372d; font: 500 clamp(18px, 2.3vw, 27px)/1.45 var(--display); letter-spacing: -.04em; }
.quote-strip p span { color: #8e6c2e; }
.quote-credit { color: #8d7b58; font-size: 8px; letter-spacing: .2em; }
.quote-wheel { position: absolute; right: 13%; bottom: 22px; color: rgba(139,106,47,.16); font-size: 63px; }
.site-footer { display: block; padding: 0 12%; min-height: 0; color: #e6e3d7; background: #202923; }
.footer-main { min-height: 220px; display: grid; grid-template-columns: 1.5fr 1fr 1fr .4fr; align-items: center; gap: 35px; }
.footer-about { position: relative; align-self: stretch; display: flex; flex-direction: column; justify-content: center; overflow: hidden; }
.footer-brand { color: white; width: fit-content; }
.footer-about p { position: relative; z-index: 1; margin: 15px 0 0 37px; color: rgba(255,255,255,.48); font-size: 10px; line-height: 1.8; }
.footer-sun { position: absolute; left: 85px; bottom: -66px; color: rgba(233,201,108,.08); font-size: 180px; }
.footer-column { display: flex; flex-direction: column; align-items: flex-start; gap: 13px; }
.footer-heading { margin-bottom: 4px; color: #d7b55b; font-size: 8px; font-weight: 700; letter-spacing: .17em; }
.footer-column a { color: rgba(255,255,255,.68); font-size: 10px; transition: color .2s; }
.footer-column a:hover { color: #e9c96c; }
.footer-lotus { justify-self: end; color: rgba(233,201,108,.55); font-size: 53px; }
.footer-bottom { min-height: 53px; display: flex; justify-content: space-between; align-items: center; gap: 15px; border-top: 1px solid rgba(255,255,255,.12); color: rgba(255,255,255,.43); font-size: 8px; }
.footer-divider { padding: 0 6px; color: #d7b55b; }

@media (max-width: 900px) {
  .site-nav { gap: 13px; }
  .site-nav > a { font-size: 9px; }
  .nav-cta { padding: 11px 9px; }
  .section-pad { padding-left: 7%; padding-right: 7%; }
  .festival-list { gap: 14px; }
  .festival-item { grid-template-columns: 70px 1fr 12px; gap: 10px; }
  .festival-thumb { width: 70px; height: 80px; }
  .site-footer { padding: 0 8%; }
}
@media (max-width: 760px) {
  .site-header { height: 70px; }
  .menu-toggle { display: flex; }
  .site-nav { display: none; position: absolute; top: 70px; left: 0; right: 0; padding: 13px 6% 23px; flex-direction: column; align-items: stretch; gap: 0; background: var(--paper); border-bottom: 1px solid var(--line); box-shadow: 0 15px 25px rgba(35,33,25,.07); }
  .site-nav.is-open { display: flex; }
  .site-nav > a:not(.nav-cta) { padding: 13px 0; border-bottom: 1px solid var(--line); font-size: 12px; }
  .nav-cta { text-align: center; margin-top: 13px; padding: 14px; font-size: 11px; }
  .festival-feature { grid-template-columns: 1fr; }
  .festival-feature-photo { min-height: 290px; }
  .festival-feature-copy { min-height: 250px; }
  .festival-list { grid-template-columns: 1fr; gap: 0; }
  .festival-item { grid-template-columns: 92px 1fr 20px; gap: 16px; }
  .festival-thumb { width: 92px; height: 83px; }
  .festival-item-copy p { max-width: 370px; }
  .footer-main { grid-template-columns: 1.3fr 1fr 1fr; gap: 20px; }
  .footer-lotus { display: none; }
}
@media (max-width: 680px) {
  .site-header { height: 68px; }
  .site-nav { top: 68px; }
  .festivals { padding-top: 68px; padding-bottom: 65px; }
  .festivals-heading { display: block; }
  .festivals-heading h2 { margin-top: 17px; }
  .festivals-heading > p { margin-top: 14px; font-size: 10px; }
  .festival-feature { margin-top: 25px; }
  .festival-feature-photo { min-height: 230px; }
  .festival-feature-copy { min-height: 245px; padding: 29px 24px; }
  .festival-feature-copy h3 { font-size: 25px; }
  .festival-list { margin-top: 19px; }
  .festival-item { grid-template-columns: 76px 1fr 14px; gap: 12px; padding: 14px 0; }
  .festival-thumb { width: 76px; height: 76px; }
  .festival-item-copy h3 { font-size: 12px; }
  .festival-item-copy p { font-size: 9px; }
  .festival-footnote { align-items: flex-start; font-size: 8px; }
  .quote-strip { min-height: 185px; padding: 25px 9%; }
  .quote-strip p { font-size: 19px; }
  .quote-wheel { right: 5%; font-size: 42px; }
  .site-footer { padding: 0 7%; }
  .footer-main { min-height: 270px; grid-template-columns: 1fr 1fr; gap: 22px 18px; padding: 28px 0; }
  .footer-about { min-height: 100px; }
  .footer-column { gap: 10px; }
  .footer-column a { font-size: 9px; }
  .footer-bottom { align-items: flex-start; flex-direction: column; justify-content: center; gap: 6px; padding: 13px 0; font-size: 7px; }
}

@media (hover: hover) and (pointer: fine) {
  .flip-card:hover .flip-inner { transform: rotateY(180deg); }
}

@media (pointer: coarse) {
  .menu-toggle, .theme-toggle, .text-size-toggle { min-width: 44px; min-height: 44px; }
  .quiz-choices button { min-height: 44px; }
  .timer-preset { min-height: 44px; }
  .timer-button { min-height: 48px; }
}

@media (max-width: 680px) {
  .footer-bottom { padding-bottom: calc(13px + env(safe-area-inset-bottom, 0px)); }
}

/* Give the opening screen a clearer story and a few small paths into the page. */
.hero { min-height: 650px; }
.hero-copy { padding-top: 33px; }
.hero h1 { max-width: 670px; font-size: clamp(57px, 6.3vw, 82px); }
.hero-copy > p { max-width: 475px; }
.hero-art { max-width: 510px; height: 515px; }
.hero-image { background-image: url("assets/vajrayana.jpg"); background-position: center 58%; }
.hero-image::after { content: ""; position: absolute; inset: 0; border: 1px solid rgba(255,255,255,.26); border-radius: inherit; pointer-events: none; }
.hero-badge { left: -12%; bottom: 12%; }
.hero-art-ring { position: absolute; top: 12%; left: -10%; display: grid; place-items: center; width: 55px; height: 55px; border: 1px solid rgba(214,166,47,.55); border-radius: 50%; color: var(--saffron); background: var(--paper); font-size: 26px; box-shadow: 0 8px 25px rgba(54,44,21,.08); animation: gentle-turn 24s linear infinite; }
.hero-image-note { position: absolute; right: 3%; bottom: 5%; display: flex; gap: 10px; align-items: center; color: rgba(255,255,255,.83); font-size: 7px; line-height: 1.6; letter-spacing: .14em; text-shadow: 0 1px 8px rgba(0,0,0,.35); }
.hero-image-note > span:first-child { color: #f1d68a; font: 500 24px var(--display); letter-spacing: -.05em; }
.hero-topics { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 27px; }
.hero-topics a { display: inline-flex; align-items: center; gap: 7px; padding: 8px 11px; border: 1px solid #e9e5da; color: #66675e; background: rgba(255,254,250,.56); font-size: 9px; transition: border-color .2s, color .2s, transform .2s; }
.hero-topics a:hover { transform: translateY(-2px); border-color: var(--saffron); color: var(--orange); }
.hero-topics a span { color: var(--saffron); }
@keyframes gentle-turn { to { transform: rotate(360deg); } }

@media (max-width: 900px) {
  .hero { min-height: 590px; }
  .hero h1 { font-size: clamp(51px, 6vw, 68px); }
  .hero-art { height: 430px; }
}
@media (max-width: 680px) {
  .hero { min-height: auto; }
  .hero-copy { padding: 48px 0 24px; }
  .hero h1 { margin: 19px 0 14px; font-size: clamp(43px, 10.5vw, 58px); }
  .hero-copy > p { max-width: 390px; font-size: 11px; line-height: 1.75; }
  .hero-actions { margin-top: 19px; }
  .hero-note { margin-top: 24px; }
  .hero-topics { gap: 6px; margin-top: 16px; }
  .hero-topics a { padding: 7px 9px; font-size: 8px; }
  .hero-art { width: 92%; height: min(84vw, 350px); margin-bottom: 34px; }
  .hero-badge { left: -7%; bottom: 12%; }
  .hero-art-ring { left: -9%; top: 11%; width: 43px; height: 43px; font-size: 21px; }
  .hero-image-note { right: 6%; bottom: 5%; }
  .image-caption { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-art-ring { animation: none; }
}

:root {
  --paper: #f6f2e9;
  --white: #fffaf0;
  --warm: #eee5d2;
  --panel: #f3ead8;
  --ink: #302c23;
  --muted: #625c50;
  --saffron: #b97913;
  --gold: #d8aa45;
  --orange: #a95432;
  --line: #dfd5c1;
}
html[data-theme="dark"] {
  color-scheme: dark;
  --paper: #202923;
  --white: #28332c;
  --warm: #29362f;
  --panel: #303a31;
  --ink: #f5f0e3;
  --muted: #c4c7bd;
  --saffron: #edc65b;
  --gold: #f1d98d;
  --orange: #e6a276;
  --green: #526557;
  --line: #465047;
}
.traditions { background: var(--warm); }
.festival-feature { background: var(--panel); }
.quote-strip { background: var(--warm); }
.site-nav { color: var(--muted); }
.section-kicker, .eyebrow { color: var(--muted); }
.hero-topics a { background: var(--white); color: var(--muted); }
.intro { background: #fffaf0; }
.teachings { background: #f6f2e9; }
.traditions { background: #eee5d2; }
.festivals { background: #fffaf0; }
.quote-strip { background: #eee2c8; }
.nav-cta { background: #70501f; color: #fffaf0; }
.nav-cta:hover { background: #526557; }
.button-primary { background: #302c23; }
.button-primary:hover { background: #526557; }
.theme-toggle { flex: 0 0 auto; width: 39px; height: 39px; display: inline-grid; place-items: center; margin-left: 17px; border: 1px solid var(--line); border-radius: 50%; background: var(--white); color: var(--ink); cursor: pointer; transition: background .2s, color .2s, border-color .2s, transform .2s; }
.theme-toggle:hover { transform: rotate(-12deg); border-color: var(--saffron); color: var(--orange); }
.theme-toggle:focus-visible { outline: 2px solid var(--saffron); outline-offset: 3px; }
.theme-icon { grid-area: 1 / 1; font-size: 17px; line-height: 1; }
.theme-icon-sun { display: none; }
html[data-theme="dark"] .theme-icon-moon { display: none; }
html[data-theme="dark"] .theme-icon-sun { display: inline; color: var(--gold); }
.menu-toggle { flex: 0 0 auto; }
.intro-copy p, .hero-copy > p, .section-heading > p, .traditions-top > p, .festivals-heading > p { color: var(--muted); font-size: 15px; line-height: 1.8; }
.truth-card h3 { font-size: 16px; }
.truth-card p { min-height: 76px; color: var(--muted); font-size: 13px; line-height: 1.75; }
.stat-item > span { color: var(--muted); font-size: 12px; }
.festival-feature-copy p, .festival-item-copy p { color: var(--muted); font-size: 13px; line-height: 1.8; }
.festival-item-copy h3 { font-size: 15px; }
.festival-extra { font-size: 13px; }
.festival-date { font-size: 10px; }
.festival-footnote { color: var(--muted); font-size: 11px; }
.flip-back-text { font-size: 13px; line-height: 1.8; }
.flip-back-tag, .flip-back-more { font-size: 9px; }
.hero-note { font-size: 11px; }
.quote-credit { font-size: 9px; }
.footer-about p, .footer-column a { font-size: 12px; }
.footer-heading { font-size: 9px; }
.footer-bottom { font-size: 10px; }

html[data-theme="dark"] .site-header { border-bottom-color: var(--line); }
html[data-theme="dark"] .intro,
html[data-theme="dark"] .teachings { background: var(--paper); }
html[data-theme="dark"] .traditions { background: var(--warm); }
html[data-theme="dark"] .festivals { background: var(--white); }
html[data-theme="dark"] .quote-strip { background: var(--warm); }
html[data-theme="dark"] .nav-cta { background: #edc65b; color: #202923; }
html[data-theme="dark"] .nav-cta:hover { background: #f1d98d; }
html[data-theme="dark"] .button-primary { background: #edc65b; color: #202923; }
html[data-theme="dark"] .button-primary:hover { background: #f1d98d; }
html[data-theme="dark"] .truth-grid,
html[data-theme="dark"] .truth-card,
html[data-theme="dark"] .truth-card:first-child { border-color: var(--line); }
html[data-theme="dark"] .truth-card:hover { background: #344138; }
html[data-theme="dark"] .truth-number,
html[data-theme="dark"] .truth-word,
html[data-theme="dark"] .stat-aside,
html[data-theme="dark"] .festival-footnote { color: #c4c7bd; }
html[data-theme="dark"] .quote-strip p { color: var(--ink); }
html[data-theme="dark"] .quote-strip p span { color: #edc65b; }
html[data-theme="dark"] .quote-credit { color: #c4b27f; }
html[data-theme="dark"] .quote-mark { color: #edc65b; }
html[data-theme="dark"] .quote-strip::before,
html[data-theme="dark"] .quote-strip::after { border-color: rgba(237,198,91,.18); }
html[data-theme="dark"] .festival-feature-copy { color: var(--ink); }
html[data-theme="dark"] .hero-badge,
html[data-theme="dark"] .play-icon { background-color: var(--white); border-color: var(--line); }
html[data-theme="dark"] .hero-badge small,
html[data-theme="dark"] .hero-badge strong { color: var(--ink); }

@media (max-width: 900px) {
  .site-header { gap: 10px; }
  .theme-toggle { margin-left: 4px; }
  .site-nav { gap: 10px; }
  .site-nav > a { font-size: 10px; }
}
@media (max-width: 760px) {
  .site-header { justify-content: flex-end; }
  .site-header > .brand { margin-right: auto; }
  .site-header > .theme-toggle { margin: 0 0 0 4px; }
  .site-header > .menu-toggle { margin-left: 4px; }
  .site-nav { color: var(--muted); }
  .site-nav > a:not(.nav-cta) { color: var(--ink); }
  .intro-copy p, .hero-copy > p, .section-heading > p, .traditions-top > p, .festivals-heading > p { font-size: 14px; }
  .truth-card h3 { font-size: 15px; }
  .truth-card p { min-height: 90px; font-size: 12px; }
  .festival-feature-copy p, .festival-item-copy p { font-size: 12px; }
  .flip-back-text { font-size: 12px; }
}
@media (max-width: 680px) {
  .hero-copy > p { font-size: 14px; }
  .hero-note { font-size: 10px; }
  .section-heading > p, .traditions-top > p, .festivals-heading > p { font-size: 14px; }
  .truth-card h3 { font-size: 14px; }
  .truth-card p { min-height: 98px; font-size: 12px; }
  .festival-item-copy h3 { font-size: 14px; }
  .festival-item-copy p { font-size: 12px; }
  .festival-extra { font-size: 12px; }
  .footer-column a { font-size: 11px; }
  .footer-bottom { font-size: 9px; }
}

.text-size-toggle { flex: 0 0 auto; width: 39px; height: 39px; display: inline-grid; place-items: center; margin-left: 8px; padding: 0; border: 1px solid var(--line); border-radius: 50%; background: var(--white); color: var(--ink); cursor: pointer; transition: border-color .2s, background .2s, transform .2s; }
.text-size-toggle:hover, .text-size-toggle[aria-pressed="true"] { border-color: var(--saffron); background: var(--panel); transform: translateY(-1px); }
.text-size-toggle:focus-visible { outline: 2px solid var(--saffron); outline-offset: 3px; }
.text-size-label { font-size: 12px; font-weight: 700; }
.extra-topic { padding-top: 94px; padding-bottom: 94px; background: var(--white); }
.extra-topic-heading { display: flex; align-items: end; justify-content: space-between; gap: 35px; }
.extra-topic-heading h2 { margin-top: 18px; }
.extra-topic-heading > p { max-width: 365px; margin: 0 0 4px; color: var(--muted); font-size: 14px; line-height: 1.85; }
.symbols-section { background: var(--paper); }
.places-section { background: var(--warm); }
.daily-section { background: var(--white); }
.path-layout { display: grid; grid-template-columns: .65fr 1.35fr; align-items: center; gap: 7%; margin-top: 45px; }
.path-wheel { width: min(100%, 270px); aspect-ratio: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; justify-self: center; border: 1px solid var(--saffron); border-radius: 50%; color: var(--saffron); background: radial-gradient(circle, var(--panel) 0 43%, transparent 43.5% 100%); box-shadow: 0 0 0 15px color-mix(in srgb, var(--saffron) 9%, transparent), 0 0 0 30px color-mix(in srgb, var(--saffron) 5%, transparent); }
.path-wheel > span { font-size: 80px; line-height: 1; }
.path-wheel small { margin-top: 10px; color: var(--muted); font-size: 9px; text-align: center; letter-spacing: .15em; line-height: 1.6; }
.path-items { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; }
.path-item { border-bottom: 1px solid var(--line); }
.path-item summary { min-height: 59px; display: grid; grid-template-columns: 28px 1fr 20px; align-items: center; gap: 9px; cursor: pointer; list-style: none; }
.path-item summary::-webkit-details-marker { display: none; }
.path-item summary > span { color: var(--saffron); font-size: 10px; }
.path-item summary strong { font: 700 12px var(--display); }
.path-item summary b { color: var(--saffron); font-size: 19px; font-weight: 400; text-align: center; transition: transform .2s; }
.path-item[open] summary b { transform: rotate(45deg); }
.path-item > p { margin: 0; padding: 0 25px 16px 37px; color: var(--muted); font-size: 12px; line-height: 1.75; }
.symbol-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 17px; margin-top: 39px; }
.symbol-card { position: relative; height: 250px; min-height: 0; padding: 0; border: 0; background: transparent; perspective: 900px; color: var(--ink); text-align: left; cursor: pointer; }
.symbol-card:focus-visible { outline: 2px solid var(--saffron); outline-offset: 4px; }
.symbol-card > span { position: absolute; inset: 0; min-height: 0; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end; padding: 22px; border: 1px solid var(--line); background: var(--white); transition: transform .65s cubic-bezier(.2,.7,.2,1), background .2s; backface-visibility: hidden; overflow: hidden; }
.symbol-card > .symbol-face { transform: rotateY(0); }
.symbol-card > .symbol-detail { position: absolute; inset: 0; justify-content: center; transform: rotateY(-180deg); background: var(--panel); }
.symbol-card.is-flipped > .symbol-face { transform: rotateY(180deg); }
.symbol-card.is-flipped > .symbol-detail { transform: rotateY(0); }
.symbol-glyph { align-self: center; flex: 0 0 auto; width: 66px; height: 66px; margin: auto 0; color: var(--saffron); font-size: 62px; line-height: 1; }
.symbol-glyph:not(svg) { display: grid; place-items: center; }
.symbol-glyph.mandala-mark { width: 76px; height: 76px; font-size: initial; }
.symbol-card strong { font: 700 15px var(--display); }
.symbol-card small { margin-top: 7px; color: var(--muted); font-size: 8px; letter-spacing: .1em; }
.symbol-detail .symbol-glyph { align-self: flex-start; width: 40px; height: 40px; margin: 0 0 15px; font-size: 40px; }
.symbol-detail .symbol-glyph.mandala-mark { width: 52px; height: 52px; font-size: initial; }
.symbol-detail small { font-size: 12px; line-height: 1.8; letter-spacing: 0; }
.symbol-detail em { margin-top: 15px; color: var(--saffron); font-size: 8px; font-style: normal; letter-spacing: .1em; }
.places-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 38px; }
.place-card { min-height: 340px; position: relative; display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; padding: 19px; color: white; background-color: #656452; background-position: center; background-size: cover; transition: transform .25s; }
.place-card:hover { transform: translateY(-5px); }
.place-card::before { position: absolute; inset: 0; content: ""; background: linear-gradient(180deg, rgba(20,25,20,.16), rgba(20,25,20,.76)); }
.place-card > span, .place-card > div { position: relative; z-index: 1; }
.place-card > span { font-size: 8px; letter-spacing: .15em; }
.place-card h3 { margin-bottom: 6px; font: 700 17px var(--display); }
.place-card p { max-width: 230px; margin: 0; color: rgba(255,255,255,.88); font-size: 12px; line-height: 1.7; }
.place-india { background-image: url("assets/india.jpg"); }
.place-southeast { background-image: url("assets/theravada.jpg"); }
.place-tibet { background-image: url("assets/vajrayana.jpg"); }
.place-japan { background-image: url("assets/japan.jpg"); }
.daily-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 6%; align-items: stretch; margin-top: 38px; }
.daily-photo { min-height: 390px; background: #71806b url("assets/daily-practice.jpg") center / cover; }
.daily-ideas { display: flex; flex-direction: column; justify-content: center; }
.daily-idea { display: flex; align-items: center; gap: 15px; width: 100%; padding: 16px 0; border: 0; border-bottom: 1px solid var(--line); background: transparent; color: var(--ink); text-align: left; cursor: pointer; }
.daily-idea:focus-visible { outline: 2px solid var(--saffron); outline-offset: 2px; }
.idea-check { flex: 0 0 29px; width: 29px; height: 29px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--saffron); font-size: 16px; transition: background .2s, color .2s; }
.daily-idea[aria-pressed="true"] .idea-check { border-color: var(--saffron); background: var(--saffron); color: white; }
.daily-idea strong, .daily-idea small { display: block; }
.daily-idea strong { font: 700 14px var(--display); }
.daily-idea small { margin-top: 5px; color: var(--muted); font-size: 12px; line-height: 1.6; }
.daily-progress { margin: 17px 0 0; color: var(--muted); font-size: 11px; }
.daily-progress strong { color: var(--saffron); }

html.large-text .intro-copy p,
html.large-text .hero-copy > p,
html.large-text .section-heading > p,
html.large-text .traditions-top > p,
html.large-text .festivals-heading > p,
html.large-text .extra-topic-heading > p,
html.large-text .truth-card p,
html.large-text .flip-back-text,
html.large-text .festival-feature-copy p,
html.large-text .festival-item-copy p,
html.large-text .festival-extra,
html.large-text .path-item > p,
html.large-text .symbol-detail small,
html.large-text .place-card p,
html.large-text .daily-idea small,
html.large-text .daily-progress,
html.large-text .footer-column a,
html.large-text .footer-about p { font-size: 17px !important; line-height: 1.65 !important; }
html.large-text .site-nav a,
html.large-text .text-link,
html.large-text .button,
html.large-text .path-item summary strong,
html.large-text .symbol-card strong,
html.large-text .daily-idea strong { font-size: 16px !important; }
html.large-text .eyebrow,
html.large-text .section-kicker,
html.large-text .festival-date,
html.large-text .footer-heading { font-size: max(11px, 1.15em) !important; }
html.large-text .truth-card { min-height: 255px; }

@media (max-width: 1200px) {
  .site-header { gap: 7px; }
  .site-header > .brand { margin-right: auto; }
  .menu-toggle { display: flex; width: 40px; height: 40px; border: 1px solid var(--line); background: transparent; flex-direction: column; justify-content: center; align-items: center; gap: 6px; cursor: pointer; }
  .menu-toggle span { width: 16px; height: 1px; background: var(--ink); transition: transform .2s; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(3.5px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
  .site-nav { display: none; position: absolute; top: 82px; left: 0; right: 0; padding: 13px 6% 23px; flex-direction: column; align-items: stretch; gap: 0; background: var(--paper); border-bottom: 1px solid var(--line); box-shadow: 0 15px 25px rgba(35,33,25,.07); }
  .site-nav.is-open { display: flex; }
  .site-nav > a:not(.nav-cta) { padding: 13px 0; border-bottom: 1px solid var(--line); font-size: 13px; }
  .nav-cta { text-align: center; margin-top: 13px; padding: 14px; font-size: 12px; }
  .theme-toggle, .text-size-toggle { margin-left: 3px; }
}
@media (max-width: 900px) {
  .path-layout { grid-template-columns: .5fr 1.5fr; gap: 5%; }
  .path-wheel { width: min(100%, 210px); }
  .path-wheel > span { font-size: 62px; }
  .path-items { gap: 0 14px; }
  .path-item summary { grid-template-columns: 23px 1fr 17px; gap: 6px; }
  .path-item summary strong { font-size: 11px; }
  .symbol-grid { grid-template-columns: repeat(2, 1fr); }
  .places-grid { grid-template-columns: repeat(2, 1fr); }
  .place-card { min-height: 290px; }
}
@media (max-width: 760px) {
  .site-nav { top: 70px; }
  .extra-topic { padding-top: 68px; padding-bottom: 68px; }
  .extra-topic-heading { display: block; }
  .extra-topic-heading > p { margin-top: 14px; font-size: 14px; }
  .path-layout { grid-template-columns: 1fr; gap: 38px; }
  .path-wheel { width: 180px; }
  .path-wheel > span { font-size: 54px; }
  .path-items { gap: 0 16px; }
  .path-item summary strong { font-size: 12px; }
  .daily-layout { grid-template-columns: 1fr; gap: 17px; }
  .daily-photo { min-height: 260px; }
}
@media (max-width: 680px) {
  .site-nav { top: 68px; }
  .site-header > .theme-toggle { margin: 0 0 0 2px; }
  .site-header > .text-size-toggle { width: 37px; height: 37px; margin: 0 0 0 2px; padding: 0; }
  .site-header > .menu-toggle { margin-left: 2px; }
  .path-items { grid-template-columns: 1fr; }
  .path-item summary { min-height: 54px; grid-template-columns: 27px 1fr 20px; gap: 10px; }
  .path-item summary strong { font-size: 13px; }
  .symbol-grid { gap: 10px; margin-top: 26px; }
  .symbol-card { height: 220px; }
  .symbol-card > span { padding: 15px; }
  .symbol-card strong { font-size: 13px; }
  .symbol-glyph { font-size: 48px; }
  .symbol-detail .symbol-glyph { width: 33px; height: 33px; font-size: 33px; margin-bottom: 12px; }
  .symbol-detail .symbol-glyph.mandala-mark { width: 42px; height: 42px; }
  .symbol-detail small { font-size: 11px; }
  .places-grid { gap: 10px; margin-top: 26px; }
  .place-card { min-height: 250px; padding: 13px; }
  .place-card h3 { font-size: 14px; }
  .place-card p { font-size: 11px; }
  .daily-photo { min-height: 220px; }
  .daily-idea { padding: 14px 0; }
  html.large-text .truth-card { min-height: 270px; }
}
@media (prefers-reduced-motion: reduce) {
  .symbol-card > span { transition: none; }
}
@media (max-width: 380px) {
  .truth-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .truth-card { min-width: 0; overflow-wrap: anywhere; }
  .truth-card h3 { font-size: 13px; }
}
@media (max-width: 680px) {
  .symbol-grid { grid-template-columns: minmax(0, 1fr); gap: 13px; }
  .symbol-card { height: 265px; }
  .symbol-card > span { padding: 20px; }
  .symbol-glyph.mandala-mark { width: 62px; height: 62px; }
  .symbol-detail .symbol-glyph.mandala-mark { width: 44px; height: 44px; }
  html.large-text .symbol-card { height: 320px; }
  html.large-text .symbol-detail { padding: 22px; }
  html.large-text .symbol-detail small { font-size: 17px !important; line-height: 1.55 !important; }
}

.quiz-section { background: var(--warm); }
.quiz-score { display: flex; align-items: center; gap: 10px; margin-top: 31px; color: var(--muted); font-size: 13px; }
.quiz-score-mark { color: var(--saffron); font-size: 19px; }
.quiz-score strong { color: var(--ink); }
.quiz-reset { margin-left: auto; border: 0; background: transparent; color: var(--orange); font-size: 12px; font-weight: 700; cursor: pointer; }
.quiz-reset[hidden] { display: none; }
.quiz-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; margin-top: 17px; }
.quiz-card { min-width: 0; padding: 23px; border: 1px solid var(--line); background: var(--white); }
.quiz-number { color: var(--saffron); font-size: 9px; font-weight: 700; letter-spacing: .13em; }
.quiz-card h3 { min-height: 60px; margin: 15px 0 17px; font: 700 16px/1.55 var(--display); letter-spacing: -.025em; }
.quiz-choices { display: flex; gap: 9px; }
.quiz-choices button { min-width: 86px; padding: 10px 15px; border: 1px solid var(--line); background: transparent; color: var(--ink); font-size: 12px; cursor: pointer; transition: background .2s, color .2s, border-color .2s; }
.quiz-choices button:hover:not(:disabled) { border-color: var(--saffron); background: var(--panel); }
.quiz-choices button:focus-visible, .quiz-reset:focus-visible { outline: 2px solid var(--saffron); outline-offset: 3px; }
.quiz-choices button.is-correct { border-color: #547957; background: #e6f0df; color: #294b2c; }
.quiz-choices button.is-incorrect { border-color: #b65b42; background: #f8e8df; color: #713923; }
html[data-theme="dark"] .quiz-choices button.is-correct { border-color: #91ba7f; background: #344b37; color: #e3f4da; }
html[data-theme="dark"] .quiz-choices button.is-incorrect { border-color: #d78b69; background: #50382f; color: #ffe5d7; }
.quiz-choices button:disabled { cursor: default; }
.quiz-feedback { margin: 14px 0 0; padding-top: 13px; border-top: 1px solid var(--line); color: var(--muted); font-size: 13px; line-height: 1.75; }
.quiz-feedback[hidden] { display: none; }
html.large-text .quiz-card h3 { font-size: 19px; }
html.large-text .quiz-choices button,
html.large-text .quiz-score,
html.large-text .quiz-reset { font-size: 16px; }
html.large-text .quiz-feedback { font-size: 17px; line-height: 1.65; }
.teaching-note, .topic-footnote { display: flex; align-items: flex-start; gap: 14px; margin-top: 24px; padding: 17px 19px; border-left: 2px solid var(--saffron); background: var(--panel); }
.teaching-note > span, .topic-footnote > span { flex: 0 0 auto; color: var(--orange); font-size: 9px; font-weight: 700; letter-spacing: .12em; line-height: 1.8; }
.teaching-note > p, .topic-footnote { color: var(--muted); font-size: 13px; line-height: 1.75; }
.teaching-note > p { margin: 0; }
.topic-footnote { margin-bottom: 0; }
html.large-text .teaching-note > p, html.large-text .topic-footnote { font-size: 17px; line-height: 1.65; }

@media (min-width: 1201px) and (max-width: 1340px) {
  .site-header { height: 76px; padding: 0 4%; gap: 12px; }
  .site-header > .brand { flex: 0 0 auto; margin-right: 0; }
  .site-nav { display: flex; flex: 1 1 auto; justify-content: center; gap: clamp(9px, .9vw, 12px); white-space: nowrap; font-size: 10px; }
  .site-nav > a { flex: 0 0 auto; font-size: inherit; white-space: nowrap; }
  .nav-cta { padding: 9px 10px; font-size: 9px; white-space: nowrap; }
  .site-header > .theme-toggle, .site-header > .text-size-toggle { flex: 0 0 36px; width: 36px; height: 36px; margin: 0; }
  html.large-text .site-nav > a { font-size: 11px !important; }
  html.large-text .nav-cta { font-size: 10px !important; }
}
@media (min-width: 1341px) {
  .site-header {
    height: 76px;
    padding: 0 4%;
    gap: clamp(12px, 1.3vw, 22px);
  }
  .site-header > .brand { flex: 0 0 auto; }
  .site-nav {
    display: flex;
    flex: 1 1 auto;
    justify-content: center;
    gap: clamp(14px, 1.15vw, 20px);
    white-space: nowrap;
    font-size: 12px;
  }
  .site-nav > a { flex: 0 0 auto; white-space: nowrap; }
  .nav-cta { padding: 10px 13px; font-size: 11px; white-space: nowrap; }
  .site-header > .theme-toggle, .site-header > .text-size-toggle { flex: 0 0 39px; margin: 0; }
  html.large-text .site-nav > a { font-size: 14px !important; }
  html.large-text .nav-cta { font-size: 13px !important; }
}
@media (max-width: 900px) {
  .quiz-grid { gap: 11px; }
  .quiz-card { padding: 18px; }
  .quiz-card h3 { font-size: 14px; }
}
@media (max-width: 680px) {
  .quiz-grid { grid-template-columns: minmax(0, 1fr); gap: 11px; }
  .quiz-card { padding: 18px; }
  .quiz-card h3 { min-height: 0; font-size: 15px; }
  .quiz-feedback { font-size: 12px; }
  .quiz-choices button { min-height: 42px; }
  .quiz-score { flex-wrap: wrap; font-size: 12px; }
  .quiz-reset { font-size: 11px; }
  .teaching-note, .topic-footnote { flex-direction: column; gap: 5px; padding: 14px; }
  .teaching-note > span, .topic-footnote > span { font-size: 9px; }
}
