/* ==========================================================================
   Pountain site pages (site builder): the landing page (/) and the site pages
   (/help, /contact, /careers, /privacy, /terms, /brand).
   Load order: tokens.css, base.css, shell.css, site.css.
   Geometry is measured on the reference site's /about, /help, /contact, /careers,
   /privacy, /terms and /brand pages (CDP getComputedStyle + the page bundle).

   No-JS and reduced motion: every hidden or dimmed start state is scoped under
   html.js (set by a one-line inline script in <head>). Without JS, or with
   prefers-reduced-motion, everything is visible and static.

   CLASS INDEX
     Site pages
       .doc              help / contact / privacy / terms column (extends .page-narrow)
         .doc-title .doc-sub .doc-h2 .doc-p .doc-list .doc-strong .doc-link
       .careers          careers page (.careers-head .careers-list .role .role-num .role-body .role-status)
       .brand            brand page (.brand-hero .brand-sec .brand-grid .asset .asset-view .asset-bar .asset-fmt
                         .swatch .type-specimen)
     Landing (prefix lp-)
       .lp-wrap          1040 max, 32px sides (24 below 820)
       .lp-hero          hero with idea washes, headline, CTA and the tile shelf
       .lp-thesis        "The end state..." with the ticker chips resolving into a narrative chip
       .lp-how           "How it works." steps + sticky phone (framed screens below 820)
       .lp-market        asset marquee
       .lp-own           $POUNTAIN card
       .lp-live          three columns + closing CTA
       [data-reveal]     fade-up on scroll (landing.js adds .is-in)
   ========================================================================== */

/* ============================================================ site pages */

/* ---- document column (help, contact, privacy, terms) ---- */
.doc {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
}
.doc-title {
  font: 600 34px/40px var(--font);
  letter-spacing: -0.6px;
  color: var(--ink);
  overflow-wrap: break-word;
}
.doc-sub {
  font: 400 13px/18px var(--font);
  color: var(--muted);
}
.doc-h2 {
  margin-top: 16px;
  padding-inline: 2px;
  font: 600 20px/26px var(--font);
  letter-spacing: -0.3px;
  color: var(--ink);
}
.doc-p {
  font: 400 15px/22px var(--font);
  color: var(--ink-2);
  overflow-wrap: break-word;
}
.doc-p.is-muted { color: var(--muted); }
.doc-strong { font-weight: 400; color: var(--ink); }
.doc-link {
  color: var(--ink);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color var(--dur-1), color var(--dur-1);
}
@media (hover: hover) {
  .doc-link:hover { border-bottom-color: currentColor; }
}
.doc-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.doc-list > li {
  position: relative;
  padding-left: 24px;
  font: 400 15px/22px var(--font);
  color: var(--ink-2);
  overflow-wrap: break-word;
}
/* the reference marks list items with a dash glyph; we draw a short rule instead of a dash character */
.doc-list > li::before {
  content: "";
  position: absolute;
  left: 4px;
  top: 11px;
  width: 8px;
  height: 1px;
  background: var(--muted);
}
.doc-date { font-variant-numeric: tabular-nums; }

/* label + link lines ("X: @TryPountain"): the link is its own flex item, 40px tall on phones */
.doc-row { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 5px; }
@media (max-width: 639.98px) {
  .doc-row { align-items: center; }
  .doc-row .doc-link { display: inline-flex; align-items: center; min-height: 40px; border-bottom: 0; }
}

/* ---- careers ---- */
.careers {
  width: 100%;
  max-width: calc(1100px);
  margin-inline: auto;
  padding: 20px var(--gutter-x) 0;
}
@media (min-width: 600px) {
  .careers { padding-top: 28px; }
}
.careers-in {
  width: 100%;
  max-width: 720px;
  margin-inline: auto;
  padding-bottom: 56px;
}
.careers-head { display: flex; flex-direction: column; gap: 14px; }
.careers-title {
  padding-inline: 2px;
  font: 600 34px/42px var(--font);
  letter-spacing: -1px;
  color: var(--ink);
}
.careers-sub {
  font: 400 15px/23px var(--font);
  color: var(--ink-2);
}
.careers-list {
  margin-top: 30px;
  border-top: 1px solid var(--border);
}
.role {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 28px 0;
  border-bottom: 1px solid var(--border);
}
.role-num {
  font: 600 13px/20px var(--mono);
  color: var(--muted);
}
.role-body { display: flex; flex-direction: column; gap: 10px; min-width: 0; flex: 1; }
.role-title {
  padding-inline: 2px;
  font: 600 26px/32px var(--font);
  letter-spacing: -0.5px;
  color: var(--ink);
}
.role-text {
  font: 400 15px/23px var(--font);
  color: var(--ink-2);
}
.role-cta { align-self: flex-start; margin-top: 6px; }
.role-status {
  display: flex;
  align-items: center;
  gap: 6px;
  font: 400 12px/16px var(--font);
  color: var(--ink-2);
}
.role-status .live-dot { --dot: 6px; }
@media (min-width: 600px) {
  .careers-title { font-size: 42px; line-height: 50px; }
  .careers-sub { font-size: 16px; line-height: 25px; }
  .careers-list { margin-top: 44px; }
  .role { flex-direction: row; gap: 16px; }
  .role-num { min-width: 56px; padding-top: 8px; }
  .role-title { font-size: 32px; line-height: 38px; letter-spacing: -0.6px; }
  .role-text { font-size: 16px; line-height: 25px; }
  .role-status { align-self: flex-start; padding-top: 8px; flex-shrink: 0; }
}

