:root{color-scheme:dark;--gold:#c8aa73;--paper:#f2eee6;--black:#090909}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--black);color:var(--paper);font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit}header{position:fixed;top:0;left:0;right:0;z-index:10;display:flex;justify-content:space-between;align-items:center;padding:25px 5%;background:linear-gradient(#090909ee,transparent)}.brand{font-family:Georgia,serif;font-size:23px;letter-spacing:3px}.brand span{display:block;font:10px Arial;letter-spacing:6px;margin-top:6px}nav{display:flex;gap:35px;align-items:center;font-size:14px}.contact{border:1px solid #7775;padding:13px 20px;border-radius:30px}.contact span{margin-left:15px;color:var(--gold)}.journey{height:300vh}.stage{height:100svh;min-height:650px;position:sticky;top:0;overflow:hidden;background:#090909}.intro{position:absolute;left:7%;top:23%;z-index:3;transform:translateY(calc(var(--p,0)*-100px));opacity:var(--intro,1)}.eyebrow{font-size:12px;letter-spacing:3px;color:var(--gold);line-height:1.8}h1,h2,p{margin-top:0}h1{font-size:clamp(60px,7.4vw,115px);font-weight:400;line-height:.99;letter-spacing:-5px;margin-bottom:28px}em{font-family:Georgia,serif;font-weight:400;color:var(--gold)}.lead{font-size:17px;color:#bbb;line-height:1.5}.camera-wrap{position:absolute;inset:0;transform:translateX(calc(14% - var(--p,0)*14%)) scale(calc(1 + var(--p,0)*.55));opacity:var(--cam,1);will-change:transform}.camera{width:100%;height:100%;object-fit:contain;mix-blend-mode:lighten}.stage-bottom{position:absolute;bottom:40px;left:7%;right:7%;display:flex;justify-content:space-between;font-size:12px;letter-spacing:2px;color:#bdb7ad;z-index:5}.progress{position:absolute;bottom:0;height:2px;width:100%;background:#333}.progress i{display:block;height:100%;width:calc(var(--p,0)*100%);background:var(--gold)}.reveal-title{position:absolute;top:24%;left:0;right:0;text-align:center;opacity:var(--reveal,0);transform:translateY(calc((1 - var(--p,0))*60px));z-index:4;pointer-events:none}h2{font-size:clamp(48px,6vw,86px);line-height:1.05;letter-spacing:-2.5px;font-weight:400;margin-bottom:25px}.floating{position:absolute;inset:0;opacity:var(--reveal,0);pointer-events:none}.floating>img,.mini-film{position:absolute;width:18%;height:35%;object-fit:cover;box-shadow:0 20px 90px #000;top:35%;border:1px solid #a8895744}.floating>img:first-child{left:6%;transform:translateX(calc((1 - var(--p,0))*170px)) rotate(-9deg)}.floating>img:last-child{right:6%;transform:translateX(calc((1 - var(--p,0))*-170px)) rotate(8deg)}.mini-film{left:40%;top:61%;width:20%;height:29%;transform:rotate(-3deg);overflow:hidden}.mini-film video{width:100%;height:100%;object-fit:cover}.mini-film span{position:absolute;bottom:10px;left:12px;font-size:12px;letter-spacing:1px}.work{padding:110px 7% 100px}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:48px}.section-head>p{font-size:16px;line-height:1.8;color:#aaa}.film-card{margin:0 0 70px}.film-card video{width:100%;max-height:72vh;background:#111;display:block}.caption{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #333;padding:20px 0}h3{font-size:19px;font-weight:400;margin:0}.caption>span{font-size:12px;color:var(--gold);letter-spacing:2px}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.photo{background:none;border:0;color:inherit;padding:0;text-align:left;cursor:zoom-in}.photo img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block;transition:filter .3s}.photo:hover img{filter:brightness(1.13)}.photo>span{font-size:16px;display:block;margin-top:20px}.photo small{display:block;font-size:12px;letter-spacing:2px;color:var(--gold);margin-top:10px}.end{padding:110px 10%;display:grid;grid-template-columns:1fr 1.2fr;gap:12%;align-items:center;border-top:1px solid #292929;background:#10100f}.logo{width:100%;max-width:320px;border-radius:2px}.end p:not(.eyebrow){font-size:17px;color:#aaa;line-height:1.7}.cta{display:inline-block;border-bottom:1px solid var(--gold);padding:14px 0;font-size:18px;color:var(--gold)}footer{padding:30px 7%;display:flex;justify-content:space-between;gap:20px;color:#999;font-size:12px}dialog{border:0;background:#111;padding:0;max-width:94vw;max-height:94svh}dialog::backdrop{background:#000e}dialog img{display:block;max-width:90vw;max-height:88svh}.close{position:fixed;right:25px;top:20px;border:1px solid #777;background:#111;color:#fff;font-size:30px;width:48px;height:48px;border-radius:50%;cursor:pointer}a:focus-visible,button:focus-visible{outline:2px solid var(--gold);outline-offset:5px}@media(max-width:700px){header{padding:22px 6%}.brand{font-size:18px}nav{gap:14px}nav>a:first-child{display:none}.contact{padding:10px 13px;font-size:12px}.stage{min-height:600px}.intro{top:19%;left:7%}h1{font-size:66px;letter-spacing:-3px}.lead{max-width:220px;font-size:16px}.camera-wrap{inset:30% -30% 1%;transform:translateX(0) scale(calc(1 + var(--p,0)*.3))}.stage-bottom{font-size:10px;letter-spacing:1px;bottom:28px}.chapter{display:none}.reveal-title{top:22%}.floating>img{width:30%;height:24%;top:54%}.floating>img:first-child{left:1%}.floating>img:last-child{right:1%}.mini-film{width:34%;height:24%;left:33%;top:62%}.mini-film span{font-size:10px}.work{padding:70px 6%}.section-head{display:block;margin-bottom:30px}.section-head>p{font-size:15px}.photo-grid{grid-template-columns:1fr;gap:40px}.photo img{aspect-ratio:4/5}.film-card{margin-bottom:40px}.end{padding:65px 7%;grid-template-columns:1fr;gap:40px}.logo{width:120px}.end h2{font-size:58px}footer{flex-wrap:wrap;line-height:1.6}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.journey{height:100svh}.intro{opacity:1!important;transform:none!important}.camera-wrap{transform:none!important;opacity:1!important}.reveal-title,.floating{display:none}.progress{display:none}}
/* Perspective scene occupies the full viewport; the artwork is a WebGL fallback. */
.journey{height:420vh}.camera-wrap{inset:0;transform:none!important}.camera-wrap canvas{width:100%;height:100%;display:block}.camera-wrap.has-3d>.camera{display:none}.intro{top:20%;pointer-events:none}.intro h1{font-size:clamp(54px,6vw,86px)}.intro .lead{max-width:210px}.capture-flash{position:absolute;inset:0;background:#fff;opacity:0;pointer-events:none;z-index:8}@keyframes capture{0%{opacity:0}15%{opacity:.8}100%{opacity:0}}.reveal-title{top:20%}@media(max-width:700px){.camera-wrap{inset:10% 0 0}.intro{top:17%}.intro h1{font-size:52px}.intro .lead{font-size:14px}.reveal-title{top:20%}}@media(prefers-reduced-motion:reduce){.journey{height:100svh}.capture-flash{display:none}}
/* Photographic studio treatment; layered photographic states replace the schematic mesh. */
.stage{background:#111314}.studio-backdrop{position:absolute;inset:-3%;background:linear-gradient(#11131433,#09090988),url('sony-studio.png') center/cover;filter:blur(20px) brightness(.55);opacity:.6}.photo-scene{inset:0!important;opacity:var(--cam,1);transform:scale(var(--zoom,1))!important;will-change:transform;pointer-events:none}.camera-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:58% 50%;display:block}.camera-assembled{opacity:calc(1 - var(--breakup,0))}.camera-exploded{opacity:var(--breakup,0)}.photo-scene::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#08090ad9 0%,#08090a55 30%,transparent 55%),linear-gradient(0deg,#090909 0%,transparent 20%,transparent 82%,#09090944)}.intro{top:25%;max-width:43%;text-shadow:0 2px 25px #0007}.intro .eyebrow{color:#d9c39d}.intro .lead{max-width:300px;color:#d1d1d1}.intro h1{font-size:clamp(54px,6.8vw,100px)}.reveal-title{text-shadow:0 3px 30px #000}.stage-bottom{color:#e7e3db}.journey{height:340vh}.floating{z-index:4}.reveal-title{z-index:5}@media(max-width:700px){.intro{top:16%;max-width:90%;left:7%}.intro h1{font-size:55px}.intro .lead{font-size:15px}.photo-scene{inset:24% -26% 9%!important}.camera-photo{object-fit:contain;object-position:58% 50%}.photo-scene::after{background:linear-gradient(0deg,#111314 0%,transparent 18%,transparent 80%,#111314)}.studio-backdrop{filter:blur(28px) brightness(.38);opacity:1}.reveal-title{top:22%}.intro .eyebrow{font-size:11px}.journey{height:320vh}}@media(prefers-reduced-motion:reduce){.journey{height:100svh}.photo-scene{transform:none!important;opacity:1!important}.camera-assembled{opacity:1!important}.camera-exploded{display:none}}
@media(min-width:701px){.intro{top:20%;max-width:35%}.intro h1{font-size:clamp(48px,5.3vw,80px);letter-spacing:-3px}.photo-scene::after{background:linear-gradient(90deg,#08090ad9 0%,#08090a44 26%,transparent 43%),linear-gradient(0deg,#090909 0%,transparent 20%,transparent 82%,#09090944)}}
.camera-exploded{object-fit:contain}@media(max-width:700px){.camera-exploded{transform:scale(.66)}}
.camera-exploded,.floating,.reveal-title{display:none!important}.camera-assembled{opacity:1!important}.photo-scene{transform:translate(var(--dive-x,0px),var(--dive-y,0px)) scale(var(--dive-scale,1))!important;opacity:var(--camera-opacity,1)!important}.photo-scene::after{opacity:var(--intro,1)}.lens-portal{position:absolute;inset:0;z-index:6;background:#050505;visibility:hidden;clip-path:circle(0px at 50% 50%);will-change:clip-path}.lens-portal video{width:100%;height:100%;object-fit:contain;display:block}.stage-bottom{z-index:7;pointer-events:none;bottom:64px;text-shadow:0 2px 10px #000}.progress{z-index:9}.intro{z-index:7}.journey{height:400vh}@media(prefers-reduced-motion:reduce){.photo-scene{transform:none!important;opacity:1!important}.lens-portal{display:none}.journey{height:100svh}}
