/* Page composition owns spacing and responsive grids.
   Component files own colors, typography, artwork and interaction. */
.lp-comfort-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.lp-comfort-card { padding: 24px; border: 1px solid #ded8ce; border-radius: 24px; background: #faf8f3; color: #81709c; min-width: 0; }
.lp-comfort-card:nth-child(2) { color: #5a7fa9; }
.lp-comfort-card:nth-child(3) { color: #5e8774; }
.lp-comfort-art { width: 100%; max-width: 280px; height: auto; display: block; margin: 0 auto 24px; }
.lc-surface { fill: #f5f1eb; stroke: currentColor; stroke-width: 1.4; }
.lc-line,.lc-wave { fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.lc-pause { fill: none; stroke: currentColor; stroke-width: 5; stroke-linecap: round; }
.lp-comfort-card h3 { color: #253248; font-size: 1.2rem; line-height: 1.4; margin: 0 0 14px; }
.lp-comfort-card p { color: #65616b; font-size: .95rem; line-height: 1.75; margin: 0; }
@media(max-width:900px) { .lp-comfort-grid { grid-template-columns: minmax(0,1fr); max-width: 650px; margin: auto; } .lp-comfort-card { display: grid; grid-template-columns: 160px minmax(0,1fr); column-gap: 24px; } .lp-comfort-art { grid-row: span 2; align-self: center; margin: 0; } }
@media(max-width:540px) { .lp-comfort-card { display: block; padding: 22px; } .lp-comfort-art { max-width: 240px; margin: 0 auto 20px; } }
.landing {
  /* Clip horizontal artwork without creating a second vertical scroll container. */
  overflow-x: clip;
  overflow-y: visible;
  --page-gutter: clamp(20px, 4vw, 56px);
  --section-space: clamp(56px, 6vw, 88px);
  --story-space: clamp(32px, 4vw, 48px);
  --content-space: clamp(24px, 3vw, 40px);
  --column-space: clamp(32px, 4vw, 64px);
}
.landing > .landing-section {
  padding: 0 var(--page-gutter);
  margin: var(--section-space) 0 0;
}
.landing .landing-section-inner { width: 100%; max-width: 1120px; margin: 0 auto; }
.landing .landing-section-title { margin: 0 auto var(--content-space); max-width: 820px; text-wrap: balance; }
.landing .landing-requests-other { margin: 20px auto 0; max-width: 650px; line-height: 1.65; }
.landing .landing-tags-field.request-network { margin: 0 auto; }
.landing .lp-neural { padding: 0; gap: var(--content-space); grid-template-columns:minmax(0,1fr); justify-items:center; }
.landing .lp-neural-title { font-size:clamp(2.3rem,4.5vw,3.5rem); font-weight:600; line-height:1.2; letter-spacing:-.025em; text-align:center; text-wrap:balance; max-width:900px; margin:0; }
.landing .lp-neural-copy { max-width:760px; text-align:center; }
.landing .lp-neural-art { max-width: 480px; justify-self: center; }
.landing .lp-neural-copy h2 { margin: 0 0 20px; text-wrap: balance; }
.landing .lp-neural-copy p { margin: 0; }
.landing .lp-heading { margin: 0 auto var(--content-space); }
.landing .lp-why-heading { margin-bottom: var(--story-space); }
.landing .lp-heading h2 { margin: 0; }
.landing .lp-why h3 { margin: 14px 0 18px; text-wrap: balance; }
.landing .lp-story-copy > p,.landing .lp-heading > p { margin: 0; }
.landing .lp-story-row,.landing .lp-angles,.landing .lp-map-story {
  padding: var(--story-space) 0;
}
.landing #experience { padding-top: 0; }
.landing #map { padding-bottom: 0; }
.landing .lp-story-row,.landing .lp-approach-demo,.landing .lp-map-example { gap: var(--column-space); }
.landing .lp-approach-demo { align-items: center; }
.landing .lp-start-options { margin-top: 20px; }
.landing .lp-start-options details { padding: 16px 0; }
.landing .lp-start-options details:last-child { border-bottom: 0; padding-bottom: 0; }
.landing .lp-start-options details p { margin: 12px 0 0; }
.landing .lp-scenario { padding: 28px; }
.landing .lp-scenario > p { margin: 16px 0 20px; }
.landing .lp-map-source { padding: 0; }
.landing .lp-map-source p { margin: 12px 0 0; }
.landing .lp-thread { padding: 24px; }
.landing .lp-thread-part { padding-top: 16px; padding-bottom: 16px; }
.landing .lp-thread-part:before { top: 21px; }
.landing .lp-thread-part p { margin: 12px 0; }
.landing .lp-thread-part:last-child { padding-bottom: 0; }
.landing .lp-map-paper { padding: clamp(22px, 3vw, 32px); }
.landing .lp-map-paper h4 { margin: 20px 0 16px; }
.landing .lp-map-ellipsis { padding: 0 0 14px; }
.landing .lp-map-ellipsis:last-child { padding: 4px 0 0; }
.landing #access .landing-section-inner { max-width: 720px; }
.landing .lp-access h2 { margin: 0 auto 20px; max-width: 780px; font-size: clamp(1.8rem,3.4vw,2.7rem); line-height: 1.2; font-weight: 600; color: #253248; text-wrap: balance; }
.landing .lp-access p { margin: 0 auto; font-size: clamp(1.05rem,1.5vw,1.2rem); }
.landing #access h2,.landing #comfort h2 { width:100%; box-sizing:border-box; text-wrap:wrap; }
.landing .lp-access .landing-cta-primary { margin-top: 28px; }
.landing .landing-footer { margin-top: var(--section-space); padding: 28px var(--page-gutter); }
.landing .landing-hero { min-height: min(100svh, 900px); }
.landing .landing-hero-content { padding: 96px var(--page-gutter) 64px; transform: none; gap: 24px; }
/* Keep the original logo/text layout; move only the action within the bottom padding. */
.landing .landing-hero-action { position:relative; top:var(--hero-action-offset, 24px); display:flex; align-items:center; justify-content:center; width:100%; }
.landing .landing-hero .lp-centered-brand { margin-bottom: 4px; }
.landing .landing-hero-title { text-wrap: balance; }
.landing .landing-hero .landing-hero-subtitle { text-wrap: balance; font-size: clamp(.95rem, 1.5vw, 1.15rem); margin-top: -12px; margin-bottom: 0; }
.landing .landing-hero .landing-hero-title,
.landing .landing-hero .landing-cta-primary { margin-block: 0; }
.landing .landing-cta-primary { max-width: 100%; min-width: 0; white-space: normal; box-sizing: border-box; }
.landing :is(.lp-story-copy,.lp-neural-copy,.lp-map-source,.lp-map-entry > div) { min-width: 0; overflow-wrap: break-word; }
@media (max-width: 900px) {
  .landing { --section-space: 56px; --story-space: 36px; --content-space: 28px; --column-space: 28px; }
  .landing .lp-story-row,.landing .lp-approach-demo,.landing .lp-map-example,.landing .lp-neural { grid-template-columns: minmax(0,1fr); }
  .landing .lp-neural-art { max-width: 360px; }
  .landing .lp-neural-copy { max-width: 650px; margin: 0 auto; text-align: center; }
  .landing .lp-neural { gap: 24px; }
  .landing .lp-story-copy { max-width: 650px; }
  .landing :is(.lp-chat,.lp-thread,.lp-scenario,.lp-map-paper,.lp-approaches) { width: 100%; max-width: 650px; justify-self: center; box-sizing: border-box; }
  .landing .lp-story-copy,.landing .lp-map-source { width: 100%; max-width: 650px; justify-self: center; }
  .landing .lp-map-example { gap: 24px; }
  .landing .lp-heading { max-width: 650px; }
}
@media (max-width: 540px) {
  .landing { --page-gutter: 20px; --section-space: 44px; --story-space: 28px; --content-space: 24px; --column-space: 24px; }
  .landing .landing-hero-content { padding: 88px 20px 48px; gap: 22px; }

  .landing .landing-hero .lp-centered-brand img { width: 140px; }
  .landing .landing-tags-field.request-network { padding: 0; gap: 16px; }
  .landing .request-cluster { padding: 18px 10px; }
  .landing .lp-neural-art { max-width: 300px; }
  .landing .lp-neural { gap: 20px; }
  .landing .lp-neural-copy h2 { margin-bottom: 16px; }
  .landing .lp-why h3 { margin: 12px 0 16px; }
  .landing .lp-scenario,.landing .lp-thread { padding: 22px; }
  .landing .lp-approach summary { padding: 18px; gap: 12px; }
  .landing .lp-approach-answer { padding: 0 18px 18px; }
  .landing .lp-map-entry { gap: 12px; padding: 18px 0; }
  .landing .landing-footer { padding-block: 24px; }
}
@media (max-height: 540px) and (orientation: landscape) {
  .landing .landing-hero { min-height: 100svh; }
  .landing .landing-hero-content { padding-block: 76px 36px; gap: 18px; }

  .landing .landing-hero .lp-centered-brand img { width: 100px; }
}
.lp-install-grid { display:grid; grid-template-columns:minmax(220px,.8fr) minmax(0,1.2fr); align-items:center; gap:clamp(32px,6vw,80px); }
.lp-install-phone { width:220px; height:390px; box-sizing:border-box; padding:18px; justify-self:center; border:2px solid #b8b1a7; border-radius:34px; background:#fffdf9; }
.lp-install-speaker { width:62px; height:8px; border-radius:8px; margin:0 auto 42px; background:#c9c4bc; }
.lp-install-apps { display:grid; grid-template-columns:repeat(3,1fr); gap:38px 16px; }
.lp-install-apps>span { width:42px; height:42px; border-radius:12px; background:#ece8e1; box-shadow:inset 0 0 0 1px #d9d3c9; position:relative; }
.lp-install-apps>span:nth-child(5) { background:transparent; box-shadow:none; }
.lp-phone-entrance .lp-install-phone:not(.lp-phone-revealed) .lp-install-apps img,
.lp-phone-entrance .lp-install-phone:not(.lp-phone-revealed) .lp-install-apps small { opacity:0; }
@media(prefers-reduced-motion:reduce) {
 .lp-phone-entrance .lp-install-phone .lp-install-apps img,
 .lp-phone-entrance .lp-install-phone .lp-install-apps small { opacity:1; }
}
.lp-install-wave { position:absolute; width:60px; height:60px; left:-9px; top:-9px; border:2px solid #81709c; border-radius:50%; box-sizing:border-box; opacity:0; pointer-events:none; }
.lp-install-apps img { position:absolute; width:60px; height:60px; top:-9px; left:-9px; }
.lp-install-apps small { position:absolute; top:56px; left:50%; transform:translateX(-50%); font-size:11px; line-height:14px; color:#62536f; }
.lp-install-dock { height:44px; border-radius:15px; margin-top:25px; background:#e5dfd5; box-shadow:inset 0 0 0 1px #d9d3c9; }
.lp-install-title { grid-column:1 / -1; text-align:center; font-size:clamp(1.8rem,3.4vw,2.7rem); line-height:1.2; color:#253248; margin:0; }
.lp-install-copy>p { font-size:1.05rem; line-height:1.75; color:#65616b; }
 .lp-install-card { background:#fffdf9; border:1px solid #e3dce8; border-radius:24px; padding:28px; margin-top:24px; }
.lp-install-card h3 { font-size:1.45rem; font-weight:500; text-align:center; margin:0 0 22px; color:#253248; }
.lp-install-options { display:flex; gap:12px; justify-content:center; }
.lp-install-options button { flex:1; min-width:0; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:12px; padding:16px 6px; border:1px solid transparent; border-radius:16px; background:transparent; color:#71657e; font:inherit; font-size:.85rem; cursor:pointer; box-shadow:none; transform:none; animation:none; transition:background-color .25s,border-color .25s; }
.lp-install-options button:hover { background:#f5f0f7; box-shadow:none; transform:none; }
.lp-install-options button[aria-pressed="true"] { background:#eee7f3; border-color:#c0afce; color:#59436d; }
.lp-install-options button:active { transform:none; box-shadow:none; }
.lp-install-options button::before,.lp-install-options button::after { content:none; }
.lp-install-options svg { width:32px; height:32px; flex-shrink:0; fill:currentColor; color:#171717; }
.lp-install-options button { max-width:130px; }
.lp-icon-eye { fill:#fffdf9; }
.lp-install-copy .lp-install-stores { margin-top:26px; color:#81709c; font-size:.95rem; text-align:center; }
.lp-install-help { height:0; overflow:hidden; transition:height .55s cubic-bezier(.22,1,.36,1); text-align:start; color:#655e6c; line-height:1.7; }
.lp-install-help ol { list-style:none; padding:24px 0 0; margin:0; counter-reset:install-step; }
.lp-install-help li { display:flex; align-items:flex-start; gap:12px; margin-bottom:16px; font-size:.95rem; }
.lp-install-help li:last-child { margin-bottom:0; }
.lp-install-help li::before { counter-increment:install-step; content:counter(install-step); display:grid; place-items:center; flex-shrink:0; width:26px; height:26px; border-radius:50%; background:#f0eaf5; color:#806b96; font-size:12px; }
.lp-install-help [hidden] { display:none; }
@media(prefers-reduced-motion:reduce) { .lp-install-help,.lp-install-options button { transition:none; } }
@media(max-width:400px) { .lp-install-card { padding:24px 14px; } }
@media(max-width:700px) { .lp-install-grid { grid-template-columns:minmax(0,1fr); } .lp-install-copy { text-align:center; } .lp-install-help { text-align:start; } .lp-install-phone { width:200px; height:390px; } .lp-install-apps { gap:38px 10px; } }