/* light pill button used by careers and brand (44 tall, radius 10 / 14) */
.pill-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 44px;
  padding: 0 28px;
  border-radius: 10px;
  border: 1px solid var(--light-btn);
  background: var(--light-btn);
  color: var(--light-btn-ink);
  font: 400 15px/19px var(--font);
  white-space: nowrap;
  text-decoration: none;
  transition: background-color 150ms var(--ease-expo), border-color 150ms var(--ease-expo);
}
.pill-btn.is-outline { background: transparent; border-color: var(--border); color: var(--ink); }
.pill-btn.is-round { border-radius: 14px; padding: 0 16px 0 18px; }
@media (hover: hover) {
  .pill-btn:hover { background: var(--light-btn-hover); border-color: var(--light-btn-hover); }
  .pill-btn.is-outline:hover { background: var(--hover-wash); border-color: var(--outline-hover); }
}

/* live status dot with a pulsing halo (reference StatusDot variant "live") */
.live-dot {
  --dot: 8px;
  position: relative;
  display: inline-block;
  flex: none;
  width: var(--dot);
  height: var(--dot);
  border-radius: 50%;
  background: var(--up);
}
.live-dot::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: var(--up);
  opacity: 0;
  animation: live-halo 2000ms cubic-bezier(0.22, 1, 0.36, 1) infinite;
}
@keyframes live-halo {
  0% { opacity: 0.45; transform: scale(1); }
  100% { opacity: 0; transform: scale(2.4); }
}

