
:root{
  --bg:#0a0b0d; --bg2:#121418; --bg3:#181b21; --line:#23262d; --ink:#eef0f3; --soft:#c3c7cf; --mute:#8a909c;
  --acc:#ff5b1f;
  --display:"Space Grotesk",system-ui,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,monospace;
  --pad:max(16px,calc((100vw - 1920px) / 2));
  --ease:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--display);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,video{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(--acc);color:#000}
.mono{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}
.acc{color:var(--acc)}
.wrap{padding-inline:var(--pad)}


.nav{position:fixed;top:0;left:0;right:0;z-index:60;display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:14px var(--pad);transition:background .3s,border-color .3s;border-bottom:1px solid transparent}
.nav.solid{background:rgba(10,11,13,.86);backdrop-filter:blur(12px);border-color:var(--line)}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:.14em}
.brand img{height:24px;filter:invert(1)}
.nav ul{display:flex;gap:28px;list-style:none}
.nav ul a{font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--mute);transition:color .2s;position:relative}
.nav ul a:hover,.nav ul a.on{color:var(--ink)}
.nav ul a.on::before{content:"";position:absolute;left:-12px;top:50%;width:6px;height:6px;margin-top:-3px;background:var(--acc)}
.burger{display:none;width:42px;height:42px;border:1px solid var(--line);position:relative}
.burger i{position:absolute;left:11px;right:11px;height:2px;background:var(--ink);transition:.3s}
.burger i:first-child{top:15px}.burger i:last-child{bottom:15px}
.menu-open .burger i:first-child{top:20px;transform:rotate(45deg)}
.menu-open .burger i:last-child{bottom:20px;transform:rotate(-45deg)}
@media(max-width:860px){
  .burger{display:block}.nav .btn{display:none}
  .nav ul{position:fixed;inset:0;z-index:-1;background:var(--bg);flex-direction:column;justify-content:center;gap:6px;padding:var(--pad);
    opacity:0;pointer-events:none;transition:opacity .3s}
  .menu-open .nav ul{opacity:1;pointer-events:auto}
  .nav ul a{font-family:var(--display);font-size:44px;font-weight:600;text-transform:none;letter-spacing:-.02em;color:var(--ink)}
  .nav ul a.on::before{display:none}.nav ul a.on{color:var(--acc)}
}

.btn{display:inline-flex;align-items:center;gap:10px;padding:12px 20px;border:1px solid var(--ink);font-family:var(--mono);
  font-size:12px;text-transform:uppercase;letter-spacing:.1em;transition:.25s;white-space:nowrap}
.btn:hover,.btn.solid{background:var(--acc);border-color:var(--acc);color:#000}
.btn.ghost{border-color:var(--line)}

.hero{min-height:100svh;display:grid;grid-template-columns:.9fr 1.25fr;gap:var(--pad);align-items:center;padding:110px var(--pad) 60px}
.hero h1{font-size:clamp(44px,4.6vw,88px);line-height:.84;font-weight:700;letter-spacing:-.05em}
.outline{color:transparent;-webkit-text-stroke:1.5px var(--ink)}
.lead{margin:28px 0 34px;max-width:480px;font-size:clamp(16px,1.4vw,19px);line-height:1.6;color:var(--soft)}
.stats{display:flex;gap:30px;margin-top:44px;flex-wrap:wrap}
.stats b{display:block;font-size:clamp(18px,1.8vw,30px);font-weight:600;color:var(--ink);font-family:var(--display);letter-spacing:-.02em;text-transform:none}
.viewport{position:relative;border:1px solid var(--line);overflow:hidden;background:var(--bg2);display:block}
.viewport video,.viewport img{width:100%;height:auto}
.hud{position:absolute;z-index:3;font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:#fff;text-shadow:0 0 6px #000;text-transform:uppercase}
.hud.tl{top:14px;left:14px}.hud.tr{top:14px;right:14px}.hud.bl{bottom:14px;left:14px}.hud.br{bottom:14px;right:14px}
.rec{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--acc);margin-right:6px;animation:blink 1.2s infinite}
@keyframes blink{50%{opacity:.2}}
.marks::before,.marks::after{content:"";position:absolute;width:26px;height:26px;border:2px solid var(--acc);z-index:4;pointer-events:none}
.marks::before{top:-1px;left:-1px;border-right:0;border-bottom:0}
.marks::after{bottom:-1px;right:-1px;border-left:0;border-top:0}
@media(max-width:900px){.hero{grid-template-columns:1fr;padding-top:96px}}

.marquee{border-block:1px solid var(--line);overflow:hidden;padding:18px 0;white-space:nowrap}
.marquee>div{display:inline-block;animation:slide 32s linear infinite;font-size:clamp(18px,1.8vw,30px);font-weight:600;letter-spacing:-.02em}
.marquee span{color:var(--acc);margin:0 28px}
.marquee.small>div{font-size:clamp(16px,1.8vw,22px);font-weight:500;color:var(--soft);animation-duration:45s}
@keyframes slide{to{transform:translateX(-50%)}}

.block{padding:clamp(56px,7vw,110px) var(--pad)}
.block.tight{padding-top:0}
.head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:48px;flex-wrap:wrap}
.head h2{font-size:clamp(26px,2.6vw,54px);line-height:.92;letter-spacing:-.04em;font-weight:700}
.idx{font-family:var(--mono);color:var(--acc);font-size:13px;display:block;margin-bottom:14px;letter-spacing:.04em}

