/* ============================================================
   MooseTraxx — marketing site · LIGHT REHAUL
   Airy, professional, product-forward. Attio-inspired.
   Type: Unbounded (display) · Poppins (headings) · DM Sans (body).
   MooseScore Orange→Yellow→Green ramp = live-data only.
   ============================================================ */

/* Fonts are loaded via <link rel="preconnect"> + <link rel="stylesheet"> in each
   page's <head>, not an @import here: an @import blocks until the CSS parser
   reaches it, so the font request cannot start until styles.css has downloaded. */
:root { --font-display: 'Unbounded', sans-serif; --font-heading: 'Poppins', sans-serif; --font-body: 'DM Sans', system-ui, sans-serif; }

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body {
  font-family: var(--font-body);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  background: var(--bg);
  color: var(--text);
  line-height: 1.55;
  /* clip, not hidden: `hidden` on one axis forces the other to compute as `auto`, which
     makes <body> its own scroll container nested inside the viewport scroller. On iOS
     WebKit (which iPhone Chrome also runs) that nesting is what produces endless blank
     scroll past the footer. `clip` contains overflow without creating a scroller, so the
     document keeps a single scroll root. Nothing on the site currently overflows
     horizontally at any width — this is a safety net, not load-bearing layout. */
  overflow-x: clip;
  transition: background .4s ease;
}
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; cursor: pointer; border: none; background: none; }
:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; border-radius: 6px; }

/* ============================================================
   TOKENS — light, airy, neutral canvas + one blue voice
   ============================================================ */
:root {
  /* Brand blue — the app's voice. Overridable via Tweaks. */
  --blue: #2f6db6;
  --blue-bright: #3f8be0;
  --blue-strong: #2f72c6;
  --blue-on-surface: #2f6db6;
  --blue-ink: #204d82;

  /* MooseScore ramp — LIVE DATA ONLY. Never decoration. */
  --orange: #E58521;
  --yellow: #F8D40B;
  --yellow-deep: #E3A50C;
  --green: #00AD56;
  --red: #D74B32;

  /* Canvas — soft neutral near-white with a whisper of warmth. */
  --bg: #FBFAF8;
  --bg-2: #F4F2EC;              /* alternating soft band */
  --tint-blue: #F1F5FB;         /* faint blue emphasis wash */
  --surface: #FFFFFF;
  --surface-soft: #FCFBF9;
  --border: rgba(28, 26, 22, .10);
  --border-soft: rgba(28, 26, 22, .06);
  --hairline: rgba(28, 26, 22, .08);

  --text: #1b1813;
  --text-muted: #635d53;
  --text-faint: #97907f;
  --label: #55708f;

  --track: rgba(28, 26, 22, .09);

  /* Soft, refined, layered shadows */
  --shadow-sm: 0 1px 2px rgba(24,22,18,.05), 0 2px 6px rgba(24,22,18,.04);
  --shadow-md: 0 2px 4px rgba(24,22,18,.04), 0 14px 30px -14px rgba(24,22,18,.14);
  --shadow-lg: 0 2px 6px rgba(24,22,18,.05), 0 30px 60px -24px rgba(24,22,18,.22);
  --shadow-frame: 0 1px 3px rgba(24,22,18,.06), 0 40px 80px -30px rgba(24,22,18,.30);

  --maxw: 1200px;
  --gutter: clamp(22px, 5vw, 68px);
  --r-xl: 26px;
  --r-lg: 20px;
  --r-md: 14px;
  --r-sm: 10px;
  --ease: cubic-bezier(.22, 1, .36, 1);

  /* density (Tweakable) */
  --band-pad: clamp(84px, 12vw, 168px);

  color-scheme: light;
}

/* ============================================================
   LAYOUT
   ============================================================ */
.wrap { width: 100%; max-width: var(--maxw); margin-inline: auto; padding-inline: var(--gutter); }
section { position: relative; }
.band { padding-block: var(--band-pad); }
.band--soft { background: var(--bg-2); }
.band--ink {                     /* emphasis band — light tinted, not dark */
  background: var(--tint-blue);
}

/* ============================================================
   TYPOGRAPHY
   ============================================================ */
a { color: var(--blue-on-surface); }
a:hover { color: var(--blue-ink); }
.nav__logo, .nav__logo:hover, .footer__lockup { color: inherit; }
.eyebrow {
  display: inline-flex; align-items: center; gap: 9px;
  font-size: 12.5px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;
  color: var(--label);
}
.center .eyebrow, .privacy .eyebrow { justify-content: center; }

h1, h2, h3, h4 { font-family: var(--font-heading); line-height: 1.08; letter-spacing: -.022em; font-weight: 700; color: var(--text); }
.display {
  font-family: var(--font-heading);
  font-size: clamp(40px, 5.8vw, 76px);
  font-weight: 700; letter-spacing: -.03em; line-height: 1.03;
}
.h2 { font-family: var(--font-heading); font-size: clamp(30px, 3.9vw, 47px); font-weight: 700; letter-spacing: -.025em; }
.lead { font-size: clamp(17px, 1.55vw, 20px); color: var(--text-muted); line-height: 1.6; }
.section-head { max-width: 760px; }
.section-head .lead { margin-top: 20px; }
.text-blue { color: var(--blue-on-surface); }
.muted { color: var(--text-muted); }
.tnum { font-variant-numeric: tabular-nums; }
.center { text-align: center; margin-inline: auto; }
.center.section-head { max-width: 800px; }

