:root{--paper: #f3efe6;--paper-2: #e9e3d6;--ink: #17150f;--ink-soft: #5d584d;--hair: #c9c1b0;--vermilion: #e4002d;--seal: #c2311b;--mountain: #c8322a;--cobalt: #2f5bd3;--indigo: #1f3a8a;--display: "Bodoni Moda", "Didot", "Bodoni 72", Georgia, serif;--han: "Noto Sans SC", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--label: "Barlow Condensed", "Arial Narrow", "Helvetica Neue", sans-serif;--text: "Literata", Georgia, serif;color-scheme:light}*{box-sizing:border-box}::selection{background:var(--cobalt);color:var(--paper)}html{scrollbar-color:var(--hair) var(--paper)}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--label);font-size:17px;line-height:1.5;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:0 56px}a{color:inherit;text-decoration-color:var(--hair);text-underline-offset:3px}a:hover{text-decoration-color:var(--cobalt)}a:focus-visible{outline:2px solid var(--cobalt);outline-offset:3px}.skip{position:absolute;left:-999px;top:8px;background:var(--paper);padding:8px 12px;z-index:30}.skip:focus{left:16px}.sheet{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:56px minmax(0,1fr);gap:0 32px}.margin{border-right:1px solid var(--hair);display:flex;flex-direction:column;align-items:center;gap:24px;padding-top:32px}.margin img{width:34px;height:34px}.vert{writing-mode:vertical-rl;font-family:var(--han);font-weight:300;font-size:13px;letter-spacing:.4em;color:var(--ink-soft)}main{min-width:0}.topline{display:flex;justify-content:space-between;align-items:center;padding-block:24px 18px;border-bottom:1px solid var(--hair);font-size:14px;letter-spacing:.24em;text-transform:uppercase}.topline nav{display:flex;gap:24px}.topline a{text-decoration:none}.topline a:hover{color:var(--cobalt)}.opening{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px 48px;padding-block:40px 48px;border-bottom:1px solid var(--ink);align-items:end}.opening h1{margin:0;font-family:var(--display);font-weight:400;font-size:clamp(56px,9vw,120px);line-height:.92;text-transform:uppercase;letter-spacing:.01em}.opening .lede{margin:22px 0 0;max-width:34ch;font-size:19px;font-weight:300;color:var(--ink-soft)}.opening .meta{display:flex;flex-wrap:wrap;gap:6px 28px;margin-top:26px;font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft)}.poster{position:relative;aspect-ratio:1 / 1.08;max-width:520px;width:100%;justify-self:end}.poster .half{position:absolute;left:30%;bottom:0;width:64%;aspect-ratio:2 / 1;background:var(--cobalt);border-radius:999px 999px 0 0}.poster .sun{position:absolute;right:6%;top:8%;width:14%;aspect-ratio:1;background:url(/img/sun.svg) center / 130.4% no-repeat}.poster svg.lines{position:absolute;inset:0;width:100%;height:100%}.poster .chars{position:absolute;left:4%;top:4%;font-family:var(--han);font-weight:900;font-size:clamp(120px,17vw,236px);line-height:.98;color:var(--ink)}.poster .chars span{display:block}.poster .cap{position:absolute;right:0;bottom:56%;writing-mode:vertical-rl;font-family:var(--han);font-weight:300;font-size:14px;letter-spacing:.4em;color:var(--ink-soft)}.poster .seal{position:absolute;right:2%;bottom:3%;width:13%;height:auto}section.part{padding-top:56px}.sechead{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 20px;align-items:baseline;border-bottom:1px solid var(--hair);padding-bottom:14px;margin-bottom:24px}.sechead .glyph{font-family:var(--han);font-weight:900;font-size:44px;line-height:1;grid-row:span 2}.sechead .glyph.v{color:var(--ink)}.sechead .skipwalk{grid-column:3;grid-row:1;align-self:center;font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);white-space:nowrap}.sechead h2{margin:0;font-family:var(--display);font-weight:400;font-size:clamp(26px,3.4vw,38px);line-height:1.1;text-transform:uppercase;letter-spacing:.04em}.sechead p{margin:0;color:var(--ink-soft);max-width:62ch;font-weight:300}.walk{position:relative}.stage{position:sticky;top:0;height:100vh;height:100svh;display:grid;align-content:center;gap:16px}.plate{position:relative;height:min(58vh,560px);min-height:300px;overflow:hidden;background:var(--paper);outline:1px solid var(--hair);outline-offset:6px}.layer{position:absolute;top:0;left:0;height:100%;will-change:transform}.layer svg{display:block;height:100%;width:auto;overflow:visible;position:relative;z-index:1}.ghost{position:absolute;z-index:0;font-family:var(--han);font-weight:900;color:var(--ink);opacity:.045;line-height:1;pointer-events:none}.scene{position:absolute;z-index:2;display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 12px;width:250px;text-shadow:0 0 2px var(--paper),0 0 10px var(--paper)}.scene .fig{font-size:12px;letter-spacing:.2em;color:var(--ink);padding-top:3px;font-variant-numeric:tabular-nums}.scene .t{font-weight:500;text-transform:uppercase;letter-spacing:.08em}.scene .t i{font-style:normal;font-family:var(--han);font-weight:700;letter-spacing:.1em;margin-right:6px}.scene p{grid-column:2;margin:0;font-family:var(--text);font-style:italic;font-size:15px;line-height:1.45;color:var(--ink-soft);max-width:22ch}.finale{position:absolute;z-index:2;top:0;height:100%;display:grid;align-content:center;gap:12px;width:min(340px,70vw);padding-inline:20px;margin-left:-20px;background:radial-gradient(ellipse 75% 42% at 45% 50%,color-mix(in srgb,var(--paper) 88%,transparent) 55%,transparent 100%);text-shadow:0 0 2px var(--paper),0 0 12px var(--paper)}.finale img{width:64px;height:64px;transform:rotate(-4deg)}.finale .zh{font-family:var(--han);font-weight:900;font-size:clamp(28px,4vh,40px);letter-spacing:.1em;line-height:1.1}.finale p{margin:0;font-family:var(--text);font-style:italic;color:var(--ink-soft)}.finale a{font-size:16px;letter-spacing:.16em;text-transform:uppercase}.stage.arrived .finale img{animation:stamp .45s cubic-bezier(.2,.9,.3,1.2) both}@keyframes stamp{0%{transform:scale(1.12) rotate(-4deg);opacity:0}to{transform:scale(1) rotate(-4deg);opacity:1}}.plate-cap{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:start;font-size:15px}.plate-cap .fig{font-size:12px;letter-spacing:.2em;color:var(--ink);white-space:nowrap;padding-top:3px;font-variant-numeric:tabular-nums}.plate-cap .t{display:grid;gap:2px;color:var(--ink-soft);font-weight:300}.plate-cap .t b{color:var(--ink);font-weight:500;text-transform:uppercase;letter-spacing:.08em}p,.plate-cap .take{text-wrap:pretty}.progress{width:min(220px,30vw);height:10px;border:1px solid var(--ink);position:relative}.progress span{position:absolute;inset:0 auto 0 0;width:0;background:var(--cobalt)}.bot{position:absolute;left:0;top:0;width:64px;height:36px;overflow:visible;pointer-events:none;z-index:5}.bot .body{transform-box:fill-box;transform-origin:center bottom;animation:breathe 3.4s ease-in-out infinite}@keyframes breathe{50%{transform:scale(1.012,.994)}}.bot.walking .body{animation:waddle .31s ease-in-out infinite alternate}@keyframes waddle{to{transform:translateY(-.8px)}}.bot .leg{transform-box:fill-box;transform-origin:top center}.bot.walking .leg-a{animation:step .62s ease-in-out infinite alternate}.bot.walking .leg-b{animation:step .62s ease-in-out infinite alternate-reverse}@keyframes step{0%{transform:rotate(-11deg)}to{transform:rotate(11deg)}}.bot .tail{transform-box:fill-box;transform-origin:right bottom;animation:sway 2.8s ease-in-out infinite alternate}@keyframes sway{to{transform:rotate(-6deg)}}.bot .pose-sit{display:none}.bot.sitting .pose-sit{display:inline}.bot.sitting .pose-walk{display:none}.birds{position:absolute;top:9%;left:0;width:64px;height:auto;pointer-events:none;opacity:.75;animation:fly 70s linear infinite}.birds.b2{top:17%;width:84px;opacity:.5;animation-duration:110s;animation-delay:-50s}@keyframes fly{0%{transform:translate(110%);left:100%}to{transform:translate(-120%);left:0}}.birds path{transform-box:fill-box;transform-origin:center;animation:flap 1.6s ease-in-out infinite alternate}@keyframes flap{to{transform:scaleY(.8)}}.fall{stroke-dasharray:9 15;animation:fall 1.3s linear infinite}@keyframes fall{to{stroke-dashoffset:-24}}.layer .mist path,.layer .water path{stroke-dasharray:1 1}.mist{animation:drift 16s ease-in-out infinite alternate}@keyframes drift{to{transform:translate(14px)}}.water{animation:shimmer 5.5s ease-in-out infinite alternate}@keyframes shimmer{to{transform:translate(-7px)}}.pine{transform-box:fill-box;transform-origin:50% 100%;animation:pinesway 7s ease-in-out infinite alternate}@keyframes pinesway{0%{transform:rotate(-.8deg)}to{transform:rotate(.9deg)}}.boat{transform-box:fill-box;transform-origin:50% 100%;animation:bob 4.2s ease-in-out infinite alternate}@keyframes bob{0%{transform:translateY(-1.5px) rotate(-1deg)}to{transform:translateY(1.5px) rotate(1deg)}}.stage.offstage *,.stage.offstage *:before{animation-play-state:paused!important}.slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.slot{position:relative;display:grid;gap:10px;margin:0}.slot .sheetgrid{--cw: 26px;--rh: 34px;--rule: color-mix(in srgb, var(--seal) 38%, transparent);width:calc(round(down,100%,var(--cw)) + 1px);border-left:0!important;height:calc(var(--rh) * 5 + 1px);padding:0;border:1px solid var(--rule);display:grid;grid-template-columns:repeat(auto-fill,var(--cw));grid-auto-rows:var(--rh);align-content:start;background:linear-gradient(to right,var(--rule) 1px,transparent 1px) 0 0 / var(--cw) var(--rh),linear-gradient(to bottom,var(--rule) 1px,transparent 1px,transparent var(--cw),var(--rule) var(--cw),var(--rule) calc(var(--cw) + 1px),transparent calc(var(--cw) + 1px)) 0 0 / 100% var(--rh);overflow:hidden}.slot .sheetgrid span{width:var(--cw);height:var(--cw);display:grid;place-items:center;font-family:var(--han);font-weight:300;font-size:15px;line-height:1;color:var(--ink)}.slot .sheetgrid .caret:after{content:"";width:1.5px;height:16px;background:var(--cobalt);animation:caret 1.1s steps(1) infinite}@keyframes caret{50%{opacity:0}}.slot figcaption{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 12px;align-items:baseline}.slot .fig{font-size:12px;letter-spacing:.2em;color:var(--ink);font-variant-numeric:tabular-nums;grid-row:span 2}.slot b{font-family:var(--display);font-weight:400;font-size:22px;text-transform:uppercase;letter-spacing:.04em;line-height:1.15}.slot.later b{color:var(--ink-soft)}.slot small{font-size:14px;color:var(--ink-soft);font-weight:300}.slot .stamp{position:absolute;right:-10px;top:124px;width:60px;height:60px;transform:rotate(-8deg)}.slot.later .sheetgrid{--rule: color-mix(in srgb, var(--seal) 20%, transparent)}footer.foot{margin-top:64px;padding-top:18px;border-top:1px solid var(--ink);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 32px;font-size:14px;color:var(--ink-soft)}footer.foot h3{margin:0 0 4px;font-size:12px;letter-spacing:.28em;text-transform:uppercase;color:var(--ink);font-weight:500}footer.foot p{margin:0}.endmark{display:flex;justify-content:flex-end;margin-top:40px}.endmark img{width:56px;height:56px;transform:rotate(-6deg)}@media(prefers-reduced-motion:reduce){.slot .sheetgrid .caret:after{animation:none}.birds{display:none}.mist,.water,.pine,.boat,.birds path,.bot .body,.bot .leg,.bot .tail,.fall,.stage.arrived .finale img{animation:none!important}}@media(max-width:900px){.opening{grid-template-columns:minmax(0,1fr)}.poster{justify-self:start;max-width:420px}footer.foot{grid-template-columns:minmax(0,1fr)}}@media(max-width:560px){.sheet{grid-template-columns:minmax(0,1fr)}.margin{display:none}.topline nav{gap:16px}.plate{height:54vh}.scene{width:200px}.plate-cap{grid-template-columns:auto minmax(0,1fr)}.progress{grid-column:1 / -1;width:100%}.opening{padding-block:24px 32px;gap:24px}.poster{max-width:78vw}.poster .cap{bottom:32%}section.part{padding-top:40px}.slots{grid-template-columns:minmax(0,1fr)}.slot.later .sheetgrid{height:69px}}.about-open{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:32px 56px;padding-block:40px 56px;border-bottom:1px solid var(--ink);align-items:start}.about-open h1{margin:0;font-family:var(--display);font-weight:400;font-size:clamp(56px,7.2vw,100px);line-height:.92;text-transform:uppercase;letter-spacing:.01em}.bio p{margin:0 0 1em;max-width:34em;font-family:var(--text);font-size:18px;line-height:1.65;color:var(--ink)}.about-open .han-title{margin-bottom:28px}.bio p:first-child{font-size:21px;line-height:1.5}.bio p:last-child{margin-bottom:0}.deskfig{margin:0;display:grid;gap:14px}.deskplate{outline:1px solid var(--hair);outline-offset:6px;background:var(--paper)}.deskplate svg{display:block;width:100%;height:auto}.cat-breath{transform-box:fill-box;transform-origin:50% 100%;animation:catbreath 4.2s ease-in-out infinite}@keyframes catbreath{50%{transform:scale(1.018,1.03)}}.steam path{stroke-dasharray:.18 .06;animation:steam 3.6s linear infinite}@keyframes steam{to{stroke-dashoffset:-.48}}.led{animation:led 2.6s ease-in-out infinite}@keyframes led{50%{opacity:.25}}.cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}.col h3{margin:0 0 6px;display:grid;gap:6px;font-weight:500;font-size:13px;letter-spacing:.28em;text-transform:uppercase}.col h3 .g{font-family:var(--han);font-weight:900;font-size:56px;line-height:1;letter-spacing:0}.col p{margin:0;padding-top:14px;border-top:1px solid var(--ink);font-family:var(--text);font-size:18px;line-height:1.6;max-width:30em}.sechead .stamp-date{grid-column:3;grid-row:1;align-self:center;font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);white-space:nowrap}.notes{list-style:none;margin:-24px 0 0;padding:0}.notes li{display:grid;grid-template-columns:44px minmax(0,1fr);gap:20px;align-items:center;padding:18px 0;border-bottom:1px solid var(--hair)}.notes .seal{width:44px;height:44px;display:grid;place-items:center;background:var(--seal);color:var(--paper);font-family:var(--han);font-weight:900;font-size:24px;line-height:1;border-radius:3px;transform:rotate(-3deg)}.notes li:nth-child(2n) .seal{transform:rotate(2deg)}.notes p{margin:0;font-family:var(--text);font-style:italic;font-size:clamp(20px,2.2vw,26px);line-height:1.35}.notes p.zh{margin:0 0 6px;font-family:var(--han);font-style:normal;font-weight:700;font-size:16px;letter-spacing:.12em;line-height:1.5;color:var(--ink-soft)}@media(prefers-reduced-motion:reduce){.cat-breath,.steam path,.led{animation:none}}@media(max-width:900px){.about-open{grid-template-columns:minmax(0,1fr)}}@media(max-width:700px){.cols{grid-template-columns:minmax(0,1fr);gap:32px}}.c-breath{transform-box:fill-box;transform-origin:50% 100%;animation:cbreath 4.6s ease-in-out infinite}@keyframes cbreath{50%{transform:scale(1.012,1.022)}}.c-tail{transform-box:fill-box;transform-origin:100% 100%;animation:ctail 5.2s ease-in-out infinite alternate}@keyframes ctail{0%{transform:rotate(0)}to{transform:rotate(-5deg)}}.c-ear{transform-box:fill-box;transform-origin:30% 100%;animation:cear 7s ease-in-out infinite}@keyframes cear{0%,88%,to{transform:rotate(0)}91%{transform:rotate(-14deg)}94%{transform:rotate(4deg)}}.c-eye{transform-box:fill-box;transform-origin:50% 50%;animation:ceye 6s infinite}@keyframes ceye{0%,46%,50%,to{transform:scaleY(1)}48%{transform:scaleY(.2)}}.c-sway{transform-box:fill-box;transform-origin:50% 100%;animation:csway 6.5s ease-in-out infinite alternate}@keyframes csway{0%{transform:rotate(-1deg)}to{transform:rotate(1.2deg)}}.c-drift{animation:cdrift 14s ease-in-out infinite alternate}.c-drift.slow{animation-duration:22s;animation-direction:alternate-reverse}@keyframes cdrift{to{transform:translate(-22px)}}.c-sun{transform-box:fill-box;transform-origin:center;animation:csun 8s ease-in-out infinite}@keyframes csun{50%{fill-opacity:.78;transform:scale(1.03)}}.c-petal{animation:cpetal 10s linear infinite}@keyframes cpetal{0%{transform:translate(0) rotate(0);opacity:0}8%{opacity:1}90%{opacity:1}to{transform:translate(-260px,470px) rotate(540deg);opacity:0}}.c-petal path{transform-box:fill-box;transform-origin:center}@media(prefers-reduced-motion:reduce){.c-breath,.c-tail,.c-ear,.c-eye,.c-sway,.c-drift,.c-sun,.c-petal{animation:none}.c-petal{display:none}}h1:has(.half){white-space:nowrap}.half{display:inline-block;width:.92em;height:.46em;margin-left:.14em;background:var(--cobalt);border-radius:.46em .46em 0 0;vertical-align:baseline}.topline>:first-child>[lang]{font-family:var(--han);font-size:19px;font-weight:700;letter-spacing:.12em}.han-title{margin:14px 0 0;font-family:var(--han);font-weight:900;font-size:clamp(36px,4.4vw,56px);line-height:1;letter-spacing:.1em;color:var(--ink)}p [lang=zh-Hans]{white-space:nowrap}.topline nav a[aria-current=page]{color:var(--ink);text-decoration:underline;text-decoration-color:var(--cobalt);text-decoration-thickness:2px;text-underline-offset:7px}.arrow,.layer svg.arrow{display:inline-block;width:16px;height:10px;flex:none;vertical-align:.05em;margin-left:.35em;overflow:visible}@media(max-width:440px){.topline{letter-spacing:.14em}.topline nav{gap:12px}}
