/* Site-specific bridge: source handouts remain untouched; this layer is regenerated. */
:root {
  --bg: var(--paper); --bg2: var(--paper-2); --bg3: var(--paper-2); --paper-bg: var(--paper);
  --paper-light: var(--paper); --paper-card: var(--paper-2); --paper-deep: var(--paper-2);
  --paper-dim: var(--ink-2); --dim: var(--ink-2); --ink2: var(--ink-2); --ink-4: var(--ink-3);
  --gold: hsl(var(--accent)); --gold-b: hsl(var(--accent)); --gold-bright: hsl(var(--accent));
  --gold-d: var(--line); --gold-dim: var(--line); --gold-light: var(--line);
  --vermilion: hsl(var(--accent)); --vermilion-dark: var(--accent-deep); --vermilion-light: hsl(var(--accent));
  --ochre: var(--ink-2); --navy: var(--paper-2); --navy2: var(--paper-2);
  --serif: var(--font-serif); --sans: var(--font-sans); --mono: var(--font-mono);
}
html { scroll-behavior: smooth; }
body { padding-top: var(--header-height); background: var(--paper); color: var(--ink); font-family: var(--serif); }
body::before { display: none; }
* { box-sizing: border-box; }
a,button { touch-action: manipulation; }
:focus-visible { outline: 2px solid hsl(var(--accent)); outline-offset: 5px; }
:target { scroll-margin-top: calc(var(--header-height) + 24px); }
h1,h2,h3 { color: var(--ink); font-weight: 650; letter-spacing: .025em; }
p { overflow-wrap: anywhere; }
.site-nav,.site-nav.light { position: fixed; inset: 0 0 auto; height: var(--header-height); z-index: 100; background: var(--paper); border-bottom: 1px solid var(--line); color: var(--ink); font-family: var(--font-sans); }
.site-nav-inner { max-width: var(--site-width); height:100%; margin:auto; padding:0 var(--page-gutter); display:flex; align-items:center; gap:24px; }
.sn-brand { flex:none; text-decoration:none; line-height:1.5; }
.sn-brand-zh { display:block; font-family:var(--font-serif); font-size:20px; font-weight:650; letter-spacing:.035em; color:var(--ink); }
.sn-brand-en { display:block; font-family:var(--font-mono); font-size:8px; letter-spacing:.14em; color:var(--ink-2); }
.sn-links { display:flex; gap:23px; margin-left:auto; align-items:center; }
.sn-links a,.sn-panel a { font-size:14px; font-weight:500; text-decoration:none; color:var(--ink-2); padding:8px 0; border-bottom:1px solid transparent; white-space:nowrap; }
.sn-links a:hover,.sn-links a.cur,.sn-panel a.cur { color:hsl(var(--accent)); border-bottom-color:hsl(var(--accent)); }
.sn-theme,.sn-burger { width:36px; height:40px; padding:8px; background:none; border:0; cursor:pointer; color:var(--ink); flex-shrink:0; }
.sn-theme { font-size:19px; }
.sn-burger { display:none; }
.sn-burger span { display:block; height:1px; background:currentColor; margin:5px 0; }
.sn-panel { display:none; }
.sn-panel[hidden] { display:none; }
.site-footer,.site-footer.light { background:var(--footer-bg); color:var(--footer-ink); border-top:1px solid var(--line); text-align:left; margin-top:64px; }
.sf-inner { max-width:var(--site-width); margin:auto; padding:52px var(--page-gutter) 24px; }
.sf-top { display:flex; justify-content:space-between; gap:60px; }
.sf-brand { max-width:390px; }
.sf-latin { font:11px var(--font-mono); letter-spacing:.12em; color:var(--ink-2); margin:0 0 16px; }
.sf-quote { font-family:var(--font-serif); font-size:22px; font-weight:600; color:var(--ink); line-height:1.8; margin:0; }
.sf-tagline { color:var(--ink-2); font-size:14px; }
.sf-cols { display:flex; gap:48px; }
.sf-col { display:flex; flex-direction:column; font-family:var(--font-sans); }
.sf-col-t { font-size:11px; color:var(--ink-2); letter-spacing:.12em; margin-bottom:14px; }
.sf-col a,.sf-col .t { color:var(--ink-2); text-decoration:none; font-size:13px; line-height:2.7; overflow-wrap:anywhere; }
.sf-bottom { display:flex; justify-content:space-between; gap:20px; margin-top:36px; border-top:1px solid var(--line); padding-top:20px; color:var(--ink-2); font:11px/1.8 var(--font-sans); }
.head,.list,.wp,.how { max-width:var(--site-width); padding-inline:var(--page-gutter); }
.head { padding-top:64px; }
.wrap { max-width:760px; padding-inline:var(--page-gutter); }
.sub-en,.en { font-style:normal; }
.card,.quote,.give .g,.book,.qcard,.qa,.story,.item,.how .box { background:var(--paper-2); border-color:var(--line); border-radius:2px; box-shadow:none; }
.list .card { background:transparent; }
.card.soon { opacity:.7; }
.card .badge,.card .tags span,.back,.tag { border-radius:2px; }
.card.light { background:var(--paper-2); color:var(--ink); }
.card.light .small { color:var(--ink-2); }
.card.light strong,.card.light .tag { color:hsl(var(--accent)); }
.sutra { background:var(--paper-2); border-radius:0; }
.wp-strip img { border-radius:2px; box-shadow:none; }
.btn,.tabbar a.cur { background:hsl(var(--accent)); color:hsl(var(--accent-foreground)); border:1px solid hsl(var(--accent)); border-radius:2px; box-shadow:none; }
.btn.ghost { background:transparent; color:hsl(var(--accent)); }
.tabbar { background:var(--paper); border-color:var(--line); border-radius:2px; box-shadow:none; }
.tabbar a { color:var(--ink-2); }
input,textarea,select { color:var(--ink); background:var(--paper); border-color:var(--line); border-radius:2px; }
.gate,.gate-box,.modal { background:var(--paper); color:var(--ink); }
.hero { min-height:440px; }
.hero .hint { animation:none; }
.hero .brand::before,.hero .brand::after,.brand::after,.divider::before,.divider::after { background:var(--line); }
@media(max-width:1000px) {
  .sn-links { display:none; } .sn-theme { margin-left:auto; } .sn-burger { display:block; }
  .sn-panel:not([hidden]) { display:grid; grid-template-columns:1fr 1fr; gap:8px 30px; padding:20px var(--page-gutter); background:var(--paper); border-bottom:1px solid var(--line); max-height:calc(100dvh - var(--header-height)); overflow-y:auto; }
  .sn-panel a { padding:12px 0; }
  .sf-top { flex-direction:column; gap:32px; }
}
@media(max-width:640px) {
  .sn-brand-zh { font-size:18px; } .sn-brand-en { font-size:7px; }
  .site-nav-inner { gap:8px; }
  .head { padding-top:44px; } .head h1 { font-size:36px; }
  .hero { min-height:360px; }
  .sf-cols { flex-wrap:wrap; gap:28px; } .sf-bottom { flex-direction:column; gap:8px; }
  .sf-quote { font-size:20px; }
  .card .row { flex-wrap:wrap; }
  .card .badge { margin-left:0; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation:none!important; transition:none!important; } .reveal { opacity:1!important; transform:none!important; } }
