/* ============ INSiDEMEDIA — site ============ */
:root{
  --black:#050505;--ink:#0b0b0b;--ink2:#121212;--plat:#c7c7c7;--white:#fff;--mut:#8d8d8d;
  --line:rgba(255,255,255,.14);--line2:rgba(255,255,255,.07);
  --disp:'Syne',system-ui,sans-serif;--serif:'Instrument Serif',Georgia,serif;--body:'Inter',system-ui,sans-serif;--mono:'JetBrains Mono',ui-monospace,monospace;
  --pad:clamp(20px,4vw,64px);--ease:cubic-bezier(.19,1,.22,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{overflow-x:hidden;scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--black);color:var(--white);font:400 16px/1.6 var(--body);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,video,iframe{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
::selection{background:var(--white);color:var(--black)}
.wrap{padding-inline:var(--pad)}
.mono{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--plat)}
.serif{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.01em;text-transform:none}
.disp{font-family:var(--disp);font-weight:800;text-transform:uppercase;letter-spacing:-.035em;line-height:.9}
.plat{color:var(--plat)}
.noise::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.07;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}

/* reveal */
.rv{opacity:0;transform:translateY(34px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease);transition-delay:var(--d,0s)}
.rv.in{opacity:1;transform:none}
.ln{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}.ln>span{display:block;transform:translateY(110%);transition:transform 1.2s var(--ease);transition-delay:var(--d,0s)}
.in .ln>span,.ln.in>span{transform:none}
.clip{clip-path:inset(0 0 100% 0);transition:clip-path 1.4s var(--ease)}.clip.in{clip-path:inset(0)}
@media(prefers-reduced-motion:reduce){.rv,.ln>span,.clip{transition:none;opacity:1;transform:none;clip-path:none}html{scroll-behavior:auto}}

/* cursor */
.cur{position:fixed;left:0;top:0;width:12px;height:12px;border-radius:50%;background:#fff;mix-blend-mode:difference;pointer-events:none;z-index:999;transform:translate(-50%,-50%);transition:width .35s var(--ease),height .35s var(--ease);display:none}
.cur span{position:absolute;inset:0;display:grid;place-items:center;font:600 10px var(--mono);letter-spacing:.1em;color:#000;opacity:0;text-transform:uppercase}
.cur.mid{width:46px;height:46px}.cur.big{width:84px;height:84px;mix-blend-mode:normal;background:#fff}.cur.big span{opacity:1}
@media(hover:hover) and (pointer:fine){.cur{display:block}}

/* ---------- nav ---------- */
.nav{position:fixed;inset:0 0 auto 0;z-index:100;display:flex;align-items:center;gap:30px;padding:22px var(--pad);transition:background .5s,padding .5s,transform .6s var(--ease)}
.nav.solid{background:rgba(5,5,5,.72);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);padding-block:14px;border-bottom:1px solid var(--line2)}
.nav.hide{transform:translateY(-100%)}
.nav .logo{display:flex;align-items:center;gap:12px}.nav .logo img{height:34px;width:auto}
.nav .logo b{font:800 15px var(--disp);letter-spacing:.02em}.nav .logo b i{font-style:normal;color:var(--plat);font-weight:700}
.nav .links{display:flex;gap:34px;margin-inline:auto}
.nav .links a,.nav .lang a{font:500 12px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--plat);position:relative;transition:color .3s}
.nav .links a:hover,.nav .lang a:hover,.nav .lang a.on{color:#fff}
.nav .links a:after{content:"";position:absolute;left:0;right:100%;bottom:-6px;height:1px;background:#fff;transition:right .5s var(--ease)}.nav .links a:hover:after{right:0}
.nav .lang{display:flex;gap:12px}.nav .lang a{font-size:11px}.nav .lang a.on{border-bottom:1px solid #fff}
.btn-s{display:inline-flex;align-items:center;gap:10px;padding:11px 20px;border:1px solid var(--line);border-radius:99px;font:500 11px var(--mono);letter-spacing:.16em;text-transform:uppercase;transition:.4s var(--ease);position:relative;overflow:hidden;white-space:nowrap}
.btn-s:hover{background:#fff;color:#000;border-color:#fff}
.burger{display:none;font:500 12px var(--mono);letter-spacing:.16em;text-transform:uppercase;margin-left:auto}
.menu{overflow:hidden;position:fixed;inset:0;background:var(--black);z-index:99;display:flex;flex-direction:column;justify-content:center;padding:var(--pad);clip-path:inset(0 0 100% 0);transition:clip-path .9s var(--ease);visibility:hidden}
.menu.open{clip-path:inset(0);visibility:visible}
.menu a.big{font:800 clamp(24px,8.2vw,76px)/1.1 var(--disp);text-transform:uppercase;letter-spacing:-.04em;display:block;padding:4px 0;border-bottom:1px solid var(--line2)}
.menu a.big small{font:500 11px var(--mono);color:var(--mut);letter-spacing:.14em;margin-right:14px;vertical-align:middle}
.menu .lang{display:flex;gap:18px;margin-top:30px}.menu .lang a{font:500 13px var(--mono);letter-spacing:.14em;color:var(--mut)}.menu .lang a.on{color:#fff}
@media(max-width:900px){.nav .links,.nav .lang,.nav .btn-s{display:none}.burger{display:block}}

/* ---------- hero ---------- */
.hero{position:relative;height:100svh;min-height:640px;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;padding:0 var(--pad) clamp(28px,5vh,56px)}
.hero .bg{position:absolute;inset:0;z-index:0;background:var(--ink)}
.hero .bg video,.hero .bg iframe,.hero .slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero .bg iframe{width:max(100vw,177.78vh);height:max(100vh,56.25vw);left:50%;top:50%;transform:translate(-50%,-50%);border:0;pointer-events:none}
.hero .slide{opacity:0;transform:scale(1.12);transition:opacity 1.8s ease,transform 9s linear;filter:grayscale(.2) contrast(1.05)}
.hero .slide.on{opacity:1;transform:scale(1)}
.hero .shade{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(5,5,5,.55) 0%,rgba(5,5,5,.15) 38%,rgba(5,5,5,.7) 78%,#050505 100%)}
.hero .c{position:relative;z-index:2}
.hero h1{font-size:clamp(24px,7.7vw,190px);line-height:.82;white-space:nowrap;margin-left:-.04em}
.hero h1 em{font-style:normal;color:var(--plat)}
.hero h1 .i{text-transform:lowercase;font-weight:800}
.hero .row{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-top:clamp(18px,3vh,34px);flex-wrap:wrap}
.hero .lines{display:flex;gap:clamp(14px,2.4vw,40px);flex-wrap:wrap;font:500 clamp(11px,1vw,13px) var(--mono);letter-spacing:.18em;text-transform:uppercase}
.hero .lines span{display:flex;align-items:center;gap:14px}.hero .lines span+span:before{content:"";width:28px;height:1px;background:var(--plat)}
.hero .scroll{display:flex;align-items:center;gap:12px}.hero .scroll i{display:block;width:1px;height:46px;background:linear-gradient(#fff,transparent);animation:drip 2.2s infinite}
@keyframes drip{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.hero .count{position:absolute;right:var(--pad);top:50%;z-index:2;writing-mode:vertical-rl;color:var(--plat)}
.hero .fall{position:absolute;inset:0;background:radial-gradient(900px 600px at 70% 30%,#1f1f1f,transparent),radial-gradient(700px 500px at 15% 90%,#161616,transparent);animation:breathe 10s ease-in-out infinite alternate}
@keyframes breathe{to{transform:scale(1.25) translate(-3%,2%);opacity:.7}}

/* marquee */
.mq{border-block:1px solid var(--line2);overflow:hidden;padding:clamp(18px,3vw,34px) 0;white-space:nowrap}
.mq .t{display:inline-flex;gap:clamp(30px,5vw,80px);animation:mq 32s linear infinite;padding-right:clamp(30px,5vw,80px)}
.mq span{font:800 clamp(34px,6.5vw,104px)/1 var(--disp);text-transform:uppercase;letter-spacing:-.03em;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.55)}
.mq span:nth-child(even){color:#fff;-webkit-text-stroke:0}
.mq span.s{font:italic 400 clamp(34px,6.5vw,104px)/1 var(--serif);text-transform:none;-webkit-text-stroke:0;color:var(--plat)}
@keyframes mq{to{transform:translateX(-50%)}}

/* ---------- we create ---------- */
.create{position:relative;padding:clamp(90px,16vh,190px) var(--pad) clamp(60px,10vh,120px)}
.create .ey{display:flex;justify-content:space-between;margin-bottom:clamp(40px,8vh,90px)}
.create h2{font-size:clamp(48px,11vw,200px);margin-bottom:.12em}
.create .scrub{font:800 clamp(30px,5.4vw,96px)/1 var(--disp);text-transform:uppercase;letter-spacing:-.035em}
.create .scrub .w{opacity:.14;transition:opacity .5s}.create .scrub .w.lit{opacity:1}
.create .scrub .w.sf{font:italic 400 1.05em/.9 var(--serif);text-transform:none;letter-spacing:-.01em;color:var(--plat)}
.create p{max-width:460px;margin:clamp(40px,7vh,80px) 0 0 auto;color:var(--plat);font-size:clamp(15px,1.3vw,18px)}

/* ---------- section head ---------- */
.sh{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:clamp(30px,6vh,70px);flex-wrap:wrap}
.sh h2{font-size:clamp(26px,7.2vw,130px)}
.link-a{display:inline-flex;align-items:center;gap:14px;font:500 12px var(--mono);letter-spacing:.16em;text-transform:uppercase;padding-bottom:6px;border-bottom:1px solid var(--line);transition:.4s}
.link-a:hover{border-color:#fff;gap:22px}

/* ---------- the wall ---------- */
.wall{padding:clamp(50px,8vh,110px) var(--pad)}
.wall .cols{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(10px,1.4vw,22px);align-items:start}
.wall .col{display:flex;flex-direction:column;gap:clamp(10px,1.4vw,22px)}
.wall .col:nth-child(2){margin-top:clamp(40px,9vw,160px)}
.wall .col:nth-child(3){margin-top:clamp(0px,3vw,60px)}
.tile{position:relative;overflow:hidden;background:var(--ink2);display:block;aspect-ratio:var(--ar,4/5);isolation:isolate}
.tile img,.tile video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease),filter .8s,opacity .6s;filter:grayscale(.35) contrast(1.05) brightness(.92)}
.tile video{opacity:0}.tile.vid:hover video{opacity:1}
.tile:hover img,.tile:hover video{transform:scale(1.07);filter:none}
.tile .ov{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(14px,1.6vw,26px);background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.82));transition:background .5s}
.tile .ov .top{opacity:0;transition:opacity .5s}
.tile:hover .ov{background:linear-gradient(180deg,rgba(0,0,0,.45),transparent 35%,transparent 45%,rgba(0,0,0,.88))}.tile:hover .ov .top{opacity:1}
.tile .ov .t{font:800 clamp(18px,2vw,32px)/1 var(--disp);text-transform:uppercase;letter-spacing:-.02em;margin-top:6px}
.tile .ov .top,.tile .ov .bot{display:flex;justify-content:space-between;gap:10px}
.tile .num{display:none}
.wall .cols:hover .tile:not(:hover) img{filter:grayscale(1) brightness(.5)}
@media(max-width:760px){.wall .cols{grid-template-columns:1fr 1fr}.wall .col:nth-child(3){display:none}.wall .col:nth-child(2){margin-top:30px}.tile .ov .top{display:none}.tile .ov .t{font-size:15px}.tile .ov .bot span[style]{display:none}}

/* ---------- services (what we do) ---------- */
.svc{padding:clamp(60px,10vh,130px) var(--pad);position:relative}
.svc .grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(30px,5vw,90px);align-items:start}
.svc .list{border-top:1px solid var(--line);container-type:inline-size;min-width:0}
.row-s{padding-right:24px;display:grid;grid-template-columns:56px 1fr;grid-template-areas:'n h' '. t';align-items:center;column-gap:18px;row-gap:12px;padding:clamp(22px,3.6vw,44px) 0;border-bottom:1px solid var(--line);position:relative;transition:padding .6s var(--ease),color .4s}
.row-s .n{grid-area:n;font:500 12px var(--mono);letter-spacing:.14em;color:var(--mut)}
.row-s h3{min-width:0;grid-area:h;font:800 clamp(22px,5.4cqw,80px)/.95 var(--disp);text-transform:uppercase;letter-spacing:-.04em;overflow-wrap:anywhere;color:rgba(255,255,255,.35);transition:color .5s,transform .7s var(--ease)}
.row-s .tg{grid-area:t;max-width:420px;color:var(--mut);font-size:14px;transform:translateX(18px);transition:color .4s}
.row-s .ar{font-size:30px;transition:transform .5s var(--ease)}
.row-s.on h3{color:#fff;transform:translateX(18px)}.row-s.on .tg{color:var(--plat)}
.svc .stage{position:sticky;top:12vh;aspect-ratio:4/5;overflow:hidden;background:var(--ink2)}
.svc .stage .im{position:absolute;inset:0;opacity:0;transition:opacity .9s;transform:scale(1.08)}.svc .stage .im.on{opacity:1;animation:zoomout 1.6s var(--ease) forwards}
@keyframes zoomout{to{transform:scale(1)}}
.svc .stage .im img,.svc .stage .im video{width:100%;height:100%;object-fit:cover;filter:grayscale(.2)}
.svc .stage .cap{position:absolute;left:18px;bottom:18px;z-index:3}
.svc .stage:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 60%,rgba(0,0,0,.75));z-index:2;pointer-events:none}
@media(max-width:1100px){.svc .grid{grid-template-columns:minmax(0,1fr)}.svc .stage{display:none}.row-s{grid-template-columns:32px minmax(0,1fr)}.row-s .tg{transform:none}.row-s h3{color:#fff;font-size:clamp(20px,6.4cqw,56px)}}

/* ---------- shot with intention ---------- */
.shot{position:relative;min-height:72vh;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;padding:clamp(80px,14vh,160px) var(--pad) clamp(30px,6vh,60px)}
.shot .bg{position:absolute;inset:-12% 0;z-index:0}
.shot .bg img,.shot .bg video,.bgv video{width:100%;height:100%;object-fit:cover;filter:grayscale(.3) brightness(.55)}
.shot .shade,.bgv .shade{position:absolute;inset:0;z-index:1;background:linear-gradient(#050505,rgba(5,5,5,.15) 30%,rgba(5,5,5,.25) 70%,#050505)}
.shot h2{position:relative;z-index:2;font-size:clamp(40px,11vw,200px);line-height:.86}
.shot h2 .serif{display:block;font-size:.8em;color:var(--plat);margin-top:.05em;margin-left:.6em}
.shot .tx{position:relative;z-index:2;max-width:380px;margin-left:auto;color:var(--plat)}
.shot .meta{position:relative;z-index:2;display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--line)}
.shot .meta div{padding:18px 14px 0 0;border-right:0}.shot .meta div b{display:block;font:500 11px var(--mono);letter-spacing:.14em;color:var(--mut);margin-bottom:6px}.shot .meta div span{font:800 clamp(14px,1.6vw,24px) var(--disp);text-transform:uppercase}
.bgv{position:absolute;inset:0;z-index:0;overflow:hidden}.bgv iframe{position:absolute;left:50%;top:50%;width:max(100vw,177.78vh);height:max(100vh,56.25vw);transform:translate(-50%,-50%);border:0;pointer-events:none}
@media(max-width:700px){.shot .meta{grid-template-columns:1fr 1fr}.shot{min-height:100vh}}

/* ---------- why ---------- */
.why{padding:clamp(100px,18vh,220px) var(--pad);display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(30px,6vw,120px);align-items:end}
.why h2{font-size:clamp(46px,9vw,170px)}
.why h2 .serif{display:block;font-size:.7em;color:var(--plat);margin-top:.12em}
.why p{color:var(--plat);max-width:420px;margin-top:34px}
.steps{list-style:none;position:relative;padding-left:34px}
.steps:before{content:"";position:absolute;left:5px;top:8px;bottom:8px;width:1px;background:var(--line)}
.steps li{position:relative;padding:14px 0;font:800 clamp(24px,3vw,46px)/1 var(--disp);text-transform:uppercase;letter-spacing:-.03em;color:rgba(255,255,255,.3);transition:color .6s}
.steps li:before{content:"";position:absolute;left:-34px;top:50%;width:11px;height:11px;border-radius:50%;background:var(--black);border:1px solid var(--plat);transform:translateY(-50%);transition:.5s}
.steps li small{font:500 11px var(--mono);letter-spacing:.14em;margin-left:12px;vertical-align:middle;color:var(--mut)}
.steps li.lit{color:#fff}.steps li.lit:before{background:#fff}
@media(max-width:900px){.why{grid-template-columns:1fr}}

/* ---------- digital (light) ---------- */
.dig{background:var(--white);color:var(--black);padding:clamp(90px,16vh,200px) var(--pad);position:relative;overflow:hidden}
.dig .mono{color:#666}
.dig h2{font-size:clamp(50px,11vw,200px);margin:.1em 0 clamp(40px,8vh,90px)}
.dig h2 .serif{color:#777;font-size:.9em}
.dig .tri{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.4vw,40px)}
.dig .it{border-top:1px solid #000;padding-top:20px}
.dig .it h3{font:800 clamp(26px,3vw,46px) var(--disp);text-transform:uppercase;letter-spacing:-.03em;margin-bottom:8px}
.dig .it p{color:#444;max-width:300px;margin-bottom:28px}
.mock{aspect-ratio:4/3.3;background:#f0f0f0;border:1px solid #d6d6d6;border-radius:6px;position:relative;overflow:hidden;transition:transform .8s var(--ease)}
.dig .it:hover .mock{transform:translateY(-8px)}
.mock.web:before{content:"";position:absolute;left:0;right:0;top:0;height:22px;background:#e2e2e2;border-bottom:1px solid #d0d0d0}
.mock.web .d{position:absolute;top:8px;left:10px;width:6px;height:6px;border-radius:50%;background:#aaa;box-shadow:12px 0 #aaa,24px 0 #aaa}
.mock.web .b1{position:absolute;left:8%;top:38px;width:56%;height:11%;background:#050505;border-radius:3px}
.mock.web .b2{position:absolute;left:8%;top:58px;width:40%;height:5%;background:#bbb;border-radius:3px;margin-top:6%}
.mock.web .b3{position:absolute;left:8%;right:8%;bottom:8%;height:44%;background:linear-gradient(120deg,#050505,#555);border-radius:4px;overflow:hidden}
.mock.web .b3:after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.25) 50%,transparent 70%);animation:sheen 3.4s infinite}
@keyframes sheen{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
.mock.app{display:grid;place-items:center;background:#e9e9e9}
.mock.app .phn{width:34%;aspect-ratio:9/18;background:#050505;border-radius:16px;padding:6px;box-shadow:0 20px 40px rgba(0,0,0,.25);transform:rotate(-6deg)}
.mock.app .phn i{display:block;height:100%;border-radius:11px;background:linear-gradient(#222,#111);position:relative;overflow:hidden}
.mock.app .phn i:before,.mock.app .phn i:after{content:"";position:absolute;left:10%;right:10%;height:14%;border-radius:5px;background:#c7c7c7;top:16%}.mock.app .phn i:after{top:38%;background:#444;height:32%}
.mock.app .phn2{position:absolute;width:30%;aspect-ratio:9/18;background:#fff;border:1px solid #bbb;border-radius:16px;right:12%;top:20%;transform:rotate(8deg)}
.mock.ai{background:#050505}
.mock.ai svg{position:absolute;inset:0;width:100%;height:100%}
.mock.ai .pulse{animation:pulse 2.4s infinite;transform-origin:center;transform-box:fill-box}
@keyframes pulse{50%{opacity:.35;transform:scale(1.4)}}
@media(max-width:800px){.dig .tri{grid-template-columns:1fr}}

/* ---------- archive ---------- */
.arch{padding:clamp(90px,14vh,170px) var(--pad)}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:34px}
.chip{padding:10px 18px;border:1px solid var(--line);border-radius:99px;font:500 11px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--plat);transition:.35s}
.chip:hover{border-color:#fff;color:#fff}.chip.on{background:#fff;color:#000;border-color:#fff}
.chip sup{font-size:9px;opacity:.6;margin-left:4px}
.mas{columns:3;column-gap:clamp(10px,1.4vw,22px)}
.mas .tile{break-inside:avoid;margin-bottom:clamp(10px,1.4vw,22px);transition:opacity .6s var(--ease),transform .7s var(--ease)}
.mas .tile.fade{opacity:0;transform:scale(.94)}
.mas .tile.hid{display:none}
@media(max-width:900px){.mas{columns:2}}@media(max-width:520px){.mas{columns:1}}

/* ---------- studio ---------- */
.studio{padding:clamp(70px,11vh,130px) var(--pad);border-top:1px solid var(--line2);position:relative;overflow:hidden}
.studio .mk{position:absolute;right:-6%;top:6%;width:min(44vw,640px);opacity:.06;pointer-events:none}
.studio .grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,110px);position:relative}
.studio h2{font-size:clamp(26px,7vw,110px)}
.studio h2 .serif{color:var(--plat)}
.studio p{color:var(--plat);font-size:clamp(15px,1.25vw,18px);margin-bottom:20px;max-width:560px}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:50px;border-top:1px solid var(--line);padding-top:26px}
.stats b{display:block;font:800 clamp(40px,5vw,84px)/1 var(--disp);letter-spacing:-.04em}.stats span{font:500 11px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--mut)}
.vals{display:flex;gap:clamp(14px,2vw,34px);flex-wrap:wrap;margin-top:34px}.vals span{font:italic 400 clamp(26px,3vw,48px) var(--serif);color:var(--plat)}.vals span:not(:last-child):after{content:"/";margin-left:clamp(14px,2vw,34px);color:var(--mut);font-style:normal}
@media(max-width:900px){.studio .grid{grid-template-columns:1fr}}

/* ---------- CTA ---------- */
.cta{position:relative;min-height:56vh;display:grid;place-items:center;text-align:center;overflow:hidden;padding:clamp(70px,12vh,120px) var(--pad)}
.cta .bgv{background:var(--ink)}.cta .bgv img,.cta .bgv video{width:100%;height:100%;object-fit:cover;filter:grayscale(1) brightness(.35)}
.cta .bgv:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,transparent,#050505 85%)}
.cta .in2{position:relative;z-index:2}
.cta h2{font-size:clamp(30px,6.6vw,130px);line-height:.88}
.cta h2 .serif{display:block;font-size:.88em;color:var(--plat)}
.cta .go{display:inline-flex;align-items:center;gap:18px;margin-top:clamp(30px,6vh,64px);padding:22px 38px;border-radius:99px;background:#fff;color:#000;font:700 13px var(--mono);letter-spacing:.16em;text-transform:uppercase;transition:.5s var(--ease)}
.cta .go:hover{background:var(--plat);gap:30px}
.cta .em{display:block;margin-top:26px;font:500 clamp(16px,2vw,26px) var(--mono);color:var(--plat)}

/* ---------- contact ---------- */
.contact{padding:clamp(60px,10vh,120px) var(--pad)}.contact .cg{display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(30px,6vw,110px);margin-top:clamp(30px,6vh,70px)}
.contact h2{font-size:clamp(24px,7.4vw,150px)}
.contact .info{margin-top:0;display:grid;gap:22px;color:var(--plat)}
.contact .info a:hover{color:#fff}
.form{display:grid;gap:34px}
.fld{position:relative}
.fld label,.grp>span{display:block;font:500 11px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--mut);margin-bottom:6px}
.fld input,.fld textarea{width:100%;background:none;border:0;border-bottom:1px solid var(--line);color:#fff;font:400 clamp(18px,2vw,26px) var(--body);padding:10px 0;outline:0;transition:border-color .4s;border-radius:0}
.fld textarea{resize:vertical;min-height:110px}
.fld input:focus,.fld textarea:focus{border-color:#fff}
.two{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.grp .opts{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.grp label{cursor:pointer}.grp input{position:absolute;opacity:0;pointer-events:none}
.grp .opts span{display:inline-block;padding:11px 18px;border:1px solid var(--line);border-radius:99px;font:500 12px var(--mono);letter-spacing:.08em;color:var(--plat);transition:.3s;text-transform:uppercase}
.grp input:checked+span{background:#fff;color:#000;border-color:#fff}.grp label:hover span{border-color:#fff}
.send{justify-self:start;display:inline-flex;gap:18px;align-items:center;padding:22px 40px;border-radius:99px;background:#fff;color:#000;font:700 13px var(--mono);letter-spacing:.16em;text-transform:uppercase;transition:.5s var(--ease)}
.send:hover{background:var(--plat);gap:30px}.send[disabled]{opacity:.5}
.hp{position:absolute;left:-9999px}
.msg{font:500 14px var(--mono);letter-spacing:.06em;padding:16px 20px;border:1px solid var(--line);display:none}.msg.ok{display:block;border-color:#8fd19e;color:#8fd19e}.msg.no{display:block;border-color:#e07a7a;color:#e07a7a}
@media(max-width:900px){.contact .cg{grid-template-columns:1fr}.two{grid-template-columns:1fr}}

/* ---------- footer ---------- */
.foot{border-top:1px solid var(--line2);padding:clamp(60px,10vh,120px) var(--pad) 28px;position:relative;overflow:hidden}
.foot .top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:clamp(24px,4vw,70px);margin-bottom:clamp(50px,10vh,120px)}
.foot .tag{font:italic 400 clamp(26px,3vw,44px)/1.1 var(--serif);color:var(--plat);max-width:420px}
.foot h4{font:500 11px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--mut);margin-bottom:18px}
.foot ul{list-style:none;display:grid;gap:10px}.foot li a{color:var(--plat);transition:.3s;display:inline-block}.foot li a:hover{color:#fff;transform:translateX(6px)}
.foot .big{font:800 clamp(24px,8.4vw,220px)/.9 var(--disp);letter-spacing:-.055em;text-transform:uppercase;white-space:nowrap;margin-left:-.05em;user-select:none;background:linear-gradient(180deg,#fff 10%,#c7c7c7 55%,rgba(199,199,199,.15));-webkit-background-clip:text;background-clip:text;color:transparent}
.foot .base{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-top:34px;padding-top:22px;border-top:1px solid var(--line2);color:var(--mut)}
.foot .base a:hover{color:#fff}
.soc{display:flex;gap:10px;flex-wrap:wrap}.soc a{width:44px;height:44px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;transition:.4s var(--ease)}.soc a:hover{background:#fff;color:#000;border-color:#fff;transform:translateY(-4px)}
.soc svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.foot .lang{display:flex;gap:14px}.foot .lang a{font:500 12px var(--mono);letter-spacing:.14em;color:var(--mut)}.foot .lang a.on,.foot .lang a:hover{color:#fff}
@media(max-width:900px){.foot .top{grid-template-columns:1fr 1fr}.foot .top>div:first-child{grid-column:1/-1}}

/* ---------- inner pages ---------- */
.ph{padding:clamp(150px,24vh,260px) var(--pad) clamp(40px,8vh,90px)}
.ph h1{font-size:clamp(26px,8.4vw,180px)}
.ph h1 .serif{color:var(--plat)}
.ph p{max-width:560px;margin-top:28px;color:var(--plat);font-size:clamp(15px,1.3vw,19px)}

/* project page */
.pj{position:relative;height:100svh;min-height:600px;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;padding:0 var(--pad) clamp(30px,6vh,70px)}
.pj .bgv img,.pj .bgv video{position:absolute;left:0;top:-8%;width:100%;height:116%;object-fit:cover;filter:brightness(.62) contrast(1.05)}
.pj .shade{position:absolute;inset:0;z-index:1;background:linear-gradient(rgba(5,5,5,.5),transparent 35%,rgba(5,5,5,.9))}
.pj .c{position:relative;z-index:2}
.pj .back{position:absolute;z-index:3;top:110px;left:var(--pad)}
.pj h1{font-size:clamp(30px,9vw,200px);line-height:.84;max-width:100%;word-break:break-word}
.pj .tl{margin-top:18px;font:italic 400 clamp(22px,3vw,46px)/1.1 var(--serif);color:var(--plat)}
.pj .play{position:absolute;right:var(--pad);bottom:clamp(30px,6vh,70px);z-index:3;display:flex;align-items:center;gap:14px;padding:14px 22px;border:1px solid var(--line);border-radius:99px;backdrop-filter:blur(8px);background:rgba(0,0,0,.3);font:500 11px var(--mono);letter-spacing:.16em;text-transform:uppercase;transition:.4s}
.pj .play:hover{background:#fff;color:#000}
.pj .play i{width:0;height:0;border-left:10px solid currentColor;border-block:6px solid transparent}
.pinfo{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;padding:34px var(--pad);border-bottom:1px solid var(--line2)}
.pinfo b{display:block;font:500 11px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--mut);margin-bottom:6px}.pinfo span{font:700 clamp(15px,1.5vw,20px) var(--disp)}
.story{display:grid;grid-template-columns:1fr 1.3fr;gap:clamp(30px,6vw,110px);padding:clamp(70px,12vh,150px) var(--pad)}
.story .cr{list-style:none;display:grid;gap:0;border-top:1px solid var(--line)}.story .cr li{padding:14px 0;border-bottom:1px solid var(--line);font:800 clamp(18px,2vw,30px) var(--disp);text-transform:uppercase;letter-spacing:-.02em;display:flex;gap:14px;align-items:center}.story .cr li small{font:500 11px var(--mono);color:var(--mut);letter-spacing:.1em}
.story .tx{font-size:clamp(18px,1.9vw,28px);line-height:1.5;color:#e6e6e6;white-space:pre-line}
.story .tx::first-line{font-family:var(--serif);font-style:italic;font-size:1.25em;color:#fff}
.seq{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(10px,1.4vw,22px);padding:0 var(--pad) clamp(60px,10vh,120px)}
.seq .m{position:relative;overflow:hidden;background:var(--ink2);grid-column:span 12}
.seq .m.wide{grid-column:2 / span 10}.seq .m.half{grid-column:span 6}.seq .m.third{grid-column:span 4}
.seq .m.full{margin-inline:calc(var(--pad)*-1);grid-column:1 / -1}
.seq .m img{width:100%;height:auto;transition:transform 1.6s var(--ease)}.seq .m:hover img{transform:scale(1.03)}
.seq .m.half:nth-of-type(odd){margin-top:clamp(0px,6vw,100px)}
.seq .m video{width:100%;display:block}
.seq .yt{aspect-ratio:16/9;cursor:pointer;position:relative;background:#000 center/cover}
.seq .yt:before{content:"";position:absolute;inset:0;background:rgba(0,0,0,.25);transition:.4s}.seq .yt:hover:before{background:rgba(0,0,0,.05)}
.seq .yt i{position:absolute;left:50%;top:50%;width:92px;height:92px;margin:-46px;border-radius:50%;background:#fff;display:grid;place-items:center;transition:transform .5s var(--ease)}.seq .yt:hover i{transform:scale(1.15)}
.seq .yt i:after{content:"";margin-left:5px;border-left:20px solid #000;border-block:12px solid transparent}
.seq iframe{width:100%;aspect-ratio:16/9;border:0}
.seq .cp{position:absolute;left:14px;bottom:12px;z-index:2;font:500 11px var(--mono);letter-spacing:.12em;text-transform:uppercase;text-shadow:0 1px 8px #000;pointer-events:none}
@media(max-width:700px){.seq .m.half,.seq .m.third,.seq .m.wide{grid-column:span 12;margin-top:0!important}.pinfo{grid-template-columns:1fr 1fr}.story{grid-template-columns:1fr}}
.next{position:relative;display:block;min-height:80vh;overflow:hidden;display:grid;place-items:center;text-align:center;padding:100px var(--pad)}
.next .bgv img{width:100%;height:100%;object-fit:cover;filter:grayscale(.4) brightness(.35);transition:transform 1.6s var(--ease),filter .8s}.next:hover .bgv img{transform:scale(1.06);filter:grayscale(0) brightness(.5)}
.next .c{position:relative;z-index:2}.next h2{font-size:clamp(28px,8vw,180px);margin-top:14px}

/* lightbox */
.lb{position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.94);display:none;align-items:center;justify-content:center;padding:4vw}
.lb.open{display:flex}.lb img{max-width:100%;max-height:92vh;object-fit:contain}
.lb button{position:absolute;color:#fff;font:500 12px var(--mono);letter-spacing:.14em;text-transform:uppercase;padding:18px}
.lb .x{top:10px;right:10px}.lb .p{left:10px;top:50%}.lb .n{right:10px;top:50%}

/* services page */
.sv{padding:0 var(--pad) clamp(60px,10vh,120px)}
.svb{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,90px);padding:clamp(50px,9vh,110px) 0;border-top:1px solid var(--line);align-items:start}
.svb:nth-child(even) .im{order:2}
.svb .im{aspect-ratio:4/5;overflow:hidden;position:relative;background:var(--ink2)}.svb .im img,.svb .im video{width:100%;height:100%;object-fit:cover;filter:grayscale(.3);transition:transform 1.6s var(--ease)}.svb:hover .im img{transform:scale(1.05)}
.svb>div{container-type:inline-size;min-width:0}.svb h2{font-size:clamp(24px,8.6cqw,120px);overflow-wrap:anywhere;margin:12px 0 18px}.svb .tg{font:italic 400 clamp(22px,2.4vw,36px)/1.15 var(--serif);color:var(--plat);margin-bottom:24px}
.svb p{color:var(--plat);max-width:520px;margin-bottom:30px}
.svb ul{list-style:none;border-top:1px solid var(--line)}.svb li{padding:14px 0;border-bottom:1px solid var(--line);font:600 15px var(--body);display:flex;gap:16px}.svb li:before{content:"→";color:var(--mut)}
@media(max-width:800px){.svb{grid-template-columns:1fr}.svb:nth-child(even) .im{order:0}}
.hide{display:none!important}

.mapw{margin-top:clamp(40px,8vh,90px)}
.map{width:100%;aspect-ratio:21/8;min-height:280px;border:1px solid var(--line);display:block;filter:grayscale(1) invert(.92) contrast(.85) brightness(.9);margin-bottom:18px}

/* ---------- CTA buttons ---------- */
.cbtn{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:14px 26px;border:1px solid rgba(255,255,255,.4);border-radius:99px;font:600 12px var(--mono);letter-spacing:.14em;text-transform:uppercase;transition:.45s var(--ease);white-space:nowrap;backdrop-filter:blur(6px)}
.cbtn:hover{background:#fff;color:#000;border-color:#fff;gap:20px}
.cbtn.pri{background:#fff;color:#000;border-color:#fff}.cbtn.pri:hover{background:var(--plat);border-color:var(--plat)}
.cbtn.lg{padding:20px 38px;font-size:13px}
.hero .ctas{display:flex;gap:12px;flex-wrap:wrap}
.sec-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:clamp(36px,7vh,80px)}
.hint-p{max-width:300px;color:var(--plat);font-size:15px}
.fab{position:fixed;right:clamp(14px,2vw,28px);bottom:clamp(14px,2vw,28px);z-index:90;transform:translateY(120%);opacity:0;transition:transform .6s var(--ease),opacity .4s;box-shadow:0 10px 40px rgba(0,0,0,.5)}
.fab.show{transform:none;opacity:1}
@media(max-width:600px){.hero .ctas{width:100%}.hero .ctas .cbtn{flex:1;padding-inline:14px}.cbtn.lg{width:100%}.fab{left:14px;right:14px}.hero .row{gap:16px}}

.row-s{padding-right:24px}