/* ============================================================
   BUTTONS — rounded-rect, product-forward
   ============================================================ */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  height: 48px; padding-inline: 22px; border-radius: 11px;
  font-weight: 600; font-size: 15px; letter-spacing: -.01em;
  transition: transform .22s var(--ease), background .2s, box-shadow .22s, border-color .2s, color .2s;
  white-space: nowrap;
}
.btn:active { transform: translateY(1px); }
.btn--primary {
  background: var(--blue);
  color: #fff;
}
.btn--primary:hover { background: color-mix(in srgb, var(--blue) 90%, #000); transform: translateY(-1px); }
.btn--ghost {
  background: var(--surface);
  color: var(--text);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-sm);
}
.btn--ghost:hover { border-color: color-mix(in srgb, var(--blue) 40%, var(--border)); color: var(--blue-ink); transform: translateY(-1px); }
.btn--lg { height: 54px; padding-inline: 28px; font-size: 16.5px; border-radius: 12px; }
.btn .arrow { transition: transform .22s var(--ease); }
.btn:hover .arrow { transform: translateX(3px); }

/* ============================================================
   NAV
   ============================================================ */
.nav {
  position: fixed; inset: 0 0 auto 0; z-index: 100;
  display: flex; align-items: center; justify-content: center;
  transition: background .35s, border-color .35s, backdrop-filter .35s;
  border-bottom: 1px solid transparent;
}
/* .menu-open borrows the scrolled treatment so the open mobile panel still reads
   against page content when the bar itself is still transparent at scroll top. */
.nav.scrolled, .nav.menu-open {
  background: color-mix(in srgb, var(--bg) 78%, transparent);
  backdrop-filter: blur(18px) saturate(1.4);
  border-bottom: 1px solid var(--hairline);
}
.nav__inner {
  width: 100%; max-width: var(--maxw); margin-inline: auto; padding: 15px var(--gutter);
  display: flex; align-items: center; gap: 26px;
}
.nav__logo { height: 28px; }
.nav__logo img { height: 100%; width: auto; }
.nav__logo .logo-white { display: none; }
.nav__links { display: flex; gap: 2px; margin-left: 12px; }
.nav__links a {
  padding: 8px 13px; border-radius: 9px; font-size: 14.5px; font-weight: 500; white-space: nowrap;
  color: var(--text-muted); transition: color .2s, background .2s;
}
.nav__links a:hover { color: var(--text); background: rgba(28,26,22,.05); }
.nav__spacer { flex: 1; }
.nav__cta { display: flex; align-items: center; gap: 10px; }
.nav .btn { height: 40px; padding-inline: 18px; font-size: 14.5px; border-radius: 10px; }

/* ---------- Mobile nav — hamburger + slide-down panel ---------- */
/* Both are inert above the breakpoint; everything mobile-only lives in the
   media query below so the desktop bar keeps exactly its previous rules. */
.nav__burger, .nav__menu { display: none; }

@media (max-width: 860px) {
  .nav__links, .nav__cta { display: none; }

  .nav__burger {
    display: inline-flex; align-items: center; justify-content: center;
    width: 40px; height: 40px; border-radius: 9px;
    color: var(--text-muted); transition: color .2s, background .2s;
  }
  .nav__burger:hover { color: var(--text); background: rgba(28,26,22,.05); }
  /* Icon swap: bars at rest, X while open. */
  .nav__burger-x { display: none; }
  .nav__burger.open .nav__burger-bars { display: none; }
  .nav__burger.open .nav__burger-x { display: block; }

  /* Absolutely positioned against the fixed .nav so the panel hangs directly
     below the bar without becoming a flex item in its row. */
  .nav__menu {
    position: absolute; top: 100%; left: 0; right: 0;
    display: flex; flex-direction: column;
    padding: 8px var(--gutter) 18px;
    background: color-mix(in srgb, var(--bg) 78%, transparent);
    backdrop-filter: blur(18px) saturate(1.4);
    border-bottom: 1px solid var(--hairline);
    visibility: hidden; opacity: 0; transform: translateY(-4px);
    transition: opacity .2s var(--ease), transform .2s var(--ease), visibility .2s;
  }
  .nav__menu.open { visibility: visible; opacity: 1; transform: translateY(0); }

  .nav__menu-links { display: flex; flex-direction: column; }
  .nav__menu-links a {
    display: flex; align-items: center; min-height: 44px;
    padding: 8px 13px; border-radius: 9px;
    font-size: 14.5px; font-weight: 500; color: var(--text-muted);
    transition: color .2s, background .2s;
  }
  .nav__menu-links a:hover { color: var(--text); background: rgba(28,26,22,.05); }
  /* Restores the base .btn metrics that `.nav .btn` shrinks for the desktop bar. */
  .nav__menu-cta {
    width: 100%; margin-top: 10px;
    height: 48px; padding-inline: 22px; font-size: 15px; border-radius: 11px;
  }
}
@media (prefers-reduced-motion: reduce) { .nav__menu { transition: none; } }

/* ============================================================
   HERO
   ============================================================ */
.hero {
  position: relative; padding-top: 150px; padding-bottom: clamp(72px, 10vw, 132px);
  background:
    radial-gradient(1200px 640px at 80% -6%, var(--tint-blue), transparent 62%),
    linear-gradient(180deg, #FDFCFA, var(--bg));
  overflow: hidden;
}
.hero::before {                  /* whisper of a dotted texture, masked to fade out */
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 0;
  background-image: radial-gradient(rgba(28,26,22,.05) 1px, transparent 1px);
  background-size: 30px 30px;
  -webkit-mask-image: radial-gradient(120% 85% at 50% 0%, #000 20%, transparent 68%);
          mask-image: radial-gradient(120% 85% at 50% 0%, #000 20%, transparent 68%);
  opacity: .7;
}
.hero__grid {
  position: relative; z-index: 2;
  display: grid; grid-template-columns: 1.02fr 1.05fr; gap: clamp(36px, 5vw, 76px); align-items: center;
}
.hero__copy { max-width: 580px; }
.hero h1 { margin-top: 24px; }
.hero h1 .accent { color: var(--blue-on-surface); }
.hero__sub { margin-top: 26px; max-width: 500px; }
.hero__cta { margin-top: 36px; display: flex; gap: 13px; flex-wrap: wrap; }
.hero__note { margin-top: 22px; font-size: 13.5px; color: var(--text-faint); display: flex; align-items: center; gap: 8px; }
.works { margin-top: 46px; }
.works__lab { font-size: 16px; font-weight: 600; letter-spacing: -.01em; color: var(--text-muted); display: block; }
.works__row { margin-top: 16px; display: flex; align-items: center; justify-content: space-between; gap: clamp(14px, 2.4vw, 28px); flex-wrap: nowrap; max-width: 520px; }
.works__item { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; font-size: 13.5px; font-weight: 600; color: var(--text-muted); }
.works__item { min-height: 34px; box-sizing: border-box; justify-content: flex-start; }

.works__item--lockup img { height: 21px; width: auto; }
.works__item--teams img { height: 27px; }
.works__item--meet img { height: 20px; }
.works__item--webex img { height: 27px; }
.works__item--zoom img { height: 22px; }
.works__item img { display: block; max-width: 100%; object-fit: contain; }
@media (max-width: 560px) { .works__row { flex-wrap: wrap; justify-content: flex-start; gap: 20px 26px; } }

.hero__note .dot, .works__lab .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 4px color-mix(in srgb, var(--green) 20%, transparent); }

/* ---------- Hero layout ---------- */
.hero__visual { position: relative; }

@media (max-width: 940px) {
  .hero__grid { grid-template-columns: 1fr; }
  .hero__visual { order: -1; margin-bottom: 44px; }
  .hero__copy { max-width: none; }
}

/* ============================================================
   MARQUEE / TRUST STRIP
   ============================================================ */
.marquee {
  border-block: 1px solid var(--hairline);
  padding-block: 22px; overflow: hidden; background: var(--surface);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
          mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.marquee__track { display: flex; align-items: center; gap: 56px; width: max-content; animation: marquee 40s linear infinite; }
.marquee:hover .marquee__track { animation-play-state: paused; }
.marquee__item { font-family: var(--font-display);
  display: inline-flex; align-items: center; gap: 12px;
  font-size: 15.5px; font-weight: 600; letter-spacing: -.01em; color: var(--text-muted); white-space: nowrap;
}
.marquee__item .tm { color: var(--text-faint); font-weight: 500; }
.marquee__sep { width: 5px; height: 5px; border-radius: 50%; background: #b7bcc4; }

/* ============================================================
   DOWNLOAD
   ============================================================ */
.dl-cards { margin-top: 52px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; max-width: 720px; margin-inline: auto; }
@media (max-width: 640px) { .dl-cards { grid-template-columns: 1fr; } }
.dl-card {
  position: relative; text-align: center;
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg);
  padding: 40px 32px 32px; box-shadow: var(--shadow-sm);
  display: flex; flex-direction: column; align-items: center;
  transition: transform .3s var(--ease), box-shadow .3s, border-color .3s;
}
.dl-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.dl-card__ic { width: 52px; height: 52px; display: grid; place-items: center; color: var(--text); margin-bottom: 16px; }
.dl-card__ic svg { width: 42px; height: 42px; }
.dl-card__ic img { width: 42px; height: 42px; object-fit: contain; }
.dl-card__name { font-size: 22px; font-weight: 700; letter-spacing: -.02em; }
.dl-card__meta { font-size: 13.5px; color: var(--text-muted); margin-top: 5px; }
.dl-card .btn { margin-top: 22px; width: 100%; }
.dl-card__note { font-size: 12.5px; color: var(--text-faint); margin-top: 13px; }
.dl-card.is-detected { border-color: color-mix(in srgb, var(--blue) 42%, var(--border)); box-shadow: var(--shadow-md); }
.dl-foot { margin-top: 30px; display: flex; flex-direction: column; align-items: center; gap: 15px; text-align: center; }
.dl-req { display: inline-flex; flex-direction: column; gap: 4px; font-size: 13.5px; color: var(--text-muted); max-width: 520px; }
.dl-req b { color: var(--text); font-weight: 700; font-size: 11px; text-transform: uppercase; letter-spacing: .1em; }
.dl-link { font-size: 14.5px; font-weight: 600; color: var(--blue-ink); }
.dl-link:hover { text-decoration: underline; }
@keyframes marquee { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .marquee__track { animation: none; flex-wrap: wrap; justify-content: center; } }

/* ============================================================
   MOOSESCORE EXPLAINER
   ============================================================ */
.mscore-grid {
  margin-top: 60px; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 4.5vw, 68px); align-items: center;
}
@media (max-width: 900px) { .mscore-grid { grid-template-columns: 1fr; } }
.mscore-dims { display: grid; gap: 14px; }
.dim {
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-md);
  padding: 22px 24px; box-shadow: var(--shadow-sm); transition: box-shadow .3s, transform .3s;
}
.dim:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.dim__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.dim__name { font-size: 17px; font-weight: 700; }
.dim__num { font-family: var(--font-display); font-size: 24px; font-weight: 800; font-variant-numeric: tabular-nums; letter-spacing: -.03em; }
.dim__track { height: 6px; border-radius: 4px; background: var(--track); overflow: hidden; margin: 13px 0; }
.dim__fill { height: 100%; border-radius: 4px; width: 0; transition: width 1.1s var(--ease); }
.dim__desc { font-size: 14px; color: var(--text-muted); line-height: 1.55; }

.mscore-aside .lockup { height: 30px; width: auto; margin-bottom: 24px; }
.mscore-aside h2 { margin-bottom: 18px; }
.tier-legend { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 28px; }
.tier {
  display: inline-flex; align-items: center; gap: 9px;
  padding: 8px 15px 8px 12px; border-radius: 999px;
  background: var(--surface); border: 1px solid var(--border); font-size: 13.5px; font-weight: 600; box-shadow: var(--shadow-sm);
}
.tier .swatch { width: 11px; height: 11px; border-radius: 3px; }
.tier .rng { color: var(--text-faint); font-weight: 500; font-variant-numeric: tabular-nums; }

/* ============================================================
   HOW IT WORKS — phases
   ============================================================ */
.phases { margin-top: 60px; display: grid; gap: 22px; }
.phase {
  display: grid; grid-template-columns: 60px 1.05fr 1.45fr; gap: clamp(22px, 3vw, 52px); align-items: center;
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-xl);
  padding: clamp(26px, 3vw, 44px); box-shadow: var(--shadow-sm); transition: box-shadow .3s;
}
.phase:hover { box-shadow: var(--shadow-md); }
.phase__num {
  font-family: var(--font-display); font-size: 13px; font-weight: 800; font-variant-numeric: tabular-nums;
  width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center;
  border: 1.5px solid var(--blue-on-surface); color: var(--blue-on-surface);
}
.phase__kicker { font-size: 12px; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; color: var(--label); }
.phase__title { font-size: clamp(22px, 2.4vw, 30px); font-weight: 700; margin: 8px 0 12px; letter-spacing: -.02em; }
.phase__title .pill { font-size: 13px; vertical-align: middle; margin-left: 10px; padding: 4px 11px; border-radius: 999px; background: color-mix(in srgb, var(--blue) 12%, transparent); color: var(--blue-ink); font-weight: 700; letter-spacing: 0; }
.phase__desc { font-size: 15.5px; color: var(--text-muted); line-height: 1.6; }
.phase__body .feature-list { margin-top: 20px; }
.phase__media { position: relative; min-width: 0; width: 100%; max-width: 483px; margin-inline: auto; }
@media (max-width: 820px) { .phase { grid-template-columns: 1fr; gap: 18px; } .phase__num { width: 42px; height: 42px; } }

/* ============================================================
   SPLIT SHOWCASE (Beacon / Pulse)
   ============================================================ */
.split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(36px, 5vw, 78px); align-items: center; }
.split.reverse .split__media { order: 2; }
@media (max-width: 900px) { .split, .split.reverse { grid-template-columns: 1fr; } .split.reverse .split__media { order: 0; } }
.split__copy h2 { margin: 16px 0 18px; }
.feature-list { margin-top: 28px; display: grid; gap: 17px; }
.feature-list li { display: flex; gap: 13px; align-items: flex-start; list-style: none; font-size: 15.5px; color: var(--text-muted); line-height: 1.55; }
.feature-list .ck {
  flex: none; width: 22px; height: 22px; border-radius: 7px; margin-top: 1px;
  background: color-mix(in srgb, var(--blue) 14%, transparent); color: var(--blue-on-surface);
  display: grid; place-items: center;
}
.feature-list b { color: var(--text); font-weight: 600; }
.split__media {
  border-radius: var(--r-lg); overflow: hidden; border: 1px solid var(--border);
  box-shadow: var(--shadow-frame); background: #0d1015; position: relative;
}
.split__media img { width: 100%; display: block; }
.split__media--bare { border: none; background: transparent; box-shadow: none; border-radius: 0; overflow: visible; }

