/* HIVEMIND SOLUTIONS preview engine: shared base. Theme vars come from theme.css */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:var(--font-body);color:var(--ink);background:var(--bg);line-height:1.6;font-size:17px;overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg,canvas{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--font-display);line-height:1.05;margin:0 0 .5em;letter-spacing:-.01em}
p{margin:0 0 1em}
.wrap{width:min(1180px,100% - 40px);margin-inline:auto}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:0;background:#000;color:#fff;padding:8px 12px;z-index:200}.skip:focus{left:8px;top:36px}

/* Preview banner */
.hm-banner{position:fixed;inset:0 0 auto 0;z-index:120;height:28px;display:flex;align-items:center;justify-content:center;gap:8px;font:600 11.5px/1 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;letter-spacing:.04em;color:#e9f3ff;background:linear-gradient(90deg,#0b1220,#13233f 50%,#0b1220);border-bottom:1px solid rgba(88,166,255,.35);text-transform:uppercase}
.hm-banner a{color:#7cc0ff;text-decoration:none}
.hm-banner svg{width:12px;height:13px}
body{padding-top:28px}

/* Scroll progress */
.hm-progress{position:fixed;left:0;top:28px;height:2px;width:100%;transform-origin:0 50%;transform:scaleX(var(--sp,0));background:var(--accent);z-index:119}

/* Nav */
.nav{position:sticky;top:28px;z-index:100;transition:background .4s,box-shadow .4s,backdrop-filter .4s}
.nav.scrolled{background:var(--nav-bg);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);box-shadow:0 10px 30px -20px rgba(0,0,0,.5)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;height:68px}
.nav-links{display:flex;gap:26px;align-items:center;font-weight:600;font-size:15px}
.nav-links a{text-decoration:none;opacity:.85;transition:opacity .2s}.nav-links a:hover{opacity:1}
@media (max-width:860px){.nav-links .hide-m{display:none}}

/* Buttons */
.btn{--b:var(--accent);display:inline-flex;align-items:center;gap:10px;padding:16px 26px;border-radius:var(--radius-btn,999px);font-weight:700;font-size:16px;text-decoration:none;border:0;cursor:pointer;background:var(--b);color:var(--on-accent);box-shadow:0 14px 30px -12px var(--accent-shadow,rgba(0,0,0,.5)),inset 0 1px 0 rgba(255,255,255,.25);transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s;will-change:transform;position:relative;overflow:hidden;-webkit-tap-highlight-color:transparent}
.btn::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);transform:translateX(-120%);transition:transform .7s}
.btn:hover::after{transform:translateX(120%)}
.btn:active{transform:scale(.96)}
.btn.ghost{background:transparent;color:var(--ink-hero,var(--ink));box-shadow:inset 0 0 0 2px currentColor}
.btn svg{width:18px;height:18px}

/* Sections */
section{position:relative}
.sec{padding:clamp(80px,12vw,150px) 0;position:relative;overflow:hidden}
.eyebrow{display:inline-block;font:700 12.5px/1 var(--font-body);letter-spacing:.22em;text-transform:uppercase;color:var(--accent-text,var(--accent));margin-bottom:18px}
.lede{font-size:clamp(18px,2.1vw,22px);opacity:.85;max-width:60ch}
.h2{font-size:clamp(38px,6.2vw,78px)}

/* Parallax layers */
[data-depth]{will-change:transform}
.layer{position:absolute;pointer-events:none}

/* 3D reveal */
.r3d{perspective:1200px}
[data-reveal]{opacity:0;transform:translate3d(0,60px,-120px) rotateX(28deg);transform-origin:50% 100%;transition:opacity .9s cubic-bezier(.2,.8,.2,1),transform 1.1s cubic-bezier(.2,.8,.2,1);transition-delay:calc(var(--i,0)*90ms)}
[data-reveal="left"]{transform:translate3d(-60px,0,-80px) rotateY(24deg);transform-origin:0 50%}
[data-reveal="right"]{transform:translate3d(60px,0,-80px) rotateY(-24deg);transform-origin:100% 50%}
[data-reveal="flip"]{transform:rotateY(-70deg) translateZ(-40px);transform-origin:0 50%}
[data-reveal].in{opacity:1;transform:none}

