@font-face{font-family:EB Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/eb-garamond-latin-400-normal-BCNrxLz_.woff2) format("woff2"),url(/assets/eb-garamond-latin-400-normal-maQnHeKB.woff) format("woff")}@font-face{font-family:EB Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/eb-garamond-latin-500-normal-DehAIUv0.woff2) format("woff2"),url(/assets/eb-garamond-latin-500-normal-DZU8xF9o.woff) format("woff")}@font-face{font-family:EB Garamond;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/eb-garamond-latin-400-italic-DSEbMgZu.woff2) format("woff2"),url(/assets/eb-garamond-latin-400-italic-CDFyLPXJ.woff) format("woff")}@font-face{font-family:EB Garamond;font-style:italic;font-display:swap;font-weight:500;src:url(/assets/eb-garamond-latin-500-italic-FSVaZR0V.woff2) format("woff2"),url(/assets/eb-garamond-latin-500-italic-DgyxMZyx.woff) format("woff")}@font-face{font-family:"Zhuque Fangsong";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/ZhuqueFangsong-IlyraWorld-DFStwyC6.woff2) format("woff2")}@property --ay{syntax: "<length-percentage>"; inherits: true; initial-value: 64%;}:root{--paper: #f3f2ef;--ink: #111111;--line: rgba(17, 17, 17, .22);--line-soft: rgba(17, 17, 17, .1);--red: #8b1a1a;--ink-2: color-mix(in srgb, var(--ink) 62%, var(--paper));--muted: color-mix(in srgb, var(--ink) 52%, var(--paper));--faint: color-mix(in srgb, var(--ink) 34%, var(--paper));--gutter: clamp(16px, 3.2vw, 40px);--ax: 22%;--ax2: 78%;--ay-home: 53.5%;--ay-open: max(15%, 128px);--name-gap: clamp(14px, 2vw, 32px);--panel-gap: clamp(24px, 4.5vw, 80px);--name-size: clamp(3.2rem, 9.6vw, 10rem);--name-size-open: clamp(2.1rem, 2.9vw, 3rem);--ease: cubic-bezier(.65, 0, .15, 1);--ease-out: cubic-bezier(.2, .7, .2, 1);--hover-t: .2s;--hover-shift: 3px;--hover-arrow: 6px;--t-item: clamp(1.35rem, 1.95vw, 1.75rem);--t-body: 15px;--lh-body: 1.75;--ls-body: .04em;--t-label: 10.5px;--ls-label: .18em;--t-micro: 9px;--ls-micro: .26em;--t-nav: 12.5px;--ls-nav: .22em;--serif: "EB Garamond", "Zhuque Fangsong", "FangSong", "STFangsong", serif;--sans: ui-sans-serif, -apple-system, "Segoe UI", "Helvetica Neue", "PingFang SC", sans-serif;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--paper: #0e0e0e;--ink: #ecebe7;--line: rgba(236, 235, 231, .2);--line-soft: rgba(236, 235, 231, .08);--red: #a32626;color-scheme:dark}}:root[data-theme=dark]{--paper: #0e0e0e;--ink: #ecebe7;--line: rgba(236, 235, 231, .2);--line-soft: rgba(236, 235, 231, .08);--red: #a32626;color-scheme:dark}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%;overflow:hidden}body{background:var(--paper);color:var(--ink);font-family:var(--serif);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}ol{list-style:none}:focus-visible{outline:1px solid var(--red);outline-offset:4px}::selection{background:var(--red);color:var(--paper)}.cover{--ay: var(--ay-home);position:relative;width:100%;height:100vh;height:100dvh;overflow:hidden;isolation:isolate;transition:--ay 1.1s var(--ease)}.cover.is-open{--ay: var(--ay-open)}.corner{position:absolute;width:14px;height:14px;opacity:0;animation:fade 1.2s var(--ease) 1.6s forwards}.corner:before,.corner:after{content:"";position:absolute;background:var(--ink)}.corner:before{width:100%;height:1px}.corner:after{width:1px;height:100%}.tl{top:var(--gutter);left:var(--gutter)}.tr{top:var(--gutter);right:var(--gutter);transform:scaleX(-1)}.bl{bottom:var(--gutter);left:var(--gutter);transform:scaleY(-1)}.br{bottom:var(--gutter);right:var(--gutter);transform:scale(-1)}.axes{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;transform:translate3d(calc(var(--mx) * -3px),calc(var(--my) * -3px),0);transition:transform 1.2s var(--ease)}.axis{position:absolute;background:var(--line)}.axis-h{left:0;right:0;top:var(--ay);height:1px;transform-origin:left center;transform:scaleX(0);animation:draw-x 1.6s var(--ease) .15s forwards}.axis-h:after{content:"";position:absolute;left:var(--ax);top:0;width:18vw;height:1px;background:var(--red);transform-origin:left center;transform:scaleX(0);transition:transform .9s var(--ease)}.axis-v{top:0;bottom:0;left:var(--ax);width:1px;transform-origin:center top;transform:scaleY(0);animation:draw-y 1.6s var(--ease) .35s forwards}.axis-v2{top:var(--ay);bottom:0;left:var(--ax2);width:1px;background:var(--line-soft);transform-origin:center top;transform:scaleY(0);animation:draw-y 1.4s var(--ease) .9s forwards;transition:opacity .6s var(--ease)}.is-open .axis-v2{opacity:0}.mark{position:absolute;left:var(--ax);top:var(--ay);width:5px;height:5px;margin:-2px 0 0 -2px;background:var(--red);transform:scale(0);animation:pop .6s var(--ease) 1.5s forwards}.name{position:absolute;z-index:2;left:calc(var(--ax) + var(--name-gap));bottom:calc(100% - var(--ay));font-weight:400;font-size:var(--name-size);line-height:.86;letter-spacing:-.02em;white-space:nowrap;transform:translate3d(calc(var(--mx) * 6px),calc(var(--my) * 4px),0);transition:left 1.1s var(--ease),bottom 1.1s var(--ease),font-size 1.1s var(--ease),transform 1.2s var(--ease);padding-bottom:.04em}.is-open .name{left:var(--gutter);font-size:var(--name-size-open);letter-spacing:.005em}@media(min-width:721px){.is-open .name{bottom:calc(100% - var(--ay) + .5em);left:calc(var(--ax) / 2)}.cover.is-open .name{transform:translate(-50%)}}.is-open .name,.is-open .axes{transform:none}.name-link{display:flex;align-items:baseline;gap:.08em;cursor:default}.is-open .name-link{cursor:pointer}.name-line{display:block;overflow:hidden;padding:.04em .22em .32em 0;margin-right:-.16em;margin-bottom:-.32em}.name-a,.name-b{display:inline-block;transform:translateY(105%);animation:rise 1.4s var(--ease) forwards}.name-a{animation-delay:.7s}.name-b{font-style:italic;color:var(--ink-2);animation-delay:.85s;transition:color .8s var(--ease),letter-spacing .9s var(--ease)}.name:hover .name-b{color:var(--ink);letter-spacing:.01em}.cover:has(.name:hover) .axis-h:after{transform:scaleX(1)}.is-open .axis-h:after{left:var(--gutter);width:calc(var(--ax) - var(--gutter))}.nav{position:absolute;z-index:2;left:var(--gutter);top:calc(var(--ay) + clamp(22px,3.4vh,34px));display:flex;flex-direction:column;align-items:flex-start;gap:12px;opacity:0;animation:fade 1.2s var(--ease) 1.9s forwards}.nav-item{position:relative;font-family:var(--sans);font-size:var(--t-nav);line-height:1.4;font-weight:500;letter-spacing:var(--ls-nav);text-transform:uppercase;color:var(--muted);padding:2px 0;transition:color var(--hover-t) var(--ease-out),padding-left .6s var(--ease),transform var(--hover-t) var(--ease-out)}.nav-item:before{content:"";position:absolute;left:0;top:50%;width:10px;height:1px;background:var(--red);transform-origin:left center;transform:scaleX(0);transition:transform .6s var(--ease)}.nav-item:hover{color:var(--ink);transform:translate(var(--hover-shift))}.nav-item.is-active{color:var(--ink);padding-left:20px}.nav-item.is-active:before{transform:scaleX(1)}.panel{position:absolute;z-index:1;left:calc(var(--ax) + var(--panel-gap));right:calc(var(--gutter) - 12px);padding-right:12px;top:calc(var(--ay-open) + clamp(28px,5.5vh,60px));bottom:calc(var(--gutter) + 18px);max-width:832px;display:flex;flex-direction:column;overflow:hidden}.panel-head{display:flex;flex-direction:column;gap:14px;margin-bottom:clamp(20px,4.5vh,44px)}.panel-title{font-weight:400;font-style:italic;font-size:clamp(2.4rem,4.4vw,4.2rem);line-height:.95;letter-spacing:-.015em}.rows{border-bottom:1px solid var(--line)}.row{display:grid;grid-template-columns:3.2em 1fr auto;align-items:baseline;gap:16px;padding:clamp(10px,1.8vh,16px) 0;border-top:1px solid var(--line)}.row-no,.row-meta{font-family:var(--sans);font-size:var(--t-label);letter-spacing:var(--ls-label);color:var(--muted)}.row-title{font-size:var(--t-item);line-height:1.1}.panel-title{transition:font-size .7s var(--ease)}.panel-head{transition:margin-bottom .7s var(--ease)}.panel.is-sub .panel-title{font-size:clamp(1.6rem,2.4vw,2.2rem)}.panel.is-sub .panel-head{margin-bottom:clamp(14px,2.6vh,24px)}.work-row{grid-template-columns:minmax(0,1fr) 8rem auto;grid-template-areas:"name status arrow" "kind .      .";gap:6px 28px;padding:clamp(14px,2.4vh,22px) 0}.link-row{grid-template-areas:"name status arrow"}.work-kind{grid-area:kind;font-family:var(--sans);font-size:var(--t-micro);font-weight:500;letter-spacing:var(--ls-micro);text-transform:uppercase;color:var(--faint)}.work-detail-kind{margin-bottom:12px}.work-name{grid-area:name;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:.1em 0;margin:-.1em 0;font-size:var(--t-item);color:var(--ink-2);transition:color var(--hover-t) var(--ease-out),transform var(--hover-t) var(--ease-out)}.work-status{grid-area:status}.work-arrow{grid-area:arrow;font-family:var(--sans);font-size:18px;line-height:1;color:var(--muted);transition:color var(--hover-t) var(--ease-out),transform var(--hover-t) var(--ease-out)}.work-row:hover .work-name,.work-row:focus-visible .work-name{color:var(--ink);transform:translate(var(--hover-shift))}.work-row:hover .work-arrow,.work-row:focus-visible .work-arrow{color:var(--red);transform:translate(var(--hover-arrow))}.work-detail{display:flex;flex-direction:column;flex:0 1 auto;min-height:0;max-width:680px}.work-back{align-self:flex-start;font-family:var(--sans);font-size:var(--t-label);font-weight:500;letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--muted);transition:color var(--hover-t) var(--ease-out),transform var(--hover-t) var(--ease-out)}.work-back:hover,.work-back:focus-visible{color:var(--ink);transform:translate(var(--hover-shift))}.work-rule{flex:none;height:1px;background:var(--line);margin:clamp(14px,2.4vh,22px) 0 clamp(18px,3vh,28px)}.work-detail-title{font-weight:400;font-size:clamp(2rem,3.4vw,3rem);line-height:1.05;letter-spacing:-.005em}.work-detail-status{margin-top:12px}.work-detail-text{flex:0 1 auto;min-height:3.6em;overflow-y:auto;overscroll-behavior:contain;margin-top:clamp(18px,3.4vh,32px);padding-right:10px;white-space:pre-line;font-size:var(--t-body);line-height:var(--lh-body);letter-spacing:var(--ls-body);color:var(--muted);max-width:34em;scrollbar-width:thin;scrollbar-color:var(--line) transparent}.work-detail-text::-webkit-scrollbar{width:3px}.work-detail-text::-webkit-scrollbar-thumb{background:var(--line)}.work-links{flex:none;list-style:none;margin-top:clamp(18px,3.4vh,32px);border-bottom:1px solid var(--line)}.work-link{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:10px 0;border-top:1px solid var(--line);font-size:1.1rem}.work-link-note{margin-left:14px;font-family:var(--sans);font-size:var(--t-label);letter-spacing:var(--ls-label);color:var(--muted)}.work-link-label{display:inline-block}a.work-link .work-link-label{color:var(--ink-2);transition:color var(--hover-t) var(--ease-out),transform var(--hover-t) var(--ease-out)}.work-link-arrow{font-family:var(--sans);font-size:20px;line-height:1;color:var(--muted);transition:color var(--hover-t) var(--ease-out),transform var(--hover-t) var(--ease-out)}a.work-link:hover .work-link-label,a.work-link:focus-visible .work-link-label{color:var(--ink);transform:translate(var(--hover-shift))}a.work-link:hover .work-link-arrow,a.work-link:focus-visible .work-link-arrow{color:var(--red);transform:translate(var(--hover-arrow))}.sub-enter-active{transition:opacity .5s var(--ease-out),transform .6s var(--ease-out)}.sub-leave-active{transition:opacity .2s var(--ease-out),transform .2s var(--ease-out)}.sub-enter-from{opacity:0;transform:translateY(8px)}.sub-leave-to{opacity:0;transform:translateY(-4px)}.file-row{grid-template-columns:minmax(0,1fr) auto 4.5em 4.5em auto;grid-template-areas:"name date ver size actions" "note note note note .";gap:8px 24px}.file-name{grid-area:name;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:.1em 0;margin:-.1em 0}.file-date{grid-area:date}.file-ver{grid-area:ver}.file-size{grid-area:size}.file-date,.file-ver,.file-size{white-space:nowrap}.file-note{grid-area:note;font-size:var(--t-body);line-height:var(--lh-body);letter-spacing:var(--ls-body);color:var(--muted);max-width:34em}.file-actions{grid-area:actions;display:flex;gap:20px;justify-self:end}.file-dl{position:relative;font-family:var(--sans);font-size:var(--t-label);font-weight:500;letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--ink-2);padding:2px 0;transition:color var(--hover-t) var(--ease-out),transform var(--hover-t) var(--ease-out)}.file-dl:hover,.file-dl:focus-visible{color:var(--ink);transform:translate(var(--hover-shift))}.file-status{font-family:var(--sans);font-size:var(--t-label);letter-spacing:var(--ls-label);color:var(--muted);padding:2px 0}.file-dl:after{content:"";position:absolute;left:0;right:.2em;bottom:-2px;height:1px;background:var(--line);transition:background var(--hover-t) var(--ease-out)}.file-dl:hover:after,.file-dl:focus-visible:after{background:var(--red)}.intro-row{grid-template-columns:12px minmax(0,1fr);gap:10px 20px;padding:clamp(14px,2.6vh,24px) 0}.intro-dash{align-self:center;width:12px;height:1px;background:var(--muted)}.intro-row .row-title{letter-spacing:.06em}.intro-text{grid-column:2;white-space:pre-line;font-family:var(--serif);font-size:var(--t-body);line-height:var(--lh-body);letter-spacing:var(--ls-body);color:var(--muted);max-width:34em}.panel-enter-active{transition:opacity .7s var(--ease-out) .25s,transform .9s var(--ease-out) .25s}.panel-leave-active{transition:opacity .3s var(--ease-out),transform .3s var(--ease-out)}.panel-enter-from{opacity:0;transform:translateY(10px)}.panel-leave-to{opacity:0;transform:translateY(-6px)}.intro-rows{border-bottom:0}.intro-rows .intro-row{border-top:0;padding-top:clamp(10px,2vh,18px);padding-bottom:clamp(10px,2vh,18px)}.cover:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.6 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:180px 180px;opacity:.05;mix-blend-mode:multiply}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .cover:after{filter:invert(1);mix-blend-mode:screen;opacity:.035}}:root[data-theme=dark] .cover:after{filter:invert(1);mix-blend-mode:screen;opacity:.035}.mark:after{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border:1px solid var(--red);opacity:0;animation:ping 6s var(--ease-out) 3.2s infinite}.is-open .mark:after{animation:none}.tagline,.now{position:absolute;z-index:2;opacity:0;animation:fade 1.4s var(--ease) 2.2s forwards}.tagline,.now{transition:filter .5s var(--ease-out),visibility .5s}.is-open .tagline,.is-open .now{filter:opacity(0);visibility:hidden;pointer-events:none}.tagline{left:calc(var(--ax) + var(--name-gap));top:calc(var(--ay) + 48px);font-style:italic;font-size:var(--t-body);letter-spacing:.02em;color:var(--muted)}.now{left:calc(var(--ax2) + 28px);top:calc(var(--ay) + 32px);right:var(--gutter);font-family:var(--sans)}.now-head{display:flex;align-items:center;gap:9px;margin-bottom:12px;font-size:var(--t-micro);font-weight:500;letter-spacing:var(--ls-micro);text-transform:uppercase;color:var(--ink)}.now-dot{width:5px;height:5px;background:var(--red)}.now-list{list-style:none;display:flex;flex-direction:column;gap:5px}.now-list li{font-family:var(--serif);font-size:var(--t-body);line-height:1.4;color:var(--ink-2)}.now-time{margin-top:12px;font-size:var(--t-micro);letter-spacing:var(--ls-label);color:var(--muted)}.axis-pulse{position:absolute;left:var(--ax);top:var(--ay);width:72px;height:1px;background:var(--red);transform-origin:left center;transform:scaleX(0);animation:pulse-line .52s var(--ease) forwards}.edge-mark{position:absolute;z-index:1;right:calc(100% - var(--ax) + 12px);bottom:calc(var(--gutter) + 22px);writing-mode:vertical-rl;transform:rotate(180deg);font-family:var(--sans);font-size:var(--t-micro);font-weight:500;letter-spacing:.3em;text-transform:uppercase;white-space:nowrap;color:var(--faint);pointer-events:none;-webkit-user-select:none;user-select:none;opacity:0;animation:fade 1.4s var(--ease) 2.2s forwards}@keyframes pulse-line{0%{transform:scaleX(0)}45%{transform:scaleX(1)}to{transform:scaleX(0)}}@keyframes ping-sm{0%{transform:scale(1);opacity:.3}55%,to{transform:scale(2.4);opacity:0}}@keyframes ping{0%{transform:scale(1);opacity:.5}55%,to{transform:scale(3.6);opacity:0}}@keyframes draw-x{to{transform:scaleX(1)}}@keyframes draw-y{to{transform:scaleY(1)}}@keyframes rise{to{transform:translateY(0)}}@keyframes pop{to{transform:scale(1)}}@keyframes fade{to{opacity:1}}@media(max-width:720px){:root{--ax: 14%;--ax2: 86%;--ay-home: 47%;--ay-open: 17%;--name-size: clamp(3.8rem, 21vw, 7.8rem);--name-size-open: clamp(2.4rem, 11.5vw, 3.1rem);--t-item: clamp(1.25rem, 5.6vw, 1.5rem);--t-body: 14px;--lh-body: 1.6;--t-nav: 10px;--ls-nav: .16em}.name-link{flex-direction:column;align-items:flex-start;gap:.14em}.name{line-height:.84}.name-b{margin-left:.32em}.is-open .name{left:calc(var(--ax) + var(--name-gap))}.axis-h:after{width:40vw}.edge-mark{display:none}.axis-pulse{width:44px}.axis-v2,.tagline{display:none}.now{left:calc(var(--ax) + var(--name-gap));top:calc(var(--ay) + clamp(104px,17vh,150px))}.now-head{gap:8px;margin-bottom:9px}.now-dot{width:4px;height:4px}.now-list{gap:2px}.now-list li{line-height:1.3}.now-time{margin-top:9px}.mark:after{animation-name:ping-sm}.is-open .axis-h:after{left:var(--ax);width:40vw}.nav{left:calc(var(--ax) + var(--name-gap));right:var(--gutter);top:calc(var(--ay) + 26px);flex-direction:row;flex-wrap:wrap;gap:8px 18px}.nav-item.is-active{padding-left:0}.nav-item:before{top:auto;bottom:-3px;width:100%}.panel{left:calc(var(--ax) + var(--name-gap));top:calc(var(--ay-open) + 88px);right:calc(var(--gutter) + 6px);bottom:calc(var(--gutter) + 20px)}.panel-head{gap:10px}.row{gap:12px;grid-template-columns:2.4em 1fr auto}.intro-row{grid-template-columns:12px minmax(0,1fr);gap:6px 14px;padding:clamp(10px,1.8vh,16px) 0}.intro-rows{margin-top:-14px}.intro-rows .intro-row{padding-top:clamp(7px,1.3vh,11px);padding-bottom:clamp(7px,1.3vh,11px);row-gap:4px}.work-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name arrow" "kind status";gap:6px 12px}.work-row .work-status,.work-row .work-arrow{justify-self:end}.link-row{grid-template-areas:"name   arrow" "status status"}.link-row .work-status{justify-self:start}.work-detail-title{font-size:clamp(1.7rem,7.4vw,2.2rem)}.file-row{grid-template-columns:auto auto minmax(0,1fr) auto;grid-template-areas:"name name name actions" "note note note note" "date ver  size size";gap:6px 14px}.file-actions{gap:14px}}@media(max-height:460px)and (orientation:landscape){:root{--ay-home: 70%;--ay-open: 24%;--name-size: clamp(2.6rem, 18vh, 6rem)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important;transition-delay:0ms!important}.axes,.name{transform:none}.mark:after{animation:none}.axis-pulse{display:none}.nav-item:hover,.work-row:hover .work-name,.work-row:focus-visible .work-name,.work-row:hover .work-arrow,.work-row:focus-visible .work-arrow,.work-back:hover,.work-back:focus-visible,a.work-link:hover .work-link-label,a.work-link:focus-visible .work-link-label,a.work-link:hover .work-link-arrow,a.work-link:focus-visible .work-link-arrow,.file-dl:hover,.file-dl:focus-visible{transform:none}}
