/* ---- 00-base.css ---- */
/* ICONS v2 "Eastern" — shared stylesheet. Dark base, museum-catalogue editorial, vermilion seal accent. */

:root{
  --dev-serif:'Icons Dev Mini';--dev-sans:'Icons Dev Mini';
  --paper:#111110; --paper-2:#1A1917; --card:#171614; --ink:#EEEAE0; --ink-2:#C9C4B8; --muted:#9A958A;
  --rule:rgba(238,234,224,.14); --rule-strong:rgba(238,234,224,.8);
  --seal:#C8102E; --seal-hi:#EE4A5F; --seal-soft:rgba(224,36,63,.12);
  --rice:#E9E1CE; --rice-ink:#1B1915; --rice-muted:#6F675A; --sepia:#B7A98C;
  --pad:80px;
  --display:'Instrument Serif',var(--dev-serif),Georgia,'Times New Roman',serif;
  --sans:'Inter',var(--dev-sans),system-ui,-apple-system,'Segoe UI',sans-serif;
  --mono:'JetBrains Mono',var(--dev-sans),ui-monospace,SFMono-Regular,Menlo,monospace;
  --sc:'Noto Serif CJK SC','Source Han Serif SC','Source Han Serif','Songti SC','STSong','SimSun',serif;
  --seal-font:'Icons Seal','Noto Serif CJK SC','Songti SC',serif;
  --brush:'Ma Shan Zheng','STKaiti','KaiTi','Noto Serif CJK SC','Songti SC',serif;
  --dev:var(--dev-serif),'Noto Serif CJK SC',serif;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{background:var(--paper);color:var(--ink);scroll-behavior:smooth}
body{font-family:var(--sans);font-size:16px;line-height:1.55;color:var(--ink-2);-webkit-font-smoothing:antialiased;overflow-x:hidden;background:var(--paper)}
img,svg{display:block;max-width:100%}
button,input{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0}
a{color:inherit;text-decoration:none}
::selection{background:var(--seal);color:#fff}
.zh{font-family:var(--sc)}
.dev{font-family:var(--dev)}
.brush{font-family:var(--brush);font-weight:400}
.wrap{max-width:1440px;margin:0 auto;padding-left:var(--pad);padding-right:var(--pad);position:relative}
.eyebrow{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.eyebrow b{color:var(--seal-hi);font-weight:500}
.eyebrow .zh{letter-spacing:.2em}
.h1,.h2,.h3{font-family:var(--display);font-weight:400;color:var(--ink);letter-spacing:-.02em}
.h1{font-size:112px;line-height:.94}
.h2{font-size:64px;line-height:1}
.h3{font-size:36px;line-height:1.05}
.h1 em,.h2 em,.h3 em{font-style:italic;color:var(--seal-hi)}
.lede{font-size:19px;line-height:1.55;color:var(--ink-2);max-width:560px}
.mono{font-family:var(--mono)}
.muted{color:var(--muted)}
.red{color:var(--seal-hi)}

/* ——— textures ——— */
.grain{position:fixed;inset:0;pointer-events:none;z-index:9999;opacity:.07;mix-blend-mode:overlay;
  background-image:url("/assets/tex/grain.webp")}
/* ink-wash vignettes on the dark page */
.ink-wash{position:absolute;pointer-events:none;border-radius:50%;filter:blur(60px);background:radial-gradient(closest-side,rgba(238,234,224,.06),transparent)}
/* rice paper surface: warm fibre paper with mottling */
.rice{background-color:var(--rice);color:var(--rice-ink);
  background-image:
   url("/assets/tex/fibre.webp"),
   radial-gradient(120% 90% at 20% 10%,rgba(255,255,255,.3),transparent 60%),
   radial-gradient(90% 80% at 90% 100%,rgba(120,98,60,.18),transparent 70%),
   url("/assets/tex/rice.webp");
  background-size:auto,auto,auto,1400px 1400px}
.rice .muted{color:var(--rice-muted)}
/* faint antique map */
.map-bg{position:absolute;inset:0;background:url(/assets/map-asia.svg) center/cover no-repeat;opacity:.22;pointer-events:none;
  -webkit-mask-image:radial-gradient(75% 70% at 60% 45%,#000 30%,transparent 85%);mask-image:radial-gradient(75% 70% at 60% 45%,#000 30%,transparent 85%)}
/* giant calligraphy watermark */
.callig{font-family:var(--brush);color:var(--ink);line-height:.9;filter:url(#inkBleed);user-select:none}
.callig.ghost{opacity:.06;position:absolute;pointer-events:none}
.vert{writing-mode:vertical-rl;text-orientation:upright}

/* ——— seals (rendered by v2.js from data-seal) ——— */
.seal{display:inline-block;vertical-align:middle;line-height:0;transform:rotate(-3deg)}
.seal svg{height:100%;width:auto}
.seal-lg{height:96px}.seal-md{height:64px}.seal-sm{height:40px}.seal-xs{height:26px}

/* ——— nav ——— */
.site-nav{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--paper) 84%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--rule)}
.nav-in{display:flex;align-items:center;justify-content:space-between;height:64px;gap:24px}
.brand{display:inline-flex;align-items:center;gap:10px;color:var(--ink);flex:none}
.brand-seal{width:24px;height:24px;background:var(--seal);color:#F7F0E3;font-family:var(--sc);font-weight:700;font-size:16px;line-height:24px;text-align:center;border-radius:2px;filter:url(#sealRough)}
.brand-word{font-weight:600;font-size:13px;letter-spacing:.18em}
.brand-sub{font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--muted);border-left:1px solid var(--rule);padding-left:10px}
.nav-links{display:flex;gap:26px}
.nav-links a{font-size:14px;font-weight:500;color:var(--ink-2);padding:4px 0;border-bottom:1px solid transparent;white-space:nowrap}
.nav-links a:hover{color:var(--ink)}
.nav-links a[aria-current]{color:var(--ink);border-bottom-color:var(--seal-hi)}
.nav-end{display:flex;align-items:center;gap:14px;flex:none}
.lang{display:flex;border:1px solid var(--rule);border-radius:3px;overflow:hidden}
.lang a{display:inline-flex;align-items:center;font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--ink-2);padding:0 8px;height:28px;border-left:1px solid var(--rule)}
.lang a:first-child{border-left:0}
.lang a:hover{color:var(--ink)}
.lang a[aria-current]{color:var(--ink);background:var(--seal-soft);box-shadow:inset 0 -2px 0 var(--seal-hi)}
.lang-menu{display:none;position:relative}
.lang-menu summary{list-style:none;display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:11px;color:var(--ink);border:1px solid var(--rule);border-radius:3px;height:32px;padding:0 10px;cursor:pointer}
.lang-menu summary::-webkit-details-marker{display:none}
.lang-pop{position:absolute;right:0;top:38px;min-width:150px;background:var(--paper-2);border:1px solid var(--rule);border-radius:3px;padding:6px;z-index:60;box-shadow:0 20px 40px rgba(0,0,0,.5)}
.lang-pop a{display:block;padding:9px 10px;font-size:14px;color:var(--ink-2);border-radius:2px}
.lang-pop a:hover,.lang-pop a[aria-current]{background:var(--seal-soft);color:var(--ink)}
.lang-banner{background:var(--paper-2);border-bottom:1px solid var(--rule)}
.lb-in{display:flex;align-items:center;gap:16px;min-height:52px;font-size:14px;color:var(--ink)}
.lb-in span{flex:1}
.lb-in .btn{height:32px}
.lb-x{width:32px;height:32px;font-size:20px;color:var(--ink-2)}
.skip{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--ink);color:var(--paper);padding:8px 14px;border-radius:2px}
.skip:focus{left:12px}
:focus-visible{outline:2px solid var(--seal-hi);outline-offset:3px}
.foot-h{font-family:var(--mono);font-weight:500;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);margin-bottom:14px}
.foot-langs{display:flex;flex-wrap:wrap;gap:6px 12px}
.foot-langs a{display:inline!important;margin:0!important}
.foot-langs a[aria-current]{color:var(--ink)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:36px;padding:0 14px;border-radius:2px;font-size:13px;font-weight:500;white-space:nowrap;border:1px solid var(--rule-strong);color:var(--ink)}
.btn-ink{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.btn-seal{background:var(--seal);color:#fff;border-color:var(--seal)}
.btn-ghost{border-color:var(--rule);color:var(--ink-2)}
.btn.lg{height:48px;padding:0 22px;font-size:14px}
.nav-toggle{display:none;width:36px;height:36px;border:1px solid var(--rule);border-radius:2px;flex-direction:column;align-items:center;justify-content:center;gap:5px}
.nav-toggle span{display:block;width:16px;height:1.25px;background:var(--ink)}
.nav-panel{display:none}
.nav-panel.open{display:block;border-top:1px solid var(--rule);padding:6px 0 18px}
.nav-panel a{display:block;padding:12px 0;font-size:16px;font-weight:500;color:var(--ink);border-bottom:1px solid var(--rule)}
.nav-panel .lang{margin-top:16px;width:max-content}

/* ——— forms ——— */
.sub-form{display:flex;height:52px;max-width:480px;border:1px solid var(--rule-strong);border-radius:2px;background:var(--card);overflow:hidden}
.sub-form input{flex:1;min-width:0;border:0;background:transparent;padding:0 16px;font-size:15px;color:var(--ink);outline:none}
.sub-form input::placeholder{color:var(--muted)}
.sub-form button{background:var(--ink);color:var(--paper);padding:0 20px;font-size:14px;font-weight:500;white-space:nowrap}
.sub-form.seal-btn button{background:var(--seal);color:#fff}
.sub-meta{margin-top:12px;font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}

/* ——— sections ——— */
.section{padding:120px 0;border-top:1px solid var(--rule-strong);position:relative}
.sec-head{display:grid;grid-template-columns:repeat(12,1fr);gap:28px;align-items:end;margin-bottom:48px}
.sec-head>.l{grid-column:1/8}
.sec-head>.r{grid-column:9/13}
.sec-head .eyebrow{margin-bottom:18px}
.sec-head p{font-size:15px;color:var(--ink-2)}
.card{background:var(--card);border:1px solid var(--rule);border-radius:4px;position:relative}
.tag{display:inline-flex;align-items:center;height:22px;padding:0 8px;border:1px solid var(--rule);border-radius:2px;font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.tag.red{border-color:color-mix(in srgb,var(--seal-hi) 50%,transparent);color:var(--seal-hi)}
.placeholder{border:1px dashed color-mix(in srgb,var(--ink) 30%,transparent);border-radius:4px;position:relative}
.ph-label{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#E9B44C;border:1px solid rgba(233,180,76,.45);padding:2px 7px;border-radius:2px;display:inline-block}

/* ——— footer ——— */
.site-foot{border-top:1px solid var(--rule-strong);padding:64px 0 28px;font-family:var(--mono);font-size:12px;color:var(--muted);position:relative;overflow:hidden}
.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:28px;position:relative}
.foot-grid a{display:block;margin-bottom:8px}
.foot-grid a.brand{display:inline-flex;margin-bottom:0}
.foot-grid a:hover{color:var(--ink)}
.foot-grid p{max-width:340px;line-height:1.6;margin-top:14px}
.foot-copy{display:flex;justify-content:space-between;gap:20px;margin-top:56px;padding-top:18px;border-top:1px solid var(--rule);position:relative}
.ai-note{margin-top:14px;font-size:11px;color:var(--muted);display:flex;gap:8px;align-items:baseline;position:relative}
.ai-note b{font-weight:500;color:var(--ink-2);letter-spacing:.08em}
.foot-callig{position:absolute;right:40px;top:-30px;font-size:260px;opacity:.045}

/* ——— responsive ——— */
@media (max-width:1240px){.nav-links{display:none}.nav-toggle{display:flex}.h1{font-size:92px}}
@media (max-width:900px){
  :root{--pad:32px}
  .h1{font-size:72px}.h2{font-size:48px}
  .section{padding:88px 0}
  .sec-head>.l,.sec-head>.r{grid-column:1/-1}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:720px){.nav-end .lang{display:none}.lang-menu{display:block}.brand-sub{display:none}}
@media (max-width:560px){
  :root{--pad:20px}
  .h1{font-size:54px;line-height:.98}.h2{font-size:40px}.h3{font-size:30px}
  .lede{font-size:17px}
  .section{padding:72px 0}
  .sec-head{margin-bottom:32px}
  .nav-end .btn-ink{height:32px;padding:0 10px;font-size:12px}
  .sub-form{height:48px}.sub-form button{padding:0 14px;font-size:13px}
  .foot-grid{grid-template-columns:1fr}
  .foot-copy{flex-direction:column;gap:8px}
}

/* Hindi pages use the full Devanagari fonts; other languages only need a tiny subset (names, the हि switcher label) */
:root:lang(hi){--dev-serif:'Noto Serif Devanagari';--dev-sans:'Noto Sans Devanagari'}

/* ---- 01-fonts.css ---- */
/* GENERATED by _build/v2/fonts.py — do not edit by hand. */
@font-face{font-family:'Instrument Serif';src:url(/assets/fonts/InstrumentSerif-Regular.woff2) format('woff2');font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0100-017F,U+01CD-01DC,U+0259,U+02BB-02BC,U+02C6-02DD,U+0300-036F,U+1E00-1EFF,U+2000-206F,U+20AC,U+20B9,U+2122,U+2190-21FF,U+2212,U+2713,U+2715}
@font-face{font-family:'Instrument Serif';src:url(/assets/fonts/InstrumentSerif-Italic.woff2) format('woff2');font-weight:400;font-style:italic;font-display:swap;unicode-range:U+0000-00FF,U+0100-017F,U+01CD-01DC,U+0259,U+02BB-02BC,U+02C6-02DD,U+0300-036F,U+1E00-1EFF,U+2000-206F,U+20AC,U+20B9,U+2122,U+2190-21FF,U+2212,U+2713,U+2715}
@font-face{font-family:'Inter';src:url(/assets/fonts/Inter-var.woff2) format('woff2');font-weight:300 700;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0100-017F,U+01CD-01DC,U+0259,U+02BB-02BC,U+02C6-02DD,U+0300-036F,U+1E00-1EFF,U+2000-206F,U+20AC,U+20B9,U+2122,U+2190-21FF,U+2212,U+2713,U+2715}
@font-face{font-family:'JetBrains Mono';src:url(/assets/fonts/JetBrainsMono-var.woff2) format('woff2');font-weight:400 600;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0100-017F,U+01CD-01DC,U+0259,U+02BB-02BC,U+02C6-02DD,U+0300-036F,U+1E00-1EFF,U+2000-206F,U+20AC,U+20B9,U+2122,U+2190-21FF,U+2212,U+2713,U+2715}
@font-face{font-family:'Noto Sans Devanagari';src:url(/assets/fonts/NotoSansDevanagari.woff2) format('woff2');font-weight:400 600;font-display:swap;unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+25CC,U+A830-A839,U+A8E0-A8FF}
@font-face{font-family:'Noto Serif Devanagari';src:url(/assets/fonts/NotoSerifDevanagari.woff2) format('woff2');font-weight:400 600;font-display:swap;unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+25CC,U+A830-A839,U+A8E0-A8FF}
@font-face{font-family:'Icons Seal';src:url(/assets/fonts/IconsSeal.woff2) format('woff2');font-weight:400 700;font-display:swap;unicode-range:U+4E00,U+4E03,U+4E09,U+4E0B,U+4E5D,U+4E8C,U+4E94,U+4F2A,U+516B,U+516D,U+5175,U+520A,U+52BF,U+5341,U+5367,U+5370,U+539F,U+56DB,U+56FE,U+5723,U+5929,U+5B58,U+5B9E,U+5E03,U+5F85,U+5FCD,U+5FE0,U+610F,U+6258,U+6587,U+661F,U+667A,U+672F,U+6B66,U+6C57,U+6CD5,U+7591,U+7B2C,U+8BA1,U+8BC1,U+8BD1,U+8FA8,U+9690,U+9F99}
@font-face{font-family:'Ma Shan Zheng';src:url(/assets/fonts/MaShanZheng-0.woff2) format('woff2');font-display:swap;unicode-range:U+4E09-4E0A,U+4E3A,U+4EAE,U+4EEA,U+4F2A,U+4FE1,U+516D,U+5175,U+5200,U+5224,U+5341,U+5370,U+5929,U+5B54,U+5B59,U+5B5F,U+5BF9,U+5BFB,U+5C06,U+5EB7,U+61FF,U+6587,U+65AF,U+661F,U+66F9,U+6B66,U+6C57,U+6CD5,U+6D77,U+7384,U+7565,U+7792,U+77E5,U+79E6,U+7B11,U+821C,U+85CF,U+8BA1,U+8BC1,U+8D70,U+8FC7,U+8FF7,U+901F,U+91CC,U+95EE,U+9785,U+97E9}
@font-face{font-family:'Ma Shan Zheng';src:url(/assets/fonts/MaShanZheng-1.woff2) format('woff2');font-display:swap;unicode-range:U+4EE3,U+501F,U+50F5,U+5173,U+56F4,U+58F3,U+5C38,U+5C71,U+5E95,U+5F15,U+60CA,U+624B,U+6253,U+629B,U+62BD,U+6478,U+64D2,U+6545,U+6551,U+674E,U+6843,U+6B32,U+6C34,U+6DF7,U+7275,U+7389,U+738B,U+7816,U+79BB,U+7EB5,U+7F8A,U+8131,U+8349,U+85AA,U+864E,U+86C7,U+8749,U+8C03,U+8D3C,U+8D75,U+8FD8,U+91D1,U+91DC,U+95E8,U+987A,U+9B42,U+9B4F,U+9C7C}
@font-face{font-family:'Ma Shan Zheng';src:url(/assets/fonts/MaShanZheng-2.woff2) format('woff2');font-display:swap;unicode-range:U+4E0D,U+4E1C,U+4E3B,U+4EA4,U+4EBA,U+4EE5,U+4F10,U+5047,U+5077,U+51FB,U+52AB,U+52B3,U+53CD,U+57CE,U+58F0,U+5BA2,U+5C4B,U+5F00,U+5F85,U+6307,U+6349,U+6362,U+653B,U+6740,U+67F1,U+6811,U+6851,U+6881,U+68AF,U+69D0,U+706B,U+73AF,U+75F4,U+766B,U+7A7A,U+7F8E,U+8089,U+82B1,U+82E6,U+8662,U+8D81,U+8FD1,U+8FDC,U+8FDE,U+9038,U+9053,U+95F4,U+9A82}
@font-face{font-family:'Ma Shan Zheng';src:url(/assets/fonts/MaShanZheng-3.woff2) format('woff2');font-display:swap;unicode-range:U+4E2D,U+4ED3,U+5CB8,U+65E0,U+6697,U+6709,U+6E21,U+751F,U+897F,U+89C2,U+9648,U+9694}

/* ---- 10-t1.css ---- */
/* T1 — home, stratagems, stratagem, strategists, strategist, shared macros. */

h1, h2, h3 { overflow-wrap: anywhere; }
a.go {
  color: var(--ink);
  border-bottom: 1px solid var(--seal-hi);
  padding-bottom: 2px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: .04em;
}
.start-links { display: flex; flex-wrap: wrap; gap: 14px 22px; margin-top: 16px; }
.start-links .go { font-size: 13px; }

/* ——— breadcrumbs, cards, seals of status ——— */
.crumbs { margin: 0 0 18px; }
.crumbs ol { display: flex; flex-wrap: wrap; gap: 4px 0; list-style: none; font-family: var(--mono); font-size: 12px; color: var(--ink-2); }
.crumbs li { display: inline-flex; align-items: center; min-width: 0; }
.crumbs li + li::before { content: "/"; margin: 0 8px; color: var(--muted); }
.crumbs a:hover { color: var(--ink); }
.crumbs [aria-current="page"] { color: var(--ink); overflow-wrap: anywhere; }

.fchip, .graph-top .chip {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: .04em;
  min-height: 28px;
  padding: 4px 10px;
  border: 1px solid var(--rule);
  border-radius: 2px;
  color: var(--ink-2);
  background: transparent;
}
.fchip .zh, .graph-top .chip .zh { margin-right: 6px; letter-spacing: .12em; }
.fchip[aria-pressed="true"], .graph-top .chip[aria-pressed="true"] {
  color: var(--ink);
  border-color: var(--ink-2);
  background: var(--paper-2);
}
.chips { display: flex; flex-wrap: wrap; gap: 6px; }

.st[hidden], .chap-block[hidden], .region-block[hidden], [hidden].filter-empty { display: none !important; }
.st {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 168px;
  padding: 16px 16px 14px;
  background: var(--card);
  border: 1px solid var(--rule);
  border-radius: 4px;
  transition: border-color .15s;
}
.st:hover { border-color: var(--ink-2); }
.st-n { font-family: var(--mono); font-size: 12px; color: var(--muted); }
.st-z { font-size: 27px; line-height: 1.15; color: var(--ink); margin: 14px 0 8px; letter-spacing: .04em; font-weight: 600; }
.st-p { font-family: var(--mono); font-size: 12px; color: var(--ink-2); letter-spacing: .01em; overflow-wrap: anywhere; }
.st-e { font-size: 14px; line-height: 1.35; color: var(--ink-2); margin-top: auto; padding-top: 10px; overflow-wrap: anywhere; }
.row { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; }
.card-row { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 10px; }
.card-row .st { min-height: 156px; }

.pc {
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: 2px 14px;
  align-items: center;
  padding: 16px;
  background: var(--card);
  border: 1px solid var(--rule);
  border-radius: 4px;
  min-height: 112px;
}
.pc:hover { border-color: var(--ink-2); }
.enso {
  grid-row: 1 / span 5;
  width: 68px;
  height: 68px;
  border-radius: 50%;
  border: 2px solid var(--ink);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  align-self: center;
}
.enso::after {
  content: "";
  position: absolute;
  width: 16px;
  height: 12px;
  background: var(--card);
  top: -3px;
  right: 6px;
  transform: rotate(24deg);
}
.pc.is-root .enso { border-color: var(--seal-hi); }
.enso .g { font-size: 30px; line-height: 1; color: var(--ink); }
.enso .g.brush { font-family: var(--brush); }
.enso .g.dev { font-family: var(--dev); font-size: 22px; }
.enso .g.lat { font-family: var(--display); font-size: 30px; }
.pc-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pc-name { font-family: var(--display); font-size: 24px; line-height: 1.1; color: var(--ink); overflow-wrap: anywhere; }
.pc-native { font-size: 14px; color: var(--ink-2); overflow-wrap: anywhere; }
.pc-dates { font-family: var(--mono); font-size: 12px; color: var(--ink-2); }
.pc-role, .pc-hook { font-size: 14px; line-height: 1.45; color: var(--ink-2); }
.pc-hook { margin-top: 4px; }
.people-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }

.status-badge {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 2px 8px;
  border-radius: 2px;
  border: 1px solid var(--rule);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--ink-2);
}
.status-history { color: #9DDBB5; border-color: rgba(157, 219, 181, .5); }
.status-legend { color: #E6C07B; border-color: rgba(230, 192, 123, .55); }
.status-novel { color: #F0A0A8; border-color: rgba(224, 36, 63, .55); }
.status-mixed { color: var(--ink-2); border-color: var(--rule-strong); }

.takes { list-style: none; margin: 8px 0 18px; }
.takes li {
  position: relative;
  padding: 10px 0 10px 28px;
  border-top: 1px solid var(--rule);
  color: var(--ink-2);
  font-size: 16px;
  line-height: 1.5;
}
.takes li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 16px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--seal);
}
.src-list { list-style: none; counter-reset: src; margin: 8px 0 0; }
.src-list li {
  counter-increment: src;
  padding: 8px 0 8px 32px;
  position: relative;
  border-top: 1px solid var(--rule);
  font-size: 14.5px;
  line-height: 1.55;
  color: var(--ink-2);
}
.src-list li::before {
  content: counter(src);
  position: absolute;
  left: 0;
  top: 8px;
  font-family: var(--mono);
  font-size: 12px;
  color: var(--seal-hi);
}

.faq h2 { margin-bottom: 8px; }
.faq details { border-top: 1px solid var(--rule); padding: 14px 0; }
.faq details:last-child { border-bottom: 1px solid var(--rule); }
.faq summary {
  cursor: pointer;
  font-family: var(--display);
  font-size: 24px;
  line-height: 1.25;
  color: var(--ink);
  overflow-wrap: anywhere;
}
.faq summary::-webkit-details-marker { display: none; }
.faq details p { margin-top: 10px; max-width: 68ch; font-size: 16px; line-height: 1.6; color: var(--ink-2); }
.faq { max-width: 860px; }

/* ——— newsletter ——— */
.signup { position: relative; overflow: hidden; }
.signup-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 28px; align-items: center; }
.signup-grid .l { grid-column: 1 / 8; }
.signup-grid .r { grid-column: 8 / 13; padding: 32px 28px 28px; }
.signup .h2 { font-size: clamp(40px, 5vw, 72px); }
.signup .eyebrow { margin-bottom: 18px; }
.langs { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 28px; list-style: none; }
.langs span {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: .04em;
  min-height: 28px;
  display: inline-flex;
  align-items: center;
  padding: 2px 10px;
  border: 1px solid var(--rule);
  border-radius: 2px;
  color: var(--ink-2);
}
.signup .ghost-xin { right: -20px; top: -60px; font-size: 460px; }
.signup .r { position: relative; }
.signup .r .seal { position: absolute; right: 16px; top: 14px; }
.signup .r h3 {
  font-family: var(--display);
  font-weight: 400;
  font-size: 28px;
  line-height: 1.15;
  color: var(--ink);
  margin: 0 72px 8px 0;
  overflow-wrap: anywhere;
}
.signup .r > p { font-size: 15px; line-height: 1.5; margin: 0 72px 18px 0; color: var(--ink-2); }
.signup .r .btn { max-width: 100%; white-space: normal; height: auto; min-height: 48px; padding: 12px 18px; text-align: center; }
.signup .sub-meta { margin: 12px 0 0; }

/* ——— home ——— */
[data-page="home"] .hero { position: relative; padding: 44px 0 96px; overflow: hidden; }
[data-page="home"] .hero-wash { width: 700px; height: 700px; left: -200px; top: -200px; }
[data-page="home"] .hero .map-bg { opacity: .28; }
[data-page="home"] .hero-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--rule);
  margin-bottom: 56px;
}
[data-page="home"] .hero-meta .dot {
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--seal-hi);
  margin-right: 8px;
  vertical-align: 1px;
}
[data-page="home"] .hero-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 28px; align-items: start; }
[data-page="home"] .hero-main { grid-column: 1 / 9; min-width: 0; }
[data-page="home"] .hero-main .h1 { font-size: clamp(48px, 6.4vw, 104px); }
[data-page="home"] .hero-main .h1 .zh-tag {
  display: block;
  font-family: var(--sc);
  font-size: 15px;
  letter-spacing: .42em;
  color: var(--muted);
  margin-bottom: 22px;
  font-weight: 400;
}
[data-page="home"] .promise {
  display: flex;
  align-items: center;
  gap: 22px;
  margin: 40px 0 30px;
  padding: 20px 0;
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  max-width: 720px;
}
[data-page="home"] .promise p { font-family: var(--display); font-style: italic; font-size: clamp(24px, 3vw, 32px); line-height: 1.2; color: var(--ink); }
[data-page="home"] .promise .seal { flex: none; }
[data-page="home"] .hero-cta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 32px; }
[data-page="home"] .hero-cta .btn { white-space: normal; height: auto; min-height: 48px; padding: 12px 18px; text-align: center; }
[data-page="home"] .scroll { grid-column: 9 / 13; justify-self: end; width: 100%; max-width: 340px; position: relative; margin-top: 6px; }
[data-page="home"] .scroll .rod {
  height: 14px;
  border-radius: 7px;
  background: linear-gradient(#3a2a1e, #1c140e);
  box-shadow: 0 1px 0 rgba(255, 255, 255, .08) inset;
  margin: 0 -14px;
  position: relative;
}
[data-page="home"] .scroll .rod::before, [data-page="home"] .scroll .rod::after {
  content: "";
  position: absolute;
  top: 1px;
  width: 18px;
  height: 12px;
  border-radius: 3px;
  background: #120c08;
}
[data-page="home"] .scroll .rod::before { left: -6px; }
[data-page="home"] .scroll .rod::after { right: -6px; }
[data-page="home"] .scroll .silk { background: #2a1e1a; padding: 14px 14px 18px; box-shadow: 0 30px 60px rgba(0, 0, 0, .45); }
[data-page="home"] .scroll .paper { height: 520px; position: relative; padding: 22px 20px; overflow: hidden; }
[data-page="home"] .scroll .big {
  font-family: var(--brush);
  font-size: 270px;
  line-height: 1;
  color: var(--rice-ink);
  position: absolute;
  left: 4px;
  top: 24px;
  filter: url(#inkBleed);
}
[data-page="home"] .scroll .text {
  position: absolute;
  right: 22px;
  top: 26px;
  font-family: var(--sc);
  font-size: 24px;
  letter-spacing: .32em;
  color: var(--rice-ink);
  writing-mode: vertical-rl;
}
[data-page="home"] .scroll .src {
  position: absolute;
  right: 62px;
  top: 28px;
  writing-mode: vertical-rl;
  font-family: var(--sc);
  font-size: 12px;
  letter-spacing: .28em;
  color: var(--rice-muted);
}
[data-page="home"] .scroll .seal { position: absolute; right: 18px; bottom: 96px; }
[data-page="home"] .scroll .cap {
  position: absolute;
  left: 20px;
  right: 20px;
  bottom: 18px;
  font-family: var(--mono);
  font-size: 11px;
  line-height: 1.5;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--rice-muted);
  border-top: 1px solid rgba(27, 25, 21, .18);
  padding-top: 10px;
}
[data-page="home"] .scroll .cap i {
  font-family: var(--display);
  font-style: italic;
  font-size: 16px;
  letter-spacing: 0;
  text-transform: none;
  color: var(--rice-ink);
  display: block;
  margin-bottom: 3px;
}
[data-page="home"] .ghost-han { right: -60px; bottom: -140px; font-size: 520px; }

[data-page="home"] .graph-card { height: 700px; overflow: hidden; background: #141311; position: relative; }
[data-page="home"] .graph-card svg { width: 100%; height: 100%; }
[data-page="home"] .graph-top {
  position: absolute;
  left: 20px;
  right: 20px;
  top: 16px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  z-index: 2;
  pointer-events: none;
}
[data-page="home"] .graph-top .chips { pointer-events: auto; justify-content: flex-end; }
[data-page="home"] .graph-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
  margin-top: 18px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--muted);
}
[data-page="home"] .graph-legend span { display: inline-flex; align-items: center; gap: 7px; }
[data-page="home"] .graph-legend i { display: inline-block; width: 22px; height: 0; border-top: 1.2px solid var(--ink-2); }
[data-page="home"] .graph-legend i.th { border-top-style: dotted; }
[data-page="home"] .graph-legend i.op { border-top: 1.2px dashed var(--seal-hi); }
[data-page="home"] .graph-legend i.nd { width: 10px; height: 10px; border-radius: 50%; border: 1px solid var(--ink-2); background: #1a1917; }
[data-page="home"] .graph-legend i.nd.r { background: var(--seal); border-color: var(--seal); }
[data-page="home"] .fig-cap {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
  margin-top: 14px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--muted);
}
[data-page="home"] .tip {
  position: absolute;
  z-index: 3;
  pointer-events: none;
  background: var(--paper-2);
  border: 1px solid var(--rule);
  border-radius: 3px;
  padding: 10px 12px;
  max-width: 250px;
  opacity: 0;
  transition: opacity .15s;
}
[data-page="home"] .tip .t1 { font-family: var(--mono); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
[data-page="home"] .tip .t2 { font-family: var(--display); font-size: 20px; color: var(--ink); line-height: 1.1; margin: 3px 0; }
[data-page="home"] .tip .t3 { font-size: 13px; color: var(--ink-2); line-height: 1.45; }
[data-page="home"] g.node { cursor: pointer; }
[data-page="home"] #graph-svg .node:focus-visible { outline: 2px solid var(--seal-hi); outline-offset: 3px; }
[data-page="home"] .index-label {
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .06em;
  color: var(--ink-2);
  margin: 26px 0 10px;
}
[data-page="home"] .constellation-index { display: flex; flex-wrap: wrap; gap: 8px 18px; list-style: none; }
[data-page="home"] .constellation-index a { display: inline-flex; align-items: baseline; gap: 6px; font-size: 14px; color: var(--ink-2); }
[data-page="home"] .constellation-index a:hover { color: var(--ink); }
[data-page="home"] .ci-g { font-family: var(--brush); font-size: 16px; color: var(--ink); }
[data-page="home"] .ci-g.dev { font-family: var(--dev); }
[data-page="home"] .ci-g.lat { font-family: var(--display); }

[data-page="home"] .essay { display: grid; grid-template-columns: 5fr 7fr; overflow: hidden; }
[data-page="home"] .essay-art { position: relative; min-height: 420px; border-right: 1px solid var(--rule); }
[data-page="home"] .essay-art .wei {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -54%);
  font-family: var(--brush);
  font-size: 280px;
  line-height: 1;
  color: var(--rice-ink);
  filter: url(#inkBleed);
}
[data-page="home"] .essay-art .strike {
  position: absolute;
  left: 14%;
  right: 14%;
  top: 51%;
  height: 10px;
  background: var(--seal);
  transform: rotate(-14deg);
  opacity: .92;
  filter: url(#sealRough);
  border-radius: 4px;
}
[data-page="home"] .essay-art .seal { position: absolute; right: 28px; bottom: 28px; }
[data-page="home"] .essay-art .meta {
  position: absolute;
  left: 24px;
  top: 22px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--rice-muted);
}
[data-page="home"] .essay-art .meta2 {
  position: absolute;
  left: 24px;
  bottom: 24px;
  font-family: var(--sc);
  font-size: 13px;
  letter-spacing: .3em;
  color: var(--rice-muted);
}
[data-page="home"] .essay-body { padding: 40px 48px; display: flex; flex-direction: column; min-width: 0; }
[data-page="home"] .verdicts { list-style: none; margin: 0 0 26px; border-top: 1px solid var(--rule); }
[data-page="home"] .verdicts a {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 12px 18px;
  align-items: center;
  padding: 14px 0;
  border-bottom: 1px solid var(--rule);
}
[data-page="home"] .verdicts q { font-family: var(--display); font-size: clamp(18px, 2vw, 22px); color: var(--ink); quotes: "“" "”" "‘" "’"; overflow-wrap: anywhere; }
[data-page="home"] .verdicts .v { display: flex; align-items: center; gap: 8px; font-family: var(--mono); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; }
[data-page="home"] .v-verified { color: var(--seal-hi); }
[data-page="home"] .v-paraphrase { color: #E6C07B; }
[data-page="home"] .v-fake, [data-page="home"] .v-unclear { color: var(--ink-2); }
[data-page="home"] .essay-foot {
  margin-top: auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: .04em;
  color: var(--ink-2);
}

[data-page="home"] .entries { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
[data-page="home"] .entry {
  display: flex;
  flex-direction: column;
  padding: 28px 28px 26px;
  min-height: 420px;
  overflow: hidden;
  transition: border-color .2s;
}
[data-page="home"] .entry:hover { border-color: var(--ink-2); }
[data-page="home"] .entry .num { display: flex; justify-content: space-between; gap: 12px; font-family: var(--mono); font-size: 12px; letter-spacing: .06em; color: var(--muted); }
[data-page="home"] .entry .glyph { font-family: var(--brush); font-size: 148px; line-height: .9; color: var(--ink); margin: 18px 0 8px; filter: url(#inkBleed); }
[data-page="home"] .entry .glyph.red { color: var(--seal-hi); }
[data-page="home"] .entry h3 { font-family: var(--display); font-weight: 400; font-size: clamp(28px, 3vw, 34px); color: var(--ink); line-height: 1.08; }
[data-page="home"] .entry p { font-size: 15px; margin-top: 10px; color: var(--ink-2); }
[data-page="home"] .entry .go {
  margin-top: auto;
  padding-top: 22px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--ink);
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 0;
}
[data-page="home"] .entry .bgmap { position: absolute; inset: 0; background: url(/assets/map-asia.svg) 70% 40% / 260% no-repeat; opacity: .12; pointer-events: none; }
[data-page="home"] .entry .map-b { background-position: 30% 60%; }
[data-page="home"] .entry .map-c { background-position: 90% 30%; }

/* ——— hubs ——— */
.s-hero { position: relative; padding: 36px 0 64px; overflow: hidden; }
.s-hero .map-bg { opacity: .2; }
.s-hero-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 28px; align-items: end; }
.s-hero .l { grid-column: 1 / 9; min-width: 0; }
.s-hero .h1 { font-size: clamp(52px, 8vw, 112px); margin: 12px 0 22px; }
.s-hero .r { grid-column: 9 / 13; justify-self: end; display: flex; gap: 18px; align-items: flex-start; }
.s-hero .big36 { font-family: var(--brush); font-size: clamp(72px, 8vw, 118px); line-height: 1.02; color: var(--ink); writing-mode: vertical-rl; filter: url(#inkBleed); }
.s-hero .lede { margin-bottom: 14px; }
.origin { font-size: 15px; line-height: 1.6; color: var(--ink-2); max-width: 68ch; margin-top: 8px; }
.origin .zh { color: var(--ink); }
.facts { display: flex; flex-wrap: wrap; gap: 22px 36px; margin-top: 28px; padding-top: 18px; border-top: 1px solid var(--rule); }
.facts div { font-size: 13px; color: var(--ink-2); max-width: 16ch; }
.facts b { display: block; font-family: var(--display); font-weight: 400; font-size: 40px; color: var(--ink); line-height: 1; margin-bottom: 6px; }

.toolbar { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; margin-bottom: 22px; }
.sg-search {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 40px;
  flex: 1 1 260px;
  max-width: 420px;
  border: 1px solid var(--rule);
  border-radius: 2px;
  padding: 4px 12px;
  background: var(--card);
}
.sg-search label { font-family: var(--mono); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); flex: none; }
.sg-search input { flex: 1; min-width: 0; border: 0; background: transparent; color: var(--ink); font-size: 15px; padding: 6px 0; }
.sg-search input:focus { outline: none; }
.sg-search:focus-within { outline: 2px solid var(--seal-hi); outline-offset: 2px; }
.filter-empty { margin: 0 0 18px; color: var(--ink-2); }
.chap-block { margin-bottom: 8px; }
.chap {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px 14px;
  padding: 22px 0 12px;
  border-top: 1px solid var(--rule);
  font-weight: 400;
}
.chap-block:first-of-type .chap { border-top-color: var(--rule-strong); }
.chap-n { font-family: var(--sc); font-size: 13px; color: var(--seal-hi); }
.chap-z { font-family: var(--sc); font-size: 22px; color: var(--ink); letter-spacing: .08em; font-weight: 600; }
.chap-p { font-family: var(--mono); font-size: 12px; color: var(--ink-2); }
.chap-e { margin-left: auto; font-size: 14px; color: var(--ink-2); text-align: right; }
.chap-block .row { padding-bottom: 18px; }

.how-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.how-card { padding: 22px 22px 24px; }
.how-card h3 { font-family: var(--display); font-weight: 400; font-size: 26px; color: var(--ink); line-height: 1.15; margin-bottom: 8px; }
.how-card p { font-size: 15px; line-height: 1.55; color: var(--ink-2); }

.pdf-block { display: grid; grid-template-columns: repeat(12, 1fr); gap: 28px; align-items: center; }
.pdf-block .art { grid-column: 1 / 6; position: relative; height: 420px; }
.pdf-block .bk {
  position: absolute;
  width: min(250px, 70%);
  height: 340px;
  border-radius: 3px;
  box-shadow: 0 30px 60px rgba(0, 0, 0, .5);
  padding: 26px 22px;
  display: flex;
  flex-direction: column;
}
.pdf-block .bk.b1 { left: 8%; top: 50px; transform: rotate(-8deg); opacity: .55; }
.pdf-block .bk.b2 { left: 34%; top: 34px; transform: rotate(4deg); }
.pdf-block .bk .t { flex: none; font-family: var(--brush); font-size: 48px; line-height: 1.05; writing-mode: vertical-rl; color: var(--rice-ink); margin-left: auto; filter: url(#inkBleed); }
.pdf-block .bk .s { font-family: var(--mono); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--rice-muted); margin-top: auto; }
.pdf-block .bk .s i { display: block; font-family: var(--display); font-style: italic; font-size: 22px; letter-spacing: 0; text-transform: none; color: var(--rice-ink); margin-bottom: 6px; }
.pdf-block .bk .seal { position: absolute; left: 22px; top: 24px; }
.pdf-block .txt { grid-column: 7 / 13; min-width: 0; }
.pdf-block .h2 { font-size: clamp(40px, 4.5vw, 60px); margin: 12px 0 16px; }
.pdf-list { list-style: none; margin: 22px 0 28px; border-top: 1px solid var(--rule); }
.pdf-list li { padding: 10px 0; border-bottom: 1px solid var(--rule); font-size: 15px; color: var(--ink-2); display: flex; gap: 14px; }
.pdf-list li span { font-family: var(--mono); font-size: 12px; color: var(--seal-hi); padding-top: 2px; flex: none; }
.pdf-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; }
.pdf-actions .btn { white-space: normal; height: auto; min-height: 48px; padding: 12px 18px; text-align: center; }
.pdf-en { font-family: var(--mono); font-size: 12px; letter-spacing: .04em; color: var(--ink); border-bottom: 1px solid var(--seal-hi); padding-bottom: 2px; }

.region-h { font-family: var(--display); font-weight: 400; font-size: clamp(32px, 4vw, 48px); color: var(--ink); margin: 28px 0 14px; padding-top: 18px; border-top: 1px solid var(--rule); }
.region-block:first-of-type .region-h { margin-top: 0; }
.quiz-band {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 24px;
  flex-wrap: wrap;
}
.quiz-band .h2 { font-size: clamp(36px, 4vw, 56px); margin: 10px 0 12px; }
.quiz-band .btn { white-space: normal; height: auto; min-height: 48px; padding: 12px 18px; }

/* ——— stratagem ——— */
.strat-top { padding-top: 28px; }
.d-kicker { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: baseline; color: var(--ink-2); font-size: 15px; margin-top: 4px; }
.d-kicker .zh { color: var(--ink); }
.detail { display: grid; grid-template-columns: minmax(260px, 380px) 1fr; align-items: start; }
.d-art {
  position: relative;
  padding: 28px 24px 24px;
  min-height: 560px;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.d-art .meta {
  align-self: stretch;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--rice-muted);
}
.d-art .glyphs {
  font-family: var(--brush);
  font-size: clamp(72px, 11vh, 132px);
  line-height: 1.02;
  color: var(--rice-ink);
  writing-mode: vertical-rl;
  margin: 22px 0 12px;
  filter: url(#inkBleed);
}
.d-art .glyphs span:nth-child(2) { color: #9E1B24; }
.d-art .seal { position: absolute; left: 22px; bottom: 108px; }
.d-art .pin { margin-top: auto; font-family: var(--mono); font-size: 13px; letter-spacing: .04em; color: var(--rice-ink); text-align: center; overflow-wrap: anywhere; }
.d-art .pin small { display: block; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--rice-muted); margin-top: 4px; }
.d-body { padding: 36px 40px 40px; min-width: 0; }
.d-body > h1 { font-family: var(--display); font-weight: 400; font-size: clamp(40px, 4.6vw, 64px); line-height: 1.02; color: var(--ink); letter-spacing: -.02em; margin: 0 0 8px; }
.d-body .pinyin { font-family: var(--mono); font-size: 14px; color: var(--ink-2); margin-bottom: 8px; overflow-wrap: anywhere; }
.lit {
  display: grid;
  grid-template-columns: repeat(var(--lit-n, 4), minmax(0, 1fr));
  margin: 22px 0;
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
}
.lit > div { padding: 14px 12px 12px; border-left: 1px solid var(--rule); min-width: 0; }
.lit > div:first-child { border-left: 0; padding-left: 0; }
.lit .c { font-family: var(--sc); font-size: clamp(26px, 3vw, 34px); color: var(--ink); line-height: 1.1; font-weight: 600; }
.lit .p { font-family: var(--mono); font-size: 12px; color: var(--seal-hi); margin-top: 6px; overflow-wrap: anywhere; }
.lit .g { font-size: 13px; color: var(--ink-2); margin-top: 2px; overflow-wrap: anywhere; }
.literal { display: grid; grid-template-columns: 130px 1fr; gap: 12px 16px; align-items: baseline; margin-bottom: 22px; }
.literal p:last-child { font-family: var(--display); font-size: clamp(22px, 2.4vw, 30px); color: var(--ink); font-style: italic; line-height: 1.2; }
.hook { margin-bottom: 8px; max-width: 62ch; }
.srcline {
  display: grid;
  grid-template-columns: 130px 1fr auto;
  gap: 12px 16px;
  align-items: start;
  padding: 22px 0;
  border-top: 1px solid var(--rule);
}
.srcline .cn { font-family: var(--sc); font-size: clamp(20px, 2.2vw, 26px); color: var(--ink); line-height: 1.55; }
.srcline .trad { margin-top: 8px; font-size: 14px; color: var(--ink-2); line-height: 1.5; }
.srcline .trad .lbl { font-family: var(--mono); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); margin-right: 8px; }
.srcline .en { font-size: 16px; line-height: 1.55; margin-top: 10px; max-width: 62ch; color: var(--ink-2); }
.srcline .note, .srcline .cite { font-family: var(--mono); font-size: 12px; letter-spacing: .03em; color: var(--ink-2); margin-top: 8px; }
.srcline .text-note { font-size: 15px; line-height: 1.55; margin-top: 10px; max-width: 62ch; }
.s-block { padding: 26px 0 8px; border-top: 1px solid var(--rule); }
.s-block > h2 {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(28px, 3vw, 36px);
  color: var(--ink);
  line-height: 1.1;
  margin-bottom: 12px;
}
.prose p { font-size: 16.5px; line-height: 1.65; margin-bottom: 12px; max-width: 68ch; color: var(--ink-2); }
.prose h3 { font-family: var(--display); font-weight: 400; font-size: 26px; color: var(--ink); margin: 18px 0 8px; line-height: 1.15; }
.story-copy h3 .zh { font-family: var(--sc); font-size: .72em; margin-left: 8px; letter-spacing: .08em; }
.badge-row { margin-bottom: 12px; }
.story-note { font-size: 15px !important; }
.story-grid { display: block; }
.sg-story.has-map .story-grid { display: grid; grid-template-columns: 1fr minmax(220px, 300px); gap: 20px 24px; align-items: start; }
.schem { background: #141311; border: 1px solid var(--rule); border-radius: 3px; padding: 10px; }
.schem svg { width: 100%; height: auto; }
.schem figcaption { font-family: var(--mono); font-size: 11px; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); padding: 8px 4px 2px; }
.myth-box { display: flex; gap: 16px; align-items: flex-start; padding: 8px 0 12px; }
.myth-box p { font-size: 16.5px; line-height: 1.6; max-width: 62ch; }
.myth-box .seal { flex: none; }
.counter { padding: 14px 16px; border-left: 2px solid var(--seal-hi); background: rgba(224, 36, 63, .06); }
.prevnext-sec.section { padding-top: 28px; padding-bottom: 28px; }
.prevnext { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.pn { display: flex; flex-direction: column; gap: 6px; padding: 18px 18px 20px; min-height: 120px; min-width: 0; }
.pn.next { text-align: right; align-items: flex-end; }
.pn-n { font-family: var(--mono); font-size: 12px; color: var(--seal-hi); }
.pn-name { font-family: var(--display); font-size: clamp(22px, 2.4vw, 30px); line-height: 1.1; color: var(--ink); }
.pdf-strip {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
  margin: 12px auto 0;
  padding: 20px 22px;
  border: 1px solid var(--rule);
  border-radius: 4px;
  background: var(--card);
  max-width: 1440px;
}
.pdf-strip p { color: var(--ink-2); font-size: 16px; max-width: 46ch; }

/* ——— profile ——— */
.p-hero { padding: 28px 0 12px; position: relative; }
.p-hero-grid { display: grid; grid-template-columns: minmax(140px, 240px) 1fr; gap: 28px 36px; align-items: end; }
.p-glyph { font-size: clamp(120px, 16vw, 200px); line-height: .85; color: var(--ink); text-align: center; filter: url(#inkBleed); }
.p-glyph.brush { font-family: var(--brush); }
.p-glyph.dev { font-family: var(--dev); font-size: clamp(88px, 12vw, 140px); line-height: 1; filter: none; }
.p-glyph.lat { font-family: var(--display); font-size: clamp(120px, 16vw, 180px); filter: none; }
.p-id { min-width: 0; }
.p-id h1 { font-family: var(--display); font-weight: 400; font-size: clamp(46px, 6vw, 80px); line-height: .98; color: var(--ink); letter-spacing: -.02em; }
.aka { margin: 12px 0 16px; color: var(--ink-2); font-size: 16px; line-height: 1.45; overflow-wrap: anywhere; }
.aka .eyebrow { display: block; margin-bottom: 4px; }
.p-facts { display: grid; gap: 10px; margin: 8px 0 16px; }
.p-facts div { display: grid; grid-template-columns: 88px 1fr; gap: 12px; }
.p-facts dt { font-family: var(--mono); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); padding-top: 4px; }
.p-facts dd { color: var(--ink-2); font-size: 16px; line-height: 1.45; }
.profile-body { max-width: 980px; }
.profile-body > section, .profile-body > aside { padding: 28px 0; border-top: 1px solid var(--rule); }
.profile-body h2 { font-family: var(--display); font-weight: 400; font-size: clamp(28px, 3vw, 36px); color: var(--ink); line-height: 1.12; margin-bottom: 14px; }
.profile-body p { font-size: 16.5px; line-height: 1.65; margin-bottom: 12px; max-width: 70ch; color: var(--ink-2); }
.work, .idea { padding: 14px 0; border-top: 1px solid var(--rule); }
.work h3, .idea h3 { font-family: var(--display); font-weight: 400; font-size: 24px; color: var(--ink); line-height: 1.2; margin-bottom: 6px; }
.idea-zh { font-size: 20px !important; color: var(--ink) !important; margin-bottom: 4px !important; }
.ep-list { display: grid; gap: 12px; }
.ep { padding: 18px 18px 8px; }
.ep-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.ep h3 { font-family: var(--display); font-weight: 400; font-size: 24px; color: var(--ink); line-height: 1.2; }
.ep-date { font-family: var(--mono); font-size: 12px; color: var(--ink-2); margin-bottom: 8px; }
.myth-table { border-top: 1px solid var(--rule); }
.myth-head, .myth-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.myth-head { padding: 10px 0; font-family: var(--mono); font-size: 12px; letter-spacing: .04em; text-transform: uppercase; color: var(--ink-2); }
.myth-head span { display: flex; align-items: center; gap: 8px; }
.myth-row { padding: 14px 0; border-top: 1px solid var(--rule); }
.myth-row p { margin: 0; }
.quiz-cta { padding: 22px 22px 24px; margin-top: 8px; }
.quiz-cta .btn { white-space: normal; height: auto; min-height: 48px; padding: 12px 18px; }

/* ——— responsive ——— */
@media (min-width: 901px) {
  .detail { align-items: start; }
  .d-art { position: sticky; top: 84px; height: calc(100vh - 104px); min-height: 560px; max-height: 880px; }
}
@media (max-width: 1240px) {
  .row { grid-template-columns: repeat(3, 1fr); }
  [data-page="home"] .hero-main .h1 { font-size: 80px; }
}
@media (max-width: 1100px) {
  [data-page="home"] .hero-main { grid-column: 1 / -1; }
  [data-page="home"] .scroll { grid-column: 1 / -1; justify-self: start; max-width: 420px; }
  [data-page="home"] .scroll .paper { height: 420px; }
  [data-page="home"] .entries { grid-template-columns: 1fr 1fr; }
  [data-page="home"] .essay { grid-template-columns: 1fr; }
  [data-page="home"] .essay-art { min-height: 300px; border-right: 0; border-bottom: 1px solid var(--rule); }
  .signup-grid .l, .signup-grid .r { grid-column: 1 / -1; }
  .s-hero .l, .s-hero .r { grid-column: 1 / -1; }
  .s-hero .r { justify-self: start; }
  .pdf-block .art, .pdf-block .txt { grid-column: 1 / -1; }
  .people-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 900px) {
  [data-page="home"] .graph-card { height: 600px; }
  [data-page="home"] .hero-main .h1 { font-size: 64px; }
  .detail { grid-template-columns: 1fr; }
  .d-art { min-height: 0; height: auto; position: relative; }
  .d-art .glyphs { writing-mode: horizontal-tb; display: flex; justify-content: center; gap: .12em; font-size: clamp(52px, 16vw, 88px); letter-spacing: 0; line-height: 1; }
  .d-art .seal { position: static; margin: 8px 0 12px; }
  .sg-story.has-map .story-grid, .literal, .srcline { grid-template-columns: 1fr; }
  .how-grid { grid-template-columns: 1fr; }
  .p-hero-grid { grid-template-columns: 1fr; align-items: start; }
  .p-glyph { text-align: left; }
}
@media (max-width: 560px) {
  [data-page="home"] .hero { padding: 28px 0 64px; }
  [data-page="home"] .hero-meta { margin-bottom: 28px; }
  [data-page="home"] .hero-main .h1 { font-size: 46px; }
  [data-page="home"] .hero-main .h1 .zh-tag { letter-spacing: .22em; }
  [data-page="home"] .promise { gap: 14px; }
  [data-page="home"] .scroll { max-width: none; margin-top: 28px; }
  [data-page="home"] .scroll .paper { height: 380px; }
  [data-page="home"] .scroll .big { font-size: 200px; }
  [data-page="home"] .graph-card { height: 640px; }
  [data-page="home"] .graph-top { flex-direction: column; }
  [data-page="home"] .graph-top .chips { justify-content: flex-start; }
  [data-page="home"] .entries { grid-template-columns: 1fr; }
  [data-page="home"] .entry { min-height: 0; }
  [data-page="home"] .entry .glyph { font-size: 112px; }
  [data-page="home"] .essay-art .wei { font-size: 200px; }
  [data-page="home"] .essay-body { padding: 24px 18px; }
  [data-page="home"] .verdicts a { grid-template-columns: 1fr; }
  .s-hero .h1 { font-size: 48px; }
  .s-hero .big36 { font-size: 64px; }
  .row { grid-template-columns: 1fr 1fr; }
  .chap-e { margin-left: 0; text-align: left; flex-basis: 100%; }
  .people-grid, .prevnext, .myth-head, .myth-row { grid-template-columns: 1fr; }
  .pdf-block .art { height: 300px; }
  .pdf-block .bk { height: 240px; width: 58%; }
  .pdf-block .bk .t { font-size: 36px; }
  .d-body { padding: 24px 16px 28px; }
  .lit { grid-template-columns: 1fr 1fr; }
  .lit > div:nth-child(odd) { border-left: 0; padding-left: 0; }
  .pn.next { text-align: left; align-items: flex-start; }
  .p-facts div { grid-template-columns: 1fr; gap: 2px; }
  .signup .h2 { font-size: 40px; }
  .signup .r { padding: 24px 18px; }
  .signup .ghost-xin { font-size: 280px; }
}

/* ---- 20-t2.css ---- */
/* T2 — verifier, quote, quiz, quiz result, about, library, privacy, 404 */

.t2 [hidden]{display:none !important}
.t2 .section.tight{padding-top:64px}
.t2 :focus-visible{outline:2px solid var(--seal-hi);outline-offset:3px}
.t2 .rice :focus-visible{outline-color:#9E1B24}
.t2 h1,.t2 h2,.t2 h3,.t2 .qtext,.t2 .lclaim,.t2 .claim q{overflow-wrap:anywhere}
.t2 .h2-sm{font-size:clamp(32px,4vw,44px)}
.vh{position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.t2 code{font-family:var(--mono);font-size:.92em;color:var(--ink)}
.t2 .prose p,.t2 .prose li{font-size:16.5px;line-height:1.65;color:var(--ink-2);max-width:68ch}
.t2 .prose p{margin:0 0 14px}
.t2 .prose ul,.t2 .prose ol{margin:0 0 16px 1.15em}
.t2 .prose li{margin:6px 0}
.t2 .prose li::marker{color:var(--seal-hi)}
.t2 .prose a{color:var(--ink);border-bottom:1px solid var(--seal-hi)}
.noscript-note{margin-top:14px;font-size:14px;color:var(--ink-2);max-width:62ch}

/* breadcrumbs — small mono, not forced uppercase (claims and Hindi get long) */
.t2 .crumbs{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:baseline;font-family:var(--mono);font-size:12px;line-height:1.45;color:var(--muted);margin:0 0 18px}
.t2 .crumbs a{color:var(--ink-2)}
.t2 .crumbs a:hover{color:var(--ink)}
.t2 .crumbs [aria-current]{color:var(--ink-2)}
.t2 .crumbs .sep{color:var(--muted)}

/* ——— verify hub ——— */
.v-hero{position:relative;padding:48px 0 56px;overflow:hidden}
.v-hero .map-bg{opacity:.2}
.v-hero .ghost-zheng{right:20px;top:-30px;font-size:clamp(220px,36vw,420px);opacity:.06}
.v-hero .h1{font-size:clamp(48px,8vw,108px);margin:18px 0 18px;max-width:12em}
.vsearch-wrap{margin-top:32px;max-width:900px}
.vsearch-wrap label{display:block;margin-bottom:8px}
.vsearch{display:flex;align-items:stretch;height:68px;border:1px solid var(--rule-strong);border-radius:3px;background:var(--card)}
.vsearch .ic{display:flex;align-items:center;padding:0 4px 0 18px;color:var(--muted)}
.vsearch input{flex:1;min-width:0;border:0;background:transparent;padding:0 14px;font-family:var(--display);font-size:clamp(18px,2.4vw,28px);color:var(--ink)}
.vsearch input::placeholder{color:var(--muted)}
.vsearch button{background:var(--seal);color:#fff;padding:0 22px;font-size:15px;font-weight:500;border-radius:0 2px 2px 0}
.popular{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;align-items:center}
.popular .eyebrow{margin-right:4px}
.popular button,.vfilters button{font-family:var(--display);font-size:16px;color:var(--ink-2);border:1px solid var(--rule);border-radius:2px;min-height:36px;padding:4px 12px;text-align:left}
.popular button:hover,.vfilters button:hover{border-color:var(--ink-2);color:var(--ink)}
.vfilters button[aria-pressed="true"]{color:var(--ink);border-color:var(--ink-2);background:var(--paper-2)}
.ledger-bar{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.vfilters{display:flex;flex-wrap:wrap;gap:8px}
.lrow{display:grid;grid-template-columns:72px 1fr auto;gap:8px 22px;align-items:start;padding:22px 24px;margin-bottom:12px}
.lrow .lseal .seal{height:52px}
.lclaim{font-family:var(--display);font-weight:400;font-size:clamp(22px,2.4vw,30px);line-height:1.15;color:var(--ink);letter-spacing:-.015em}
.lclaim a{color:inherit}
.lclaim a:hover{color:var(--seal-hi)}
.lrow.is-fake .lclaim{text-decoration:line-through;text-decoration-color:var(--seal-hi);text-decoration-thickness:2px;color:var(--ink-2)}
.lmeta{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:8px;font-family:var(--mono);font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.lmeta .v-verified{color:var(--seal-hi)}
.lmeta .v-paraphrase{color:#D9A35B}
.lmeta .v-fake,.lmeta .v-unclear{color:var(--ink-2)}
.lsum{margin-top:10px;font-size:15.5px;line-height:1.55;max-width:68ch}
.lgo{align-self:center;font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid var(--seal-hi);padding-bottom:2px;white-space:nowrap}
.nomatch{padding:28px 24px;margin-bottom:12px}
.nomatch p{font-size:17px;color:var(--ink);max-width:62ch}
.nomatch .acts{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}

/* method steps + seal legend (verify and about) */
.method{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--rule-strong)}
.step{padding:28px 22px 8px 26px;border-left:1px solid var(--rule)}
.step:first-child{border-left:0;padding-left:0}
.step .n{font-family:var(--mono);font-size:11px;color:var(--seal-hi)}
.step .z{font-family:var(--brush);font-size:64px;line-height:1;color:var(--ink);margin:14px 0 10px}
.step h3{font-family:var(--display);font-weight:400;font-size:clamp(22px,2vw,28px);color:var(--ink);line-height:1.1}
.step p{font-size:14.5px;line-height:1.55;margin-top:8px;color:var(--ink-2)}
.legend-seals{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:36px;list-style:none}
.ls{display:flex;gap:14px;align-items:center;padding:16px;border:1px solid var(--rule);border-radius:4px;background:var(--card)}
.ls .seal{height:52px;flex:none}
.ls b{display:block;font-family:var(--mono);font-size:12px;font-weight:500;color:var(--ink)}
.ls .d{display:block;font-size:14px;color:var(--ink-2);margin-top:3px}
.method-more{margin-top:22px}

/* FAQ */
.t2-faq{margin-top:8px}
.t2-faq details{border-top:1px solid var(--rule);padding:16px 0}
.t2-faq details:last-child{border-bottom:1px solid var(--rule)}
.t2-faq summary{cursor:pointer;font-family:var(--display);font-size:clamp(22px,3vw,30px);color:var(--ink);line-height:1.25}
.t2-faq summary::-webkit-details-marker{display:none}
.t2-faq summary::before{content:"+";font-family:var(--mono);font-size:14px;color:var(--seal-hi);margin-right:10px}
.t2-faq details[open] summary::before{content:"–"}
.t2-faq details p{margin-top:12px;max-width:68ch;font-size:16px;line-height:1.6}

/* ——— quote page: mockup .res card ——— */
.t2-quote{padding:36px 0 0}
.res{display:grid;grid-template-columns:200px 1fr minmax(240px,400px);margin-bottom:28px;overflow:hidden}
.res>div{padding:28px 26px}
.verdict{border-right:1px solid var(--rule);display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.verdict .seal{height:96px}
.verdict .lbl{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:500;color:var(--ink)}
.verdict .lbl small{display:block;font-weight:400;color:var(--ink-2);letter-spacing:.04em;margin-top:4px;text-transform:none;font-family:var(--sans);font-size:13px;line-height:1.4}
.res.ok .lbl{color:var(--seal-hi)}
.res.para .lbl{color:#D9A35B}
.verdict .conf{margin-top:auto;font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--muted);text-transform:uppercase;line-height:1.55}
.claim .eyebrow{margin-bottom:10px}
.claim h1{font-family:var(--display);font-weight:400;font-size:clamp(32px,4vw,46px);line-height:1.08;letter-spacing:-.02em}
.claim h1 q{quotes:"“" "”" "‘" "’"}
.res.fake .claim h1 q{text-decoration:line-through;text-decoration-color:var(--seal-hi);text-decoration-thickness:2px;color:var(--ink-2)}
.claim .why{font-size:16.5px;line-height:1.6;margin-top:16px;max-width:62ch}
.claim .attr{margin-top:14px;font-family:var(--mono);font-size:12px;letter-spacing:.04em;color:var(--muted);text-transform:uppercase}
.source{border-left:1px solid var(--rule);background:linear-gradient(rgba(238,234,224,.02),rgba(238,234,224,.02))}
.source .cn{font-family:var(--sc);font-size:clamp(20px,2vw,26px);line-height:1.55;color:var(--ink);margin:10px 0 6px}
.source .py{font-family:var(--mono);font-size:12px;color:var(--ink-2);margin-bottom:12px}
.source .en{font-family:var(--display);font-size:18px;line-height:1.4;color:var(--ink-2)}
.source .cite{margin-top:14px;padding-top:12px;border-top:1px solid var(--rule);font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--muted);text-transform:uppercase;line-height:1.65}
.source .none{font-family:var(--display);font-style:italic;font-size:22px;color:var(--ink-2);margin:10px 0}
.quote-body{display:grid;gap:36px;padding-bottom:20px}
.sharebox{padding:28px 28px 24px}
.sharebox h2{margin-bottom:12px}
.share-as{font-family:var(--display);font-size:clamp(20px,2.4vw,28px);line-height:1.3;color:var(--ink);user-select:text;max-width:40em}
.copy-hint,.share-fallback{margin-top:8px;font-family:var(--mono);font-size:12px;color:var(--ink-2);user-select:text;overflow-wrap:anywhere}
.shares{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.shares .btn{height:auto;min-height:36px;font-family:var(--mono);font-size:12px;letter-spacing:.02em;white-space:normal;text-align:center}
.shares .btn.btn-seal{color:#fff}
.conf-note{font-size:15px;max-width:68ch}
.conf-note a{color:var(--ink);border-bottom:1px solid var(--seal-hi)}
.rel-grid,.card-row,.read-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.rel{display:flex;flex-direction:column;gap:8px;padding:18px 18px 16px;min-height:160px}
.rel h3{font-family:var(--display);font-weight:400;font-size:22px;line-height:1.2;color:var(--ink)}
.rel h3 a{color:inherit}
.rel.is-fake h3{text-decoration:line-through;text-decoration-color:var(--seal-hi);color:var(--ink-2)}
.rel .go{margin-top:auto;font-family:var(--mono);font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink)}
.another{margin:8px 0 0}

/* ——— quiz ——— */
.q-hero{position:relative;padding:48px 0 48px;overflow:hidden}
.q-hero .map-bg{opacity:.18}
.q-hero .ghost-jiang{right:20px;top:-10px;font-size:clamp(200px,34vw,400px);opacity:.07}
.q-hero .h1{font-size:clamp(48px,8vw,104px);margin:18px 0 18px;max-width:11em}
.screens{display:grid;grid-template-columns:minmax(0,7fr) minmax(280px,5fr);gap:28px;align-items:start}
.qcard{padding:36px 40px 28px;min-height:560px;display:flex;flex-direction:column;position:relative;overflow:hidden;scroll-margin-top:80px}
.qcard .ghost-q{position:absolute;right:-10px;bottom:-40px;font-size:280px;opacity:.05;pointer-events:none}
.prog{display:flex;align-items:center;gap:16px}
.prog .bar{flex:1;display:flex;gap:4px}
.prog .bar span{flex:1;height:3px;background:var(--rule)}
.prog .bar span.on{background:var(--seal-hi)}
.prog .bar span.cur{background:var(--ink)}
.qnum{font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--muted);white-space:nowrap}
.qtext{font-family:var(--display);font-weight:400;font-size:clamp(28px,3.6vw,46px);line-height:1.08;color:var(--ink);letter-spacing:-.015em;margin:32px 0 24px;max-width:18em}
.opts{display:grid;gap:10px}
.opt{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:14px;text-align:left;padding:14px 16px;border:1px solid var(--rule);border-radius:3px;background:var(--paper);font-size:16px;color:var(--ink-2)}
.opt:hover{border-color:var(--ink-2);color:var(--ink)}
.opt .stem{width:34px;height:34px;border:1px solid var(--rule);border-radius:2px;display:flex;align-items:center;justify-content:center;font-family:var(--sc);font-size:16px;color:var(--ink)}
.opt .k{font-family:var(--mono);font-size:11px;color:var(--muted)}
.opt[aria-pressed="true"]{border-color:var(--seal-hi);background:var(--seal-soft);color:var(--ink)}
.opt[aria-pressed="true"] .stem{background:var(--seal);border-color:var(--seal);color:#fff}
.qfoot{margin-top:auto;padding-top:22px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;font-family:var(--mono);font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.qfoot .btn[disabled]{opacity:.4;cursor:default}
.result-col{min-width:0}
.card-wait{min-height:420px;padding:28px;display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden}
.card-wait .wait-g{font-family:var(--brush);font-size:180px;line-height:.8;color:var(--rice-ink);position:absolute;left:10px;top:20px;opacity:.35}
.card-wait .you{position:relative}
.card-wait .wait-title{position:relative;font-family:var(--display);font-size:clamp(26px,3vw,36px);line-height:1.15;color:var(--rice-ink);margin-top:8px;max-width:14em}

/* rice share card */
.share-card{border-radius:4px;overflow:hidden;position:relative;padding:28px 26px 22px;display:flex;flex-direction:column;min-height:520px;box-shadow:0 30px 70px rgba(0,0,0,.45)}
.share-card .map{position:absolute;inset:0;background:url(/assets/map-asia.svg) 58% 40%/220% no-repeat;opacity:.45;filter:sepia(1) brightness(.55);mix-blend-mode:multiply;pointer-events:none}
.share-card .top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:#4A4338;position:relative}
.share-card .top .b{display:flex;align-items:center;gap:8px;color:var(--rice-ink);font-family:var(--sans);font-weight:600;letter-spacing:.16em;font-size:12px;flex:none}
.share-card .top .b i{width:16px;height:16px;background:var(--seal);color:#fff;font-style:normal;font-family:var(--sc);font-size:11px;line-height:16px;text-align:center;border-radius:1px}
.share-card .body{position:relative;display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:16px}
.share-card .glyph{font-family:var(--brush);font-size:clamp(120px,16vw,200px);line-height:.9;color:var(--rice-ink)}
.share-card .glyph.dev{font-family:var(--dev);font-size:clamp(88px,12vw,140px);line-height:1.25}
.share-card .ep{writing-mode:vertical-rl;font-family:var(--sc);font-size:20px;letter-spacing:.28em;color:var(--rice-ink);padding-top:4px}
.share-card .ep.dev{writing-mode:horizontal-tb;font-family:var(--dev);font-size:18px;letter-spacing:0}
.share-card .side{display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:12px}
.share-card .you{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#9E1B24;position:relative;margin-top:8px}
.share-card .r-name{font-family:var(--display);font-weight:400;font-size:clamp(36px,4vw,52px);line-height:.95;color:var(--rice-ink);letter-spacing:-.02em;position:relative;margin:4px 0}
.share-card .sub{font-family:var(--display);font-style:italic;font-size:18px;color:#3E382F;position:relative;line-height:1.35}
.share-card .sub .zh,.share-card .sub .dev{font-style:normal;font-size:15px;margin-left:6px;color:#4A4338}
.share-card .desc{font-size:14.5px;line-height:1.5;color:#2C2822;margin-top:12px;position:relative}
.traits{position:relative;margin-top:14px;display:grid;grid-template-columns:1fr 1fr;gap:8px 16px}
.traits div{font-family:var(--mono);font-size:11px;line-height:1.35;color:#3E382F}
.tr-bar{display:block;height:3px;background:rgba(27,25,21,.16);margin-top:4px;position:relative}
.tr-fill{position:absolute;left:0;top:0;bottom:0;background:var(--rice-ink)}
.share-card .fact{position:relative;font-size:13px;line-height:1.5;color:#3E382F;margin-top:12px}
.share-card .foot{position:relative;display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-top:14px;padding-top:12px;border-top:1px solid rgba(27,25,21,.2);font-family:var(--mono);font-size:11px;color:#3E382F;line-height:1.55}
.share-card .foot b,.share-card .foot a{color:var(--rice-ink);font-weight:500}
.share-card .foot a{border-bottom:1px solid rgba(27,25,21,.35)}
.all,.others{display:grid;grid-template-columns:repeat(8,1fr);gap:10px}
.others{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.mini{padding:16px 14px;text-align:left;display:flex;flex-direction:column;gap:6px;min-height:150px}
.mini .g{font-family:var(--brush);font-size:46px;line-height:1;color:var(--ink)}
.mini .g.dev{font-family:var(--dev);font-size:30px;line-height:1.4}
.mini .n{font-size:14px;color:var(--ink);font-weight:500;margin-top:auto}
.mini .e{font-family:var(--display);font-style:italic;font-size:13px;color:var(--ink-2);line-height:1.3}
.mini:hover{border-color:var(--ink-2)}
.mini.on{border-color:var(--seal-hi)}
.disc{margin-top:16px;font-size:13px;line-height:1.5;color:var(--ink-2);max-width:78ch}
.rlabel{margin-bottom:10px}

/* quiz result */
.t2-qres{padding:36px 0 0}
.qr-top{display:grid;grid-template-columns:minmax(280px,440px) minmax(0,1fr);gap:36px;align-items:start;margin-top:8px}
.epithet{font-family:var(--display);font-style:italic;font-size:clamp(22px,2.5vw,30px);color:var(--ink);margin:8px 0 10px}
.cta-row{margin:8px 0 0}
.conn{list-style:none}
.conn li{padding:8px 0;border-top:1px solid var(--rule);font-size:16px}
.conn a{color:var(--ink);border-bottom:1px solid var(--seal-hi)}

/* about, library, privacy */
.t2 .mt{margin-top:48px}
.t2 .prose.gap{margin:12px 0 18px}
.onpage{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:22px}
.onpage a{font-family:var(--mono);font-size:12px;color:var(--ink-2);border-bottom:1px solid var(--rule-strong);padding-bottom:2px}
.onpage a:hover{color:var(--ink)}
.editor{display:flex;gap:16px;align-items:center;padding:18px 20px;margin:8px 0 18px;max-width:520px}
.editor .ename{font-family:var(--display);font-size:28px;color:var(--ink);line-height:1}
.levels{display:grid;gap:14px;margin-top:8px}
.level{padding:18px 20px}
.level h3{font-family:var(--display);font-weight:400;font-size:28px;color:var(--ink);margin-bottom:6px}
.src-list{list-style:none;margin-top:8px}
.src-list li{padding:12px 0;border-top:1px solid var(--rule);font-size:16px;line-height:1.55;color:var(--ink-2);max-width:72ch}
.src-list a{color:var(--ink);border-bottom:1px solid var(--seal-hi)}
.planned{list-style:none;display:grid;gap:10px}
.planned li{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:baseline;padding:14px 0;border-top:1px solid var(--rule)}
.planned h3{font-family:var(--display);font-weight:400;font-size:clamp(22px,2.5vw,28px);color:var(--ink)}
.readnow{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.readnow a{display:flex;flex-direction:column;gap:8px;padding:20px 18px;min-height:150px;height:100%}
.readnow h3{font-family:var(--display);font-weight:400;font-size:26px;color:var(--ink);line-height:1.1}
.readnow p{font-size:14.5px;color:var(--ink-2)}
.updated{margin-top:28px;font-family:var(--mono);font-size:12px;color:var(--ink-2)}

/* 404 */
.t2-404{position:relative;overflow:hidden;padding:56px 0 96px;min-height:62vh}
.t2-404 .miss{right:-10px;top:-30px;font-size:clamp(200px,38vw,440px);opacity:.08}
.t2-404 .wrap{position:relative;z-index:1}
.t2-404 .h1{font-size:clamp(48px,8vw,92px);max-width:10em}
.t2-404 .lede{margin-top:16px}
.notfound-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:28px}
.lang-list{list-style:none;display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:12px}
.lang-list a{font-size:16px;color:var(--ink);border-bottom:1px solid var(--seal-hi)}

@media (min-width:960px){
  .qr-top .share-card{position:sticky;top:84px}
}
@media (max-width:1240px){
  .res{grid-template-columns:180px 1fr}
  .source{grid-column:1 / -1;border-left:0;border-top:1px solid var(--rule)}
  .all{grid-template-columns:repeat(4,1fr)}
}
@media (max-width:1100px){
  .screens{grid-template-columns:1fr}
  .result-col{max-width:560px}
  .qr-top{grid-template-columns:1fr}
  .qcard{min-height:0}
}
@media (max-width:900px){
  .v-hero .ghost-zheng,.q-hero .ghost-jiang{opacity:.045}
  .method,.legend-seals{grid-template-columns:1fr 1fr}
  .step:nth-child(3){border-left:0;padding-left:0}
  .lrow{grid-template-columns:56px 1fr}
  .lgo{grid-column:1 / -1;justify-self:start}
}
@media (max-width:560px){
  .vsearch{height:56px}
  .vsearch button{padding:0 14px}
  .res{grid-template-columns:1fr}
  .verdict{border-right:0;border-bottom:1px solid var(--rule);flex-direction:row;flex-wrap:wrap;align-items:center}
  .verdict .conf{width:100%}
  .res>div{padding:20px 16px}
  .method,.legend-seals{grid-template-columns:1fr}
  .step{border-left:0;padding-left:0}
  .qcard{padding:22px 16px}
  .qtext{margin:22px 0 16px}
  .opt{grid-template-columns:36px 1fr;padding:12px}
  .opt .k{display:none}
  .share-card{min-height:0;padding:20px 16px}
  .share-card .glyph{font-size:120px}
  .card-wait{min-height:240px}
  .card-wait .wait-g{font-size:120px}
  .all{grid-template-columns:1fr 1fr}
  .traits{grid-template-columns:1fr}
  .share-card .foot{flex-direction:column;align-items:flex-start}
  .qfoot{gap:8px}
}
