:root{--bg:#05060a;--bg-2:#0a0c12;--line:#ffffff14;--text:#eef1f8;--muted:#97a0b3;--accent:#2e8bff;--accent-2:#4d63ff;--accent-glow:#2e8bff73;--font-display:"Montserrat", system-ui, sans-serif;--font-body:"Inter", system-ui, sans-serif;--ease:cubic-bezier(.16, 1, .3, 1);--gutter:clamp(20px, 6vw, 120px);--nav-h:76px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;background:var(--bg)}body{font-family:var(--font-body);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;line-height:1.6;overflow-x:hidden}img{max-width:100%;display:block}a{color:inherit}.eyebrow{font-family:var(--font-display);letter-spacing:.32em;text-transform:uppercase;color:var(--muted);font-size:.78rem;font-weight:600}.accent{background:linear-gradient(90deg, #22a6ff, var(--accent-2));color:#0000;-webkit-background-clip:text;background-clip:text}.btn{font-family:var(--font-display);transition:transform .4s var(--ease), box-shadow .4s var(--ease), background .4s var(--ease), border-color .4s var(--ease);border-radius:999px;align-items:center;gap:.6em;padding:.85em 1.6em;font-size:.95rem;font-weight:600;text-decoration:none;display:inline-flex}.btn-primary,.btn-outline{background:#2e8bff1a;border:1px solid #2e8bffb3;box-shadow:0 0 22px #2e8bff47,inset 0 0 14px #2e8bff26}.btn-primary:hover,.btn-outline:hover{border-color:var(--accent);box-shadow:0 0 34px var(--accent-glow), inset 0 0 18px #2e8bff40;background:#2e8bff33;transform:translateY(-2px)}.btn-primary svg{transition:transform .4s var(--ease)}.btn-primary:hover svg{transform:translate(3px)}.btn-ghost{color:var(--muted);padding-inline:.4em}.btn-ghost:hover{color:var(--text)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.nav{z-index:50;height:var(--nav-h);padding:0 var(--gutter);transition:background .4s var(--ease), border-color .4s var(--ease);background:linear-gradient(#030408bf,#03040800);border-bottom:1px solid #0000;align-items:center;gap:2.5rem;display:flex;position:fixed;inset:0 0 auto}.nav.is-scrolled{-webkit-backdrop-filter:blur(14px);border-color:var(--line);background:#05060ac7}.nav-logo img{width:44px;height:44px;transition:transform .4s var(--ease), filter .4s var(--ease)}.nav-logo:hover img{filter:drop-shadow(0 0 10px #ffffff59);transform:scale(1.06)}.nav-links{gap:2.4rem;margin-left:auto;display:flex}.nav-links a{color:#c9cfdb;padding:.5em 0;font-size:.92rem;text-decoration:none;transition:color .3s;position:relative}.nav-links a:after{content:"";background:var(--accent);height:2px;box-shadow:0 0 10px var(--accent);transition:transform .4s var(--ease);border-radius:2px;position:absolute;bottom:-2px;left:0;right:0;transform:scaleX(0)}.nav-links a:hover,.nav-links a.is-active{color:var(--text)}.nav-links a:hover:after,.nav-links a.is-active:after{transform:scaleX(1)}.nav-cta{padding:.7em 1.3em}.lang-switch{border:1px solid var(--line);background:#05060a66;border-radius:999px;gap:2px;margin-right:-1rem;padding:3px;display:flex}.lang-link{font-family:var(--font-display);letter-spacing:.04em;color:var(--muted);border-radius:999px;align-items:center;gap:6px;padding:5px 10px;font-size:.72rem;font-weight:600;text-decoration:none;transition:color .3s,background .3s;display:flex}.lang-link:hover,.lang-link.is-current{color:var(--text)}.lang-link.is-current{background:#ffffff14}.flag{border-radius:2px;width:18px;height:12px;transition:opacity .3s,filter .3s;display:block;box-shadow:0 0 0 1px #ffffff1f}.lang-link:not(.is-current) .flag{opacity:.6;filter:saturate(.5)}.lang-link:hover .flag{opacity:1;filter:none}.nav-toggle{cursor:pointer;background:0 0;border:0;width:44px;height:44px;margin-left:auto;display:none;position:relative}.nav-toggle span{background:var(--text);height:2px;transition:transform .35s var(--ease);border-radius:2px;position:absolute;left:11px;right:11px}.nav-toggle span:first-child{top:17px}.nav-toggle span:last-child{top:25px}.nav.is-open .nav-toggle span:first-child{transform:translateY(4px)rotate(45deg)}.nav.is-open .nav-toggle span:last-child{transform:translateY(-4px)rotate(-45deg)}.hero{--p:0;height:100svh;position:relative}.has-3d .hero{height:160vh}.has-3d.still .hero{height:100svh}.still .scroll-hint{display:none}.hero-stage{background:#020306;height:100svh;position:sticky;top:0;overflow:hidden}#studio{width:100%;height:100%;display:block;position:absolute;inset:0}.hero-poster{object-fit:cover;object-position:50% 25%;width:104%;height:104%;display:none;position:absolute;inset:-2%}.no-3d #studio{display:none}.no-3d .hero-poster{animation:posterIn 1.6s var(--ease) both;display:block}.hero-shade{pointer-events:none;opacity:calc(1 - var(--p) * 2.5);background:linear-gradient(90deg,#020306d1 0%,#0203068c 32%,#02030600 62%),linear-gradient(#02030600 70%,#020306b3 100%);position:absolute;inset:0}.hero-copy{left:var(--gutter);max-width:640px;translate:0 calc(-50% - var(--p) * 120px);opacity:calc(1 - var(--p) * 4);flex-direction:column;gap:1.4rem;display:flex;position:absolute;top:50%}.hero-copy>*{animation:copyIn 1.1s var(--ease) both}.hero-copy>:first-child{animation-delay:.15s}.hero-copy>:nth-child(2){animation-delay:.3s}.hero-copy>:nth-child(3){animation-delay:.5s}.hero-copy>:nth-child(4){animation-delay:.7s}.hero h1{font-family:var(--font-display);letter-spacing:-.025em;text-shadow:0 4px 40px #00000080;font-size:clamp(2.5rem,5.2vw,4.7rem);font-weight:800;line-height:1.04}.hero .lead{color:#c3c9d6;max-width:34em;font-size:clamp(1.02rem,1.3vw,1.18rem)}.cta{flex-wrap:wrap;align-items:center;gap:1rem;margin-top:.4rem;display:flex}.scroll-hint{font-family:var(--font-display);letter-spacing:.28em;text-transform:uppercase;color:var(--muted);opacity:calc(.9 - var(--p) * 8);flex-direction:column;align-items:center;gap:10px;font-size:.7rem;display:flex;position:absolute;bottom:28px;left:50%;translate:-50%}.scroll-hint p{animation:copyIn 1s var(--ease) 2.8s both}.no-3d .scroll-hint{display:none}.scroll-hint span{background:linear-gradient(var(--accent), transparent);transform-origin:top;width:1px;height:38px;animation:2.2s ease-in-out 2.8s infinite both hint}.scene-label{--tint:46, 139, 255;z-index:3;border:1px solid rgba(var(--tint), .6);-webkit-backdrop-filter:blur(8px);box-shadow:0 0 24px rgba(var(--tint), .25);font-family:var(--font-display);white-space:nowrap;pointer-events:none;opacity:0;background:#05060acc;border-radius:999px;align-items:center;gap:10px;padding:7px 14px;font-size:.8rem;font-weight:600;transition:opacity .2s;display:flex;position:absolute;top:0;left:0}.scene-label.is-visible{opacity:1}.scene-label-cta{color:rgb(var(--tint));font-weight:500}.hero.is-diving .hero-copy,.hero.is-diving .scroll-hint{visibility:hidden}.section{padding:140px var(--gutter);background:var(--bg);position:relative}.wrap{max-width:1200px;margin-inline:auto}[id]{scroll-margin-top:calc(var(--nav-h) + 32px)}h1,h2,h3{text-wrap:balance}.section h2{font-family:var(--font-display);letter-spacing:-.02em;margin:.5rem 0 1rem;font-size:clamp(2.2rem,4vw,3.4rem);font-weight:800;line-height:1.08}.section-head{max-width:680px;margin-bottom:56px}.section-head>p:last-child{color:var(--muted);max-width:38em;font-size:1.05rem}.section h2.eyebrow{letter-spacing:.32em;font-size:.78rem;font-weight:600;line-height:inherit;margin:0}.section-head:has(>h2.eyebrow){margin-bottom:28px}.js-reveal .reveal{opacity:0;transition:opacity .9s var(--ease) var(--d,0s), translate .9s var(--ease) var(--d,0s), transform .4s var(--ease), border-color .4s var(--ease);translate:0 28px}.js-reveal .reveal.is-visible{opacity:1;translate:none}.has-3d:not(.still) .projects{z-index:2;background:linear-gradient(to bottom, #05060a00 0, var(--bg) 30vh);margin-top:-30vh;padding-top:calc(30vh + 72px)}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;display:grid}.project-card{--tint:46, 139, 255;border:1px solid var(--line);background:var(--bg-2);transition:transform .4s var(--ease), border-color .4s var(--ease);border-radius:20px;flex-direction:column;display:flex;overflow:hidden}.project-card:hover{border-color:rgba(var(--tint), .5);transform:translateY(-4px)}.project-media{aspect-ratio:16/9;position:relative;overflow:hidden}.project-poster,.project-art{width:100%;height:100%;transition:transform .8s var(--ease);position:absolute;inset:0}.project-card:hover .project-poster,.project-card:hover .project-art{transform:scale(1.04)}.project-art{object-fit:cover}.project-poster{font-family:var(--font-display);letter-spacing:-.01em;color:#ffffffeb;background:radial-gradient(90% 120% at 25% 15%, rgba(var(--tint), .5), transparent 60%), radial-gradient(80% 100% at 95% 100%, rgba(var(--tint), .22), transparent 60%), #0b0d14;place-items:center;font-size:clamp(1.4rem,2.2vw,1.9rem);font-weight:800;display:grid}.status{border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);letter-spacing:.04em;background:#05060ab8;border-radius:999px;align-items:center;gap:.5em;padding:.35em .8em;font-size:.72rem;font-weight:600;display:inline-flex;position:absolute;top:14px;left:14px}.status:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.status.is-soon{color:#fbbf24}.status.is-live{color:#4ade80}.project-body{flex-direction:column;flex:1;gap:.35rem;padding:22px 24px 24px;display:flex}.project-platforms{letter-spacing:.08em;text-transform:uppercase;min-height:1lh;color:var(--muted);font-size:.74rem}.project-card h3{font-family:var(--font-display);font-size:1.3rem;font-weight:700}.project-desc{color:var(--muted);font-size:.95rem}.project-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;margin-top:auto;padding-top:18px;font-size:.88rem;display:flex}.project-model{color:#c9cfdb}.project-cta{font-family:var(--font-display);white-space:nowrap;color:rgb(var(--tint));margin-left:auto;font-weight:600;text-decoration:none}.project-cta.is-web{color:#fb923c;margin-left:0}a.project-cta:hover{text-underline-offset:4px;text-decoration:underline}.project-card.is-flash{animation:cardFlash 1.8s var(--ease)}.project-cta.is-pending{color:var(--muted);font-weight:500}.stats{z-index:99;color:#8fffb0;background:#000000b3;border-radius:8px;padding:8px 10px;font:12px/1 ui-monospace,monospace;position:fixed;bottom:12px;right:12px}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.service-card{--mx:50%;--my:0%;border:1px solid var(--line);background:radial-gradient(420px circle at var(--mx) var(--my), #2e8bff1a, transparent 60%), linear-gradient(180deg, #ffffff08, #ffffff03);transition:transform .4s var(--ease), border-color .4s var(--ease);border-radius:20px;padding:36px 32px 32px;position:relative}.service-card:hover{border-color:#2e8bff73;transform:translateY(-4px)}.service-icon{background:#2e8bff1a;border:1px solid #2e8bff4d;border-radius:14px;place-items:center;width:52px;height:52px;margin-bottom:24px;display:grid;box-shadow:0 0 24px #2e8bff26}.service-icon svg{fill:none;stroke:#7cb8ff;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:26px;height:26px}.service-card h3{font-family:var(--font-display);margin-bottom:.6rem;font-size:1.35rem;font-weight:700}.service-card p{color:var(--muted)}.chips{flex-wrap:wrap;gap:8px;margin-top:22px;list-style:none;display:flex}.chips li{border:1px solid var(--line);color:#c9cfdb;background:#ffffff08;border-radius:999px;padding:.35em .85em;font-size:.78rem}.process{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;list-style:none;display:grid}.process li{border:1px solid var(--line);background:var(--bg-2);border-radius:18px;padding:28px}.step{font-family:var(--font-display);letter-spacing:-.02em;background:linear-gradient(135deg, #22a6ff, var(--accent-2));color:#0000;-webkit-background-clip:text;background-clip:text;margin-bottom:18px;font-size:2.4rem;font-weight:800;line-height:1;display:inline-block}.process h3{font-family:var(--font-display);margin-bottom:.4rem;font-size:1.15rem}.process p{color:var(--muted);font-size:.95rem}.section.contact{isolation:isolate;background:radial-gradient(70% 45% at 50% 100%, #2e8bff29, transparent 70%), var(--bg);padding-top:60px;padding-bottom:clamp(220px,30vw,380px);overflow:hidden}.contact-inner{text-align:center;flex-direction:column;align-items:center;display:flex}.section .contact-inner h2{letter-spacing:-.04em;margin:1rem 0 1.4rem;font-size:clamp(2.8rem,10vw,8rem);line-height:.95}.contact-text{color:var(--muted);max-width:30em;font-size:clamp(1.02rem,1.6vw,1.2rem)}.contact-mail{font-family:var(--font-display);letter-spacing:-.02em;background:linear-gradient(90deg, #22a6ff, var(--accent-2)) left bottom / 100% 2px no-repeat;transition:text-shadow .4s var(--ease), background-size .4s var(--ease);align-items:center;gap:.3em;margin-top:2.6rem;padding-bottom:.15em;font-size:clamp(1.35rem,5vw,3.4rem);font-weight:700;line-height:1.2;text-decoration:none;display:inline-flex}.contact-mail svg{fill:none;width:.75em;height:.75em;stroke:var(--accent);stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;transition:transform .4s var(--ease)}.contact-mail:hover{text-shadow:0 0 28px var(--accent-glow);background-size:100% 4px}.contact-mail:hover svg{transform:translate(.08em,-.08em)}.contact-copy{margin-top:1.2rem;font-size:.9rem}.contact-floor{z-index:-1;perspective:300px;perspective-origin:50% 0;pointer-events:none;height:clamp(220px,30vw,380px);position:absolute;inset:auto 0 0;-webkit-mask-image:linear-gradient(#0000,#000 55%);mask-image:linear-gradient(#0000,#000 55%)}.contact-floor:before{content:"";transform-origin:50% 100%;background-image:linear-gradient(#2e8bff8c 1px,#0000 1px),linear-gradient(90deg,#2e8bff8c 1px,#0000 1px);background-position:50% 100%;background-size:64px 64px;animation:2.4s linear infinite floor-run;position:absolute;inset:-200% -100% 0;transform:rotateX(72deg)}@keyframes floor-run{to{transform:rotateX(72deg)translateY(64px)}}button.btn{cursor:pointer;background:0 0;border:0}.footer{padding:32px var(--gutter);border-top:1px solid var(--line);background:var(--bg)}.footer-inner{flex-wrap:wrap;align-items:center;gap:20px 40px;display:flex}.footer-brand{font-family:var(--font-display);align-items:center;gap:12px;font-weight:700;text-decoration:none;display:flex}.footer-links{flex-wrap:wrap;gap:8px 28px;margin-left:auto;display:flex}.footer-links a{color:var(--muted);font-size:.92rem;text-decoration:none;transition:color .3s}.footer-links a:hover{color:var(--text)}.copyright{color:#5d6575;font-size:.85rem}@keyframes copyIn{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@keyframes posterIn{0%{opacity:0;transform:scale(1.06)}to{opacity:1;transform:none}}@keyframes cardFlash{0%,to{box-shadow:0 0 0 0 rgba(var(--tint), 0)}25%{box-shadow:0 0 0 2px rgba(var(--tint), .9), 0 0 48px rgba(var(--tint), .35)}}@keyframes hint{0%{opacity:1;transform:scaleY(0)}60%{opacity:1;transform:scaleY(1)}to{opacity:0;transform:scaleY(1)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}.contact-floor:before{animation:none}}@media (width<=860px){:root{--nav-h:64px}.nav{gap:.75rem}.nav-cta{display:none}.lang-switch{margin:0 0 0 auto}.nav-toggle{margin-left:0;display:block}.nav-links{inset:var(--nav-h) 0 auto 0;padding:8px var(--gutter) 24px;-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line);opacity:0;visibility:hidden;transition:opacity .3s var(--ease), transform .3s var(--ease), visibility .3s;background:#05060af5;flex-direction:column;gap:0;position:fixed;transform:translateY(-8px)}.nav.is-open .nav-links{opacity:1;visibility:visible;transform:none}.nav-links a{border-bottom:1px solid var(--line);padding:14px 0;font-size:1.05rem}.nav-links a:after{display:none}.hero-copy{top:auto;bottom:88px;right:var(--gutter);translate:0 calc(var(--p) * -120px);gap:1rem}.hero-shade{background:linear-gradient(#02030600 25%,#020306bf 55%,#020306f2 100%)}.hero h1{font-size:clamp(2.1rem,9vw,2.8rem)}.eyebrow,.section h2.eyebrow{letter-spacing:.22em;font-size:.68rem}.no-3d .hero-poster{object-position:50% 30%}.scroll-hint{bottom:16px}.scroll-hint p{display:none}.scroll-hint span{height:28px}.section{padding-block:96px}.service-grid,.process{grid-template-columns:1fr}.section h2{font-size:clamp(1.8rem,8vw,2.4rem)}.footer-links{margin-left:0}}@media (width<=1000px){.project-grid{grid-template-columns:1fr;max-width:560px}}@media (width>=861px) and (width<=1100px){.process{grid-template-columns:repeat(2,minmax(0,1fr))}}
