/* ULTRALUS design system — shared by every page.
   Black / blue / white / gray. Type scale raised 2026-09-17 for legibility:
   nothing body-level sits below 17px, muted gray lifted for contrast. */

:root{
  --bg:#080B11; --secondary:#0D131C; --surface:#131C29; --line:#1E2A3A;
  --accent:#2F81FF; --accent2:#1B5FD0; --ink:#FFFFFF;
  --muted:#A8B2C4;        /* was #939EB2 — lifted for contrast on near-black */
  --muted-2:#7E899B;
}
*{-webkit-font-smoothing:antialiased}
body{background:var(--bg);color:#fff;font-family:'Inter',sans-serif;overflow-x:hidden;
  font-size:18px;line-height:1.65}
::selection{background:var(--accent);color:#fff}

/* ambient */
.cursor-glow{position:fixed;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(620px circle at var(--mx,50%) var(--my,50%),rgba(47,129,255,.11),transparent 55%);
  transition:background .2s ease-out}
.aurora{position:absolute;inset:-20%;z-index:0;filter:blur(74px);opacity:.5;pointer-events:none}
.aurora span{position:absolute;border-radius:50%;mix-blend-mode:screen;animation:drift 24s ease-in-out infinite}
.aurora .a{width:46vw;height:46vw;left:-8%;top:-10%;background:radial-gradient(circle,rgba(47,129,255,.30),transparent 60%)}
.aurora .b{width:40vw;height:40vw;right:-10%;top:8%;background:radial-gradient(circle,rgba(27,95,208,.22),transparent 60%);animation-delay:-8s}
.aurora .c{width:38vw;height:38vw;left:32%;bottom:-16%;background:radial-gradient(circle,rgba(120,160,255,.12),transparent 60%);animation-delay:-14s}
@keyframes drift{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(6%,4%) scale(1.08)}66%{transform:translate(-5%,-3%) scale(.96)}}

/* type scale */
.h-hero{font-family:'Saira Condensed',sans-serif;font-weight:800;line-height:.92;
  text-transform:uppercase;font-size:clamp(54px,10.5vw,118px)}
.h-sec{font-family:'Saira Condensed',sans-serif;font-weight:700;line-height:.98;
  text-transform:uppercase;font-size:clamp(40px,6.4vw,66px)}
.h-card{font-family:'Saira Condensed',sans-serif;font-weight:700;text-transform:uppercase;
  letter-spacing:.01em;font-size:clamp(23px,2.6vw,29px);line-height:1.06}
.body-lg{font-size:clamp(19px,2.3vw,23px);line-height:1.62;color:var(--muted)}
.body-md{font-size:17.5px;line-height:1.62;color:var(--muted)}
.kicker{font-family:'Saira Condensed',sans-serif;font-weight:600;font-size:15px;
  letter-spacing:.26em;text-transform:uppercase;color:var(--accent)}
.kicker-m{color:var(--muted-2)}
.num{font-family:'Saira Condensed',sans-serif;font-weight:800;letter-spacing:-.01em}
.navlink{font-size:16px;color:var(--muted)}
.navlink:hover{color:#fff}

/* components */
.rule{height:1px;background:linear-gradient(90deg,transparent,var(--line) 12%,var(--line) 88%,transparent)}
.card{background:linear-gradient(180deg,rgba(19,28,41,.9),rgba(13,19,28,.9));
  border:1px solid var(--line);transition:.28s cubic-bezier(.2,.7,.3,1)}
.card:hover{border-color:rgba(47,129,255,.55);transform:translateY(-4px);
  box-shadow:0 22px 60px -30px rgba(47,129,255,.55)}
.btn{font-family:'Saira Condensed',sans-serif;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;font-size:17px;transition:.2s}
.reveal{opacity:0;transform:translateY(22px);
  transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.3,1)}
.reveal.in{opacity:1;transform:none}
details[open] .chev{transform:rotate(45deg)}
summary::-webkit-details-marker{display:none}

/* quote / source callout */
.srcquote{border-left:3px solid var(--accent);padding:6px 0 6px 26px;margin:26px 0}
.srcquote p{font-size:21px;line-height:1.55;color:#fff;margin:0}
.srcquote cite{display:block;margin-top:14px;font-style:normal;font-size:15px;color:var(--muted-2)}
.srcquote cite a{color:var(--muted);text-decoration:underline;text-underline-offset:3px}
.srcquote cite a:hover{color:var(--accent)}

/* comparison matrix */
.cmp{width:100%;border-collapse:collapse}
.cmp thead th{font-family:'Saira Condensed',sans-serif;font-weight:600;font-size:15px;
  letter-spacing:.16em;text-transform:uppercase;padding:0 18px 20px;text-align:center;
  color:var(--muted);vertical-align:bottom}
.cmp thead th:first-child{text-align:left;padding-left:0;width:31%}
.cmp thead th.us{color:var(--accent);background:rgba(47,129,255,.07)}
.cmp td{padding:19px 18px;border-top:1px solid var(--line);font-size:17px;
  text-align:center;vertical-align:middle;color:var(--muted)}
.cmp td:first-child{text-align:left;padding-left:0;color:#fff;font-size:18px;font-weight:500}
.cmp td .sub{display:block;font-size:14.5px;color:var(--muted-2);margin-top:5px;
  line-height:1.45;font-weight:400}
.cmp td:first-child .sub{font-size:15px}
.cmp .yes{color:var(--accent);font-size:22px}
.cmp .part{color:#C9D3E2;font-size:22px}
.cmp .no{color:#46536A;font-size:22px}
.cmp td.usc{background:rgba(47,129,255,.05)}
.cmp tbody tr:hover td{background:rgba(255,255,255,.02)}
.cmp tbody tr:hover td.usc{background:rgba(47,129,255,.09)}
.cmp .grp td{background:rgba(255,255,255,.03);font-family:'Saira Condensed',sans-serif;
  font-weight:600;letter-spacing:.16em;text-transform:uppercase;font-size:14px;
  color:var(--muted-2);padding:14px 0;text-align:left}
@media(max-width:820px){
  .cmp td,.cmp thead th{padding:13px 8px;font-size:15px}
  .cmp td:first-child{font-size:16px}
  .cmp td .sub{display:none}
  .cmp td:first-child .sub{display:block;font-size:13.5px}
}
