@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700;750;800&family=IBM+Plex+Mono:wght@400;500&display=swap');

:root{color-scheme:dark;--background:#151718;--surface:#1d2021;--text:#f4f5f1;--muted:#b4bab8;--line:#363b3a;--accent:#037cfb;--accent-readable:#037cfb;--accent-hover:#006bdf;--on-accent:#080d14;--font:'DM Sans',Arial,sans-serif;--mono:'IBM Plex Mono',monospace}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:2rem}
body{margin:0;background:var(--background);color:var(--text);font-family:var(--font);font-size:1rem;line-height:1.6;-webkit-font-smoothing:antialiased}
::selection{background:var(--accent);color:var(--on-accent)}
a{color:inherit;text-decoration:none}
button,a,summary{-webkit-tap-highlight-color:transparent}
a:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:6px}
p,h1,h2,h3,h4{margin:0}
h1,h2,h3{font-weight:550;letter-spacing:-.045em;line-height:1.06}
.shell{width:min(100% - 7rem,1320px);margin-inline:auto}
.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}
.skip-link{position:fixed;top:1rem;left:1rem;z-index:10;background:var(--accent);color:var(--on-accent);padding:.7rem 1rem;transform:translateY(-200%)}
.skip-link:focus{transform:translateY(0)}
.header{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding-block:1.7rem;border-bottom:1px solid var(--line)}
.identity{display:flex;align-items:center;gap:.8rem;font-size:1rem;font-weight:550;letter-spacing:-.025em}
.monogram{display:grid;place-items:center;width:2.8rem;height:2.8rem;background:var(--accent);color:var(--on-accent);font-size:1.35rem;font-weight:750;border-radius:6px;letter-spacing:-.075em;padding-right:.2rem}
nav{display:flex;align-items:center;gap:2.5rem;font-size:.9rem}
nav a{position:relative;padding-block:.3rem}
nav a::after{content:'';position:absolute;left:0;bottom:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .2s}
nav a:hover::after{transform:scaleX(1)}
.nav-contact{color:var(--accent-readable)}
.eyebrow,.project-category,.label,.visual-topline,.visual-caption,.model-label,.expertise-index,.experience-date{font-family:var(--mono);font-weight:400}
.eyebrow{font-size:.875rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.hero{padding-top:4.75rem}
.hero-label{display:flex;justify-content:space-between;gap:1rem}
.hero h1{font-size:clamp(3.3rem,7.8vw,7.4rem);margin-block:2.5rem 2.4rem;letter-spacing:-.06em;line-height:1.03;max-width:100%}
.hero h1 span{color:var(--accent)}
.hero-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:3rem;padding-bottom:4.5rem}
.hero-description{font-size:1.25rem;line-height:1.65;max-width:36rem;color:#d0d4d1;letter-spacing:-.01em}
.hero-actions{display:flex;flex-direction:column;align-items:flex-start;gap:1.25rem;padding-right:3rem;flex-shrink:0}
.button{display:inline-flex;justify-content:center;align-items:center;min-height:3.4rem;border:1px solid transparent;padding:.85rem 1.55rem;border-radius:4px;font-size:1rem;font-weight:550;transition:background .2s,transform .2s}
.button-accent{background:var(--accent);color:#fff}
.button-accent:hover{background:var(--accent-hover);transform:translateY(-2px)}
.text-link{font-size:.9rem;text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px;transition:color .2s}
.text-link:hover{color:var(--accent-readable)}
.hero-footer{border-block:1px solid var(--line);padding-block:1.3rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;font-size:.875rem}
.label{color:var(--muted);font-size:.75rem;margin-right:1.5rem;text-transform:uppercase;letter-spacing:.045em}
.hero-specialties{color:var(--muted)}
.hero-specialties span{display:inline-block;margin-inline:.55rem;color:#737c77}
.section{padding-block:6rem}
.section-heading{display:grid;grid-template-columns:1fr 2.25fr;gap:2rem;margin-bottom:3.5rem}
.section-heading>.eyebrow{padding-top:.55rem}
h2{font-size:clamp(2.3rem,4.3vw,4rem)}
.section-intro{max-width:36rem;margin-top:1.5rem;color:var(--muted);font-size:1.05rem}
.work-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:3.5rem 2rem;align-items:start}
.work-card{min-width:0}
.work-image{display:block;position:relative;aspect-ratio:1.45;overflow:hidden;border:1px solid #424842;border-radius:6px;background:var(--surface)}
.work-image img{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top;transition:filter .2s}
.work-image:hover img{filter:brightness(1.06)}
.work-image:focus-visible{outline-offset:5px}
.work-card-body{padding-top:1.5rem}
.project-category{color:var(--muted);font-size:.8rem;margin-bottom:.7rem;line-height:1.7}
.work-card h3{font-size:clamp(1.8rem,2.65vw,2.5rem);letter-spacing:-.04em;line-height:1.15;margin-bottom:.85rem}
.work-description{font-size:1.05rem;line-height:1.7;color:var(--muted);max-width:35rem}
.tags{display:flex;flex-wrap:wrap;gap:.5rem;padding:0;margin:1.25rem 0;list-style:none}
.tags li{border:1px solid #414644;border-radius:3px;font-size:.75rem;padding:.25rem .6rem;color:#cbd0cc}
.work-card details{margin-top:1.25rem}
summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;padding:.7rem 0;font-size:.9rem;border-bottom:1px solid var(--line)}
summary::-webkit-details-marker{display:none}
summary:hover{color:var(--accent-readable)}
.disclosure-icon{font-size:1.5rem;font-weight:400;line-height:1;transition:transform .2s}
details[open] .disclosure-icon{transform:rotate(45deg);color:var(--accent)}
.project-notes{padding-top:1.4rem;max-width:35rem}
.project-notes h4{font-size:.9rem;font-weight:600;margin-top:1.25rem;margin-bottom:.5rem}
.project-notes h4:first-child{margin-top:0}
.project-notes p{font-size:1rem;color:var(--muted);line-height:1.75}
.work-links{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;margin-top:1.1rem}
.work-links a{font-size:.875rem;text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px;line-height:1.8;padding-block:.3rem}
.work-links a:hover{color:var(--accent-readable)}
.work-credit{border-top:1px solid var(--line);margin-top:3.5rem;padding-top:1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem}
.work-credit p{font-size:.875rem;color:var(--muted);line-height:1.9}
.work-credit p a{color:var(--text);text-decoration:underline;text-underline-offset:3px}
.expertise{border-block:1px solid var(--line)}
.expertise-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem}
.expertise-grid article{border-top:1px solid #525a50;padding-top:1.25rem;display:flex;flex-direction:column}
.expertise-index{font-size:.75rem;color:var(--accent-readable);margin-bottom:1.75rem}
.expertise-grid h3{font-size:1.4rem;line-height:1.2;letter-spacing:-.03em;margin-bottom:1rem}
.expertise-grid p{color:var(--muted);font-size:1rem;line-height:1.75}
.expertise-grid .skill-list{margin-top:auto;padding-top:1.5rem;font-size:.8rem;color:#d8ded7;line-height:1.8}
.about-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:6rem}
.about-copy p{color:var(--muted);font-size:1.05rem;margin-bottom:1.5rem;line-height:1.8;max-width:35rem}
.about-copy .about-lead{font-size:1.6rem;color:var(--text);line-height:1.5;letter-spacing:-.025em}
.about-stats{display:grid;grid-template-columns:1fr 1fr;gap:2rem;padding-top:1.5rem;margin-top:1.5rem;border-top:1px solid var(--line)}
.about-stats strong{font-size:3.5rem;font-weight:500;line-height:1;letter-spacing:-.05em;color:var(--accent);display:block}
.about-stats span{display:block;font-size:.875rem;color:var(--muted);margin-top:.75rem}
.experience-item{border-top:1px solid var(--line);padding:1.4rem 0 1.5rem}
.experience-date{font-size:.75rem;color:var(--muted);display:block;margin-bottom:.6rem}
.experience-item h3{font-size:1.15rem;letter-spacing:-.025em;line-height:1.3;font-weight:500}
.experience-item p{font-size:.9rem;color:var(--muted);margin-top:.35rem}
.contact{background:var(--accent);color:#fff;margin-top:1rem}
.contact-inner{padding-block:4rem 4.5rem}
.contact .eyebrow{color:inherit}
.contact-content{display:flex;justify-content:space-between;align-items:flex-end;gap:3rem;margin-top:2rem}
.contact h2{font-size:clamp(2.6rem,5.1vw,4.6rem);letter-spacing:-.045em}
.contact-links{display:flex;flex-direction:column;align-items:flex-start;gap:1rem;padding-bottom:.3rem}
.email-link{font-size:clamp(1rem,1.7vw,1.4rem);font-weight:500;border-bottom:1px solid currentColor;padding-bottom:.3rem;overflow-wrap:anywhere}
.contact .text-link:hover{color:#fff}
.contact a:focus-visible{outline-color:#fff}
.footer{display:flex;justify-content:space-between;gap:1rem;align-items:center;font-size:.8rem;color:var(--muted);padding-block:1.5rem}
.footer a:hover{color:var(--accent-readable)}

@media(min-width:1500px){.hero h1{font-size:7.8rem}}
@media(max-width:1100px){.shell{width:calc(100% - 4rem)}.hero-actions{padding-right:0}.work-grid{gap:3rem 1.5rem}.section-heading{grid-template-columns:1fr 2.8fr}.expertise-grid{grid-template-columns:1fr 1fr;gap:2.5rem 3rem}.expertise-grid .skill-list{padding-top:1rem}.about-grid{gap:3rem}.contact-content{align-items:flex-start;flex-direction:column;gap:2rem}}
@media(max-width:767px){.shell{width:calc(100% - 2.5rem)}.header{padding-block:1.1rem;gap:1rem}.identity{gap:.55rem;font-size:.9rem}.monogram{width:2.3rem;height:2.3rem;font-size:1.15rem}nav{gap:1rem;font-size:.875rem}.hero{padding-top:3rem}.hero-label{font-size:.75rem;flex-wrap:wrap;gap:.5rem 1rem}.hero h1{font-size:clamp(2.3rem,8.5vw,4.1rem);margin-block:2rem 1.75rem;letter-spacing:-.055em;line-height:1.12}.hero-bottom{flex-direction:column;align-items:flex-start;gap:1.75rem;padding-bottom:2.5rem}.hero-description{font-size:1.05rem;max-width:32rem}.hero-actions{flex-direction:row;align-items:center;flex-wrap:wrap;gap:1.2rem}.hero-actions .text-link{font-size:.875rem}.button{font-size:.9rem;min-height:3rem;padding:.7rem 1.1rem}.hero-footer{align-items:flex-start;flex-direction:column;gap:.65rem;font-size:.8rem}.label{display:block;margin-right:0;margin-bottom:.3rem}.hero-specialties span{margin-inline:.25rem}.section{padding-block:3.5rem}.section-heading{grid-template-columns:1fr;gap:1.1rem;margin-bottom:2.5rem}.section-heading>.eyebrow{padding-top:0}.eyebrow{font-size:.8rem}h2{font-size:clamp(2.1rem,7vw,3rem)}.section-intro{font-size:1rem;margin-top:1rem}.work-grid{grid-template-columns:1fr;gap:2.75rem}.work-card h3{font-size:2rem}.work-description{font-size:1rem}.work-card-body{padding-top:1.2rem}.work-credit{flex-direction:column;align-items:flex-start;margin-top:2.75rem}.expertise-grid{gap:2rem}.expertise-index{margin-bottom:1rem}.expertise-grid h3{font-size:1.25rem}.expertise-grid p{font-size:1rem}.about-grid{grid-template-columns:1fr;gap:2.5rem}.about-copy .about-lead{font-size:1.35rem}.about-copy p{font-size:1rem}.about-stats strong{font-size:3rem}.contact{margin-top:0}.contact-inner{padding-block:3rem}.contact-content{margin-top:1.5rem}.contact h2{font-size:clamp(2.2rem,7.8vw,3.5rem)}.email-link{font-size:1.15rem}.footer{padding-block:1.25rem}}
@media(max-width:420px){.shell{width:calc(100% - 2rem)}.identity>span:last-child{max-width:5rem;line-height:1.25}.header{gap:.75rem}nav{gap:.8rem}.hero h1{font-size:clamp(2rem,8.5vw,2.8rem)}.expertise-grid{grid-template-columns:1fr}.work-image{aspect-ratio:1.4}.about-stats{gap:1.25rem}.about-stats span{font-size:.8rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
