@import url('/src/styles/tokens.css');
*{box-sizing:border-box}html{scroll-behavior:auto}body{margin:0;font-family:var(--font-body);font-weight:400;background:var(--surface);color:var(--text)}h1,h2,h3,p,figure{margin:0}button,input{font:inherit}button,a,summary{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{border:0;background:none;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}ul{list-style:none;margin:0;padding:0}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible{outline:2px solid currentColor;outline-offset:6px}button[aria-disabled=true]{cursor:default}img,video,iframe{display:block;max-width:100%}[hidden]{display:none!important}
/* Shared semantic text system. Layout selectors do not define independent typefaces. */
.type-h1{font-family:var(--font-display);font-size:var(--size-h1);font-weight:400;line-height:1.04;letter-spacing:-.045em;overflow-wrap:anywhere}
.type-h2{font-family:var(--font-display);font-size:var(--size-h2);font-weight:400;line-height:1.12;letter-spacing:-.035em}
.type-h3{font-family:var(--font-body);font-size:var(--size-h3);font-weight:600;line-height:1.25}
.type-p{font-family:var(--font-body);font-size:var(--size-p);font-weight:400;line-height:1.55}
.link{font-family:var(--font-body);font-size:var(--size-link);font-weight:600;line-height:1.3;letter-spacing:.38em;text-transform:uppercase}
.link--plain{font:inherit;letter-spacing:inherit;text-transform:inherit}.link--pill{display:inline-flex;align-items:center;justify-content:center;min-height:32px;border:1px solid currentColor;border-radius:999px;padding:6px 24px;text-indent:.38em;text-align:center;white-space:nowrap}.link--solid{background:var(--black);color:var(--white);border-color:var(--black)}.link--pending{opacity:.55}
.container{width:100%;padding-inline:var(--page-inset);margin-inline:auto}.grid-12{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--grid-gutter)}
.site-section{position:relative;isolation:isolate;background:var(--surface);color:var(--text);scroll-margin-top:24px}.site-section::before{content:'';position:absolute;inset:0;background-image:var(--section-background,none);background-position:center;background-size:cover;opacity:var(--bg-opacity);pointer-events:none;z-index:-2}.site-section>*:not(.grid-guides){position:relative;z-index:1}.section--home{--section-background:var(--bg-home)}.section--about{--section-background:var(--bg-about)}.section--portfolio{--section-background:var(--bg-portfolio)}.section--experience{--section-background:var(--bg-experience)}.section--skills{--section-background:var(--bg-skills)}.section--contact{--section-background:var(--bg-contact)}.section--category-hero{--section-background:var(--bg-category)}.section--collection{--section-background:var(--bg-collection)}.section--project-intro{--section-background:var(--bg-project)}.section--showreel{--section-background:var(--bg-showreel)}
.grid-guides{position:absolute;inset-block:0;inset-inline:var(--page-inset);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--grid-gutter);pointer-events:none;z-index:-1}.grid-guides span{border-inline:1px dashed var(--guide);min-width:0}
.site-header{min-height:150px;align-items:center;position:relative;gap:20px var(--grid-gutter)}.header-cv{grid-column:1/4}.header-clock{grid-column:5/8;color:var(--muted);font-variant-numeric:tabular-nums;letter-spacing:.38em;font-weight:600;text-transform:uppercase;white-space:nowrap;font-size:var(--size-link)}.site-nav{grid-column:9/-1;display:flex;align-items:center;justify-content:space-between;gap:24px;color:var(--muted)}.menu-toggle{display:none}.skip-link{position:fixed;top:12px;left:16px;background:var(--light-background);color:var(--black);padding:14px;z-index:1000;transform:translateY(-150%)}.skip-link:focus{transform:none}
.section--home{min-height:100svh;display:flex;flex-direction:column}.hero-content{padding-top:clamp(60px,5.7vw,110px)}.hero-title{grid-column:6/-1;grid-row:1;font-size:clamp(50px,6.4vw,124px);text-transform:uppercase}.hero-title span{display:block}.hero-description{grid-column:6/-1;margin-top:22px}.hero-bottom{margin-top:auto;padding-top:100px;padding-bottom:64px;align-items:center}.assistant-open{grid-column:1/4;justify-self:start;min-width:260px}.hero-scroll{grid-column:6/9;color:var(--muted);text-align:center}.hero-contact{grid-column:10/-1;display:flex;justify-content:space-between;gap:24px}
.section--about{padding-block:80px}.about-layout{grid-template-rows:auto auto 1fr;row-gap:90px;min-height:920px;align-items:start}.about-title{grid-column:1/7;grid-row:1;margin-top:120px}.about-copy{grid-column:1/4;grid-row:2;text-transform:uppercase;max-width:390px}.about-portrait{grid-column:9/-1;grid-row:1/4;width:100%;height:100%;min-height:720px}.discipline-browser{grid-column:1/8;grid-row:3;display:grid;grid-template-columns:1fr 1fr;gap:var(--grid-gutter);margin-top:35px}.discipline-tabs{display:flex;flex-direction:column;align-items:flex-start;gap:16px}.discipline-tab{font-weight:400;text-align:left;text-transform:uppercase;opacity:.35;padding:0}.discipline-tab[aria-pressed=true]{opacity:1}.discipline-concepts{text-transform:uppercase}.discipline-concepts .type-h3{font-weight:400}
.media{position:relative;overflow:hidden;background:var(--black);border-radius:var(--media-radius);aspect-ratio:var(--media-ratio,16/9);min-width:0}.theme-dark .media{outline:1px solid rgb(255 255 255 / .12)}
.media__asset{width:100%;height:100%;object-fit:cover}.media video{object-fit:contain}.media__placeholder{position:absolute;inset:0;display:flex;align-items:flex-end;padding:22px;color:rgb(255 255 255 / .6)}.media__placeholder .type-p{font-size:12px}
.section--portfolio{padding-block:clamp(120px,12vw,240px) 100px}.portfolio-index{margin-top:30px;align-items:start}.portfolio-card{min-width:0}.portfolio-card h3{margin-bottom:24px;text-transform:uppercase;font-size:var(--size-p)}.portfolio-card--film{grid-column:1/5;margin-top:150px}.portfolio-card--graphic{grid-column:5/9;margin-top:360px}.portfolio-card--digital{grid-column:9/-1;margin-top:-70px}.portfolio-cover{display:block;letter-spacing:normal;text-transform:none}.portfolio-cover .media{border-radius:8px}
.section--experience{min-height:100svh;display:flex;align-items:center;justify-content:center;padding-block:var(--section-space)}.experience-title{text-align:center;font-size:clamp(20px,1.5vw,28px);margin-bottom:clamp(64px,6vw,110px)}.experience-list{width:fit-content;max-width:100%;margin-inline:auto;display:grid;grid-template-columns:max-content minmax(0,360px);gap:52px 40px}.experience-row{display:grid;grid-column:1/-1;grid-template-columns:subgrid;column-gap:40px}.experience-role{text-align:right}.experience-role .type-h3{text-transform:uppercase;font-size:clamp(12px,.8vw,14px)}.experience-role .type-p{margin-top:6px;text-transform:uppercase;font-size:clamp(12px,.8vw,14px);line-height:1.5}.experience-date{text-transform:uppercase;font-size:11px;margin-bottom:8px;color:var(--muted)}.experience-description{text-transform:uppercase;font-size:clamp(12px,.8vw,14px);line-height:1.5}.data-note{color:var(--muted);font-size:12px!important;margin-top:8px}
.section--skills{padding-block:var(--section-space);min-height:100svh}.skills-layout{position:relative}.skills-title{position:absolute;left:var(--page-inset);top:0;width:32%}.skills-list{display:grid;gap:80px}.skill-summary{list-style:none;cursor:pointer;text-transform:none;letter-spacing:normal}.skill-summary__content{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--grid-gutter);font-weight:400}.skill-summary::-webkit-details-marker{display:none}.skill-index{grid-column:5/7;display:flex;flex-direction:column;gap:5px}.skill-index .type-h3{text-transform:uppercase;font-size:var(--size-p)}.skill-heading{grid-column:7/-1}.skill-heading .type-h2{display:block;text-transform:uppercase}.skill-topics{display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;margin-top:12px;text-transform:uppercase}.skill-topics .type-p{font-size:12px}.skill-panel{margin:48px calc((100% + var(--grid-gutter))/12) 24px}.skill-panel .media{--media-radius:36px}
.section--contact{min-height:100svh;padding-top:clamp(140px,26vw,500px);padding-bottom:80px}.contact-title{grid-column:1/-1;text-transform:uppercase;font-size:8.05vw;white-space:nowrap;letter-spacing:-.055em}.contact-details{grid-column:7/-1;margin-top:100px;letter-spacing:.35em;text-transform:uppercase}.contact-details>.type-p{display:block;font-size:clamp(11px,.72vw,14px);line-height:1.65;overflow-wrap:anywhere}.contact-socials{display:flex;flex-direction:column;gap:12px;margin-top:50px;align-items:flex-start}
.section--category-hero{min-height:100svh;display:flex;flex-direction:column}.category-hero-content{padding-top:clamp(60px,5.7vw,110px)}.category-title{grid-column:6/-1;text-transform:uppercase;font-size:clamp(50px,6.4vw,124px)}.category-description{grid-column:6/-1;margin-top:24px}.category-links{margin-top:auto;padding-block:100px 160px;display:flex;justify-content:space-between;gap:40px}.category-links a{text-transform:uppercase}.section--selected-projects,.section--digital-projects,.section--collection{padding-block:var(--section-space)}.section--showreel{padding-block:var(--section-space)}.section--showreel h2{margin-bottom:24px}.section--showreel .media{border-radius:0}.breadcrumb{display:flex;gap:40px;margin-bottom:80px}.breadcrumb a{font-size:12px}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px 80px;margin-top:130px;align-items:start;padding-inline:calc((100% + var(--grid-gutter))/12)}.project-card{min-width:0}.project-card:nth-child(even){margin-top:240px}.project-card__label{font-size:12px;font-weight:400;text-transform:uppercase;margin-bottom:20px}.project-card__link{display:block;letter-spacing:normal;text-transform:none}.project-card .media{border-radius:28px}.project-card .media__placeholder{padding:20px}.project-intro{padding-block:60px 100px}.project-title{max-width:1400px;margin-bottom:40px;font-size:clamp(44px,6vw,116px)}.project-body{width:var(--project-content-width-mobile,90%);margin-inline:auto;color:var(--black)}.project-block{width:100%;border-radius:0}.project-block:has(img){aspect-ratio:auto}.project-block img{height:auto;object-fit:contain}.project-text{display:grid;grid-template-columns:1fr 1fr;gap:var(--grid-gutter);padding-block:100px}.project-text p{max-width:650px}.project-custom__frame{width:100%;height:var(--embed-height,600px);border:0}.project-navigation,.page-footer{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;padding-block:60px}.page-footer{border-top:1px solid var(--line)}
.assistant-dialog{width:min(440px,calc(100% - 32px));padding:26px;margin:auto 24px 24px auto;border:1px solid var(--black);background:var(--light-background);color:var(--black);max-height:calc(100svh - 40px)}.assistant-dialog::backdrop{background:rgb(0 0 0 / .4)}.dialog-top{display:flex;justify-content:space-between;gap:20px;align-items:center;border-bottom:1px solid #dfd2cb;padding-bottom:24px}.dialog-top .type-h3{font-size:14px}.dialog-close{font-size:10px}.messages{max-height:300px;overflow:auto;padding-block:25px;min-height:160px}.messages .link{display:inline-block;margin-top:20px;font-size:11px}.messages p+p{margin-top:20px}.user-message{text-align:right;font-size:14px;line-height:1.5}.assistant-message{font-size:14px;line-height:1.5}.chat-form{border-top:1px solid #dfd2cb;padding-top:20px}.chat-form label{display:block;margin-bottom:10px}.chat-form>div{display:flex;gap:16px}.chat-form input{min-width:0;width:100%;background:transparent;border:0;border-bottom:1px solid #000;padding:10px 0;font-size:16px}.chat-form button{font-size:10px;white-space:nowrap}.chat-status{margin-top:16px}
@media(min-width:2200px){.container{max-width:2400px}.hero-title,.category-title{font-size:140px}.contact-title{font-size:180px}}
@media(max-width:1200px){:root{--grid-gutter:25px}.header-clock{grid-column:4/8;letter-spacing:.15em}.site-nav{grid-column:8/-1}.site-nav .link{letter-spacing:.2em}.header-cv .link{padding-inline:18px}.hero-title,.category-title{grid-column:5/-1}.hero-description,.category-description{grid-column:5/-1}.assistant-open{grid-column:1/5;min-width:200px}.hero-contact{grid-column:9/-1}.about-title{margin-top:70px}.about-layout{min-height:760px;row-gap:60px}.about-copy{grid-column:1/6}.about-portrait{grid-column:9/-1;min-height:600px}.discipline-browser{grid-column:1/9;gap:24px}.portfolio-card--graphic{margin-top:280px}.project-grid{padding-inline:0;gap:80px 50px}.project-card:nth-child(even){margin-top:150px}.skill-topics{justify-content:flex-start}}
@media(max-width:760px){
 :root{--page-inset:24px;--grid-gutter:16px;--size-h1:clamp(44px,12vw,80px);--size-h2:clamp(22px,5.4vw,34px);--size-h3:15px;--size-p:13px;--size-link:10px;--section-space:80px;--media-radius:18px}
 .grid-guides{grid-template-columns:repeat(12,minmax(0,1fr));gap:8px}.grid-12{grid-template-columns:repeat(12,minmax(0,1fr))}.site-header{min-height:110px}.header-cv{display:none}.header-clock{grid-column:1/11;font-size:10px;letter-spacing:.2em}.menu-toggle{display:block;grid-column:11/-1;justify-self:end;font-size:10px;padding:12px 0}.site-nav{display:none;position:absolute;right:var(--page-inset);top:80px;grid-column:auto;background:var(--surface);border:1px solid var(--line);padding:24px;z-index:10;flex-direction:column;align-items:flex-start}.site-nav.is-open{display:flex}
 .hero-content{padding-top:90px}.hero-title{grid-column:1/-1;font-size:clamp(36px,9.6vw,74px)}.hero-description{grid-column:1/-1;margin-top:24px}.hero-bottom{padding-top:100px;padding-bottom:36px;row-gap:36px}.assistant-open{grid-column:1/8;min-width:0;font-size:9px;padding-inline:18px;justify-self:start}.hero-scroll{grid-column:1/-1;grid-row:2;text-align:left;font-size:9px}.hero-contact{grid-column:8/-1;flex-direction:column;gap:12px;align-items:flex-end}.hero-contact .link{font-size:9px;letter-spacing:.2em}
 .section--about{padding-block:80px}.about-layout{display:flex;flex-direction:column;gap:45px;min-height:0}.about-title{margin:0}.about-copy{max-width:450px}.about-portrait{width:100%;height:auto;min-height:0;aspect-ratio:3/4;order:3}.discipline-browser{width:100%;grid-template-columns:1fr;gap:30px;margin:0}.discipline-tabs{gap:18px}.discipline-tab,.discipline-concepts .type-h3{font-size:14px}.discipline-concepts{line-height:1.4}
 .section--portfolio{padding-block:80px}.portfolio-index{display:flex;flex-direction:column;gap:50px;margin-top:60px}.portfolio-card{margin:0;width:100%}.portfolio-card .media{aspect-ratio:4/5}.portfolio-card h3{font-size:13px;margin-bottom:15px}
 .experience-title{margin-bottom:60px}.experience-list{width:100%;grid-template-columns:minmax(0,1fr);gap:45px}.experience-row{grid-template-columns:1fr;gap:16px}.experience-role{text-align:left}.experience-role .type-p{font-size:12px}.experience-description{font-size:12px}.experience-date{font-size:11px}
 .skills-title{position:static;width:auto;margin-bottom:60px}.skills-list{gap:40px}.skill-summary__content{grid-template-columns:1fr;gap:24px}.skill-index,.skill-heading{grid-column:auto}.skill-index{flex-direction:row;gap:14px;align-items:baseline}.skill-topics{gap:8px 16px}.skill-topics .type-p{font-size:11px}.skill-panel{margin:24px 0 0}.skill-panel .media{aspect-ratio:4/3;--media-radius:20px}
 .section--contact{padding-block:130px 80px;min-height:90svh}.contact-title{font-size:clamp(40px,11.7vw,82px);white-space:normal;overflow-wrap:normal}.contact-details{grid-column:1/-1;margin-top:65px;letter-spacing:.12em}.contact-details>.type-p{font-size:11px}.contact-socials{gap:20px}
 .category-hero-content{padding-top:80px}.category-title{grid-column:1/-1;font-size:clamp(36px,9.6vw,74px)}.category-description{grid-column:1/-1;margin-top:30px}.category-links{flex-direction:column;gap:24px;padding-block:80px 60px}.category-links a{font-size:14px}.project-grid{grid-template-columns:1fr;gap:50px;margin-top:60px;padding:0}.project-card:nth-child(even){margin:0}.project-card .media{aspect-ratio:4/5}.breadcrumb{flex-wrap:wrap;gap:24px;margin-bottom:60px}.breadcrumb a{font-size:10px;letter-spacing:.2em}.section--collection .type-h1{font-size:clamp(36px,10vw,76px)}.project-intro{padding-block:30px 70px}.project-title{font-size:clamp(36px,9vw,68px)}.project-text{grid-template-columns:1fr;gap:30px;padding-block:60px}.project-navigation,.page-footer{gap:28px;padding-block:40px}.project-navigation .link,.page-footer .link{font-size:9px;letter-spacing:.2em}.assistant-dialog{margin:auto}.media__placeholder{padding:18px}.media__placeholder .type-p{font-size:12px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Shared project canvas width: images, videos, text and custom HTML. */
@media(min-width:1024px){.project-body{width:var(--project-content-width,80%)}}

/* Shared keyword styling for project covers and detail pages. */
.type-h4{font-family:var(--font-body);font-size:var(--size-h4);font-weight:400;line-height:1.6}
.project-tags{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:18px;color:var(--muted)}
.project-body>.project-tags{padding-block:24px;margin-top:0}

@media(max-width:760px){.header-home{display:block;grid-column:1/5;grid-row:1}.header-home .link{padding-inline:14px}.header-home+.header-clock{grid-column:5/11;grid-row:1;font-size:8px;letter-spacing:.05em}}

/* Fit graphic project pieces within the viewport without cropping their artwork. */
.project-body[data-project-category="graphic-design"] .project-block:has(img){display:flex;justify-content:center;align-items:center;background:transparent;outline:none}
.project-body[data-project-category="graphic-design"] .project-block img{width:auto;height:auto;max-width:100%;max-height:var(--graphic-image-max-height,100svh);object-fit:contain}

.contact-socials .link{font-size:clamp(10px,.7vw,13px)}
.portfolio-cover--coming-soon{position:relative}
.coming-soon-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgb(0 0 0 / .68);color:#fff;letter-spacing:.16em;border-radius:8px;text-transform:uppercase;pointer-events:none}

.media__embed{position:absolute;inset:0;display:block;border:0}
