:root{
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --red:#fc0b0c; --navy:#394777;
  --gold:#fc0b0c; --sage: rgba(150,176,150,0.14);
  --bg:#0d0c10; --bg-2:#16141b; --bg-3:#1a1e31;
  --text:#f4f0ea; --dim: rgba(244,240,234,0.62); --faint: rgba(244,240,234,0.40);
  --line: rgba(244,240,234,0.12);
  --card: rgba(255,255,255,0.035);
  --shadow: 0 18px 50px -20px rgba(0,0,0,0.7);
  --font-body:'Geist', system-ui, sans-serif;
  --font-mono:'Geist Mono', ui-monospace, monospace;
  --maxw:1280px;
}
:root[data-theme=light]{
  --bg:#f4f1ea; --bg-2:#ffffff; --bg-3:#eaecf4;
  --text:#15141a; --dim: rgba(21,20,26,0.64); --faint: rgba(21,20,26,0.42);
  --line: rgba(21,20,26,0.12);
  --card: rgba(21,20,26,0.025);
  --shadow: 0 18px 50px -22px rgba(35,40,70,0.32);
}
:root[data-dys=1]{ --font-body:'Lexend', system-ui, sans-serif; }
*{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
body{ background:var(--bg); color:var(--text); font-family:var(--font-body); -webkit-font-smoothing:antialiased; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; }
::selection{ background:var(--red); color:#fff; }
img{ display:block; max-width:100%; }
h1,h2,h3,h4,p{ margin:0; }

@keyframes uec-kb{ 0%{ transform:scale(1.02) translate(0,0); } 100%{ transform:scale(1.14) translate(-1.5%,-2.5%); } }
@keyframes uec-grain{ 0%{ background-position:0 0; } 100%{ background-position:240px 180px; } }
@keyframes uec-bub{ 0%{ transform:translateY(14px) scale(0.7); opacity:0; } 35%{ opacity:.9; } 100%{ transform:translateY(-46px) scale(1.05); opacity:0; } }
@keyframes uec-shine{ 0%{ background-position:-160% 0; } 100%{ background-position:260% 0; } }
@keyframes uec-spin{ to{ transform:rotate(360deg); } }
@keyframes uec-gloss{ 0%{ background-position:170% 0; } 60%,100%{ background-position:-70% 0; } }
@keyframes uec-defog{ 0%{ clip-path:inset(0 0 0 0); opacity:1; } 46%{ clip-path:inset(0 0 0 100%); opacity:1; } 58%{ clip-path:inset(0 0 0 100%); opacity:0; } 59%{ clip-path:inset(0 0 0 0); opacity:0; } 100%{ clip-path:inset(0 0 0 0); opacity:1; } }
@keyframes uec-sqz{ 0%{ left:-8%; opacity:0; } 6%{ opacity:1; } 46%{ left:99%; opacity:1; } 57%{ left:113%; opacity:0; } 100%{ left:113%; opacity:0; } }
@keyframes uec-fadeup{ from{ opacity:0; transform:translateY(20px); } to{ opacity:1; transform:none; } }

/* film grain */
#uec-grain{
  position:fixed; inset:0; z-index:60; pointer-events:none; opacity:.045; mix-blend-mode:normal;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:uec-grain 7s steps(6) infinite;
}
:root[data-theme=light] #uec-grain{ opacity:.05; mix-blend-mode:multiply; }

/* reveal on scroll */
[data-reveal]{ opacity:0; transform:translateY(26px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
[data-reveal].uec-in{ opacity:1; transform:none; }

/* animated underline links */
[data-link]{ position:relative; }
[data-link]::after{ content:''; position:absolute; left:0; bottom:-3px; height:1.5px; width:100%; background:currentColor; transform:scaleX(0); transform-origin:left center; transition:transform .42s var(--ease); }
[data-link]:hover::after, [data-link]:focus-visible::after{ transform:scaleX(1); }

/* header icon hover */
[data-hicon]{ transition:background .3s var(--ease), color .3s var(--ease); }
[data-hicon]:hover{ background:var(--sage); }

/* service card hover */
[data-card]{ transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease); }
[data-card]:hover{ transform:translateY(-6px); box-shadow:var(--shadow); border-color:var(--navy); }
[data-card] [data-cimg]{ transition:transform .7s var(--ease); }
[data-card]:hover [data-cimg]{ transform:scale(1.06); }
[data-card] [data-arrow]{ transition:transform .3s var(--ease); }
[data-card]:hover [data-arrow]{ transform:translateX(4px); }

.uec-soc{ transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease); }
.uec-soc:hover{ transform:translateY(-2px); border-color:var(--gold); box-shadow:0 0 18px -4px var(--gold); }

/* outlined pill button (brand bands) */
[data-pill]{ transition:background .3s var(--ease), transform .3s var(--ease), box-shadow .3s var(--ease); }
[data-pill]:hover{ background:rgba(255,255,255,0.18) !important; transform:translateY(-2px); box-shadow:0 10px 28px -14px rgba(0,0,0,0.6); }

/* focus-within contact dropdown (desktop) */
#contactWrap:focus-within #contactDrop, #contactWrap:hover #contactDrop{ opacity:1; visibility:visible; transform:translateY(0); }

:focus-visible{ outline:2px solid var(--navy); outline-offset:3px; border-radius:3px; }
/* legible header text while transparent over the dark hero (any theme) */
#uec-header[data-toplight] > a span,
#uec-header[data-toplight] [data-desknav] a,
#uec-header[data-toplight] #contactPill,
#uec-header[data-toplight] #searchBtn,
#uec-header[data-toplight] #settingsBtn,
#uec-header[data-toplight] #menuBtn{ color:#fff !important; }

/* responsive */
@media (max-width: 940px){
  [data-desknav] [data-desklinks]{ display:none !important; }
  [data-menubtn]{ display:inline-flex !important; }
}
@media (min-width: 941px){
  [data-menubtn]{ display:none !important; }
  #uec-mobilebar{ display:none !important; }
}
@media (max-width: 940px){
  #uec-app{ padding-bottom:74px; }
  #uec-header #searchBtn, #uec-header #settingsBtn, #uec-header #menuBtn{ width:44px !important; height:44px !important; }
  #contactWrap{ display:none !important; }
  #ctaBtn{ display:none !important; }
}
@media (max-width: 760px){
  [data-contactlabel]{ display:none !important; }
  [data-heroaside]{ display:none !important; }
}
@media (max-width: 520px){
  #uec-header{ gap:10px !important; }
  #uec-header > a[aria-label] > span{ font-size:14px !important; }
  #uec-header #searchBtn{ display:none !important; }
}
@media (max-width: 360px){
  #uec-header > a[aria-label] > span{ font-size:12.5px !important; }
}
#uec-header #contactPill{ white-space:nowrap; }
#uec-header #ctaBtn{ white-space:nowrap; }
#uec-header [data-desknav]{ flex:0 0 auto; }
#uec-header > div:last-child > *{ flex:0 0 auto; }

@media (prefers-reduced-motion: reduce){
  *{ animation:none !important; }
  [data-reveal]{ opacity:1 !important; transform:none !important; transition:none !important; }
  #uec-kbimg{ animation:none !important; }
}