.phead{padding:clamp(130px,16vw,200px) var(--pad) clamp(40px,6vw,70px);border-bottom:1px solid var(--line);position:relative}
.phead h1{font-size:clamp(40px,4.2vw,86px);line-height:.86;letter-spacing:-.05em;font-weight:700;max-width:14ch}
.phead .lead{margin-bottom:0}
.phead .crumb{position:absolute;right:var(--pad);bottom:clamp(40px,6vw,70px)}
@media(max-width:700px){.phead .crumb{position:static;margin-top:24px}}

.projects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}
.proj{display:block;min-width:0}
.proj .img{position:relative;overflow:hidden;background:var(--bg2);aspect-ratio:1.52/1;transform:translateZ(0)}
.proj img,.proj video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;backface-visibility:hidden}
.proj img{z-index:1;transition:opacity .25s ease}
.proj video{z-index:1;opacity:0;pointer-events:none;transition:opacity .25s ease}
.proj.play video{opacity:1}
.proj.play img{opacity:0}
.proj .num{position:absolute;top:14px;left:14px;z-index:2;font-family:var(--mono);font-size:11px;background:#000a;padding:5px 8px;color:#fff}
.proj .vid{position:absolute;top:14px;right:14px;z-index:2;font-family:var(--mono);font-size:10px;background:#000a;padding:5px 8px;color:#fff;letter-spacing:.08em}
.proj .vid::before{content:"▶ ";color:var(--acc)}
.proj .cap{display:flex;justify-content:space-between;align-items:baseline;padding:16px 0;border-bottom:1px solid var(--line);gap:12px;flex-wrap:wrap}
.proj h3{font-size:clamp(14px,1.1vw,20px);font-weight:600;letter-spacing:-.02em;transition:color .2s}
.proj:hover h3{color:var(--acc)}
@media(max-width:900px){.projects{gap:12px}.proj .img{aspect-ratio:1.18/1}}
@media(max-width:520px){.proj .img{aspect-ratio:1.08/1}}
@media(max-width:820px){.projects{gap:10px}.proj .cap{padding:10px 0}.proj .cap .mono{font-size:9px}.proj .num,.proj .vid{display:none}}

.swap{position:relative;cursor:pointer;background:var(--bg2);border:1px solid var(--line);overflow:hidden}
.swap img{width:100%;height:auto;display:block}
.swap img.alt{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .45s}
.swap.on img.alt{opacity:1}
@media(hover:hover){.swap:hover img.alt{opacity:1}}
.swap .tag{position:absolute;bottom:14px;left:14px;z-index:2;font-family:var(--mono);font-size:11px;background:#000b;color:#fff;padding:5px 9px;letter-spacing:.08em;text-transform:uppercase}
.swap .tag b{font-weight:400;color:var(--acc)}
.swap .t2{display:none}
.swap.on .t1{display:none}.swap.on .t2{display:inline}
@media(hover:hover){.swap:hover .t1{display:none}.swap:hover .t2{display:inline}}
.swap.loading::before{content:"Loading…";position:absolute;top:14px;left:14px;z-index:3;font-family:var(--mono);font-size:11px;color:#fff;background:#000b;padding:5px 9px}

.models{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(22px,4vw,60px);align-items:center}
.thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.thumbs button{aspect-ratio:1;border:1px solid var(--line);background:var(--bg2) center/cover;opacity:.55;transition:.2s}
.thumbs button.on,.thumbs button:hover{opacity:1;border-color:var(--acc)}
.models p{color:var(--soft);line-height:1.6;margin:0 0 24px}
@media(max-width:900px){.models{grid-template-columns:1fr}}

.model-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.model-grid figure figcaption{display:flex;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line)}
@media(max-width:700px){.model-grid{grid-template-columns:1fr}}

.rows{border-top:1px solid var(--line);list-style:none}
.rows li{display:grid;grid-template-columns:1fr 1.2fr;gap:20px;padding:28px 0;border-bottom:1px solid var(--line);align-items:baseline;transition:padding .3s}
.rows li:hover{padding-left:14px}
.rows li:hover h3{color:var(--acc)}
.rows h3{font-size:clamp(20px,1.8vw,30px);font-weight:600;letter-spacing:-.02em;transition:color .2s}
.rows p{color:var(--mute);line-height:1.6}
@media(max-width:820px){.rows li{grid-template-columns:1fr;gap:8px}}

.detail-hero{position:relative;padding-top:64px}
.detail-hero .media{position:relative;margin:0 var(--pad)}
.detail-hero img,.detail-hero video{width:100%;height:auto}
.detail-hero .t{padding:clamp(30px,5vw,60px) var(--pad) 0;display:flex;justify-content:space-between;align-items:end;gap:20px;flex-wrap:wrap}
.detail-hero h1{font-size:clamp(40px,4.2vw,86px);line-height:.85;letter-spacing:-.05em;font-weight:700}
.spec{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(30px,6vw,90px);padding:clamp(60px,8vw,110px) var(--pad)}
.spec .desc p{font-size:clamp(19px,1.9vw,26px);line-height:1.45;color:var(--soft);margin-bottom:22px;letter-spacing:-.01em}
.spec .desc p:first-child{color:var(--ink)}
.spec dl{display:grid;grid-template-columns:auto 1fr;border-top:1px solid var(--line)}
.spec dt,.spec dd{padding:14px 0;border-bottom:1px solid var(--line)}
.spec dt{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);padding-right:24px}
.spec dd{line-height:1.45}
.spec dd a{color:var(--acc)}
@media(max-width:860px){.spec{grid-template-columns:1fr}}
.gallery{display:grid;gap:22px;padding:0 var(--pad)}
.gallery figure{position:relative}
.gallery img{width:100%;height:auto;background:var(--bg2)}
.gallery figcaption{padding:12px 0}
.next{display:block;border-top:1px solid var(--line);margin-top:clamp(70px,10vw,140px);padding:clamp(60px,8vw,110px) var(--pad);position:relative;overflow:hidden}
.next h2{font-size:clamp(36px,4vw,80px);line-height:.88;letter-spacing:-.05em;font-weight:700;position:relative;z-index:2;transition:color .3s}
.next img{position:absolute;right:var(--pad);top:50%;width:min(42vw,520px);height:auto;transform:translateY(-50%) scale(.95);opacity:.35;transition:.6s var(--ease)}
.next:hover img{opacity:1;transform:translateY(-50%) scale(1)}
.next:hover h2{color:var(--acc)}

.about{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(30px,6vw,90px);align-items:start;padding:clamp(120px,14vw,180px) var(--pad) clamp(60px,8vw,110px)}
.about h1{font-size:clamp(32px,3.4vw,64px);line-height:.95;letter-spacing:-.04em;font-weight:700;margin:16px 0 28px}
.about .body p{font-size:clamp(17px,1.5vw,20px);line-height:1.6;color:var(--soft);margin-bottom:18px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}
.chips span{border:1px solid var(--line);padding:8px 12px;font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--soft)}
@media(max-width:900px){.about{grid-template-columns:1fr}}
.timeline li{grid-template-columns:140px 1fr 1fr}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.steps div{border:1px solid var(--line);padding:28px;background:var(--bg2);position:relative}
.steps b{font-family:var(--mono);color:var(--acc);font-size:13px;font-weight:400}
.steps h3{font-size:30px;margin:40px 0 12px;letter-spacing:-.02em}
.steps p{color:var(--mute);line-height:1.6}
@media(max-width:820px){.steps{grid-template-columns:1fr}.timeline li{grid-template-columns:1fr;gap:6px}.timeline p{grid-column:1}}

.contact-big{font-size:clamp(24px,5vw,72px);font-weight:700;letter-spacing:-.04em;line-height:1;white-space:nowrap;display:inline-block;transition:color .2s}
.contact-big:hover{color:var(--acc)}
.cgrid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);margin-top:60px}
.cgrid>div{padding:28px 28px 28px 0;border-bottom:1px solid var(--line)}
.cgrid>div+div{padding-left:28px;border-left:1px solid var(--line)}
.cgrid h3{font-size:24px;letter-spacing:-.02em;margin:14px 0 10px}
.cgrid p,.cgrid a{color:var(--soft);line-height:1.7;display:block}
.cgrid a:hover{color:var(--acc)}
@media(max-width:820px){.cgrid{grid-template-columns:1fr}.cgrid>div+div{padding-left:0;border-left:0}}

