:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans SC,sans-serif;line-height:1.5;font-weight:400;color:var(--ink);background:var(--paper);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--paper: #fff;--ink: #111;--muted: #737373;--line: rgba(17, 17, 17, .16);--white: #fff;--soft: #ededed;--mid: #8a8a86;--blue: #4f565d;--mark-filter: none;--max: 1480px}:root[data-theme=dark]{color-scheme:dark;--paper: #080808;--ink: #f2f2ee;--muted: #9a9a94;--line: rgba(242, 242, 238, .18);--white: #111;--soft: #1c1c1c;--mid: #9b9b95;--blue: #b6bcc2;--mark-filter: invert(1)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;color:var(--ink);background:linear-gradient(90deg,rgba(17,17,17,.035) 1px,transparent 1px) 0 0 / 25vw 100%,var(--paper)}:root[data-theme=dark] body{background:linear-gradient(90deg,rgba(242,242,238,.055) 1px,transparent 1px) 0 0 / 25vw 100%,var(--paper)}a{color:inherit;text-decoration:none}button{font:inherit}img{display:block;max-width:100%}@media(pointer:fine){:root.has-custom-cursor body,:root.has-custom-cursor a,:root.has-custom-cursor button,:root.has-custom-cursor .timeline-reel{cursor:none}}.cursor-filter-svg{position:fixed;width:0;height:0;pointer-events:none}.cursor-frame{position:fixed;z-index:140;top:0;left:0;width:22px;height:22px;border:.3px solid color-mix(in srgb,var(--ink) 18%,transparent);border-radius:6px;color:var(--ink);opacity:0;pointer-events:none;background:color-mix(in srgb,var(--white) 18%,transparent);-webkit-backdrop-filter:url(#cursor-liquid-small-filter) blur(3px) contrast(1.16) brightness(1.06) saturate(1.18);backdrop-filter:url(#cursor-liquid-small-filter) blur(3px) contrast(1.16) brightness(1.06) saturate(1.18);box-shadow:inset 0 0 0 .35px #ffffff94,inset 2px 2px 2px -2px #ffffffe0,inset -2px -3px 5px -4px #00000057,0 4px 12px #0000001f;transition:width .26s cubic-bezier(.16,1,.3,1),height .26s cubic-bezier(.16,1,.3,1),border-radius .26s cubic-bezier(.16,1,.3,1),background .26s ease,box-shadow .26s ease,opacity .18s ease;will-change:transform}.cursor-frame:before{content:"";position:absolute;inset:2px 4px auto;height:42%;border-top:.45px solid rgba(255,255,255,.68);border-left:.45px solid rgba(255,255,255,.18);border-right:.45px solid rgba(255,255,255,.12);border-radius:inherit;opacity:.64;pointer-events:none}.cursor-frame:after{content:"";position:absolute;inset:auto 5px 4px;height:18%;border-bottom:.45px solid rgba(0,0,0,.22);border-radius:inherit;opacity:.34;pointer-events:none}.cursor-frame[data-visible=true]{opacity:.92}.cursor-frame[data-active=true]{width:28px;height:28px;border-radius:50%;border-color:color-mix(in srgb,var(--ink) 14%,transparent);background:color-mix(in srgb,var(--white) 24%,transparent);-webkit-backdrop-filter:url(#cursor-liquid-active-filter) blur(4px) contrast(1.22) brightness(1.08) saturate(1.22);backdrop-filter:url(#cursor-liquid-active-filter) blur(4px) contrast(1.22) brightness(1.08) saturate(1.22);box-shadow:inset 0 0 0 .35px #ffffffa8,inset 2px 2px 3px -3px #ffffffeb,inset -3px -4px 8px -7px #00000061,0 5px 14px #00000024}.cursor-frame[data-active=true]:before{inset:3px 6px auto;height:38%;opacity:.72}.cursor-frame[data-active=true]:after{inset:auto 7px 5px;height:22%;opacity:.42}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}::selection{background:var(--ink);color:var(--paper)}.intro-cover{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;display:block;width:100%;border:0;color:#fff;background:#050505;cursor:pointer}.intro-cover-mark{position:absolute;top:50%;left:50%;display:inline-flex;align-items:center;gap:10px;font-size:15px;font-weight:650;letter-spacing:0;transform:translate(-50%,-50%) scale(1.18);transform-origin:left center}.intro-cover[data-state=closing]{pointer-events:none;animation:intro-fade .65s cubic-bezier(.78,0,.22,1) forwards}.intro-cover[data-state=closing] .intro-cover-mark{animation:intro-mark-home .65s cubic-bezier(.78,0,.22,1) forwards}.intro-cover-mark img{width:30px;height:30px;filter:invert(1)}@keyframes intro-fade{0%{opacity:1}72%{opacity:1}to{opacity:0;visibility:hidden}}@keyframes intro-mark-home{to{top:36px;left:clamp(18px,3vw,44px);transform:translateY(-50%) scale(1)}}.site-header{position:fixed;z-index:20;top:0;left:0;right:0;display:grid;grid-template-columns:minmax(160px,1fr) auto minmax(120px,1fr);align-items:center;gap:24px;padding:18px clamp(18px,3vw,44px);color:var(--ink);background:color-mix(in srgb,var(--paper) 84%,transparent);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand{display:inline-flex;align-items:center;gap:9px;width:fit-content;font-size:15px;font-weight:650}.brand-mark{width:27px;height:27px;border:1px solid var(--line);border-radius:6px;background:transparent;filter:var(--mark-filter);object-fit:contain}.site-nav{display:flex;align-items:center;justify-content:center;gap:clamp(12px,2.4vw,34px);font-size:13px;color:var(--muted)}.site-nav a{padding:6px 0;border-bottom:1px solid transparent}.site-nav a.active,.site-nav a:hover{color:var(--ink);border-color:currentColor}.contact-chip{justify-self:end;display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:0 12px;border:1px solid var(--line);font-size:13px;background:color-mix(in srgb,var(--white) 42%,transparent)}.header-tools{justify-self:end;display:flex;align-items:center;gap:8px}.display-controls{display:inline-flex;align-items:center;gap:2px;min-height:34px;padding:3px;border:1px solid var(--line);background:color-mix(in srgb,var(--white) 35%,transparent)}.display-controls button{display:inline-grid;place-items:center;width:28px;height:28px;border:0;color:var(--muted);background:transparent;cursor:pointer}.display-controls button.active,.display-controls button:hover{color:var(--paper);background:var(--ink)}.language-toggle{display:inline-grid;place-items:center;min-width:32px;height:32px;padding:0 7px;border:1px solid var(--line);border-radius:999px;color:var(--muted);background:transparent;font:inherit;font-size:12px;line-height:1;cursor:pointer}.language-toggle:hover{color:var(--paper);background:var(--ink);border-color:var(--ink)}.hero{position:relative;min-height:92vh;display:grid;align-items:end;overflow:hidden;isolation:isolate;padding:120px clamp(18px,3vw,44px) 38px}.hero-image,.hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0}.hero-image{z-index:-2;width:100%;height:100%;object-fit:cover}.hero-overlay{z-index:-1;background:linear-gradient(180deg,rgba(255,255,255,.9),transparent 38%,rgba(0,0,0,.72)),linear-gradient(90deg,rgba(255,255,255,.72),transparent 58%)}.hero-image{filter:grayscale(1) contrast(1.08)}:root[data-theme=dark] .hero-overlay{background:linear-gradient(180deg,rgba(8,8,8,.72),transparent 34%,rgba(0,0,0,.78)),linear-gradient(90deg,rgba(8,8,8,.58),transparent 58%)}.hero-content{width:min(100%,var(--max));margin:0 auto;color:#fff}.eyebrow{margin:0 0 20px;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:0}.hero .eyebrow{color:#ffffffb8}.hero-bottom{display:grid;grid-template-columns:minmax(220px,520px) auto;align-items:end;gap:28px;margin-top:clamp(28px,6vh,76px)}.hero-bottom p,.intro-statement p{margin:0;font-size:clamp(24px,3.4vw,54px);line-height:1.05}.timeline-hero{position:relative;min-height:88vh;width:min(100% - 36px,var(--max));margin:0 auto;padding:124px 0 78px;overflow:hidden}.timeline-statement h1{max-width:1060px;margin:0;font-size:clamp(36px,4.8vw,74px);font-weight:400;line-height:1.12;letter-spacing:0}html[lang=zh-CN] .timeline-statement h1{max-width:1120px;font-size:clamp(34px,4.55vw,68px);line-height:1.16}.timeline-reel{position:relative;margin-top:28px;border-top:1px solid var(--line);overflow-x:auto;overflow-y:hidden;padding:0 0 50px;cursor:ew-resize;scrollbar-width:none;touch-action:pan-y;-webkit-user-select:none;user-select:none;scroll-snap-type:none}.timeline-reel::-webkit-scrollbar{display:none}.timeline-personal-logo{position:absolute;z-index:6;top:calc(50% - 70px);left:0;display:block;pointer-events:none}.timeline-personal-logo img{display:block;width:34px;height:34px;object-fit:contain;opacity:.92}.timeline-current-year{position:absolute;z-index:4;top:calc(50% + 15px);left:0;display:inline-flex;align-items:center;min-width:54px;height:22px;color:var(--ink);font-size:12px;line-height:1;background:color-mix(in srgb,var(--paper) 86%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.timeline-track{position:relative;display:flex;align-items:center;gap:0;min-height:clamp(292px,30vw,382px);min-width:max-content;padding:0 18vw;--tape-focus: 50%}.timeline-track:before{content:none}.timeline-tape{position:absolute;z-index:0;top:50%;left:0;right:0;height:34px;transform:translateY(-50%);pointer-events:none}.timeline-tape:before,.timeline-tape:after{content:"";position:absolute;top:50%;border-radius:2px 2px 5px 5px;transform:translateY(-50%);pointer-events:none}.timeline-tape:before{left:0;right:0;height:11px;background:repeating-linear-gradient(90deg,rgba(9,28,44,.105) 0 3px,transparent 3px 8px)}.timeline-tape:after{left:var(--tape-focus);width:clamp(260px,38vw,560px);height:18px;background:repeating-linear-gradient(90deg,rgba(9,28,44,.26) 0 3px,transparent 3px 8px);opacity:0;transform:translate(-50%,-50%);-webkit-mask-image:radial-gradient(ellipse at center,#000 0 14%,rgba(0,0,0,.74) 34%,rgba(0,0,0,.22) 64%,transparent 100%);mask-image:radial-gradient(ellipse at center,#000 0 14%,rgba(0,0,0,.74) 34%,rgba(0,0,0,.22) 64%,transparent 100%);transition:left .42s cubic-bezier(.16,1,.3,1),opacity .42s ease}.timeline-track[data-tape-active=true] .timeline-tape:after{opacity:.42}.timeline-track:after{content:none;position:absolute;z-index:2;top:50%;left:0;right:0;border-top:1px solid rgba(9,28,44,.18);pointer-events:none}.timeline-card{position:relative;z-index:1;display:block;flex:0 0 clamp(118px,11.6vw,172px);color:var(--ink);transform-origin:center center;transition:transform .76s cubic-bezier(.16,1,.3,1),opacity .52s ease,filter .52s ease}.timeline-card.is-upper{transform:translateY(calc(-50% + 9px))}.timeline-card.is-lower{transform:translateY(calc(50% - 9px))}.timeline-year-marker{position:absolute;left:50%;z-index:3;display:none;color:var(--muted);font-size:12px;line-height:1;transform:translate(-50%);white-space:nowrap;transition:color .42s ease,opacity .42s ease}.timeline-year-marker.is-visible{display:block}.timeline-card.is-upper .timeline-year-marker{bottom:-27px}.timeline-card.is-lower .timeline-year-marker{top:-27px}.timeline-year-marker.is-active{color:var(--ink)}.timeline-image-frame{position:relative;display:block;overflow:hidden;background:var(--soft);box-shadow:0 0 0 1px #091c2c17}.timeline-image-frame img{width:100%;height:100%;aspect-ratio:1.22;object-fit:cover;filter:grayscale(1);-webkit-user-drag:none;transition:filter .5s ease,transform .6s cubic-bezier(.22,1,.36,1)}.timeline-card:hover,.timeline-card.is-active{z-index:5}.timeline-card.is-upper:hover,.timeline-card.is-upper.is-active{transform:translateY(calc(-50% + 20px)) scale(1.075)}.timeline-card.is-lower:hover,.timeline-card.is-lower.is-active{transform:translateY(calc(50% - 20px)) scale(1.075)}.timeline-reel.is-interacting .timeline-card:not(.is-active){opacity:.56;filter:saturate(.72) brightness(1.06)}.timeline-reel.is-interacting .timeline-card.is-upper:not(.is-active){transform:translateY(calc(-50% + 9px)) scale(.985)}.timeline-reel.is-interacting .timeline-card.is-lower:not(.is-active){transform:translateY(calc(50% - 9px)) scale(.985)}.timeline-card:hover .timeline-image-frame img,.timeline-card.is-active .timeline-image-frame img{filter:grayscale(0);transform:scale(1.035)}.timeline-card-overlay{position:absolute;inset:auto 0 0;display:grid;gap:4px;padding:12px;color:#fff;background:linear-gradient(180deg,transparent,rgba(0,0,0,.74));opacity:0;transform:translateY(12px);transition:opacity .42s ease,transform .52s cubic-bezier(.22,1,.36,1)}.timeline-card:hover .timeline-card-overlay,.timeline-card.is-active .timeline-card-overlay,.timeline-card:focus-visible .timeline-card-overlay{opacity:1;transform:translateY(0)}.timeline-card-overlay strong{max-width:100%;overflow-wrap:anywhere;font-size:clamp(11px,.86vw,14px);font-weight:520;line-height:1.12}.timeline-card-overlay small{color:#ffffffb8;font-size:9px;font-style:normal;line-height:1.25}.timeline-award-note{position:absolute;left:50%;width:clamp(160px,17vw,260px);color:#091c2c57;font-size:10px;line-height:1.22;text-align:center;transform:translate(-50%);opacity:.58;transition:opacity .36s ease,color .36s ease;pointer-events:none}.timeline-reel.is-interacting .timeline-card:not(.is-active) .timeline-award-note{opacity:.2}.timeline-card.is-upper .timeline-award-note{top:-44px}.timeline-card.is-lower .timeline-award-note{bottom:-44px}.timeline-card:hover .timeline-award-note,.timeline-card.is-active .timeline-award-note{color:#091c2c9e;opacity:1}.timeline-image-frame .image-fallback{aspect-ratio:1.22;min-height:0;padding:clamp(12px,1.6vw,18px)}.timeline-image-frame .image-fallback span{max-width:86%;font-size:clamp(15px,1.55vw,25px);line-height:.98;opacity:.82}.timeline-cta{position:absolute;right:0;bottom:-28px;display:inline-flex;align-items:center;gap:8px;min-height:22px;border-bottom:1px solid currentColor;font-size:20px;line-height:1}.home-switchboard{display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:18px;width:min(100% - 36px,var(--max));margin:0 auto;padding:20px 0;border-bottom:1px solid var(--line);color:var(--muted);font-size:12px;text-transform:uppercase}.home-switchboard p{margin:0}.text-link,.download-link,.back-link{display:inline-flex;align-items:center;gap:8px;width:fit-content;min-height:38px;border-bottom:1px solid currentColor;font-size:14px}.intro-band{display:grid;grid-template-columns:minmax(280px,1.5fr) minmax(280px,.85fr);gap:clamp(28px,6vw,96px);width:min(100% - 36px,var(--max));margin:0 auto;padding:clamp(70px,11vw,154px) 0}.quick-facts{display:grid;align-content:start;gap:24px;margin:0;padding-top:8px}.quick-facts div,.project-facts div,.cv-row{border-top:1px solid var(--line);padding-top:14px}dt{margin-bottom:8px;color:var(--muted);font-size:12px;text-transform:uppercase}dd{margin:0}.section-head{display:flex;justify-content:space-between;align-items:flex-end;width:min(100% - 36px,var(--max));margin:0 auto 18px;padding-top:28px;border-top:1px solid var(--line)}.section-head p,.section-head a{margin:0;font-size:13px}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;width:min(100% - 36px,var(--max));margin:0 auto;padding-bottom:clamp(70px,11vw,150px)}.archive-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.archive-list{grid-template-columns:1fr;gap:0}.archive-list .project-card a{grid-template-columns:minmax(180px,.36fr) minmax(0,1fr);column-gap:22px;align-items:start;padding:18px 0;border-top:1px solid var(--line)}.archive-list .project-image-wrap{grid-row:span 3;aspect-ratio:1.65}.archive-list .project-card-meta{grid-template-columns:42px 64px minmax(120px,1fr) 20px}.archive-list .project-card h2{font-size:clamp(26px,3.6vw,54px)}.archive-list .project-card p{max-width:760px}.project-card a{display:grid;gap:14px}.project-image-wrap{aspect-ratio:1.42;overflow:hidden;background:var(--soft)}.project-image-wrap img{width:100%;height:100%;object-fit:cover;filter:none;transform:scale(1.01);transition:transform .7s cubic-bezier(.22,1,.36,1),filter .7s ease}.image-fallback{display:grid;place-items:end start;width:100%;height:100%;min-height:inherit;padding:clamp(16px,3vw,34px);color:var(--ink);background:linear-gradient(135deg,#23535c2e,#cd5a381a),repeating-linear-gradient(90deg,rgba(20,20,20,.1) 0 1px,transparent 1px 24px),var(--sand)}.image-fallback span{max-width:min(520px,90%);font-size:clamp(18px,3vw,42px);font-weight:520;line-height:1.02}.image-fallback-large{min-height:min(70vh,720px)}.project-card:hover img{filter:none;transform:scale(1.045)}.interactive-index{position:relative;display:grid;grid-template-columns:minmax(260px,.64fr) minmax(320px,1fr);gap:clamp(24px,5vw,78px);width:min(100% - 36px,var(--max));margin:0 auto;padding:0 0 clamp(70px,10vw,132px)}.index-preview{position:sticky;top:112px;height:min(62vh,640px);background:var(--soft);overflow:hidden}.index-preview img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.08);transform:scale(1.02)}.index-list{display:grid;border-top:1px solid var(--line)}.index-row{display:grid;grid-template-columns:34px minmax(0,1fr) minmax(108px,.32fr) 48px 20px;gap:12px;align-items:baseline;min-height:clamp(58px,6vw,76px);padding:12px 0;border-bottom:1px solid var(--line)}.index-row span,.index-row em,.index-row small{color:var(--muted);font-size:12px;font-style:normal}.index-row strong{font-size:clamp(22px,2.4vw,38px);font-weight:520;line-height:1.05}.index-row svg{color:var(--muted);transition:transform .42s cubic-bezier(.22,1,.36,1),color .42s ease}.index-row:hover svg{color:var(--ink);transform:translate(4px,-4px)}.booklet-page .page-header{max-width:920px}.booklet-grid{display:grid;grid-template-columns:repeat(14,minmax(0,1fr));align-items:start;column-gap:clamp(14px,2vw,28px);row-gap:clamp(28px,5vw,72px);border-top:1px solid var(--line);padding-top:24px}.booklet-card{grid-column:span 3;transform:translateY(var(--lift, 0)) rotate(var(--tilt, 0deg)) scale(var(--book-scale, 1));transform-origin:50% 86%;transition:transform .42s cubic-bezier(.22,1,.36,1),z-index .42s ease}.booklet-wide{grid-column:span 4;margin-top:clamp(22px,5vw,78px)}.booklet-small{grid-column:span 2;margin-top:clamp(8px,3vw,52px)}.booklet-trigger{display:grid;gap:10px;width:100%;padding:0;border:0;color:inherit;text-align:left;background:transparent;cursor:pointer}.booklet-cover{position:relative;display:grid;place-items:center;aspect-ratio:.72;overflow:hidden;border:1px solid var(--line);background:linear-gradient(90deg,rgba(0,0,0,.08),transparent 12%,transparent 88%,rgba(0,0,0,.05)),var(--soft);box-shadow:0 14px 28px #00000014,7px 9px color-mix(in srgb,var(--ink) 4%,transparent)}.booklet-cover:before{content:"";position:absolute;inset:0 auto 0 12%;width:1px;background:color-mix(in srgb,var(--ink) 22%,transparent);z-index:1}.booklet-cover img{width:100%;height:100%;object-fit:cover;filter:saturate(.88) contrast(1.02);transition:transform .8s cubic-bezier(.22,1,.36,1),filter .8s ease}.booklet-card:hover .booklet-cover img{filter:saturate(1) contrast(1.02);transform:scale(1.045)}.booklet-card:hover{z-index:2;transform:translateY(calc(var(--lift, 0) - 8px)) rotate(calc(var(--tilt, 0deg) * .35)) scale(calc(var(--book-scale, 1) + .03))}.booklet-meta{display:grid;grid-template-columns:62px minmax(0,1fr) 16px;gap:8px;align-items:center;color:var(--muted);font-size:11px}.booklet-card h2{margin:0;font-size:clamp(18px,1.5vw,26px);font-weight:520;line-height:1.05}.booklet-card p{margin:0;color:var(--blue);font-size:12px;line-height:1.45}.booklet-lightbox{position:fixed;z-index:90;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:clamp(14px,3vw,34px)}.booklet-lightbox-scrim{position:absolute;top:0;right:0;bottom:0;left:0;border:0;background:color-mix(in srgb,var(--paper) 68%,transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.booklet-reader-shell{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr);width:min(100%,1180px);height:min(88vh,760px);overflow:hidden;border:1px solid var(--line);background:var(--paper);box-shadow:0 24px 90px #0000002e}.booklet-reader-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line)}.booklet-reader-toolbar .eyebrow{margin:0 0 5px}.booklet-reader-toolbar strong{display:block;max-width:64ch;overflow:hidden;font-size:16px;font-weight:560;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.booklet-reader-actions{display:flex;align-items:center;gap:8px}.booklet-reader-actions button,.booklet-page-controls button,.booklet-icon-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:34px;border:1px solid var(--line);border-radius:999px;padding:0 12px;color:var(--ink);background:var(--paper);cursor:pointer}.booklet-reader-actions button.active{color:var(--paper);background:var(--ink)}.booklet-reader-actions button:disabled,.booklet-page-controls button:disabled{cursor:default;opacity:.38}.booklet-icon-button{width:34px;padding:0}.booklet-intro-view{display:grid;grid-template-columns:minmax(260px,.42fr) minmax(320px,.58fr);gap:clamp(24px,5vw,72px);min-height:0;padding:clamp(18px,4vw,46px)}.booklet-intro-cover{display:grid;place-items:center;align-self:center;width:min(100%,360px);aspect-ratio:.72;overflow:hidden;border:1px solid var(--line);background:var(--soft);box-shadow:9px 12px color-mix(in srgb,var(--ink) 5%,transparent);transform:rotate(-1.2deg)}.booklet-intro-cover img{width:100%;height:100%;object-fit:cover}.booklet-intro-copy{align-self:center;max-width:720px}.booklet-intro-copy h2{margin:0;color:var(--ink);font-size:clamp(34px,5.2vw,78px);font-weight:520;line-height:.96}.booklet-intro-copy p:not(.eyebrow){margin:18px 0 0;color:var(--blue);font-size:16px;line-height:1.68}.booklet-intro-copy .text-link{margin-top:28px;border:0;border-bottom:1px solid currentColor;background:transparent;color:var(--ink);cursor:pointer}.booklet-intro-copy .text-link:disabled{max-width:420px;color:var(--muted);cursor:default}.booklet-body-note{color:var(--muted)!important}.booklet-pages-view{display:grid;grid-template-rows:minmax(0,1fr) auto;min-height:0;padding:clamp(14px,2vw,24px);background:linear-gradient(90deg,rgba(17,17,17,.035) 1px,transparent 1px) 0 0 / 50% 100%,color-mix(in srgb,var(--soft) 48%,var(--paper))}.booklet-spread{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));justify-self:center;width:min(100%,980px);min-height:0;border:1px solid var(--line);background:var(--paper);box-shadow:0 18px 58px #00000021}.booklet-spread[data-single=true]{grid-template-columns:minmax(0,1fr);width:min(100%,520px)}.booklet-page-image{display:grid;place-items:center;min-height:0;margin:0;border-right:1px solid var(--line);background:var(--paper)}.booklet-page-image:last-child{border-right:0}.booklet-page-image img{width:100%;height:100%;object-fit:contain}.booklet-page-controls{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;padding-top:14px;color:var(--muted);font-size:12px}.booklet-page-controls button:last-child{justify-self:end}.booklet-pdf-frame{width:100%;height:100%;min-height:0;border:1px solid var(--line);background:var(--paper)}.booklet-pdf-stage{position:relative;min-height:0}.booklet-pdf-loading{position:absolute;z-index:2;top:0;right:0;bottom:0;left:0;display:grid;grid-template-columns:minmax(160px,.28fr) minmax(240px,.72fr);gap:clamp(18px,4vw,46px);align-items:center;padding:clamp(22px,5vw,64px);border:1px solid var(--line);background:linear-gradient(90deg,rgba(17,17,17,.025) 1px,transparent 1px) 0 0 / 50% 100%,color-mix(in srgb,var(--paper) 92%,var(--soft))}.booklet-pdf-poster{justify-self:center;width:min(100%,260px);aspect-ratio:.72;overflow:hidden;border:1px solid var(--line);background:var(--soft);box-shadow:7px 9px color-mix(in srgb,var(--ink) 5%,transparent);transform:rotate(-1.4deg)}.booklet-pdf-poster img{width:100%;height:100%;object-fit:cover}.booklet-pdf-loading strong{display:block;max-width:640px;color:var(--ink);font-size:clamp(30px,5vw,68px);font-weight:520;line-height:.98}.booklet-pdf-loading p:not(.eyebrow){max-width:520px;margin:18px 0 0;color:var(--blue);font-size:14px;line-height:1.6}.booklet-pdf-loading .text-link{margin-top:24px}.project-card-meta{display:grid;grid-template-columns:42px 64px 1fr 20px;align-items:center;gap:10px;color:var(--muted);font-size:12px}.project-card h2{margin:0;font-size:clamp(22px,2.3vw,36px);font-weight:520;line-height:1}.project-card p{max-width:560px;margin:0;color:var(--blue);font-size:14px}.page{width:min(100% - 36px,var(--max));margin:0 auto;padding:136px 0 clamp(70px,11vw,150px)}.page-header{max-width:940px;margin-bottom:clamp(36px,7vw,92px)}.page-header h1,.project-hero h1{margin:0;font-size:clamp(40px,6.4vw,96px);font-weight:520;line-height:1.02}.page-header p:not(.eyebrow){max-width:680px;margin:24px 0 0;color:var(--blue);font-size:clamp(17px,2vw,22px)}.filter-bar{position:sticky;z-index:8;top:72px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 0 24px;margin-bottom:10px;background:linear-gradient(180deg,var(--paper) 72%,color-mix(in srgb,var(--paper) 0%,transparent))}.filter-bar button{min-height:34px;padding:0 14px;border:1px solid var(--line);border-radius:999px;color:var(--muted);background:transparent;cursor:pointer}.filter-bar button.active,.filter-bar button:hover{color:var(--paper);background:var(--ink);border-color:var(--ink)}.view-toggle{display:inline-flex;gap:2px;margin-left:auto;padding:3px;border:1px solid var(--line)}.filter-bar .view-toggle button{min-height:28px;padding:0 10px;border:0;border-radius:0}.filter-bar .view-toggle button.active{color:var(--paper);background:var(--ink)}.project-detail{width:min(100% - 36px,var(--max));margin:0 auto;padding:126px 0 clamp(70px,11vw,150px)}.project-hero{display:grid;grid-template-columns:minmax(280px,1fr) minmax(240px,380px);gap:48px;align-items:end;margin-bottom:36px}.back-link{margin-bottom:34px;color:var(--muted)}.project-facts{display:grid;gap:18px;margin:0}.detail-image{width:100%;aspect-ratio:16 / 9;object-fit:cover;filter:none;background:var(--soft)}.detail-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}.detail-gallery figure{margin:0}.detail-gallery img{width:100%;aspect-ratio:1.45;object-fit:cover;filter:none}.detail-gallery figcaption{margin-top:8px;color:var(--muted);font-size:13px}.detail-copy{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(280px,1fr);gap:clamp(28px,7vw,100px);margin-top:clamp(36px,8vw,104px)}.detail-copy .lead{grid-row:span 3;margin:0;font-size:clamp(28px,4.4vw,64px);line-height:1.04}.detail-copy p:not(.lead),.body-copy p{margin:0;color:color-mix(in srgb,var(--ink) 82%,var(--muted));font-size:18px;line-height:1.7}.detail-copy p:not(.lead)+p,.body-copy p+p{margin-top:22px}.split-page{display:grid;grid-template-columns:minmax(280px,1.25fr) minmax(280px,.75fr);gap:clamp(32px,8vw,116px)}.body-copy{padding-top:12px}.post-list,.cv-list,.contact-links{display:grid;border-top:1px solid var(--line)}.post-row,.cv-row{display:grid;grid-template-columns:150px minmax(0,1fr) 24px;gap:24px;align-items:start;padding:24px 0;border-bottom:1px solid var(--line)}.post-row time,.post-row p,.cv-row p{color:var(--muted)}.post-row h2,.cv-row h2{margin:0 0 8px;font-size:clamp(26px,3vw,42px);font-weight:520}.post-row p,.cv-row p{margin:0}.cv-row{grid-template-columns:minmax(160px,.3fr) minmax(0,1fr)}.cv-row ul{margin:0;padding-left:18px;color:var(--muted)}.cv-row li+li{margin-top:6px}.download-link{margin-top:36px}.contact-page{min-height:100vh}.contact-links a{display:flex;justify-content:space-between;align-items:center;min-height:82px;border-bottom:1px solid var(--line);font-size:clamp(28px,5vw,72px)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important}}:root[data-lowres=true] .project-image-wrap,:root[data-lowres=true] .detail-image,:root[data-lowres=true] .detail-gallery figure,:root[data-lowres=true] .index-preview,:root[data-lowres=true] .timeline-image-frame{position:relative}:root[data-lowres=true] .project-image-wrap img,:root[data-lowres=true] .detail-image,:root[data-lowres=true] .detail-gallery img,:root[data-lowres=true] .index-preview img,:root[data-lowres=true] .timeline-card img{filter:contrast(1.12) saturate(.72);image-rendering:pixelated;transform:scale(1.01)}:root[data-lowres=true] .project-image-wrap:after,:root[data-lowres=true] .detail-gallery figure:after,:root[data-lowres=true] .index-preview:after,:root[data-lowres=true] .timeline-image-frame:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(#ffffff0b,#ffffff0b),repeating-linear-gradient(0deg,rgba(0,0,0,.16) 0 1px,transparent 1px 10px),repeating-linear-gradient(90deg,rgba(0,0,0,.13) 0 1px,transparent 1px 10px);mix-blend-mode:multiply;opacity:.58}:root[data-lowres=true] .project-image-wrap img{transform:none}:root[data-lowres=true] .project-card:hover img{filter:contrast(1.1) saturate(.78);transform:none}:root[data-lowres=true] *{animation-duration:.001ms!important}:root[data-simplified=true] .index-preview,:root[data-simplified=true] .project-image-wrap{display:none}:root[data-simplified=true] .hero,:root[data-simplified=true] .timeline-hero{min-height:72vh;color:var(--ink);background:var(--paper)}:root[data-simplified=true] .hero-overlay{display:none}:root[data-simplified=true] .hero-content,:root[data-simplified=true] .hero .eyebrow{color:var(--ink)}:root[data-simplified=true] .interactive-index{grid-template-columns:1fr}@media(max-width:900px){.site-header{grid-template-columns:1fr auto}.site-nav{grid-column:1 / -1;grid-row:2;justify-content:flex-start;overflow-x:auto;padding-bottom:2px}.header-tools{grid-column:2}.hero{min-height:88vh;padding-top:142px}.timeline-hero{min-height:auto;padding-top:150px}.timeline-statement h1{font-size:clamp(34px,9vw,58px)}.timeline-reel{min-height:auto;overflow-x:auto;margin-left:-18px;margin-right:-18px;padding-left:18px;padding-bottom:46px}.timeline-personal-logo{left:18px;top:calc(50% - 62px)}.timeline-personal-logo img{width:30px;height:30px}.timeline-track{gap:0;min-height:306px;padding:0 18vw}.timeline-card{flex-basis:128px}.timeline-card.is-upper{transform:translateY(calc(-50% + 8px))}.timeline-card.is-lower{transform:translateY(calc(50% - 8px))}.timeline-card.is-upper:hover,.timeline-card.is-upper.is-active{transform:translateY(calc(-50% + 13px)) scale(1.055)}.timeline-card.is-lower:hover,.timeline-card.is-lower.is-active{transform:translateY(calc(50% - 13px)) scale(1.055)}.timeline-award-note{display:none}.timeline-cta{position:static;margin-top:34px}.hero-bottom,.intro-band,.project-hero,.detail-copy,.split-page,.interactive-index,.home-switchboard{grid-template-columns:1fr}.index-preview{position:relative;top:auto;height:44vh}.index-row{grid-template-columns:34px minmax(0,1fr) 42px;min-height:56px}.index-row strong{font-size:clamp(20px,5vw,28px)}.index-row em,.index-row small{display:none}.project-grid,.archive-grid,.booklet-grid{grid-template-columns:1fr}.booklet-card,.booklet-wide,.booklet-small{grid-column:1;margin-top:0;transform:rotate(var(--tilt, 0deg)) scale(.96)}.booklet-reader-shell{height:min(92vh,820px)}.booklet-reader-toolbar,.booklet-intro-view{grid-template-columns:1fr}.booklet-reader-actions{justify-content:space-between}.booklet-intro-view{overflow-y:auto}.booklet-intro-cover{width:min(66vw,300px);justify-self:center}.booklet-pdf-loading{grid-template-columns:1fr;align-content:center}.booklet-pdf-poster{width:min(52vw,220px)}.archive-list .project-card a{grid-template-columns:1fr}.archive-list .project-image-wrap{grid-row:auto}.page,.project-detail{padding-top:156px}.filter-bar{top:112px}.view-toggle{width:100%;margin-left:0}.detail-copy .lead{grid-row:auto}.detail-gallery{grid-template-columns:1fr}.post-row{grid-template-columns:1fr 24px}.post-row time{grid-column:1 / -1}}@media(max-width:700px){.index-preview{display:none}}@media(max-width:560px){body{background:var(--paper)}.site-header{gap:12px;padding:14px 16px}.brand small,.contact-chip span{display:none}.header-tools{gap:6px}.site-nav{gap:17px;font-size:12px}.hero,.timeline-hero,.page,.project-detail{width:auto}.hero-bottom p,.intro-statement p{font-size:30px}.display-controls button{width:26px}.contact-links a{min-height:70px;font-size:28px}}
