:root{--bg: #0f0f0f;--card: #1a1a1a;--card-hover: #202020;--ink: #ffffff;--ink-2: #e6e6e6;--ink-3: #cccccc;--ink-4: #999999;--hair: rgba(255, 255, 255, .1);--sans: "Geist", system-ui, -apple-system, sans-serif;--mono: ui-monospace, "SF Mono", Menlo, monospace;--cjk: "Liu Jian Mao Cao";--sig-name-dur: .64s;--sig-name-ease: cubic-bezier(.4, 0, .2, 1);--sig-dither-start: .38s;--sig-dither-stag: 30ms;--sig-dither-dur: .38s;--sig-dither-steps: 4;--sig-body-lead: 1.26s;--sig-body-stag: 32ms;--sig-body-dur: .6s;--sig-body-ease: cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.3;letter-spacing:-.01em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}main{min-height:100svh;max-width:680px;margin:0 auto;padding:160px 20px 80px;display:flex;flex-direction:column;justify-content:space-between;gap:96px}.stack{display:flex;flex-direction:column;gap:64px}.intro{display:flex;flex-direction:column;gap:20px}.namerow{display:flex;align-items:flex-start;gap:16px}.name{margin:0;flex:1 0 0;min-width:0;color:var(--ink)}.handle{margin:0;width:128px;flex-shrink:0;letter-spacing:-.01em;text-align:right;color:var(--ink-4);text-decoration:none;transition:color .15s ease}.handle:hover{color:var(--ink-2)}.handle:focus-visible{outline:1px solid var(--ink-4);outline-offset:2px;border-radius:2px}.bio{display:flex;flex-direction:column;gap:12px}.bio p{margin:0;color:var(--ink-4)}a.u{color:inherit;cursor:pointer;text-decoration:underline;text-underline-position:from-font;transition:color .15s ease}a.u:hover{color:var(--ink-2)}a.u:focus-visible{outline:1px solid var(--ink-4);outline-offset:2px;border-radius:2px}.loc{display:flex;align-items:center;gap:4px}.loc img{width:16px;height:16px;opacity:.6;flex-shrink:0}.loc p{margin:0;color:var(--ink-4)}.section{display:flex;flex-direction:column;gap:12px}.label{margin:0;color:var(--ink-2)}.group{display:flex;flex-direction:column;gap:12px;padding-bottom:8px}.company{position:relative;margin:0;padding-top:8px;color:var(--ink-3)}.company:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:var(--hair);transform-origin:left center}.rows{display:flex;flex-direction:column;gap:0;margin:-6px 0}.row{display:flex;align-items:center;gap:6px;padding:6px 0 6px 16px;color:var(--ink-4);text-decoration:none;white-space:nowrap;transition:opacity .15s ease,color .15s ease}.row .title{flex-shrink:0}.row .year{margin-left:auto;flex-shrink:0;font-variant-numeric:tabular-nums}.row .arrow,.row .lock{opacity:0;transform:translate(-4px);transition:opacity .15s ease,transform .15s ease}.row .lock{display:inline-flex;align-items:center;line-height:0;cursor:help}.row.link{cursor:pointer}.row.locked{cursor:default}.row.link:focus-visible{outline:1px solid var(--ink-4);outline-offset:3px;border-radius:2px}@media(hover:hover)and (pointer:fine){.rows:has(.row:hover) .row{opacity:.3}.rows:has(.row:hover) .row:hover{opacity:1}.row:hover{color:var(--ink-2)}.row.link:hover .arrow,.row.locked:hover .lock{opacity:1;transform:translate(0)}.row.locked:hover .lock{opacity:.55}}.grid{display:flex;align-items:flex-start;gap:8px}.col{flex:1 0 0;min-width:0;display:flex;flex-direction:column;gap:8px}.card{position:relative;aspect-ratio:316 / var(--h);overflow:hidden;display:flex;align-items:flex-end;padding:8px;border-radius:8px;background:var(--card);color:var(--ink);text-decoration:none}.card .media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.card .preview{position:absolute;top:0;left:0;width:400%;height:400%;border:0;transform:scale(.25);transform-origin:0 0;pointer-events:none;opacity:0;transition:opacity .4s ease}.card .preview.ready{opacity:1}.caption{position:relative;z-index:1;display:flex;align-items:flex-end;justify-content:space-between;gap:12px;width:100%;line-height:1;white-space:nowrap}.caption.end{justify-content:flex-end}.caption .muted,.caption .date{opacity:.6}.card.motion .caption{opacity:0;transform:translateY(3px);transition:opacity .18s ease,transform .18s ease}.card.motion:after{content:"";position:absolute;inset:auto 0 0;height:46%;background:linear-gradient(transparent,#0000009e);opacity:0;transition:opacity .18s ease;pointer-events:none}.card.motion:hover .caption,.card.motion:focus-visible .caption{opacity:1;transform:translateY(0)}.card.motion:hover:after,.card.motion:focus-visible:after{opacity:1}.card.link{cursor:pointer;transition:background-color .15s ease}.card.link:not(.motion):hover{background:var(--card-hover)}.card.link:focus-visible{outline:1px solid var(--ink-4);outline-offset:2px}.viewer[hidden]{display:none}.viewer{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:24px}.viewer-scrim{position:absolute;inset:0;background:#000000b8;backdrop-filter:blur(3px);animation:v-fade .2s ease both}.viewer-win{position:relative;display:flex;flex-direction:column;width:min(1120px,100%);height:min(760px,100%);border-radius:10px;overflow:hidden;background:var(--card);border:1px solid rgba(255,255,255,.12);box-shadow:0 24px 70px #0000008c;animation:v-in .26s cubic-bezier(.2,.8,.2,1) both}@keyframes v-fade{0%{opacity:0}}@keyframes v-in{0%{opacity:0;transform:translateY(10px) scale(.985)}}.viewer-bar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:7px 10px;border-bottom:1px solid rgba(255,255,255,.09);background:#ffffff05;flex-shrink:0}.viewer-name{display:flex;align-items:center;gap:7px;justify-content:center;color:var(--ink-2);white-space:nowrap}.viewer-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:0;border-radius:5px;background:transparent;color:var(--ink-4);cursor:pointer;text-decoration:none;flex-shrink:0}.viewer-btn:hover{background:#ffffff17;color:var(--ink)}.viewer-btn:focus-visible{outline:1px solid var(--ink-4);outline-offset:1px}#viewer-close{justify-self:start}.viewer-url{justify-self:end;color:#5c5c5c;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.viewer-frame{flex:1;width:100%;border:0;background:var(--bg)}body.viewer-open{overflow:hidden}@media(max-width:680px){.viewer{padding:0}.viewer-win{width:100%;height:100%;border-radius:0;border:0}.viewer-url{display:none}}footer{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.quote{margin:0;flex:1 0 0;min-width:0;color:var(--ink-3)}.quote .cjk{font-family:var(--cjk),var(--sans);font-size:.92em;letter-spacing:.02em}.links{display:flex;gap:12px;flex-shrink:0;white-space:nowrap}.links a{color:var(--ink-4);text-decoration:none}.links a:hover{color:var(--ink)}.links a:focus-visible{outline:1px solid var(--ink-4);outline-offset:2px;border-radius:2px}html[data-anim] .rv{animation-duration:var(--dur, .55s);animation-timing-function:var(--ease, cubic-bezier(.2, .8, .2, 1));animation-fill-mode:backwards;animation-delay:calc(var(--i, 0) * var(--stag, 26ms) + var(--lead, 0ms))}html[data-anim] .rv.settled,html[data-anim] .rv.settled .ch{animation:none}@keyframes a-fadeup{0%{opacity:0;transform:translateY(8px)}}@keyframes a-blurup{0%{opacity:0;filter:blur(8px);transform:translateY(16px)}}@keyframes a-fade{0%{opacity:0}}@keyframes a-tile{0%{opacity:0;transform:scale(.96)}}@keyframes a-settle{0%{opacity:0;transform:scale(.985)}}@keyframes a-track{0%{opacity:0;letter-spacing:.06em}}@keyframes a-ink{0%{opacity:.5;-webkit-mask-size:100% 0%;mask-size:100% 0%}to{opacity:1;-webkit-mask-size:100% 100%;mask-size:100% 100%}}@keyframes a-line{0%{transform:scaleX(0)}}html[data-anim=signature] .rv{animation-name:a-blurup;animation-delay:calc(var(--sig-body-lead) + var(--b, 0) * var(--sig-body-stag));animation-duration:var(--sig-body-dur);animation-timing-function:var(--sig-body-ease)}html[data-anim=signature] .name{animation:a-fadeup var(--sig-name-dur) var(--sig-name-ease) both;animation-delay:0ms}html[data-anim=signature] .handle{animation:none;opacity:1}html[data-anim=signature] .handle .ch{animation:a-fade var(--sig-dither-dur) steps(var(--sig-dither-steps),end) both;animation-delay:calc(var(--sig-dither-start) + var(--s, 0) * var(--sig-dither-stag))}html[data-anim=fade-up] .rv{animation-name:a-fadeup}html[data-anim=blur-up] .rv{animation-name:a-blurup;--stag: 34ms;--dur: .7s}html[data-anim=cascade] .rv{animation-name:a-fadeup;--stag: 16ms;--dur: .4s}html[data-anim=progressive] .rv{animation-name:a-fadeup;animation-delay:calc(var(--t, 1) * 95ms);--dur: .6s}html[data-anim=map-settle] main{animation:a-settle .8s cubic-bezier(.16,1,.3,1) both}html[data-anim=map-settle] .rv{animation:none}html[data-anim=ink-bleed] .rv{animation-name:a-ink;-webkit-mask-image:linear-gradient(#000,#000);mask-image:linear-gradient(#000,#000);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:top left;mask-position:top left;--stag: 30ms;--dur: .5s;--ease: cubic-bezier(.4, 0, .2, 1)}html[data-anim=dither] .rv{animation-name:a-fade;--stag: 26ms;--dur: .6s;--ease: steps(6, end)}html[data-anim=hairline] .company:before{animation:a-line .6s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i, 0) * 26ms)}html[data-anim=hairline] .rv{animation-name:a-fade;--stag: 22ms;--lead: .26s;--dur: .5s}html[data-anim=tiles-first] .rv{animation-name:a-fadeup;--stag: 20ms;--lead: .3s}html[data-anim=tiles-first] .rv.card{animation-name:a-tile;animation-delay:calc(var(--ci, 0) * 55ms);--dur: .6s}html[data-anim=type-settle] .rv{animation-name:a-track;--stag: 28ms;--dur: .7s}@media(prefers-reduced-motion:reduce){html[data-anim] .rv,html[data-anim] main,html[data-anim] .name,html[data-anim] .handle .ch,html[data-anim] .company:before{animation:none!important}.card.link,.row,.row .arrow{transition:none}}@media(max-width:680px){main{padding:64px 16px 40px;gap:48px}.stack{gap:48px}.namerow{justify-content:space-between}.name{flex:0 1 auto}.handle{width:auto;text-align:right}.row{white-space:normal;gap:12px}}
