:root{color-scheme:light;--paper:#f7f5f0;--ink:#25251f;--muted:#625e54;--red:#8e3a2f;--line:#d8d1c3;--field:#fffdf8;--jade:#355f4d}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font:18px/1.85 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif}a{color:var(--red);text-underline-offset:5px}a:hover{text-decoration-thickness:2px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--red);outline-offset:5px}p{margin:0 0 1.15em;color:var(--muted)}h1,h2,h3{font-family:"Songti SC","Noto Serif CJK SC","SimSun",serif;font-weight:600;line-height:1.45}h1{font-size:clamp(32px,4vw,46px);margin:0 0 24px}h2{font-size:28px;margin:48px 0 18px}h3{font-size:24px;margin:0 0 10px}.site-header,main,.site-footer{width:min(1040px,calc(100% - 64px));margin-inline:auto}.site-header{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:30px 0;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:14px;color:var(--ink);text-decoration:none;white-space:nowrap;font-family:"Songti SC",serif;font-size:23px;font-weight:600}.brand small{display:block;font:12px/1.5 sans-serif;letter-spacing:2px;color:var(--muted)}.seal{display:grid;place-content:center;width:46px;height:52px;border:1px solid var(--red);background:var(--red);color:var(--paper);font-size:21px;writing-mode:vertical-rl;letter-spacing:3px}.site-header nav{display:flex;flex-wrap:wrap;gap:4px 24px;font-size:15px}.site-header nav a{padding:10px 0;color:var(--muted);text-decoration:none}.site-header nav a[aria-current=page]{color:var(--red);text-decoration:underline}.skip{position:absolute;top:-100px;left:20px;background:var(--paper);padding:10px;z-index:5}.skip:focus{top:8px}.hero{position:relative;padding:78px 0 48px}.eyebrow{color:var(--red);font-size:14px;letter-spacing:2px;margin-bottom:24px}.hero h1{font-size:clamp(48px,7vw,80px);line-height:1.35;letter-spacing:5px;margin-bottom:24px}.lead{font-size:21px;line-height:1.9;max-width:690px}.actions{display:flex;align-items:center;flex-wrap:wrap;gap:20px 32px;margin:32px 0 12px}.button{display:inline-flex;align-items:center;justify-content:center;gap:24px;min-height:52px;padding:12px 24px;background:var(--red);border:1px solid var(--red);border-radius:3px;color:#fff;text-decoration:none;font:inherit;cursor:pointer}.button:hover{filter:brightness(1.08)}.button:disabled{opacity:.65;cursor:wait}.text-link{display:inline-block;min-height:44px;padding:6px 0}.caption{font-size:14px;color:var(--muted)}.hero-note{position:absolute;right:32px;top:92px;display:flex;gap:32px;font-family:"Songti SC",serif;font-size:22px;color:var(--muted)}.hero-note span{writing-mode:vertical-rl;letter-spacing:9px;border-right:1px solid var(--line);padding-right:18px}.hero-note span:nth-child(2){margin-top:60px}.hero-note span:nth-child(3){margin-top:120px}.practice{padding:50px 0 24px;border-top:1px solid var(--line)}.practice h2{margin-top:0}.feature{display:grid;grid-template-columns:70px 1fr;gap:30px;padding:28px 0;border-top:1px solid var(--line)}.feature p{max-width:680px;margin:0}.number{font-family:"Songti SC",serif;font-size:32px;color:var(--red)}.closing{border-top:1px solid var(--line);padding:48px 0 10px}.closing h2{margin-top:0}.closing p{max-width:700px}.reading{max-width:740px;padding-top:62px;padding-bottom:24px}.reading .lead{color:var(--red)}.release-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 0;border-bottom:1px solid var(--line)}.release-row h2{font-size:23px;margin:0}.status{font-size:16px;color:var(--jade)}.note{padding:18px 20px;border-left:2px solid var(--line);margin:24px 0;font-size:16px}.site-footer{margin-top:60px;border-top:1px solid var(--line);padding:28px 0 42px;font-size:14px}.site-footer p{margin:4px 0}.site-footer a{overflow-wrap:anywhere}.site-footer p:first-child{color:var(--ink);margin-bottom:16px}label{display:block;font-weight:500;margin:26px 0 8px}textarea,select{display:block;width:100%;font:inherit;color:var(--ink);background:var(--field);border:1px solid var(--line);border-radius:3px;padding:12px}textarea{min-height:220px;resize:vertical}#text-help{margin-top:8px}#feedback-form .button{margin-top:10px}#meta{overflow-wrap:anywhere}.error{color:var(--red);margin-top:20px}.notice{border-left:3px solid var(--jade);padding:20px 24px;margin-top:32px}.notice h2{margin-top:0}.contact{margin-top:38px;overflow-wrap:anywhere}[hidden]{display:none!important}
@media(max-width:760px){.site-header,main,.site-footer{width:calc(100% - 40px)}.site-header{align-items:flex-start;flex-direction:column;gap:20px;padding:22px 0 16px}.site-header nav{gap:4px 20px}.hero{padding-top:42px}.hero-note{display:none}.hero h1{letter-spacing:2px}.lead{font-size:19px}.feature{grid-template-columns:34px 1fr;gap:18px}.reading{padding-top:38px}h2{font-size:25px}h3{font-size:22px}.release-row{align-items:flex-start}.site-footer{margin-top:40px}.eyebrow{letter-spacing:1px}}
@media(prefers-color-scheme:dark){:root{color-scheme:dark;--paper:#191814;--ink:#eee8dc;--muted:#bdb6a9;--red:#d99182;--line:#494439;--field:#24221c;--jade:#9dc4ad}.button,.seal{background:#8e3a2f;color:#fff;border-color:#8e3a2f}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Selectable Kai inscriptions share the image coordinate system.
   One-character horizontal lines avoid WebKit offsetting upright Kai glyphs.
   Lengths use scene-width units (the artwork is 3:2); seven characters span six steps. */
@font-face{font-family:"Duiju Kai";src:url("/duiju-kai.woff2?v=162e6594652b3aa2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
.couplet{--upper:80%;--lower:59%;--top:14%;--length:32.6667cqw;--size:4.6cqw;--minimum:520px;position:relative;display:block;width:100%;max-width:740px;margin:0 auto 28px;padding:0;border:1px solid var(--line);background:#f8f3e8;overflow:hidden;color:#332820;font-family:"Duiju Kai",KaiTi,serif;font-weight:400;line-height:1;letter-spacing:0;text-align:center}
.couplet-scene{display:block;position:relative;width:max(100%,var(--minimum));aspect-ratio:3/2;container-type:inline-size;left:100%;transform:translateX(-100%)}
.couplet-art{display:block;width:100%;height:100%;pointer-events:none}
.couplet-line{--step:max(1em,calc((var(--length) - 1em)/6));position:absolute;top:calc(var(--top) - (var(--step) - 1em)/2);left:var(--upper);width:1em;transform:translateX(-50%);writing-mode:horizontal-tb;white-space:normal;word-break:break-all;line-break:anywhere;font-family:"Duiju Kai",KaiTi,serif;font-size:var(--size);font-weight:400;line-height:var(--step);letter-spacing:0;text-align:center;text-align-last:auto;font-synthesis:none}
.couplet-line+.couplet-line{left:var(--lower)}
.couplet-index{--upper:84%;--lower:60.3%;--top:14%;--length:36cqw;color:#f0d7a1}
.couplet-guide{--upper:73.1%;--lower:27.6%;--top:22%;--length:32.6667cqw;--minimum:460px}
.couplet-guide .couplet-scene,.couplet-404 .couplet-scene,.couplet-guide-lianzhen .couplet-scene{left:50%;transform:translateX(-50%)}
.couplet-404{--upper:83.1%;--lower:19.9%;--top:19%;--length:32.6667cqw;--minimum:394px;--size:4.6cqw;color:#f0d7a1}
.couplet-privacy{--upper:86%;--lower:67%;--top:17%;--length:30cqw}
.couplet-guide-sishu{--upper:80%;--lower:59%;--top:14%;--length:32.6667cqw}
.couplet-guide-lianzhen{--upper:85%;--lower:33%;--top:13%;--length:32.6667cqw;--minimum:410px;--size:4.8cqw}
.couplet-guide-lianshe{--upper:86%;--lower:57%;--top:15%;--length:32.6667cqw;color:#f0d7a1}
.couplet-guide-mine{--upper:82%;--lower:56.5%;--top:28%;--length:30.6667cqw}
.couplet-download{--upper:61%;--lower:50%;--top:13%;--length:24cqw;--minimum:680px;--size:3.1cqw}
.couplet-download .couplet-scene{left:50%;transform:translateX(-50%)}
.couplet-feedback{--minimum:0px}
.couplet-feedback .couplet-line{left:53%;top:17%;height:60%;width:32.5%;transform:none;display:flex;flex-direction:row-reverse;writing-mode:horizontal-tb;font-size:3.7cqw;line-height:1.1;letter-spacing:0;text-align:center}
.couplet-feedback .couplet-line+.couplet-line{left:15%}
.couplet-phrase{display:block;flex:none;width:1em;margin-inline:auto;writing-mode:horizontal-tb;white-space:normal;word-break:break-all;line-break:anywhere;text-align:center;text-align-last:auto;line-height:1.1}
@media(max-width:600px){
 .couplet-404 .couplet-scene{transform:translateX(-51%)}
 .couplet-guide-lianzhen .couplet-scene{transform:translateX(-54%)}
 .couplet-feedback .couplet-scene{width:100%;aspect-ratio:auto;left:0;transform:none;padding:12px;background:#5f4935}
 .couplet-feedback .couplet-art{position:absolute;width:1px;height:1px;opacity:0}
 .couplet-feedback .couplet-line,.couplet-feedback .couplet-line+.couplet-line{position:relative;left:auto;top:auto;width:100%;height:auto;aspect-ratio: .72;padding:14% 5% 8%;font-size:7.7cqw;background-image:url('/art-feedback.jpg?v=ab8f58d4f0e6d2e8');background-size:270% auto;background-position:81% 48%;}
 .couplet-feedback .couplet-line+.couplet-line{margin-top:12px;background-position:19% 48%}
}
.guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 40px;margin:24px 0 32px}.guide-card{display:block;padding:28px 0;border-top:1px solid var(--line);color:var(--ink);text-decoration:none}.guide-card h3{margin:8px 0 12px}.guide-card h3 span{float:right;color:var(--red)}.guide-card p{margin-bottom:8px}.guide-card:hover h3{text-decoration:underline;text-underline-offset:6px}.guide-card .eyebrow{font-family:serif;font-size:18px}.reading-wide{padding-top:62px}.film-section{display:grid;grid-template-columns:1fr minmax(240px,320px);gap:64px;align-items:center;border-top:1px solid var(--line);padding:48px 0}.film-section h2{margin-top:0}.film-section video{display:block;width:100%;height:auto;aspect-ratio:9/16;background:#171712;border:1px solid var(--line);border-radius:4px}.contents{display:flex;flex-wrap:wrap;gap:8px 24px;border-block:1px solid var(--line);padding:18px 0;font-size:16px}.steps{padding-left:1.6em;color:var(--muted)}.steps li{margin-bottom:16px;padding-left:6px}.steps li::marker{color:var(--red)}.guide-definitions dt{color:var(--ink);font-weight:600;margin-top:20px}.guide-definitions dd{margin:4px 0 0;color:var(--muted)}details{padding:20px 0;border-bottom:1px solid var(--line)}summary{cursor:pointer;color:var(--ink)}details p{margin:16px 0 0}summary:focus-visible,video:focus-visible{outline:3px solid var(--red);outline-offset:5px}.guide-version{margin-top:36px}.chapter-links{display:flex;flex-wrap:wrap;gap:12px 28px;border-top:1px solid var(--line);padding-top:20px}.agreement h2{font-size:23px;margin-top:28px}.agreement p:not(.couplet){font-size:17px}
@media(max-width:760px){.guide-grid{grid-template-columns:1fr;gap:0}.film-section{grid-template-columns:1fr;gap:24px}.film-section video{max-width:320px;margin:auto}.reading-wide{padding-top:38px}}
/* The homepage is reserved for the two public boards and the inscription. */
.ranking-intro{text-align:center;padding:40px 0 32px}.ranking-intro .eyebrow{margin-bottom:14px}.ranking-intro .couplet{margin-bottom:0}.ranking-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.ranking-panel{border:1px solid var(--line);border-top:4px solid var(--red);background:var(--field);padding:28px 30px}.ranking-heading{display:flex;align-items:center;gap:20px;border-bottom:1px solid var(--line);padding-bottom:22px}.ranking-heading h2{margin:0 0 6px;font-size:32px}.ranking-heading p{margin:0;font-size:15px}.ranking-seal{display:grid;place-items:center;flex:none;width:48px;height:56px;color:var(--red);border:1px solid currentColor;font:30px/1 "Songti SC",serif}.society-ranking{border-top-color:var(--jade)}.society-ranking .ranking-seal{color:var(--jade)}.ranking-empty{display:flex;min-height:200px;flex-direction:column;align-items:center;justify-content:center;gap:12px}.ranking-empty-mark{font:30px/1 serif;color:var(--line)}.ranking-empty p{font-size:16px;letter-spacing:2px;margin:0}
@media(max-width:760px){.ranking-intro{padding:28px 0}.ranking-grid{grid-template-columns:1fr;gap:20px}.ranking-panel{padding:20px}.ranking-heading{gap:16px;padding-bottom:16px}.ranking-heading h2{font-size:28px}.ranking-empty{min-height:120px}.ranking-home+.site-footer{margin-top:32px}}
/* Keep the same inscription treatment and appropriate glyph fonts in both scripts. */
html:lang(zh-Hant) body{font-family:-apple-system,BlinkMacSystemFont,"PingFang TC","PingFang HK","Microsoft JhengHei",sans-serif}
html:lang(zh-Hant) :is(h1:not(.couplet),h2,h3,.brand,.ranking-seal){font-family:"Songti TC","Noto Serif CJK TC","PMingLiU",serif}
.site-header{flex-wrap:wrap;gap:16px 24px}
.site-header .language-switch{margin-left:auto;gap:4px;flex-wrap:nowrap;border:1px solid var(--line);border-radius:3px;padding:2px}
.site-header .language-switch a{display:flex;align-items:center;justify-content:center;min-width:52px;min-height:48px;padding:8px 10px}
.site-header .language-switch a[aria-current=true]{background:var(--red);color:var(--paper);text-decoration:none}
@media(max-width:760px){.site-header{flex-direction:row;align-items:center}.site-header>nav:not(.language-switch){order:3;width:100%}.site-header .language-switch{order:2}}
