:root{
  --w:#f4f4f0;
  --b:#0a0a0a;
  --r:#e8002d;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scrollbar-width:none}
::-webkit-scrollbar{display:none}
body{background:var(--b);color:var(--w);font-family:'Archivo',sans-serif;overflow-x:hidden}
.r{color:var(--r)}
a{color:inherit;text-decoration:none}

/* ---------- HUD ---------- */
.hud{
  position:fixed;top:0;left:0;right:0;z-index:50;
  display:flex;justify-content:space-between;align-items:center;
  padding:24px 32px;mix-blend-mode:difference;
}
.logo{font-weight:900;font-size:1.35rem;letter-spacing:.05em}
.nav{display:flex;gap:28px;align-items:center;font-family:'Space Mono',monospace;font-size:.75rem;letter-spacing:.2em}
.nav a{opacity:.75;transition:.2s}
.nav a:hover{opacity:1;color:var(--r)}
.nav-cta{border:1px solid var(--w);padding:9px 18px}
.nav-cta:hover{border-color:var(--r);background:var(--r);color:var(--w)!important}

/* ---------- HERO ---------- */
#hero{position:relative;height:100vh;overflow:hidden}
#hero-canvas{position:absolute;inset:0;width:100%;height:100%}
.hero-inner{
  position:absolute;inset:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;pointer-events:none;
}
.mega{font-weight:900;font-size:clamp(4rem,15vw,12rem);line-height:.9;letter-spacing:-.02em;text-shadow:0 0 60px rgba(10,10,10,.9)}
.tag{font-family:'Space Mono',monospace;font-size:clamp(.7rem,1.5vw,.95rem);letter-spacing:.4em;margin-top:26px}
.hint{
  pointer-events:auto;position:absolute;bottom:36px;
  font-family:'Space Mono',monospace;font-size:.7rem;letter-spacing:.3em;color:rgba(244,244,240,.6);
  animation:blink 1.6s infinite;
}
@keyframes blink{50%{opacity:.25}}

/* ---------- SECTIONS ---------- */
.section{padding:130px 6vw;border-top:1px solid rgba(244,244,240,.08)}
.sec-head{display:flex;align-items:baseline;gap:20px;margin-bottom:64px}
.idx{font-family:'Space Mono',monospace;color:var(--r);font-size:.85rem;letter-spacing:.3em}
.section h2{font-weight:900;font-size:clamp(2.6rem,7vw,5rem);letter-spacing:-.01em;line-height:.95}
.mega-sm{font-weight:900;font-size:clamp(2.6rem,8vw,6rem);line-height:.95;letter-spacing:-.01em;margin:18px 0 8px}

/* ---------- WORK cards (3D tilt) ---------- */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px;perspective:1200px}
.card{
  position:relative;border:1px solid rgba(244,244,240,.15);padding:44px 32px 36px;
  background:linear-gradient(180deg,rgba(244,244,240,.03),transparent);
  transform-style:preserve-3d;transition:border-color .25s;will-change:transform;
}
.card:hover{border-color:var(--r)}
.card-num{
  font-family:'Space Mono',monospace;color:var(--r);font-size:.8rem;letter-spacing:.3em;
  transform:translateZ(30px);
}
.card h3{font-weight:900;font-size:1.6rem;margin:16px 0 14px;transform:translateZ(45px)}
.card p{color:rgba(244,244,240,.7);line-height:1.7;margin-bottom:24px;transform:translateZ(25px)}
.chip{
  font-family:'Space Mono',monospace;font-size:.65rem;letter-spacing:.2em;
  border:1px solid rgba(244,244,240,.3);padding:7px 14px;color:rgba(244,244,240,.8);
  transform:translateZ(20px);display:inline-block;
}

/* ---------- SERVICES split + 3D lab ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.lab{position:relative;aspect-ratio:1;border:1px solid rgba(244,244,240,.15)}
#lab-canvas{position:absolute;inset:0;width:100%;height:100%;cursor:grab}
#lab-canvas:active{cursor:grabbing}
.lab-hint{
  position:absolute;bottom:14px;left:0;right:0;text-align:center;
  font-family:'Space Mono',monospace;font-size:.62rem;letter-spacing:.28em;color:rgba(244,244,240,.45);
  pointer-events:none;
}
.svc-list{list-style:none;display:flex;flex-direction:column;gap:30px}
.svc-list li{font-weight:900;font-size:clamp(1.3rem,2.6vw,1.9rem);letter-spacing:-.01em;line-height:1.2}
.svc-list li em{
  display:block;font-style:normal;font-family:'Space Mono',monospace;font-weight:400;
  font-size:.75rem;letter-spacing:.15em;color:rgba(244,244,240,.55);margin-top:8px;
}
.svc-list .r{margin-right:12px}

/* ---------- CONTACT ---------- */
.section-contact{text-align:center;padding:160px 6vw}
.section-contact .idx{display:block;margin-bottom:10px}
.cta{
  display:inline-block;margin-top:44px;
  font-family:'Space Mono',monospace;font-weight:700;font-size:clamp(.85rem,1.6vw,1rem);letter-spacing:.15em;
  color:var(--b);background:var(--w);padding:20px 42px;transition:background .2s,color .2s;
}
.cta:hover{background:var(--r);color:var(--w)}

/* ---------- FOOTER ---------- */
footer{
  padding:40px 6vw;border-top:1px solid rgba(244,244,240,.08);
  font-family:'Space Mono',monospace;font-size:.65rem;letter-spacing:.25em;color:rgba(244,244,240,.4);
}

/* ---------- Fallback ---------- */
.fallback{display:none;position:fixed;inset:0;z-index:99;background:var(--b);
  align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:24px}
body.no-webgl .fallback{display:flex}
.fallback p{color:rgba(244,244,240,.6);font-family:'Space Mono',monospace;font-size:.85rem;margin-top:10px}

@media(max-width:860px){
  .split{grid-template-columns:1fr}
  .nav a:not(.nav-cta){display:none}
  .section{padding:90px 24px}
}
