@font-face{font-family:Archivo;src:url('./archivo-latin-400-normal.woff2') format('woff2');font-weight:400;font-display:swap}@font-face{font-family:Archivo;src:url('./archivo-latin-500-normal.woff2') format('woff2');font-weight:500;font-display:swap}@font-face{font-family:Plex;src:url('./ibm-plex-mono-latin-400-normal.woff2') format('woff2');font-weight:400;font-display:swap}
:root{color-scheme:dark;--bg:#111210;--text:#f0f1eb;--muted:#a5a69f;--line:#383a33;--accent:#d3eb73;--gutter:clamp(20px,3.2vw,64px)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--bg);color:var(--text);font:400 16px/1.55 Archivo,Arial,sans-serif}body.modal-open{overflow:hidden}button,a,summary{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:6px}button{border:0}img{display:block;max-width:100%;height:auto}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:400}::selection{background:var(--accent);color:var(--bg)}.period{color:var(--accent)}.muted{color:var(--muted)}.micro{font:400 12px/1.55 Plex,monospace;letter-spacing:.035em;text-transform:uppercase}.skip{position:fixed;left:20px;top:-100px;padding:12px;background:var(--accent);color:var(--bg);z-index:100}.skip:focus{top:15px}.header{display:flex;align-items:center;padding:20px var(--gutter);gap:40px;border-bottom:1px solid var(--line)}.monogram{font-size:27px;font-weight:500;letter-spacing:-1.5px}.header-role{font-size:14px;color:var(--muted)}nav{margin-left:auto;display:flex;gap:35px;font-size:14px}nav a{position:relative;padding:8px 0}nav a:after{content:'';position:absolute;bottom:3px;left:0;width:0;height:1px;background:var(--accent);transition:width .2s}nav a:hover:after{width:100%}.intro{padding:30px var(--gutter) 0}.intro-meta{display:flex;justify-content:space-between;color:var(--muted)}h1{font-size:clamp(40px,7.35vw,142px);letter-spacing:-.065em;line-height:1.15;margin:22px 0 30px;white-space:nowrap}.feature-image{display:block;position:relative;width:100%;padding:0;background:#090a09;text-align:left;overflow:hidden}.feature-image img{width:100%;aspect-ratio:2.15;object-fit:cover;object-position:center 44%;transition:transform .8s}.feature-image:hover img{transform:scale(1.025)}.feature-image:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#0006,transparent 30%,transparent 70%,#0003);pointer-events:none}.feature-top{position:absolute;top:25px;left:28px;right:28px;display:flex;justify-content:space-between;z-index:1}.play{position:absolute;right:30px;bottom:28px;display:flex;align-items:center;gap:12px;background:#111c;border:1px solid #fff4;backdrop-filter:blur(12px);padding:10px 17px 10px 10px;border-radius:40px;z-index:1;font-size:14px}.play-icon{width:37px;height:37px;background:var(--accent);color:var(--bg);display:grid;place-content:center;border-radius:50%;font-size:12px;padding-left:2px}.feature-caption{display:flex;justify-content:space-between;align-items:center;padding:22px 0 30px;border-bottom:1px solid var(--line);gap:25px}.feature-caption h2{font-size:clamp(27px,3.4vw,52px);line-height:1.2;letter-spacing:-.04em;margin-top:5px}.feature-detail{display:flex;flex-direction:column;font-size:14px;margin-left:auto;margin-right:9vw}.text-link{display:inline-flex;justify-content:space-between;gap:24px;align-items:center;font-size:14px;border-bottom:1px solid #74766d;padding:10px 0;transition:color .2s}.text-link:hover{color:var(--accent)}.text-link span{font-size:24px;font-weight:400;line-height:1}.section{margin:0 var(--gutter);padding:95px 0}.section-heading{display:grid;grid-template-columns:1fr 2fr auto;align-items:center;gap:20px;margin-bottom:40px}.section-heading>p{color:var(--accent)}.section-heading h2{font-size:clamp(27px,3.6vw,54px);letter-spacing:-.045em;line-height:1.15}.work-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.second-project{padding-top:110px}.project-image{display:block;width:100%;padding:0;position:relative;background:#080908;overflow:hidden}.project-image img{width:100%;aspect-ratio:16/9;object-fit:cover;transition:transform .6s}.project-image:hover img{transform:scale(1.035)}.image-action{position:absolute;top:16px;left:16px;background:#111d;border:1px solid #fff3;padding:8px 12px;font-size:13px;display:flex;gap:20px;align-items:center}.image-action span{color:var(--accent);font-size:11px}.project-title{display:flex;justify-content:space-between;align-items:center;margin-top:18px}.project-title h3{font-size:28px;letter-spacing:-.04em}.project-title .micro{color:var(--muted)}.project-type{font-size:14px;color:var(--accent);margin:4px 0 14px}.project-description{color:var(--muted);max-width:470px;font-size:16px;line-height:1.65}.artwork-note{color:var(--muted);font-size:12px;max-width:620px;margin-top:45px;line-height:1.6}.about{border-top:1px solid var(--line)}.about .section-heading{grid-template-columns:1fr 3fr}.about-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:8vw;align-items:start;margin-top:55px}.portrait{padding-top:5px}.portrait img{width:100%;aspect-ratio:1.2;object-fit:cover;object-position:50% 50%}.portrait figcaption{display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:12px;margin-top:13px}.bio p{margin-bottom:24px;color:var(--muted);max-width:600px;font-size:17px;line-height:1.7}.bio .bio-lead{font-size:clamp(23px,2.6vw,38px);line-height:1.35;letter-spacing:-.025em;color:var(--text);margin-bottom:28px}.bio p a{color:var(--text);border-bottom:1px solid var(--muted)}.bio .text-link{margin-top:8px}.experience{display:grid;grid-template-columns:1fr 3fr;gap:30px;margin-top:90px}.experience>p{color:var(--accent);padding-top:25px}.experience-list{border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line)}summary{cursor:pointer;display:grid;grid-template-columns:1.1fr 1fr 20px;gap:20px;align-items:center;padding:24px 0;list-style:none}summary::-webkit-details-marker{display:none}summary span:first-child{font-size:21px;letter-spacing:-.025em}summary span:nth-child(2){font-size:14px;color:var(--muted)}summary .expand{font-size:24px;line-height:1;color:var(--accent);transition:transform .2s}details[open] .expand{transform:rotate(45deg)}details p{max-width:620px;padding:0 40px 24px 0;color:var(--muted)}.contact{border-top:1px solid var(--line);padding-bottom:75px}.contact-top{display:flex;justify-content:space-between;color:var(--muted)}.contact-top span:first-child{color:var(--accent)}.contact h2{font-size:clamp(60px,11.5vw,175px);line-height:.98;letter-spacing:-.065em;margin:55px 0}.contact-bottom{display:flex;justify-content:space-between;align-items:end;gap:30px}.email{font-size:clamp(17px,2.5vw,38px);letter-spacing:-.025em;border-bottom:1px solid var(--accent);padding-bottom:7px;overflow-wrap:anywhere}.email:hover{color:var(--accent)}.contact-bottom p{font-size:14px;color:var(--muted)}footer{padding:30px var(--gutter);display:flex;justify-content:space-between;gap:25px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}footer div{display:flex;gap:30px}footer a:hover{color:var(--text)}dialog{position:fixed;background:#111210;color:var(--text);border:1px solid var(--line);padding:26px;width:min(1100px,94vw);max-height:94dvh;overflow:auto}dialog::backdrop{background:#000d;backdrop-filter:blur(8px)}.dialog-head{display:flex;justify-content:space-between;gap:25px;align-items:center;margin-bottom:20px}.dialog-head h2{font-size:26px;letter-spacing:-.03em}.close{background:transparent;padding:10px 0 10px 15px;font-size:14px;display:flex;gap:20px;align-items:center}.close span{font-size:28px;line-height:1}.player{aspect-ratio:16/9;background:#000}.player iframe{border:0;width:100%;height:100%}.dialog-foot{display:flex;justify-content:space-between;gap:30px;margin-top:18px;font-size:13px;color:var(--muted)}.dialog-foot a{color:var(--accent);white-space:nowrap;text-decoration:underline;text-underline-offset:4px}
@media(min-width:1800px){body{max-width:2100px;margin:auto}}@media(max-width:900px){.header{gap:25px}.header-role{font-size:14px}.section-heading{grid-template-columns:1fr 2fr}.section-heading>span{display:none}.feature-detail{margin-right:20px}.about-grid{gap:5vw}.portrait figcaption{flex-direction:column;gap:4px}.experience{grid-template-columns:1fr 3fr}.contact-bottom{align-items:start;flex-direction:column}}@media(max-width:600px){html{scroll-padding-top:24px}.header{padding-top:15px;padding-bottom:15px;gap:15px}.header-role{display:none}nav{gap:24px}.intro{padding-top:24px}.intro-meta{gap:14px;align-items:start}.intro-meta span:last-child{text-align:right;max-width:160px}h1{font-size:clamp(29px,7.25vw,44px);margin:25px 0 24px;letter-spacing:-.06em}.feature-image img{aspect-ratio:1.18;object-position:65% center}.feature-top{left:16px;right:16px;top:16px}.play{right:14px;bottom:14px;font-size:14px;padding:7px 12px 7px 7px}.play-icon{width:30px;height:30px}.feature-caption{display:grid;grid-template-columns:1fr auto;gap:15px;padding:20px 0 25px}.feature-caption h2{font-size:30px}.feature-detail{margin:0;font-size:14px;align-self:end}.feature-caption>.text-link{grid-column:1/-1;justify-self:start}.section{padding:60px 0}.section-heading,.about .section-heading{display:flex;flex-direction:column;align-items:start;gap:13px;margin-bottom:28px}.section-heading h2{font-size:35px}.work-grid{grid-template-columns:1fr;gap:40px}.second-project{padding-top:0}.project-title h3{font-size:25px}.project-description{font-size:16px}.artwork-note{margin-top:30px}.about-grid{grid-template-columns:1fr;gap:35px;margin-top:0}.portrait img{aspect-ratio:1.1}.portrait figcaption{gap:5px}.bio .bio-lead{font-size:28px}.bio p{font-size:16px;margin-bottom:20px}.experience{grid-template-columns:1fr;margin-top:50px;gap:20px}.experience>p{padding:0}summary{grid-template-columns:1fr 18px;gap:5px;padding:19px 0}summary span:first-child{font-size:20px}summary span:nth-child(2){grid-row:2;font-size:14px}summary .expand{grid-column:2;grid-row:1/3}details p{font-size:16px;padding-right:20px}.contact h2{font-size:clamp(54px,13.5vw,80px);margin:40px 0}.contact-bottom{gap:28px}.email{font-size:clamp(17px,5.5vw,26px)}footer{flex-direction:column;gap:18px;padding-top:25px;padding-bottom:30px}footer div{gap:25px;flex-wrap:wrap}dialog{padding:17px}.dialog-head h2{font-size:22px}.dialog-foot{flex-direction:column;gap:15px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* Display-led typography, October 2026. */
@font-face{font-family:Syne;src:url('./syne-600.ttf') format('truetype');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:Syne;src:url('./syne-700.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:Manrope;src:url('./manrope-400.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Manrope;src:url('./manrope-500.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap}
body{font-family:Manrope,Arial,sans-serif;line-height:1.65}
h1,h2,h3,.monogram{font-family:Syne,Arial,sans-serif;font-weight:600}
.monogram{font-weight:700;letter-spacing:-.055em;font-size:30px}
h1{font-weight:700;font-size:clamp(3rem,10.2vw,11rem);line-height:.93;letter-spacing:-.055em;text-transform:uppercase;display:flex;flex-direction:column;margin:42px 0 45px;white-space:normal}
h1>span{display:block}h1 .surname{align-self:flex-end}h1 .period{font-size:.72em}
.intro-meta{letter-spacing:.055em}.header-role{font-size:14px}
.feature-caption h2{font-size:clamp(30px,3.7vw,60px);font-weight:600;letter-spacing:-.045em}
.section-heading{grid-template-columns:1fr 2fr auto;align-items:start}.section-heading h2{font-size:clamp(32px,4.3vw,65px);font-weight:600;letter-spacing:-.045em;line-height:1.05}.section-heading>p{padding-top:10px}
.project-title h3{font-size:32px;font-weight:600;letter-spacing:-.04em}.project-type{font-size:14px;margin-top:7px}.project-description{font-size:17px;line-height:1.8;max-width:530px}
.bio .bio-lead{font-family:Syne,Arial,sans-serif;font-size:clamp(26px,2.8vw,41px);font-weight:600;line-height:1.2;letter-spacing:-.025em}.bio p{font-size:17px;line-height:1.8}
summary span:first-child{font-family:Syne,Arial,sans-serif;font-weight:600;font-size:23px;letter-spacing:-.025em}.experience{grid-template-columns:1fr 3fr}summary{grid-template-columns:1fr 1fr 20px}
.contact h2{font-size:clamp(44px,8.4vw,132px);font-weight:600;line-height:1.03;letter-spacing:-.055em}.email{font-size:clamp(17px,2.25vw,35px);letter-spacing:-.02em}.contact-bottom p{line-height:1.8}
@media(max-width:900px){.section-heading{grid-template-columns:1fr 2fr}.feature-detail{margin-right:0}.feature-caption{gap:20px}.feature-caption>.text-link{white-space:nowrap}}
@media(max-width:600px){h1{font-size:clamp(2.25rem,10.1vw,3.8rem);line-height:1.04;letter-spacing:-.045em;margin:32px 0}.intro-meta{font-size:12px;gap:20px}.intro-meta>span{max-width:150px}.feature-caption h2{font-size:28px}.feature-caption{grid-template-columns:1fr}.feature-detail{align-self:start;flex-direction:row;gap:16px;font-size:14px}.feature-caption>.text-link{grid-column:auto}.section-heading h2{font-size:36px;line-height:1.1}.section-heading>p{padding-top:0}.project-title h3{font-size:28px}.project-description,.bio p{font-size:16px;line-height:1.8}.bio .bio-lead{font-size:29px;line-height:1.25}.experience{grid-template-columns:1fr}summary{grid-template-columns:1fr 18px}summary span:first-child{font-size:23px}.contact h2{font-size:clamp(2rem,8.5vw,3.2rem);line-height:1.1;letter-spacing:-.045em}.email{font-size:clamp(16px,5.3vw,25px)}}