/* device-ish framing for the beacon shot */
.beacon-frame {
  border-radius: var(--r-lg); overflow: hidden; border: 1px solid var(--border);
  box-shadow: var(--shadow-frame); background: #fff; max-width: 380px; margin-inline: auto;
}
.beacon-frame img { width: 100%; display: block; }
.beacon-stack{position:relative;width:100%;max-width:483px;margin-inline:auto;padding-bottom:112%}
.beacon-stack img{position:absolute;display:block}
.beacon-stack img.beacon-stack__front{right:0;top:0;width:62%;height:auto;z-index:1;filter:drop-shadow(0 1px 3px rgba(24,22,18,.06)) drop-shadow(0 26px 46px rgba(24,22,18,.20))}
.beacon-stack img.beacon-stack__back{left:0;top:38%;width:46%;height:auto;z-index:2;opacity:1;filter:drop-shadow(0 3px 10px rgba(16,24,40,.10)) drop-shadow(0 30px 52px rgba(16,24,40,.26))}
@media (max-width:620px){.beacon-stack{max-width:400px}}


.panelduo{position:relative;width:100%;max-width:483px;margin-inline:auto;padding-bottom:123.96%}
.panelduo img.panelduo__main{position:absolute;left:0;top:0;width:53%;height:auto;border-radius:14px;box-shadow:var(--shadow-frame)}
.panelduo__focus{position:absolute;left:1.8%;top:45.5%;width:48.4%;height:4.5%;border:1.5px solid #5aa9f0;border-radius:8px;background:color-mix(in srgb,#5aa9f0 10%,transparent);z-index:3}
.panelduo__link{position:absolute;inset:0;width:100%;height:100%;z-index:2;overflow:visible}
.panelduo__link path{fill:color-mix(in srgb,#5aa9f0 12%,transparent);stroke:#5aa9f0;stroke-width:1.15;vector-effect:non-scaling-stroke;stroke-linejoin:round}
.panelduo img.panelduo__open{position:absolute;right:0;top:36.5%;width:42%;height:auto;border-radius:12px;z-index:4;box-shadow:0 3px 10px rgba(16,24,40,.10),0 40px 80px -24px rgba(16,24,40,.40);border:1px solid rgba(255,255,255,.08)}

/* ============================================================
   PULSE EMAIL (mirrors the real Pulse email)
   ============================================================ */
.pmail { position: relative; max-width: 460px; max-height: 900px; overflow: hidden; background: #fff; border: 1px solid var(--border); border-radius: 8px; box-shadow: var(--shadow-frame); font-family: 'Helvetica Neue', Arial, sans-serif; }
.pmail__hd { display: flex; align-items: center; justify-content: space-between; background: #0b2e5c; padding: 16px 22px; }
.pmail img { width: auto; }
.pmail__logo { height: 14px; }
.pmail__mark { height: 18px; }
.pmail__logo { height: 15px; width: auto; display: block; }
.pmail__mark { height: 20px; width: auto; display: block; }
.pmail__title { padding: 18px 22px 14px; border-bottom: 1px solid #eef2f7; }
.pmail__kicker { font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #5b6675; }
.pmail__h1 { margin-top: 8px; font-size: 21px; font-weight: 800; color: #1a2332; letter-spacing: -.01em; line-height: 1.22; }
.pmail__sec { padding: 16px 22px; border-bottom: 1px solid #eef2f7; }
.pmail__sec--last { border-bottom: none; }
.pmail__lab { display: flex; align-items: center; gap: 8px; font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #004aad; margin-bottom: 11px; }
.pmail__lab--quiet { color: #5b6675; }
.pmail__lab img { height: 16px; width: auto; }
.pmail__prose { font-family: Georgia, serif; font-size: 13.5px; line-height: 1.7; color: #2f3640; margin: 0; }
.pmail__prose--sm { font-size: 13px; color: #4a5568; }
.pmail__ai { display: flex; gap: 11px; align-items: flex-start; background: #f7f9fc; border-left: 3px solid #004aad; border-radius: 5px; padding: 11px 13px; margin-bottom: 7px; font-size: 12.5px; line-height: 1.5; color: #2f3640; }
.pmail__box { flex: none; width: 15px; height: 15px; margin-top: 1px; border: 2px solid #c4d0e0; border-radius: 3px; }
.pmail__score { background: #f7f9fc; padding: 18px 22px; border-bottom: 1px solid #eef2f7; }
.pmail__scorerow { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.pmail__tile { background: #737373; border-radius: 12px; padding: 12px 20px; }
.pmail__tile .tnum { font-size: 36px; font-weight: 800; line-height: 1; color: #FCE100; letter-spacing: -.02em; }
.pmail__goal { text-align: right; }
.pmail__goallab { font-size: 9.5px; text-transform: uppercase; letter-spacing: .1em; color: #5b6675; }
.pmail__goaltxt { margin-top: 3px; font-size: 12.5px; font-weight: 500; color: #2f3640; }
.pmail__rule { height: 1px; background: #e0e8f0; margin: 14px 0; }
.pmail__metric { margin-bottom: 11px; }
.pmail__mhead { display: flex; justify-content: space-between; align-items: baseline; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; color: #2f3640; margin-bottom: 6px; }
.pmail__mhead .tnum { font-size: 12.5px; font-weight: 800; color: #737373; }
.pmail__track { height: 7px; border-radius: 999px; background: #737373; overflow: hidden; }
.pmail__track span { display: block; height: 7px; border-radius: 999px; }
.pmail__note { margin-top: 6px; font-family: Georgia, serif; font-style: italic; font-size: 12px; line-height: 1.55; color: #566072; }
.pmail__ag { display: flex; align-items: center; gap: 10px; padding: 4px 0; font-size: 12.5px; color: #4a5568; }
.pmail__ag .d { flex: none; width: 7px; height: 7px; border-radius: 50%; background: #00AD56; }
.pmail__ag .t { flex: 1; }
.pmail__ag .m { color: #5b6675; font-size: 11.5px; white-space: nowrap; }
.pmailduo{position:relative;width:100%;max-width:483px;margin-inline:auto;padding-bottom:122%}
.pmailduo .pmail{max-width:none;max-height:none;overflow:visible;width:430px;border-radius:14px}
.pmailduo__top{position:absolute;left:0;top:0;transform:scale(.60);transform-origin:top left;z-index:1;box-shadow:var(--shadow-frame)}
.pmailduo__score{position:absolute;right:0;bottom:0;transform:scale(.60);transform-origin:bottom right;z-index:2;border-radius:12px;box-shadow:0 3px 10px rgba(16,24,40,.10),0 40px 80px -24px rgba(16,24,40,.40)}
.pmailduo__score .pmail__score{border-bottom:none;border-radius:12px}
@media (max-width:620px){.pmailduo{padding-bottom:132%}.pmailduo .pmail{transform:scale(.50)}}
.pmail__fade { position: absolute; left: 0; right: 0; bottom: 0; height: 120px; background: linear-gradient(to bottom, rgba(255,255,255,0), #fff 82%); pointer-events: none; }

/* ============================================================
   PULSE EMAIL MOCK
   ============================================================ */
.pulse-mock {
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg);
  box-shadow: var(--shadow-frame); overflow: hidden; max-width: 480px;
}
.pulse-mock__bar { display: flex; align-items: center; gap: 8px; padding: 13px 16px; border-bottom: 1px solid var(--hairline); background: var(--bg-2); }
.pulse-mock__bar .tl { width: 11px; height: 11px; border-radius: 50%; }
.pulse-mock__bar .addr { margin-left: 10px; font-size: 12.5px; color: var(--text-faint); }
.pulse-mock__head { padding: 22px 24px 18px; border-bottom: 1px solid var(--hairline); }
.pulse-mock__from { font-size: 13px; color: var(--text-muted); }
.pulse-mock__from b { color: var(--text); font-weight: 700; }
.pulse-mock__subject { font-size: 18px; font-weight: 700; margin-top: 6px; letter-spacing: -.01em; }
.pulse-mock__body { padding: 22px 24px 26px; }
.pulse-hero { display: flex; align-items: center; gap: 18px; padding: 18px 20px; border-radius: var(--r-md); background: var(--bg-2); border: 1px solid var(--border-soft); }
.pulse-hero__num { font-family: var(--font-display); font-size: 44px; font-weight: 800; letter-spacing: -.05em; font-variant-numeric: tabular-nums; color: var(--green); line-height: 1; }
.pulse-hero__lab { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--text-faint); }
.pulse-hero__sub { font-size: 14px; color: var(--text-muted); margin-top: 2px; }
.pulse-mini { display: flex; gap: 10px; margin-top: 16px; }
.pulse-mini__cell { flex: 1; text-align: center; padding: 13px 8px; border-radius: var(--r-sm); background: var(--bg-2); border: 1px solid var(--border-soft); }
.pulse-mini__n { font-family: var(--font-display); font-size: 19px; font-weight: 800; font-variant-numeric: tabular-nums; letter-spacing: -.03em; }
.pulse-mini__l { font-size: 11px; color: var(--text-faint); margin-top: 3px; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; }
.pulse-section { margin-top: 20px; }
.pulse-section__h { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--label); margin-bottom: 10px; }
.pulse-item { display: flex; gap: 11px; align-items: flex-start; padding: 9px 0; font-size: 14px; border-top: 1px solid var(--hairline); color: var(--text-muted); }
.pulse-item:first-of-type { border-top: none; }
.pulse-item .tick { color: var(--green); flex: none; margin-top: 2px; }
.pulse-item .who { color: var(--blue-on-surface); font-weight: 600; }

/* ============================================================
   STAT CARDS / SCIENCE
   ============================================================ */
.stats { margin-top: 56px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
@media (max-width: 820px) { .stats { grid-template-columns: 1fr 1fr; } }
.stat { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-md); padding: 30px 26px; box-shadow: var(--shadow-sm); }
.stat__n { font-family: var(--font-display); font-size: clamp(30px, 3.4vw, 42px); font-weight: 800; letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.stat__l { font-size: 14px; color: var(--text-muted); margin-top: 8px; line-height: 1.45; }
.science-note { margin-top: 32px; font-size: 14px; color: var(--text-faint); max-width: 660px; }

.pillars { margin-top: 56px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
@media (max-width: 820px) { .pillars { grid-template-columns: 1fr; } }
.pillar { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 32px 30px; box-shadow: var(--shadow-sm); transition: transform .3s, box-shadow .3s; }
.pillar:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.pillar__ic { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; margin-bottom: 22px; background: color-mix(in srgb, var(--blue) 12%, transparent); color: var(--blue-on-surface); }
.pillar h3 { font-size: 20px; font-weight: 700; margin-bottom: 11px; letter-spacing: -.01em; }
.pillar p { font-size: 15px; color: var(--text-muted); line-height: 1.6; }

/* ============================================================
   PRIVACY BAND — light emphasis
   ============================================================ */
.privacy { text-align: center; }
.privacy .big { font-family: var(--font-heading); font-size: clamp(28px, 4vw, 48px); font-weight: 700; letter-spacing: -.028em; line-height: 1.04; max-width: 900px; margin-inline: auto; }
.privacy .big .hl { color: var(--blue-on-surface); }
.privacy__steps { margin-top: 42px; display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.privacy__step {
  display: inline-flex; align-items: center; gap: 10px; padding: 12px 22px; border-radius: 999px;
  background: var(--surface); border: 1px solid var(--border); box-shadow: var(--shadow-sm); font-size: 15px; font-weight: 600;
}
.privacy__step .n { color: var(--blue-on-surface); font-variant-numeric: tabular-nums; }
.privacy .lead { margin: 22px auto 0; max-width: 620px; }

/* ============================================================
   TESTIMONIALS
   ============================================================ */
.quotes { margin-top: 56px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
@media (max-width: 820px) { .quotes { grid-template-columns: 1fr; } }
.quote { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 32px 30px; display: flex; flex-direction: column; gap: 22px; box-shadow: var(--shadow-sm); }
.quote__txt { font-size: 17px; line-height: 1.55; letter-spacing: -.01em; font-weight: 500; color: var(--text); }
.quote__txt .em { color: var(--blue-on-surface); }
.quote__by { display: flex; align-items: center; gap: 13px; margin-top: auto; }
.quote__av { width: 42px; height: 42px; border-radius: 50%; object-fit: cover; border: 1px solid var(--border); }
.quote__name { font-size: 14.5px; font-weight: 700; }
.quote__role { font-size: 13px; color: var(--text-faint); }
.placeholder-tag {
  display: inline-flex; align-items: center; gap: 7px; margin-top: 18px;
  font-size: 12px; font-weight: 600; letter-spacing: .03em; color: var(--text-faint);
  font-family: ui-monospace, 'SF Mono', Menlo, monospace;
}
.placeholder-tag::before { content: ""; width: 6px; height: 6px; border-radius: 50%; border: 1.5px solid currentColor; }

/* ============================================================
   PRICING
   ============================================================ */
.tiers { margin: 52px auto 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; align-items: stretch; max-width: 420px; }
.tier-note { margin: 26px auto 0; text-align: center; font-size: 15px; color: var(--text-muted); }
.tier-note a { color: var(--blue-on-surface); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; text-decoration-thickness: 1px; }
.tier-note a:hover { color: var(--text); }
@media (max-width: 820px) { .tiers { grid-template-columns: 1fr; } }
.tier-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 34px 30px; display: flex; flex-direction: column; box-shadow: var(--shadow-sm); }
.tier-card.featured { border-color: color-mix(in srgb, var(--blue) 40%, var(--border)); box-shadow: var(--shadow-md); position: relative; }
.tier-card.featured::before {
  content: "Most popular"; position: absolute; top: -12px; left: 30px;
  font-size: 11.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
  background: var(--blue); color: #fff; padding: 5px 13px; border-radius: 999px; box-shadow: var(--shadow-sm);
}
.tier-card__name { font-size: 14px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--label); }
.tier-card__price { font-family: var(--font-display); margin: 14px 0 4px; font-size: 27px; font-weight: 800; letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.tier-card__price small { font-size: 14px; font-weight: 500; color: var(--text-faint); letter-spacing: 0; }
.tier-card__rule { height: 1px; background: var(--border); margin-top: 22px; }
.tier-card ul { list-style: none; margin: 24px 0 28px; display: grid; gap: 13px; }
.tier-card li { display: flex; gap: 10px; font-size: 14.5px; color: var(--text-muted); align-items: flex-start; }
.tier-card li .tick { color: var(--green); flex: none; margin-top: 2px; }
.tier-card .btn { width: 100%; margin-top: auto; }

/* ============================================================
   FAQ
   ============================================================ */
.faq { margin-top: 52px; max-width: 820px; margin-inline: auto; }
.faq__item { border-bottom: 1px solid var(--border); }
.faq__q {
  width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 20px;
  padding: 24px 4px; text-align: left; font-size: clamp(17px, 2vw, 20px); font-weight: 600; letter-spacing: -.01em;
}
.faq__q .ic { flex: none; width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; border: 1.5px solid var(--border); color: var(--text-muted); transition: transform .35s var(--ease), border-color .3s, color .3s; }
.faq__item.open .faq__q .ic { transform: rotate(45deg); border-color: var(--blue-on-surface); color: var(--blue-on-surface); }
.faq__a { max-height: 0; overflow: hidden; transition: max-height .4s var(--ease); }
.faq__a > div { padding: 0 4px 26px; font-size: 16px; color: var(--text-muted); line-height: 1.65; max-width: 700px; }
@media (prefers-reduced-motion: reduce) { .faq__a { transition: none; } }

/* ============================================================
   LEGAL / DOC PAGES (Privacy Policy, Terms of Service)
   ============================================================ */
.legal { padding-top: 128px; padding-bottom: 96px; }
.legal .wrap { max-width: 800px; }
.legal__head { padding-bottom: 30px; border-bottom: 1px solid var(--border); margin-bottom: 6px; }
.legal__head h1 { font-size: clamp(34px, 4.2vw, 50px); font-weight: 700; letter-spacing: -.028em; line-height: 1.04; }
.legal__meta { font-size: 13.5px; font-weight: 500; color: var(--text-faint); margin-top: 16px; }
.legal__intro { margin-top: 26px; }
.legal__intro p { font-size: 17px; line-height: 1.6; color: var(--text-muted); margin: 0 0 16px; }
.legal__intro strong { color: var(--text); font-weight: 700; }
.legal__body h2 { font-size: 23px; font-weight: 700; letter-spacing: -.02em; margin: 50px 0 14px; padding-top: 26px; border-top: 1px solid var(--border); }
.legal__body h3 { font-size: 16.5px; font-weight: 700; margin: 26px 0 8px; color: var(--text); }
.legal__body p { font-size: 15.5px; line-height: 1.7; color: var(--text-muted); margin: 0 0 15px; }
.legal__body strong { color: var(--text); font-weight: 700; }
.legal__body ul { margin: 0 0 18px; padding: 0; list-style: none; display: grid; gap: 9px; }
.legal__body li { position: relative; padding-left: 22px; font-size: 15.5px; line-height: 1.6; color: var(--text-muted); }
.legal__body li::before { content: ""; position: absolute; left: 3px; top: 10px; width: 5px; height: 5px; border-radius: 50%; background: var(--blue-on-surface); }
.legal__body ol { margin: 0 0 18px; padding: 0; list-style: none; display: grid; gap: 9px; counter-reset: lgl; }
.legal__body ol li { counter-increment: lgl; }
.legal__body ol li::before { content: counter(lgl) "."; left: 0; top: 0; width: auto; height: auto; border-radius: 0; background: none; color: var(--blue-on-surface); font-weight: 700; font-size: 14.5px; line-height: 1.65; }
.legal__body a { color: var(--blue-ink); font-weight: 600; }
.legal__body a:hover { text-decoration: underline; }
.legal__tablewrap { margin: 4px 0 20px; border: 1px solid var(--border); border-radius: var(--r-md); overflow: hidden; }
.legal__body table { width: 100%; border-collapse: collapse; font-size: 14.5px; }
.legal__body th { text-align: left; font-weight: 700; color: var(--text); padding: 13px 18px; background: var(--bg-2); border-bottom: 1px solid var(--border); }
.legal__body td { padding: 12px 18px; color: var(--text-muted); line-height: 1.5; border-bottom: 1px solid var(--border-soft); vertical-align: top; }
.legal__body tr:last-child td { border-bottom: none; }
.legal__body td:first-child { font-weight: 600; color: var(--text); white-space: nowrap; }

/* ============================================================
   FOOTER
   ============================================================ */
.footer { padding: 72px 0 44px; border-top: 1px solid var(--hairline); background: var(--bg); }
.footer__top { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 32px; }
.footer__brand img { height: 32px; margin-bottom: 18px; }
.footer__brand .logo-white { display: none; }
.footer__brand p { font-size: 14px; color: var(--text-muted); max-width: 280px; line-height: 1.6; }
.footer__col h4 { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--text-faint); margin-bottom: 16px; }
.footer__col a { display: block; font-size: 14.5px; color: var(--text-muted); padding: 5px 0; transition: color .2s; }
.footer__col a:hover { color: var(--text); }
/* Stack rather than halve. Two tracks could never hold three blocks evenly — Legal
   dropped to a second row beside an empty cell, and the lockup's row was stretched to
   the height of the taller Product column. The 32px grid gap becomes the row rhythm;
   the lockup's bottom margin (spacing for a tagline this markup no longer carries) is
   zeroed so all three blocks sit the same distance apart.
   Placed AFTER .footer__brand img above: same specificity, so it has to come later to win. */
@media (max-width: 720px) {
  .footer__top { grid-template-columns: 1fr; }
  .footer__brand img { margin-bottom: 0; }
}
.footer__bottom { margin-top: 52px; padding-top: 24px; border-top: 1px solid var(--hairline); display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; font-size: 13px; color: var(--text-faint); }

/* ============================================================
   EARLY-ACCESS MODAL
   ============================================================ */
.modal-bg {
  position: fixed; inset: 0; z-index: 200; display: grid; place-items: center; padding: 20px;
  background: rgba(28,26,22,.32); backdrop-filter: blur(6px);
  opacity: 0; visibility: hidden; transition: opacity .3s, visibility .3s;
}
.modal-bg.open { opacity: 1; visibility: visible; }
.modal {
  width: 100%; max-width: 440px; background: var(--surface); color: var(--text);
  border: 1px solid var(--border); border-radius: var(--r-lg); padding: 34px 32px 30px;
  box-shadow: var(--shadow-lg); transform: translateY(14px) scale(.98); transition: transform .35s var(--ease); position: relative;
}
.modal-bg.open .modal { transform: none; }
.modal__close { position: absolute; top: 16px; right: 16px; width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; color: var(--text-muted); transition: background .2s, color .2s; }
.modal__close:hover { background: var(--bg-2); color: var(--text); }
.modal__logo { height: 32px; width: auto; margin-bottom: 22px; }
.modal__logo.logo-white { display: none; }
.modal h3 { font-size: 24px; font-weight: 700; letter-spacing: -.02em; }
.modal p { font-size: 14.5px; color: var(--text-muted); margin-top: 8px; }
.modal__form { margin-top: 22px; display: grid; gap: 14px; }
.input { width: 100%; height: 50px; border-radius: var(--r-sm); padding: 0 16px; font-size: 15px; background: var(--surface-soft); border: 1px solid var(--border); color: var(--text); transition: border-color .2s, background .2s; }
.input::placeholder { color: var(--text-faint); }
.input:focus { outline: none; border-color: var(--blue-on-surface); background: var(--surface); }
.modal__form .btn { height: 50px; margin-top: 4px; }
/* Submit failure message. Hidden until the handler has something to say.
   Qualified with .modal on purpose: `.modal p` above is (0,1,1), so a lone .modal__error
   class would lose to it on colour and size and the message would render as body copy.
   The .is-visible rule carries the same qualifier so it still outranks the display:none. */
.modal .modal__error { display: none; margin-top: 14px; text-align: center; font-size: 12.5px; color: var(--red); }
.modal .modal__error.is-visible { display: block; }
.modal__success { display: none; text-align: center; padding: 14px 0; }
.modal.done .modal__form, .modal.done h3, .modal.done > p { display: none; }
.modal.done .modal__success { display: block; }
.modal__success .ok { width: 56px; height: 56px; border-radius: 50%; background: color-mix(in srgb, var(--green) 15%, transparent); color: var(--green); display: grid; place-items: center; margin: 6px auto 18px; }

/* ============================================================
   SCROLL REVEAL
   ============================================================ */
.reveal { opacity: 0; transform: translateY(26px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.in { opacity: 1; transform: none; }
.reveal[data-d="1"] { transition-delay: .08s; }
.reveal[data-d="2"] { transition-delay: .16s; }
.reveal[data-d="3"] { transition-delay: .24s; }
.reveal[data-d="4"] { transition-delay: .32s; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; transition: none; } }

/* MooseScore lockup — light context uses the color lockup */
.ms-lockup--dark { display: none; }
.ms-lockup--light { display: block; }


/* ============================================================
   HERO STAGE — MooseTraxx as its own window: true scale + zoom
   ============================================================ */
.hs-stage{position:relative;container-type:inline-size;width:100%}
.hs-shot{display:block;width:100%}
.hs-call{position:absolute;border-radius:1.5cqw;overflow:hidden;background:#0f1319;border:1px solid rgba(20,24,30,.14);box-shadow:0 24px 50px -26px rgba(20,24,30,.42)}
.hs-tbar{height:4.4cqw;display:flex;align-items:center;justify-content:space-between;padding:0 1.5cqw;background:#191e26;border-bottom:1px solid rgba(255,255,255,.06)}
.hs-tbar__t{display:flex;align-items:center;gap:1.1cqw;font-size:1.5cqw;font-weight:600;color:rgba(255,255,255,.58);letter-spacing:-.01em}
.hs-tbar__t .fav{width:1.8cqw;height:1.8cqw;border-radius:.4cqw;background:#3a424f}
.hs-wbtns{display:flex;align-items:center;gap:1.5cqw;color:rgba(255,255,255,.45)}
.hs-wbtns span{display:block}
.hs-wbtns .m{width:1.4cqw;border-top:.16cqw solid currentColor}
.hs-wbtns .x{width:1.3cqw;height:1.3cqw;position:relative}
.hs-wbtns .x::before,.hs-wbtns .x::after{content:"";position:absolute;left:50%;top:0;width:.16cqw;height:1.3cqw;background:currentColor}
.hs-wbtns .x::before{transform:rotate(45deg)}.hs-wbtns .x::after{transform:rotate(-45deg)}
.hs-wbtns .q{width:1.2cqw;height:1.2cqw;border:.16cqw solid currentColor;border-radius:.2cqw}
.hs-d{aspect-ratio:100/74}
@media (min-width:941px){.hs-d-sec .hero__grid{grid-template-columns:1fr 1.26fr}
.hs-d-sec .works__row{flex-wrap:nowrap;justify-content:flex-start;gap:clamp(16px,1.8vw,26px);max-width:none}
.hs-d-sec .works__item img{max-width:none}
.hs-d-sec{overflow-x:clip}
.hs-d-sec .hero__visual{width:calc(100% + clamp(0px,6.5vw,104px))}}
.hs-d .hs-scr{position:absolute;left:0;top:10.5cqw;width:78.1cqw;aspect-ratio:100/56;z-index:5;container-type:inline-size}
.hs-d .hs-desk{position:absolute;left:0;top:14cqw;width:60cqw;height:40cqw;border-radius:1.4cqw;overflow:hidden;
  background:radial-gradient(120% 110% at 16% -10%,#93a4b8,#75899f 46%,#586d85 100%);
  box-shadow:0 2cqw 4cqw -1.8cqw rgba(20,24,30,.45), 0 0 0 1px rgba(20,24,30,.16)}
.hs-d .hs-desk::after{content:"";position:absolute;inset:0;background:radial-gradient(70% 60% at 78% 30%,rgba(255,255,255,.2),transparent 72%)}
.hs-d .hs-call{left:2.4cqw;top:16.4cqw;width:37.5cqw;border-radius:.9cqw;box-shadow:0 1.2cqw 2.4cqw -1.2cqw rgba(12,16,24,.5)}
.hs-d .hs-call .hs-tbar{height:2.6cqw;padding:0 .9cqw}
.hs-d .hs-tbar__t{font-size:.95cqw;gap:.7cqw}
.hs-d .hs-tbar__t .fav{width:1.1cqw;height:1.1cqw;border-radius:.25cqw}
.hs-d .hs-wbtns{gap:.9cqw}
.hs-d .hs-wbtns .m{width:.9cqw;border-top-width:.1cqw}
.hs-d .hs-wbtns .q{width:.8cqw;height:.8cqw;border-width:.1cqw}
.hs-d .hs-wbtns .x{width:.85cqw;height:.85cqw}
.hs-d .hs-wbtns .x::before,.hs-d .hs-wbtns .x::after{width:.1cqw;height:.85cqw}
/* the panel at TRUE relative size */
.hs-d .hs-sm{position:absolute;left:34.5cqw;top:17.2cqw;width:13.8cqw;z-index:8;border-radius:.7cqw;overflow:hidden;outline:.3cqw solid #5aa9f0;
  box-shadow:0 1.4cqw 2.6cqw -1cqw rgba(12,16,24,.55),0 0 0 1.5cqw color-mix(in srgb,#5aa9f0 24%,transparent)}
.hs-d .hs-sm img{width:100%;display:block}
/* desktop icons */
.hs-d .hs-icons{position:absolute;right:2.2cqw;top:2.8cqw;width:4.4cqw;display:grid;gap:2.3cqw;z-index:3}
.hs-d .hs-icons b{display:flex;flex-direction:column;align-items:center;gap:.5cqw}
.hs-d .hs-icons .ic{position:relative;display:block}
.hs-d .hs-icons .fold{width:3.5cqw;height:2.7cqw;border-radius:.3cqw;background:rgba(255,255,255,.42);box-shadow:inset 0 0 0 .08cqw rgba(255,255,255,.55)}
.hs-d .hs-icons .fold::before{content:"";position:absolute;left:.3cqw;top:-.52cqw;width:1.5cqw;height:.6cqw;border-radius:.22cqw .22cqw 0 0;background:rgba(255,255,255,.42)}
.hs-d .hs-icons .doc{width:2.5cqw;height:3.1cqw;border-radius:.24cqw;background:rgba(255,255,255,.72);box-shadow:0 .2cqw .4cqw -.2cqw rgba(12,16,24,.3)}
.hs-d .hs-icons .doc::before{content:"";position:absolute;right:0;top:0;border-width:0 0 .85cqw .85cqw;border-style:solid;border-color:transparent transparent rgba(255,255,255,.72) transparent;background:rgba(120,140,162,.45);width:.85cqw;height:.85cqw;border-top-right-radius:.24cqw}
.hs-d .hs-icons em{display:block;width:2.7cqw;height:.4cqw;border-radius:.2cqw;background:rgba(255,255,255,.5)}
/* dock */
.hs-d .hs-tray{position:absolute;left:0;right:0;bottom:0;height:3.4cqw;z-index:7;display:flex;align-items:center;justify-content:center;gap:1cqw;background:rgba(226,232,241,.2);backdrop-filter:blur(14px);border-top:1px solid rgba(255,255,255,.16)}
.hs-d .hs-tray i{width:1.7cqw;height:1.7cqw;border-radius:.4cqw;background:rgba(255,255,255,.22);display:block}
.hs-d .hs-tray .app{position:relative;width:1.9cqw;height:1.9cqw}
.hs-d .hs-tray .app img{width:100%;height:100%;display:block;border-radius:.4cqw}
.hs-d .hs-tray .app::after{content:"";position:absolute;left:50%;bottom:-.55cqw;transform:translateX(-50%);width:1cqw;height:.2cqw;border-radius:.2cqw;background:#5aa9f0}
/* the zoom */
.hs-d .hs-lines{position:absolute;inset:0;width:100%;height:100%;z-index:4;overflow:visible}
.hs-d .hs-lines path{fill:color-mix(in srgb,#5aa9f0 12%,transparent);stroke:#5aa9f0;stroke-width:1.15;vector-effect:non-scaling-stroke;stroke-linejoin:round}
.hs-d .hs-big{position:absolute;right:0;top:1cqw;width:47cqw;z-index:9;border-radius:1.4cqw;overflow:hidden;outline:1px solid rgba(20,24,30,.26);outline-offset:-1px;
  box-shadow:0 4cqw 7cqw -2.4cqw rgba(12,16,24,.5),0 1cqw 2.4cqw -1cqw rgba(12,16,24,.3),0 0 0 1px rgba(255,255,255,.08) inset}
.hs-d .hs-big img{width:100%;display:block}
@media (max-width:940px){.hs-stage{margin-top:8px}}
