@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+SC:wght@300;400;500;600;700&display=swap');
:root{color-scheme:light;--bg:#f8f8f6;--surface:#fff;--ink:#171717;--muted:#707070;--line:#dededb;--soft:#f0f0ee;--accent:#171717;--header:rgba(248,248,246,.83);font-family:'DM Sans','Noto Sans SC',sans-serif;font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}button,a{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid var(--ink);outline-offset:4px}::selection{background:var(--ink);color:var(--bg)}.wrap{width:min(100% - 64px,1344px);margin-inline:auto}.skip-link{position:absolute;z-index:100;left:12px;top:-100px;padding:9px 12px;background:var(--ink);color:var(--bg)}.skip-link:focus{top:12px}.site-header{position:sticky;top:0;z-index:50;background:var(--header);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--line)}.header-inner{height:76px;display:flex;align-items:center;gap:48px}.brand{display:flex;align-items:center;gap:12px;font-size:15px;font-weight:700;letter-spacing:.02em;white-space:nowrap}.brand-symbol{display:grid;place-items:center;width:36px;height:36px;background:var(--ink);color:var(--bg);border-radius:9px;font-size:15px;letter-spacing:-.1em}.nav{margin-left:auto;display:flex;gap:38px}.nav a{font-size:14px;color:var(--muted);transition:color .2s}.nav a:hover{color:var(--ink)}.theme-toggle{border:1px solid var(--line);background:transparent;color:var(--ink);border-radius:100px;padding:8px 13px;display:flex;align-items:center;gap:7px;font-size:13px;min-height:38px}.theme-icon{font-size:16px;line-height:1}.hero{min-height:calc(100svh - 76px);display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,31%);grid-template-rows:1fr auto;gap:50px 6%;padding-top:clamp(72px,9vw,142px);padding-bottom:29px}.hero-copy{align-self:center;padding-bottom:28px}.eyebrow,.section-index{font-size:12px;font-weight:700;letter-spacing:.2em;line-height:1.4}.eyebrow{display:flex;align-items:center;gap:12px;color:var(--muted);margin:0 0 37px}.status-dot{width:7px;height:7px;background:var(--ink);border-radius:50%;flex:none}.eyebrow-rule{height:1px;background:var(--line);width:22px}.hero h1{font-size:clamp(60px,7.4vw,118px);line-height:1.11;letter-spacing:-.082em;font-weight:600;margin:0 0 34px}.hero h1 em,.contact-inner h2 em{font-style:normal;color:var(--muted);font-weight:300}.hero-intro{font-size:18px;line-height:1.85;color:var(--muted);max-width:590px;margin:0}.hero-actions{display:flex;align-items:center;gap:31px;margin-top:44px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:70px;min-height:50px;padding:11px 20px;border-radius:100px;font-size:14px;font-weight:600}.button-primary{background:var(--ink);color:var(--bg);transition:transform .22s,background .22s}.button-primary:hover{transform:translateY(-2px)}.text-link{font-size:14px;font-weight:600;padding-bottom:4px;border-bottom:1px solid var(--ink)}.text-link span{margin-left:13px}.hero-side{align-self:center}.portrait-frame{aspect-ratio:4/5;background:var(--soft);border-radius:4px;overflow:hidden;position:relative}.portrait-frame img{display:block;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(.95);transform:scale(1.02)}.portrait-frame:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 64%,rgba(0,0,0,.09));pointer-events:none}.portrait-caption{display:flex;justify-content:space-between;gap:10px;margin-top:15px;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.16em}.hero-bottom{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:19px;color:var(--muted);font-size:12px;letter-spacing:.06em}.section{padding:clamp(110px,13vw,190px) 0}.work-section{background:var(--surface)}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:65px}.section-index{color:var(--muted);margin:0 0 26px}.section-heading h2,.about-grid h2{font-size:clamp(52px,5.3vw,82px);line-height:1.13;letter-spacing:-.065em;font-weight:600;margin:0}.period{color:#999}.section-lead{max-width:335px;font-size:15px;color:var(--muted);line-height:1.85;margin:0 0 8px}.filter-row{display:flex;flex-wrap:wrap;gap:8px;border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:24px}.filter{border:1px solid transparent;background:transparent;color:var(--muted);border-radius:100px;padding:9px 16px;font-size:13px;white-space:nowrap}.filter span{font-size:11px;margin-left:5px;color:#a0a0a0}.filter:hover{color:var(--ink)}.filter.is-active{background:var(--ink);color:var(--bg)}.filter.is-active span{color:var(--bg);opacity:.62}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.project{min-height:390px;background:var(--soft);padding:28px 32px 34px;display:flex;flex-direction:column;justify-content:space-between;transition:background .25s,transform .25s}.project:hover{background:#e9e9e6;transform:translateY(-3px)}.project[hidden]{display:none}.project-feature{grid-column:1/-1;min-height:480px;background:#171717;color:#f8f8f6}.project-feature:hover{background:#252525}.project-top{display:flex;justify-content:space-between;gap:15px;font-size:12px;letter-spacing:.13em;font-weight:700;color:var(--muted)}.project-feature .project-top{color:#aaa}.project-content{display:grid;grid-template-columns:80px 1fr;gap:25px;align-items:start}.project-number{font-size:58px;letter-spacing:-.08em;line-height:1;font-weight:500;color:#d6d6d2}.project-feature .project-number{color:#636363}.project-kicker{font-size:12px;font-weight:700;letter-spacing:.12em;color:var(--muted);margin:0 0 10px}.project-feature .project-kicker{color:#aaa}.project h3{font-size:clamp(32px,3.2vw,54px);letter-spacing:-.05em;line-height:1.15;margin:0 0 15px;font-weight:600}.project p:not(.project-kicker){font-size:15px;line-height:1.8;max-width:600px;margin:0;color:var(--muted)}.project-feature p:not(.project-kicker){color:#bcbcbc}.tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:24px}.tags span{border:1px solid var(--line);padding:4px 11px;border-radius:100px;font-size:11px;color:var(--muted)}.project-feature .tags span{border-color:#4a4a4a;color:#aaa}.asset-note{display:flex;gap:12px;align-items:flex-start;max-width:620px;color:var(--muted);font-size:13px;line-height:1.7;margin-top:24px}.asset-note p{margin:0}.note-icon{font-size:16px;line-height:1}.about-section{border-bottom:1px solid var(--line)}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:12%}.about-grid h2{max-width:620px}.about-content{padding-top:53px}.about-statement{font-size:clamp(24px,2.3vw,35px);line-height:1.55;letter-spacing:-.03em;margin:0 0 28px}.about-content>p:not(.about-statement){color:var(--muted);font-size:15px;line-height:1.95;max-width:610px}.capabilities{border-top:1px solid var(--line);margin-top:50px}.capabilities>div{display:grid;grid-template-columns:35px 1fr;grid-template-rows:auto auto;column-gap:15px;padding:17px 0;border-bottom:1px solid var(--line)}.capabilities span{grid-row:1/3;font-size:11px;color:var(--muted)}.capabilities strong{font-size:15px;font-weight:600;line-height:1.35}.capabilities small{font-size:12px;color:var(--muted);margin-top:4px}.experience-section{background:var(--surface)}.timeline{list-style:none;padding:0;margin:0}.timeline li{display:grid;grid-template-columns:220px 1fr 90px;gap:28px;align-items:center;padding:27px 0;border-top:1px solid var(--line)}.timeline li:last-child{border-bottom:1px solid var(--line)}.time{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}.timeline h3{margin:0 0 5px;font-size:19px;font-weight:600;letter-spacing:-.02em}.timeline p{margin:0;color:var(--muted);font-size:13px}.time-tag{justify-self:end;font-size:11px;color:var(--muted);letter-spacing:.1em}.contact-section{background:#171717;color:#f7f7f5;padding:clamp(110px,13vw,180px) 0}.contact-inner h2{font-size:clamp(58px,7.6vw,112px);letter-spacing:-.075em;line-height:1.15;font-weight:600;margin:0 0 31px}.contact-inner h2 em{color:#8b8b8b}.contact-inner>p:not(.section-index){font-size:16px;color:#aaa;margin:0 0 47px}.contact-inner .section-index{color:#aaa}.contact-link{font-size:clamp(20px,2.8vw,38px);letter-spacing:-.035em;border-bottom:1px solid #777;padding-bottom:9px;display:inline-flex;gap:45px;align-items:center;max-width:100%;overflow-wrap:anywhere}.contact-link span{font-size:.7em}.site-footer{background:#171717;color:#aaa;border-top:1px solid #393939}.site-footer .wrap{min-height:90px;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:12px;letter-spacing:.07em}.site-footer a:hover{color:#fff}.reveal{opacity:0;transform:translateY(22px);transition:opacity .65s ease,transform .65s cubic-bezier(.2,.7,.2,1)}.reveal.is-visible{opacity:1;transform:none}
@media(prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--bg:#111;--surface:#181818;--ink:#f4f4f1;--muted:#a3a3a0;--line:#343434;--soft:#242424;--header:rgba(17,17,17,.85)}}:root[data-theme=dark]{color-scheme:dark;--bg:#111;--surface:#181818;--ink:#f4f4f1;--muted:#a3a3a0;--line:#343434;--soft:#242424;--header:rgba(17,17,17,.85)}:root[data-theme=light]{color-scheme:light;--bg:#f8f8f6;--surface:#fff;--ink:#171717;--muted:#707070;--line:#dededb;--soft:#f0f0ee;--header:rgba(248,248,246,.83)}@media(prefers-color-scheme:dark){:root:not([data-theme]) .project:hover{background:#2b2b2b}:root:not([data-theme]) .project-feature{background:#ededeb;color:#171717}:root:not([data-theme]) .project-feature:hover{background:#dededb}:root:not([data-theme]) .project-feature .project-top,:root:not([data-theme]) .project-feature .project-kicker,:root:not([data-theme]) .project-feature p:not(.project-kicker),:root:not([data-theme]) .project-feature .tags span{color:#666}:root:not([data-theme]) .project-feature .project-number{color:#aaa}:root:not([data-theme]) .project-feature .tags span{border-color:#bbb}}:root[data-theme=dark] .project:hover{background:#2b2b2b}:root[data-theme=dark] .project-feature{background:#ededeb;color:#171717}:root[data-theme=dark] .project-feature:hover{background:#dededb}:root[data-theme=dark] .project-feature .project-top,:root[data-theme=dark] .project-feature .project-kicker,:root[data-theme=dark] .project-feature p:not(.project-kicker),:root[data-theme=dark] .project-feature .tags span{color:#666}:root[data-theme=dark] .project-feature .project-number{color:#aaa}:root[data-theme=dark] .project-feature .tags span{border-color:#bbb}
@media(max-width:900px){.wrap{width:min(100% - 40px,1344px)}.hero{grid-template-columns:1fr 34%;gap:40px 4%}.hero h1{font-size:clamp(54px,7.2vw,80px)}.hero-intro{font-size:16px}.about-grid{gap:6%}.timeline li{grid-template-columns:170px 1fr 60px}.project-content{grid-template-columns:60px 1fr}.project-number{font-size:46px}}
@media(max-width:680px){.wrap{width:min(100% - 36px,1344px)}.header-inner{height:66px;gap:13px}.brand{font-size:13px;gap:8px}.brand-symbol{width:31px;height:31px}.nav{gap:14px;overflow-x:auto}.nav a{font-size:12px;white-space:nowrap}.theme-toggle{padding:6px 8px;min-height:32px}.theme-label{display:none}.hero{min-height:0;display:flex;flex-direction:column;padding-top:70px;gap:48px}.hero-copy{padding:0}.hero h1{font-size:clamp(52px,12vw,79px);margin-bottom:25px}.eyebrow{font-size:10px;gap:8px;margin-bottom:29px}.hero-intro{font-size:15px;line-height:1.8}.hero-actions{margin-top:31px}.hero-side{display:grid;grid-template-columns:150px 1fr;align-items:end;gap:18px}.portrait-frame{width:150px}.portrait-caption{display:flex;flex-direction:column;align-self:end;font-size:10px}.hero-bottom{width:100%;font-size:11px}.section{padding:95px 0}.section-heading{display:block;margin-bottom:38px}.section-heading h2,.about-grid h2{font-size:54px}.section-lead{margin:20px 0 0;font-size:14px}.project-grid{grid-template-columns:1fr;gap:10px}.project,.project-feature{min-height:340px;padding:22px}.project-feature{grid-column:auto;min-height:400px}.project-content{grid-template-columns:44px 1fr;gap:14px}.project-number{font-size:34px}.project h3{font-size:33px}.project p:not(.project-kicker){font-size:14px}.filter-row{gap:2px}.filter{padding:8px 10px;font-size:12px}.filter span{font-size:10px}.about-grid{grid-template-columns:1fr;gap:17px}.about-content{padding-top:0}.about-statement{font-size:25px}.timeline li{grid-template-columns:1fr auto;gap:8px;padding:24px 0}.timeline .time{grid-column:1/3;font-size:12px}.timeline li>div{grid-column:1}.time-tag{grid-column:2;grid-row:2}.timeline h3{font-size:16px}.contact-inner h2{font-size:clamp(48px,11vw,72px)}.contact-link{font-size:21px;gap:12px}.site-footer .wrap{min-height:100px;align-items:start;justify-content:center;flex-direction:column;gap:3px}.site-footer .wrap>span:nth-child(2){display:none}}
@media(max-width:420px){.nav{gap:10px}.nav a{font-size:11px}.brand span:last-child{display:none}.theme-toggle{margin-left:auto}.hero h1{font-size:49px}.hero-side{grid-template-columns:128px 1fr}.portrait-frame{width:128px}}
.artwork-gallery{margin-top:110px}.artwork-gallery[hidden],.asset-note[hidden]{display:none}.gallery-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding-bottom:22px}.gallery-heading .section-index{margin:0}.gallery-heading h3{font-size:36px;letter-spacing:-.05em;line-height:1;margin:0}.gallery-group{margin-top:54px}.gallery-group h4{font-size:12px;letter-spacing:.15em;color:var(--muted);margin:0 0 20px}.gallery-grid{display:grid;gap:26px;align-items:start}.gallery-landscape{grid-template-columns:1fr}.gallery-square{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-portrait{grid-template-columns:repeat(3,minmax(0,1fr))}.gallery-grid figure{margin:0;min-width:0}.gallery-grid img{display:block;width:100%;height:auto;object-fit:contain;background:var(--soft)}.gallery-grid figcaption{display:flex;justify-content:space-between;gap:12px;margin-top:13px;font-size:13px}.gallery-grid figcaption strong{font-weight:600}.gallery-grid figcaption span{color:var(--muted)}@media(max-width:680px){.artwork-gallery{margin-top:80px}.gallery-heading h3{font-size:29px}.gallery-square,.gallery-portrait{grid-template-columns:1fr}.gallery-grid{gap:32px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.button-primary,.project{transition:none}.button-primary:hover,.project:hover{transform:none}}

.project-link{display:inline-flex;align-items:center;gap:20px;margin-top:24px;padding-bottom:4px;border-bottom:1px solid currentColor;font-size:13px;font-weight:600}.project-link span{font-size:16px}.gallery-heading>div{min-width:0}.gallery-description{max-width:350px;margin:0;color:var(--muted);font-size:13px;line-height:1.7}.gallery-landscape{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-landscape figure:last-child:nth-child(odd){grid-column:1/-1}.gallery-grid figure{background:var(--surface)}.gallery-grid img{border-radius:3px}.gallery-grid figcaption{line-height:1.5}@media(max-width:680px){.gallery-heading{display:block}.gallery-description{margin-top:14px}.gallery-landscape{grid-template-columns:1fr}.gallery-landscape figure:last-child:nth-child(odd){grid-column:auto}}

.visual-spotlight{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);min-height:430px;background:#101b2b;color:#f3f6fb;margin:0 0 16px;overflow:hidden}.visual-spotlight[hidden]{display:none}.spotlight-copy{padding:clamp(28px,4vw,58px);display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.spotlight-index{margin:0 0 30px;color:#8db4e5;font-size:11px;line-height:1.4;font-weight:700;letter-spacing:.17em}.spotlight-copy h3{font-size:clamp(38px,4vw,62px);letter-spacing:-.065em;line-height:1.13;font-weight:600;margin:0 0 19px}.spotlight-copy h3 em{font-style:normal;color:#8db4e5;font-weight:300}.spotlight-copy>p:not(.spotlight-index){font-size:14px;line-height:1.85;color:#b7c6da;max-width:445px;margin:0}.spotlight-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:23px}.spotlight-tags span{border:1px solid #48627e;border-radius:100px;padding:4px 10px;font-size:11px;color:#bdd2ed}.spotlight-link{display:inline-flex;align-items:center;gap:36px;border-bottom:1px solid #cbd9ed;padding:0 0 5px;margin-top:29px;font-size:13px;font-weight:600}.spotlight-link span{font-size:17px}.spotlight-image{display:block;min-width:0;background:#172538;overflow:hidden}.spotlight-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .45s cubic-bezier(.2,.7,.2,1)}.spotlight-image:hover img{transform:scale(1.035)}@media(max-width:900px){.visual-spotlight{grid-template-columns:1fr 1fr}.spotlight-copy{padding:30px}.spotlight-copy h3{font-size:42px}}@media(max-width:680px){.visual-spotlight{grid-template-columns:1fr}.spotlight-image{grid-row:1;aspect-ratio:16/9}.spotlight-copy{grid-row:2;padding:28px 24px 32px}.spotlight-index{margin-bottom:17px}.spotlight-copy h3{font-size:38px;margin-bottom:15px}.spotlight-link{margin-top:25px}}@media(prefers-reduced-motion:reduce){.spotlight-image img{transition:none}.spotlight-image:hover img{transform:none}}
.spotlight-image img{object-fit:contain}.gallery-landscape figure:nth-child(-n+4) img{aspect-ratio:3/2;object-fit:contain;background:#142136}

/* Hero: lead with work instead of a portrait. */
.hero{grid-template-columns:minmax(0,1fr) minmax(350px,44%);gap:54px 5%;padding-top:clamp(66px,7vw,112px)}.hero h1{font-size:clamp(62px,6.8vw,104px)}.hero-intro{max-width:550px}.hero-showcase{align-self:center;min-width:0;background:#142039;color:#f4f7ff;border:1px solid #263a5e;padding:17px;box-shadow:0 28px 70px rgba(18,32,56,.14)}.hero-showcase-top{display:flex;justify-content:space-between;gap:12px;padding:1px 1px 15px;color:#bacdea;font-size:10px;font-weight:700;letter-spacing:.13em}.hero-showcase-main{display:block;aspect-ratio:16/9;overflow:hidden;background:#1a2b48}.hero-showcase-main img,.hero-showcase-mini img{display:block;width:100%;height:100%;object-fit:cover}.hero-showcase-caption{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:16px 1px 17px;border-bottom:1px solid #364864}.hero-showcase-caption div{display:flex;flex-direction:column;gap:3px}.hero-showcase-caption strong{font-size:15px;font-weight:600;letter-spacing:-.02em}.hero-showcase-caption div span{font-size:11px;color:#b5c6df}.hero-showcase-caption>span{font-size:20px;color:#bfd8ff}.hero-showcase-mini{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding-top:15px}.hero-showcase-mini a{display:block;aspect-ratio:16/9;overflow:hidden;background:#1b2d4c}.hero-showcase-main img,.hero-showcase-mini img{transition:transform .35s cubic-bezier(.2,.7,.2,1)}.hero-showcase-main:hover img,.hero-showcase-mini a:hover img{transform:scale(1.035)}@media(max-width:900px){.hero{grid-template-columns:minmax(0,1fr) minmax(300px,43%);gap:36px 4%}.hero h1{font-size:clamp(58px,7vw,82px)}.hero-showcase{padding:12px}.hero-showcase-top{font-size:9px}.hero-showcase-caption strong{font-size:13px}}@media(max-width:680px){.hero{display:flex;flex-direction:column;padding-top:56px;gap:35px}.hero-copy{padding:0}.hero h1{font-size:clamp(52px,11.5vw,76px)}.hero-intro{font-size:15px}.hero-showcase{width:100%;padding:12px}.hero-showcase-top{padding-bottom:11px}.hero-showcase-caption{padding:13px 1px}.hero-showcase-mini{padding-top:11px}.hero-bottom{width:100%}}@media(max-width:420px){.hero h1{font-size:49px}.hero-showcase-caption strong{font-size:12px}.hero-showcase-caption div span{font-size:10px}}@media(prefers-reduced-motion:reduce){.hero-showcase-main img,.hero-showcase-mini img{transition:none}.hero-showcase-main:hover img,.hero-showcase-mini a:hover img{transform:none}}

.hero .status-dot{background:#7ba9e8}.hero h1 em{color:#8aace0}:root[data-theme=light] .hero h1 em{color:#4e78b7}@media(prefers-color-scheme:light){:root:not([data-theme]) .hero h1 em{color:#4e78b7}}

.hero-persona{display:flex;align-items:center;gap:14px;margin-bottom:37px;max-width:550px}.hero-persona img{display:block;width:58px;height:58px;border-radius:14px;object-fit:cover;flex:none;border:1px solid var(--line)}.hero-persona>div{display:flex;flex-direction:column;gap:2px;min-width:0}.hero-persona strong{font-size:16px;font-weight:600;line-height:1.35}.hero-persona>div span,.hero-persona-location{font-size:10px;color:var(--muted);font-weight:700;letter-spacing:.14em;line-height:1.5;white-space:nowrap}.hero-persona-location{margin-left:auto}@media(max-width:680px){.hero-persona{margin-bottom:27px}.hero-persona img{width:52px;height:52px;border-radius:12px}.hero-persona-location{display:none}}

.hero-persona img{width:72px;height:72px;border-radius:16px}@media(max-width:680px){.hero-persona img{width:62px;height:62px;border-radius:14px}}

.hero-avatar-trigger{display:block;flex:none;padding:0;border:0;border-radius:16px;background:transparent;line-height:0;cursor:zoom-in;transition:transform 180ms cubic-bezier(.2,.7,.2,1)}.hero-avatar-trigger:hover{transform:scale(1.05)}.hero-avatar-trigger:focus-visible{outline:2px solid #8aace0;outline-offset:4px}.hero-showcase-main{aspect-ratio:1896/830}.portrait-dialog{width:min(520px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:10px;border:1px solid var(--line);border-radius:22px;background:var(--surface);color:var(--ink);box-shadow:0 24px 80px rgba(0,0,0,.42)}.portrait-dialog::backdrop{background:rgba(5,12,25,.78);backdrop-filter:blur(8px)}.portrait-dialog>img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:14px}.portrait-dialog-close{position:absolute;top:20px;right:20px;display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:rgba(12,20,36,.82);color:#fff;font-size:30px;line-height:1;cursor:pointer}.portrait-dialog-close:hover{background:#182d50}.portrait-dialog-close:focus-visible{outline:2px solid #fff;outline-offset:3px}@media(max-width:680px){.hero-avatar-trigger{border-radius:14px}.portrait-dialog{padding:8px;border-radius:18px}.portrait-dialog>img{border-radius:12px}.portrait-dialog-close{top:16px;right:16px}}@media(prefers-reduced-motion:reduce){.hero-avatar-trigger{transition:none}.hero-avatar-trigger:hover{transform:none}}

body.portrait-open{overflow:hidden}.portrait-dialog{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;width:auto;max-height:none;padding:16px;border:0;border-radius:0;background:transparent;box-shadow:none}.portrait-dialog[hidden]{display:none}.portrait-dialog-backdrop{position:absolute;inset:0;background:rgba(5,12,25,.78);backdrop-filter:blur(8px);cursor:zoom-out}.portrait-dialog-panel{position:relative;width:min(520px,calc(100vw - 32px));padding:10px;border:1px solid var(--line);border-radius:22px;background:var(--surface);box-shadow:0 24px 80px rgba(0,0,0,.42)}.portrait-dialog-panel img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:14px}.portrait-dialog-close{top:20px;right:20px}@media(max-width:680px){.portrait-dialog-panel{padding:8px;border-radius:18px}.portrait-dialog-panel img{border-radius:12px}.portrait-dialog-close{top:16px;right:16px}}

/* Let the visual work sit in the page instead of inside display frames. */
.hero-showcase{background:transparent;color:var(--ink);border:0;padding:0;box-shadow:none}.hero-showcase-top{color:var(--muted);padding:0 0 14px}.hero-showcase-main{background:transparent;overflow:hidden}.hero-showcase-main img{object-fit:contain}.hero-showcase-caption{border-bottom:1px solid var(--line);padding:17px 0}.hero-showcase-caption div span{color:var(--muted)}.hero-showcase-caption>span{color:var(--ink)}.hero-showcase-mini{gap:14px;padding-top:17px}.hero-showcase-mini a{background:transparent}.hero-showcase-mini img{object-fit:contain}.visual-spotlight{background:transparent;color:var(--ink);border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:46px;min-height:380px;padding:28px 0}.spotlight-copy{padding:0}.spotlight-index,.spotlight-copy h3 em{color:#4e78b7}.spotlight-copy>p:not(.spotlight-index){color:var(--muted)}.spotlight-tags span{border-color:var(--line);color:var(--muted)}.spotlight-link{border-color:var(--ink)}.spotlight-image{background:transparent}.gallery-grid figure,.gallery-grid img{background:transparent}.gallery-grid img,.gallery-landscape figure:nth-child(-n+4) img{aspect-ratio:auto;object-fit:contain;background:transparent;border-radius:0}@media(max-width:900px){.visual-spotlight{gap:28px}.spotlight-copy{padding:0}}@media(max-width:680px){.hero-showcase{padding:0}.hero-showcase-top{padding-bottom:11px}.hero-showcase-mini{gap:10px;padding-top:14px}.visual-spotlight{gap:22px;padding:22px 0}.spotlight-copy{padding:0 0 12px}.spotlight-image{aspect-ratio:auto}.spotlight-image img{height:auto}}

/* Avatar follows its thumbnail into a quieter, borderless portrait view. */
.hero-avatar-trigger.is-morphing{opacity:0}.portrait-dialog{padding:20px}.portrait-dialog-backdrop{background:rgba(9,16,28,.42);backdrop-filter:blur(12px)}.portrait-dialog-panel{width:min(500px,calc(100vw - 40px));padding:0;border:0;border-radius:22px;background:transparent;overflow:hidden;box-shadow:0 22px 70px rgba(0,0,0,.25);transform-origin:center center}.portrait-dialog-panel img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:22px}.portrait-dialog-close{top:12px;right:12px;width:44px;height:44px;background:rgba(14,23,36,.62);backdrop-filter:blur(10px);font-size:26px}.portrait-dialog-close:hover{background:rgba(14,23,36,.82)}@media(max-width:680px){.portrait-dialog-panel{width:min(480px,calc(100vw - 32px));border-radius:18px}.portrait-dialog-panel img{border-radius:18px}.portrait-dialog-close{top:10px;right:10px}}

/* Original, unbranded project artwork sits behind the case text. */
.section-lead small{display:block;margin-top:11px;color:var(--muted);font-size:11px;line-height:1.6;letter-spacing:.01em}
.project,.project-feature{position:relative;isolation:isolate;overflow:hidden;background:#edf0f0;color:#181b1e}
.project:hover,.project-feature:hover{background:#edf0f0}
.project-art{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(.72);transform:scale(1);transition:transform 550ms cubic-bezier(.2,.7,.2,1)}
.project:hover .project-art{transform:scale(1.025)}
.project::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,#edf0f0 0%,rgba(237,240,240,.98) 24%,rgba(237,240,240,.7) 56%,rgba(237,240,240,.06) 100%),linear-gradient(0deg,rgba(237,240,240,.84) 0%,transparent 70%)}
.project-feature::after{background:linear-gradient(90deg,#edf0f0 0%,rgba(237,240,240,.98) 25%,rgba(237,240,240,.77) 49%,rgba(237,240,240,.02) 100%),linear-gradient(0deg,rgba(237,240,240,.65) 0%,transparent 62%)}
.project-top,.project-feature .project-top,.project-kicker,.project-feature .project-kicker,.project p:not(.project-kicker),.project-feature p:not(.project-kicker){color:#4b5258}
.project-number,.project-feature .project-number{color:#aeb6b8}
.project .tags span,.project-feature .tags span{color:#454d53;border-color:rgba(37,45,51,.29)}
.project-content>div:last-child{max-width:430px}
.project-feature .project-content>div:last-child{max-width:610px}
:root[data-theme=dark] .project{background:#171b20;color:#f4f6f7}
:root[data-theme=dark] .project:hover{background:#171b20}
:root[data-theme=dark] .project-art{opacity:.42}
:root[data-theme=dark] .project::after{background:linear-gradient(90deg,#171b20 0%,rgba(23,27,32,.98) 28%,rgba(23,27,32,.7) 65%,rgba(23,27,32,.18) 100%),linear-gradient(0deg,rgba(23,27,32,.9) 0%,transparent 72%)}
:root[data-theme=dark] .project-top,:root[data-theme=dark] .project-kicker,:root[data-theme=dark] .project p:not(.project-kicker),:root[data-theme=dark] .project .tags span{color:#c5cbd0}
:root[data-theme=dark] .project-number{color:#6e7980}
:root[data-theme=dark] .project .tags span{border-color:rgba(231,237,241,.32)}
:root[data-theme=dark] .project-feature .project-top,:root[data-theme=dark] .project-feature .project-kicker,:root[data-theme=dark] .project-feature p:not(.project-kicker),:root[data-theme=dark] .project-feature .tags span{color:#c5cbd0}
:root[data-theme=dark] .project-feature .project-number{color:#6e7980}
:root[data-theme=dark] .project-feature .tags span{border-color:rgba(231,237,241,.32)}
@media(prefers-color-scheme:dark){:root:not([data-theme]) .project{background:#171b20;color:#f4f6f7}:root:not([data-theme]) .project:hover{background:#171b20}:root:not([data-theme]) .project-art{opacity:.42}:root:not([data-theme]) .project::after{background:linear-gradient(90deg,#171b20 0%,rgba(23,27,32,.98) 28%,rgba(23,27,32,.7) 65%,rgba(23,27,32,.18) 100%),linear-gradient(0deg,rgba(23,27,32,.9) 0%,transparent 72%)}:root:not([data-theme]) .project-top,:root:not([data-theme]) .project-kicker,:root:not([data-theme]) .project p:not(.project-kicker),:root:not([data-theme]) .project .tags span{color:#c5cbd0}:root:not([data-theme]) .project-number{color:#6e7980}:root:not([data-theme]) .project .tags span{border-color:rgba(231,237,241,.32)}}
@media(prefers-color-scheme:dark){:root:not([data-theme]) .project-feature .project-top,:root:not([data-theme]) .project-feature .project-kicker,:root:not([data-theme]) .project-feature p:not(.project-kicker),:root:not([data-theme]) .project-feature .tags span{color:#c5cbd0}:root:not([data-theme]) .project-feature .project-number{color:#6e7980}:root:not([data-theme]) .project-feature .tags span{border-color:rgba(231,237,241,.32)}}
@media(max-width:680px){.project-art{object-position:64% center}.project::after,.project-feature::after{background:linear-gradient(0deg,#edf0f0 0%,rgba(237,240,240,.98) 31%,rgba(237,240,240,.18) 100%)}.project-content>div:last-child,.project-feature .project-content>div:last-child{max-width:100%}:root[data-theme=dark] .project::after{background:linear-gradient(0deg,#171b20 0%,rgba(23,27,32,.98) 36%,rgba(23,27,32,.3) 100%)}}
@media(max-width:680px) and (prefers-color-scheme:dark){:root:not([data-theme]) .project::after{background:linear-gradient(0deg,#171b20 0%,rgba(23,27,32,.98) 36%,rgba(23,27,32,.3) 100%)}}
@media(prefers-reduced-motion:reduce){.project-art{transition:none}.project:hover .project-art{transform:none}}
