:root{--paper:#f4f3ee;--ink:#252522;--muted:#74746e;--line:#d7d7cf;--accent:#e6486d;--sans:'DM Sans',Arial,sans-serif;--display:'Space Grotesk','DM Sans',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font:450 15px/1.5 var(--sans);-webkit-font-smoothing:antialiased}body:has(dialog[open]){overflow:hidden}a{color:inherit;text-decoration:none}button{color:inherit;font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}button:disabled{cursor:default}::selection{background:#f2b7c5;color:var(--ink)}.wrap{width:calc(100% - 104px);max-width:1600px;margin-inline:auto}.skip-link{position:fixed;left:20px;top:-100px;background:var(--ink);color:white;padding:12px;z-index:100}.skip-link:focus{top:20px}.site-header{display:flex;align-items:center;justify-content:space-between;height:107px;border-bottom:1px solid var(--line)}.wordmark{font:700 43px/.8 var(--display);letter-spacing:-5px;width:100px}.wordmark-dot{color:var(--accent)}nav{display:flex;gap:36px}nav a{font-size:14px;transition:color .2s}nav a:hover,.text-link:hover{color:var(--accent)}.nav-work::after{content:'';display:inline-block;margin:0 0 2px 7px;width:5px;height:5px;border-radius:50%;background:var(--accent)}.language{background:none;border:0;padding:10px 0 10px 30px;font-size:12px;letter-spacing:.03em}.hero{padding-top:39px;padding-bottom:66px}.hero-eyebrow{display:flex;justify-content:space-between;font-size:12px;letter-spacing:.015em}.location{display:flex;align-items:center;gap:8px}.location-dot{width:6px;height:6px;border-radius:50%;background:var(--accent)}h1{position:relative;margin:29px 0 24px;font:500 clamp(58px,10.1vw,163px)/1.04 var(--display);letter-spacing:-.075em;white-space:nowrap}.name-star{display:inline-block;vertical-align:top;font-size:.28em;color:var(--accent);margin:9px 0 0 18px;letter-spacing:0}.hero-bottom{display:grid;grid-template-columns:1fr 1fr auto;align-items:end;padding-top:8px}.hero-role{font-size:27px;letter-spacing:-1px;line-height:1.15;margin:0}.hero-description{margin:0 0 0 25%;color:var(--muted);font-size:14px;line-height:1.5}.hero-scroll{width:46px;height:46px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font-size:25px;transition:background .2s,transform .2s}.hero-scroll:hover{background:var(--ink);color:var(--paper);transform:translateY(3px)}.work{scroll-margin-top:25px}.section-heading{padding:25px 0 19px;border-top:1px solid var(--ink);display:flex;align-items:center;justify-content:space-between}.section-heading h2{font-size:19px;font-weight:500;letter-spacing:-.5px;margin:0}.section-heading sup{font-size:11px;color:var(--muted);margin-left:5px;vertical-align:super}.work-hint{font-size:11px;color:var(--muted)}.work-toolbar{display:flex;justify-content:space-between;align-items:center;margin:0 0 27px}.filters{display:flex;flex-wrap:wrap;gap:6px}.filter{border:1px solid var(--line);background:transparent;padding:7px 16px;border-radius:24px;font-size:11px;transition:background .2s,color .2s}.filter:hover{border-color:var(--ink)}.filter.active{background:var(--ink);border-color:var(--ink);color:var(--paper)}.index-label{font-size:10px;letter-spacing:.08em;color:var(--muted)}.project-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:37px 22px}.project-card{min-width:0;position:relative;isolation:isolate}.project-card[hidden]{display:none}.project-button{border:0;background:none;text-align:left;width:100%;display:block;padding:0}.project-visual{aspect-ratio:1.075;position:relative;overflow:hidden;background:var(--card-bg,#ddd);transition:transform .45s cubic-bezier(.2,.8,.2,1)}.project-visual img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .65s cubic-bezier(.2,.8,.2,1)}.project-visual.poster img{object-fit:contain}.project-button:hover .project-visual img{transform:scale(1.035)}.project-button:focus-visible .project-visual{outline:2px solid var(--accent);outline-offset:4px}.project-open{position:absolute;right:14px;bottom:14px;width:34px;height:34px;display:grid;place-items:center;background:var(--paper);border-radius:50%;font-size:20px;opacity:0;transform:translateY(5px);transition:.2s}.project-button:hover .project-open,.project-button:focus-visible .project-open{opacity:1;transform:translateY(0)}.project-meta{display:flex;justify-content:space-between;gap:15px;margin-top:13px;align-items:start}.project-title{font-size:14px;font-weight:550;letter-spacing:-.2px;margin:0}.project-number{color:#8a8a80;font-size:10px;line-height:2}.project-type{display:block;font-size:11px;color:var(--muted);margin-top:2px}.work-note{display:flex;align-items:center;gap:10px;margin:47px 0 0;padding-bottom:32px;border-bottom:1px solid var(--line);color:var(--muted);font-size:12px}.tiny-star{font-size:22px;color:var(--accent)}.work-note a{margin-left:auto;font-size:11px}.hover-preview{position:fixed;z-index:20;width:min(460px,40vw);pointer-events:none;background:var(--paper);padding:9px;box-shadow:0 20px 80px #17171330,0 0 0 1px #25252215;opacity:0;visibility:hidden;transform:translateY(8px) rotate(1.2deg);transition:opacity .18s,transform .22s,visibility .18s;left:0;top:0}.hover-preview.visible{opacity:1;visibility:visible;transform:translateY(0) rotate(1.2deg)}.preview-media{background:var(--card-bg);height:min(490px,58vh);display:flex;align-items:center;justify-content:center}.preview-media img{width:100%;height:100%;object-fit:contain}.preview-caption{display:flex;justify-content:space-between;padding:11px 3px 3px;font-size:12px}.about{padding-top:110px;padding-bottom:110px;display:grid;grid-template-columns:1fr 2fr;gap:70px}.section-kicker{font-size:11px;text-transform:uppercase;letter-spacing:.08em}.about-art{position:relative;display:flex;align-items:center;justify-content:center;max-width:290px;height:270px;font:500 180px/1 var(--display);letter-spacing:-24px}.about-art span:first-child{transform:rotate(-13deg);display:inline-block}.about-art span:nth-child(2){color:var(--accent);transform:rotate(13deg);display:inline-block}.about-art i{font-style:normal;position:absolute;font-size:35px;letter-spacing:0;right:12px;bottom:40px;transform:rotate(15deg)}.about-caption{font-size:11px;color:var(--muted)}.about-main{max-width:740px}.about h2{font:500 clamp(32px,3.8vw,56px)/1.13 var(--display);letter-spacing:-.06em;margin:0 0 27px}.about-lead{font-size:19px;line-height:1.55;letter-spacing:-.3px;margin-bottom:15px}.about-copy{font-size:14px;line-height:1.7;color:var(--muted);max-width:610px}.text-link{font-size:12px;border-bottom:1px solid var(--ink);padding-bottom:4px;display:inline-block;transition:color .2s}.about .text-link{margin-top:10px}.experience{margin-top:55px}.experience h3,.education h3{font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:500;margin:0 0 15px}.experience-row{border-top:1px solid var(--line);padding:16px 0;display:flex;justify-content:space-between;gap:20px}.experience-row strong{font-size:14px;display:block;font-weight:500}.experience-row span{font-size:12px;color:var(--muted)}.experience-row time{font-size:11px;color:var(--muted);white-space:nowrap;padding-top:3px}.experience-row time span{font-size:11px}.education{border-top:1px solid var(--line);padding-top:25px;margin-top:10px}.education strong{font-size:14px;font-weight:500}.education p{font-size:12px;line-height:1.8;color:var(--muted)}.contact{border-top:1px solid var(--ink);padding-top:29px;padding-bottom:70px}.contact-top{display:flex;justify-content:space-between;align-items:center}.contact-top>span:last-child{font-size:32px;color:var(--accent)}.contact-title{font:500 clamp(70px,12vw,185px)/1.2 var(--display);letter-spacing:-.07em;display:flex;align-items:center;justify-content:space-between;padding:20px 0 25px}.contact-arrow{font-size:.7em;transition:transform .3s,color .3s}.contact-title:hover .contact-arrow{transform:translate(8px,-8px);color:var(--accent)}.contact-bottom{display:flex;justify-content:space-between;align-items:end}.contact-bottom p{font-size:13px;color:var(--muted);margin:0}.contact-bottom .text-link{font-size:14px}footer{border-top:1px solid var(--line);padding-block:22px;display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--muted)}footer>a{font-size:20px;color:var(--ink)}.project-dialog{border:0;background:var(--paper);color:var(--ink);padding:0;width:100%;height:100%;max-width:100%;max-height:100%;margin:0;overscroll-behavior:contain}.project-dialog::backdrop{background:#25252280}.dialog-top{position:sticky;top:0;z-index:2;padding:15px 4%;border-bottom:1px solid var(--line);background:#f4f3eef5;backdrop-filter:blur(15px);display:flex;justify-content:space-between;align-items:center}.dialog-back{font-size:12px}.dialog-back>span:first-child{margin-right:9px}.dialog-close{width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:transparent;font-size:28px;line-height:1}.dialog-close:hover{background:var(--ink);color:var(--paper)}.dialog-content{max-width:1300px;width:92%;margin:auto}.dialog-heading{padding:60px 0 45px}.dialog-heading h2{font:500 clamp(35px,6vw,80px)/1.1 var(--display);letter-spacing:-.06em;margin:18px 0}.dialog-heading>p:last-child{color:var(--muted);max-width:600px;font-size:15px}.project-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.gallery-item{margin:0;background:#e7e7e2;display:flex;align-items:center;justify-content:center;min-width:0}.gallery-item:first-child,.gallery-item.landscape{grid-column:1/-1}.gallery-item img{display:block;width:100%;height:auto;max-height:90vh;object-fit:contain}.next-project{margin:60px 0;width:100%;display:grid;grid-template-columns:1fr auto;gap:12px;background:none;border:0;border-top:1px solid var(--line);text-align:left;padding:35px 0}.next-project>span:first-child{grid-column:1/-1;color:var(--muted);font-size:12px}.next-project strong{font:500 clamp(25px,4vw,52px)/1.1 var(--display);letter-spacing:-.05em}.next-project>span:last-child{font-size:35px}.empty{grid-column:1/-1}.project-card{animation:appear .45s both;animation-delay:calc(var(--i,0)*35ms)}@keyframes appear{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1750px){h1{font-size:163px}}@media(max-width:1000px){.wrap{width:calc(100% - 56px)}.hero-description{margin-left:0}.hero-role{font-size:23px}.project-grid{gap:30px 16px}.project-title{font-size:13px}.about{gap:35px;grid-template-columns:1fr 2fr}.about-art{font-size:140px;height:230px}.hover-preview{width:40vw}}@media(max-width:700px){.wrap{width:calc(100% - 36px)}.site-header{height:82px}.wordmark{font-size:36px;width:55px}nav{gap:21px}nav a{font-size:12px}.language{font-size:11px;padding-left:10px}.hero{padding-top:27px;padding-bottom:42px}.hero-eyebrow{font-size:10px;gap:10px}.hero-eyebrow>span:first-child{max-width:180px}.location{gap:5px}h1{font-size:10.3vw;margin:28px 0 24px;letter-spacing:-.075em}.name-star{font-size:.25em;margin:3px 0 0 8px}.hero-bottom{grid-template-columns:1fr auto}.hero-role{font-size:22px;letter-spacing:-.7px}.hero-description{grid-row:2;grid-column:1;margin-top:20px;font-size:12px}.hero-scroll{grid-row:1/3;grid-column:2;width:39px;height:39px}.section-heading{padding:20px 0 15px}.section-heading h2{font-size:18px}.work-hint{display:none}.work-toolbar{margin-bottom:22px}.filters{gap:5px}.filter{font-size:10px;padding:7px 11px}.index-label{display:none}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 13px}.project-visual{aspect-ratio:.85}.project-title{font-size:12px;line-height:1.35}.project-type{font-size:10px;line-height:1.3;margin-top:5px}.project-number{display:none}.project-meta{margin-top:10px}.project-open{width:26px;height:26px;font-size:16px;right:8px;bottom:8px;opacity:1;transform:none}.work-note{font-size:10px;gap:7px;margin-top:30px}.work-note a{font-size:10px}.about{grid-template-columns:1fr;gap:25px;padding-top:65px;padding-bottom:65px}.about-aside{display:flex;justify-content:space-between;align-items:center}.about-art{display:none}.about-caption{font-size:10px}.about h2{font-size:38px}.about-lead{font-size:17px}.about-copy{font-size:13px}.experience{margin-top:38px}.contact{padding-top:23px;padding-bottom:40px}.contact-title{font-size:18vw;padding-block:26px}.contact-bottom p{font-size:12px}.contact-bottom .text-link{font-size:12px}footer{font-size:9px;gap:10px}footer>span:nth-child(2){display:none}.dialog-heading{padding:40px 0 30px}.dialog-heading h2{font-size:38px}.dialog-heading>p:last-child{font-size:13px}.project-gallery{gap:12px}.gallery-item{grid-column:1/-1}.dialog-top{padding-inline:4%}.hover-preview{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

/* Theme controls and shared surfaces. Artwork keeps its original colours. */
:root{color-scheme:light;--surface-glass:#f4f3eef5;--preview-shadow:0 20px 80px #17171330,0 0 0 1px #25252215;--number:#74746e;--selection:#f2b7c5}
:root[data-theme=dark]{color-scheme:dark;--paper:#1c1d1b;--ink:#f3f0e9;--muted:#a6a79d;--line:#3b3d37;--accent:#f07997;--surface-glass:#1c1d1bf5;--preview-shadow:0 20px 80px #0009,0 0 0 1px #ffffff20;--number:#a6a79d;--selection:#673749}
::selection{background:var(--selection);color:var(--ink)}
.header-actions{display:flex;align-items:center;gap:18px}
.header-actions .language{padding:10px 0}
.theme-toggle{width:34px;height:34px;border:1px solid var(--line);border-radius:50%;background:transparent;display:grid;place-items:center;transition:background .2s,color .2s,border-color .2s}
.theme-toggle:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.theme-icon-sun{display:none}
[data-theme=dark] .theme-icon-moon{display:none}
[data-theme=dark] .theme-icon-sun{display:block}
.project-number{color:var(--number)}
.hover-preview{box-shadow:var(--preview-shadow)}
.dialog-top{background:var(--surface-glass)}
@media(max-width:700px){.header-actions{gap:10px}.theme-toggle{width:30px;height:30px}nav{gap:16px}}

/* Icons follow their surrounding type size and theme without font fallback. */
.ui-symbol{display:inline-block;width:1em;height:1em;vertical-align:-.125em;flex-shrink:0;letter-spacing:0}
