:root{--paper: #f6f0e1;--paper-2: #ece2cb;--paper-3: #e2d4b4;--ink: #26221e;--ink-soft: #6b6157;--ink-faint: rgba(38, 34, 30, .12);--seal: #b5262b;--seal-dark: #8c1a1f;--line: #c9b994;--silk: #b49a62;--silk-dark: #7d6a3f;--jade: #4f7a6c;--wood-1: #3e2716;--wood-2: #8a5a33;--wood-3: #c08a57;--ease-scroll: cubic-bezier(.65, 0, .25, 1);--t-scroll: 1.5s;--font-serif: "Noto Serif SC", "Songti SC", "STSong", Georgia, serif;--font-brush: "Ma Shan Zheng", "Kaiti SC", "STKaiti", "KaiTi", var(--font-serif);--font-mono: ui-monospace, "SFMono-Regular", Consolas, monospace;--grain: 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='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .28 0 0 0 0 .18 0 0 0 .09 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;color:var(--ink);background-color:var(--paper);background-image:var(--grain);font:15px/1.55 var(--font-serif)}a{color:var(--ink)}::selection{background:#b5262b33}header.top{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;padding:10px 24px;border-bottom:1px solid var(--line)}header.top h1{margin:0;font-size:20px;font-weight:700}.brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink)}.brand-name{font-family:var(--font-serif);letter-spacing:.04em}.brand-sub{font:400 13px var(--font-serif);color:var(--seal);padding-left:10px;border-left:1px solid var(--line)}header.top nav{display:flex;flex-wrap:wrap;gap:4px 22px}header.top nav a{position:relative;padding:4px 0;color:var(--ink-soft);text-decoration:none;letter-spacing:.04em;transition:color .25s}header.top nav a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:4px}header.top nav a[aria-current=page]{color:var(--seal);text-decoration:underline;text-underline-offset:4px}.seal{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;padding:3px 4px;min-width:26px;font:400 15px/1 var(--font-brush);color:#fff7ee;background:var(--seal);border-radius:3px 5px 2px 4px;box-shadow:inset 0 0 0 2px var(--seal),inset 0 0 0 3px #fff7eea6}.seal span{display:block}.layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:20px;padding:20px 24px}@media(min-width:901px){.stage{position:sticky;top:92px}}@media(max-width:900px){.layout{grid-template-columns:minmax(0,1fr);padding:16px}}.stage{min-width:0;align-self:start}canvas.grid{display:block;width:100%;height:auto;image-rendering:pixelated;border:8px solid var(--silk);outline:1px solid var(--silk-dark);background:var(--paper-2);animation:unroll-x var(--t-scroll) .2s var(--ease-scroll) backwards}canvas.paintable{cursor:crosshair;touch-action:none}.status{margin-top:8px;color:var(--ink-soft);font:12px var(--font-mono);overflow-wrap:anywhere}.controls{display:flex;flex-direction:column;gap:14px;min-width:0}.panel{position:relative;border:1px solid var(--line);border-bottom:4px solid var(--wood-2);background:#fffcf480}.controls>.panel{animation:unroll-y .6s var(--ease-scroll) backwards}.controls>.panel:nth-child(2){animation-delay:.06s}.controls>.panel:nth-child(3){animation-delay:.12s}.controls>.panel:nth-child(4){animation-delay:.18s}.controls>.panel:nth-child(5){animation-delay:.24s}.controls>.panel:nth-child(n+6){animation-delay:.3s}.panel h3{margin:0}.panel-toggle{display:flex;align-items:center;width:100%;padding:6px 10px;font:600 13px var(--font-serif);letter-spacing:.06em;text-align:left;color:var(--ink);background:var(--paper-2);border:0;border-bottom:1px solid var(--line);border-radius:0;cursor:pointer}.panel-toggle:hover{background:var(--paper-3)}.panel-toggle:after{content:"卷";margin-left:auto;font:400 14px var(--font-brush);color:var(--ink-soft)}.panel-fixed,.panel-fixed:hover{cursor:default;background:var(--paper-2)}.panel-fixed:after{content:none}.panel.rolled .panel-toggle{border-bottom-color:transparent}.panel.rolled .panel-toggle:after{content:"展"}.panel-body{display:grid;grid-template-rows:1fr;transition:grid-template-rows .5s var(--ease-scroll)}.panel.rolled .panel-body{grid-template-rows:0fr}.panel-inner{min-height:0;overflow:hidden;padding:10px 12px 12px;transition:padding .5s var(--ease-scroll),opacity .3s}.panel.rolled .panel-inner{padding-top:0;padding-bottom:0;opacity:0}.row{display:flex;align-items:center;gap:8px;margin:5px 0}.row>span{flex:0 0 110px;color:var(--ink-soft);font-size:13px}.row input[type=range],.row select{flex:1;min-width:0;max-width:100%}.row:has(>button){flex-wrap:wrap}.row output{width:40px;text-align:right;font:12px var(--font-mono)}input[type=range],input[type=checkbox]{accent-color:var(--seal)}input[type=range]{cursor:pointer}.checks{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:13px}.check{cursor:pointer}.palette{display:flex;flex-wrap:wrap;gap:5px}button,select,input[type=number]{font:13px var(--font-serif);color:var(--ink);background-color:#fffcf4b3;border:1px solid var(--ink-soft);border-radius:2px 4px 3px 2px;padding:3px 10px}button{cursor:pointer;transition:background-color .15s,color .15s}button:hover{background-color:var(--paper-3)}button:active{transform:translateY(1px)}button:focus-visible,select:focus-visible,input:focus-visible,a:focus-visible{outline:2px solid var(--seal);outline-offset:2px}button.on{color:#f8efdc;background-color:var(--ink);border-color:var(--ink)}button.on:hover{background-color:var(--ink)}input[type=number]{width:120px}.readout{display:grid;grid-template-columns:1fr auto;gap:2px 12px;margin:0;font-size:13px}.readout dt{color:var(--ink-soft)}.readout dd{margin:0;font:12px var(--font-mono);text-align:right}.registries summary{cursor:pointer;font-size:13px}.registries ul{margin:4px 0 6px;padding-left:18px;font:12px var(--font-mono)}.shell{max-width:720px;padding:16px;display:flex;flex-direction:column;gap:12px}.poem{font-family:var(--font-serif)}.rod{position:absolute;display:block;pointer-events:none}.rod.v{top:-4px;right:0;bottom:-4px;left:0;border-radius:3px;background:var(--wood-2);border:1px solid var(--wood-1)}.rod.h{position:relative;width:100%;height:10px;border-radius:5px;background:var(--wood-2);border:1px solid var(--wood-1)}.rod.h.bottom{height:12px;width:calc(100% - 4px)}.handscroll{--rod-w: 22px;position:relative;padding:0 var(--rod-w);margin:14px 0}.handscroll-paper{position:relative;overflow:hidden;background:var(--paper) var(--grain);border-top:8px solid var(--silk);border-bottom:8px solid var(--silk);clip-path:inset(0 50% 0 50%);transition:clip-path var(--t-scroll) var(--ease-scroll)}.handscroll.open .handscroll-paper{clip-path:inset(0 0 0 0)}.handscroll-inner{position:relative}.rod-btn{position:absolute;top:-6px;bottom:-6px;width:var(--rod-w);left:calc(50% - var(--rod-w));padding:0;border:0;border-radius:3px;background:none;overflow:visible;cursor:pointer;transition:left var(--t-scroll) var(--ease-scroll)}.rod-btn.right{left:50%}.rod-btn:hover{background:none}.rod-btn:hover .rod{background:var(--wood-3)}.handscroll.open .rod-btn.left{left:0}.handscroll.open .rod-btn.right{left:calc(100% - var(--rod-w))}.hanging{position:relative;display:flex;flex-direction:column;align-items:center;padding-top:26px;transform-origin:50% 0}.hanging-cord{position:absolute;top:0;left:50%;width:60px;height:28px;transform:translate(-50%);background:radial-gradient(circle at 50% 3px,var(--wood-1) 0 3px,transparent 3.5px),linear-gradient(to top right,transparent calc(50% - 1px),var(--silk-dark) calc(50% - .5px) calc(50% + .5px),transparent calc(50% + 1px)) left / 50% 100% no-repeat,linear-gradient(to top left,transparent calc(50% - 1px),var(--silk-dark) calc(50% - .5px) calc(50% + .5px),transparent calc(50% + 1px)) right / 50% 100% no-repeat}.hanging-top{display:flex;flex-direction:column;align-items:stretch;width:100%;padding:0 10px;border:0;background:none;overflow:visible;cursor:pointer}.hanging-top:hover{background:none}.hanging-top:hover .rod.h{background:var(--wood-3)}.hanging-title{display:block;margin:0 8px;padding:6px 10px;font:600 14px var(--font-serif);letter-spacing:.06em;color:#f4ead3;background:#34504a;text-align:center}.hanging-title:after{content:" 展";font:400 14px var(--font-brush);color:#e9c98a}.hanging.open .hanging-title:after{content:" 卷"}.hanging-body{display:grid;grid-template-rows:0fr;width:calc(100% - 36px);background:var(--paper) var(--grain);border-left:7px solid var(--silk);border-right:7px solid var(--silk);transition:grid-template-rows 1.1s var(--ease-scroll)}.hanging.open .hanging-body{grid-template-rows:1fr}.hanging-inner{min-height:0;overflow:hidden;padding:0 16px;opacity:0;transition:padding 1.1s var(--ease-scroll),opacity .6s .2s}.hanging.open .hanging-inner{padding:16px;opacity:1}.hanging .rod.h.bottom{margin-top:-2px}.hang-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:22px;align-items:start}.home{width:100%;max-width:1200px;margin:0 auto;padding:16px 32px 40px;gap:36px}.home-hero{position:relative;padding:18px 0 0}.home-hero .handscroll-inner{min-height:400px;display:grid;place-items:center;overflow:hidden}.hero-text{position:relative;z-index:1;text-align:center;padding:36px 20px 120px}.hero-text>*{opacity:0;transition:opacity 1s}.open .hero-text>*{opacity:1;transition-delay:1s}.home-kicker{margin:0 0 10px;font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft)}.home-title{margin:0;display:flex;flex-direction:column;align-items:center;line-height:1}.home-title .cn{font:400 clamp(56px,10vw,104px) / 1 var(--font-brush);letter-spacing:.08em}.home-title .en{margin-top:10px;font:600 clamp(18px,2.4vw,22px) var(--font-serif);letter-spacing:.08em;color:var(--ink-soft)}.home-tag{margin:16px auto 22px;max-width:46ch;font-size:17px}.section-title{margin:0 0 12px;padding-bottom:6px;font:600 18px var(--font-serif);letter-spacing:.04em;border-bottom:1px solid var(--line)}.rule{border:0;border-top:1px solid var(--line);margin:0 0 12px}.reveal{opacity:0;transition:opacity .7s}.reveal.in{opacity:1}.home-block{scroll-margin-top:80px}.home-note{margin:12px 0 16px;font-size:13px;color:var(--ink-soft)}.home-steps{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:6px}.home-poem{margin:0 0 10px;font-size:17px;text-align:center}.home-goals{margin:0 0 10px;padding-left:18px;font-size:13px}.home-goals li::marker{content:"◆ ";color:var(--seal);font-size:10px}.home-meta{margin:0 0 10px;font-size:12px;color:var(--ink-soft)}.cta-row{display:flex;flex-wrap:wrap;gap:6px;margin:0}.home-cta{display:inline-block;padding:3px 10px;border:1px solid var(--ink-soft);border-radius:2px;color:var(--ink);text-decoration:none;font-size:13px;background:#fffcf499}.home-cta:hover{background:var(--paper-3)}.workshops{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}.workshop{display:flex;flex-direction:column;gap:4px;padding:14px 16px;text-decoration:none;color:var(--ink);background:#fffcf480;border:1px solid var(--line);transition:border-color .15s}.workshop:hover{border-color:var(--ink)}.workshop strong{font-size:16px}.workshop span:last-child{font-size:13px;color:var(--ink-soft)}.home-foot{text-align:center;font-size:12px;color:var(--ink-soft)}.home-foot a{color:var(--ink-soft)}.page-title{text-align:center}.page-title h2{margin:10px 0 0;font-size:22px;letter-spacing:.2em;font-weight:600}.page-title .cn{display:block;font:400 64px/1.1 var(--font-brush);letter-spacing:.1em}.gallery-grid{display:flex;flex-direction:column;gap:30px}.gallery-entry .handscroll-inner{padding:10px}.gallery-caption{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 14px;padding:0 24px}.gallery-caption h4{margin:0;font-size:18px}.gallery-caption .home-meta{margin:0;flex:1}.gallery-thumb{display:block;width:100%;height:auto;image-rendering:pixelated;background:var(--paper-2)}.gallery-empty{text-align:center;padding:30px 0}.empty-glyph{font:400 120px/1 var(--font-brush);color:var(--ink);opacity:.15}@keyframes unroll-x{0%{clip-path:inset(0 50% 0 50%)}to{clip-path:inset(0 0 0 0)}}@keyframes unroll-y{0%{clip-path:inset(0 -12px 100% -12px);opacity:.4}to{clip-path:inset(-12px -12px -12px -12px);opacity:1}}@media(max-width:640px){header.top{padding:10px 16px}.home{padding:12px 16px 32px}.home-hero .handscroll-inner{min-height:340px}.hero-text{padding:28px 8px 100px}.brush-divider{gap:10px}.brush-divider span{font-size:22px}header.top nav{gap:4px 16px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0ms!important}}.complete{padding:14px 24px;text-align:center}.complete h3{margin:0;font:400 40px/1.2 var(--font-brush);color:var(--seal)}.complete p{margin:6px 0 0}.complete .cta-row{justify-content:center;margin-top:10px}.stage .handscroll{margin:26px 0 8px}.arsenal{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px;margin-bottom:10px}.blade{--blade: 40, 40, 40;position:relative;display:grid;justify-items:center;gap:0;padding:8px 4px 6px;overflow:hidden;text-align:center;background:#fffcf499;border:1px solid var(--line);border-bottom:3px solid rgba(var(--blade),.55);border-radius:2px;transition:transform .15s,box-shadow .2s,border-color .2s,background-color .2s}.blade:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,rgba(var(--blade),.16),transparent 70%);opacity:0;transition:opacity .2s;pointer-events:none}.blade:hover{background-color:#fffcf4f2;transform:translateY(-2px)}.blade:hover:before{opacity:.6}.blade.on{background-color:#fffaf0;border-color:rgb(var(--blade));border-bottom-width:3px;box-shadow:0 0 0 1px rgb(var(--blade)),0 4px 10px rgba(var(--blade),.25);color:var(--ink)}.blade.on:hover{background-color:#fffaf0}.blade.on:before{opacity:1}.blade-glyph{position:relative;font:400 34px/1.15 var(--font-brush);color:rgb(var(--blade));transition:transform .2s var(--ease-scroll)}.blade.on .blade-glyph{transform:scale(1.12) rotate(-4deg)}.blade-name{position:relative;font:600 13px var(--font-serif);letter-spacing:.06em}.blade-verb{position:relative;font-size:11px;color:var(--ink-soft);letter-spacing:.1em;min-height:1.4em}.blade-key{position:absolute;top:3px;left:4px;font:10px var(--font-mono);color:var(--ink-soft);opacity:.7}.blade.on:after{content:"";position:absolute;top:4px;right:4px;width:7px;height:7px;background:var(--seal);border-radius:1px}.arsenal.spent .blade{filter:grayscale(.8);opacity:.6}.brush-row{margin-top:4px}.brush-dot{--d: 10px;flex:0 0 30px;height:30px;display:grid;place-items:center}.brush-dot:after{content:"";width:min(var(--d),30px);height:min(var(--d),30px);border-radius:50%;background:var(--ink);opacity:.85;transition:width .12s,height .12s}.hud-left{position:absolute;top:16px;left:16px;z-index:2;display:flex;flex-direction:column;align-items:flex-start;gap:8px;pointer-events:none}.hud-actions{display:grid;grid-template-columns:auto auto;grid-template-areas:"label count" "pips pips";align-items:baseline;column-gap:12px;row-gap:6px;padding:8px 14px 10px;background:#f6f0e1eb;border:1px solid var(--line);border-left:4px solid var(--ink);border-radius:3px;box-shadow:0 2px 10px #26221e1f;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:border-color .3s}.actions-label{grid-area:label;font:600 12px var(--font-serif);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}.actions-count{grid-area:count;justify-self:end;font-family:var(--font-serif);color:var(--ink);font-variant-numeric:tabular-nums}.actions-num{font-size:34px;font-weight:700;line-height:1}.actions-of{font-size:15px;color:var(--ink-soft)}.hud-actions .pips{grid-area:pips;display:flex;flex-wrap:wrap;gap:6px}.pip{width:16px;height:7px;background:var(--ink);border-radius:7px 2px;transform:skew(-18deg);transition:background-color .4s,opacity .4s,transform .4s}.pip.spent{background:transparent;box-shadow:inset 0 0 0 1px var(--ink-soft);opacity:.4;transform:skew(-18deg) scale(.85)}.hud-actions.low{border-left-color:var(--seal)}.hud-actions.low .actions-num,.hud-actions.out .actions-num{color:var(--seal)}.hud-actions.low .pip:not(.spent){background:var(--seal)}.hud-actions.bump{animation:actions-bump .45s ease-out}@keyframes actions-bump{0%{transform:scale(1)}30%{transform:scale(1.08)}to{transform:scale(1)}}.controls .sub-head{margin:14px 0 4px;font:600 12px var(--font-serif);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}.nature{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;margin-bottom:10px}.nature-pad{display:flex;align-items:center;gap:14px;padding:10px 12px;background:#f6f0e18c;border:1px solid var(--line);border-radius:4px}.nature-dial{flex:none;cursor:ns-resize;touch-action:none;border-radius:6px;background:#fffcf4cc;box-shadow:inset 0 0 0 1px var(--line)}.nature-dial.wind-dial{cursor:crosshair;border-radius:50%}.nature-dial:focus-visible{outline:2px solid var(--seal);outline-offset:2px}.nature-info{display:flex;flex-direction:column;gap:2px;min-width:0}.nature-title{font:600 11px var(--font-serif);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}.nature-value{font:700 26px/1.1 var(--font-serif);color:var(--ink);white-space:nowrap;font-variant-numeric:tabular-nums}.nature-word{font:italic 14px var(--font-serif);color:var(--seal)}.nature-hint{margin-top:6px;font-size:12px;line-height:1.35;color:var(--ink-soft)}.stage{--blade: 40, 40, 40}.frame{position:relative}.frame canvas.grid{border-color:var(--silk);transition:box-shadow .3s}.hud-tool{display:flex;align-items:center;gap:8px;padding:3px 12px 3px 6px;background:#f6f0e1e0;border:1px solid var(--line);border-left:3px solid rgb(var(--blade));border-radius:2px;pointer-events:none;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.hud-glyph{font:400 24px/1 var(--font-brush);color:rgb(var(--blade))}.hud-tool strong{font:600 13px var(--font-serif);letter-spacing:.08em}.hud-banner{position:absolute;top:8px;right:8px;bottom:8px;left:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:#f6f0e1b8;-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px);animation:hud-in .5s var(--ease-scroll)}.hud-banner[hidden]{display:none}.hud-banner p{margin:0;font:400 40px/1.1 var(--font-brush);color:var(--seal)}.hud-retry{padding:6px 22px;font-size:15px;letter-spacing:.1em;color:#fff7ee;background-color:var(--seal);border-color:var(--seal-dark)}.hud-retry:hover{background-color:var(--seal-dark)}.status{min-height:1.5em;font:13px var(--font-serif);letter-spacing:.03em}@keyframes hud-in{0%{opacity:0}to{opacity:1}}@media(max-width:640px){.hud-left{top:12px;left:12px}.actions-num{font-size:26px}.arsenal{grid-template-columns:repeat(auto-fill,minmax(70px,1fr))}}.level-layout{grid-template-columns:minmax(0,1fr);max-width:1600px;margin:0 auto;width:100%}.level-layout .stage{position:static}.level-layout .controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:start;gap:14px}.stage{--verse-green: #2f7d4f}.inscription{position:absolute;top:16px;right:16px;display:flex;flex-direction:column;align-items:flex-end;gap:5px;max-width:min(46%,380px);margin:0;padding:0;list-style:none;pointer-events:none}.verse{position:relative;display:flex;flex-direction:column;align-items:flex-end;padding:1px 2px;text-align:right;color:var(--ink);text-shadow:0 0 3px rgba(246,240,225,.95),0 0 6px rgba(246,240,225,.8),0 0 10px rgba(246,240,225,.6);transition:color .5s}.verse-text{position:relative;z-index:1;font:400 19px/1.3 var(--font-brush);letter-spacing:.06em}.verse-text:before{content:"◇";margin-right:8px;font:12px var(--font-serif);color:var(--ink-soft)}.verse-goal{position:relative;z-index:1;font-size:11px;color:var(--ink-soft)}.verse .goal-bar{align-self:stretch;height:2px;margin-top:2px;background:var(--ink-faint)}.verse .goal-fill{display:block;height:100%;width:var(--p, 0%);background:var(--ink-soft);transition:width .4s,background-color .4s}.verse.met{color:var(--verse-green)}.verse.met .verse-text:before{content:"✓";font-weight:700;color:var(--verse-green)}.verse.met .verse-goal{color:var(--verse-green)}.verse.met .goal-fill{width:100%;background:var(--verse-green)}@media(max-width:640px){.inscription{top:10px;right:10px;max-width:58%}.verse-text{font-size:15px}}.stamp{position:absolute;right:6%;bottom:14%;opacity:0;pointer-events:none;transform-origin:50% 50%}.stamp.on{animation:stamp-down .55s cubic-bezier(.2,.9,.3,1.15) forwards}.stamp-seal{min-width:96px;padding:12px 14px;font-size:54px;gap:2px;mix-blend-mode:multiply;box-shadow:inset 0 0 0 3px var(--seal),inset 0 0 0 5px #fff7eeb3,0 0 0 2px #b5262b40}.stamp.on:after{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border:2px solid rgba(181,38,43,.55);border-radius:6px;animation:stamp-ring .8s .3s ease-out forwards;opacity:0}@keyframes stamp-down{0%{opacity:0;transform:rotate(-14deg) scale(2.6)}55%{opacity:1;transform:rotate(-9deg) scale(.9)}75%{transform:rotate(-9deg) scale(1.04)}to{opacity:.94;transform:rotate(-9deg) scale(1)}}@keyframes stamp-ring{0%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(1.5)}}.stage{padding:6px 0 4px}.frame{--p: 0;--edge: calc(3px + (100% - 6px) * var(--p));--mount: 24px;display:flow-root;isolation:isolate}.frame:after{content:"";position:absolute;z-index:-1;top:6px;bottom:0;left:0;width:var(--edge);box-shadow:0 14px 14px -4px #2e1e0e66;pointer-events:none}.mount{position:absolute;top:0;right:0;bottom:0;left:0;clip-path:inset(0 calc(100% - var(--edge)) 0 0);background:radial-gradient(circle at 50% 50%,rgba(233,201,138,.14) 0 2px,transparent 2.5px) 0 0 / 22px 22px,linear-gradient(180deg,#3d5c54,#2c4540 50%,#3d5c54);box-shadow:inset 0 0 0 1px #e9c98a8c,inset 0 0 0 4px #14221e59}.frame canvas.grid{position:relative;z-index:1;margin:var(--mount) 0;border:3px solid var(--silk-dark);outline:none;animation:none;clip-path:inset(0 calc(100% - var(--edge)) 0 0)}.roll{position:absolute;top:-4px;bottom:-4px;left:3px;z-index:3;width:22px;transform:translate(-50%);border-radius:3px;background:var(--wood-2);border:1px solid var(--wood-1);pointer-events:none}.roll.lead{left:var(--edge)}.music-mark{position:absolute;z-index:2;bottom:calc(var(--mount) / 2);left:calc(3px + (100% - 6px) * var(--music, 0));width:5px;height:5px;border-radius:50%;transform:translate(-50%,50%);background:#e9c98abf;box-shadow:0 0 4px #e9c98a59;opacity:0;transition:opacity .8s ease;pointer-events:none}.music-mark.on{opacity:1}.frame:before{content:"";position:absolute;top:var(--mount);bottom:var(--mount);left:calc(var(--edge) - 40px);width:32px;z-index:2;background:linear-gradient(90deg,transparent,rgba(60,38,16,.34));pointer-events:none}.frame .hud-left{top:calc(var(--mount) + 10px);left:18px}.frame .inscription{top:calc(var(--mount) + 10px);right:18px}.frame .hud-banner{inset:var(--mount) 3px;z-index:2}.frame .stamp{z-index:4}.frame .hud-left,.frame .inscription{z-index:2;transition:opacity .7s .2s,transform .7s .2s}.frame:not(.ready) .hud-left,.frame:not(.ready) .inscription{opacity:0;transform:translateY(-8px)}.verse.plain .verse-text{font:600 13px var(--font-serif);letter-spacing:.02em}.status{padding:0 4px;margin-top:12px}.arsenal{grid-template-columns:repeat(auto-fit,minmax(70px,1fr))}.noise-wrap{display:flex;flex-direction:column;gap:4px}.noise-canvas{display:block;width:100%;height:auto;min-height:90px;border:1px solid var(--line);background:var(--paper);touch-action:none}.noise-graph-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px;align-items:stretch}.noise-height{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:40px;font-size:10.5px;color:var(--ink-soft);cursor:ns-resize}.noise-height-input{flex:1;min-height:60px;width:22px;margin:0;writing-mode:vertical-lr;direction:rtl;accent-color:#b22222;cursor:ns-resize}.noise-height-input:disabled{opacity:.45;cursor:not-allowed}.noise-readout{margin:0;font:12px ui-monospace,Consolas,monospace}.sound-toggle{padding:1px 8px;font:400 18px/1.4 var(--font-brush);border-color:var(--line);background:transparent}header.top nav .sound-toggle{margin-right:10px}.site-nav .sound-toggle{padding:0 7px;font-size:16px}.sound-toggle.waiting{animation:sound-wait 1.6s ease-in-out infinite}@keyframes sound-wait{50%{color:var(--seal, #b03a2e);border-color:currentColor}}@media(prefers-reduced-motion:reduce){.sound-toggle.waiting{animation:none;text-decoration:underline}}.submit-note{margin:10px 0 0;font-size:14px;color:var(--ink-soft)}.submit-note .alias,.gallery-alias{font-family:var(--font-brush);font-size:1.15em;letter-spacing:.06em;color:var(--ink);font-weight:400}.submit-note a{color:var(--seal)}.gallery-strokes{margin:0;font-size:14px}.gallery-strokes b{font-size:18px;margin-right:4px}.gallery-best{display:inline-block;margin-left:10px;padding:1px 6px;font:400 14px var(--font-brush);color:#fff7ee;background:var(--seal);border-radius:3px 5px 2px 4px;vertical-align:1px}.gallery-caption .gallery-alias{font-size:18px}.name-menu{margin:12px auto 0;max-width:460px}.name-lead{margin:0 0 6px;font-size:13px;letter-spacing:.1em;color:var(--ink-soft)}.name-fields{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 16px}.name-field{display:grid;gap:2px;text-align:left;font-size:12px;color:var(--ink-soft)}.name-field select{min-width:150px;padding:4px 8px;font-size:15px}.name-preview{display:block;margin:8px 0 6px;font:400 34px/1.2 var(--font-brush);letter-spacing:.06em;color:var(--ink)}.name-menu .home-cta[disabled]{opacity:.55;cursor:default}.gallery-tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:0 0 8px}.gallery-tab[aria-pressed=true]{color:#f8efdc;background-color:var(--ink);border-color:var(--ink)}.gallery-status{text-align:center}.gallery-status[hidden]{display:none}.gallery-stage{position:relative;max-width:1100px;width:100%;margin:0 auto}.pscroll{--f: 1;--rod: 18px;position:relative;padding:0 var(--rod)}.ps-paper{overflow:hidden;background:var(--paper) var(--grain);border-top:6px solid var(--silk);border-bottom:6px solid var(--silk);clip-path:inset(0 calc((1 - var(--f)) * 50%) 0 calc((1 - var(--f)) * 50%));transition:clip-path .85s var(--ease-scroll)}.ps-paper img{display:block;width:100%;height:auto;-webkit-user-select:none;user-select:none}.ps-rod{position:absolute;top:-5px;bottom:-5px;width:var(--rod);border-radius:3px;background:var(--wood-2);border:1px solid var(--wood-1);transition:left .85s var(--ease-scroll)}.ps-rod.left{left:calc((1 - var(--f)) * (50% - var(--rod)))}.ps-rod.right{left:calc(100% - var(--rod) - (1 - var(--f)) * (50% - var(--rod)))}.gallery-entry{margin-bottom:8px}.gallery-entry .gallery-caption{margin-top:14px;justify-content:center;text-align:center}.gallery-shelf{display:grid;grid-template-columns:repeat(auto-fill,190px);justify-content:center;gap:22px 18px;max-width:1100px;width:100%;margin:28px auto 0}.shelf-item{min-width:0;display:grid;gap:6px;padding:8px 4px 6px;text-align:center;background:none;border:0;border-radius:4px;color:var(--ink)}.shelf-item:hover{background:none}.shelf-item .pscroll.thumb{--f: .6;--rod: 12px;width:182px;height:119px;transition:transform .25s}.shelf-item:hover .pscroll.thumb,.shelf-item:focus-visible .pscroll.thumb{--f: .85;transform:translateY(-3px)}.pscroll.thumb .ps-paper{position:relative;height:100%;border-top-width:4px;border-bottom-width:4px}.pscroll.thumb .ps-paper img{position:absolute;top:0;left:50%;width:auto;height:100%;max-width:none;transform:translate(-50%)}.pscroll.thumb .ps-rod{top:-3px;bottom:-3px}.shelf-label{display:flex;justify-content:center;align-items:baseline;gap:8px;margin-top:4px}.shelf-name{font:400 17px var(--font-brush);letter-spacing:.05em}.shelf-strokes{font:12px var(--font-mono);color:var(--ink-soft)}.shelf-strokes:after{content:" strokes"}.shelf-level{font-size:12px;color:var(--ink-soft)}@media(max-width:640px){.gallery-shelf{grid-template-columns:repeat(auto-fill,140px);gap:16px 10px}.shelf-item .pscroll.thumb{width:132px;height:89px}}:root{--paper: #f4ecda;--paper-2: #ebe1c8;--paper-3: #ddcfae;--paper-glow: #faf5e8;--ink: #1d1a17;--ink-2: #3d3731;--ink-soft: #6a6056;--ink-faint: rgba(29, 26, 23, .1);--seal: #b3261e;--seal-dark: #861b15;--seal-soft: rgba(179, 38, 30, .12);--gold: #a9823a;--jade: #3f6b5c;--line: #cbbd98;--night: #16130f;--night-2: #221d17;--font-display: "Cormorant Garamond", "Noto Serif SC", Georgia, serif;--font-serif: "Noto Serif SC", "Songti SC", "STSong", Georgia, serif;--font-brush: "Ma Shan Zheng", "Kaiti SC", "STKaiti", "KaiTi", var(--font-serif);--font-grass: "Zhi Mang Xing", var(--font-brush);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-ink: cubic-bezier(.65, 0, .25, 1);--radius: 4px;--shell: 1200px;--gutter: clamp(16px, 4vw, 40px);--shadow-1: 0 1px 0 rgba(255, 255, 255, .6) inset, 0 10px 30px -18px rgba(29, 26, 23, .45);--shadow-2: 0 1px 0 rgba(255, 255, 255, .6) inset, 0 28px 60px -30px rgba(29, 26, 23, .55)}html{scroll-padding-top:84px;-webkit-text-size-adjust:100%}body{background-color:var(--paper);color:var(--ink);font:16px/1.65 var(--font-serif);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}:focus-visible{outline:2px solid var(--seal);outline-offset:3px;border-radius:2px}::selection{background:#b3261e38;color:var(--ink)}img,svg,canvas{max-width:100%}.skip-link{position:absolute;left:12px;top:-60px;z-index:100;padding:10px 16px;background:var(--ink);color:var(--paper);text-decoration:none;border-radius:var(--radius);transition:top .2s}.skip-link:focus{top:12px}.site-header{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px var(--gutter);transition:background-color .4s,box-shadow .4s,padding .4s}.site-header.scrolled{padding-block:9px;background:#f4ecdad1;-webkit-backdrop-filter:blur(12px) saturate(1.2);backdrop-filter:blur(12px) saturate(1.2);box-shadow:0 1px 0 var(--line)}.site-brand{display:inline-flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none}.site-seal{font-size:13px;padding:4px 5px;transform:rotate(-3deg);transition:transform .4s var(--ease-out)}.site-brand:hover .site-seal{transform:rotate(0) scale(1.06)}.site-word{display:flex;flex-direction:column;line-height:1.05}.site-word-en{font:600 22px/1 var(--font-display);letter-spacing:.02em}.site-word-en i,.footer-title i,.hero-title i{font-style:italic;color:var(--seal);margin:0 .12em}.site-word-sub{margin-top:3px;font:400 12px var(--font-serif);letter-spacing:.14em;text-transform:uppercase;color:var(--seal)}.site-nav{display:flex;align-items:center;gap:clamp(10px,2.4vw,30px)}.site-link{position:relative;display:inline-flex;align-items:baseline;gap:6px;padding:6px 2px;color:var(--ink-2);font-size:14.5px;letter-spacing:.04em;text-decoration:none}.site-link-glyph{font:400 15px/1 var(--font-brush);color:var(--seal);opacity:.75;transition:opacity .3s}.site-link:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--ink);border-radius:2px;transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease-out)}.site-link:hover:after,.site-link[aria-current=page]:after{transform:scaleX(1)}.site-link[aria-current=page]:after{background:var(--seal)}.site-link:hover .site-link-glyph{opacity:1}@media(max-width:720px){.site-link>span:last-child{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.site-link-glyph{font-size:21px}.site-word-en{font-size:19px}}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 24px;font:600 15px/1 var(--font-serif);letter-spacing:.06em;text-decoration:none;border-radius:var(--radius);cursor:pointer;transition:transform .25s var(--ease-out),box-shadow .25s,background-color .25s,color .25s}.btn:active{transform:translateY(1px) scale(.99)}.btn-seal{color:#fff8ee;background:var(--seal);box-shadow:inset 0 0 0 2px var(--seal),inset 0 0 0 3px #fff8ee8c,0 14px 30px -14px #861b15bf}.btn-seal:hover{background:var(--seal-dark);box-shadow:inset 0 0 0 2px var(--seal-dark),inset 0 0 0 3px #fff8ee8c,0 18px 34px -14px #861b15d9;transform:translateY(-2px)}.btn-glyph{font:400 20px/1 var(--font-brush);margin-top:-2px}.btn-ghost{color:var(--ink);background:transparent;box-shadow:inset 0 0 0 1.5px var(--ink)}.btn-ghost:hover{background:var(--ink);color:var(--paper);transform:translateY(-2px)}.landing{display:block;overflow-x:clip}.hero{position:relative;min-height:calc(100svh - 64px);min-height:calc(100vh - 64px);display:grid;grid-template-columns:minmax(0,1fr) auto;align-content:start;padding:clamp(20px,6vh,72px) var(--gutter) 0;isolation:isolate;background:radial-gradient(120% 70% at 70% 0%,var(--paper-glow) 0%,transparent 60%),linear-gradient(180deg,var(--paper-glow) 0%,var(--paper) 55%)}@supports (min-height: 100svh){.hero{min-height:calc(100svh - 64px)}}.hero-sun{position:absolute;right:22%;bottom:clamp(140px,23vw,52vh);width:clamp(90px,13vw,190px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 42% 38%,#d4483c,var(--seal) 55%,#8f1d16);opacity:.82;filter:blur(.4px);z-index:-1;animation:sun-rise 2.6s var(--ease-out) both .4s}.hero-copy{position:relative;z-index:2;max-width:600px;padding-top:clamp(12px,4vh,40px)}.hero-copy:before{content:"";position:absolute;top:-40px;right:-80px;bottom:-60px;left:-60px;z-index:-1;background:radial-gradient(closest-side,rgba(250,245,232,.92),rgba(250,245,232,.6) 60%,transparent);pointer-events:none}.hero-kicker{display:flex;align-items:center;gap:14px;margin:0 0 18px;font:600 13px var(--font-serif);letter-spacing:.22em;text-transform:uppercase;color:var(--seal);animation:rise 1s var(--ease-out) both .1s}.kicker-rule{width:44px;height:2px;background:var(--seal);border-radius:2px}.hero-title{margin:0;font:600 clamp(64px,10.5vw,148px) / .86 var(--font-display);letter-spacing:-.01em;color:var(--ink);animation:ink-in 1.4s var(--ease-out) both .2s}.hero-title i{font-weight:500}.hero-lede{max-width:34em;margin:26px 0 32px;font-size:clamp(15px,1.25vw,17.5px);color:var(--ink-2);animation:rise 1s var(--ease-out) both .45s}.hero-actions{display:flex;flex-wrap:wrap;gap:14px;animation:rise 1s var(--ease-out) both .6s}.hero-calligraphy{position:relative;z-index:1;display:flex;align-items:flex-start;gap:14px;padding-top:clamp(0px,2vh,20px)}.hero-glyphs{display:flex;flex-direction:column;font:400 clamp(64px,9vw,132px) / 1 var(--font-grass);color:var(--ink)}.hero-glyphs span{display:block;margin-bottom:-.06em;animation:brush-in 1.5s var(--ease-ink) both}.hero-glyphs span:nth-child(1){animation-delay:.5s}.hero-glyphs span:nth-child(2){animation-delay:.85s}.hero-glyphs span:nth-child(3){animation-delay:1.2s}.hero-seal{margin-top:clamp(150px,22vw,330px);font-size:15px;padding:5px 6px;transform:rotate(4deg);animation:stamp .7s cubic-bezier(.3,1.6,.5,1) both 1.9s}.hero-scene{position:absolute;left:0;right:0;bottom:0;height:clamp(230px,26.7vw,58vh);z-index:0;overflow:hidden;-webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 22%);mask-image:linear-gradient(180deg,transparent 0%,#000 22%)}.hero-canvas{position:absolute;bottom:0;left:50%;height:100%;aspect-ratio:15 / 4;transform:translate(-50%);width:auto;opacity:0;image-rendering:auto;transition:opacity 1.2s var(--ease-out)}.hero-scene.ready .hero-canvas{opacity:1}.scroll-cue{position:absolute;z-index:3;left:50%;bottom:18px;display:grid;place-items:center;width:44px;height:44px;margin-left:-22px;font:400 20px/1 var(--font-brush);color:var(--paper);background:var(--ink);border-radius:50%;text-decoration:none;box-shadow:0 10px 24px -10px #1d1a17cc;animation:bob 2.4s ease-in-out infinite 2.5s}@media(max-width:860px){.hero{grid-template-columns:1fr;padding-bottom:clamp(240px,60vw,380px)}.hero-calligraphy{position:absolute;top:clamp(20px,4vh,40px);right:var(--gutter);opacity:.16}.hero-seal{display:none}.hero-sun{right:12%}.scroll-cue{display:none}}.ribbon{position:relative;overflow:hidden;padding:18px 0;background:var(--ink);color:var(--paper);border-block:3px double rgba(244,236,218,.35)}.ribbon-track{display:flex;width:max-content;animation:marquee 70s linear infinite}.ribbon:hover .ribbon-track{animation-play-state:paused}.ribbon-run{display:flex;flex-shrink:0}.ribbon-run span{display:inline-flex;align-items:center;gap:28px;padding-right:28px;font:italic 500 clamp(18px,2vw,24px) / 1.2 var(--font-display);white-space:nowrap;letter-spacing:.01em}.ribbon-run i{font-style:normal;font-size:9px;color:var(--seal)}.section{max-width:var(--shell);margin:0 auto;padding:clamp(64px,11vw,132px) var(--gutter) 0}.section-head{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"cn title" "cn sub";column-gap:clamp(16px,2.4vw,28px);align-items:end;margin-bottom:clamp(32px,5vw,56px)}.section-cn{grid-area:cn;writing-mode:vertical-rl;font:400 clamp(26px,3vw,36px) / 1 var(--font-brush);color:#fff8ee;background:var(--seal);padding:10px 6px;border-radius:3px 5px 2px 4px;box-shadow:inset 0 0 0 2px var(--seal),inset 0 0 0 3px #fff8ee8c;transform:rotate(-2deg)}.section-title{grid-area:title;margin:0;font:600 clamp(38px,5.4vw,66px) / 1 var(--font-display);letter-spacing:-.01em}.section-sub{grid-area:sub;margin:10px 0 0;color:var(--ink-soft);font-size:15.5px}.reveal{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out)}.reveal.in{opacity:1;transform:none}.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:repeating-linear-gradient(90deg,transparent 0 46px,rgba(179,38,30,.08) 46px 47px),var(--paper-glow);box-shadow:var(--shadow-1)}.step{position:relative;padding:clamp(28px,3.4vw,44px) clamp(22px,2.6vw,36px) clamp(32px,3.6vw,48px)}.step+.step{border-left:1px solid var(--line)}.step-num{display:block;font:400 clamp(84px,10vw,132px) / .9 var(--font-brush);color:var(--ink);transition:color .4s}.step:hover .step-num{color:var(--seal)}.step-pinyin{display:inline-block;margin-top:6px;font:italic 500 22px var(--font-display);color:var(--seal);letter-spacing:.04em}.step-title{margin:14px 0 8px;font:600 clamp(22px,2.2vw,28px) / 1.15 var(--font-display)}.step-text{margin:0;color:var(--ink-2);font-size:15px}@media(max-width:820px){.steps{grid-template-columns:1fr}.step+.step{border-left:0;border-top:1px solid var(--line)}.step{display:grid;grid-template-columns:auto 1fr;column-gap:22px}.step-num{grid-row:span 3;font-size:84px}.step-pinyin{margin-top:0}.step-title{margin-top:4px}}.stroke-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px}.stroke{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:22px 20px;background:var(--paper-glow);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:transform .35s var(--ease-out),box-shadow .35s}.stroke:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:rgb(var(--stroke))}.stroke:hover{transform:translateY(-4px);box-shadow:var(--shadow-1)}.stroke-glyph{display:grid;place-items:center;width:56px;height:56px;margin-bottom:8px;font:400 32px/1 var(--font-brush);color:rgb(var(--stroke));background:rgba(var(--stroke),.09);border-radius:50%;box-shadow:inset 0 0 0 1.5px rgba(var(--stroke),.35);transition:transform .5s var(--ease-out)}.stroke:hover .stroke-glyph{transform:rotate(-10deg) scale(1.06)}.stroke-name{font:600 23px/1.1 var(--font-display)}.stroke-text{font-size:14px;color:var(--ink-soft);line-height:1.5}.scroll-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:clamp(18px,2vw,28px)}.scroll-card{position:relative;display:flex;flex-direction:column;padding:34px 26px 24px;background:radial-gradient(130% 80% at 100% 100%,rgba(29,26,23,.05),transparent 60%),var(--paper-glow);border-radius:3px;box-shadow:var(--shadow-1);overflow:hidden;isolation:isolate;transition:transform .5s var(--ease-out),box-shadow .5s;transition-delay:calc(var(--i) * 70ms)}.scroll-card:before{content:"";position:absolute;inset:0 0 auto;height:12px;background:repeating-linear-gradient(45deg,rgba(255,248,238,.18) 0 4px,transparent 4px 8px),linear-gradient(90deg,#6d5a33,#b49a62 30%,#8a7342 70%,#6d5a33);box-shadow:0 2px #1d1a1740}.scroll-card:after{content:"";position:absolute;inset:auto 0 0;height:3px;background:var(--seal);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease-out)}.scroll-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-2);transition-delay:0s}.scroll-card:hover:after{transform:scaleX(1)}.card-emblem{position:absolute;right:-10px;bottom:-26px;z-index:-1;font:400 190px/1 var(--font-grass);color:var(--ink);opacity:.06;transition:opacity .6s,transform .8s var(--ease-out)}.scroll-card:hover .card-emblem{opacity:.12;transform:translate(-6px,-6px) rotate(-4deg)}.card-num{display:flex;align-items:center;gap:10px;margin:0;font:600 12px var(--font-serif);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft)}.card-numeral{display:grid;place-items:center;width:34px;height:34px;font:400 20px/1 var(--font-brush);letter-spacing:0;color:#fff8ee;background:var(--seal);border-radius:3px 5px 2px 4px;box-shadow:inset 0 0 0 2px var(--seal),inset 0 0 0 3px #fff8ee8c}.card-title{margin:18px 0 12px;font:600 32px/1.05 var(--font-display)}.card-title a{color:inherit;text-decoration:none}.card-title a:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.card-poem{display:flex;flex-direction:column;gap:2px;margin:0 0 16px;padding-left:14px;border-left:2px solid var(--seal-soft);font:italic 500 17px/1.4 var(--font-display);color:var(--ink-2)}.card-goals{list-style:none;margin:0 0 22px;padding:0;display:flex;flex-wrap:wrap;gap:6px}.card-goals li{padding:3px 10px;font-size:12px;color:var(--ink-2);background:#1d1a170d;border-radius:999px}.card-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:16px;border-top:1px dashed var(--line)}.card-ink{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink-soft);white-space:nowrap}.card-ink-glyph{font:400 18px/1 var(--font-brush);color:var(--ink)}.card-play{position:relative;z-index:2;white-space:nowrap;font:600 14px var(--font-serif);letter-spacing:.08em;color:var(--seal);text-decoration:none}.card-play span{display:inline-block;transition:transform .3s var(--ease-out)}.scroll-card:hover .card-play span{transform:translate(4px)}.workshop-section{padding-bottom:0}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;padding-bottom:clamp(64px,10vw,120px)}.tile{position:relative;display:flex;flex-direction:column;gap:6px;padding:26px 24px 24px 92px;min-height:132px;color:var(--ink);text-decoration:none;border:1px solid var(--line);border-radius:var(--radius);transition:background-color .35s,color .35s,border-color .35s}.tile-glyph{position:absolute;left:22px;top:22px;font:400 52px/1 var(--font-brush);color:var(--seal);transition:transform .5s var(--ease-out)}.tile strong{font:600 24px/1.1 var(--font-display)}.tile span:last-child{font-size:14px;color:var(--ink-soft);transition:color .35s}.tile:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}.tile:hover span:last-child{color:#f4ecdab8}.tile:hover .tile-glyph{transform:rotate(-8deg) scale(1.08)}.site-footer{position:relative;overflow:hidden;padding:clamp(56px,8vw,96px) var(--gutter) 28px;color:#f4ecdad1;background:radial-gradient(80% 120% at 85% 120%,rgba(179,38,30,.25),transparent 60%),var(--night)}.footer-mark{position:absolute;right:-2vw;bottom:-6vw;font:400 clamp(160px,26vw,380px) / 1 var(--font-grass);color:#f4ecda0d;pointer-events:none;-webkit-user-select:none;user-select:none}.footer-cols{position:relative;max-width:var(--shell);margin:0 auto;display:grid;grid-template-columns:1.6fr repeat(3,1fr);gap:32px}.footer-cols a{display:block;padding:3px 0;color:#f4ecdad1;text-decoration:none;font-size:14.5px}.footer-cols p a{display:inline;text-decoration:underline;text-underline-offset:3px}.footer-cols a:hover{color:#fff}.footer-title{margin:0 0 10px;font:600 30px/1 var(--font-display);color:var(--paper)}.footer-head{margin:4px 0 10px;font:600 11.5px var(--font-serif);letter-spacing:.2em;text-transform:uppercase;color:#e08a7c}.footer-text{margin:0 0 8px;font-size:14px;line-height:1.6;max-width:30em}.footer-base{position:relative;max-width:var(--shell);margin:clamp(40px,6vw,64px) auto 0;padding-top:20px;border-top:1px solid rgba(244,236,218,.14);font-size:12.5px;color:#f4ecda8c}@media(max-width:820px){.footer-cols{grid-template-columns:1fr 1fr}.footer-cols>:first-child{grid-column:1 / -1}}header.top{padding:12px var(--gutter);background:#f4ecdadb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0;z-index:40}.brand-name{font:600 21px/1 var(--font-display)}.panel{background:var(--paper-glow);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-1)}.panel-toggle{font-family:var(--font-display);font-size:19px;font-weight:600;letter-spacing:.01em}button:not(.btn):not(.blade):not(.panel-toggle):not(.scroll-toggle){border-radius:var(--radius)}input[type=range]{accent-color:var(--seal)}.page-title{max-width:var(--shell);margin:0 auto;padding:clamp(40px,7vw,80px) 0 24px}.page-title h2{font:600 clamp(40px,6vw,72px) / 1 var(--font-display);letter-spacing:-.01em;margin:0}.page-title .cn{font-family:var(--font-brush);color:var(--seal);margin-right:12px}.inscription .verse-text{font-family:var(--font-display)}@keyframes rise{0%{opacity:0;transform:translateY(18px)}}@keyframes ink-in{0%{opacity:0;filter:blur(10px);letter-spacing:.06em}}@keyframes brush-in{0%{opacity:0;filter:blur(10px);transform:translateY(-10px) scale(1.04)}55%{opacity:1;filter:blur(1.5px)}}@keyframes stamp{0%{opacity:0;transform:rotate(4deg) scale(1.8)}}@keyframes sun-rise{0%{opacity:0;transform:translateY(40px) scale(.92)}}@keyframes marquee{to{transform:translate(-50%)}}@keyframes bob{50%{transform:translateY(6px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;animation-delay:0s!important;transition-duration:.001ms!important;transition-delay:0s!important}.reveal{opacity:1;transform:none}.ribbon-track{animation:none}html{scroll-behavior:auto}}.workshop-tabs{display:flex;align-items:center;flex-wrap:wrap;gap:6px 22px;padding:10px 24px 0;border-bottom:1px solid var(--line)}.workshop-label{margin-right:8px;font:600 13px var(--font-serif);letter-spacing:.14em;color:var(--ink-soft);text-transform:uppercase}.workshop-tab{display:inline-flex;align-items:center;gap:8px;margin-bottom:-1px;padding:6px 4px 9px;color:var(--ink-soft);text-decoration:none;letter-spacing:.04em;border-bottom:2px solid transparent;transition:color .2s,border-color .2s}.workshop-tab:hover{color:var(--ink)}.workshop-tab[aria-current=page]{color:var(--seal);border-bottom-color:var(--seal)}.workshop-tab-glyph{font:400 17px/1 var(--font-brush)}
