:root,[data-theme=night]{--void: #060b13;--surface: #0b1220;--surface-2: #121a2b;--hairline: #cbdae224;--hairline-strong: #cbdae24d;--ink: #f3eee5;--ink-muted: #b6bec8;--ink-faint: #9aa4b0;--cyan: #7fb7d6;--cyan-text: #9dd0ec;--gold: #c9a45e;--sage: var(--gold);--ember: #f2c766;--ice: #cbdae2;--line-cool: #5f8ea6;--on-accent: #060b13;--cyan-glow: #7fb7d633;--sage-glow: var(--gold-glow);--ember-glow: #f2c76638;--ice-glow: #cbdae21f;--gold-glow: #c9a45e26;--glass: #0b12208c;--glass-line: var(--hairline);--btn-bg: #7fb7d6;--btn-ink: #08121c;--btn-bg-hover: #9fcbe3;--portrait-tint: #616c71;--glow-cyan: 0 0 30px 4px #7fb7d633;--glow-ember: 0 0 30px 4px #f2c76638;--glow-ice: 0 0 10px 4px #cbdae21f}[data-theme=paper]{--void: #f3f4f6;--surface: #ffffff;--surface-2: #e6e9ee;--hairline: #0e111624;--hairline-strong: #0e111647;--ink: #0e1116;--ink-muted: #4b5661;--ink-faint: #4f5b67;--cyan: #0e6f86;--cyan-text: #0b5a6d;--gold: #7a5a1c;--sage: var(--gold);--ember: #9c4a0d;--ice: #4a5a6a;--line-cool: #2b6f84;--on-accent: #ffffff;--cyan-glow: #0e6f861f;--sage-glow: var(--gold-glow);--ember-glow: #9c4a0d1f;--ice-glow: #4a5a6a1a;--gold-glow: #7a5a1c1f;--glass: #ffffffd9;--glass-line: var(--hairline);--btn-bg: #0e6f86;--btn-ink: #ffffff;--btn-bg-hover: #0b5a6d;--portrait-tint: #4d616a;--glow-cyan: 0 0 30px 2px #0e6f861f;--glow-ember: 0 0 30px 2px #9c4a0d1f;--glow-ice: 0 0 20px 2px #4a5a6a1a}:root{--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--space-9: 96px;--space-10: 128px;--radius-0: 0px;--radius-dot: 999px;--font-display: "Cormorant Garamond", "Noto Serif TC", Georgia, "Times New Roman", serif;--font-sans: "Hanken Grotesk", "Noto Sans TC", system-ui, -apple-system, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, Menlo, monospace;--text-display-1: 400 96px/.95 var(--font-display);--text-display-2: 400 64px/1 var(--font-display);--text-heading-1: 500 40px/1.1 var(--font-display);--text-heading-2: 500 28px/1.2 var(--font-display);--text-quote: italic 400 26px/1.32 var(--font-display);--text-display-caps: 400 22px/1.4 var(--font-display);--text-body-lg: 400 19px/1.65 var(--font-sans);--text-body: 400 17px/1.7 var(--font-sans);--text-small: 400 14px/1.55 var(--font-sans);--text-label: 600 13px/1.4 var(--font-sans);--text-readout: 400 12px/1.5 var(--font-mono)}.display-1{font-family:var(--font-display);font-size:96px;line-height:.95;font-weight:400;letter-spacing:-.015em}.display-2{font-family:var(--font-display);font-size:64px;line-height:1;font-weight:400;letter-spacing:-.012em}.heading-1{font-family:var(--font-display);font-size:40px;line-height:1.1;font-weight:500;letter-spacing:-.008em}.heading-2{font-family:var(--font-display);font-size:28px;line-height:1.2;font-weight:500;letter-spacing:0}.quote{font-family:var(--font-display);font-size:26px;line-height:1.32;font-weight:400;letter-spacing:0;font-style:italic}.display-caps{font-family:var(--font-display);font-size:22px;line-height:1.4;font-weight:400;letter-spacing:.14em}.body-lg{font-family:var(--font-sans);font-size:19px;line-height:1.65;font-weight:400;letter-spacing:0}.body{font-family:var(--font-sans);font-size:17px;line-height:1.7;font-weight:400;letter-spacing:0}.small{font-family:var(--font-sans);font-size:14px;line-height:1.55;font-weight:400;letter-spacing:0}.label{font-family:var(--font-sans);font-size:13px;line-height:1.4;font-weight:600;letter-spacing:.16em}.readout{font-family:var(--font-mono);font-size:12px;line-height:1.5;font-weight:400;letter-spacing:.08em}.wh-wordmark{font-family:var(--font-display);font-size:22px;font-weight:500;color:var(--ink);text-decoration:none;white-space:nowrap;letter-spacing:.005em}.wh-wordmark i{font-style:italic;opacity:.72}.wh-nav{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-5);padding:var(--space-5) 0}.wh-nav__links{display:flex;gap:var(--space-6)}.wh-nav__links a{font-family:var(--font-sans);font-size:13px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-muted);text-decoration:none;transition:color .25s}.wh-nav__links a:hover,.wh-nav__links a[aria-current=page]{color:var(--ink)}.wh-link{display:inline-block;font-family:var(--font-sans);font-size:13px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);text-decoration:none;padding-bottom:6px;border-bottom:1px solid var(--cyan);transition:color .25s,border-color .25s}.wh-link:hover{color:var(--cyan-text)}.wh-link--secondary{color:var(--ink-muted);border-bottom-color:var(--hairline-strong)}.wh-link--secondary:hover{color:var(--ink);border-bottom-color:var(--ink-muted)}.wh-link:focus-visible,.wh-nav__links a:focus-visible,.wh-card:focus-visible{outline:1px solid var(--cyan);outline-offset:5px;box-shadow:var(--glow-cyan)}.wh-label{font-family:var(--font-sans);font-size:13px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--cyan-text)}.wh-label:before{content:"";display:inline-block;width:22px;height:1px;vertical-align:middle;margin:0 12px 2px 0;background:var(--cyan-text)}.wh-label--plain{color:var(--ink-muted)}.wh-label--plain:before{display:none}.wh-label--live{color:var(--cyan-text)}.wh-pill{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-sans);font-size:12.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--cyan-text)}.wh-pill:before{content:"";width:6px;height:6px;border-radius:var(--radius-dot);background:var(--cyan);box-shadow:var(--glow-cyan)}.wh-pill--published{color:var(--ice)}.wh-pill--published:before{background:var(--ice);box-shadow:var(--glow-ice)}.wh-card{display:block;text-decoration:none;color:inherit}.wh-card__img{aspect-ratio:4/3;background:var(--surface);overflow:hidden;border-radius:var(--radius-0)}.wh-card__img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.2,.7,.2,1)}.wh-card:hover .wh-card__img img{transform:scale(1.03)}.wh-card__cap{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:var(--space-4);align-items:baseline;margin-top:var(--space-4)}.wh-card__no{font-family:var(--font-mono);font-size:12.5px;letter-spacing:.14em;color:var(--ink-faint)}.wh-card__title{font-family:var(--font-display);font-weight:500;font-size:28px;line-height:1.2;margin:0;color:var(--ink)}.wh-card__meta{font-family:var(--font-sans);font-size:12.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--cyan-text);white-space:nowrap}.wh-readout{font-family:var(--font-mono);font-size:12.5px;letter-spacing:.08em;line-height:1.5;color:var(--ink-faint);text-transform:uppercase}.wh-readout b{display:block;font-family:var(--font-display);font-weight:500;font-size:28px;letter-spacing:0;text-transform:none;color:var(--ink);margin-top:var(--space-1);line-height:1.1}.wh-readout b i{font-style:normal;color:var(--cyan)}.wh-readout b em{font-style:normal;color:var(--ember)}.wh-marker{fill:var(--ember)}.wh-marker__halo{fill:none;stroke:var(--ember);stroke-width:.6;opacity:.45}.wh-marker__orbit{fill:none;stroke:var(--hairline-strong);stroke-width:.5}.wh-county{fill:var(--surface);stroke:var(--hairline-strong);stroke-width:.6;transition:fill .3s}.wh-county:hover{fill:var(--ember-glow)}.wh-hr{border:0;border-top:1px solid var(--hairline);margin:0}.wh-callout{display:flex;align-items:center;gap:var(--space-3);font-family:var(--font-sans);font-size:12.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--cyan-text)}.wh-callout__dot{width:7px;height:7px;border-radius:var(--radius-dot);border:1px solid var(--ice);background:var(--void);box-shadow:var(--glow-ice);flex:0 0 auto}.wh-callout__lead{flex:0 0 auto;width:96px;height:0;border-top:1px dashed var(--hairline-strong)}.wh-callout b{font-family:var(--font-display);font-weight:500;font-size:28px;letter-spacing:0;text-transform:none;color:var(--cyan);line-height:1}.wh-callout--ember b{color:var(--ember)}.wh-caps{font-family:var(--font-display);font-size:22px;font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);line-height:1.4}.wh-caps-rule{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-5);padding-bottom:var(--space-4);border-bottom:1px solid var(--hairline-strong)}.wh-caps-rule .zh{font-family:var(--font-display);font-size:22px;color:var(--ink);letter-spacing:.3em}:root{--serif:var(--font-display);--sans:var(--font-sans);--mono:var(--font-mono);--rule:var(--hairline)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:96px}body{margin:0;background:var(--void);color:var(--ink);font-family:var(--sans);font-weight:400;font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}.wrap{max-width:1240px;margin:0 auto;padding:0 clamp(22px,5vw,64px)}p{margin:0 0 1.1em}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}:focus-visible{outline:1px solid var(--cyan);outline-offset:5px;box-shadow:var(--glow-cyan)}img{max-width:100%;display:block}.lbl,.arclbl{font-size:13px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--cyan-text)}.lbl:before,.arclbl:before{content:"";display:inline-block;width:22px;height:1px;vertical-align:middle;margin:0 12px 2px 0;background:var(--cyan-text)}h1,h2,h3{font-family:var(--serif);font-weight:500;margin:0;text-wrap:balance}.display-xl{font-size:clamp(3rem,8vw,96px);line-height:.95;letter-spacing:-.015em;font-weight:400}.display-l{font-size:clamp(2rem,4.8vw,64px);line-height:1;letter-spacing:-.012em;font-weight:400}.em{color:var(--ember);font-style:italic}.status{display:inline-flex;align-items:center;gap:9px;font-size:12.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--cyan-text)}.status:before{content:"";width:6px;height:6px;border-radius:var(--radius-dot);background:var(--cyan);box-shadow:var(--glow-cyan)}.cta{display:inline-block;font-size:13px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;padding:13px 26px 12px;background:var(--btn-bg);color:var(--btn-ink);border:0;cursor:pointer;transition:background .3s}.cta:hover{background:var(--btn-bg-hover)}.cta.sec{background:none;padding:0 0 6px;border-bottom:1px solid color-mix(in srgb,var(--cyan) 50%,transparent);color:var(--ink-muted)}.cta.sec:hover{background:none;border-bottom-color:var(--cyan);color:var(--ink)}.clinks{display:flex;flex-wrap:wrap;gap:10px 34px}.clinks a{font-size:13px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);padding-bottom:5px;border-bottom:1px solid color-mix(in srgb,var(--cyan) 50%,transparent);transition:color .3s,border-color .3s}.clinks a:hover{color:var(--cyan-text);border-color:var(--cyan)}header.site{position:fixed;top:0;left:0;right:0;z-index:60;border-bottom:1px solid transparent;transition:background .35s ease,border-color .35s ease}header.site.is-scrolled{background:color-mix(in srgb,var(--void) 88%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom-color:var(--hairline)}header.site .wrap{display:flex;justify-content:space-between;align-items:baseline;padding-top:26px;padding-bottom:26px;gap:24px}.wordmark{font-family:var(--serif);font-size:22px;font-weight:500;color:var(--ink);white-space:nowrap}.wordmark i{font-style:italic;opacity:.7}.sitenav{display:flex;gap:clamp(14px,2.6vw,30px)}.sitenav a{color:var(--ink-muted);font-size:13px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;transition:color .3s}.sitenav a:hover,.sitenav a[aria-current=page]{color:var(--ink)}footer.site{padding:0 0 60px;color:var(--ink-faint);font-size:12.5px;letter-spacing:.14em;text-transform:uppercase}.hero{position:relative;min-height:100svh;display:flex;align-items:center;padding:calc(76px + clamp(24px,5vh,56px)) 0 clamp(40px,7vh,80px);overflow:hidden;background:radial-gradient(70% 55% at 88% 78%,color-mix(in srgb,var(--ember) 15%,transparent) 0%,color-mix(in srgb,var(--ember) 4%,transparent) 45%,transparent 70%)}.hero .hgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:center;gap:clamp(20px,3vw,48px);width:100%}.hero h1{margin-bottom:clamp(26px,4vh,42px);font-size:clamp(2.7rem,4.9vw,68px)}.htitle{max-width:none;text-wrap:initial}.htitle span{display:block}.hero .byline{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 18px;margin:0 0 34px}.hero .byline b{font-family:var(--serif);font-weight:500;font-size:clamp(1.2rem,1.95vw,1.5rem);color:var(--ink);letter-spacing:.01em}.hero .byline span{font-family:var(--serif);font-size:clamp(1.15rem,1.9vw,1.45rem);line-height:1.34;color:var(--ink-muted)}.hero .tp{white-space:nowrap}.hero .loc{font:inherit;letter-spacing:inherit;text-transform:inherit;color:var(--ember);background:none;border:0;padding:2px 4px;margin:-2px -4px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;border-radius:2px;animation:locbreathe 2.8s ease-in-out infinite}.hero .loc svg{width:12px;height:13px;fill:none;stroke:currentColor;stroke-width:1.1;stroke-linejoin:round}.hero .loc svg circle{fill:currentColor;stroke:none}.hero .loc:hover,.hero .loc:focus-visible{outline:none;box-shadow:none;animation-duration:1.4s}@keyframes locbreathe{0%,to{text-shadow:0 0 6px color-mix(in srgb,var(--ember) 25%,transparent);filter:drop-shadow(0 0 2px color-mix(in srgb,var(--ember) 30%,transparent))}50%{text-shadow:0 0 22px color-mix(in srgb,var(--ember) 95%,transparent),0 0 40px color-mix(in srgb,var(--ember) 45%,transparent);filter:drop-shadow(0 0 10px color-mix(in srgb,var(--ember) 95%,transparent))}}.scene{position:relative;width:auto;margin-right:calc(-1*clamp(22px,5vw,64px));aspect-ratio:1/1;max-height:min(78vh,720px);overflow:hidden}.scene canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:pan-y}.ctas{display:flex;flex-wrap:wrap;gap:18px 28px;align-items:baseline}.labfeat{padding:clamp(80px,12vh,150px) 0;border-top:1px solid var(--rule)}.labfeat.inpage{padding-top:0;border-top:0}.labfeat:not(.inpage) .glass{border-color:transparent;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}.labfeat:not(.inpage) .kv{padding-left:0;padding-right:0}.labfeat .grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(30px,6vw,90px);align-items:center}.labfeat h2,.contact h2{font-size:clamp(1.7rem,3.4vw,2.7rem);line-height:1.12}.labfeat h2{margin:20px 0;max-width:16ch}.labfeat .desc{color:var(--ink-muted);max-width:44ch}.glass{background:var(--glass);border:1px solid var(--glass-line);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.kv{display:flex;flex-direction:column;margin:30px 0 32px;padding:14px 24px 10px}.kv div{display:grid;grid-template-columns:120px 1fr;gap:20px;padding:11px 0;border-bottom:1px solid var(--rule);font-size:.92rem}.kv div:last-child{border-bottom:0}.kv span{font-size:12.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);padding-top:3px}.kv p{margin:0;color:var(--ink-muted)}.mapframe{position:relative;padding:clamp(10px,1.4vw,18px)}.mapframe svg{display:block;width:100%;height:auto}.mapframe .boro{fill:var(--surface);stroke:var(--hairline-strong);stroke-width:.35}.mapframe .nta{fill:var(--cyan);stroke:var(--void);stroke-width:.18;transition:fill .3s}.mapframe .nta:hover{fill:var(--ember)}.mapframe .wh-marker__halo{stroke-width:.4}.mapcap{position:absolute;left:0;bottom:0;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);line-height:1.8}.mapcap b{display:block;color:var(--ink);font-weight:400;font-family:var(--serif);font-size:1.15rem;letter-spacing:0;text-transform:none}.mapcap span{display:block}.featured{padding:clamp(64px,10vh,110px) 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.fhead{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding-bottom:18px;margin-bottom:clamp(26px,4vh,44px);border-bottom:1px solid var(--hairline)}.fsrc{font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint)}.featured .row{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(28px,5vw,80px);align-items:center}.ftitle{font-family:var(--serif);font-weight:400;font-size:clamp(1.7rem,3.4vw,2.7rem);line-height:1.18;letter-spacing:-.01em;color:var(--ink);max-width:16ch}.ftitle i{font-style:italic;color:var(--ember)}.featured .left p{margin:16px 0 0;color:var(--ink-muted);font-size:.95rem;line-height:1.7;max-width:40ch}.featured .thumbs{display:flex;gap:clamp(18px,3vw,40px);justify-content:flex-end}.thumb{display:block;width:clamp(180px,22vw,290px)}.thumb .img{aspect-ratio:16/10;background:var(--surface);overflow:hidden;border:1px solid var(--hairline);transition:border-color .3s}.thumb .img img{width:100%;height:100%;object-fit:cover;filter:grayscale(.55) saturate(.9);transition:filter .5s ease,transform .8s cubic-bezier(.2,.7,.2,1)}.thumb:hover .img,.thumb:focus-visible .img{border-color:var(--cyan)}.thumb:hover .img img,.thumb:focus-visible .img img{filter:none;transform:scale(1.04)}.thumb .k{display:flex;justify-content:space-between;gap:10px;margin-top:11px;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint)}.thumb .k i{font-style:normal;font-weight:600;color:var(--cyan-text);margin-right:6px}.thumb .k b{color:var(--ink-muted);font-weight:400;text-align:right}.work{padding:clamp(80px,12vh,150px) 0}.work .hd{display:flex;justify-content:space-between;align-items:baseline;gap:20px;margin-bottom:34px;flex-wrap:wrap}.piece{display:block}.piece .frame{position:relative;margin:0;overflow:hidden;background:var(--surface);border:1px solid var(--hairline);transition:border-color .45s ease}.piece .ph{position:absolute;inset:0;display:grid;place-items:center;font-size:13px;letter-spacing:.22em;color:var(--ink-faint)}.piece img{position:relative;width:100%;height:100%;object-fit:cover;filter:brightness(.82) saturate(.92);transition:filter .55s ease,transform .9s cubic-bezier(.2,.7,.2,1)}.piece .veil{position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity .45s ease;background:linear-gradient(to top,color-mix(in srgb,var(--void) 94%,transparent),color-mix(in srgb,var(--void) 66%,transparent) 46%,color-mix(in srgb,var(--void) 38%,transparent))}.piece .reveal{position:absolute;left:0;right:0;bottom:0;padding:clamp(18px,2.4vw,34px);opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity .4s ease,transform .5s cubic-bezier(.2,.7,.2,1)}.piece .reveal h3{margin:0;color:var(--ink);font-size:clamp(1.2rem,2.3vw,1.8rem);line-height:1.16;letter-spacing:-.012em}.piece .reveal .sub{margin:10px 0 0;font-size:13.5px;line-height:1.55;color:var(--ink-muted);max-width:46ch}.piece .reveal .go{display:inline-block;margin-top:14px;font-size:12.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--cyan-text)}.piece .plate{display:flex;align-items:baseline;gap:clamp(12px,1.4vw,22px);margin-top:12px;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase}.piece .plate .no{font-family:var(--mono);color:var(--ink-faint);white-space:nowrap}.piece .plate .kind{font-weight:600;color:var(--cyan-text)}.piece:hover .frame,.piece:focus-visible .frame{border-color:var(--cyan)}.piece:hover img,.piece:focus-visible img{filter:grayscale(1) brightness(.5) contrast(1.08);transform:scale(1.04)}.piece:hover .veil,.piece:focus-visible .veil,.piece:hover .reveal,.piece:focus-visible .reveal{opacity:1}.piece:hover .reveal,.piece:focus-visible .reveal{transform:none}.piece.lead .frame{aspect-ratio:21/9}.piece.lead .reveal h3{font-size:clamp(1.6rem,3.6vw,2.7rem)}.piece.grid .frame{aspect-ratio:4/3}.piece.grid .reveal{padding:clamp(14px,1.4vw,22px)}.piece.grid .reveal h3{font-size:clamp(1.05rem,1.4vw,1.35rem)}.piece.slide .frame{aspect-ratio:4/3}@media(hover:none){.piece img{filter:none}.piece .veil{opacity:1;background:linear-gradient(to top,color-mix(in srgb,var(--void) 90%,transparent) 0%,color-mix(in srgb,var(--void) 28%,transparent) 52%,transparent 100%)}.piece .reveal{opacity:1;transform:none}.piece .reveal .sub,.piece .reveal .go{display:none}}.gal{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(28px,3.2vw,52px) clamp(14px,1.6vw,26px);align-items:start}.gal .lead{grid-column:1/-1;margin-bottom:clamp(6px,1.4vw,22px)}.carousel,.carousel .stage{position:relative}.carousel .edge{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:46px;height:46px;border-radius:50%;color:#ffffffb8;background:#ffffff29;border-color:#ffffff38;mix-blend-mode:difference;transition:color .3s,background .3s,border-color .3s,box-shadow .3s,opacity .3s}.carousel .edge.prev{left:clamp(10px,1.4vw,18px)}.carousel .edge.next{right:clamp(10px,1.4vw,18px)}.carousel .edge[hidden]{display:none}.carousel .edge:hover:not(:disabled),.carousel .edge:focus-visible:not(:disabled){mix-blend-mode:normal;color:var(--ink);background:color-mix(in srgb,var(--void) 84%,transparent);border-color:color-mix(in srgb,var(--ice) 30%,transparent);box-shadow:none}.carousel .edge:disabled{opacity:.12}.carousel.boards .carnav{margin-top:16px}.track{display:flex;gap:clamp(14px,1.8vw,26px);overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none}.track::-webkit-scrollbar{display:none}.track>*{flex:0 0 58%;scroll-snap-align:start}.carousel.boards .track>*{flex-basis:100%}.carnav{display:flex;align-items:center;gap:clamp(16px,2.4vw,30px);margin-top:28px}.carnav[hidden]{display:none}.carnav .count{font-family:var(--mono);font-size:12.5px;letter-spacing:.14em;color:var(--ink-faint);white-space:nowrap}.carnav .count b{font-weight:400;color:var(--ink)}.carnav .rail{flex:1;min-width:40px;height:1px;background:var(--hairline);position:relative;overflow:hidden}.carnav .rail i{position:absolute;inset:0 auto 0 0;background:var(--cyan);transition:width .35s ease,transform .35s ease}.carnav .arrows{display:flex;gap:10px}.carbtn{width:42px;height:42px;display:grid;place-items:center;padding:0;border-radius:12px;background:none;border:1px solid var(--hairline);color:var(--ink-muted);cursor:pointer;transition:color .3s,border-color .3s,box-shadow .3s,opacity .3s}.carbtn svg{width:17px;height:17px}.carbtn:hover:not(:disabled){color:var(--cyan);border-color:color-mix(in srgb,var(--cyan) 32%,transparent);box-shadow:var(--glow-cyan)}.carbtn:disabled{opacity:.28;cursor:default}.shot{display:block;position:relative;background:var(--surface);border:1px solid var(--hairline);cursor:zoom-in;transition:border-color .4s ease}.shot img{display:block;width:100%;aspect-ratio:var(--board,16/9);max-height:max(320px,calc(100vh - 290px));object-fit:contain;background:var(--void)}.shot:after{content:"Enlarge";position:absolute;right:14px;bottom:14px;padding:7px 12px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-muted);background:color-mix(in srgb,var(--void) 74%,transparent);border:1px solid var(--hairline);opacity:0;transition:opacity .35s ease}.shot:hover,.shot:focus-visible{border-color:var(--hairline-strong)}.shot:hover:after,.shot:focus-visible:after{opacity:1}.lb{width:100vw;height:100vh;max-width:none;max-height:none;margin:0;padding:0;border:0;color:var(--ink);background:color-mix(in srgb,var(--void) 95%,transparent)}.lb::backdrop{background:transparent}.lb img{position:absolute;inset:0;margin:auto;max-width:min(94vw,1600px);max-height:82vh;object-fit:contain}.lb .lbclose{position:absolute;top:clamp(12px,2.4vh,24px);right:clamp(12px,2.4vw,26px)}.lbbar{position:absolute;left:0;right:0;bottom:clamp(14px,3vh,30px);display:flex;align-items:center;justify-content:center;gap:clamp(14px,2vw,26px)}.lbbar .count{font-family:var(--mono);font-size:12.5px;letter-spacing:.14em;color:var(--ink-faint);white-space:nowrap}.lbbar .count b{font-weight:400;color:var(--ink)}.contact{padding:clamp(90px,14vh,180px) 0 clamp(60px,8vh,100px);border-top:1px solid var(--rule)}.contact h2{max-width:17ch;margin-bottom:44px}.pagetop{padding:clamp(120px,17vh,190px) 0 clamp(36px,6vh,64px)}.pagetop.tight{padding:clamp(92px,11.5vh,124px) 0 clamp(18px,2.6vh,28px)}.pagetop.tight .back{margin-bottom:14px}.pagetop.tight .lbl{margin-bottom:12px}.pagetop.tight h1{font-size:clamp(1.75rem,3.4vw,46px);line-height:1.05;max-width:none}.pagetop .lbl{display:block;margin-bottom:22px}.pagetop.tight h1{margin-bottom:0}.pagetop h1{max-width:18ch;margin-bottom:26px}.pagetop .lede{max-width:52ch;color:var(--ink-muted);font-size:1.06rem;margin:0}.back{display:inline-block;margin:0 0 30px;color:var(--ink-faint);font-size:13px;letter-spacing:.14em;text-transform:uppercase}.back:hover{color:var(--cyan-text)}.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:26px;padding:26px 0 0;margin:38px 0 0;border-top:1px solid var(--rule)}.facts dt{font-size:12.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--cyan-text);margin-bottom:7px}.facts dd{margin:0;font-size:.95rem;color:var(--ink-muted)}.brief{display:grid;grid-template-columns:minmax(0,1fr) minmax(200px,.34fr);gap:clamp(24px,5vw,80px);margin-top:clamp(36px,5vh,60px);padding-top:clamp(26px,3.6vh,42px);border-top:1px solid var(--rule)}.brief .lede{margin:0 0 22px;max-width:52ch;color:var(--ink);font-family:var(--serif);font-size:clamp(1.15rem,1.9vw,1.45rem);line-height:1.34}.brief .prose h2{font-size:1.15rem;margin:26px 0 8px;padding-top:0;border-top:0}.brief .prose h2:first-child{margin-top:0}.brief .prose p{margin:0 0 14px;font-size:.98rem;line-height:1.62}.brief .prose a{border-bottom:1px solid var(--hairline-strong);transition:color .3s,border-color .3s}.brief .prose a:hover{color:var(--cyan-text);border-color:var(--cyan)}.brief .prose cite{font-style:normal;display:block;margin:0 0 14px;padding-left:16px;border-left:1px solid var(--hairline-strong);font-size:.9rem;line-height:1.6;color:var(--ink-faint)}.brief .prose cite i{color:var(--ink-muted)}.facts.side{grid-template-columns:1fr;align-content:start;align-self:start;gap:18px;margin:0;padding:22px 24px;border-top:0}.chapter{display:grid;grid-template-columns:minmax(0,.3fr) minmax(0,1fr);gap:clamp(20px,5vw,70px);padding:clamp(34px,5vh,58px) 0;border-top:1px solid var(--rule)}.chapter .h{font-family:var(--serif);font-size:1.5rem;line-height:1.2;position:sticky;top:96px;align-self:start}.chapter .h i{display:block;font-style:italic;font-size:1rem;color:var(--ink-faint);margin-top:6px}.chapter .b,.prose{max-width:62ch;color:var(--ink-muted)}.prose h2{font-size:1.5rem;line-height:1.2;color:var(--ink);margin:clamp(34px,5vh,58px) 0 14px;padding-top:clamp(34px,5vh,58px);border-top:1px solid var(--rule)}.prose h2:first-child{margin-top:0}.prevnext{display:flex;justify-content:space-between;gap:20px;padding:40px 0 clamp(70px,10vh,120px);border-top:1px solid var(--rule);margin-top:50px}.prevnext a .k{font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);display:block;margin-bottom:6px}.prevnext a .t{font-family:var(--serif);font-size:1.3rem}.prevnext .nx{text-align:right}.about .grid{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1fr);gap:clamp(30px,6vw,90px);align-items:start;padding-top:20px}.portraitwrap{position:sticky;top:86px;padding-bottom:30px}.portrait{aspect-ratio:4/5;background:var(--surface);overflow:hidden;position:relative;margin:0}.portrait img{width:100%;height:100%;object-fit:cover}.portrait.duo img{filter:grayscale(1) contrast(1.05) brightness(1.02)}.portrait.duo .tint{position:absolute;inset:0;background:var(--portrait-tint);mix-blend-mode:color;opacity:.85;pointer-events:none}.portrait.duo:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 58%,color-mix(in srgb,var(--void) 34%,transparent))}.portcap{position:absolute;top:14px;right:14px;writing-mode:vertical-rl;font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-muted);mix-blend-mode:luminosity}.overword{position:absolute;left:-4px;bottom:0;font-family:var(--serif);font-size:clamp(2.4rem,5vw,4rem);line-height:1;color:var(--ink);letter-spacing:-.015em;white-space:nowrap}.overword i{font-style:italic;color:var(--cyan)}.bio p{color:var(--ink-muted);max-width:47ch}.bio>p:first-child{font-size:1.1rem;max-width:52ch}.arc{display:flex;flex-direction:column;margin-top:22px}.arclbl{margin:34px 0 6px}.arclbl:first-child{margin-top:0}.grp{padding:20px 0;border-top:1px solid var(--rule)}.ghead{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:baseline}.gname{font-family:var(--serif);font-size:1.2rem;font-weight:500;color:var(--ink);letter-spacing:-.005em;display:block}.gsub{display:block;font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);margin-top:4px}.gspan{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);white-space:nowrap}.gtitles{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column}.gtitles li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:baseline;padding:5px 0}.gtitles .tt{font-size:1rem;line-height:1.5;color:var(--ink-muted)}.gtitles .td{font-size:12.5px;letter-spacing:.1em;color:var(--ink-muted);white-space:nowrap}.list{display:flex;flex-direction:column;margin-top:26px}.list>div{display:grid;grid-template-columns:80px minmax(0,1fr) auto;gap:20px;align-items:baseline;padding:16px 0;border-top:1px solid var(--rule)}.list .d{font-size:13.5px;letter-spacing:.1em;color:var(--ink)}.list .t{font-family:var(--serif);font-size:1.2rem;line-height:1.3}.list .k{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--cyan-text)}.list .t a{color:inherit;border-bottom:1px solid var(--hairline-strong);transition:color .3s,border-color .3s}.list .t a:hover{color:var(--cyan-text);border-color:var(--cyan)}.list .a{display:block;font-family:var(--font-sans);font-size:14px;line-height:1.55;color:var(--ink-muted);margin-top:6px}.sect{padding:clamp(60px,9vh,110px) 0 0}.sect .lbl{display:block;margin-bottom:8px}.totop{position:fixed;right:clamp(16px,3vw,38px);bottom:clamp(16px,3vw,38px);z-index:70;width:46px;height:46px;display:grid;place-items:center;padding:0;border-radius:14px;background:color-mix(in srgb,var(--void) 70%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid color-mix(in srgb,var(--ice) 12%,transparent);box-shadow:0 0 22px 3px color-mix(in srgb,var(--cyan) 8%,transparent);color:var(--ink-muted);cursor:pointer;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .35s ease,transform .35s ease,color .3s,border-color .3s,background .3s,box-shadow .3s}.totop.show{opacity:1;visibility:visible;transform:none}.totop:hover{color:var(--cyan);border-color:color-mix(in srgb,var(--cyan) 30%,transparent);background:color-mix(in srgb,var(--void) 86%,transparent);box-shadow:var(--glow-cyan)}.totop svg{width:20px;height:20px;display:block}img.missing{display:none}@media(max-width:860px){html{scroll-padding-top:74px}header.site .wrap{padding-top:18px;padding-bottom:18px;gap:14px}.sitenav{gap:14px}.sitenav a{font-size:12px;letter-spacing:.12em}.labfeat .grid,.about .grid{grid-template-columns:1fr}.hero{min-height:0;align-items:start;padding:86px 0 0}.hero .hgrid{grid-template-columns:1fr;gap:6px}.hero .byline{margin-bottom:26px;gap:2px 14px}.hero .byline b{font-size:1.25rem}.hero .byline span{font-size:1.15rem}.scene{aspect-ratio:1/1;max-height:none;margin:6px calc(-1*clamp(22px,5vw,64px)) 0;width:auto}.portraitwrap{position:relative;top:auto}.featured .row{grid-template-columns:1fr}.featured .thumbs{display:grid;grid-template-columns:1fr 1fr;gap:14px}.thumb{width:auto}.fhead{flex-wrap:wrap;gap:6px 20px}.gal{grid-template-columns:repeat(2,minmax(0,1fr))}.piece.lead .frame{aspect-ratio:16/9}.brief{grid-template-columns:1fr}.facts.side{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:20px;padding:20px}.track>*{flex-basis:76%}.chapter{grid-template-columns:1fr;gap:16px}.chapter .h{position:static}.kv div{grid-template-columns:100px 1fr}.list>div{grid-template-columns:1fr;gap:4px}.mapcap{position:static;margin-top:14px}.totop{width:42px;height:42px}}@media(max-width:560px){.wordmark{font-size:19px}.sitenav{gap:11px}.sitenav a{font-size:12px;letter-spacing:.06em}.ghead{grid-template-columns:1fr;gap:4px}.gtitles li{grid-template-columns:1fr;gap:2px}.gtitles .td{order:-1}.featured .thumbs{grid-template-columns:1fr;gap:18px}.thumb{max-width:420px}.prevnext{flex-direction:column;gap:26px}.prevnext .nx{text-align:left}.gal{grid-template-columns:1fr}.lb img{max-height:70vh}.facts{gap:20px}.track>*{flex-basis:86%}.carnav{gap:14px}.carbtn{width:38px;height:38px}.carousel .edge{width:36px;height:36px}.overword{font-size:2.1rem}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}html{scroll-behavior:auto}.hero .loc{text-shadow:0 0 14px color-mix(in srgb,var(--ember) 60%,transparent)}}