.prose{max-width:760px;padding:clamp(50px,7vw,90px) var(--pad)}
.prose h2{font-size:26px;letter-spacing:-.02em;margin:40px 0 12px}
.prose p{color:var(--soft);line-height:1.7}
.prose a{color:var(--acc)}

.reel{position:fixed;inset:0;background:#000;display:grid;place-items:center}
.reel video{width:100%;height:100%;object-fit:contain}
.reel .back{position:fixed;top:18px;left:18px;z-index:5}

.cta{text-align:center;padding:clamp(90px,14vw,200px) var(--pad);border-top:1px solid var(--line)}
.cta h2{font-size:clamp(40px,4.2vw,86px);line-height:.85;letter-spacing:-.05em;font-weight:700;margin:20px 0 40px}
.cta h2 a:hover{color:var(--acc)}
.cta .btns{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
footer{border-top:1px solid var(--line);padding:50px var(--pad) 28px}
.foot{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;margin-bottom:50px}
.foot h4{font-family:var(--mono);font-weight:400;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);margin-bottom:16px}
.foot a{display:block;line-height:2;color:var(--soft)}
.foot a:hover{color:var(--acc)}
.sub{display:flex;border:1px solid var(--line);max-width:420px}
.sub input{flex:1;min-width:0;background:none;border:0;color:var(--ink);padding:14px;font:inherit;outline:none}
.sub button{padding:0 18px;background:var(--ink);color:#000;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase}
.sub button:hover{background:var(--acc)}
.sub-msg{margin-top:10px;min-height:16px}
.legal{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding-top:22px;border-top:1px solid var(--line)}
.legal a:hover{color:var(--acc)}
@media(max-width:820px){.foot{grid-template-columns:1fr 1fr}.foot>div:first-child{grid-column:1/-1}}

.rv{opacity:0;transform:translateY(40px);transition:opacity .9s,transform .9s var(--ease)}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none}.marquee>div{animation:none}}