/* Tilt cards */
.tilt{transform-style:preserve-3d;transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateZ(0);transition:transform .5s cubic-bezier(.2,.8,.2,1),box-shadow .5s;position:relative;touch-action:pan-y}
.tilt.active{transition:transform .08s linear}
.tilt .glare{position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(circle at var(--gx,50%) var(--gy,50%),rgba(255,255,255,.28),transparent 55%);opacity:0;transition:opacity .4s;mix-blend-mode:soft-light}
.tilt.active .glare{opacity:1}
.tilt .pop{transform:translateZ(40px)}
.tilt .pop2{transform:translateZ(70px)}

/* Hero canvas */
.hero{position:relative;min-height:calc(100svh - 28px);margin-top:-68px;padding-top:68px;display:flex;align-items:center;overflow:hidden;isolation:isolate}
.hero canvas.gl{position:absolute;inset:0;width:100%;height:100%;z-index:1;opacity:0;transition:opacity 1.2s}
.hero canvas.gl.ready{opacity:1}
.hero .fallback{transition:opacity .6s}
html.gl-ok .hero .fallback{opacity:0}
.hero-content{position:relative;z-index:3}

/* Marquee */
.marquee{overflow:hidden;white-space:nowrap;-webkit-mask:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.marquee-track{display:inline-flex;gap:48px;animation:mq 28s linear infinite;padding-right:48px}
@keyframes mq{to{transform:translateX(-50%)}}

/* Hours */
.hours{list-style:none;padding:0;margin:0;display:grid;gap:2px}
.hours li{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px dashed var(--line)}
.hours li.today{font-weight:800;color:var(--accent-text,var(--accent))}
.hours li.today::after{content:"Today";font-size:11px;letter-spacing:.15em;text-transform:uppercase;align-self:center;margin-left:8px;padding:3px 8px;border-radius:99px;background:var(--accent);color:var(--on-accent)}

/* Placeholder */
.ph{border:2px dashed var(--line);border-radius:16px;padding:22px;opacity:.85;font-style:italic}
.ph b{font-style:normal}

/* Sticky call bar (mobile) */
.callbar{position:fixed;left:12px;right:12px;bottom:12px;z-index:110;display:none;gap:10px;transform:translateY(130%);transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.callbar.show{transform:none}
.callbar a{flex:1;justify-content:center}
@media (max-width:760px){.callbar{display:flex}.nav .nav-cta{display:none}}

/* Footer */
.foot{padding:60px 0 120px;font-size:14px}
.foot .wrap{display:flex;flex-wrap:wrap;gap:24px;justify-content:space-between;align-items:center}
.hm-badge{display:inline-flex;align-items:center;gap:10px;padding:9px 14px 9px 10px;border-radius:999px;text-decoration:none;font:700 11px/1.1 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#dbe9ff;background:#0d1628;border:1px solid rgba(88,166,255,.35);transition:transform .3s,box-shadow .3s}
.hm-badge:hover{transform:translateY(-2px);box-shadow:0 10px 30px -10px rgba(88,166,255,.6)}
.hm-badge svg{width:18px;height:20px}
.hm-badge small{display:block;font-size:9px;letter-spacing:.12em;opacity:.7;font-weight:600}

/* Reduced motion */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  [data-reveal]{opacity:1;transform:none}
  [data-depth]{transform:none!important}
}
/* Kinetic headline */
[data-split] .w{display:inline-block;white-space:nowrap;perspective:700px}
[data-split] .ch{display:inline-block;opacity:0;transform:translate3d(0,.6em,0) rotateX(-85deg);transform-origin:50% 100%;transition:opacity .7s cubic-bezier(.2,.8,.2,1),transform 1s cubic-bezier(.2,.8,.2,1);transition-delay:calc(var(--d,0ms) + 150ms)}
html.loaded [data-split] .ch{opacity:1;transform:none}
.fade-up{opacity:0;transform:translateY(24px);transition:opacity .9s .5s,transform .9s .5s cubic-bezier(.2,.8,.2,1)}
html.loaded .fade-up{opacity:1;transform:none}
.fade-up.d2{transition-delay:.7s}.fade-up.d3{transition-delay:.9s}
@media (max-width:480px){.hm-banner{font-size:9.5px;letter-spacing:.01em;gap:5px;white-space:nowrap;padding:0 6px}.hm-banner svg{width:10px;height:11px}}
