:root{--paper:#f6f6f4;--ink:#171717;--muted:#606060;--line:rgba(0,0,0,.12);--accent:#171717;--sky:#777;--ice:#ddd;--display:'Space Grotesk',Arial,sans-serif;--serif:var(--display);--sans:'Inter',Arial,sans-serif}
body{background:var(--paper);color:var(--ink);max-width:none}
body:after{content:"";position:fixed;inset:0;z-index:100;pointer-events:none;opacity:.035;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23888' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}
h1,h2,h3,h4,.hero h1,.hero-copy h2,.section-head h2,.about h2,.contact h2,.journey h3,.lens-heading h3,.case-title{font-family:var(--display);font-weight:500;letter-spacing:-.04em}
h1 em,h2 em,h3 em,h4 em,em{font-family:var(--display);font-style:normal;font-weight:inherit}
.eyebrow,.skill-index,.collection-count,.timeline-date,.practice-date,.card-number,.hero-aside,.hero-footnote,.case-meta dt{font-family:var(--sans);font-size:11px;font-weight:500;letter-spacing:.15em;text-transform:uppercase}
.header-shell .header{background:rgba(246,246,244,.96);border-left:1px solid var(--line);border-right:1px solid var(--line);padding-left:22px;padding-right:22px}
.header-resume,.floating-resume,.floating-navigation button{border-radius:0}.header-resume{border:1px solid var(--line)}
.hero,.section,.contact{position:relative;border-top:1px solid var(--line);background:var(--paper)}
.hero:before,.section:before,.contact:before{content:"";position:absolute;top:0;bottom:0;left:4.5%;right:4.5%;border-left:1px solid var(--line);border-right:1px solid var(--line);pointer-events:none}
.section:after,.contact:after{content:"+";position:absolute;top:-15px;left:calc(4.5% - 7px);font:24px var(--sans);color:#717171;background:var(--paper);line-height:28px}
.hero-name{padding:40px 22px;border-bottom:1px solid var(--line);align-items:center}
.hero-name h1{font-size:clamp(3.5rem,13.5vw,13rem);line-height:.9;letter-spacing:-.055em;margin-left:0;font-weight:600}
.hero-aside{padding-left:25px;border-left:1px solid var(--line);max-width:290px;font-size:10px}
.availability{display:flex;align-items:center;gap:9px;margin-bottom:22px;letter-spacing:.1em;font-size:10px}
.availability i{width:7px;height:7px;flex:none;border-radius:50%;background:#4b9663;animation:status-pulse 2.4s ease-in-out infinite}
@keyframes status-pulse{50%{box-shadow:0 0 0 5px rgba(75,150,99,.12);opacity:.55}}
.name-period{color:var(--ink)}
.showreel{margin:0;border-bottom:1px solid var(--line)}
.hero-grid{min-height:0;display:block}.hero-copy{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));max-width:none;padding:44px 22px 20px;gap:28px 24px}
.hero-copy .eyebrow{grid-column:1/-1}.hero-copy h2{grid-column:1/10;font-size:clamp(3.5rem,8vw,8.5rem);line-height:.92;letter-spacing:-.05em;margin:0 0 18px}
.hero-copy h2 em{color:#696969}.hero-copy>p{grid-column:7/-1;max-width:560px;font-size:18px;border-left:1px solid var(--line);padding-left:25px}
.hero-copy .round-link{grid-column:1/7;grid-row:3;align-self:start;margin:0}.hero-footnote{grid-column:1/-1;margin:0;padding-top:20px;border-top:1px solid var(--line)}
.round-icon,.image-arrow{border-radius:0}
.section-head{padding:0 22px 35px;margin:0;border-bottom:1px solid var(--line);position:relative}
.section h2,.about-copy h2{font-size:clamp(3rem,6.5vw,7rem);line-height:.96;font-weight:500}
.section-head .eyebrow{margin-bottom:28px}.section-head>p{font-size:16px;max-width:270px;padding-left:24px;border-left:1px solid var(--line)}
.section-index{position:absolute;left:-.16em;top:-.55em;transform:translateY(-35%);font-family:var(--display);font-size:clamp(64px,8vw,118px);line-height:1;letter-spacing:-.08em;color:#b0b0ad;pointer-events:none}
.collection-nav.collection-cards{gap:0;margin:0 0 36px}
.collection-nav .collection-choice{border:1px solid var(--line);border-top:0;min-height:160px;background:#eee;gap:16px;padding:22px}
.collection-nav .collection-choice+.collection-choice{border-left:0}.collection-label{font-family:var(--display);font-size:24px;padding:0;line-height:1.05}.collection-label br{display:none}
.collection-choice:after{background:linear-gradient(180deg,rgba(0,0,0,.3),rgba(0,0,0,.8))}
#project-grid.bento-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:165px;gap:14px;padding:0 15px 15px}
.bento-grid .project-card{grid-column:span 4;grid-row:span 2;display:flex;flex-direction:column;position:relative;min-width:0;min-height:0;background:#eeeeeb;border:1px solid var(--line);overflow:hidden;margin:0;padding:0}
.bento-grid .project-card:after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath filter='url(%23g)' opacity='.6' d='M0 0h120v120H0z'/%3E%3C/svg%3E")}
.bento-grid .project-card.is-featured{grid-column:span 8;grid-row:span 4;background:#e5e5e1}
.bento-grid .project-card:nth-child(5),.bento-grid .project-card:nth-child(8),.bento-grid .project-card:nth-child(11){grid-row:span 3}
.bento-grid .project-image,.bento-grid .is-featured .project-image{position:relative;flex:1;min-height:0;width:100%;aspect-ratio:auto;overflow:hidden;border-bottom:1px solid var(--line)}
.bento-grid .project-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.bento-grid .card-meta,.bento-grid .is-featured .card-meta{display:flex;align-items:start;justify-content:space-between;gap:12px;padding:18px 20px;flex:none;background:transparent}
.bento-grid .card-meta h3{font-size:clamp(21px,2vw,30px);line-height:1.05;font-weight:500;margin:0}
.bento-grid .is-featured h3{font-size:clamp(32px,4vw,60px);max-width:none}
.bento-grid .card-meta p{font-size:11px;letter-spacing:.08em;text-transform:uppercase;margin-top:9px;color:#606060}
.bento-grid .card-number{position:static;font-size:10px;color:#626262;white-space:nowrap}
.bento-grid .is-featured .card-number{display:none}
.bento-grid .featured-description{font-size:15px;line-height:1.55;max-width:500px;margin-top:18px;color:#494949}
.bento-grid .project-card:not(.is-featured) .featured-description,.bento-grid .project-card:not(.is-featured) .featured-link{display:none}
.bento-grid .featured-link{font-size:11px;letter-spacing:.12em;text-transform:uppercase;margin-top:17px}
.finalist-badge{position:absolute;top:18px;left:18px;right:18px;width:fit-content;max-width:calc(100% - 36px);padding:10px 12px;background:#171717;color:#fff;font-size:10px;letter-spacing:.1em;text-transform:uppercase;line-height:1.6}
.bento-grid .enhanced-label{top:auto;bottom:15px;left:15px;right:auto;background:rgba(255,255,255,.85);color:#333;font-size:9px}
.bento-grid .image-arrow{right:15px;bottom:15px;width:34px;height:34px;font-size:20px}
.about-image,.about-copy,.about-details>div,.making-section,.recognition-section{padding:24px;border:1px solid var(--line)}
.about{gap:0}.about-copy{border-left:0}.about-details{gap:0}.about-details>div+div{border-left:0}
.journey-heading{padding:0 24px}.journey-track{margin-right:24px;margin-left:30px}
.practice-notes{border-top:1px solid var(--line)}.timeline-step.is-reached:before{background:#222;border-color:#222}.journey-line span{background:#222}
.skills-branches{gap:0}.toolkit-entry{padding:24px 16px;border-right:1px solid var(--line)}.toolkit-entry:last-child{border-right:0}
.download-grid{gap:0}.download-grid>a{background:transparent}.download-grid>a+a{border-left:0}
.contact{background:#171717;color:#f4f4f2}.contact:before{border-color:rgba(255,255,255,.12)}.contact:after{background:#171717;color:#aaa}
.contact h2{font-size:clamp(3.4rem,8vw,8.5rem);line-height:.95;font-weight:500}.contact .eyebrow,.contact h2 em,.contact .email,.contact footer{color:inherit}
.cinema-ambient{filter:grayscale(1) blur(45px)}.cinema-screen,.cinema-frame{border-radius:0}.cinema-meta{padding:25px;border:1px solid var(--line)}#cinema-title{font-family:var(--display);font-weight:500}
.lens-heading{padding-left:22px;padding-right:22px}.photo-card{border:1px solid var(--line)}.photo-label{padding:14px}
.case-nav{background:#171717;color:#fff}.case-discipline{color:#ccc}.case-intro,.case-chapter,.case-footer{border-bottom:1px solid var(--line)}.case-meta>div{border-left:1px solid var(--line);padding-left:18px}
.case-intro h1{font-family:var(--display);font-size:clamp(3.5rem,8vw,8.5rem);line-height:.92}
.clip-reveal{clip-path:inset(48% 0 48% 0);transition:clip-path .7s cubic-bezier(.22,.7,.2,1)}
.clip-reveal.is-unmasked,.clip-reveal:focus-within{clip-path:inset(0)}
@media(max-width:1000px){.hero-name{display:block}.hero-aside{display:flex;gap:25px;max-width:none;border-left:0;padding:24px 0 0;font-size:9px}.availability{margin:0}.hero-copy h2{grid-column:1/-1}.hero-copy>p{grid-column:6/-1}.hero-copy .round-link{grid-column:1/6}.bento-grid .project-card{grid-column:span 6}.bento-grid .is-featured{grid-column:span 12!important;grid-row:span 4}.bento-grid .project-card:nth-child(n+2){grid-row:span 2}}
@media(max-width:600px){.hero:before,.section:before,.contact:before{left:6%;right:6%}.hero-name{padding:32px 14px 24px}.hero-name h1{font-size:20vw}.hero-aside{display:block;font-size:9px}.availability{margin-bottom:16px}.hero-copy{display:flex;flex-direction:column;padding:30px 14px;gap:22px}.hero-copy h2{font-size:clamp(2.5rem,10.2vw,4rem);line-height:.95;margin:0;overflow-wrap:normal}.hero-copy>p{padding-left:14px;font-size:16px}.hero-copy .round-link{order:3}.hero-footnote{display:none}.section-head{padding:0 14px 28px}.section h2,.about-copy h2{font-size:clamp(2.3rem,9.5vw,3.8rem);line-height:.98}.section-head>p{padding:0;border:0}.section-index{font-size:60px;left:-8px;top:-17px;color:#b5b5b1}.collection-nav.collection-cards{grid-template-columns:1fr;margin-bottom:20px}.collection-nav .collection-choice{min-height:106px;padding:18px;border:1px solid var(--line);border-top:0}.collection-nav .collection-choice+.collection-choice{border-left:1px solid var(--line)}.collection-label{font-size:21px}.collection-count{font-size:9px}.collection-arrow{bottom:18px}#project-grid.bento-grid{grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:auto;gap:16px;padding:0 0 16px}.bento-grid .project-card,.bento-grid .project-card.is-featured{grid-column:span 12!important;grid-row:auto!important}.bento-grid .project-image{flex:none;aspect-ratio:1.35}.bento-grid .is-featured .project-image{flex:none;aspect-ratio:1.05}.bento-grid .card-meta{padding:18px 14px}.bento-grid .card-meta h3{font-size:25px}.bento-grid .is-featured h3{font-size:36px}.finalist-badge{top:12px;left:12px;right:12px;padding:8px;font-size:9px;max-width:calc(100% - 24px)}.bento-grid .featured-description{font-size:15px}.about-image,.about-copy,.about-details>div,.making-section,.recognition-section{padding:22px 14px;border:1px solid var(--line)}.about-copy{border-bottom:0}.about-details>div+div{border-left:1px solid var(--line)}.journey-heading{padding:0 14px}.journey-track{margin-left:20px;margin-right:14px}.toolkit-entry{border-right:0;padding-left:0;padding-right:0}.download-grid>a+a{border-left:1px solid var(--line)}.contact h2{font-size:clamp(2.5rem,10.5vw,4rem)}.cinema-meta{padding:20px 14px}.case-intro h1{font-size:clamp(2.8rem,12vw,4.5rem)}}
@media(prefers-reduced-motion:reduce){.availability i{animation:none}.clip-reveal{clip-path:none;transition:none}}

/* Observe the full tile; reveal only its media so tall tiles start at the viewport edge. */
.project-card.clip-reveal,.photo-card.clip-reveal,.case-figure.clip-reveal,.showreel.clip-reveal{clip-path:none}
.project-card.clip-reveal .project-image,.photo-card.clip-reveal img,.case-figure.clip-reveal img,.showreel.clip-reveal video{clip-path:inset(48% 0 48% 0);transition:clip-path .7s cubic-bezier(.22,.7,.2,1)}
.project-card.is-unmasked .project-image,.photo-card.is-unmasked img,.case-figure.is-unmasked img,.showreel.is-unmasked video,.project-card:focus-within .project-image{clip-path:inset(0)}
@media(prefers-reduced-motion:reduce){.clip-reveal img,.clip-reveal video,.clip-reveal .project-image{clip-path:none!important;transition:none!important}}