.hero h1{font-size:clamp(34px,3.4vw,64px);line-height:1.02;letter-spacing:-.035em;max-width:16ch}
.cta h2{font-size:clamp(28px,2.8vw,52px);line-height:1.05;letter-spacing:-.03em;margin:0 0 18px}
.cta-mail{font-size:clamp(16px,1.3vw,22px);color:var(--soft);border-bottom:1px solid var(--line);padding-bottom:4px}
.cta-mail:hover{color:var(--acc);border-color:var(--acc)}
.cta p{margin-bottom:34px}
.next .mono{display:block;color:var(--mute);margin-bottom:12px}
.phead h1{max-width:none}

.hero.full{position:relative;display:flex;align-items:flex-end;min-height:100svh;padding:0;overflow:hidden;background:#000}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero.full::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.78) 0%,rgba(0,0,0,.25) 45%,rgba(0,0,0,0) 70%),linear-gradient(to bottom,rgba(0,0,0,.45),rgba(0,0,0,0) 18%);pointer-events:none}
.hero-txt{position:relative;z-index:2;padding:0 var(--pad) clamp(40px,7vh,80px);max-width:900px}
.hero-txt .mono{color:#ddd}
.hero.full .lead{color:#e6e6e6;margin:20px 0 28px}
.hero-cap{position:absolute;z-index:2;right:var(--pad);bottom:clamp(40px,7vh,80px);color:#bbb;font-size:11px}
.hero.full .btn.ghost{border-color:rgba(255,255,255,.45);color:#fff}
@media(max-width:820px){.hero-cap{display:none}.hero.full{min-height:88svh}}
.detail-hero{padding-top:0}
.detail-hero .media{margin:0;height:min(92svh,62vw);overflow:hidden;background:#000}
.detail-hero .media img,.detail-hero .media video{width:100%;height:100%;object-fit:cover}
.gallery{gap:clamp(10px,1.2vw,18px);padding:0 clamp(10px,1.2vw,18px)}
.gallery figcaption{padding:10px 0 0}
@media(max-width:820px){.detail-hero .media{height:auto;margin-top:58px}.detail-hero .media img,.detail-hero .media video{height:auto}}
.nav:not(.solid) ul a{color:rgba(255,255,255,.88);text-shadow:0 1px 10px rgba(0,0,0,.55)}
.nav:not(.solid) ul a.on,.nav:not(.solid) ul a:hover{color:#fff}
.nav:not(.solid) .brand,.nav:not(.solid) .btn{text-shadow:0 1px 10px rgba(0,0,0,.45)}
.detail-hero .media{position:relative}
.detail-hero .media::after{content:"";position:absolute;inset:0 0 auto 0;height:22%;background:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0));pointer-events:none}
