.portrait-row{padding:60px 0 100px;border-bottom:1px solid var(--rule)}.portrait-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:60px;align-items:start}@media(max-width:900px){.portrait-grid{grid-template-columns:1fr;gap:40px}}.portrait{aspect-ratio:4 / 5;position:relative;border:1px solid var(--rule);background:linear-gradient(180deg,#140f080d,#140f0866),repeating-linear-gradient(82deg,#8d7656 0 2px,#6b5a40 2px 4px,#4a3d2a 4px 18px);background-blend-mode:multiply,normal;overflow:hidden}[data-theme=dark] .portrait{background:linear-gradient(180deg,#0003,#0009),repeating-linear-gradient(82deg,#4a3d2a 0 2px,#332a1e 2px 4px,#1e1812 4px 18px);background-blend-mode:multiply,normal}.portrait:after{content:"[ portrait — at the desk, Hangzhou, 2026 ]";position:absolute;left:14px;top:14px;font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:#ffffffbf;border:1px dashed rgba(255,255,255,.4);padding:5px 8px;border-radius:2px;text-transform:uppercase}.portrait-image:after{display:none}.portrait-image picture,.portrait-image img,.portrait-image .live-photo-video{width:100%;height:100%}.portrait-image img,.portrait-image .live-photo-video{object-fit:cover;object-position:50% 38%}.portrait .stamp-coord{position:absolute;right:14px;bottom:14px;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);background:var(--paper);padding:6px 10px;border-radius:2px}.pull{font-family:var(--serif);font-weight:300;font-size:clamp(28px,3.2vw,42px);line-height:1.25;letter-spacing:-.01em;color:var(--ink);margin:0 0 28px;text-wrap:balance}.pull em{font-style:italic;color:var(--accent)}.about-prose p{font-size:19px;line-height:1.7;color:var(--ink-2);margin:0 0 20px;text-wrap:pretty;max-width:58ch}.about-prose p strong{color:var(--ink);font-weight:500}.timeline-section{padding:100px 0;border-bottom:1px solid var(--rule);position:relative}.tl{display:grid;grid-template-columns:120px 1fr;gap:40px;margin-top:48px;position:relative}@media(max-width:820px){.tl{grid-template-columns:1fr;gap:0}}.tl-rail{position:relative;font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:var(--ink-4);text-transform:uppercase}@media(max-width:820px){.tl-rail{display:none}}.tl-events{position:relative;padding-left:32px;border-left:1px solid var(--rule)}.tl-event{position:relative;padding:0 0 56px}.tl-event:last-child{padding-bottom:0}.tl-event:before{content:"";position:absolute;left:-38px;top:10px;width:12px;height:12px;border-radius:50%;background:var(--paper);border:2px solid var(--accent)}.tl-event.milestone:before{background:var(--accent)}.tl-year{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:6px}.tl-place{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-4);margin-left:12px}.tl-title{font-family:var(--serif);font-weight:400;font-size:24px;line-height:1.25;letter-spacing:-.01em;margin:4px 0 10px;color:var(--ink);text-wrap:balance}.tl-title em{font-style:italic}.tl-desc{color:var(--ink-2);font-size:16px;line-height:1.55;max-width:60ch;margin:0;text-wrap:pretty}.two-up{padding:100px 0;border-bottom:1px solid var(--rule);background:var(--paper-2)}.two-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:60px}@media(max-width:820px){.two-grid{grid-template-columns:1fr;gap:40px}}.now-card,.work-card{border:1px solid var(--rule);background:var(--paper);padding:32px;position:relative}.now-card:before,.work-card:before{content:"";position:absolute;top:-1px;left:-1px;right:-1px;height:3px;background:var(--accent)}.card-h{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:24px;gap:16px;flex-wrap:wrap}.card-h h3{font-family:var(--serif);font-weight:300;font-size:clamp(24px,2.8vw,32px);letter-spacing:-.01em;margin:0;line-height:1.1}.card-h h3 em{font-style:italic;color:var(--accent)}.card-h .date{font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:var(--ink-4);text-transform:uppercase}.now-list,.work-list{list-style:none;margin:0;padding:0}.now-list li{display:grid;grid-template-columns:100px 1fr;gap:20px;padding:14px 0;align-items:baseline;border-top:1px solid var(--rule)}.now-list li:first-child,.work-list li:first-child{border-top:0;padding-top:0}.now-list .k{font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:var(--ink-4);text-transform:uppercase;padding-top:4px}.now-list .v{font-family:var(--serif);color:var(--ink);font-size:17px;line-height:1.45}.now-list .v em{color:var(--ink-3);font-size:13px;display:block;margin-top:4px;font-style:italic}.work-list li{display:grid;grid-template-columns:auto 1fr auto;gap:14px;padding:12px 0;align-items:baseline;border-top:1px solid var(--rule)}.work-list .place-ico{width:18px;height:18px;color:var(--accent)}.work-list .label{font-size:17px;color:var(--ink)}.work-list .label em{font-style:italic;color:var(--ink-3);font-size:14px;margin-left:4px}.work-list .year{font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:var(--ink-4);text-transform:uppercase}.stats-strip{padding:80px 0;border-bottom:1px solid var(--rule)}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}@media(max-width:700px){.stats-grid{grid-template-columns:repeat(2,1fr)}}.stat{background:var(--paper);padding:36px 28px}.stat .n{font-family:var(--serif);font-weight:300;font-size:clamp(44px,5vw,68px);line-height:1;letter-spacing:-.03em;color:var(--ink)}.stat .n em{font-style:italic;color:var(--accent)}.stat .l{font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:var(--ink-3);text-transform:uppercase;margin-top:10px}.stats-cap{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-4);margin-top:16px;text-align:right}.contact{padding:100px 0;border-bottom:1px solid var(--rule);position:relative;overflow:hidden}.contact-topo{position:absolute;right:-120px;bottom:-120px;width:500px;height:500px;opacity:.1;color:var(--accent);pointer-events:none}.contact-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:60px;align-items:start}@media(max-width:900px){.contact-grid{grid-template-columns:1fr;gap:36px}}.contact h2{font-family:var(--serif);font-weight:300;font-size:clamp(34px,5vw,56px);line-height:1.04;letter-spacing:-.02em;margin:14px 0 20px;max-width:12ch}.contact h2 em{font-style:italic;color:var(--accent)}.contact-lede{max-width:48ch;color:var(--ink-2);font-size:18px;line-height:1.6;margin:0;text-wrap:pretty}.contact-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.reasons{border:1px solid var(--rule);background:var(--paper-2);padding:26px 28px}.reasons h4{margin:0 0 20px;font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);font-weight:500}.reasons ul{list-style:none;margin:0;padding:0}.reasons li{display:grid;grid-template-columns:auto 1fr;gap:14px;padding:14px 0;border-top:1px solid var(--rule)}.reasons li:first-child{border-top:0;padding-top:0}.reasons .n{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);padding-top:2px}.reasons span:last-child{color:var(--ink);font-size:16px;line-height:1.55}.reasons em{display:block;color:var(--ink-3);font-style:italic;font-size:13px;margin-top:3px}.colophon{padding:100px 0;border-bottom:1px solid var(--rule)}.colophon h3{font-family:var(--serif);font-weight:300;font-size:clamp(30px,4vw,42px);line-height:1.08;letter-spacing:-.02em;margin:0 0 28px}.colophon h3 em{font-style:italic;color:var(--accent)}.colo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}@media(max-width:900px){.colo-grid{grid-template-columns:1fr}}.colo-item{border:1px solid var(--rule);background:var(--paper-2);padding:24px}.colo-item h4{margin:0 0 12px;font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);font-weight:500}.colo-item p{margin:0;color:var(--ink-2);font-size:16px;line-height:1.6;text-wrap:pretty}
