/* =====================================================================
   FIGURES IN SPACE TAI CHI – stylesheet  ·  "tea house" theme
   Calm, spacious, paper-and-tea colours. Change the colours in :root
   and the whole site follows.
   ===================================================================== */
:root{
  --paper:#f4f0e6;        /* washi paper */
  --paper-2:#ebe5d6;      /* slightly deeper paper for quiet bands */
  --card:#faf7f0;         /* soft panels */
  --ink:#2f2a25;          /* sumi ink – main text */
  --ink-soft:#6b6259;     /* secondary text */
  --tea:#5f6f45;          /* matcha green – buttons, links */
  --tea-dark:#47552f;
  --tea-light:#e3e6d4;
  --clay:#8c6a4c;         /* hojicha / wood */
  --seal:#a5492f;         /* used sparingly, like a seal stamp */
  --line:#ddd4c1;         /* hairlines */
  --radius:18px;
  --max:1080px;
  --text:64ch;
  --serif:"Noto Serif SC","Songti SC","Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;
  --brush:"KaiTi","STKaiti","Kaiti SC","BiauKai","Noto Serif SC",serif;
  --sans:"Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;
  --ease:cubic-bezier(.25,.6,.3,1);
  /* legacy names used in some pages */
  --cinnabar:var(--seal); --jade:var(--tea); --jade-light:var(--tea-light); --gold:var(--clay);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:18px;line-height:1.85;letter-spacing:.005em;
  /* faint paper fibre */
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .45 0 0 0 0 .38 0 0 0 0 .28 0 0 0 .05 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E");}
::selection{background:var(--tea-light)}
img{max-width:100%;height:auto;display:block}
a{color:var(--tea-dark);text-decoration:none;border-bottom:1px solid rgba(95,111,69,.35);transition:color .3s,border-color .3s}
a:hover{color:var(--seal);border-color:var(--seal)}
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;line-height:1.3;margin:1.4em 0 .5em;color:var(--ink);letter-spacing:.01em}
h1{font-size:clamp(2rem,4.2vw,3.1rem)}
h2{font-size:clamp(1.5rem,2.8vw,2.05rem)}
h3{font-size:1.22rem}
p{margin:.6em 0 1.1em;max-width:var(--text)}
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}
.cn{font-family:var(--brush);color:var(--clay);font-weight:normal;opacity:.85}
.muted{color:var(--ink-soft)}
.small{font-size:.88rem}
.center{text-align:center}
.center p,p.center,.breathe p{margin-left:auto;margin-right:auto}
.eyebrow{font-size:.78rem;letter-spacing:.28em;text-transform:uppercase;color:var(--clay);margin:0 0 .6em}
hr.brush{border:0;height:18px;margin:3.5em auto;max-width:300px;opacity:.5;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 18'%3E%3Cpath d='M4 11 C70 4 140 15 210 8 S280 6 296 10' stroke='%232f2a25' stroke-width='2.2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat}

