/* Liquid Web Solutions — base: tokens, type, stage primitives */
@font-face{font-family:'Inter Tight';font-weight:100 900;font-style:normal;font-display:swap;src:url(/assets/fonts/InterTight-var.woff2) format('woff2')}
@font-face{font-family:'Caveat';font-weight:600;font-style:normal;font-display:swap;src:url(/assets/fonts/Caveat-600.woff2) format('woff2')}

:root{
  --navy:#07123a; --ink:#0b1a4a; --ink2:#2a3a66; --mute:#5b6a8f;
  --blue:#0a47e0; --blue2:#1f6bff; --cyan:#3cc8ff; --sky:#7fd3ff;
  --glass-dk:linear-gradient(160deg,rgba(28,70,170,.66),rgba(8,26,90,.82));
  --glass-dk-edge:rgba(130,200,255,.78);
  --glass-lt:rgba(255,255,255,.86);
  --f:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --fh:'Inter Tight','Inter',system-ui,sans-serif;
  --u:.8px; --sx:0px; --sy:0px; --sw:1336px; --sh:752px;
  --ease:cubic-bezier(.2,.8,.2,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;background:#9cc4f4}
body{font-family:var(--f);color:var(--navy);background:#9cc4f4;overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:3px solid var(--cyan);outline-offset:3px;border-radius:10px}
[hidden]{display:none!important}

/* ---------- art layers ---------- */
.art,.plate-fallback{position:fixed;inset:0;width:100vw;height:100vh;z-index:0;display:block}
.plate-fallback{background:#9cc4f4 no-repeat;opacity:0;transition:opacity .6s}
.plate-fallback.on{opacity:1}
#app{position:relative;z-index:2}
#overlay-root{position:relative;z-index:60}

/* ---------- stage primitives (desktop: comp coordinates x --u) ---------- */
.stage{position:fixed;left:var(--sx);top:var(--sy);width:var(--sw);height:var(--sh);z-index:2}
.abs{position:absolute;left:calc(var(--x,0)*var(--u));top:calc(var(--y,0)*var(--u))}
.abs[style*="--w:"]{width:calc(var(--w)*var(--u))}
.abs[style*="--h:"]{height:calc(var(--h)*var(--u))}
.fs{font-size:max(9px,calc(var(--fs,16)*var(--u)))}

/* ---------- screen transitions ---------- */
.screen{opacity:0;transition:opacity .7s ease}
.screen.in{opacity:1}
.screen.out{opacity:0;pointer-events:none}
.rise{opacity:0;transform:translateY(calc(14*var(--u)));transition:opacity .8s var(--ease),transform .8s var(--ease);transition-delay:calc(var(--d,0)*1ms)}
.screen.in .rise{opacity:1;transform:none}

/* ---------- headline treatment ---------- */
.h1{font-family:var(--fh);font-weight:800;letter-spacing:-.04em;line-height:1.02;color:var(--navy)}
.grad{background:linear-gradient(90deg,#0836c8 0%,#0a55f0 48%,#1f8bff 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.eyebrow{font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:#0e2a78}
.eyebrow i{font-style:normal;color:var(--blue2);margin:0 .9em}
.lede{color:#10204f;font-weight:450;line-height:1.38}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition-duration:.01ms!important;transition-delay:0s!important}}
