/* =========================================================
   Projectonomics LLC — Immersive 3D homepage layer
   Loaded in addition to styles.css, only on index.html
   ========================================================= */

:root {
  --glow: 0 0 40px rgba(200,162,74,.35);
  --glass: rgba(255,255,255,.06);
  --glass-brd: rgba(255,255,255,.14);
}

/* Darker, deeper canvas for the 3D experience */
.immersive { background: #050d1a; color: var(--mist-100); }
.immersive .site-header {
  background: rgba(5,13,26,.72);
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.immersive .brand__name { color: #fff; }
.immersive .nav__links a { color: var(--mist-200); }
.immersive .nav__links a:hover, .immersive .nav__links a.is-active { color:#fff; background: rgba(255,255,255,.08); }
.immersive .nav__toggle span { background:#fff; }
@media (max-width:760px){ .immersive .nav__links{ background:#0a1526; } }

/* ---------- Scene / perspective helpers ---------- */
.scene { perspective: 1400px; perspective-origin: 50% 40%; }
.reveal3d {
  opacity: 0;
  transform: perspective(1200px) rotateX(14deg) translateY(60px) scale(.96);
  transform-origin: 50% 100%;
  transition: opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1);
  will-change: transform, opacity;
}
.reveal3d.in { opacity: 1; transform: none; }
.reveal3d.d1 { transition-delay: .08s; }
.reveal3d.d2 { transition-delay: .16s; }
.reveal3d.d3 { transition-delay: .24s; }

/* ---------- HERO ---------- */
.hero3d {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  overflow: hidden;
  isolation: isolate;
}
#heroCanvas {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  z-index: 0;
  display: block;
}
.hero3d::after {
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:
    radial-gradient(120% 80% at 78% 20%, rgba(200,162,74,.14), transparent 45%),
    radial-gradient(90% 90% at 10% 100%, rgba(22,58,95,.55), transparent 50%),
    linear-gradient(180deg, rgba(5,13,26,.15), rgba(5,13,26,.75));
}
.hero3d__inner { position: relative; z-index: 3; width:100%; }
.hero3d .eyebrow { color: var(--gold-400); }
.hero3d h1 {
  color:#fff;
  font-size: clamp(2.6rem, 6.4vw, 5.2rem);
  line-height: 1.02;
  letter-spacing: -.02em;
  margin-bottom: .35em;
}
.hero3d h1 .grad {
  background: linear-gradient(100deg, #f3ead2, #c8a24a 55%, #a9812f);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
}
.hero3d .lead { color: var(--mist-200); max-width: 42ch; font-size: clamp(1.05rem,1.6vw,1.28rem); }
.hero3d__actions { display:flex; flex-wrap:wrap; gap:14px; margin-top:32px; }
.btn--glass { background: var(--glass); color:#fff; border:1px solid var(--glass-brd); backdrop-filter: blur(6px); }
.btn--glass:hover { border-color: var(--gold-400); color: var(--gold-400); }

/* floating 3D chips */
.chips3d {
  position:absolute; inset:0; z-index:2; pointer-events:none;
  transform-style: preserve-3d;
}
.chip3d {
  position:absolute;
  display:flex; align-items:center; gap:10px;
  padding:14px 18px;
  background: var(--glass);
  border:1px solid var(--glass-brd);
  border-radius:14px;
  backdrop-filter: blur(9px);
  box-shadow: 0 20px 50px rgba(0,0,0,.45);
  color:#fff; font-weight:600; font-size:.95rem;
  white-space:nowrap;
  will-change: transform;
}
.chip3d .dot { width:10px; height:10px; border-radius:50%; background:var(--gold-500); box-shadow: var(--glow); }
.chip3d.c1 { top:24%; right:6%; }
.chip3d.c2 { top:44%; right:15%; }
.chip3d.c3 { top:64%; right:4%; }
.chip3d.c4 { top:78%; right:22%; }

.scrollcue {
  position:absolute; left:50%; bottom:26px; transform:translateX(-50%);
  z-index:3; color:var(--slate-300); font-size:.72rem; letter-spacing:.2em; text-transform:uppercase;
  display:flex; flex-direction:column; align-items:center; gap:8px;
}
.scrollcue .mouse { width:24px; height:38px; border:2px solid var(--slate-400); border-radius:14px; position:relative; }
.scrollcue .mouse::after { content:""; position:absolute; left:50%; top:7px; width:4px; height:8px; border-radius:2px; background:var(--gold-400); transform:translateX(-50%); animation: cue 1.6s infinite; }
@keyframes cue { 0%{opacity:0;transform:translate(-50%,0)} 30%{opacity:1} 60%{opacity:1;transform:translate(-50%,10px)} 100%{opacity:0;transform:translate(-50%,12px)} }

/* ---------- Marquee ---------- */
.marquee { border-block:1px solid rgba(255,255,255,.07); background: rgba(255,255,255,.02); overflow:hidden; }
.marquee__track { display:flex; gap:56px; padding:18px 0; white-space:nowrap; animation: slide 26s linear infinite; }
.marquee span { color:var(--slate-300); font-size:.82rem; letter-spacing:.16em; text-transform:uppercase; }
@keyframes slide { from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* ---------- Section shells (dark) ---------- */
.i-section { padding: 110px 0; position:relative; }
.i-section h2 { color:#fff; font-size: clamp(1.9rem, 3.6vw, 2.9rem); }
.i-section .lead { color: var(--mist-200); }
.i-eyebrow { color: var(--gold-400); }

/* ---------- 3D service cards ---------- */
.cards3d { display:grid; grid-template-columns: repeat(4,1fr); gap:22px; }
.tilt {
  position:relative;
  border-radius:18px;
  padding:30px 26px;
  background: linear-gradient(160deg, rgba(255,255,255,.07), rgba(255,255,255,.02));
  border:1px solid var(--glass-brd);
  backdrop-filter: blur(8px);
  transform-style: preserve-3d;
  transition: transform .18s ease, box-shadow .3s ease, border-color .3s ease;
  will-change: transform;
  min-height: 300px;
  display:flex; flex-direction:column;
}
.tilt:hover { box-shadow: 0 30px 70px rgba(0,0,0,.5), var(--glow); border-color: rgba(200,162,74,.5); }
.tilt__glow { position:absolute; inset:0; border-radius:18px; opacity:0; transition:opacity .3s; background: radial-gradient(circle at var(--mx,50%) var(--my,20%), rgba(200,162,74,.22), transparent 60%); pointer-events:none; }
.tilt:hover .tilt__glow { opacity:1; }
.tilt__icon { width:54px; height:54px; border-radius:14px; display:grid; place-items:center; background: rgba(200,162,74,.14); color:var(--gold-400); margin-bottom:18px; transform: translateZ(40px); }
.tilt__icon svg { width:28px; height:28px; }
.tilt h3 { color:#fff; font-size:1.24rem; margin-bottom:8px; transform: translateZ(28px); }
.tilt p { color:var(--mist-200); font-size:.95rem; margin:0; transform: translateZ(18px); }
.tilt .more { margin-top:auto; padding-top:16px; color:var(--gold-400); font-weight:600; font-size:.9rem; transform: translateZ(24px); }

/* ---------- Rotating 3D prism/cube ---------- */
.cube-wrap { display:grid; grid-template-columns: 1fr 1fr; gap:56px; align-items:center; }
.stage {
  perspective: 1000px;
  display:grid; place-items:center;
  min-height: 380px;
}
.cube {
  position:relative;
  width: 220px; height: 220px;
  transform-style: preserve-3d;
  transform: rotateX(-18deg) rotateY(0deg);
  will-change: transform;
}
.cube.spin { animation: spin 22s linear infinite; }
@keyframes spin { from{transform:rotateX(-18deg) rotateY(0)} to{transform:rotateX(-18deg) rotateY(360deg)} }
.face {
  position:absolute; width:220px; height:220px;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px;
  border:1px solid rgba(200,162,74,.4);
  background: linear-gradient(160deg, rgba(15,41,70,.86), rgba(8,20,36,.86));
  box-shadow: inset 0 0 60px rgba(200,162,74,.08);
  color:#fff; text-align:center; padding:20px;
  backface-visibility: visible;
}
.face b { font-family: var(--font-head); font-size:1.15rem; }
.face span { font-size:.8rem; color:var(--slate-300); letter-spacing:.08em; }
.face svg { width:40px; height:40px; color:var(--gold-400); }
.face--f { transform: rotateY(0deg)   translateZ(110px); }
.face--b { transform: rotateY(180deg) translateZ(110px); }
.face--r { transform: rotateY(90deg)  translateZ(110px); }
.face--l { transform: rotateY(-90deg) translateZ(110px); }
.face--t { transform: rotateX(90deg)  translateZ(110px); }
.face--d { transform: rotateX(-90deg) translateZ(110px); }

/* ---------- Stats (dark) ---------- */
.i-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.i-stat { text-align:center; padding:26px 12px; border-radius:16px; background: var(--glass); border:1px solid rgba(255,255,255,.08); }
.i-stat b { display:block; font-family:var(--font-head); font-size:2.7rem; color:var(--gold-400); line-height:1; }
.i-stat span { color:var(--mist-200); font-size:.92rem; margin-top:8px; display:block; }

/* ---------- Process depth rail ---------- */
.rail { display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.rail__step {
  padding:28px 24px; border-radius:16px;
  background: linear-gradient(160deg, rgba(255,255,255,.06), rgba(255,255,255,.015));
  border:1px solid var(--glass-brd);
}
.rail__step .n { font-family:var(--font-head); font-size:1.5rem; color:var(--gold-400); }
.rail__step h3 { color:#fff; font-size:1.1rem; margin:8px 0 6px; }
.rail__step p { color:var(--mist-200); font-size:.93rem; margin:0; }

/* ---------- Quotes (dark) ---------- */
.i-quote { background: var(--glass); border:1px solid var(--glass-brd); border-left:4px solid var(--gold-500); border-radius:16px; padding:30px; }
.i-quote p { color:#eef2f7; font-style:italic; font-size:1.05rem; }
.i-quote .quote__who b { color:#fff; }
.i-quote .quote__who span { color:var(--slate-300); }

/* ---------- CTA (dark) ---------- */
.i-cta { border-radius:22px; padding:60px; text-align:center; position:relative; overflow:hidden;
  background: linear-gradient(120deg, #0f2946, #163a5f);
  border:1px solid rgba(200,162,74,.3);
  box-shadow: 0 40px 90px rgba(0,0,0,.5);
}
.i-cta::after{content:"";position:absolute;inset:0;background:radial-gradient(60% 100% at 80% 0%, rgba(200,162,74,.18), transparent 55%);}
.i-cta > * { position:relative; z-index:2; }
.i-cta h2 { color:#fff; }
.i-cta p { color:var(--mist-200); max-width:56ch; margin:0 auto 26px; }

/* immersive footer tone */
.immersive .site-footer { background:#040a14; }

/* ---------- Responsive ---------- */
@media (max-width: 960px) {
  .cards3d { grid-template-columns: repeat(2,1fr); }
  .cube-wrap { grid-template-columns:1fr; gap:36px; }
  .i-stats { grid-template-columns: repeat(2,1fr); }
  .rail { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 760px) {
  .chips3d { display:none; }
  .cards3d { grid-template-columns:1fr; }
  .i-stats { grid-template-columns:repeat(2,1fr); }
  .rail { grid-template-columns:1fr; }
  .i-section { padding:78px 0; }
  .i-cta { padding:38px 24px; }
  .hero3d { min-height: 88vh; }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  .cube.spin { animation: none; }
  .marquee__track { animation: none; }
  .scrollcue .mouse::after { animation: none; }
  .reveal3d { transition: opacity .4s ease; transform:none; opacity:0; }
  .reveal3d.in { opacity:1; }
}
