:root{--ink:#11110f;--paper:#f4f2ed;--acid:#dfff3f;--pad:clamp(18px,3vw,48px)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}
.masthead{display:flex;justify-content:space-between;align-items:flex-start;padding:24px var(--pad) 16px;font-size:12px;line-height:1.1;letter-spacing:-.01em}.brand{font-weight:800;font-size:clamp(22px,2.5vw,38px);letter-spacing:-.07em}.main-nav{display:flex;align-items:center;gap:7px;padding-top:5px;text-transform:uppercase;letter-spacing:.06em}.main-nav a{position:relative}.main-nav a:after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .25s}.main-nav a:hover:after,.main-nav a:focus-visible:after,.main-nav a[aria-current="page"]:after{transform:scaleX(1);transform-origin:left}
.home-intro{max-width:none;padding:clamp(32px,5vh,58px) 0 clamp(40px,6vh,68px)}.home-intro h1,.home-intro p{margin:0;white-space:nowrap;line-height:1.08;letter-spacing:-.045em}.home-intro h1{font-size:clamp(27px,3.35vw,50px);font-weight:700}.home-intro p{color:#8b8984;font-size:clamp(19px,2.45vw,36px);font-weight:300}.portfolio-title{margin:0 0 clamp(20px,3vw,42px);font-size:clamp(27px,3.35vw,50px);line-height:1;text-align:right;text-transform:uppercase;letter-spacing:-.045em}
.portfolio{padding:2.5vh var(--pad) 7vh}.mosaic{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:minmax(20px,2.1vw);gap:clamp(12px,1.15vw,18px)}.tile{position:relative;overflow:hidden;isolation:isolate}.art{position:absolute;inset:0;overflow:hidden}.project{background:#ddd;cursor:pointer}.project:focus-visible{outline:3px solid var(--ink);outline-offset:4px}.project-meta{position:absolute;z-index:4;left:14px;bottom:12px;display:flex;flex-direction:column;color:#fff;opacity:0;transform:translateY(5px);transition:.35s ease}.project-meta b{font-size:15px}.project-meta small{margin-top:3px;font-size:10px}.project-index,.kind{position:absolute;z-index:4;top:10px;left:12px;padding:5px 7px;background:rgba(244,242,237,.9);font-size:9px;text-transform:uppercase;letter-spacing:.1em}.project .art:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 45%,rgba(0,0,0,.48));opacity:0;transition:opacity .35s}.project:hover .project-meta,.project:focus-visible .project-meta{opacity:1;transform:none}.project:hover .art:after,.project:focus-visible .art:after{opacity:1}
.l-one{grid-column:1/5;grid-row:1/11}.l-two{grid-column:5/8;grid-row:1/13}.p-one{grid-column:8/13;grid-row:1/8}.l-three{grid-column:1/4;grid-row:11/24}.p-two{grid-column:4/10;grid-row:13/22}.p-three{grid-column:10/13;grid-row:9/23;aspect-ratio:9/16;align-self:start}.l-four{grid-column:1/4;grid-row:25/31}.p-four{grid-column:4/10;grid-row:23/34}.l-five{grid-column:10/13;grid-row:24/31}.p-five{grid-column:1/7;grid-row:35/49}.p-six{grid-column:7/12;grid-row:35/48;aspect-ratio:1/1;align-self:start}.l-six{grid-column:7/11;grid-row:49/55}
.art-chroma{background:#ee4d26}.art-chroma .orb{position:absolute;width:46%;aspect-ratio:1;border-radius:50%;background:#745dff;left:12%;top:14%;transition:transform .7s cubic-bezier(.2,.8,.2,1)}.art-chroma .plane{position:absolute;width:60%;height:38%;background:var(--acid);right:-12%;bottom:8%;transform:rotate(-14deg);transition:transform .7s}.project:hover .art-chroma .orb{transform:translate(80%,24%) scale(.65)}.project:hover .art-chroma .plane{transform:rotate(17deg) translate(-18%,-12%) scale(1.3)}
.art-loop-lines{background:#171717;display:flex;align-items:center;justify-content:center;gap:5%}.art-loop-lines i{height:72%;width:5%;background:#f5f1e7;animation:lines 2.4s ease-in-out infinite}.art-loop-lines i:nth-child(2){animation-delay:-.3s}.art-loop-lines i:nth-child(3){animation-delay:-.6s}.art-loop-lines i:nth-child(4){animation-delay:-.9s}.art-loop-lines i:nth-child(5){animation-delay:-1.2s}@keyframes lines{50%{height:18%;transform:rotate(35deg)}}
.loop-video{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none;background:#111}
.l-one .loop-video{object-position:center top}
.project-video{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none;background:#0b3479}
.p-three .project-video{object-fit:contain;background:#111}
.p-six .project-video{object-fit:cover;background:#063b78}
.project-placeholder{border:1px solid var(--ink);background:transparent}
.art-soft{background:linear-gradient(135deg,#e6b7cf,#8d75ee)}.art-soft span{position:absolute;width:48%;aspect-ratio:1;background:#ffed80;border-radius:50%;filter:blur(2px);transition:all .75s}.art-soft span:first-child{left:9%;top:14%}.art-soft span:last-child{right:6%;bottom:8%;background:#e23855}.project:hover .art-soft span:first-child{left:48%;transform:scale(.5)}.project:hover .art-soft span:last-child{right:45%;transform:scale(1.5)}
.art-loop-type{background:#dbe6ff;display:grid;align-content:center;font-size:clamp(28px,5vw,82px);font-weight:900;line-height:.68;letter-spacing:-.09em}.art-loop-type span{animation:marquee 3s ease-in-out infinite}.art-loop-type span:nth-child(2){transform:translateX(-22%);animation-delay:-1s;color:#fb482e}.art-loop-type span:nth-child(3){animation-delay:-2s}@keyframes marquee{50%{transform:translateX(22%)}}
.art-night{background:#0b1744}.moon{position:absolute;width:36%;aspect-ratio:1;border-radius:50%;background:#f4ecd7;left:12%;top:17%;transition:.7s}.beam{position:absolute;width:15%;height:140%;background:#ff4e94;right:15%;top:-20%;transform:rotate(25deg);transition:.7s}.project:hover .moon{transform:translate(120%,70%) scale(.6)}.project:hover .beam{transform:rotate(-35deg) scaleX(2)}
.art-material{background:#d5d0c4}.art-material span{position:absolute;inset:15%;background:repeating-linear-gradient(45deg,#191919 0 8px,#f4f2ed 8px 16px);clip-path:polygon(50% 0,100% 40%,82% 100%,15% 87%,0 30%);transition:.8s}.project:hover .art-material span{transform:rotate(120deg) scale(.75);filter:invert(1)}
.art-loop-ring{background:#ffd43b}.art-loop-ring span{position:absolute;width:58%;aspect-ratio:1;border:clamp(16px,3vw,48px) solid #6a32d5;border-top-color:#ff5635;border-radius:50%;left:21%;top:17%;animation:ring 2.4s linear infinite}@keyframes ring{to{transform:rotate(360deg)}}
.art-nature{background:#8fc8b0}.art-nature span{position:absolute;width:35%;height:75%;bottom:-12%;border-radius:100% 0;background:#145943;transform-origin:bottom;transition:.7s}.art-nature span:nth-child(1){left:8%;transform:rotate(-25deg)}.art-nature span:nth-child(2){left:34%;height:96%;background:#f0ead9}.art-nature span:nth-child(3){right:7%;transform:rotate(25deg);background:#e95338}.project:hover .art-nature span:nth-child(1){transform:rotate(20deg)}.project:hover .art-nature span:nth-child(2){transform:scaleY(.65) rotate(-8deg)}.project:hover .art-nature span:nth-child(3){transform:rotate(-20deg)}
footer{margin:2vh var(--pad) 0;padding:22px 0 30px;border-top:1px solid #aaa;display:flex;justify-content:space-between;font-size:11px;text-transform:uppercase;letter-spacing:.08em}
.placeholder-page{min-height:calc(100vh - 80px);padding:14vh var(--pad) 6vh}.placeholder-page h1{max-width:900px;margin:3vh 0 4vh;font-size:clamp(58px,11vw,160px);line-height:.82;letter-spacing:-.085em}.placeholder-page>p:not(.eyebrow){max-width:540px;color:#777;font-size:18px;line-height:1.35}.about-page h1{max-width:none}.about-page h1 span{white-space:nowrap}.placeholder-page.about-page>p.about-intro{max-width:1200px;color:var(--ink);font-size:clamp(28px,3vw,52px);line-height:1.12;letter-spacing:-.035em}.about-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--pad);margin-top:12vh}.about-details>div{display:grid;grid-template-columns:minmax(120px,.8fr) 2fr;gap:var(--pad);padding:20px 0;border-top:1px solid #aaa}.about-details h2{margin:0;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.about-details p{margin:0;font-size:14px;line-height:1.55}.contact-details{margin-top:4vh;font-size:18px;line-height:1.6}.contact-details p{margin:1vh 0 0}.contact-details a{border-bottom:1px solid}.placeholder-page>a{display:inline-block;margin-top:10vh;border-bottom:1px solid;font-size:12px;text-transform:uppercase;letter-spacing:.08em}.placeholder-page>a.about-download{margin-top:7vh;font-size:11px;font-weight:700}
.project-nav{display:flex;justify-content:space-between;align-items:center;padding:24px var(--pad)}.project-nav>a:last-child{font-size:12px;text-transform:uppercase}.project-hero{position:relative;min-height:58vh;padding:6vh var(--pad)}.eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:.12em}.project-hero h1{position:relative;z-index:2;margin:3vh 0 0;font-size:clamp(70px,15vw,220px);line-height:.73;letter-spacing:-.1em}.hero-art{inset:auto var(--pad) 0 auto;width:55vw;height:70vh}.intro{margin:0;font-size:clamp(24px,3.2vw,48px);line-height:1.05;letter-spacing:-.045em}.apem-intro{position:relative;z-index:2;width:40vw;margin-top:5vh;font-size:clamp(20px,2.2vw,34px)}.project-info{padding:5vh var(--pad) 12vh}.project-info dl{width:40vw;margin:0 0 0 auto}.project-info dl div{display:grid;grid-template-columns:1fr 1.6fr;padding:12px 0;border-top:1px solid #aaa;font-size:11px}.project-info dt{text-transform:uppercase}.project-info dd{margin:0}.project-media{padding:0 var(--pad)}.media-wide{position:relative;height:65vw;max-height:820px}.media-pair{display:grid;grid-template-columns:1fr 1fr;gap:var(--pad);margin-top:var(--pad)}.media-pair>div{position:relative;aspect-ratio:4/5}.back-link{display:block;margin:18vh var(--pad) 4vh;font-size:clamp(32px,6vw,90px);letter-spacing:-.07em}
.hero-video{position:absolute;inset:18vh var(--pad) auto auto;width:min(55vw,880px);height:auto;aspect-ratio:16/9;object-fit:contain;display:block;background:#0b1744}
.apem-youtube{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(14px,2vw,32px);padding-top:4vh}.apem-youtube-frame{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;background:#111}.apem-youtube-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.animation-page .project-hero{min-height:88vh}.animation-intro{position:relative;z-index:2;width:40vw;margin-top:4vh;font-size:clamp(17px,1.8vw,28px)}.animation-hero-video{width:min(42vw,680px);aspect-ratio:1;object-fit:cover;background:transparent}.video-embed{height:auto;max-height:none;aspect-ratio:16/9}.video-embed iframe{width:100%;height:100%;border:0;display:block}.sinergis-hero-video{inset:8vh var(--pad) auto auto;height:auto;aspect-ratio:16/9;overflow:hidden;background:#111}.sinergis-hero-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}.project-info:has(+ .sinergis-feature){display:flex;flex-direction:column;padding-top:6vh}.project-info:has(+ .sinergis-feature) dl{order:1;width:55vw}.project-info:has(+ .sinergis-feature) .intro{order:2;margin-top:8vh}.sinergis-feature{display:grid;grid-template-columns:minmax(240px,.7fr) minmax(0,1.5fr);align-items:center;gap:clamp(32px,6vw,100px)}.sinergis-feature-copy h2{max-width:440px;margin:2vh 0;font-size:clamp(30px,3.8vw,56px);line-height:.92;letter-spacing:-.05em}.sinergis-feature-copy>p:last-child{max-width:480px;margin:0;font-size:clamp(16px,1.7vw,25px);line-height:1.25}
.animation-more-videos{display:flex;flex-direction:column;gap:clamp(48px,8vh,96px);padding:2vh var(--pad) 0}.animation-video-row{display:grid;grid-template-columns:minmax(240px,1fr) minmax(0,42vw);align-items:center;gap:clamp(32px,6vw,100px)}.animation-video-copy{max-width:520px}.animation-video-copy h2{margin:0 0 2vh;font-size:clamp(30px,3.8vw,56px);line-height:.95;letter-spacing:-.05em}.animation-video-copy p{margin:0;font-size:clamp(16px,1.5vw,22px);line-height:1.4}.animation-video-frame{width:min(42vw,560px);aspect-ratio:16/9;overflow:hidden;background:#111}.animation-video-featured{align-self:center;width:min(82vw,1120px)}.animation-video-right{align-self:flex-end}.animation-video-left{align-self:flex-start}.animation-video-frame iframe{width:100%;height:100%;display:block;border:0}
@media(min-width:701px){.animation-video-row{gap:clamp(24px,3vw,56px)}.animation-video-copy{max-width:none}}
.sinergis-more-videos{display:flex;flex-direction:column;gap:clamp(48px,8vh,96px);padding:clamp(72px,12vh,150px) var(--pad) 0}.sinergis-video-row{display:grid;grid-template-columns:minmax(0,42vw) minmax(240px,1fr);align-items:start;gap:clamp(32px,6vw,100px)}.sinergis-video-frame{width:min(42vw,560px);aspect-ratio:16/9;background:#111;overflow:hidden}.sinergis-more-videos>.sinergis-video-frame{align-self:flex-end}.sinergis-video-frame iframe{width:100%;height:100%;display:block;border:0}.sinergis-video-copy{max-width:520px;margin:0;font-size:clamp(16px,1.5vw,22px);line-height:1.4}
@media(min-width:701px){.sinergis-video-row{grid-template-columns:minmax(0,42vw) minmax(0,1fr);gap:clamp(24px,3vw,56px)}.sinergis-video-copy{max-width:none;padding-right:clamp(0px,2vw,32px);font-size:clamp(18px,1.7vw,26px);line-height:1.35}}
.project-page .project-info{padding-top:11vh}
.project-hero:has(.sinergis-hero-video) h1{max-width:40vw;font-size:clamp(70px,9vw,140px)}
.mixed-media-hero-image{position:absolute;inset:0 var(--pad) auto auto;width:min(55vw,70vh);height:auto;aspect-ratio:1;object-fit:cover}
.short-projects{display:grid;gap:16vh;padding:0 var(--pad)}.short-case{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(240px,.75fr);align-items:center;gap:clamp(32px,6vw,100px)}.short-case-reverse{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(24px,2vw,48px)}.short-case-reverse .short-media-slot{order:2}.short-case-reverse .short-case-copy{order:1;width:100%}.short-case-reverse .short-case-copy>p:last-child{max-width:none}.short-media-slot{display:grid;place-items:center;aspect-ratio:16/9;background:#171717;color:var(--paper)}.short-media-slot span,.short-photo-strip span{font-size:10px;text-transform:uppercase;letter-spacing:.12em}.short-case-copy h2{margin:2vh 0;font-size:clamp(34px,5vw,74px);line-height:.92;letter-spacing:-.055em}.short-case-copy>p:last-child{max-width:440px;margin:0;font-size:clamp(16px,1.5vw,23px);line-height:1.3}.short-photo-strip{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(10px,1.5vw,22px);margin-top:clamp(10px,1.5vw,22px)}.short-photo-strip>div{display:grid;place-items:center;aspect-ratio:4/3;border:1px solid #aaa;background:#e5e2dc}
.project-hero:has(.short-hero-video){min-height:70vh}.short-hero-video{inset:9vh var(--pad) auto auto;width:min(44vw,620px);height:auto;aspect-ratio:1;overflow:hidden;background:#111}.short-hero-video video,.short-media-slot video,.short-photo-strip img{width:100%;height:100%;display:block;object-fit:cover}.short-media-slot video{background:#111}.short-media-slot iframe{width:100%;height:100%;border:0;display:block}.hover-video{cursor:pointer}.short-photo-strip img{aspect-ratio:4/3}
@media(max-width:700px){.masthead{padding-top:18px}.main-nav{gap:5px;font-size:10px}.home-intro{padding:40px 0 48px}.home-intro h1,.home-intro p{white-space:normal}.home-intro h1{font-size:clamp(31px,9vw,48px)}.home-intro p{font-size:clamp(24px,7vw,38px)}.portfolio-title{margin-bottom:22px}.portfolio{padding-top:2vh}.mosaic{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:auto;gap:9px}.mosaic .tile{grid-row:auto;min-height:0}.mosaic .loop{grid-column:span 1;aspect-ratio:1;cursor:zoom-in}.mosaic .project{grid-column:1/-1;aspect-ratio:16/10}.mosaic .p-three{aspect-ratio:4/5}.mosaic .p-six{aspect-ratio:1}.l-one{order:1}.l-two{order:2}.p-one{order:3}.p-two{order:4}.p-three{order:5}.l-three{order:6}.l-four{order:7}.p-four{order:8}.l-five{order:9}.p-five{order:10}.p-six{order:11}.l-six{order:12}.project-meta{opacity:1;transform:none;left:10px;bottom:9px}.project .art:after{opacity:.36}.project-index,.kind{font-size:8px}.about-details{grid-template-columns:1fr;margin-top:8vh}.about-details>div{grid-template-columns:1fr;gap:10px}.project-hero{min-height:auto;padding-top:5vh;padding-bottom:30vh}.project-hero h1{font-size:20vw}.apem-intro{width:100%;margin-top:4vh;font-size:20px}.hero-art{width:72vw;height:47vh}.hero-video{width:68vw;height:auto;aspect-ratio:16/9;top:auto;bottom:4vh}.sinergis-hero-video{inset:auto var(--pad) 4vh auto;width:72vw;height:auto}.project-info{padding:4vh var(--pad) 10vh}.project-info dl{width:100%;margin:0}.project-info:has(+ .sinergis-feature) dl{width:100%}.project-info:has(+ .sinergis-feature) .intro{margin-top:6vh}.media-pair{grid-template-columns:1fr}.sinergis-feature{grid-template-columns:1fr;gap:5vh}.back-link{margin-top:14vh}}
.mobile-loop-viewer{display:none}
@media(max-width:700px){.mobile-loop-viewer{position:fixed;z-index:1000;inset:0;background:#080808;align-items:center;justify-content:center;padding:58px 12px 18px}.mobile-loop-viewer.is-open{display:flex}.mobile-loop-viewer video{width:100%;height:100%;object-fit:contain;background:#080808}.mobile-loop-close{position:absolute;z-index:2;top:max(12px,env(safe-area-inset-top));right:14px;width:42px;height:42px;border:1px solid rgba(255,255,255,.7);border-radius:50%;background:rgba(0,0,0,.72);color:#fff;font:300 30px/1 Arial,sans-serif;cursor:pointer}.mobile-loop-close:focus-visible{outline:2px solid #fff;outline-offset:3px}body.loop-viewer-open{overflow:hidden}}
@media(max-width:700px){.apem-youtube{grid-template-columns:1fr}}
@media(max-width:700px){.project-page .project-info{padding-top:4vh}}
@media(max-width:700px){.animation-page .project-hero{min-height:auto;padding-bottom:45vh}.animation-intro{width:100%;margin-top:4vh;font-size:18px}.animation-hero-video{width:68vw;aspect-ratio:1}}
@media(max-width:700px){.animation-more-videos{gap:40px;padding-top:0}.animation-video-row{grid-template-columns:1fr;gap:24px}.animation-video-copy{max-width:none}.animation-video-copy h2{font-size:36px}.animation-video-copy p{font-size:16px;line-height:1.45}.animation-video-frame,.animation-video-featured{width:100%}}
@media(max-width:700px){.project-hero:has(.sinergis-hero-video) h1{max-width:none;font-size:20vw}}
@media(max-width:700px){.sinergis-more-videos{gap:40px;padding-top:10vh}.sinergis-video-row{grid-template-columns:1fr;gap:24px}.sinergis-video-frame{width:100%}.sinergis-video-copy{font-size:16px;line-height:1.45}}
@media(max-width:700px){.project-hero:has(.mixed-media-hero-image){padding-bottom:72vw}.mixed-media-hero-image{inset:auto var(--pad) 4vh auto;width:68vw;height:auto}}
@media(max-width:700px){.project-hero:has(.short-hero-video){padding-bottom:68vw}.short-hero-video{inset:auto var(--pad) 4vh auto;width:58vw;height:auto;aspect-ratio:1}.short-projects{gap:11vh}.short-case{grid-template-columns:1fr;gap:4vh}.short-case-reverse .short-media-slot,.short-case-reverse .short-case-copy{order:initial}.short-photo-strip{grid-template-columns:repeat(2,1fr)}}

/* AI Visuals project */
.project-hero:has(.ai-visuals-hero-image){min-height:52vh;padding-bottom:2vh}
.ai-visuals-hero-image{inset:9vh var(--pad) auto auto;width:min(32vw,430px);height:auto;aspect-ratio:auto;object-fit:contain;object-position:center;background:transparent}
.ai-visuals-intro{display:flex;flex-direction:column;align-items:stretch;padding:4vh var(--pad) 7vh}
.ai-visuals-copy{max-width:none;margin-top:6vh}.ai-visuals-copy h2{margin:2vh 0 0;font-size:clamp(34px,4.7vw,72px);line-height:.95;letter-spacing:-.055em}
.ai-visuals-copy>p:last-child{margin:3vh 0 0;font-size:clamp(16px,1.55vw,23px);line-height:1.3}
.ai-loop-placeholder,.ai-image-placeholder{display:grid;place-items:center;background:#17191d;color:#f4f1eb;text-transform:uppercase;letter-spacing:.14em;font-size:10px}
.ai-loop-placeholder{align-self:center;width:min(58vw,760px);aspect-ratio:1;overflow:hidden}.ai-loop-placeholder video{width:100%;height:100%;display:block;object-fit:cover}
.ai-visuals-main{padding-top:3vh}.ai-visuals-main .media-wide{height:auto;max-height:none;aspect-ratio:16/9}.ai-visuals-main video{width:100%;height:100%;display:block;object-fit:cover}
.ai-visuals-gallery{padding:7vh var(--pad) 0}.ai-image-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--pad)}.ai-image-placeholder{aspect-ratio:4/5;background:#dedbd4;color:#111;border:1px solid #aaa;overflow:hidden}.ai-image-placeholder img{width:100%;height:100%;display:block;object-fit:cover}.ai-gallery-copy{max-width:900px;margin-top:4vh}.ai-gallery-copy>p:last-child{margin:1.5vh 0 0;font-size:clamp(17px,1.7vw,25px);line-height:1.25}
@media(max-width:700px){.project-hero:has(.ai-visuals-hero-image){min-height:auto;padding-bottom:58vw}.ai-visuals-hero-image{inset:auto var(--pad) 4vh auto;width:46vw;height:auto;aspect-ratio:auto}.ai-visuals-intro{padding-top:4vh;padding-bottom:7vh}.ai-visuals-copy{max-width:none;margin-top:5vh}.ai-loop-placeholder{width:100%}.ai-visuals-gallery{padding-top:10vh}.ai-image-grid{grid-template-columns:1fr;gap:16px}.ai-image-placeholder{aspect-ratio:4/3}.ai-gallery-copy{margin-top:4vh}}

/* Mixed Media project */
.project-hero:has(.mixed-media-hero-image){min-height:58vh}.mixed-media-hero-image{inset:5vh var(--pad) auto auto;width:min(42vw,620px);height:auto;aspect-ratio:1;object-fit:cover;background:#ddd}.mixed-media-content{display:grid;gap:clamp(28px,5vw,76px);padding:0 var(--pad)}.mixed-media-feature{width:100%;height:auto;display:block}.mixed-media-copy{display:grid;grid-template-columns:minmax(120px,1fr) minmax(0,3fr);gap:var(--pad);align-items:start;padding-top:18px;border-top:1px solid #aaa}.mixed-media-copy p{margin:0}.mixed-media-copy>p:last-child{font-size:clamp(25px,3.25vw,50px);line-height:1.04;letter-spacing:-.045em}.mixed-media-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,2vw,32px)}.mixed-media-image-slot{position:relative;display:grid;place-items:center;aspect-ratio:4/3;overflow:hidden;background:#e5e2dc}.mixed-media-image-slot img{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:contain}.mixed-media-loop{position:relative;aspect-ratio:16/9;overflow:hidden;background:#111;cursor:pointer}.mixed-media-loop:focus-visible{outline:3px solid var(--ink);outline-offset:5px}.mixed-media-loop.needs-click:after{content:"Click to play with sound";position:absolute;left:50%;bottom:20px;transform:translateX(-50%);padding:8px 12px;background:rgba(17,17,15,.88);color:#fff;font-size:10px;text-transform:uppercase;letter-spacing:.1em;white-space:nowrap}.mixed-media-loop video{width:100%;height:100%;display:block;object-fit:cover}
.mixed-media-page .project-info{padding-top:clamp(30px,4vh,56px)}.mixed-media-page .project-info .intro{max-width:820px;font-size:clamp(17px,1.7vw,25px);line-height:1.28;letter-spacing:-.025em}.mixed-media-page .project-info dl{margin-top:clamp(32px,5vh,68px)}.mixed-media-page .mixed-media-copy>p:last-child{max-width:820px;font-size:clamp(16px,1.55vw,22px);line-height:1.35;letter-spacing:-.02em}
@media(max-width:700px){.project-hero:has(.mixed-media-hero-image){padding-bottom:66vw}.mixed-media-hero-image{inset:auto var(--pad) 4vh auto;width:58vw}.mixed-media-content{gap:9vh}.mixed-media-copy{grid-template-columns:1fr;gap:18px}.mixed-media-gallery{gap:8px}.mixed-media-loop{aspect-ratio:4/5}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}}
.privacy-consent{position:fixed;z-index:2000;left:16px;right:16px;bottom:16px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:16px 18px;border:1px solid #777;background:rgba(244,242,237,.98);box-shadow:0 8px 28px rgba(0,0,0,.16);font-size:14px;line-height:1.4}.privacy-consent-copy{max-width:760px}.privacy-consent-copy strong{font-size:15px}.privacy-consent-copy p{margin:4px 0 0}.privacy-consent-actions{display:flex;gap:8px;flex-shrink:0}.privacy-consent button,.privacy-settings-button{border:1px solid var(--ink);background:var(--paper);color:var(--ink);font:inherit;cursor:pointer}.privacy-consent button{padding:9px 12px}.privacy-consent button[data-consent="accepted"]{background:var(--ink);color:var(--paper)}.privacy-consent button:focus-visible,.privacy-settings-button:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.privacy-settings-button{position:fixed;z-index:1999;left:10px;bottom:10px;padding:5px 7px;background:rgba(244,242,237,.92);font-size:10px;text-transform:uppercase;letter-spacing:.06em}
@media(max-width:700px){.privacy-consent{align-items:stretch;flex-direction:column;gap:14px}.privacy-consent-actions{display:grid;grid-template-columns:1fr 1fr}.privacy-consent button{min-height:44px}}