/* ---- brand ---- */
.brand {
  width: 100%;
  max-width: 1100px;
  margin-inline: auto;
  padding: 0 var(--gutter-x) 72px;
  display: flex;
  flex-direction: column;
  gap: 64px;
}
@media (min-width: 600px) {
  .brand { gap: 80px; padding-bottom: 96px; }
}
.brand-hero { display: flex; flex-direction: column; gap: 28px; padding-top: 64px; }
.brand-hero-mark { display: block; width: 68px; height: auto; }
.brand-hero-text { display: flex; flex-direction: column; gap: 12px; }
.brand-title {
  max-width: 720px;
  padding-inline: 2px;
  font: 600 34px/40px var(--font);
  letter-spacing: -0.8px;
  color: var(--ink);
}
.brand-lede {
  max-width: 520px;
  font: 400 15px/23px var(--font);
  color: var(--ink-2);
}
.brand-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.brand-meta {
  padding-left: 6px;
  font: 400 12px/16px var(--mono);
  letter-spacing: 0.2px;
  color: var(--muted);
}
.brand-sec { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.brand-sec-head { display: flex; flex-direction: column; gap: 8px; }
.brand-h2 {
  padding-inline: 2px;
  font: 600 24px/30px var(--font);
  letter-spacing: -0.5px;
  color: var(--ink);
}
.brand-sub {
  max-width: 560px;
  font: 400 15px/23px var(--font);
  color: var(--ink-2);
}
.brand-note {
  padding-inline: 2px;
  font: 400 13px/19px var(--font);
  color: var(--muted);
}
@media (min-width: 600px) {
  .brand-title { font-size: 48px; line-height: 56px; letter-spacing: -1.2px; }
  .brand-lede { font-size: 16px; line-height: 25px; }
  .brand-h2 { font-size: 28px; line-height: 34px; }
  .brand-sub { font-size: 16px; line-height: 25px; }
}
.brand-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.brand-grid.is-wide { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 720px) {
  .brand-grid.cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .brand-grid.is-wide { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .brand-grid.cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .brand-grid.cols-4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 960px) {
  .brand-grid.cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.asset {
  display: flex;
  flex-direction: column;
  min-width: 0;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--card);
  transition: border-color 150ms var(--ease-expo);
}
@media (hover: hover) {
  .asset:hover { border-color: #34363D; }
}
.asset-view {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 4 / 3;
  border-radius: 11px 11px 0 0;
  background: var(--page);
  overflow: hidden;
}
.asset-view.is-light { background: #F4F4F5; }
.asset-view.is-card { background: var(--card); }
.asset-view.is-wide { aspect-ratio: 2.6 / 1; }
.asset-view.is-square { aspect-ratio: 1 / 1; }
.asset-view > img.fill,
.asset-view > video.fill {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.asset-mark { width: 42%; max-width: 160px; height: auto; }
.asset-icon {
  width: 116px;
  height: 116px;
  max-width: 44%;
  max-height: 72%;
  border-radius: 26px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  object-fit: cover;
}
.asset-word {
  display: flex;
  align-items: center;
  gap: 5%;
  width: 72%;
  justify-content: center;
}
.asset-word img { width: 26%; height: auto; flex: none; }
.asset-word span {
  font: 600 clamp(18px, 4.4vw, 40px)/1 var(--font);
  letter-spacing: 0.08em;
  color: var(--ink);
  white-space: nowrap;
}
.asset-word.is-ink span { color: #0A0B0D; }
.asset-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 34px;
  padding: 8px 10px 8px 14px;
  border-top: 1px solid var(--border);
}
.asset-name {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font: 400 13px/18px var(--font);
  color: var(--ink);
}
.asset-fmts { display: flex; gap: 10px; flex: none; }
.asset-fmt {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 2px;
  font: 500 12px/16px var(--mono);
  letter-spacing: 0.2px;
  color: var(--muted);
  text-decoration: none;
  transition: color 150ms var(--ease-expo);
}
span.asset-fmt { cursor: default; }
@media (hover: hover) {
  a.asset-fmt:hover { color: var(--ink); }
}
@media (max-width: 639.98px) {
  .asset-bar { min-height: 48px; padding-block: 4px; }
  a.asset-fmt { min-height: 40px; min-width: 40px; padding: 12px 6px; }
  .asset-fmts { gap: 2px; }
}
/* two tiles per row: the name gets its own line and the formats sit under it */
@media (max-width: 719.98px) {
  .brand-grid:not(.is-wide) .asset-bar { flex-wrap: wrap; row-gap: 0; padding-top: 8px; }
  .brand-grid:not(.is-wide) .asset-name { flex-basis: 100%; }
  .brand-grid:not(.is-wide) .asset-fmts { margin-left: -6px; }
}

/* color swatches */
.swatch {
  display: flex;
  flex-direction: column;
  min-width: 0;
  width: 100%;
  padding: 0;
  text-align: left;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--card);
  color: inherit;
  cursor: copy;
  font: inherit;
  transition: border-color 150ms var(--ease-expo);
}
@media (hover: hover) {
  .swatch:hover { border-color: #34363D; }
}
.swatch-chip {
  display: block;
  height: 88px;
  border-radius: 11px 11px 0 0;
  border-bottom: 1px solid var(--border);
}
.swatch-meta { display: flex; flex-direction: column; gap: 2px; padding: 10px 14px 12px; min-width: 0; }
.swatch-name { font: 400 13px/18px var(--font); color: var(--ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.swatch-hex { font: 500 12px/16px var(--mono); letter-spacing: 0.2px; color: var(--muted); }

/* type specimen */
.type-specimen { display: flex; flex-direction: column; gap: 12px; padding: 8px 0; min-width: 0; }
.type-big {
  padding-inline: 2px;
  font: 600 40px/46px var(--font);
  letter-spacing: -1.2px;
  color: var(--ink);
  overflow-wrap: break-word;
}
.type-row { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 16px; padding-inline: 2px; }
.type-price { font: 600 24px/30px var(--font); letter-spacing: -0.5px; color: var(--ink); font-variant-numeric: tabular-nums; }
.type-mono { font: 500 17px/22px var(--mono); letter-spacing: -0.1px; color: var(--ink-2); }
.type-mono.is-up { color: var(--up); }
@media (min-width: 600px) {
  .type-big { font-size: 64px; line-height: 72px; letter-spacing: -2px; }
  .type-price { font-size: 28px; line-height: 34px; }
}

/* ================================================================ landing */
.lp {
  --lp-pad: 24px;
  --hl-fg: #9C9CA4;
  --hl-border: rgba(156, 156, 164, 0.35);
  --hl-fill: rgba(156, 156, 164, 0.14);
  --hl-hover: rgba(156, 156, 164, 0.06);
  --dim-heading: #616166;   /* inactive step heading: 3.3:1 on page (large text) */
  --dim-text: #7A7A80;      /* inactive step body and number: 4.6:1 on page */
  overflow-x: clip;
}
@media (min-width: 820px) {
  .lp { --lp-pad: 32px; }
}
.lp-wrap {
  position: relative;
  width: 100%;
  max-width: 1040px;
  margin-inline: auto;
  padding-inline: var(--lp-pad);
}

/* ---- shared landing type ---- */
.lp-h2 {
  max-width: 760px;
  padding-inline: 2px;
  font: 600 28px/34px var(--font);
  letter-spacing: -0.8px;
  color: var(--ink);
  text-wrap: balance;
}
.lp-lead {
  max-width: 600px;
  margin-top: 12px;
  font: 400 16px/25px var(--font);
  color: var(--ink-2);
}
@media (min-width: 820px) {
  .lp-h2 { font-size: 40px; line-height: 46px; letter-spacing: -1.2px; }
  .lp-lead { margin-top: 16px; font-size: 18px; line-height: 29px; }
}

/* the light CTA button (reference about-btn) */
.lp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 15px 28px;
  border-radius: 8px;
  border: 1px solid var(--light-btn);
  background: var(--light-btn);
  color: var(--light-btn-ink);
  font: 600 14.5px/18px var(--font);
  letter-spacing: 0.1px;
  white-space: nowrap;
  text-decoration: none;
  transition: transform 180ms var(--ease-soft), background-color 180ms, border-color 180ms;
}
.lp-btn-arrow { display: inline-flex; transition: transform 200ms var(--ease-soft); }
@media (hover: hover) {
  .lp-btn:hover { transform: translateY(-1px); background: #C0C0C3; border-color: #C0C0C3; }
  .lp-btn:hover .lp-btn-arrow { transform: translateX(3px); }
}
.lp-btn:active { opacity: 0.85; transform: none; }

/* inline text link with a grow-in underline (reference about-inline-link) */
.lp-inline {
  position: relative;
  display: inline-flex;
  align-self: flex-start;
  max-width: 100%;
  font: 400 15px/20px var(--font);
  letter-spacing: -0.1px;
  color: var(--ink-2);
  text-decoration: none;
}
.lp-inline > span { position: relative; display: block; overflow-wrap: anywhere; }
.lp-inline > span::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -3px;
  height: 1px;
  background: var(--hl-fg);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 220ms var(--ease-out);
}
@media (hover: hover) {
  .lp-inline:hover > span::after { transform: scaleX(1); }
}
.lp-inline:active { opacity: 0.78; }
@media (max-width: 639.98px) {
  .lp-inline { padding-block: 10px; margin-block: -10px; }
  /* the quote block above swaps in from 8px lower: the shelf link's 40px tap area starts only 4px
     above its text, so it stays clear of the rising tickers while the text keeps its place */
  .lp-shelf .lp-inline { padding-top: 4px; padding-bottom: 16px; margin-top: -4px; margin-bottom: -16px; }
}

/* scroll reveal (reference: opacity 0, translateY 14, 720ms, IO rootMargin 0 0 -8% 0) */
.js .lp [data-reveal] {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 720ms var(--ease-soft) var(--rd, 0ms), transform 720ms var(--ease-soft) var(--rd, 0ms);
}
.js .lp [data-reveal].is-in { opacity: 1; transform: none; }
/* failsafe: if landing.js never starts, reveal everything after 2.5 s */
html.js:not(.lp-on) .lp [data-reveal],
html.js:not(.lp-on) .lp-ticks .lp-tick-idea,
html.js:not(.lp-on) .lp-tier { animation: lp-failsafe 1ms linear 2500ms forwards; }
html.js:not(.lp-on) .lp-ticks .lp-tick-arrow { animation: lp-failsafe-arrow 1ms linear 2500ms forwards; }
@keyframes lp-failsafe { to { opacity: 1; transform: none; } }
@keyframes lp-failsafe-arrow { to { opacity: 1; transform: rotate(90deg); } }
@media (min-width: 820px) {
  html.js:not(.lp-on) .lp-ticks .lp-tick-arrow { animation-name: lp-failsafe; }
}

/* ---------------------------------------------------------------- hero */
.lp-hero { position: relative; }
.lp-washes { position: absolute; inset: 0; pointer-events: none; }
.lp-wash {
  position: absolute;
  inset: 0;
  opacity: 0;
  background-image: radial-gradient(ellipse 90% 60% at 50% 70%, var(--wash), transparent 70%);
  transition: opacity 1100ms var(--ease-soft);
}
.lp-wash.is-on { opacity: 1; }
@media (min-width: 820px) {
  .lp-wash { background-image: radial-gradient(ellipse 60% 80% at 74% 46%, var(--wash), transparent 68%); }
}
.lp-hero-in { z-index: 1; padding-top: 44px; padding-bottom: 28px; }
.lp-hero-row { display: flex; flex-direction: column; gap: 40px; }
.lp-hero-copy { min-width: 0; }
.lp-h1 {
  max-width: 520px;
  padding-inline: 2px;
  font: 600 38px/42px var(--font);
  letter-spacing: -1.2px;
  color: var(--ink);
}
.lp-lede {
  max-width: 440px;
  margin-top: 16px;
  font: 400 18px/28px var(--font);
  color: var(--ink-2);
  text-wrap: balance;
}
.lp-cta { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; margin-top: 26px; }
@media (min-width: 480px) {
  .lp-h1 { font-size: 48px; line-height: 52px; letter-spacing: -1.6px; }
}
@media (min-width: 820px) {
  .lp-hero-in { padding-top: 84px; padding-bottom: 48px; }
  .lp-hero-row { flex-direction: row; align-items: center; gap: 64px; }
  .lp-hero-copy { flex: 1; }
  .lp-h1 { font-size: 60px; line-height: 64px; letter-spacing: -2.1px; }
  .lp-lede { margin-top: 20px; font-size: 21px; line-height: 32px; }
  .lp-cta { margin-top: 30px; }
  .lp-shelf { width: 500px; flex: none; }
}
/* 820 to 1099 keeps the reference geometry: a fixed 500px shelf, and the 60px headline wraps in
   whatever is left (192px wide and six lines at 820, measured on the reference /about) */
@media (min-width: 1280px) {
  .lp-shelf { width: 600px; margin-right: -100px; }
}

/* hero rise (reference about-rise 780ms, delays 200 / 380 / 540) */
.lp-rise { animation: lp-rise 780ms var(--ease-soft) 200ms backwards; }
.lp-rise.d2 { animation-delay: 380ms; }
.lp-rise.d3 { animation-delay: 540ms; }
@keyframes lp-rise { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }

/* shelf */
.lp-shelf { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.lp-shelf > .lp-inline { align-self: stretch; } /* the reference link spans the shelf; the underline stays under the words */
.lp-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.lp-tile {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  text-align: left;
  cursor: pointer;
  font: inherit;
  border-radius: 12px;
}
.lp-tile:active { opacity: 0.9; }
.lp-tile-art {
  display: block;
  aspect-ratio: 1 / 1;
  border-radius: 12px;
  border: 2px solid var(--border);
  background: var(--card);
  transition: transform 280ms var(--ease-soft), border-color 200ms var(--ease-soft);
}
.lp-tile[aria-pressed="true"] .lp-tile-art { border-color: var(--hl-fg); }
@media (hover: hover) {
  .lp-tile:hover .lp-tile-art { transform: translateY(-2px); }
}
.lp-tile-clip {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 10px;
  overflow: hidden;
}
.lp-tile-clip > img,
.lp-tile-clip > video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.lp-tile-clip.is-still > img { animation: lp-breathe 7s ease-in-out infinite alternate; transform-origin: 50% 60%; }
@keyframes lp-breathe { from { transform: scale(1); } to { transform: scale(1.045); } }
.lp-tile-name {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  height: 36px;
  overflow: hidden;
  padding-inline: 2px;
  font: 400 13px/18px var(--font);
  letter-spacing: -0.1px;
  color: var(--ink-2);
  overflow-wrap: anywhere;
}
.lp-tile[aria-pressed="true"] .lp-tile-name { font-weight: 600; color: var(--ink); }
@media (min-width: 820px) {
  .lp-tile-name { display: block; height: auto; white-space: nowrap; text-overflow: ellipsis; }
}

.lp-quote {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-top: 12px;
  border-top: 1px solid var(--border);
}
.lp-quote-line { display: flex; align-items: center; gap: 8px; min-width: 0; }
.lp-quote-dot { flex: none; width: 6px; height: 6px; border-radius: 50%; background: var(--dot, var(--hl-fg)); }
.lp-quote-text {
  flex: 1;
  min-width: 0;
  font: italic 400 14px/21px var(--font);
  font-synthesis: style;
  color: var(--ink-2);
}
.lp-quote-ticks { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; padding-left: 14px; }
.lp-qt { display: inline-flex; align-items: center; gap: 6px; }
.lp-qt::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--hl-fg); }
.lp-qt,
.lp-qt-more { font: 400 12px/16px var(--mono); letter-spacing: 0.2px; color: var(--ink-2); }
.lp-qt-more { color: var(--muted); }
.lp-qt-more::before { content: none; }

/* swap-in (reference about-card-item 440ms) */
.lp-swap { animation: lp-swap 440ms var(--ease-soft) backwards; animation-delay: var(--sd, 0ms); }
@keyframes lp-swap { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* ------------------------------------------------------------- thesis */
.lp-thesis { padding-top: 56px; padding-bottom: 56px; }
.lp-thesis-head { display: flex; flex-direction: column; align-items: flex-start; }
.lp-h2-xl {
  max-width: 860px;
  padding-inline: 2px;
  font: 600 32px/38px var(--font);
  letter-spacing: -1.3px;
  color: var(--ink);
  text-wrap: balance;
}
.lp-thesis-sub {
  max-width: 640px;
  margin-top: 16px;
  font: 400 17px/27px var(--font);
  color: var(--ink-2);
}
.lp-ticks-wrap { display: flex; flex-direction: column; align-items: stretch; margin-top: 28px; }
.lp-ticks {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
  padding: 18px 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.lp-ticks-row { display: flex; flex-wrap: wrap; gap: 8px; }
.lp-tick {
  padding: 7px 12px;
  border-radius: 6px;
  border: 1px solid var(--border);
  background: var(--page);
  font: 500 13px/17px var(--mono);
  letter-spacing: 0.3px;
  color: var(--ink-2);
  transition: color 600ms var(--ease-soft), border-color 600ms var(--ease-soft);
  transition-delay: var(--ti, 0ms);
}
.lp-tick-arrow {
  display: inline-flex;
  color: var(--muted);
  transform: rotate(90deg);
  margin-left: 12px;
  transition: opacity 500ms var(--ease-soft) 700ms, transform 500ms var(--ease-soft) 700ms;
}
.lp-tick-idea {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 9px 14px;
  border-radius: 6px;
  border: 1px solid var(--hl-border);
  background: var(--hl-fill);
  font: 600 15px/20px var(--font);
  letter-spacing: -0.2px;
  color: var(--ink);
  transition: opacity 560ms var(--ease-soft) 900ms, transform 560ms var(--ease-soft) 900ms;
}
.lp-tick-idea::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #4FA3A0; }
/* dimmed tickers use color, not opacity, so they keep AA contrast */
.js .lp-ticks[data-thesis="true"] .lp-tick { color: var(--dim-text); border-color: rgba(33, 35, 41, 0.6); }
.js .lp-ticks[data-thesis="false"] .lp-tick-arrow { opacity: 0; transform: rotate(90deg) translateY(6px); }
.js .lp-ticks[data-thesis="false"] .lp-tick-idea { opacity: 0; transform: translateY(6px); }
@media (min-width: 480px) {
  .lp-h2-xl { font-size: 42px; line-height: 48px; }
}
@media (min-width: 820px) {
  .lp-thesis { padding-top: 112px; padding-bottom: 112px; }
  .lp-thesis-head { align-items: center; text-align: center; }
  .lp-h2-xl { font-size: 68px; line-height: 74px; letter-spacing: -2.4px; }
  .lp-thesis-sub { margin-top: 26px; font-size: 20px; line-height: 32px; }
  .lp-ticks-wrap { align-items: center; margin-top: 48px; }
  .lp-ticks { flex-direction: row; align-items: center; gap: 18px; padding: 22px 0; }
  .lp-tick-arrow { transform: none; margin-left: 0; }
  .js .lp-ticks[data-thesis="false"] .lp-tick-arrow { transform: translateX(-6px); }
}

/* ---------------------------------------------------------- how it works */
.lp-how { padding-top: 40px; padding-bottom: 40px; }
.lp-steps { display: flex; flex-direction: column; gap: 32px; margin-top: 30px; }
.lp-step { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.lp-step-text { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.lp-step-num {
  font: 500 12px/16px var(--mono);
  letter-spacing: 1.2px;
  color: var(--muted);
  transition: color 420ms var(--ease-soft);
}
.lp-step-h {
  padding-inline: 2px;
  font: 600 22px/28px var(--font);
  letter-spacing: -0.5px;
  color: var(--ink);
  transition: color 420ms var(--ease-soft);
}
.lp-step-p {
  max-width: 420px;
  font: 400 15px/23px var(--font);
  color: var(--ink-2);
  transition: color 420ms var(--ease-soft);
}
.lp-frame {
  padding: 16px;
  border-radius: 12px;
  border: 1px solid var(--border);
  background: var(--card);
  min-width: 0;
}
.lp-phone-col { display: none; }

@media (min-width: 820px) {
  .lp-how { padding-top: 56px; padding-bottom: 80px; }
  .lp-how-grid { display: flex; align-items: flex-start; gap: 72px; margin-top: 48px; }
  .lp-steps { flex: 1; min-width: 0; gap: 0; margin-top: 0; }
  .lp-step {
    min-height: 400px;
    justify-content: center;
    padding: 24px 0;
    gap: 0;
  }
  .lp-step:last-child { padding-bottom: 400px; }
  .lp-step-text { gap: 10px; }
  .lp-step-h { font-size: 34px; line-height: 40px; letter-spacing: -0.9px; }
  .lp-step-p { max-width: 440px; font-size: 18px; line-height: 28px; }
  .lp-step .lp-frame { display: none; }
  .js .lp-step:not(.is-active) .lp-step-num,
  .js .lp-step:not(.is-active) .lp-step-p { color: var(--dim-text); }
  .js .lp-step:not(.is-active) .lp-step-h { color: var(--dim-heading); }
  .lp-phone-col { display: block; width: 300px; flex: none; align-self: flex-start; position: sticky; top: 96px; }
  /* desktop steps dim instead of fading up */
  .js .lp .lp-step[data-reveal] { opacity: 1; transform: none; transition: none; animation: none; }
}

/* phone */
.lp-phone {
  width: 300px;
  height: 650px;
  padding: 9px;
  border-radius: 48px;
  border: 1px solid #3A3D46;
  background: #050507;
  box-shadow: 0 40px 80px -30px rgba(0, 0, 0, 0.75);
}
.lp-phone-screen {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  border-radius: 40px;
  overflow: hidden;
  background: var(--page);
}
.lp-phone-status {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 46px;
  padding: 14px 24px 0;
  flex: none;
}
.lp-phone-time { font: 600 12.5px/16px var(--font); color: var(--ink); }
.lp-phone-island { width: 86px; height: 26px; border-radius: 13px; background: #050507; }
.lp-phone-sys { display: flex; align-items: flex-end; gap: 5px; }
.lp-phone-bars { display: flex; align-items: flex-end; gap: 1.5px; }
.lp-phone-bars i { display: block; width: 2.5px; border-radius: 1px; background: var(--ink); }
.lp-phone-batt {
  width: 20px;
  height: 10px;
  padding: 1.5px;
  border-radius: 3px;
  border: 1px solid rgba(236, 236, 238, 0.55);
}
.lp-phone-batt i { display: block; height: 100%; border-radius: 1.5px; background: var(--ink); }
.lp-phone-body { position: relative; flex: 1; min-height: 0; padding: 14px 16px 84px; }
.lp-phone-body > .lp-scr { height: 100%; }
.lp-phone-tabs {
  position: absolute;
  left: 14px;
  right: 14px;
  bottom: 14px;
  display: flex;
  align-items: center;
  justify-content: space-around;
  height: 54px;
  padding: 0 8px;
  border-radius: 27px;
  border: 1px solid rgba(236, 236, 238, 0.08);
  background: rgba(42, 44, 50, 0.92);
}
.lp-phone-tab {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 20px;
  color: var(--ink-2);
}
.lp-phone-tab.is-on { background: rgba(236, 236, 238, 0.14); color: var(--ink); }
.lp-phone-tab { position: relative; z-index: 1; transition: color 320ms var(--ease-soft); }
/* with JS the active background is one pill that slides between tabs, so icons never cross */
.lp-phone-pill {
  position: absolute;
  top: 6px;
  left: 0;
  width: 40px;
  height: 40px;
  border-radius: 20px;
  background: rgba(236, 236, 238, 0.14);
  opacity: 0;
  transform: translateX(var(--pill-x, 0px));
  transition: transform 560ms var(--ease-soft);
}
.lp-phone-tabs.has-pill .lp-phone-pill { opacity: 1; }
.lp-phone-tabs.has-pill .lp-phone-tab.is-on { background: transparent; }
.lp-late { animation: lp-swap 440ms var(--ease-soft) 300ms backwards; }

/* screens (shared by the phone and the framed phone-width cards) */
.lp-scr { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.lp-scr-field {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 14px;
  border-radius: 12px;
  border: 1px solid var(--border);
  background: var(--card);
  color: var(--muted);
  min-width: 0;
}
.lp-frame .lp-scr-field { background: var(--card); }
.lp-scr-query { display: flex; align-items: center; flex: 1; min-width: 0; }
.lp-scr-typed { font: 400 14.5px/20px var(--font); color: var(--ink); white-space: nowrap; overflow: hidden; }
.lp-scr-typed.is-empty { color: var(--muted); }
.lp-caret { width: 1.5px; height: 16px; margin-left: 2px; background: var(--ink); animation: lp-caret 1.05s steps(2, start) infinite; }
@keyframes lp-caret { 0%, 49% { opacity: 1; } 50%, 100% { opacity: 0; } }
.lp-scr-list { display: flex; flex-direction: column; gap: 2px; transition: opacity 320ms ease; }
.lp-scr-list.is-waiting { opacity: 0.25; }
.lp-scr-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 0;
  min-width: 0;
}
.lp-scr-row + .lp-scr-row { border-top: 1px solid var(--border); }
.lp-scr-row.is-top { align-items: flex-start; padding: 11px 0; }
.lp-scr-main { display: flex; align-items: center; gap: 12px; flex: 1; min-width: 0; }
.lp-scr-names { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.lp-scr-name { font: 600 14px/18px var(--font); color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lp-scr-subtle { font: 400 12px/16px var(--font); color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lp-scr-kind { flex: none; font: 500 10.5px/14px var(--mono); letter-spacing: 1px; text-transform: uppercase; color: var(--muted); }
.lp-scr-kind.is-idea { color: var(--ink); }
.lp-idea-av {
  flex: none;
  display: block;
  width: 32px;
  height: 32px;
  border-radius: 9px;
  overflow: hidden;
  background: #5B8DD6;
}
.lp-idea-av.is-40 { width: 40px; height: 40px; border-radius: 11px; }
.lp-idea-av > img { display: block; width: 100%; height: 100%; object-fit: cover; }
.lp-alogo {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 7px;
  border: 1px solid rgba(var(--brand, 156, 156, 164), 0.18);
  background: rgba(var(--brand, 156, 156, 164), 0.1);
}
.lp-alogo > img { display: block; width: 17px; height: 17px; border-radius: 5px; object-fit: cover; }
.lp-scr-label { font: 500 11px/15px var(--mono); letter-spacing: 1.2px; text-transform: uppercase; color: var(--muted); }
.lp-scr-idea { display: flex; align-items: center; gap: 12px; align-self: flex-start; min-width: 0; }
.lp-scr-idea-name { font: 600 16px/20px var(--font); color: var(--ink); }
.lp-scr-idea-sub { font: 400 12.5px/17px var(--font); color: var(--muted); }
.lp-scr-block { display: flex; flex-direction: column; gap: 6px; }
.lp-scr-amount { font: 600 36px/40px var(--mono); letter-spacing: -1px; color: var(--ink); font-variant-numeric: tabular-nums; }
.lp-phone .lp-scr-amount { font-size: 44px; line-height: 48px; }
.lp-scr-note { font: 400 11.5px/16px var(--mono); letter-spacing: 0.2px; color: var(--muted); }
.lp-scr-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.lp-scr-pill {
  padding: 7px 10px;
  border-radius: 6px;
  border: 1px solid var(--border);
  background: var(--card);
  font: 400 12.5px/17px var(--font);
  color: var(--ink-2);
}
.lp-scr-pill.is-on { border-color: var(--hl-border); background: var(--hl-fill); color: var(--ink); }
.lp-scr-go {
  margin-top: 4px;
  padding: 14px 0;
  border-radius: 12px;
  background: var(--light-btn);
  text-align: center;
  font: 600 15px/20px var(--font);
  color: var(--light-btn-ink);
}
.lp-scr-head { display: flex; align-items: center; gap: 12px; min-width: 0; }
.lp-scr-head .lp-scr-idea { flex: 1; align-self: auto; }
.lp-scr-head-name { font: 600 15px/20px var(--font); color: var(--ink); }
.lp-scr-live { display: flex; align-items: center; gap: 7px; flex: none; }
.lp-scr-live .live-dot { --dot: 5px; }
.lp-feed-top { display: flex; align-items: baseline; gap: 8px; min-width: 0; }
.lp-feed-tick { font: 500 13px/17px var(--mono); letter-spacing: 0.3px; color: var(--ink); }
.lp-feed-act { font: 400 13.5px/18px var(--font); color: var(--ink); min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lp-feed-time { margin-left: auto; flex: none; font: 400 11.5px/16px var(--mono); color: var(--muted); }
.lp-feed-why { font: 400 13px/19px var(--font); color: var(--ink-2); }
.lp-feed-col { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
/* framed cards show two feed rows, the phone three */
.lp-frame .lp-feed-row:nth-child(n+3) { display: none; }

/* -------------------------------------------------------------- market */
.lp-market { padding-top: 44px; padding-bottom: 24px; }
.lp-marquee-wrap { width: 100%; padding-bottom: 8px; }
.lp-marquee {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.lp-track {
  display: flex;
  width: max-content;
  animation: lp-marquee var(--dur, 76s) linear infinite;
}
.lp-track.is-rev { animation-direction: reverse; }
@media (hover: hover) {
  .lp-marquee:hover .lp-track { animation-play-state: paused; }
}
.lp-set { display: flex; flex-shrink: 0; }
.lp-chip {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
  margin-right: 10px;
  padding: 9px 14px;
  border-radius: 6px;
  border: 1px solid var(--border);
  background: var(--card);
  white-space: nowrap;
}
.lp-chip-t { font: 500 13px/17px var(--mono); letter-spacing: 0.3px; color: var(--ink); }
.lp-chip-k { font: 400 11px/15px var(--font); letter-spacing: 0.2px; color: var(--muted); }
@keyframes lp-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (min-width: 820px) {
  .lp-market { padding-top: 72px; padding-bottom: 36px; }
  .lp-marquee-wrap { padding-bottom: 24px; }
}

/* ------------------------------------------------------------ $POUNTAIN */
.lp-own { padding-top: 44px; padding-bottom: 40px; }
.lp-own-note-top {
  max-width: 600px;
  margin-top: 10px;
  font: 400 15px/23px var(--font);
  color: var(--ink-2);
}
.lp-own-card {
  display: flex;
  flex-direction: column;
  gap: 16px;
  max-width: 620px;
  margin-top: 24px;
  padding: 20px;
  border-radius: 12px;
  border: 1px solid var(--border);
  background: var(--card);
}
.lp-tiers { display: flex; flex-wrap: wrap; gap: 10px; }
.lp-tier {
  display: block;
  width: 56px;
  height: 56px;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: var(--page);
  overflow: hidden;
  opacity: 0.55;
  transition: opacity 200ms, border-color 200ms, transform 180ms var(--ease-soft);
}
.lp-tier > img { display: block; width: 100%; height: 100%; object-fit: cover; }
.lp-tier.is-on { opacity: 1; border-color: var(--hl-border); }
.no-js-tiers .lp-tier,
html:not(.js) .lp-tier { opacity: 1; }
.lp-own-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.lp-own-ticker {
  margin-right: 4px;
  font: 600 15px/20px var(--mono);
  letter-spacing: 0.3px;
  color: var(--ink);
}
.lp-own-row .btn { --btn-h: 40px; }
.lp-own-foot { font: 400 14px/21px var(--font); color: var(--ink-2); }
@media (min-width: 820px) {
  .lp-own { padding-top: 72px; padding-bottom: 72px; }
  .lp-own-note-top { font-size: 16px; line-height: 25px; }
  .lp-own-card { margin-top: 30px; padding: 24px; }
}

/* ---------------------------------------------------------------- live */
.lp-live { padding-top: 52px; padding-bottom: 72px; }
.lp-live-head { display: flex; align-items: center; gap: 12px; }
.lp-live-cols { display: flex; flex-direction: column; gap: 18px; margin-top: 24px; }
.lp-live-col {
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding-top: 12px;
  border-top: 1px solid var(--border);
  min-width: 0;
}
.lp-live-label { font: 600 15px/20px var(--font); letter-spacing: -0.2px; color: var(--ink); }
.lp-live-body { font: 400 14px/21px var(--font); color: var(--ink-2); overflow-wrap: break-word; }
.lp-live-body a { color: var(--ink); text-decoration: none; }
@media (hover: hover) {
  .lp-live-body a:hover { text-decoration: underline; text-underline-offset: 3px; }
}
@media (max-width: 639.98px) {
  .lp-live-body a { display: inline-block; padding-block: 10px; margin-block: -10px; }
}
.lp-small { margin-top: 20px; font: 400 13px/19px var(--font); color: var(--muted); }
.lp-close { display: flex; flex-direction: column; align-items: flex-start; gap: 26px; margin-top: 56px; }
.lp-close-h {
  max-width: 760px;
  padding-inline: 2px;
  font: 600 30px/36px var(--font);
  letter-spacing: -1px;
  color: var(--ink);
  text-wrap: balance;
}
@media (min-width: 820px) {
  .lp-live { padding-top: 88px; padding-bottom: 112px; }
  .lp-live-head { margin-left: -20px; }
  .lp-live-cols { flex-direction: row; gap: 28px; margin-top: 32px; }
  .lp-live-col { flex: 1; }
  .lp-small { margin-top: 26px; }
  .lp-close { align-items: center; margin-top: 112px; text-align: center; }
  .lp-close-h { font-size: 52px; line-height: 58px; letter-spacing: -1.8px; }
}

/* ------------------------------------------------------- reduced motion */
@media (prefers-reduced-motion: reduce) {
  .lp-rise, .lp-swap, .lp-late, .lp-caret, .lp-tile-clip.is-still > img, .live-dot::before { animation: none !important; }
  .lp-wash, .lp-tile-art, .lp-tick, .lp-tick-arrow, .lp-tick-idea, .lp-step-num, .lp-step-h, .lp-step-p,
  .lp-btn, .lp-btn-arrow, .lp-inline > span::after, .lp-scr-list, .lp-tier { transition: none !important; }
  .js .lp [data-reveal] { opacity: 1 !important; transform: none !important; transition: none !important; animation: none !important; }
  .js .lp-ticks[data-thesis] .lp-tick-arrow,
  .js .lp-ticks[data-thesis] .lp-tick-idea { opacity: 1 !important; }
  .js .lp-ticks[data-thesis] .lp-tick-idea { transform: none !important; }
  .lp-tier { opacity: 1; }
  .lp-track { animation: none; width: auto; flex-wrap: wrap; row-gap: 10px; padding-inline: var(--lp-pad); }
  .lp-track .lp-set { flex-wrap: wrap; row-gap: 10px; flex-shrink: 1; }
  .lp-track .lp-set[aria-hidden="true"] { display: none; }
  .lp-marquee { -webkit-mask-image: none; mask-image: none; }
}
