:root{font-family:Ubuntu,sans-serif;color:#fff;background:#08090b;font-synthesis:none;--red:#e52b35;--glass:rgba(10,11,14,.48);--line:rgba(255,255,255,.3);--muted:#b8bbc0;--shift-x:0px;--shift-y:0px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#08090b;color:#fff;overflow-x:hidden}body:before{content:"";position:fixed;inset:-2%;z-index:-1;background:radial-gradient(ellipse at 75% 25%,rgba(102,48,36,.22),transparent 45%),linear-gradient(110deg,#090a0d,#111318 55%,#09090b);pointer-events:none}a,button{font:inherit;color:inherit}.ambient{position:fixed;inset:-24px;z-index:-1;pointer-events:none;background:radial-gradient(circle at 13% 18%,rgba(227,165,105,.12),transparent 19%),radial-gradient(circle at 88% 62%,rgba(178,40,48,.12),transparent 24%);transform:translate(var(--shift-x),var(--shift-y));transition:transform .25s ease-out}.topbar{position:fixed;z-index:30;top:16px;left:2.2vw;right:2.2vw;height:76px;padding:8px 26px;display:flex;align-items:center;gap:34px;border:1px solid var(--line);border-radius:42px;background:var(--glass);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:0 12px 40px #0005,inset 0 1px #ffffff18}.brand{display:flex;align-items:center;min-width:220px;text-decoration:none}.brand-logo{display:block;width:190px;height:54px;object-fit:contain;object-position:left center;mix-blend-mode:screen}.footer-brand{min-width:0}.footer-brand .brand-logo{width:175px;height:48px}.topbar nav{display:flex;align-items:center;justify-content:center;gap:clamp(22px,4vw,58px);flex:1}.topbar nav a{text-decoration:none;font-size:13px;color:#e6e6e6;position:relative;padding:12px 0}.topbar nav a:after{content:"";position:absolute;left:0;right:100%;bottom:3px;height:2px;background:var(--red);transition:right .25s}.topbar nav a:hover:after{right:0}.contact-link{display:flex;align-items:center;gap:16px;text-decoration:none;font-size:11px;letter-spacing:.12em;border:1px solid #ffffff55;border-radius:30px;padding:14px 19px;background:#ffffff0c}.contact-link span{font-size:17px}.menu-toggle{display:none;background:none;border:0;font-size:23px}.hero{min-height:760px;height:100svh;max-height:1050px;position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:4vw;padding:135px 9vw 90px}.hero-copy{position:relative;z-index:2;max-width:600px}.eyebrow{font-size:10px;letter-spacing:.19em;color:#d5d5d5;margin:0 0 22px}.eyebrow i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--red);margin-right:10px;box-shadow:0 0 12px var(--red)}h1{font-size:clamp(58px,7.5vw,108px);line-height:.92;letter-spacing:-.075em;font-weight:400;margin:0}h1 em,h2 em{font-family:"Cormorant Garamond",serif;font-weight:400;letter-spacing:-.045em;color:#e5c4b3}.intro{max-width:420px;margin:28px 0 32px;color:#c7c8ca;font-size:16px;line-height:1.75;font-weight:300}.hero-actions{display:flex;align-items:center;gap:26px}.primary{display:inline-flex;align-items:center;justify-content:center;gap:24px;padding:16px 21px;border:1px solid #ffffffa8;border-radius:30px;background:#ffffffed;color:#111;text-decoration:none;font-size:12px;font-weight:500;transition:transform .25s,background .25s}.primary:hover{transform:translateY(-2px);background:#fff}.primary span{font-size:18px}.quiet-link{font-size:12px;text-decoration:none;color:#eee;border-bottom:1px solid #ffffff55;padding:8px 0}.hero-image{height:min(62vh,610px);min-height:390px;position:relative;border:1px solid #ffffff55;border-radius:22px;overflow:hidden;box-shadow:0 30px 100px #0009;transform:translateY(12px)}.hero-image:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#08090bc9,transparent 40%),linear-gradient(90deg,#0003,transparent 60%)}.hero-image img{width:100%;height:100%;object-fit:cover;filter:brightness(.78) saturate(.82)}.image-caption{position:absolute;z-index:2;left:24px;right:24px;bottom:22px;display:flex;justify-content:space-between;font-size:9px;letter-spacing:.15em;color:#eee}.hero-index{position:absolute;bottom:38px;left:9vw;display:flex;align-items:center;gap:12px;font-size:10px;letter-spacing:.12em;color:#ddd}.hero-index span{width:50px;height:1px;background:#ffffff70}.section{padding:125px 9vw}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:48px}.section h2,.manifesto h2,.work h2{font-size:clamp(43px,5.5vw,76px);line-height:.98;letter-spacing:-.065em;font-weight:400;margin:0}.section-note{max-width:310px;color:var(--muted);font-size:14px;line-height:1.7;margin:0 0 5px}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.service-card{position:relative;min-width:0;aspect-ratio:.78;border:1px solid #ffffff50;border-radius:16px;overflow:hidden;padding:0;text-align:left;background:#161719;cursor:pointer;box-shadow:0 18px 50px #0006;transition:transform .4s,border-color .3s}.service-card:hover{transform:translateY(-8px);border-color:#fff}.service-card:before{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(0deg,#050608ed,transparent 65%),linear-gradient(120deg,#0003,transparent 55%)}.service-card img{width:100%;height:100%;object-fit:cover;filter:brightness(.76) saturate(.78);transition:transform .8s}.service-card:hover img{transform:scale(1.06)}.service-no{position:absolute;z-index:2;top:19px;left:19px;font-size:10px;letter-spacing:.14em}.service-bottom{position:absolute;z-index:2;left:20px;right:16px;bottom:22px;display:grid;gap:7px}.service-bottom b{font-size:clamp(17px,2vw,25px);font-weight:400;letter-spacing:-.04em}.service-bottom small{font-size:9px;color:#d0d0d0;letter-spacing:.06em}.service-arrow{position:absolute;z-index:2;right:18px;top:16px;font-size:20px}.manifesto{background:linear-gradient(110deg,rgba(255,255,255,.045),transparent 65%);border-top:1px solid #ffffff16;border-bottom:1px solid #ffffff16}.manifesto h2{max-width:900px}.manifesto>p:last-child{max-width:550px;color:#c4c5c7;line-height:1.8;font-size:15px;margin:28px 0 0}.work{display:grid;grid-template-columns:.8fr 1.2fr;gap:60px;align-items:center}.work-strip{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:10px;height:260px}.work-strip img{width:100%;height:100%;object-fit:cover;border-radius:10px;filter:brightness(.78) saturate(.75);border:1px solid #ffffff38}footer{min-height:115px;border-top:1px solid #ffffff28;padding:22px 5vw;display:flex;align-items:center;justify-content:space-between;color:#aaa;font-size:10px;letter-spacing:.08em}footer .brand{min-width:0}.footer-brand .brand-symbol{width:38px;height:38px}.service-modal{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:20px;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}.service-modal.open{opacity:1;visibility:visible}.modal-shade{position:absolute;inset:0;background:#030405d9;backdrop-filter:blur(15px)}.modal-content{position:relative;width:min(620px,100%);max-height:90vh;overflow:auto;padding:48px;border:1px solid #ffffff70;border-radius:22px;background:rgba(17,18,21,.88);backdrop-filter:blur(28px);box-shadow:0 30px 100px #000b;transform:translateY(15px);transition:transform .3s}.service-modal.open .modal-content{transform:translateY(0)}.modal-close{position:absolute;right:20px;top:16px;border:1px solid #ffffff50;background:#ffffff0b;border-radius:50%;width:38px;height:38px;font-size:25px;cursor:pointer}.modal-content h2{font-size:clamp(38px,6vw,58px);font-weight:400;letter-spacing:-.06em;margin:0 0 10px}.modal-content>p:not(.eyebrow){color:#c5c6c8;font-size:14px;line-height:1.7}.modal-categories{margin:26px 0;border-top:1px solid #ffffff32}.category{display:flex;align-items:center;gap:18px;padding:16px 4px;border-bottom:1px solid #ffffff25}.category span{font-size:10px;color:#d78d83}.category b{font-weight:400;flex:1;font-size:15px}.category i{font-style:normal;color:#aaa}.tier-row{display:flex;justify-content:space-between;border:1px solid #ffffff35;border-radius:8px;padding:15px 18px;margin:22px 0;font-size:9px;letter-spacing:.12em;color:#eee}.modal-content>.primary{margin-top:8px}.modal-open{overflow:hidden}.in-view{animation:rise .7s both}@keyframes rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@media(max-width:900px){.hero{padding-left:6vw;padding-right:6vw;gap:3vw}.hero-index{left:6vw}.section{padding:95px 6vw}.service-grid{grid-template-columns:repeat(2,1fr)}.service-card{aspect-ratio:1}.work{grid-template-columns:1fr;gap:30px}.work-strip{height:230px}}@media(max-width:650px){.topbar{top:9px;left:10px;right:10px;height:66px;padding:6px 12px;gap:8px;border-radius:35px}.brand{min-width:0;flex:1;gap:8px}.brand-symbol{width:38px;height:38px;font-size:11px}.brand-name{font-size:13px}.topbar nav{display:none;position:absolute;top:73px;left:0;right:0;padding:14px 20px;border:1px solid var(--line);border-radius:18px;background:rgba(8,9,11,.94);backdrop-filter:blur(20px);flex-direction:column;gap:4px}.topbar.menu-open nav{display:flex}.topbar nav a{width:100%;text-align:center;padding:13px}.contact-link{padding:12px 13px;font-size:9px;gap:8px}.menu-toggle{display:block}.hero{min-height:0;height:auto;max-height:none;padding:120px 7vw 75px;grid-template-columns:1fr;gap:35px}.hero-copy{padding-top:25px}h1{font-size:clamp(58px,15vw,86px)}.intro{font-size:14px;margin:22px 0 25px}.hero-actions{gap:17px;flex-wrap:wrap}.primary{padding:14px 17px}.hero-image{height:54vh;min-height:330px;max-height:500px;transform:none;border-radius:16px}.image-caption{left:14px;right:14px;font-size:7px}.hero-index{bottom:25px;left:7vw}.section{padding:80px 7vw}.section-heading{display:block;margin-bottom:30px}.section-note{margin-top:20px;font-size:13px}.service-grid{gap:10px}.service-card{border-radius:12px}.service-bottom{left:12px;right:10px;bottom:14px}.service-bottom b{font-size:clamp(16px,4.6vw,22px)}.service-bottom small{font-size:8px}.service-no{top:13px;left:13px}.service-arrow{top:10px;right:12px}.manifesto h2,.section h2,.work h2{font-size:clamp(42px,11vw,60px)}.work-strip{height:170px;gap:6px}.work-strip img{border-radius:7px}footer{padding:22px 7vw;gap:14px;flex-wrap:wrap}footer>span{font-size:8px}.modal-content{padding:38px 22px 25px;border-radius:16px}.tier-row{padding:13px 10px;font-size:8px}.category{gap:12px;padding:14px 2px}.category b{font-size:13px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Visual Storyteller — shared cinematic language with Storybook */
:root{--glass:rgba(8,8,8,.56);--line:rgba(255,255,255,.42);--red:#ed1c24}
body{
 background-color:#090604!important;
 background-image:
  linear-gradient(90deg,rgba(0,0,0,.42),rgba(0,0,0,.13) 50%,rgba(0,0,0,.42)),
  linear-gradient(0deg,rgba(0,0,0,.42),rgba(0,0,0,.08) 48%,rgba(0,0,0,.34)),
  url("https://images.unsplash.com/photo-1511795409834-ef04bbd61622?auto=format&fit=crop&w=2400&q=90")!important;
 background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important;background-attachment:fixed!important
}
body:before{background:radial-gradient(circle at 8% 22%,rgba(255,174,84,.26) 0 2px,rgba(255,174,84,.09) 18px,transparent 64px),radial-gradient(circle at 83% 19%,rgba(255,174,84,.25) 0 4px,rgba(255,174,84,.08) 22px,transparent 80px),radial-gradient(circle at 93% 72%,rgba(196,28,42,.22) 0 5px,rgba(196,28,42,.07) 34px,transparent 110px),linear-gradient(135deg,#170a08,#080808 55%,#160805);filter:blur(2px)}
body:after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,rgba(0,0,0,.12),transparent 40%,rgba(0,0,0,.18)),linear-gradient(0deg,rgba(0,0,0,.2),transparent 55%,rgba(0,0,0,.16))}
.topbar{
 top:16px;left:2.2vw;right:2.2vw;height:76px;padding:7px 28px;gap:30px;
 border:1px solid rgba(255,255,255,.38);border-radius:38px;
 background:rgba(8,8,8,.56);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
 box-shadow:0 8px 36px rgba(0,0,0,.42),inset 0 1px rgba(255,255,255,.1)
}
.brand{min-width:clamp(170px,19vw,250px);height:60px;gap:0}
.brand-logo{width:100%;height:100%;object-fit:contain;object-position:left center;mix-blend-mode:screen}
.topbar nav{gap:0;justify-content:space-evenly}
.topbar nav a{height:58px;flex:1;display:flex;align-items:center;justify-content:center;padding:0 12px;font-size:clamp(13px,1.25vw,18px);font-weight:500;letter-spacing:0;position:relative;color:#fff}
.topbar nav a+a{border-left:1px solid rgba(255,255,255,.3)}
.topbar nav a:after{left:20%;right:80%;bottom:0;height:3px;background:var(--red);box-shadow:0 0 12px rgba(237,28,36,.8)}
.topbar nav a:hover:after{right:20%}
.contact-link{border-color:rgba(255,255,255,.48);border-radius:30px;background:rgba(255,255,255,.08);font-size:10px}
.menu-toggle{color:#fff}
.hero{padding-top:150px;gap:5vw}
.hero-image{border-radius:22px;border-color:rgba(255,255,255,.58);box-shadow:0 24px 70px rgba(0,0,0,.65)}
.hero-image img{filter:brightness(.82) saturate(.9)}
h1,h2,.section h2,.manifesto h2,.work h2{font-family:"Cormorant Garamond",Georgia,serif;font-weight:600;letter-spacing:-.025em}
h1 em,h2 em{color:#fff;text-decoration:underline;text-decoration-color:var(--red);text-decoration-thickness:3px;text-underline-offset:7px}
.eyebrow{color:#fff}
.eyebrow i{background:var(--red);box-shadow:0 0 12px var(--red)}
.primary{background:#fff;border:1px solid #fff;color:#050505;border-radius:11px;font-family:Ubuntu,sans-serif}
.primary:hover{background:#f1f1f1}
.quiet-link{border-bottom-color:var(--red)}
.section{background:linear-gradient(135deg,rgba(0,0,0,.18),rgba(0,0,0,.04));}
.service-card{border-radius:18px;border:1px solid rgba(255,255,255,.5);box-shadow:0 18px 50px rgba(0,0,0,.55)}
.service-card img{filter:brightness(.82) saturate(.9)}
.service-card:hover{border-color:#fff;box-shadow:0 24px 60px rgba(0,0,0,.7)}
.service-bottom b{font-family:"Cormorant Garamond",Georgia,serif;font-size:clamp(22px,2.5vw,32px);font-weight:600}
.service-card:after{content:"";position:absolute;z-index:3;bottom:12px;left:32%;right:32%;height:3px;border-radius:4px;background:var(--red);box-shadow:0 0 8px rgba(237,28,36,.5);pointer-events:none}
.manifesto{background:rgba(0,0,0,.28);border-top:1px solid rgba(255,255,255,.24);border-bottom:1px solid rgba(255,255,255,.24);backdrop-filter:blur(8px)}
.work-strip img{border-radius:14px;border-color:rgba(255,255,255,.48)}
footer{
 min-height:76px;margin:0 2.2vw 16px;padding:10px 28px;
 border:1px solid rgba(255,255,255,.36);border-radius:38px;
 background:rgba(8,8,8,.56);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
 box-shadow:0 8px 36px rgba(0,0,0,.42),inset 0 1px rgba(255,255,255,.1);
 color:#fff
}
.footer-brand{min-width:clamp(150px,19vw,220px);height:52px}
.footer-brand .brand-logo{width:100%;height:100%}
.service-modal .modal-shade{background:rgba(0,0,0,.78);backdrop-filter:blur(12px)}
.modal-content{border-color:rgba(255,255,255,.62);border-radius:14px;background:rgba(0,0,0,.84);backdrop-filter:blur(24px)}
.modal-content h2{font-family:"Cormorant Garamond",Georgia,serif;font-weight:600}
.modal-close{border-color:rgba(255,255,255,.5);border-radius:50%;background:rgba(255,255,255,.08)}
.category{border-color:rgba(255,255,255,.25)}
.category span{color:var(--red)}
.tier-row{border-color:rgba(255,255,255,.42);border-radius:9px}
@media(max-width:900px){
 .topbar{left:10px;right:10px;top:8px;height:66px;padding:5px 12px;gap:8px;border-radius:30px}
 .brand{min-width:clamp(105px,25vw,160px);height:50px}
 .topbar nav{gap:0}
 .topbar nav a{height:50px;font-size:clamp(10px,1.6vw,14px);padding:0 6px}
}
@media(max-width:650px){
 .topbar{left:10px;right:10px;top:8px;height:64px;padding:5px 10px;border-radius:28px}
 .brand{min-width:clamp(88px,24vw,140px);height:48px}
 .topbar nav a{height:48px;font-size:clamp(9px,2.4vw,12px);padding:0 4px}
 .topbar nav a+a{border-left:1px solid rgba(255,255,255,.3)}
 .hero{padding-top:110px}
 footer{margin:0 10px 8px;padding:10px 14px;min-height:64px;border-radius:28px;gap:8px}
 .footer-brand{min-width:88px;height:42px}
 footer>span{font-size:8px}
 .service-card{border-radius:13px}
 .service-bottom b{font-size:clamp(19px,5vw,25px)}
 .work-strip img{border-radius:9px}
}


/* Spatial gallery: layered photographic tiles in a receding 3D field */
.spatial-gallery{
 min-height:100svh;height:calc(100svh - 10px);max-height:1000px;
 position:relative;isolation:isolate;overflow:hidden;
 padding:126px 5vw 34px;
 display:flex;flex-direction:column;justify-content:center;
 background:transparent!important
}
.gallery-heading{position:absolute;z-index:5;top:clamp(112px,15vh,155px);left:8vw;pointer-events:none;text-shadow:0 3px 24px #000}
.gallery-heading .eyebrow{margin-bottom:10px}
.gallery-heading h1{font-size:clamp(34px,4.4vw,62px);line-height:.88;letter-spacing:-.035em;margin:0}
.gallery-heading h1 em{font-style:italic}
.gallery-heading>p:last-child{max-width:300px;margin:12px 0 0;color:#e1e1e1;font-size:12px;line-height:1.5}
.spatial-world{
 position:relative;isolation:isolate;width:100%;height:min(76vh,700px);min-height:500px;
 margin:95px auto 0;perspective:1050px;perspective-origin:50% 45%;
 transform-style:preserve-3d;overflow:visible;
}
.spatial-floor{
 position:absolute;z-index:-2;left:-15%;right:-15%;top:34%;bottom:-40%;
 transform:rotateX(66deg) translateY(4%);
 transform-origin:50% 0;
 background:
  radial-gradient(ellipse at 50% 12%,rgba(255,255,255,.15),transparent 48%),
  repeating-linear-gradient(90deg,transparent 0 95px,rgba(255,255,255,.025) 96px 97px),
  linear-gradient(180deg,rgba(255,255,255,.09),rgba(0,0,0,.12) 65%,rgba(0,0,0,.7));
 border-top:1px solid rgba(255,255,255,.13);
 filter:blur(.2px)
}
.spatial-floor:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 25%,transparent 0 25%,rgba(0,0,0,.38) 85%);pointer-events:none}
.spatial-tile{
 --x:0%;--y:0%;--z:0;--r:0deg;--w:20%;
 position:absolute;left:calc(50% + var(--x));top:calc(50% + var(--y));z-index:calc(4 + var(--z));
 width:var(--w);aspect-ratio:1.24;
 padding:0;border:1px solid rgba(255,255,255,.48);border-radius:3px;
 background:#171717;overflow:hidden;cursor:pointer;text-align:left;
 transform:translate(-50%,-50%) translateZ(calc(var(--z)*-52px)) rotate(var(--r));
 transform-style:preserve-3d;
 box-shadow:0 16px 28px rgba(0,0,0,.55),0 2px 5px rgba(0,0,0,.7);
 transition:transform .55s cubic-bezier(.2,.75,.25,1),box-shadow .4s,border-color .4s,filter .4s;
 filter:brightness(calc(.77 + var(--z)*.07)) saturate(.86)
}
.spatial-tile img{display:block;width:100%;height:100%;object-fit:cover;filter:brightness(.82);transition:transform .8s,filter .5s}
.spatial-tile:before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(0deg,rgba(0,0,0,.92),rgba(0,0,0,.08) 72%);pointer-events:none}
.tile-copy{position:absolute;z-index:2;left:13px;right:10px;bottom:12px;display:grid;gap:4px;color:#fff;text-shadow:0 2px 8px #000}
.tile-copy small{font-size:7px;letter-spacing:.13em;opacity:.85}
.tile-copy b{font-family:"Cormorant Garamond",Georgia,serif;font-size:clamp(14px,1.65vw,23px);font-weight:600;line-height:1}
.tile-copy i{font-size:8px;font-style:normal;letter-spacing:.08em;color:#fff;opacity:0;transform:translateY(5px);transition:.25s}
.spatial-tile:hover,.spatial-tile:focus-visible,.spatial-tile.is-selected{
 z-index:20;transform:translate(-50%,-50%) translateZ(150px) rotate(0deg) scale(1.08);
 border-color:#fff;box-shadow:0 30px 65px #000b,0 0 0 1px #ffffff30;
 filter:brightness(1.08) saturate(1)
}
.spatial-tile:hover img,.spatial-tile:focus-visible img,.spatial-tile.is-selected img{transform:scale(1.06);filter:brightness(.95)}
.spatial-tile:hover .tile-copy i,.spatial-tile:focus-visible .tile-copy i,.spatial-tile.is-selected .tile-copy i{opacity:1;transform:none}
.tile-photo{--x:-30%;--y:-2%;--z:1;--r:-7deg;--w:24%}
.tile-film{--x:8%;--y:-9%;--z:2;--r:5deg;--w:22%}
.tile-drone{--x:48%;--y:10%;--z:0;--r:8deg;--w:18%}
.tile-digital{--x:-48%;--y:-39%;--z:-2;--r:5deg;--w:17%}
.tile-work{--x:29%;--y:-43%;--z:-1;--r:-4deg;--w:20%}
.tile-story{--x:-8%;--y:34%;--z:3;--r:-2deg;--w:27%}
.tile-portrait{--x:-53%;--y:38%;--z:-2;--r:8deg;--w:15%}
.tile-events{--x:55%;--y:-25%;--z:-2;--r:-8deg;--w:16%}
.gallery-hint{position:absolute;z-index:5;left:8vw;right:8vw;bottom:24px;display:flex;justify-content:space-between;color:#ffffffa8;font-size:8px;letter-spacing:.17em;pointer-events:none}
.manifesto,.work{position:relative;z-index:2}
@media(hover:none){.tile-copy i{opacity:.9;transform:none}}
@media(max-width:900px){
 .spatial-gallery{padding-left:3vw;padding-right:3vw}
 .gallery-heading{left:6vw;top:108px}
 .spatial-world{height:70vh;min-height:510px;margin-top:120px;perspective:850px}
 .tile-copy{left:9px;bottom:9px}.tile-copy small{font-size:6px}
 .tile-photo{--x:-31%;--y:0%;--w:28%}
 .tile-film{--x:7%;--y:-10%;--w:25%}
 .tile-drone{--x:48%;--y:12%;--w:21%}
 .tile-digital{--x:-48%;--y:-39%;--w:19%}
 .tile-work{--x:28%;--y:-42%;--w:22%}
 .tile-story{--x:-8%;--y:34%;--w:30%}
 .tile-portrait{--x:-52%;--y:39%;--w:17%}
 .tile-events{--x:55%;--y:-24%;--w:18%}
}
@media(max-width:650px){
 .spatial-gallery{height:calc(100svh - 0px);min-height:720px;max-height:none;padding:100px 10px 35px}
 .gallery-heading{top:100px;left:7vw;right:7vw}
 .gallery-heading h1{font-size:clamp(38px,10vw,54px)}
 .gallery-heading>p:last-child{font-size:11px;margin-top:8px}
 .spatial-world{height:590px;min-height:590px;margin:145px auto 0;perspective:760px;perspective-origin:50% 48%}
 .spatial-floor{top:29%;bottom:-35%;left:-35%;right:-35%;transform:rotateX(67deg) translateY(5%)}
 .spatial-tile{border-radius:2px;aspect-ratio:1.08;box-shadow:0 10px 22px #0009}
 .tile-copy{left:7px;right:6px;bottom:7px;gap:3px}
 .tile-copy small{font-size:5px;letter-spacing:.08em}
 .tile-copy b{font-size:clamp(11px,3.3vw,16px)}
 .tile-copy i{font-size:7px}
 .tile-photo{--x:-31%;--y:-2%;--z:1;--r:-7deg;--w:38%}
 .tile-film{--x:8%;--y:-13%;--z:2;--r:5deg;--w:36%}
 .tile-drone{--x:51%;--y:8%;--z:0;--r:8deg;--w:29%}
 .tile-digital{--x:-48%;--y:-41%;--z:-2;--r:5deg;--w:27%}
 .tile-work{--x:29%;--y:-42%;--z:-1;--r:-4deg;--w:31%}
 .tile-story{--x:-8%;--y:34%;--z:3;--r:-2deg;--w:42%}
 .tile-portrait{--x:-52%;--y:38%;--z:-2;--r:8deg;--w:24%}
 .tile-events{--x:57%;--y:-25%;--z:-2;--r:-8deg;--w:25%}
 .gallery-hint{left:7vw;right:7vw;bottom:17px;font-size:6px;letter-spacing:.12em}
 .manifesto,.work{padding:78px 7vw}
 footer{position:relative;z-index:3}
}
@media(max-width:390px){
 .spatial-world{transform:scale(.96);transform-origin:50% 45%}
 .tile-copy b{font-size:11px}
 .gallery-hint{font-size:5px}
}
@media(prefers-reduced-motion:reduce){
 .spatial-tile,.spatial-tile img,.tile-copy i{transition:none!important}
}
.spatial-world{transition:transform .35s ease-out;transform:rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg))}@media(max-width:650px){.spatial-world{transform:none!important}}

/* Image-only gallery: photographic prints arranged on a receding floor */
.spatial-gallery{
 height:100svh;min-height:620px;max-height:none;overflow:hidden;
 padding:0!important;display:block;position:relative;isolation:isolate;
 background:radial-gradient(ellipse at 50% 45%,#202124 0%,#090a0c 66%,#030405 100%)!important;
}
.spatial-world{
 position:absolute;inset:0;width:100%;height:100%;margin:0;
 perspective:1100px;perspective-origin:50% 88%;
 transform-style:preserve-3d;overflow:hidden;
}
.spatial-floor{
 position:absolute;inset:-5% -18% -38%;
 transform:rotateX(67deg);transform-origin:50% 100%;
 background:
  radial-gradient(ellipse at 50% 30%,rgba(255,255,255,.10),transparent 58%),
  repeating-linear-gradient(90deg,transparent 0 150px,rgba(255,255,255,.025) 151px 152px),
  linear-gradient(180deg,#151619 0%,#090a0c 72%,#030405 100%);
 border-top:1px solid rgba(255,255,255,.12);
}
.spatial-floor:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 20%,rgba(0,0,0,.35));}
.spatial-tile{
 position:absolute;left:calc(50% + var(--x));top:var(--y);
 width:var(--w);aspect-ratio:1.42;padding:7px;
 border:0;border-radius:1px;background:#f2f1ed;
 box-shadow:0 16px 30px rgba(0,0,0,.62),0 2px 5px rgba(0,0,0,.8);
 overflow:hidden;cursor:pointer;
 transform:translate(-50%,-50%) translateZ(var(--depth)) rotateX(3deg) rotateZ(var(--r));
 transform-style:preserve-3d;
 transition:transform .5s cubic-bezier(.2,.75,.25,1),box-shadow .4s;
}
.spatial-tile img{
 display:block;width:100%;height:100%;object-fit:cover;
 filter:brightness(.92) saturate(.9);
}
.spatial-tile:before{content:none}
.spatial-tile:hover,.spatial-tile:focus-visible,.spatial-tile.is-selected{
 z-index:20;transform:translate(-50%,-50%) translateZ(90px) rotateX(0) rotateZ(0) scale(1.07);
 box-shadow:0 28px 55px rgba(0,0,0,.8),0 0 0 1px #fff;
}
.tile-photo{--x:-34%;--y:67%;--w:24%;--depth:0px;--r:-3deg}
.tile-film{--x:-8%;--y:60%;--w:22%;--depth:-45px;--r:2deg}
.tile-drone{--x:20%;--y:66%;--w:19%;--depth:-20px;--r:-2deg}
.tile-digital{--x:42%;--y:48%;--w:16%;--depth:-180px;--r:3deg}
.tile-work{--x:-40%;--y:43%;--w:17%;--depth:-210px;--r:-2deg}
.tile-story{--x:-19%;--y:35%;--w:18%;--depth:-250px;--r:2deg}
.tile-portrait{--x:5%;--y:40%;--w:15%;--depth:-220px;--r:-3deg}
.tile-events{--x:30%;--y:29%;--w:13%;--depth:-340px;--r:2deg}
@media(max-width:900px){
 .spatial-gallery{min-height:580px}
 .spatial-world{perspective:900px;perspective-origin:50% 88%}
 .spatial-tile{padding:5px}
 .tile-photo{--x:-34%;--y:70%;--w:31%}
 .tile-film{--x:0%;--y:63%;--w:28%}
 .tile-drone{--x:32%;--y:68%;--w:24%}
 .tile-digital{--x:39%;--y:43%;--w:21%}
 .tile-work{--x:-40%;--y:45%;--w:22%}
 .tile-story{--x:-14%;--y:37%;--w:22%}
 .tile-portrait{--x:15%;--y:43%;--w:18%}
 .tile-events{--x:0%;--y:24%;--w:17%}
}
@media(max-width:650px){
 .spatial-gallery{height:100svh;min-height:600px}
 .spatial-world{perspective:780px;perspective-origin:50% 91%}
 .spatial-floor{inset:-10% -45% -35%;transform:rotateX(68deg)}
 .spatial-tile{padding:4px;aspect-ratio:1.12}
 .tile-photo{--x:-27%;--y:72%;--w:43%;--depth:0px}
 .tile-film{--x:17%;--y:69%;--w:39%;--depth:-35px}
 .tile-drone{--x:44%;--y:54%;--w:30%;--depth:-100px}
 .tile-digital{--x:-43%;--y:52%;--w:28%;--depth:-130px}
 .tile-work{--x:-22%;--y:40%;--w:31%;--depth:-190px}
 .tile-story{--x:13%;--y:42%;--w:29%;--depth:-190px}
 .tile-portrait{--x:42%;--y:33%;--w:23%;--depth:-270px}
 .tile-events{--x:-5%;--y:27%;--w:22%;--depth:-300px}
}
@media(prefers-reduced-motion:reduce){.spatial-tile{transition:none!important}}


/* Mouse-controlled perspective: the whole image field follows the pointer */
.spatial-world{
 transform-origin:50% 72%;
 transform:rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));
 transition:transform .16s ease-out;
 will-change:transform;
}
@media(max-width:650px){.spatial-world{transform:none;transition:none}}
@media(prefers-reduced-motion:reduce){.spatial-world{transition:none!important}}


/* Mouse-controlled perspective: the whole image field follows the pointer */
.spatial-world{
 transform-origin:50% 72%;
 transform:rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));
 transition:transform .16s ease-out;
 will-change:transform;
}
@media(max-width:650px){.spatial-world{transform:none;transition:none}}
@media(prefers-reduced-motion:reduce){.spatial-world{transition:none!important}}


/* Corrected camera: one flat, aligned photo field viewed from low diagonal angle */
.spatial-gallery{
 perspective:1000px!important;
 perspective-origin:50% 82%!important;
 background:radial-gradient(ellipse at 50% 48%,#202124 0%,#0b0c0e 58%,#030405 100%)!important;
}
.spatial-world{
 position:absolute!important;inset:0!important;width:100%!important;height:100%!important;
 margin:0!important;overflow:visible!important;
 transform-origin:50% 84%!important;
 transform:rotateX(57deg) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg))!important;
 transition:transform .16s ease-out!important;
 perspective:none!important;
}
.spatial-floor{
 inset:-10% -25% -35%!important;
 top:0!important;bottom:-20%!important;left:-25%!important;right:-25%!important;
 transform:none!important;transform-origin:50% 100%!important;
 background:
  radial-gradient(ellipse at 50% 45%,rgba(255,255,255,.12),transparent 62%),
  repeating-linear-gradient(90deg,transparent 0 120px,rgba(255,255,255,.025) 121px 122px),
  linear-gradient(180deg,#17181a,#08090b 80%)!important;
 border:0!important;
}
.spatial-floor:after{content:none!important}
.spatial-tile{
 left:calc(50% + var(--x))!important;top:var(--y)!important;
 width:var(--w)!important;aspect-ratio:1.42!important;
 padding:6px!important;border:0!important;border-radius:0!important;
 transform:translate(-50%,-50%)!important;
 rotate:none!important;
 box-shadow:0 12px 22px rgba(0,0,0,.65),0 2px 4px #000!important;
}
.spatial-tile img{width:100%;height:100%;object-fit:cover}
.spatial-tile:hover,.spatial-tile:focus-visible,.spatial-tile.is-selected{
 transform:translate(-50%,-50%) translateZ(22px) scale(1.035)!important;
}
.tile-photo{--x:-36%;--y:90%;--w:19%}
.tile-film{--x:-13%;--y:80%;--w:18%}
.tile-drone{--x:10%;--y:86%;--w:17%}
.tile-digital{--x:33%;--y:75%;--w:16%}
.tile-work{--x:-43%;--y:65%;--w:15%}
.tile-story{--x:-22%;--y:57%;--w:16%}
.tile-portrait{--x:2%;--y:62%;--w:15%}
.tile-events{--x:24%;--y:51%;--w:14%}
@media(max-width:900px){
 .spatial-gallery{perspective:850px!important;perspective-origin:50% 84%!important}
 .spatial-world{transform:rotateX(59deg) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg))!important}
 .spatial-tile{padding:4px!important}
 .tile-photo{--x:-37%;--y:92%;--w:25%}
 .tile-film{--x:-9%;--y:83%;--w:23%}
 .tile-drone{--x:20%;--y:88%;--w:22%}
 .tile-digital{--x:43%;--y:77%;--w:19%}
 .tile-work{--x:-42%;--y:66%;--w:19%}
 .tile-story{--x:-17%;--y:58%;--w:19%}
 .tile-portrait{--x:12%;--y:63%;--w:18%}
 .tile-events{--x:37%;--y:53%;--w:16%}
}
@media(max-width:650px){
 .spatial-gallery{perspective:720px!important;perspective-origin:50% 84%!important}
 .spatial-world{transform:rotateX(62deg)!important;transition:none!important}
 .spatial-floor{inset:-5% -60% -35%!important}
 .spatial-tile{padding:3px!important;aspect-ratio:1.35!important}
 .tile-photo{--x:-36%;--y:93%;--w:34%}
 .tile-film{--x:0%;--y:88%;--w:32%}
 .tile-drone{--x:36%;--y:92%;--w:29%}
 .tile-digital{--x:-43%;--y:74%;--w:27%}
 .tile-work{--x:-13%;--y:77%;--w:28%}
 .tile-story{--x:19%;--y:76%;--w:26%}
 .tile-portrait{--x:44%;--y:68%;--w:22%}
 .tile-events{--x:-30%;--y:60%;--w:22%}
}
@media(prefers-reduced-motion:reduce){.spatial-world{transition:none!important}}


/* Fixed chrome; navigate through the photo plane, not the page */
html,body{height:100%;overflow:hidden!important}
.topbar{position:fixed!important;z-index:50!important}
footer{
 position:fixed!important;z-index:50!important;left:0;right:0;bottom:0;
 margin:0 2.2vw 12px!important;
}
.spatial-gallery{height:100svh!important;min-height:0!important;max-height:none!important}
.spatial-world{
 transform:translateZ(var(--camera-travel,0px)) rotateX(57deg) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg))!important;
 transition:transform .18s ease-out!important;
}
@media(max-width:900px){
 footer{margin:0 10px 8px!important}
}
@media(max-width:650px){
 .spatial-world{transform:translateZ(var(--camera-travel,0px)) rotateX(62deg)!important}
}


/* Long photo runway: the camera moves; the chrome stays fixed */
html,body{width:100%;height:100%;min-height:100%;overflow:hidden!important}
body{overscroll-behavior:none}
main{position:fixed!important;inset:0!important;width:100%;height:100%;overflow:hidden!important}
.topbar{position:fixed!important;top:0!important;left:0!important;right:0!important;z-index:100!important}
footer{
 position:fixed!important;left:0!important;right:0!important;bottom:0!important;
 z-index:100!important;margin:0 2.2vw 12px!important;
 transform:none!important;
}
.spatial-gallery{
 position:absolute!important;inset:0!important;width:100%!important;height:100%!important;
 min-height:0!important;max-height:none!important;overflow:hidden!important;
}
.spatial-world{
 position:absolute!important;left:0!important;top:0!important;width:100%!important;
 height:620vh!important;min-height:620vh!important;inset:auto!important;
 overflow:visible!important;transform-origin:50% 0%!important;
 transform:translate3d(0,var(--camera-y,0px),0) rotateX(57deg)!important;
 transition:transform .11s linear!important;will-change:transform;
}
.spatial-floor{
 position:absolute!important;left:-25%!important;top:0!important;width:150%!important;
 height:620vh!important;inset:auto!important;transform:none!important;
 background:
  radial-gradient(ellipse at 50% 8%,rgba(255,255,255,.12),transparent 48%),
  repeating-linear-gradient(90deg,transparent 0 120px,rgba(255,255,255,.025) 121px 122px),
  repeating-linear-gradient(0deg,transparent 0 180px,rgba(255,255,255,.025) 181px 182px),
  linear-gradient(180deg,#17181a,#08090b 80%)!important;
}
.spatial-tile{
 top:var(--top,var(--y))!important;
 left:calc(50% + var(--x))!important;
 transform:translate(-50%,-50%)!important;
 rotate:none!important;
}
.spatial-tile:hover,.spatial-tile:focus-visible,.spatial-tile.is-selected{
 transform:translate(-50%,-50%) translateZ(28px) scale(1.035)!important;
}
.extra-tile{aspect-ratio:1.42!important}
@media(max-width:900px){
 footer{margin:0 10px 8px!important}
 .spatial-world{transform:translate3d(0,var(--camera-y,0px),0) rotateX(59deg)!important}
}
@media(max-width:650px){
 .spatial-world{transform:translate3d(0,var(--camera-y,0px),0) rotateX(62deg)!important;transition:transform .14s linear!important}
 .spatial-tile{padding:3px!important}
}
@media(prefers-reduced-motion:reduce){.spatial-world{transition:none!important}}


/* Native page scrollbar drives the camera; chrome stays fixed */
html{height:auto!important;min-height:100%;overflow-x:hidden!important;overflow-y:auto!important;scrollbar-gutter:stable}
body{height:620vh!important;min-height:620vh!important;overflow:visible!important;overscroll-behavior-y:contain}
main{position:static!important;inset:auto!important;width:100%;height:0!important;overflow:visible!important}
.spatial-gallery{
 position:fixed!important;inset:0!important;width:100vw!important;height:100svh!important;
 min-height:0!important;max-height:none!important;overflow:hidden!important;z-index:1;
}
.topbar{position:fixed!important;top:0!important;left:0!important;right:0!important;z-index:100!important}
footer{position:fixed!important;left:0!important;right:0!important;bottom:0!important;z-index:100!important;margin:0 2.2vw 12px!important;transform:none!important}
.spatial-world{
 position:absolute!important;left:0!important;top:0!important;width:100%!important;
 height:620vh!important;min-height:620vh!important;inset:auto!important;
 overflow:visible!important;transform-origin:50% 0%!important;
 transform:translate3d(0,var(--scroll-camera-y,0px),0) rotateX(57deg)!important;
 transition:transform .12s linear!important;will-change:transform;
}
.spatial-floor{
 position:absolute!important;left:-25%!important;top:0!important;width:150%!important;
 height:620vh!important;inset:auto!important;transform:none!important;
}
.spatial-tile{width:var(--w)!important;left:calc(50% + var(--x))!important}
@media(max-width:900px){
 footer{margin:0 10px 8px!important}
 .spatial-world{transform:translate3d(0,var(--scroll-camera-y,0px),0) rotateX(59deg)!important}
}
@media(max-width:650px){
 .spatial-world{transform:translate3d(0,var(--scroll-camera-y,0px),0) rotateX(62deg)!important}
}
@media(prefers-reduced-motion:reduce){.spatial-world{transition:none!important}}


/* Mobile composition fix: keep the photo field in the visible viewport */
@media(max-width:650px){
  html,body{
    width:100%!important;height:100%!important;min-height:100%!important;
    overflow:hidden!important;scrollbar-gutter:auto!important;
  }
  body{height:100svh!important;min-height:100svh!important;overscroll-behavior:none}
  main{position:static!important;inset:auto!important;width:100%!important;height:auto!important;overflow:visible!important}
  .spatial-gallery{
    position:fixed!important;inset:0!important;width:100vw!important;height:100svh!important;
    min-height:0!important;max-height:none!important;overflow:hidden!important;z-index:1;
    padding:0!important;
    background:radial-gradient(ellipse at 50% 46%,#202124 0%,#0b0c0e 62%,#030405 100%)!important;
  }
  .spatial-world{
    position:absolute!important;inset:0!important;width:100%!important;height:100%!important;
    min-height:0!important;margin:0!important;overflow:hidden!important;
    transform:none!important;transform-origin:50% 50%!important;
    perspective:none!important;transform-style:flat!important;transition:none!important;
  }
  .spatial-floor{display:none!important}
  .spatial-tile{
    position:absolute!important;left:calc(50% + var(--x))!important;top:var(--top)!important;
    width:43%!important;aspect-ratio:1.42!important;height:auto!important;
    padding:4px!important;border:1px solid rgba(255,255,255,.52)!important;
    border-radius:3px!important;background:#f2f1ed!important;
    transform:translate(-50%,-50%) rotate(var(--r,0deg))!important;
    transform-style:flat!important;box-shadow:0 12px 28px rgba(0,0,0,.62)!important;
    filter:none!important;z-index:2;
  }
  .spatial-tile img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important}
  .spatial-tile:hover,.spatial-tile:focus-visible,.spatial-tile.is-selected{
    transform:translate(-50%,-50%) scale(1.035)!important;z-index:10;
  }
  .tile-digital{--x:-25%;--top:23%;--r:-2deg}
  .tile-work{--x:25%;--top:23%;--r:2deg}
  .tile-photo{--x:-25%;--top:41%;--r:-2deg}
  .tile-film{--x:25%;--top:41%;--r:2deg}
  .tile-story{--x:-25%;--top:59%;--r:2deg}
  .tile-drone{--x:25%;--top:59%;--r:-2deg}
  .tile-portrait{--x:-25%;--top:77%;--r:-2deg}
  .tile-events{--x:25%;--top:77%;--r:2deg}
  .extra-tile{display:none!important}
  footer{
    position:fixed!important;left:10px!important;right:10px!important;bottom:8px!important;
    z-index:100!important;margin:0!important;min-height:64px!important;
    padding:8px 12px!important;gap:8px!important;
  }
  .topbar{position:fixed!important;top:8px!important;left:10px!important;right:10px!important;z-index:100!important}
}
