@import url('https://fonts.googleapis.com/css2?family=Schibsted+Grotesk:wght@700;900&family=Manrope:wght@400;500;600;700;800&family=Geist+Mono:wght@400;500&display=swap');

:root {
  --accent:      #0F2D5C;
  --accent-2:    #071a3e;
  --accent-soft: #e8f0ff;
  --ink:         #303333;
  --ink-dim:     #5C5F65;
  --muted:       #7B7E83;
  --faint:       #B0B2B1;
  --burg:        #C9890A;
  --burg-2:      #A0700A;
  --hairline:    rgba(176,178,177,0.22);
  --r-lg:        12px;
  /* Light overlay colours for glass cards */
  --glass-bg:    rgba(255,255,255,0.055);
  --glass-bd:    rgba(255,255,255,0.10);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

body {
  font-family: 'Manrope', sans-serif;
  background: linear-gradient(145deg, #030d1f 0%, #071d42 35%, #0f2d5c 60%, #061428 100%);
  background-attachment: fixed;
  color: #fff;
  min-height: 100vh;
  position: relative;
  overflow-x: hidden;
}

/* Subtle grid overlay */
body::before {
  content: '';
  position: fixed; inset: 0; pointer-events: none;
  background-image:
    linear-gradient(rgba(255,255,255,0.018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.018) 1px, transparent 1px);
  background-size: 56px 56px;
  mask-image: radial-gradient(ellipse 100% 100% at 50% 0%, black 30%, transparent 85%);
}

/* Glow orb */
body::after {
  content: '';
  position: fixed; top: -20%; left: 50%; transform: translateX(-50%);
  width: 900px; height: 600px; pointer-events: none;
  background: radial-gradient(ellipse at center, rgba(201,137,10,0.07) 0%, transparent 65%);
}

/* ════════════════════════════════════════════════════════════════
   MARKETING PAGE LAYOUT
   ════════════════════════════════════════════════════════════════ */

.mkt-page {
  position: relative; z-index: 1;
  min-height: 100vh;
  display: flex; flex-direction: column;
}

.mkt-container {
  max-width: 1100px; margin: 0 auto;
  padding: 0 clamp(20px, 5vw, 60px);
}

/* ── Navigation ────────────────────────────────────────────── */
.mkt-nav {
  position: sticky; top: 0; z-index: 100;
  display: flex; align-items: center; gap: 0;
  padding: 0 clamp(20px, 5vw, 60px);
  height: 64px;
  background: rgba(3, 13, 31, 0.75);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(255,255,255,0.07);
}

.mkt-nav__logo {
  display: flex; align-items: center;
  text-decoration: none;
}
.mkt-nav__badge {
  position: absolute; left: 50%; transform: translateX(-50%);
}
.mkt-nav__actions { margin-left: auto; }
.mkt-logo-chip {
  display: inline-flex; align-items: stretch;
  border: 2px solid rgba(255,255,255,0.22); border-radius: 12px;
  overflow: hidden;
}
.mkt-logo-mark {
  display: flex; align-items: center; justify-content: center;
  width: 42px;
  background: var(--accent);
  border-right: 1px solid rgba(255,255,255,0.15);
}
.mkt-logo-text {
  font-family: 'Manrope', sans-serif; font-weight: 800; font-size: 17px;
  color: #FBBF24; letter-spacing: .04em;
  padding: 9px 14px; display: flex; align-items: center;
}

.mkt-nav__links {
  display: flex; align-items: center; gap: 4px;
  margin: 0 24px;
}
.mkt-nav__link {
  color: rgba(255,255,255,.6); text-decoration: none;
  font-size: 14px; font-weight: 500;
  padding: 6px 12px; border-radius: 6px;
  transition: color 150ms, background 150ms;
}
.mkt-nav__link:hover { color: #fff; background: rgba(255,255,255,0.06); }

.mkt-nav__actions {
  display: flex; align-items: center; gap: 8px;
}
.mkt-nav__login {
  color: rgba(255,255,255,.85); text-decoration: none;
  font-size: 14px; font-weight: 600;
  padding: 7px 14px; border-radius: 8px;
  border: 2px solid rgba(251,191,36,0.72);
  transition: color 150ms, border-color 150ms;
}
.mkt-nav__login:hover { color: #fff; border-color: rgba(251,191,36,1); }
.mkt-nav__signup {
  background: #fff; color: var(--accent-2);
  text-decoration: none; font-size: 14px; font-weight: 700;
  padding: 8px 16px; border-radius: 8px;
  border: 2px solid rgba(96,165,250,0.55);
  transition: background 150ms, transform 100ms, border-color 150ms;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2);
}
.mkt-nav__signup:hover { background: #f0f4ff; transform: translateY(-1px); border-color: rgba(96,165,250,0.85); }

/* ── Badge strip (below nav) ───────────────────────────────── */
.mkt-badge-strip {
  padding: 14px clamp(20px, 5vw, 60px);
}

/* ── Badge ─────────────────────────────────────────────────── */
.mkt-badge {
  display: inline-flex; align-items: center; gap: 8px;
  background: rgba(201,137,10,0.12); border: 1px solid rgba(201,137,10,0.3);
  color: #e9a933; border-radius: 999px;
  padding: 5px 14px; font-size: 12px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .08em;
  margin-bottom: 24px;
}
.mkt-badge--light {
  background: rgba(255,255,255,0.1); border-color: rgba(255,255,255,0.2);
  color: rgba(255,255,255,0.85);
}
.mkt-nav .mkt-badge { border-radius: 12px; }
.mkt-badge__dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: currentColor;
  animation: badge-pulse 2s ease-in-out infinite;
}
@keyframes badge-pulse {
  0%,100% { opacity: 1; transform: scale(1); }
  50% { opacity: .5; transform: scale(.7); }
}

/* Animated hero badge pill */
.mkt-badge--anim {
  overflow: hidden;
  white-space: nowrap;
  color: rgba(255, 255, 255, 0.9);
  font-size: 13px;
  padding: 8px 18px;
  gap: 10px;
  animation: badge-pill 8s ease-in-out infinite;
  animation-delay: 1s;
}
.mkt-badge--anim .mkt-badge__bad { color: #FBBF24; }
.mkt-badge__icon {
  display: inline-flex; align-items: center; flex-shrink: 0;
  filter: drop-shadow(0 0 6px rgba(201,137,10,0.9)) drop-shadow(0 0 14px rgba(201,137,10,0.5));
  animation: icon-pulse 2.5s ease-in-out infinite;
}
@keyframes icon-pulse {
  0%, 100% { filter: drop-shadow(0 0 6px rgba(201,137,10,0.9)) drop-shadow(0 0 14px rgba(201,137,10,0.5)); }
  50%       { filter: drop-shadow(0 0 10px rgba(251,191,36,1))  drop-shadow(0 0 22px rgba(201,137,10,0.7)); }
}
.mkt-badge__pill-wrap { display: inline-flex; position: relative; }
.mkt-badge__pill-short {
  display: inline-block; white-space: nowrap;
  animation: badge-short 8s ease-in-out infinite;
  animation-delay: 1s;
}
.mkt-badge__pill-long {
  display: inline-block; white-space: nowrap;
  position: absolute; left: 0; top: 50%; transform: translateY(-50%);
  opacity: 0; pointer-events: none;
  animation: badge-long 8s ease-in-out infinite;
  animation-delay: 1s;
}
/* Width keyframes: short≈128px → long≈230px → short */
@keyframes badge-pill {
  0%, 15%   { width: 128px; }
  25%, 63%  { width: 230px; }
  73%, 100% { width: 128px; }
}
@keyframes badge-short {
  0%, 13%   { opacity: 1; }
  21%, 71%  { opacity: 0; }
  79%, 100% { opacity: 1; }
}
@keyframes badge-long {
  0%, 21%   { opacity: 0; }
  29%, 63%  { opacity: 1; }
  71%, 100% { opacity: 0; }
}

/* BAD brand gold highlight (used by JS highlighter) */
.mkt-bad { color: #FBBF24; }

/* ── Hero ──────────────────────────────────────────────────── */
.mkt-hero {
  display: grid;
  grid-template-columns: 0.82fr 1.18fr;
  align-items: center;
  gap: 5px;
  width: 100%;
  max-width: 1600px;
  margin: 0 auto;
  padding: clamp(72px, 9vw, 120px) 5px clamp(72px, 9vw, 112px) clamp(56px, 5.5vw, 88px);
  min-height: calc(100vh - 64px);
  box-sizing: border-box;
}

.mkt-hero__left { padding-left: 65px; }

/* ── Heading & typewriter ──────────────────────────────────── */
.mkt-h1 {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: clamp(20px, 2.4vw, 32px);
  font-weight: 900;
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: #fff;
  margin-bottom: 32px;
}
.mkt-h1 em { font-style: normal; color: #e9a933; }

.mkt-tw-line { white-space: nowrap; display: inline-block; }
.mkt-tw, .mkt-cursor { font-size: clamp(28px, 4.2vw, 54px); line-height: 1.06; }
.mkt-tw { color: #e9a933; }

.mkt-tw__w1, .mkt-tw__w2 {
  display: inline-block;
  overflow: hidden;
  white-space: nowrap;
  max-width: 0;
  vertical-align: bottom;
}
.mkt-tw__w1 { animation: mkt-type-1 14s infinite; }
.mkt-tw__w2 { animation: mkt-type-2 14s infinite 7s; }

@keyframes mkt-type-1 {
  0%    { max-width: 0;    animation-timing-function: steps(10, end); }
  13.3% { max-width: 14ch; }
  35.6% { max-width: 14ch; animation-timing-function: steps(10, end); }
  44.4% { max-width: 0; }
  100%  { max-width: 0; }
}
@keyframes mkt-type-2 {
  0%    { max-width: 0;   animation-timing-function: steps(5, end); }
  6.7%  { max-width: 7ch; }
  28.9% { max-width: 7ch; animation-timing-function: steps(5, end); }
  36.7% { max-width: 0; }
  100%  { max-width: 0; }
}

.mkt-cursor {
  color: #FBBF24;
  font-weight: 200;
  animation: mkt-blink 0.75s step-end infinite;
}
@keyframes mkt-blink {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0; }
}

.mkt-tags { display: block; position: relative; min-height: 4em; margin-top: 16px; }
.mkt-tags__t { display: block; opacity: 0; }
.mkt-tags__t2 { position: absolute; top: 0; left: 0; }
.mkt-tags__t1 { animation: mkt-tag 18s infinite; }
.mkt-tags__t2 { animation: mkt-tag 18s infinite -9s; }

@keyframes mkt-tag {
  0%   { opacity: 0; transform: translateY(6px); }
  8%   { opacity: 1; transform: translateY(0); }
  40%  { opacity: 1; transform: translateY(0); }
  50%  { opacity: 0; transform: translateY(-6px); }
  100% { opacity: 0; transform: translateY(6px); }
}

/* ── Subhead / rotating copy ───────────────────────────────── */
.mkt-hero__sub {
  font-size: clamp(15px, 1.6vw, 18px);
  line-height: 1.65;
  color: rgba(255,255,255,.68);
  margin-bottom: 0;
  max-width: 500px;
}
.mkt-subs {
  position: relative;
  min-height: 6em;
  margin-bottom: 60px;
}
.mkt-subs__t { position: absolute; top: 0; left: 0; opacity: 0; }
.mkt-subs__t1 { animation: mkt-tag 18s infinite; }
.mkt-subs__t2 { animation: mkt-tag 18s infinite -9s; }

/* ── CTA ───────────────────────────────────────────────────── */
.mkt-hero__cta {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
  margin-bottom: 32px;
}

/* ── Buttons ───────────────────────────────────────────────── */
.mkt-btn {
  display: inline-flex;
  align-items: center;
  font-family: 'Manrope', sans-serif;
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
  border-radius: 10px;
  padding: 14px 26px;
  transition: background 180ms, transform 100ms, box-shadow 150ms;
}
.mkt-btn--white {
  background: #fff;
  color: var(--accent-2);
  border: 2px solid rgba(96,165,250,0.55);
  box-shadow: 0 4px 16px rgba(0,0,0,0.25);
}
.mkt-btn--white:hover {
  background: #f0f4ff;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.3);
  border-color: rgba(96,165,250,0.85);
}
.mkt-btn--ghost {
  background: rgba(255,255,255,0.06);
  color: rgba(255,255,255,.85);
  border: 2px solid rgba(251,191,36,0.72);
}
.mkt-btn--ghost:hover {
  background: rgba(255,255,255,0.10);
  color: #fff;
  border-color: rgba(251,191,36,1);
}
.mkt-btn--lg { font-size: 16px; padding: 16px 32px; }

/* ── Trust ─────────────────────────────────────────────────── */
.mkt-hero__trust {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  font-size: 13px;
  color: rgba(255,255,255,.45);
}
.mkt-trust-dot { opacity: 0.3; }

/* ── Demo visual ────────────────────────────────────────────── */
.mkt-demo {
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 24px 64px rgba(0,0,0,0.4), 0 0 0 1px rgba(255,255,255,0.04) inset;
}

.mkt-demo__header {
  display: flex; align-items: center; gap: 10px;
  padding: 12px 16px;
  background: rgba(255,255,255,0.05);
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.mkt-demo__dots { display: flex; gap: 6px; }
.mkt-demo__dots i {
  display: block; width: 10px; height: 10px; border-radius: 50%;
  background: rgba(255,255,255,0.2);
}
.mkt-demo__dots i:first-child { background: rgba(255,99,71,0.5); }
.mkt-demo__dots i:nth-child(2) { background: rgba(255,200,0,0.5); }
.mkt-demo__dots i:last-child { background: rgba(0,200,100,0.5); }
.mkt-demo__title {
  font-size: 12px; font-weight: 600; color: rgba(255,255,255,.5);
}

.mkt-demo__body { padding: 20px 18px; display: flex; flex-direction: column; gap: 14px; }

/* Messages */
.mkt-msg { display: flex; flex-direction: column; gap: 4px; }
.mkt-msg__label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: rgba(255,255,255,.35); }
.mkt-msg--you .mkt-msg__label { text-align: right; }

.mkt-msg__bubble {
  border-radius: 12px; padding: 12px 14px;
  font-size: 13.5px; line-height: 1.55;
}
.mkt-msg--you .mkt-msg__bubble {
  background: rgba(255,255,255,0.10);
  color: rgba(255,255,255,.85);
  border-bottom-right-radius: 4px;
  text-align: right;
}
.mkt-msg--bad .mkt-msg__bubble {
  background: rgba(201,137,10,0.15);
  border: 1px solid rgba(201,137,10,0.25);
  color: rgba(255,255,255,.9);
  border-bottom-left-radius: 4px;
}
.mkt-msg__title {
  font-size: 12px; font-weight: 700; color: rgba(255,255,255,.6);
  margin-bottom: 10px; text-transform: uppercase; letter-spacing: .04em;
}

/* Spend bars */
.mkt-bar-row {
  display: flex; align-items: center; gap: 8px; margin-bottom: 6px;
}
.mkt-bar-label {
  font-size: 12px; color: rgba(255,255,255,.7); min-width: 68px;
}
.mkt-bar {
  flex: 1; height: 6px; background: rgba(255,255,255,0.1); border-radius: 3px; overflow: hidden;
}
.mkt-bar__fill {
  height: 100%; background: #C9890A; border-radius: 3px;
  transition: width 0.6s ease;
}
.mkt-bar-val {
  font-size: 12px; font-weight: 700; color: rgba(255,255,255,.85);
  min-width: 48px; text-align: right; font-family: 'Geist Mono', monospace;
}
.mkt-msg__total {
  margin-top: 12px; padding-top: 10px;
  border-top: 1px solid rgba(255,255,255,0.1);
  font-size: 13px; color: rgba(255,255,255,.8);
}
.mkt-msg__total strong { color: #fff; }
.mkt-msg__delta { font-size: 12px; font-weight: 600; margin-left: 6px; }
.mkt-msg__delta--up { color: #4ade80; }
.mkt-msg__delta--down { color: #f87171; }

.mkt-demo__typing {
  display: flex; gap: 4px; padding: 4px 0;
}
.mkt-demo__typing span {
  display: block; width: 7px; height: 7px; border-radius: 50%;
  background: rgba(255,255,255,0.25);
  animation: typing-dot 1.4s ease-in-out infinite;
}
.mkt-demo__typing span:nth-child(2) { animation-delay: 0.2s; }
.mkt-demo__typing span:nth-child(3) { animation-delay: 0.4s; }
@keyframes typing-dot {
  0%,80%,100% { transform: scale(0.6); opacity: 0.4; }
  40% { transform: scale(1); opacity: 1; }
}

/* ── Section label ──────────────────────────────────────────── */
.mkt-section-label {
  font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .12em;
  color: #e9a933; margin-bottom: 14px;
}

/* ── Pain slider (hero right) ───────────────────────────────── */
.mkt-slider {
  position: relative;
  width: 100%;
  max-width: 569px;
  margin: 0 auto;
}
.mkt-slider__track {
  position: relative;
  height: 480px;
}

/* Base: all cards hidden, pinned to track bottom */
.mkt-slider__card {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 380px;
  background: rgba(6, 16, 40, 0.97);
  border: 1px solid rgba(255,255,255,0.10);
  border-radius: 20px;
  padding: 42px 24px 22px;
  display: flex;
  flex-direction: column;
  transform-origin: center bottom;
  transition: transform 1s cubic-bezier(0.4, 0, 0.2, 1),
              opacity 1s ease,
              border-color 1s ease,
              box-shadow 1s ease;
  opacity: 0;
  pointer-events: none;
}

/* Front card */
.mkt-slider__card[data-pos="0"] {
  transform: translateY(0) scale(1);
  opacity: 1;
  z-index: 5;
  pointer-events: auto;
  border-color: rgba(251,191,36,0.7);
  box-shadow:
    0 8px 40px rgba(0,0,0,0.5),
    0 0 0 1px rgba(251,191,36,0.25),
    0 0 28px rgba(251,191,36,0.3),
    0 0 64px rgba(251,191,36,0.15);
}

/* Back cards — perspective stack */
.mkt-slider__card[data-pos="1"] {
  transform: translateY(-48px) scale(0.94);
  opacity: 0.78;
  z-index: 4;
  pointer-events: none;
}
.mkt-slider__card[data-pos="2"] {
  transform: translateY(-96px) scale(0.88);
  opacity: 0.55;
  z-index: 3;
  pointer-events: none;
}
.mkt-slider__card[data-pos="3"] {
  transform: translateY(-143px) scale(0.82);
  opacity: 0.35;
  z-index: 2;
  pointer-events: none;
}
.mkt-slider__card[data-pos="4"] {
  transform: translateY(-188px) scale(0.76);
  opacity: 0.15;
  z-index: 1;
  pointer-events: none;
}

/* Card header — absolute so badge margin-top:auto still works */
.mkt-slider__pre {
  position: absolute;
  top: 18px;
  right: 20px;
  font-size: 10.5px;
  font-weight: 700;
  color: rgba(255,255,255,0.38);
  letter-spacing: 0.04em;
  text-align: right;
  white-space: nowrap;
}
.mkt-slider__pre .mkt-bad { color: #FBBF24; }

.mkt-slider__label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.35);
  margin-bottom: 8px;
}
.mkt-slider__icon { font-size: 28px; margin-bottom: 8px; line-height: 1; }
.mkt-slider__q {
  font-size: 18px;
  font-weight: 700;
  font-style: italic;
  color: rgba(255,255,255,0.92);
  line-height: 1.35;
  margin-bottom: 20px;
}
.mkt-slider__a {
  font-size: 13px;
  line-height: 1.55;
  color: rgba(255,255,255,0.5);
  margin-bottom: 0;
}
.mkt-slider__badge {
  margin-top: auto;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.28);
  border-radius: 100px;
  padding: 8px 16px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.65);
  text-align: center;
}

/* ── Ticker ─────────────────────────────────────────────────── */
.mkt-ticker {
  background: transparent;
  padding: 12px 0;
  text-align: center;
  overflow: hidden;
}
.mkt-ticker__phrase {
  font-family: 'Manrope', sans-serif;
  /* Sized so the FULL expanded phrase ("GET BOOKS ALWAYS DONE", ≈12.3× font-size
     wide) always fits the viewport with margin — no clipping at any width.
     Capped at 120px so even wide monitors show the whole phrase. The ≤640px
     media query below switches to a "GET BAD"-only treatment for phones. */
  font-size: clamp(44px, 7.5vw, 120px);
  font-weight: 800;
  letter-spacing: -0.02em;
  text-transform: uppercase;
  color: #0a1d3f;
  -webkit-text-stroke: 1.5px rgba(255,255,255,0.3);
  paint-order: stroke fill;
  line-height: 1;
  white-space: nowrap;
}
.mkt-ticker__hi {
  color: #0a1d3f;
  -webkit-text-stroke-color: #FBBF24;
}
.mkt-tc__rest {
  display: inline-block;
  overflow: hidden;
  white-space: nowrap;
  vertical-align: bottom;
  animation: mkt-tc-word 9s infinite;
}
.mkt-tc__sp {
  display: inline-block;
  overflow: hidden;
  white-space: nowrap;
  vertical-align: bottom;
  animation: mkt-tc-sp 9s infinite;
}
@keyframes mkt-tc-word {
  0%   { max-width: 20ch; }
  18%  { max-width: 20ch; animation-timing-function: cubic-bezier(0.4,0,0.2,1); }
  34%  { max-width: 0; }
  58%  { max-width: 0; animation-timing-function: cubic-bezier(0.4,0,0.2,1); }
  74%  { max-width: 20ch; }
  100% { max-width: 20ch; }
}
@keyframes mkt-tc-sp {
  0%   { max-width: 1ch; }
  18%  { max-width: 1ch; animation-timing-function: cubic-bezier(0.4,0,0.2,1); }
  34%  { max-width: 0; }
  58%  { max-width: 0; animation-timing-function: cubic-bezier(0.4,0,0.2,1); }
  74%  { max-width: 1ch; }
  100% { max-width: 1ch; }
}
@media (prefers-reduced-motion: reduce) {
  .mkt-tc__rest { animation: none; max-width: 20ch; }
  .mkt-tc__sp   { animation: none; max-width: 1ch; }
}
/* Phones: the full "GET BOOKS ALWAYS DONE" phrase can't fit a narrow screen at a
   readable size, so freeze the ticker to its short "GET BAD" state and size it to
   fit fully (≈6.5× font-size wide). Bigger and fully readable — never clipped. */
@media (max-width: 640px) {
  .mkt-ticker__phrase { font-size: clamp(34px, 13vw, 64px); }
  .mkt-tc__rest, .mkt-tc__sp { animation: none !important; max-width: 0 !important; }
}

/* ── Pain points ────────────────────────────────────────────── */
.mkt-pain {
  padding: clamp(64px, 8vw, 100px) 0;
  background: rgba(0,0,0,0.18);
  border-top: 1px solid rgba(255,255,255,0.05);
  border-bottom: 1px solid rgba(255,255,255,0.05);
}
.mkt-pain__head {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: clamp(28px, 3.2vw, 42px);
  font-weight: 900; line-height: 1.1; letter-spacing: -.02em;
  color: #fff; margin-bottom: clamp(36px, 5vw, 60px);
}
.mkt-pain__grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
}
.mkt-pain__card {
  background: var(--glass-bg); border: 1px solid var(--glass-bd);
  border-radius: 16px; padding: 28px 24px;
  transition: background 200ms, transform 200ms;
}
.mkt-pain__card:hover { background: rgba(255,255,255,0.08); transform: translateY(-2px); }
.mkt-pain__emoji { font-size: 28px; margin-bottom: 16px; }
.mkt-pain__q {
  font-size: 16px; font-weight: 700; color: rgba(255,255,255,.9);
  margin-bottom: 12px; font-style: italic; line-height: 1.4;
}
.mkt-pain__a {
  font-size: 14px; line-height: 1.65; color: rgba(255,255,255,.55);
}

/* ── Features ───────────────────────────────────────────────── */
.mkt-feats {
  padding: clamp(64px, 8vw, 100px) 0;
}
.mkt-feats__head {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: clamp(24px, 3vw, 38px);
  font-weight: 900; letter-spacing: -.02em;
  color: #fff; margin-bottom: clamp(36px, 5vw, 60px);
  max-width: 600px;
}
.mkt-feats__grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px;
}
.mkt-feat {
  background: var(--glass-bg); border: 1px solid var(--glass-bd);
  border-radius: 14px; padding: 24px 20px;
}
.mkt-feat__icon {
  font-size: 28px; margin-bottom: 16px;
  display: block; line-height: 1;
}
.mkt-feat__title {
  font-size: 15px; font-weight: 700; color: #fff;
  margin-bottom: 10px; line-height: 1.3;
}
.mkt-feat__desc {
  font-size: 13.5px; line-height: 1.65; color: rgba(255,255,255,.5);
}

/* ── Nav active link ────────────────────────────────────────── */
.mkt-nav__link.is-active { color: #FBBF24; }
.mkt-nav__link.is-active:hover { color: #fcd34d; background: transparent; }

/* ════════════════════════════════════════════════════════════════
   PRICING PAGE
   ════════════════════════════════════════════════════════════════ */

.mkt-pricing-head {
  text-align: center;
  padding: clamp(56px, 7vw, 96px) 0 clamp(28px, 4vw, 44px);
}
.mkt-pricing-head__title {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: clamp(30px, 4.2vw, 52px);
  font-weight: 900; letter-spacing: -.02em; line-height: 1.08;
  color: #fff;
  max-width: 16ch; margin: 0 auto 18px;
}
.mkt-pricing-head__sub {
  font-size: clamp(15px, 1.6vw, 18px); line-height: 1.6;
  color: rgba(255,255,255,.6);
  max-width: 60ch; margin: 0 auto;
}

/* Plans */
.mkt-plans { padding: 0 0 clamp(40px, 6vw, 72px); }
.mkt-plans__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  align-items: start;
  max-width: 1180px;
}
.mkt-plan {
  position: relative;
  display: flex; flex-direction: column;
  background: var(--glass-bg);
  border: 1px solid var(--glass-bd);
  border-radius: 18px;
  padding: 30px 26px;
  transition: transform 200ms cubic-bezier(0.22,1,0.36,1), background 200ms, border-color 200ms;
}
.mkt-plan:hover { background: rgba(255,255,255,0.08); transform: translateY(-3px); }

/* Featured (Pro) — full ring + glow, not a side stripe; lifted above peers.
   Lift uses negative margin (a static layout offset), not transform: the base
   card transitions `transform`, which would animate/cancel a static translate. */
.mkt-plan--featured {
  background: rgba(8, 20, 48, 0.9);
  border-color: rgba(251,191,36,0.7);
  box-shadow:
    0 0 0 1px rgba(251,191,36,0.25),
    0 18px 48px rgba(0,0,0,0.45),
    0 0 36px rgba(251,191,36,0.16);
  margin-top: -12px;
}
.mkt-plan--featured:hover { background: rgba(10, 24, 56, 0.94); }
.mkt-plan__flag {
  position: absolute; top: 0; left: 50%; transform: translate(-50%, -50%);
  background: #FBBF24; color: #1a1205;
  font-size: 10.5px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase;
  padding: 5px 14px; border-radius: 100px;
  box-shadow: 0 4px 14px rgba(201,137,10,0.4);
}
.mkt-plan__name {
  font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  color: #e9a933; margin-bottom: 14px;
}
.mkt-plan__price { display: flex; align-items: baseline; gap: 8px; margin-bottom: 14px; }
.mkt-plan__amount {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: clamp(34px, 9vw, 46px); font-weight: 900; letter-spacing: -.03em; color: #fff; line-height: 1;
}
.mkt-plan__cycle { font-size: 14px; color: rgba(255,255,255,.5); font-weight: 500; }
.mkt-plan__pitch {
  font-size: 14px; line-height: 1.5; color: rgba(255,255,255,.58);
  margin-bottom: 22px; min-height: 42px;
}
.mkt-plan__cta { width: 100%; justify-content: center; margin-bottom: 24px; }
.mkt-plan__feats { list-style: none; display: flex; flex-direction: column; gap: 11px; }
.mkt-plan__feats li {
  position: relative; padding-left: 28px;
  font-size: 14px; line-height: 1.4; color: rgba(255,255,255,.82);
}
.mkt-plan__feats li strong { color: #fff; font-weight: 700; }
.mkt-plan__feats li::before {
  position: absolute; left: 0; top: -1px;
  font-size: 14px; font-weight: 700;
}
.mkt-plan__feats li.yes::before { content: '✓'; color: #4ade80; }
.mkt-plan__feats li.no { color: rgba(255,255,255,.38); }
.mkt-plan__feats li.no::before { content: '✕'; color: rgba(255,255,255,.3); }
.mkt-plan__addons {
  margin-top: 22px; padding-top: 18px;
  border-top: 1px solid rgba(255,255,255,0.1);
  font-size: 12px; line-height: 1.55; color: rgba(255,255,255,.45);
}
.mkt-plans__note {
  text-align: center; font-size: 13px; color: rgba(255,255,255,.42);
  max-width: 64ch; margin: 32px auto 0;
  padding: 0 clamp(20px, 5vw, 60px);
}

/* Enterprise band */
.mkt-enterprise {
  padding: clamp(40px, 5vw, 64px) 0;
  border-top: 1px solid rgba(255,255,255,0.05);
}
.mkt-enterprise__inner {
  display: flex; align-items: center; justify-content: space-between; gap: 28px;
  flex-wrap: wrap;
  background: var(--glass-bg);
  border: 1px solid var(--glass-bd);
  border-radius: 16px;
  padding: 28px 32px;
}
.mkt-enterprise__title {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: clamp(20px, 2.4vw, 28px); font-weight: 900; letter-spacing: -.02em;
  color: #fff; margin-bottom: 6px;
}
.mkt-enterprise__sub { font-size: 14.5px; line-height: 1.55; color: rgba(255,255,255,.55); max-width: 60ch; }
.mkt-enterprise__inner .mkt-btn { flex-shrink: 0; }

/* FAQ */
.mkt-faq {
  padding: clamp(56px, 7vw, 92px) 0;
  background: rgba(0,0,0,0.18);
  border-top: 1px solid rgba(255,255,255,0.05);
  scroll-margin-top: 80px;
}
.mkt-faq__head {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: clamp(24px, 3vw, 38px); font-weight: 900; letter-spacing: -.02em;
  color: #fff; margin-bottom: clamp(28px, 4vw, 44px);
}
.mkt-faq__list { max-width: 760px; }
.mkt-faq__item { border-bottom: 1px solid rgba(255,255,255,0.1); }
.mkt-faq__item summary {
  list-style: none; cursor: pointer;
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 20px 0;
  font-size: 16px; font-weight: 600; color: rgba(255,255,255,.9);
  transition: color 150ms;
}
.mkt-faq__item summary::-webkit-details-marker { display: none; }
.mkt-faq__item summary:hover { color: #fff; }
.mkt-faq__item summary::after {
  content: '+'; flex-shrink: 0;
  font-size: 22px; font-weight: 400; line-height: 1; color: #e9a933;
  transition: transform 200ms ease;
}
.mkt-faq__item[open] summary::after { content: '−'; }
.mkt-faq__item p {
  font-size: 14.5px; line-height: 1.7; color: rgba(255,255,255,.58);
  padding: 0 0 22px; max-width: 68ch;
}

@media (max-width: 1060px) {
  .mkt-plans__grid { grid-template-columns: repeat(2, 1fr); max-width: 680px; margin-inline: auto; }
  .mkt-plan--featured { margin-top: 0; }
}
@media (max-width: 900px) {
  .mkt-enterprise__inner { flex-direction: column; align-items: flex-start; text-align: left; }
}
@media (max-width: 620px) {
  .mkt-plans__grid { grid-template-columns: 1fr; max-width: 460px; padding-top: 16px; }
  .mkt-plan--featured { order: -1; }
}

/* ── Final CTA ──────────────────────────────────────────────── */
.mkt-final {
  padding: clamp(64px, 8vw, 100px) 0;
  text-align: center;
  background: rgba(0,0,0,0.2);
  border-top: 1px solid rgba(255,255,255,0.05);
}
.mkt-final__inner { display: flex; flex-direction: column; align-items: center; gap: 0; }
.mkt-final__head {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: clamp(32px, 4vw, 52px);
  font-weight: 900; letter-spacing: -.02em;
  color: #fff; margin: 16px 0 14px;
}
.mkt-final__sub {
  font-size: 16px; color: rgba(255,255,255,.55); margin-bottom: 32px;
}
.mkt-final__login {
  margin-top: 20px; font-size: 14px; color: rgba(255,255,255,.4);
}
.mkt-final__login a { color: #FBBF24; text-decoration: none; border-bottom: 1px solid rgba(251,191,36,.35); }
.mkt-final__login a:hover { color: #fcd34d; }

/* ── Social footer ───────────────────────────────────────────── */
.mkt-social {
  display: flex;
  justify-content: center;
  gap: 8px;
  padding: 24px 0 32px;
  border-top: 1px solid rgba(255,255,255,0.06);
}
.mkt-social__link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 10px;
  background: rgba(255,255,255,0.07);
  color: rgba(255,255,255,0.5);
  transition: background .15s, color .15s;
  text-decoration: none;
}
.mkt-social__link:hover {
  background: rgba(255,255,255,0.14);
  color: #fff;
}

/* ── Footer ─────────────────────────────────────────────────── */
.esign-footer {
  padding: 28px clamp(20px,5vw,60px);
  display: flex; justify-content: space-between; align-items: flex-start;
  font-size: 13px; color: rgba(255,255,255,.6);
  border-top: 1px solid rgba(255,255,255,.06);
}
.esign-footer__copy { display: block; }
.footer-hi { color: #FBBF24; }
.esign-footer__legal {
  display: flex; flex-direction: column; align-items: flex-end; gap: 5px;
}
.esign-footer__legal-head {
  font-size: 11px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .06em; color: rgba(255,255,255,.2); margin-bottom: 2px;
}
.esign-footer__legal a {
  color: rgba(255,255,255,.5);
  text-decoration: none;
  transition: color 150ms;
}
.esign-footer__legal a:hover { color: #fff; }

/* ════════════════════════════════════════════════════════════════
   RESPONSIVE
   ════════════════════════════════════════════════════════════════ */

@media (max-width: 900px) {
  .mkt-hero { grid-template-columns: 1fr; min-height: auto; padding-bottom: 48px; }
  .mkt-hero__right { order: -1; }
  .mkt-hero__left { text-align: left; }
  .mkt-demo { max-width: 480px; margin: 0 auto; }
  .mkt-pain__grid { grid-template-columns: repeat(2, 1fr); }
  .mkt-feats__grid { grid-template-columns: repeat(2, 1fr); }
  .mkt-nav__links { display: none; }
  .mkt-subs { margin-bottom: 40px; }
}
@media (max-width: 640px) {
  .mkt-pain__grid { grid-template-columns: 1fr; }
  .mkt-feats__grid { grid-template-columns: 1fr; }
  .mkt-nav__login { display: none; }
  .mkt-h1 { margin-bottom: 20px; }
  .mkt-subs { margin-bottom: 28px; }
  .mkt-tags { min-height: 5em; }
}

/* ── Phones: dedicated mobile layout ───────────────────────────
   No phone breakpoint existed below 500px, so 390px devices inherited the
   640/900px desktop-ish rules. This block houses the mobile decisions:
   drop the logo + animated nav pill, stack the hero (headline → text → CTA →
   card) and centre it, collapse the peek-stack to one rotating card, and hide
   the duplicate static pain grid. */
@media (max-width: 480px) {
  /* Header — drop the logo (except the bare coming-soon nav) and the animated
     "Get BAD" pill; keep all three actions visible and 44px-tappable. */
  .mkt-nav:not(.mkt-nav--bare) .mkt-nav__logo { display: none; }
  .mkt-nav__badge { display: none; }
  .mkt-nav__actions { margin-left: auto; gap: 8px; }
  .mkt-nav__login { display: inline-flex; }
  .mkt-nav__link, .mkt-nav__login, .mkt-nav__signup {
    min-height: 44px; display: inline-flex; align-items: center;
  }

  /* Hero — single column; source order (headline → paragraphs → CTA → card)
     flows naturally once the desktop card-hoist is dropped. Centre everything. */
  .mkt-hero {
    grid-template-columns: 1fr;
    gap: 24px;
    padding: clamp(24px, 7vw, 40px) clamp(20px, 5vw, 24px) 40px;
    text-align: center;
    min-height: auto;
  }
  .mkt-hero__left { padding-left: 0; text-align: center; }
  .mkt-hero__right { order: 0; }            /* override the 900px order:-1 — card drops below */
  .mkt-hero__sub { max-width: 100%; }
  .mkt-subs { min-height: 8em; margin-bottom: 24px; }
  .mkt-subs__t { left: 0; right: 0; }
  .mkt-tags__t2 { left: 0; right: 0; }
  .mkt-hero__cta {
    flex-direction: column; align-items: stretch; justify-content: center;
    gap: 12px; margin-bottom: 8px;
  }
  .mkt-hero__cta .mkt-btn { width: 100%; justify-content: center; }
  .mkt-hero__trust { justify-content: center; }

  /* Pain card — one centred card; grid-stack all five in a single cell so the
     track sizes to the tallest (no clipping) and crossfades between them. */
  .mkt-slider { max-width: 100%; }
  .mkt-slider__track { display: grid; height: auto; }
  .mkt-slider__card {
    grid-area: 1 / 1;
    position: relative; bottom: auto; height: auto;
    transform: none !important;
    transition: opacity .5s ease;
  }
  .mkt-slider__card[data-pos="1"],
  .mkt-slider__card[data-pos="2"],
  .mkt-slider__card[data-pos="3"],
  .mkt-slider__card[data-pos="4"] { opacity: 0; }
  .mkt-slider__card[data-pos="0"] { opacity: 1; }

  /* The five pain points already cycle in the hero card — drop the duplicate
     static grid below. */
  .mkt-pain { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; }
}

/* ════════════════════════════════════════════════════════════════
   OLD CENTERED-CARD LAYOUT (kept for any non-landing pages)
   ════════════════════════════════════════════════════════════════ */

.card {
  position: relative; z-index: 1;
  background: #fff; border: 3px solid var(--burg); border-radius: 24px;
  padding: clamp(28px,4vw,44px) clamp(28px,4vw,48px);
  width: 100%; max-width: 580px; text-align: center;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.9),
    0 4px 6px rgba(2,44,34,0.08), 0 16px 40px rgba(2,44,34,0.14),
    0 60px 100px rgba(2,44,34,0.16), 0 0 100px rgba(201,137,10,0.14);
}
.card--wide { max-width: 940px; }
.card__cols {
  display: grid; grid-template-columns: 1.05fr 1fr;
  gap: clamp(20px,3vw,36px); align-items: center; text-align: left;
}
.card__cta { border-left: 1px solid var(--hairline); padding-left: clamp(20px,3vw,36px); }
.brand-chip {
  display: inline-flex; align-items: stretch; padding: 0;
  border: 2.5px solid var(--accent); border-radius: 14px; overflow: hidden;
  text-decoration: none; margin-bottom: 18px;
}
.chip-mark {
  background: var(--accent); width: 48px; display: grid; place-items: center;
  border-radius: 11.5px 0 0 11.5px;
}
.chip-mark svg { display: block; width: 82%; height: 82%; }
.chip-label {
  color: var(--accent); font-family: 'Manrope',sans-serif; font-weight: 800;
  font-size: 22px; letter-spacing: .01em; padding: 13px 18px 13px 14px;
  display: flex; align-items: center;
}
.soon-badge {
  display: inline-flex; align-items: center; gap: 7px;
  background: rgba(201,137,10,0.07); border: 1.5px solid rgba(201,137,10,0.25);
  color: var(--burg); border-radius: 999px; padding: 5px 14px;
  font-size: 12px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .08em; margin-bottom: 14px;
}
.soon-badge::before {
  content: ''; width: 7px; height: 7px; border-radius: 50%;
  background: var(--burg); animation: pulse-dot 2s ease-in-out infinite;
}
@keyframes pulse-dot { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.5;transform:scale(.8)} }
.headline {
  font-family: 'Schibsted Grotesk',serif; font-size: clamp(30px,3.6vw,44px);
  font-weight: 900; line-height: 1.05; color: var(--ink); margin-bottom: 12px;
  letter-spacing: -.02em;
}
.headline em { font-style: normal; color: var(--accent); }
.sub { font-size: clamp(15px,1.4vw,17px); line-height: 1.6; color: var(--ink-dim); margin-bottom: 0; }
.features { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 8px; margin-bottom: 16px; }
.feat-pill {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--accent-soft); color: var(--accent-2);
  border-radius: 999px; padding: 5px 13px; font-size: 12.5px; font-weight: 600;
}
.cta-row { display: flex; align-items: center; justify-content: flex-start; gap: 12px; margin-bottom: 16px; flex-wrap: wrap; }
.btn-primary-lg {
  display: inline-flex; align-items: center; background: var(--accent); color: white;
  padding: 14px 28px; border-radius: 999px; font-family: 'Manrope',sans-serif;
  font-size: 15px; font-weight: 700; text-decoration: none; letter-spacing: -.01em;
  transition: background 180ms, transform 100ms;
}
.btn-primary-lg:hover { background: var(--accent-2); transform: translateY(-1px); }
.btn-ghost-lg {
  display: inline-flex; align-items: center; color: var(--accent);
  border: 1.5px solid rgba(15,45,92,0.3); padding: 13px 24px; border-radius: 999px;
  font-family: 'Manrope',sans-serif; font-size: 15px; font-weight: 600;
  text-decoration: none; background: rgba(15,45,92,0.04);
}
.divider {
  display: flex; align-items: center; gap: 12px; margin: 0 0 14px;
  color: var(--faint); font-size: 12px;
}
.divider::before, .divider::after { content: ''; flex: 1; height: 1px; background: var(--hairline); }
.email-form { display: flex; gap: 8px; margin-bottom: 14px; }
.email-field { flex: 1; }
.email-field input {
  width: 100%; padding: 14px 16px; border: 1.5px solid #e2e6ea; border-radius: var(--r-lg);
  font-size: 14px; font-family: 'Manrope',sans-serif; color: var(--ink); background: #F8FAFC;
  outline: none;
}
.email-field input:focus { background: #fff; border-color: var(--accent); }
.btn-notify {
  padding: 14px 22px; background: var(--accent); color: white; border: none;
  border-radius: var(--r-lg); font-size: 14px; font-weight: 600;
  font-family: 'Manrope',sans-serif; cursor: pointer;
}
.form-note { font-size: 12px; color: var(--muted); }
.success-msg {
  display: none; align-items: center; gap: 10px; justify-content: center;
  background: var(--accent-soft); border: 1.5px solid rgba(15,45,92,0.3);
  border-radius: var(--r-lg); padding: 14px 20px; margin-bottom: 28px;
  font-size: 14px; font-weight: 600; color: var(--accent-2);
}
.success-msg.visible { display: flex; }
.login-link { position: relative; z-index: 1; margin-top: 24px; font-size: 13px; color: rgba(255,255,255,.5); }
.login-link a { color: rgba(255,255,255,.82); font-weight: 600; text-decoration: none; }
.corner-note { position: fixed; bottom: 22px; left: 28px; z-index: 10; font-size: 11px; color: rgba(255,255,255,.25); font-family: 'Geist Mono',monospace; }
@media (max-width: 760px) {
  .card--wide { max-width: 560px; }
  .card__cols { grid-template-columns: 1fr; gap: 0; text-align: center; }
  .card__cta { border-left: none; padding-left: 0; margin-top: 22px; }
  .features, .cta-row { justify-content: center; }
}
@media (max-width: 500px) { .email-form { flex-direction: column; } .btn-notify { width: 100%; } }

/* ── Legal pages (privacy, terms) ────────────────────────── */
.legal-page {
  background: #fff;
  min-height: calc(100dvh - 64px);
}
.legal-page__inner {
  max-width: 780px;
  margin: 0 auto;
  padding: 56px 32px 80px;
}
.legal-page__title {
  font-size: 36px;
  font-weight: 800;
  color: #0f2d5c;
  margin: 0 0 8px;
}
.legal-page__meta {
  color: #94a3b8;
  font-size: 13px;
  margin: 0 0 48px;
  border-bottom: 1px solid #f1f5f9;
  padding-bottom: 24px;
}
.legal-page__inner h2 {
  font-size: 18px;
  font-weight: 700;
  color: #0f2d5c;
  margin: 40px 0 10px;
}
.legal-page__inner h3 {
  font-size: 15px;
  font-weight: 600;
  color: #334155;
  margin: 24px 0 8px;
}
.legal-page__inner p {
  color: #475569;
  font-size: 15px;
  line-height: 1.75;
  margin: 0 0 14px;
}
.legal-page__inner ul {
  margin: 0 0 16px;
  padding-left: 22px;
}
.legal-page__inner ul li {
  color: #475569;
  font-size: 15px;
  line-height: 1.75;
  margin-bottom: 6px;
}
.legal-page__inner a {
  color: #0f2d5c;
  text-decoration: underline;
  text-underline-offset: 2px;
  overflow-wrap: anywhere;
}
.legal-page__inner address {
  font-style: normal;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 18px 22px;
  color: #475569;
  font-size: 15px;
  line-height: 1.75;
}
@media (max-width: 600px) {
  .legal-page__inner { padding: 32px 20px 60px; }
  .legal-page__title { font-size: 26px; }
}
