:root{--white:#fff;--ink:#161616;--muted:#777;--faint:#b6b6b6;--line:#ececec;--serif:"Songti SC", "STSong", "Noto Serif CJK SC", serif;--sans:"PingFang SC", "Helvetica Neue", Arial, sans-serif;--avatar-image:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:var(--ink);background:var(--white);font-family:var(--sans);margin:0}body.archive-open{overflow:hidden}a{color:inherit;text-decoration:none}button{color:inherit;font:inherit}.menu-button{z-index:80;border:1px solid var(--line);width:56px;height:56px;color:var(--ink);background:var(--white);cursor:pointer;border-radius:50%;place-content:center;gap:5px;padding:0;transition:transform .25s,border-color .25s;display:grid;position:fixed;top:28px;left:32px}.menu-button:hover{border-color:#cfcfcf;transform:scale(1.04)}.menu-button span{background:currentColor;border-radius:10px;width:17px;height:1px;display:block}.menu-button span:nth-child(2){width:11px}.menu-button small{color:var(--muted);letter-spacing:.18em;white-space:nowrap;font-size:9px;position:absolute;top:64px;left:50%;translate:-50%}.menu-button.over-light{color:var(--ink);background:var(--white)}.archive{z-index:95;width:min(500px,92vw);color:var(--ink);background:var(--white);visibility:hidden;border-radius:0 24px 24px 0;flex-direction:column;padding:48px 54px 32px;transition:transform .45s cubic-bezier(.7,0,.2,1),visibility .45s;display:flex;position:fixed;inset:0 auto 0 0;transform:translate(-105%);box-shadow:18px 0 60px #0000000f}.archive.open{visibility:visible;transform:none}.archive-header{justify-content:space-between;align-items:flex-start;display:flex}.archive-header p{color:var(--faint);letter-spacing:.22em;margin:0 0 10px;font-size:9px}.archive-header h2{font:400 28px/1.3 var(--serif);letter-spacing:.1em;margin:0}.archive-close{border:1px solid var(--line);width:42px;height:42px;color:var(--muted);cursor:pointer;background:0 0;border-radius:50%;padding:0 0 3px;font-size:24px;transition:transform .25s,border-color .25s}.archive-close:hover{border-color:#cfcfcf;transform:rotate(90deg)}.archive-tabs{gap:32px;margin:62px 0 34px;display:flex}.archive-tab{color:var(--faint);letter-spacing:.12em;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #0000;padding:0 0 8px;font-size:12px}.archive-tab.active{color:var(--ink);border-color:var(--ink)}.archive-content{scrollbar-width:none;display:none;overflow-y:auto}.archive-content.active{animation:.25s content-in;display:block}@keyframes content-in{0%{opacity:0;transform:translateY(5px)}}.archive-year{margin-bottom:38px}.archive-year>div{justify-content:space-between;align-items:baseline;margin-bottom:14px;display:flex}.archive-year strong{font-size:16px;font-weight:500}.archive-year>div span{color:var(--faint);font-size:10px}.archive-year a{color:#444;font:13px/1.6 var(--serif);border-radius:12px;grid-template-columns:50px 1fr;gap:16px;margin:2px 0;padding:11px 10px;transition:background .2s,transform .2s;display:grid}.archive-year a:hover{background:#fafafa;transform:translate(3px)}.archive-year time{color:var(--faint);font:9px/2.2 var(--sans)}.muted-year{opacity:.65}.tag-cloud{flex-wrap:wrap;gap:12px;display:flex}.tag-cloud a{border:1px solid var(--line);color:#555;border-radius:22px;padding:11px 17px;font-size:12px;transition:border-color .2s}.tag-cloud a:hover{border-color:#ccc}.tag-cloud sup{color:var(--faint);margin-left:3px}.collection-card{border-bottom:1px solid var(--line);padding:25px 0;display:block}.collection-card:first-child{border-top:1px solid var(--line)}.collection-card small,.collection-card span{color:var(--faint);letter-spacing:.1em;font-size:9px}.collection-card h3{font:400 20px/1.4 var(--serif);margin:12px 0}.collection-card p{color:var(--muted);font:13px/1.8 var(--serif)}.archive-footer{color:var(--faint);justify-content:space-between;margin-top:auto;padding-top:25px;font-size:9px;display:flex}.archive-scrim{z-index:90;opacity:0;visibility:hidden;background:#00000014;transition:all .35s;position:fixed;inset:0}.archive-scrim.show{opacity:1;visibility:visible}.landing{width:100%;height:100svh;min-height:600px;color:var(--ink);background:var(--white);place-items:center;display:grid;position:relative;overflow:hidden}.site-signature{position:absolute;top:42px;left:50%;translate:-50%}.site-signature p{color:var(--faint);letter-spacing:.24em;white-space:nowrap;margin:0;font-size:9px}.identity{text-align:center}.profile-avatar{border:1px solid var(--line);background-image:var(--avatar-image);background-position:50%;background-size:cover;place-items:center;display:grid;overflow:hidden}.profile-avatar span{color:var(--faint);letter-spacing:.12em;font-size:11px}.identity h1{font:400 clamp(42px, 5vw, 65px)/1.35 var(--serif);letter-spacing:.22em;text-indent:.22em;margin:0}.identity>p:last-child{color:var(--muted);font:13px/1.7 var(--serif);letter-spacing:.1em;margin:22px 0 0}.scroll-cue{color:var(--faint);letter-spacing:.16em;flex-direction:column;align-items:center;gap:10px;font-size:9px;display:flex;position:absolute;bottom:27px;left:50%;translate:-50%}.scroll-cue i{background:var(--line);transform-origin:top;width:1px;height:34px;animation:2.2s ease-in-out infinite scroll}@keyframes scroll{50%{transform:scaleY(.6)}}.profile{background:var(--white);grid-template-columns:.8fr 1.2fr;align-items:start;gap:clamp(70px,10vw,135px);min-height:100vh;padding:clamp(110px,12vw,170px) max(40px,50vw - 520px);display:grid}.profile-card{position:sticky;top:90px}.profile-avatar{aspect-ratio:1;border-radius:50%;width:108px;margin-bottom:36px}.kicker{color:var(--faint);letter-spacing:.24em;margin:0 0 16px;font-size:9px}.profile h2{font:400 clamp(29px, 3vw, 39px)/1.5 var(--serif);letter-spacing:.05em;margin:0}.bio{color:var(--muted);font:13px/2 var(--serif);letter-spacing:.04em;margin:24px 0 32px}.profile dl{margin:0}.profile dl>div{grid-template-columns:52px 1fr;gap:18px;padding:7px 0;font-size:11px;display:grid}.profile dt{color:var(--faint)}.profile dd{color:#555;margin:0}.profile-links{gap:13px;margin-top:32px;display:flex}.profile-links a{border:1px solid var(--line);color:var(--muted);border-radius:20px;padding:9px 15px;font-size:10px}.profile-links a:hover{color:var(--ink);border-color:#ccc}.preface{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:46px 0}.preface header{justify-content:space-between;align-items:flex-start;display:flex}.preface time{color:var(--faint);font-size:9px}.preface h2{margin:18px 0 34px}.preface-text{color:#555;max-width:620px;font:14px/2.2 var(--serif);letter-spacing:.04em}.preface-text p{margin:0 0 20px}.preface footer{color:var(--faint);justify-content:flex-end;align-items:center;gap:14px;margin-top:38px;font-size:10px;display:flex}.preface footer span{background:var(--line);width:36px;height:1px}.reveal{opacity:0;transition:opacity .7s,transform .7s;transform:translateY(18px)}.reveal.visible{opacity:1;transform:none}@media (width<=800px){.profile{grid-template-columns:1fr;gap:72px;padding-inline:30px}.profile-card{grid-template-columns:108px 1fr;gap:32px;display:grid;position:static}.profile-copy{grid-area:1/2/span 2}}@media (width<=560px){.menu-button{width:50px;height:50px;top:20px;left:20px}.menu-button small{top:58px}.site-signature{top:29px}.identity h1{letter-spacing:.16em;text-indent:.16em;font-size:40px}.archive{border-radius:0 18px 18px 0;padding:34px 27px 25px}.archive-tabs{margin-top:48px}.profile{padding:95px 22px}.profile-card{display:block}.profile-avatar{width:90px;margin-bottom:28px}.preface{padding:38px 0}.preface header{flex-direction:column;gap:8px}.preface h2{margin-top:8px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation:none!important}}.work-page{width:min(760px,100% - 44px);margin:0 auto;padding:42px 0 110px}.home-link{color:var(--muted);font:12px/1 var(--serif);letter-spacing:.14em}.work-article{margin-top:clamp(90px,13vw,150px)}.work-article>header{margin-bottom:65px}.work-article>header time{color:var(--faint);letter-spacing:.08em;font-size:10px}.work-article h1{font:400 clamp(36px, 6vw, 58px)/1.35 var(--serif);letter-spacing:.04em;margin:20px 0}.work-article>header>p{max-width:590px;color:var(--muted);font:14px/1.9 var(--serif)}.work-taxonomy{flex-wrap:wrap;gap:9px;margin-top:28px;display:flex}.work-taxonomy a{border:1px solid var(--line);color:var(--muted);border-radius:18px;padding:7px 12px;font-size:10px;transition:border-color .2s,color .2s}.work-taxonomy a:hover{color:var(--ink);border-color:#ccc}.work-taxonomy .is-collection{color:#555;border-color:#ddd}.prose{color:#3f3f3f;font:16px/2.15 var(--serif);letter-spacing:.035em}.prose h2,.prose h3{color:var(--ink);margin:2.6em 0 .8em;font-weight:400;line-height:1.5}.prose h2{font-size:25px}.prose h3{font-size:20px}.prose p{margin:0 0 1.55em}.prose a{text-underline-offset:4px;text-decoration:underline}.prose blockquote{color:var(--muted);border-left:1px solid #ccc;margin:2em 0;padding-left:1.4em}.prose img{border-radius:12px;max-width:100%;height:auto;margin:2.5em auto;display:block}.work-article>footer{border-top:1px solid var(--line);color:var(--muted);margin-top:85px;padding-top:28px;font-size:12px}.collection-heading{margin:clamp(90px,13vw,150px) 0 70px}.collection-heading>p{color:var(--faint);letter-spacing:.22em;font-size:9px}.collection-heading h1{font:400 clamp(38px, 6vw, 58px)/1.35 var(--serif);margin:18px 0}.collection-heading div{color:var(--muted);font:14px/1.9 var(--serif)}.collection-list>a{border-top:1px solid var(--line);padding:30px 0;display:block}.collection-list time{color:var(--faint);font-size:9px}.collection-list h2{font:400 23px/1.5 var(--serif);margin:10px 0}.collection-list p{color:var(--muted);font:13px/1.8 var(--serif);margin:0}.work-cover{background:#f6f6f6;border-radius:14px;width:100%;height:auto;margin:0 0 70px;display:block}.notfound{margin-top:clamp(110px,18vw,200px)}.notfound>p{color:var(--faint);letter-spacing:.22em;margin:0;font-size:9px}.notfound h1{font:400 clamp(32px, 5vw, 46px)/1.4 var(--serif);letter-spacing:.04em;margin:18px 0}.notfound>div{max-width:460px;color:var(--muted);font:14px/1.9 var(--serif)}.notfound>a{color:var(--muted);font:12px/1 var(--serif);letter-spacing:.1em;margin-top:46px;display:inline-block}.notfound>a:hover{color:var(--ink)}