/* ---------- header ---------- */
.topbar{background:transparent;color:var(--ink-soft);font-size:.8rem;letter-spacing:.04em}
.topbar .wrap{max-width:1260px;display:flex;gap:16px;justify-content:space-between;align-items:center;padding-top:10px;padding-bottom:0;flex-wrap:wrap}
.topbar a{color:var(--ink-soft);border:0}
.topbar a:hover{color:var(--tea-dark)}
header.site{background:rgba(244,240,230,.88);backdrop-filter:blur(6px);position:sticky;top:0;z-index:50;border-bottom:1px solid transparent;transition:border-color .4s}
header.site.scrolled{border-bottom-color:var(--line)}
header.site .wrap{max-width:1260px;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:76px}
.brand{display:flex;align-items:center;gap:12px;color:var(--ink);border:0}
.brand:hover{color:var(--ink)}
.brand svg{width:42px;height:42px;flex:none;opacity:.9}
.brand b{font-family:var(--serif);font-weight:400;font-size:1.18rem;display:block;line-height:1.1;letter-spacing:.02em}
.brand span{white-space:nowrap;font-size:.68rem;color:var(--ink-soft);letter-spacing:.2em;text-transform:uppercase}
nav.main ul{list-style:none;margin:0;padding:0;display:flex;gap:2px;flex-wrap:nowrap;align-items:center}
nav.main a{display:block;white-space:nowrap;padding:7px 10px;border:0;border-radius:999px;color:var(--ink-soft);font-size:.93rem}
nav.main a:hover,nav.main a.active{color:var(--ink);background:rgba(95,111,69,.09)}
nav.main a.cta{color:var(--tea-dark);border:1px solid var(--tea);margin-left:6px}
nav.main a.cta:hover{background:var(--tea);color:#fff}
nav.main li.sep{width:1px;height:20px;background:var(--line);margin:0 8px}
.menu-btn{display:none;background:none;border:1px solid var(--line);border-radius:999px;padding:7px 16px;font:inherit;font-size:.9rem;color:var(--ink);cursor:pointer}
@media (max-width:1180px){
  .menu-btn{display:block}
  nav.main{display:none;position:absolute;left:0;right:0;top:100%;background:var(--paper);border-bottom:1px solid var(--line);padding:12px 24px 20px}
  nav.main.open{display:block}
  nav.main ul{flex-direction:column;align-items:stretch}
  nav.main li.sep{width:auto;height:1px;margin:8px 0}
}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;padding:90px 0 80px}
.hero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center;position:relative}
.hero h1{margin-top:.2em}
.hero .big-cn{position:absolute;right:3%;top:40px;font-family:var(--brush);font-size:200px;color:var(--ink);opacity:.035;line-height:1;pointer-events:none;writing-mode:vertical-rl}
.hero .lead{font-size:1.2rem;color:var(--ink-soft)}
.enso{position:absolute;left:-90px;top:10px;width:520px;height:520px;opacity:.07;pointer-events:none}
.hero-media{position:relative;border-radius:var(--radius);overflow:hidden}
@media (max-width:820px){.hero{padding:56px 0 40px}.hero .wrap{grid-template-columns:1fr;gap:30px}.hero .big-cn{font-size:130px}.enso{width:340px;height:340px;left:-60px}}
.lead{font-size:1.15rem;color:var(--ink-soft)}
.btns{display:flex;gap:14px;flex-wrap:wrap;margin:26px 0;align-items:center}
.btn{display:inline-block;padding:12px 26px;border-radius:999px;font-size:.98rem;letter-spacing:.02em;border:1px solid var(--tea);background:var(--tea);color:#fff;cursor:pointer;transition:background .35s var(--ease),color .35s,transform .35s var(--ease)}
.btn:hover{background:var(--tea-dark);border-color:var(--tea-dark);color:#fff;transform:translateY(-1px)}
.btn.ghost{background:transparent;color:var(--tea-dark)}
.btn.ghost:hover{background:var(--tea);color:#fff}
.btn.jade{background:var(--tea)}
.btn.text{background:none;border:0;border-bottom:1px solid var(--tea);border-radius:0;padding:4px 0;color:var(--tea-dark)}
.seal{display:inline-block;border:1px solid var(--seal);color:var(--seal);font-family:var(--brush);padding:1px 8px;border-radius:3px;transform:rotate(-2deg);font-size:.95rem;opacity:.85}

/* ---------- sections & panels ---------- */
section.block{padding:84px 0}
section.alt{background:linear-gradient(var(--paper-2),var(--paper-2));border:0}
.grid{display:grid;gap:30px}
.g2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.g4{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.card{background:var(--card);border:0;border-radius:var(--radius);padding:28px 28px 24px;position:relative;transition:transform .5s var(--ease),background .5s}
section.alt .card{background:rgba(250,247,240,.7)}
.card h3{margin-top:.1em}
.card .icon{font-family:var(--brush);font-size:1.9rem;color:var(--clay);line-height:1;opacity:.75;margin-bottom:.3em}
.card.link{color:inherit;display:block;border:0}
.card.link:hover{transform:translateY(-3px);background:#fdfbf6;color:inherit}
.quiet{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:40px 48px}
.quiet .icon{font-family:var(--brush);font-size:2.4rem;color:var(--clay);opacity:.6;line-height:1}
.quiet h3{margin:.4em 0 .2em}
.quiet p{font-size:.98rem;color:var(--ink-soft)}
.pill{display:inline-block;font-size:.74rem;padding:2px 11px;border-radius:999px;background:var(--tea-light);color:var(--tea-dark);margin:3px 5px 3px 0;border:0;letter-spacing:.02em}
.pill.red{background:#f1e0d8;color:#86412b}
.pill.gold{background:#ece3d2;color:#6e563e}
.note{background:rgba(227,230,212,.55);border-left:2px solid var(--tea);padding:14px 20px;border-radius:0 12px 12px 0;font-size:.97rem;max-width:none}
.callout{background:var(--tea-light);color:var(--ink);border-radius:28px;padding:64px 30px;text-align:center}
.callout h2{margin-top:0}
.callout .btn.ghost{color:var(--tea-dark)!important;border-color:var(--tea)!important}
ul.check{list-style:none;padding:0;max-width:var(--text)}
ul.check li{padding-left:30px;position:relative;margin:.55em 0}
ul.check li:before{content:"";position:absolute;left:4px;top:.75em;width:9px;height:9px;border-radius:50%;border:1.5px solid var(--tea)}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
@media (max-width:800px){.two-col{grid-template-columns:1fr;gap:30px}}

/* ---------- breathing pause ---------- */
.breathe{padding:90px 0;text-align:center}
.breathe .orb{width:150px;height:150px;margin:0 auto 26px;border-radius:50%;
  background:radial-gradient(circle at 50% 45%,rgba(95,111,69,.28),rgba(95,111,69,.08) 60%,transparent 72%);
  animation:breathe 10s ease-in-out infinite}
.breathe .words{font-family:var(--serif);font-size:1.25rem;color:var(--ink-soft);height:1.6em;position:relative}
.breathe .words span{position:absolute;left:0;right:0;animation:words 10s ease-in-out infinite;opacity:0}
.breathe .words span+span{animation-delay:5s}
@keyframes breathe{0%,100%{transform:scale(.72)}50%{transform:scale(1.12)}}
@keyframes words{0%{opacity:0}10%,40%{opacity:1}50%,100%{opacity:0}}

/* ---------- video ---------- */
.video{background:var(--card);border-radius:var(--radius);overflow:hidden}
.video .thumb{position:relative;aspect-ratio:16/9;background:#3a342e;cursor:pointer;overflow:hidden}
.video .thumb img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease);filter:saturate(.9)}
.video .thumb:hover img{transform:scale(1.03)}
.video .thumb:after{content:"";position:absolute;left:50%;top:50%;width:62px;height:62px;margin:-31px 0 0 -31px;border-radius:50%;
  background:rgba(244,240,230,.85) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 7l8 5-8 5z' fill='%235f6f45'/%3E%3C/svg%3E") 55% 50%/26px no-repeat;transition:transform .4s var(--ease)}
.video .thumb:hover:after{transform:scale(1.08)}
.video .thumb iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video .thumb:has(iframe):after{display:none}
.video .body{padding:18px 22px 20px}
.video h3{font-size:1.06rem;margin:.1em 0 .3em;line-height:1.4}

/* ---------- forms ---------- */
form.fis{max-width:820px}
form.fis label{display:block;font-weight:500;margin:16px 0 6px;font-size:.97rem}
form.fis .hint{font-weight:normal;color:var(--ink-soft);font-size:.85rem}
form.fis input[type=text],form.fis input[type=email],form.fis input[type=tel],form.fis select,form.fis textarea{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:12px;font:inherit;font-size:1rem;background:#fdfbf6;color:var(--ink);transition:border-color .3s,box-shadow .3s}
form.fis input:focus,form.fis select:focus,form.fis textarea:focus{outline:0;border-color:var(--tea);box-shadow:0 0 0 4px rgba(95,111,69,.12)}
form.fis textarea{min-height:120px}
form.fis fieldset{border:0;border-radius:var(--radius);padding:12px 28px 26px;margin:22px 0;background:var(--card)}
form.fis legend{font-family:var(--serif);font-size:1.15rem;padding:16px 0 0;color:var(--ink)}
form.fis .opts{display:flex;flex-wrap:wrap;gap:4px 22px}
form.fis .opts label{font-weight:normal;margin:4px 0;display:flex;gap:8px;align-items:center}
form.fis input[type=checkbox]{accent-color:var(--tea);width:17px;height:17px}
.hp{position:absolute;left:-5000px;width:1px;height:1px;overflow:hidden}
.captcha-row{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.captcha-row img{border:1px solid var(--line);border-radius:10px;background:#fff}
.alert{padding:14px 18px;border-radius:12px;margin:14px 0;display:none}
.alert.show{display:block}
.alert.err{background:#f3e1d8}
.alert.ok{background:var(--tea-light)}

/* ---------- tables & lists (encyclopedia) ---------- */
table.data{width:100%;border-collapse:collapse;font-size:.95rem;background:transparent}
table.data th,table.data td{border:0;border-bottom:1px solid var(--line);padding:12px 14px;vertical-align:top;text-align:left}
table.data th{font-family:var(--serif);font-weight:400;color:var(--ink-soft);background:transparent}
table.data tr:hover td{background:rgba(250,247,240,.7)}
.table-scroll{overflow-x:auto}
ol.form-list{padding-left:0;list-style:none;max-width:860px}
ol.form-list li{display:grid;grid-template-columns:52px 1fr auto;gap:14px;padding:11px 12px;border-bottom:1px solid var(--line);align-items:baseline;border-radius:10px;transition:background .3s}
ol.form-list li:hover{background:var(--card)}
ol.form-list .n{font-family:var(--serif);color:var(--clay);text-align:right}
ol.form-list .py{color:var(--ink-soft);font-style:italic;font-size:.9rem}
a.move{border-bottom:1px dashed var(--tea)}
a.move:hover{background:rgba(227,230,212,.6);border-bottom-style:solid}

.controls{display:flex;flex-wrap:wrap;gap:14px;align-items:end;background:var(--card);border:0;border-radius:var(--radius);padding:18px 22px;margin:22px 0}
.controls label{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;display:flex;flex-direction:column;gap:5px;color:var(--ink-soft)}
.controls input,.controls select{padding:9px 12px;border:1px solid var(--line);border-radius:999px;font:inherit;font-size:.95rem;letter-spacing:0;text-transform:none;background:#fdfbf6;min-width:160px;color:var(--ink)}
.controls .count{margin-left:auto;font-size:.88rem;color:var(--ink-soft)}
.az{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0}
.az a{display:inline-block;min-width:32px;text-align:center;padding:3px 6px;border:0;border-radius:999px;font-family:var(--serif);color:var(--ink-soft)}
.az a:hover{background:var(--tea-light);color:var(--ink)}
.az a.off{opacity:.25;pointer-events:none}
.group-h{font-family:var(--serif);font-size:1.45rem;border:0;margin:48px 0 14px;padding:0}
.group-h:after{content:"";display:block;width:44px;height:1px;background:var(--clay);margin-top:10px;opacity:.6}
.group-h .cn{font-size:1rem;margin-left:8px}
.crumbs{font-size:.84rem;margin:28px 0 0;color:var(--ink-soft);letter-spacing:.02em}
.crumbs a{color:var(--ink-soft);border:0}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.tabs a.pill{font-size:.86rem!important;padding:6px 14px!important}
.tabs button{border:1px solid var(--line);background:transparent;padding:7px 16px;border-radius:999px;cursor:pointer;font:inherit;font-size:.9rem}
.tabs button.on{background:var(--tea);color:#fff;border-color:var(--tea)}

/* ---------- movement figure & hover preview ---------- */
#move-pop{position:fixed;z-index:999;width:290px;background:var(--card);border:0;border-radius:20px;box-shadow:0 18px 50px rgba(60,45,30,.18);padding:16px 16px 14px;display:none;pointer-events:none}
#move-pop h4{margin:0 0 2px;font-size:1rem}
#move-pop .cn{font-size:.95rem}
#move-pop svg{width:100%;height:170px;background:radial-gradient(circle at 50% 40%,#fbf8f1,#efe8d8);border-radius:14px;margin:8px 0}
#move-pop p{font-size:.84rem;margin:0;color:var(--ink-soft);line-height:1.6}
.figure-stage svg{width:100%;max-width:340px;height:auto;background:radial-gradient(circle at 50% 40%,#fbf8f1,#ece4d2);border-radius:24px}

/* ---------- atlas ---------- */
.atlas{display:grid;grid-template-columns:1fr 340px;gap:24px}
@media (max-width:900px){.atlas{grid-template-columns:1fr}}
.map-box{position:relative;background:#dfe4da;border-radius:var(--radius);overflow:hidden;touch-action:none}
.map-box svg{width:100%;height:auto;display:block;cursor:grab}
.map-box path{fill:#f3eee2;stroke:#cdbfa3;stroke-width:.35}
.map-box path:hover{fill:#ebe3cf}
.map-box circle.pin{fill:var(--seal);stroke:#fff;stroke-width:.8;cursor:pointer;opacity:.85}
.map-box circle.pin.hl{fill:var(--tea);opacity:1}
.map-zoom{position:absolute;right:12px;top:12px;display:flex;flex-direction:column;gap:6px}
.map-zoom button{width:34px;height:34px;border-radius:50%;border:0;background:rgba(250,247,240,.92);font-size:1.1rem;cursor:pointer;color:var(--ink)}
.panel{background:var(--card);border-radius:var(--radius);padding:18px;max-height:640px;overflow:auto}
.teacher{border-bottom:1px solid var(--line);padding:12px 8px;cursor:pointer;border-radius:10px}
.teacher:hover{background:#fdfbf6}
.teacher.sel{background:var(--tea-light)}

/* ---------- footer ---------- */
footer.site{background:#3b342d;color:#d8cfbf;margin-top:80px;padding:56px 0 28px;font-size:.92rem}
footer.site a{color:#e9dcc2;border-color:rgba(233,220,194,.25)}
footer.site a:hover{color:#fff}
footer.site .cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:30px}
footer.site h4{color:#f4ede0;margin-top:0;font-size:1.05rem}
footer.site .btn{background:transparent;border-color:#cfc3ab;color:#f4ede0!important}
footer.site .btn:hover{background:#f4ede0;color:#3b342d!important}
footer.site .fine{border-top:1px solid rgba(255,255,255,.1);margin-top:30px;padding-top:18px;font-size:.8rem;color:#a99f8e}
footer.site .fine p,footer.site p{max-width:none}

/* ---------- gentle reveal on scroll ---------- */
.reveal{opacity:0;transform:translateY(18px);transition:opacity 1.2s var(--ease),transform 1.2s var(--ease)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
@media print{header.site,footer.site,.topbar,nav{display:none}body{background:#fff}}
.legend .dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:4px;vertical-align:middle}
.map-box circle.pin.hl{stroke:#2f2a25;stroke-width:1.4}
.brand img{width:48px;height:48px;border-radius:50%;flex:none;mix-blend-mode:multiply}
.fig-controls{display:flex;gap:10px;justify-content:center;align-items:center;flex-wrap:wrap;margin-top:10px;font-size:.85rem;color:var(--ink-soft)}
.fig-controls button{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:5px 14px;cursor:pointer;font:inherit;color:var(--ink)}
.fig-controls button:hover{border-color:var(--tea)}
.fig-controls input{accent-color:var(--tea);vertical-align:middle}
.figure-stage svg{max-width:380px}
#move-pop svg{height:190px}

/* --- photos & step lists (added v3) --- */
figure.photo{margin:0 0 18px;background:var(--card);border-radius:var(--radius);overflow:hidden}
figure.photo img{display:block;width:100%;max-height:340px;object-fit:cover;filter:saturate(.92) sepia(.06)}
figure.photo figcaption{font-size:.74rem;color:var(--ink-soft);padding:8px 14px;line-height:1.45}
figure.photo figcaption a{color:inherit}
ol.steps{counter-reset:st;list-style:none;padding:0;margin:0 0 1.2em}
ol.steps li{counter-increment:st;position:relative;padding:.55em 0 .55em 2.6em;border-bottom:1px dotted rgba(0,0,0,.12)}
ol.steps li:before{content:counter(st);position:absolute;left:0;top:.5em;width:1.8em;height:1.8em;border-radius:50%;background:var(--tea);color:#fff;font-size:.8rem;display:flex;align-items:center;justify-content:center}

/* =====================================================================
   ROOTS SECTIONS – each has its own temple atmosphere
   ===================================================================== */
/* ---------- shared pieces ---------- */
.subnav{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 6px}
.subnav a{border:1px solid var(--line);border-radius:999px;padding:5px 15px;font-size:.88rem;color:var(--ink-soft)}
.subnav a.on,.subnav a:hover{background:var(--tea);border-color:var(--tea);color:var(--btn-ink,#fff)}
.gate{position:relative;border-radius:26px;padding:42px 34px 34px;overflow:hidden;display:block;border:0;color:inherit;min-height:260px;transition:transform .6s var(--ease)}
.gate:hover{transform:translateY(-4px);color:inherit}
.gate h3{font-size:1.7rem;margin:.2em 0 .3em}
.gate .cn{font-size:4.4rem;position:absolute;right:26px;top:6px;opacity:.22}
.gate p{max-width:34ch}
.gate.dao{background:radial-gradient(circle at 80% 10%,#2b3b4a,#121b24 70%);color:#ece4cf}
.gate.dao h3{color:#ecd9a0}.gate.dao .cn{color:#d9b55c;opacity:.35}
.gate.dao .go{color:#e6c46c}
.gate.bud{background:radial-gradient(circle at 80% 10%,#f6d9a0,#e9b464 75%);color:#4a1c14}
.gate.bud h3{color:#5c1d16}.gate.bud .cn{color:#7a2a1f}
.gate.bud .go{color:#7a2a1f}
.gate .go{font-size:.95rem;letter-spacing:.04em}
.timeline{list-style:none;padding:0;margin:20px 0;border-left:2px solid var(--line)}
.timeline li{position:relative;padding:4px 0 22px 28px;max-width:none}
.timeline li:before{content:"";position:absolute;left:-7px;top:12px;width:12px;height:12px;border-radius:50%;background:var(--paper);border:2px solid var(--tea)}
.timeline li.founder:before{background:var(--seal);border-color:var(--seal)}
.timeline li.text:before{background:var(--clay);border-color:var(--clay)}
.timeline li.school:before{background:var(--tea);}
.timeline .when{font-family:var(--serif);color:var(--clay);font-size:.95rem;display:block}
.legend-row{display:flex;flex-wrap:wrap;gap:16px;font-size:.85rem;color:var(--ink-soft);margin:6px 0 14px}
.legend-row i{display:inline-block;width:11px;height:11px;border-radius:50%;margin-right:6px;vertical-align:-1px}
.school{border-top:1px solid var(--line);padding:26px 0}
.school h3{margin:0 0 .2em;font-size:1.45rem}
.school dl{display:grid;grid-template-columns:140px 1fr;gap:6px 18px;margin:12px 0 0;font-size:.95rem}
.school dt{color:var(--ink-soft);font-family:var(--serif)}
.school dd{margin:0}
.textrow{display:grid;grid-template-columns:1fr auto;gap:14px;border-bottom:1px solid var(--line);padding:16px 0}
.textrow h4{margin:0;font-size:1.12rem}
.textrow .acts{display:flex;flex-wrap:wrap;gap:6px;align-items:flex-start;justify-content:flex-end}
.textrow .acts a{font-size:.82rem;border:1px solid var(--line);border-radius:999px;padding:3px 12px;white-space:nowrap}
.textrow .acts a.primary{background:var(--tea);border-color:var(--tea);color:var(--btn-ink,#fff)}
.vid-detail{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:26px;padding:26px 0;border-bottom:1px solid var(--line)}
.vid-detail h3{margin-top:0}
.vid-detail dl{display:grid;grid-template-columns:110px 1fr;gap:4px 12px;font-size:.92rem;margin:10px 0}
.vid-detail dt{color:var(--ink-soft)}
.vid-detail dd{margin:0}
.globe-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:28px;align-items:start}
.globe-wrap{position:relative;max-width:640px;margin:0 auto;touch-action:none;user-select:none}
.globe-wrap canvas{display:block;cursor:grab}
.globe-ctrls{position:absolute;right:6px;top:6px;display:flex;flex-direction:column;gap:6px}
.globe-ctrls button{width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--ink);font-size:1.05rem;cursor:pointer}
.globe-tip{position:absolute;pointer-events:none;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:3px 9px;font-size:.8rem;opacity:0;transition:opacity .2s;white-space:nowrap}
#place-detail{background:var(--card);border-radius:var(--radius);padding:22px;position:sticky;top:96px;min-height:200px}
#place-detail:not(.show) .ph{display:none}
.place-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;margin-top:20px}
.place-card{background:var(--card);border-radius:16px;padding:18px 20px;border:1px solid transparent;transition:border-color .3s}
.place-card.on{border-color:var(--seal)}
.place-card h4{margin:0 0 .2em;font-size:1.08rem}
.place-card .meta{font-size:.82rem;color:var(--ink-soft)}
.place-card p{font-size:.92rem;margin:.5em 0}
.place-card img{width:100%;height:170px;object-fit:cover;border-radius:10px;margin:8px 0 4px;background:var(--paper-2)}
.place-card .cr{font-size:.7rem;color:var(--ink-soft)}
.place-card .links a{font-size:.85rem;margin-right:12px}
.reader{max-width:72ch;margin:0 auto;font-family:var(--serif);font-size:1.12rem;line-height:1.95}
.reader h2,.reader h3{text-align:center}
.reader .chapter{padding:34px 0;border-bottom:1px solid var(--line)}
.reader .chapter h3{font-size:1.25rem;margin:0 0 .8em}
.reader .chapter h3 .cn{margin-left:8px}
.reader blockquote,.reader .poem{margin:1em 0 1em 1.5em;white-space:pre-line;font-style:italic}
.reader img{display:none}
.chapnav{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:18px 0}
.chapnav a{width:38px;text-align:center;border:1px solid var(--line);border-radius:8px;font-size:.85rem;padding:2px 0}
.dl-box{background:var(--card);border-radius:var(--radius);padding:22px 24px;margin:24px 0}
.sutra-cn{font-family:var(--brush);font-size:1.5rem;line-height:2.2;text-align:center;letter-spacing:.12em}
@media (max-width:860px){.globe-layout,.vid-detail{grid-template-columns:1fr}#place-detail{position:static}.school dl{grid-template-columns:1fr}.textrow{grid-template-columns:1fr}.textrow .acts{justify-content:flex-start}}

/* ---------- DAOISM: a mountain temple at dusk – ink-blue night, vermilion pillars, gold leaf, jade tiles ---------- */
body.theme-dao{
  --paper:#111a22; --paper-2:#17232d; --card:#1a2731; --ink:#ebe3cf; --ink-soft:#a9a28f;
  --tea:#c9a24a; --tea-dark:#e1bd63; --tea-light:#22313c; --clay:#d9774f; --seal:#c8402f; --line:#2c3b47;
  --btn-ink:#16110a;
  --globe-sea:#0d151c; --globe-land:#2b3d36; --globe-line:rgba(220,200,150,.22); --globe-pin:#c8402f; --globe-pin-hl:#f1d27a; --globe-label:#f1e4c0; --globe-halo:rgba(201,162,74,.25);
  background:radial-gradient(1200px 600px at 70% -10%,#1d2c38 0%,transparent 60%),radial-gradient(900px 500px at 0% 30%,#16242a 0%,transparent 60%),#111a22;
}
body.theme-dao header.site{background:rgba(17,26,34,.9)}
body.theme-dao .btn{color:#16110a}
body.theme-dao .btn:hover{color:#16110a;background:#e1bd63}
body.theme-dao .btn.ghost{color:var(--tea-dark);background:transparent}
body.theme-dao nav.main a.cta:hover{color:#16110a}
body.theme-dao a{border-bottom-color:rgba(201,162,74,.3)}
body.theme-dao .note{background:rgba(201,162,74,.08)}
body.theme-dao .card.link:hover,body.theme-dao .teacher:hover{background:#203040}
body.theme-dao table.data tr:hover td{background:rgba(255,255,255,.03)}
body.theme-dao .pill.red{background:#3a1f1a;color:#f0b09a}
body.theme-dao .pill.gold{background:#3a3220;color:#ecd08b}
body.theme-dao footer.site{background:#0b1117}
body.theme-dao .dao-hero{position:relative;padding:70px 0 40px;overflow:hidden}
body.theme-dao .dao-hero:before{content:"";position:absolute;inset:auto -10% 0 -10%;height:220px;background:
  radial-gradient(60% 120px at 20% 100%,rgba(43,61,54,.9),transparent 70%),radial-gradient(50% 160px at 70% 100%,rgba(35,52,46,.85),transparent 70%);pointer-events:none}
body.theme-dao .dao-hero .bagua{position:absolute;right:4%;top:30px;width:300px;opacity:.16;animation:fis-spin 240s linear infinite}
body.theme-dao h1,body.theme-dao h2{color:#f1e4c0}
body.theme-dao .eyebrow{color:#d9774f}
body.theme-dao .pillars{height:8px;background:linear-gradient(90deg,#8e2a20,#c8402f 20%,#8e2a20 21%,#8e2a20 79%,#c8402f 80%,#8e2a20);border-radius:4px;opacity:.75;margin:30px 0}
@keyframes fis-spin{to{transform:rotate(360deg)}}

/* ---------- BUDDHISM: a temple hall in morning light – saffron, maroon robes, gold leaf, lotus ---------- */
body.theme-bud{
  --paper:#fbf3e3; --paper-2:#f5e6c9; --card:#fffaf0; --ink:#3b1d14; --ink-soft:#7b5a46;
  --tea:#9a2f22; --tea-dark:#7a2318; --tea-light:#f6e2bd; --clay:#c47a1d; --seal:#9a2f22; --line:#ecd9b4;
  --globe-sea:#f3e2c0; --globe-land:#e7b45c; --globe-line:rgba(122,35,24,.25); --globe-pin:#9a2f22; --globe-pin-hl:#3b1d14; --globe-label:#3b1d14; --globe-halo:rgba(231,180,92,.35);
  background:radial-gradient(1100px 500px at 50% -15%,#fde7b8 0%,transparent 60%),#fbf3e3;
}
body.theme-bud header.site{background:rgba(251,243,227,.9)}
body.theme-bud a{border-bottom-color:rgba(154,47,34,.3)}
body.theme-bud .note{background:rgba(231,180,92,.15);border-left-color:var(--clay)}
body.theme-bud .card.link:hover{background:#fff4dc}
body.theme-bud .pill{background:#f6e2bd;color:#7a2318}
body.theme-bud footer.site{background:#4a1c14}
body.theme-bud .bud-hero{position:relative;padding:70px 0 40px;overflow:hidden}
body.theme-bud .bud-hero .lotus{position:absolute;right:3%;top:24px;width:320px;opacity:.2}
body.theme-bud h1,body.theme-bud h2{color:#5c1d16}
body.theme-bud .eyebrow{color:#c47a1d}
body.theme-bud .pillars{height:6px;background:linear-gradient(90deg,transparent,#c9962f,#e7b45c,#c9962f,transparent);margin:30px 0;opacity:.8}
#place-detail h4{margin:0 0 .2em;font-size:1.15rem}
#place-detail .meta{font-size:.82rem;color:var(--ink-soft)}
#place-detail p{font-size:.93rem;margin:.5em 0}
#place-detail img{width:100%;max-height:230px;object-fit:cover;border-radius:10px;margin:8px 0 4px;background:var(--paper-2)}
#place-detail .cr{font-size:.7rem;color:var(--ink-soft)}
#place-detail .links a{font-size:.85rem;margin-right:12px}
body.theme-dao .brand img{background:#efe6cf;border-radius:50%;padding:2px}
/* ---- location home pages: a mild change of season ---- */
body.city-denver{--tea:#8a5a3c;--tea-dark:#6e4329;--tea-light:#efe1d2;--clay:#b0703f;--paper:#f6efe6}
body.city-denver header.site{background:rgba(246,239,230,.9)}
body.city-denver .hero:after{content:"";position:absolute;left:0;right:0;bottom:0;height:90px;pointer-events:none;opacity:.12;background:
 linear-gradient(135deg,transparent 48%,#6e4329 49%) 0 100%/180px 90px repeat-x,linear-gradient(225deg,transparent 48%,#6e4329 49%) 0 100%/180px 90px repeat-x}
body.city-twin{--tea:#3d6b80;--tea-dark:#2c5163;--tea-light:#dde9ee;--clay:#5f7f8c;--paper:#f1f3f0}
body.city-twin header.site{background:rgba(241,243,240,.9)}
body.city-twin .hero:after{content:"";position:absolute;left:0;right:0;bottom:0;height:60px;pointer-events:none;opacity:.12;background:
 radial-gradient(40px 10px at 50% 100%,#2c5163 98%,transparent) 0 100%/120px 30px repeat-x,radial-gradient(40px 10px at 50% 100%,#2c5163 98%,transparent) 60px 70%/120px 30px repeat-x}
