@font-face {
  font-family:Inter;
  src:url('../fonts/InterVariable.woff2') format('woff2');
  font-style:normal;
  font-weight:100 900;
  font-display:swap;
}

@view-transition {
  navigation:auto;
}

:root {
  --green:#008757;
  --dark:#006b45;
  --ink:#0d1321;
  --muted:#58616b;
  --surface:#f4f5f7;
  --mint:#00a571;
  --pale:#eaf5ef;
  --line:#e1e5e4;
  --radius:24px;
  --shadow:0 20px 65px -30px #173c3040;
  --width:1200px;
}

* {
  box-sizing:border-box;
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:110px;
}

body {
  margin:0;
  background:white;
  color:var(--ink);
  font:400 16px/1.6 Inter,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}

a {
  color:inherit;
  text-underline-offset:4px;
}

img,svg {
  display:block;
  max-width:100%;
}

button,input,select,textarea {
  font:inherit;
}

button,a,input,summary,select,textarea {
  -webkit-tap-highlight-color:transparent;
}

button,summary {
  cursor:pointer;
}

a,button,summary,input,select,textarea {
  outline-offset:5px;
}

:focus-visible {
  outline:3px solid var(--dark);
}

::selection {
  background:#c8eadc;
}

h1,h2,h3,h4,p {
  margin:0;
}

h1,h2,h3 {
  font-weight:650;
  line-height:1.12;
  letter-spacing:-.045em;
}

h1 {
  font-size:clamp(2.8rem,5.1vw,4.75rem);
}

h2 {
  font-size:clamp(2rem,3.5vw,3rem);
}

h3 {
  font-size:1.4rem;
  letter-spacing:-.025em;
}

p {
  color:var(--muted);
}

p+p {
  margin-top:1rem;
}

ul {
  padding-left:1.25rem;
}

strong {
  font-weight:650;
}

section[id],h2[id],h3[id] {
  scroll-margin-top:110px;
}

.container {
  width:min(var(--width),calc(100% - 64px));
  margin-inline:auto;
}

.narrow {
  width:min(760px,calc(100% - 48px));
  margin-inline:auto;
}

.section {
  padding-block:92px;
}

.section-soft {
  background:var(--surface);
}

.section-line {
  border-top:1px solid var(--line);
}

.eyebrow,.kicker {
  display:block;
  font-size:.78rem;
  font-weight:650;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--dark);
  margin-bottom:20px;
}

.lede {
  font-size:1.17rem;
  line-height:1.65;
  max-width:520px;
}

.muted {
  color:var(--muted);
}

.small {
  font-size:.875rem;
}

.green {
  color:var(--green);
}

.icon {
  width:24px;
  height:24px;
  flex-shrink:0;
  fill:none;
  stroke:currentColor;
  stroke-width:1.6;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.skip-link {
  position:fixed;
  top:-100px;
  left:20px;
  z-index:99;
  padding:12px 20px;
  background:var(--ink);
  color:white;
  border-radius:10px;
}

.skip-link:focus {
  top:12px;
}

.site-header {
  position:sticky;
  top:0;
  z-index:30;
  background:#ffffffed;
  backdrop-filter:blur(18px);
  border-bottom:1px solid var(--line);
}

.nav-shell {
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:88px;
  gap:24px;
}

.brand {
  display:flex;
  align-items:center;
  gap:10px;
  text-decoration:none;
  flex-shrink:0;
}

.brand img {
  width:47px;
  height:47px;
  object-fit:contain;
}

.brand-name {
  font-size:1rem;
  font-weight:650;
  letter-spacing:-.04em;
  line-height:1.25;
}

.brand-name small {
  display:block;
  font-size:.75rem;
  font-weight:450;
  letter-spacing:.01em;
  color:var(--muted);
  margin-top:2px;
}

.primary-nav {
  display:flex;
  align-items:center;
  gap:25px;
  font-size:.84rem;
  font-weight:550;
}

.primary-nav>a {
  padding-block:33px;
  text-decoration:none;
  position:relative;
  white-space:nowrap;
}

.primary-nav>a:after {
  content:'';
  height:2px;
  position:absolute;
  bottom:22px;
  inset-inline:0;
  background:var(--green);
  transform:scaleX(0);
  transition:transform .2s;
}

.primary-nav>a:hover:after,.primary-nav>a[aria-current]:after {
  transform:scaleX(1);
}

.primary-nav>a[aria-current] {
  color:var(--dark);
}

.nav-actions {
  display:flex;
  align-items:center;
  gap:16px;
}

.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  min-height:50px;
  border-radius:100px;
  padding:13px 23px;
  border:1px solid transparent;
  font-size:.9rem;
  font-weight:600;
  text-decoration:none;
  line-height:1.3;
  transition:transform .22s,background .22s,box-shadow .22s;
}

.btn:hover {
  transform:translateY(-2px);
}

.btn:active {
  transform:translateY(0) scale(.98);
}

.btn-primary {
  background:var(--green);
  color:white;
}

.btn-primary:hover {
  background:var(--dark);
  box-shadow:0 8px 20px #00875720;
}

.btn-secondary {
  background:white;
  border-color:var(--line);
}

.btn-secondary:hover {
  border-color:#a5b9af;
  background:#f8faf9;
}

.btn-small {
  min-height:42px;
  padding:11px 19px;
  font-size:.82rem;
}

.btn-light {
  background:white;
  color:var(--dark);
}

.btn .icon {
  width:18px;
  height:18px;
}

.actions {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:28px;
}

.text-link {
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:var(--dark);
  font-weight:600;
  text-decoration:none;
  font-size:.92rem;
}

.text-link .icon {
  width:18px;
  transition:transform .2s;
}

.text-link:hover .icon {
  transform:translateX(4px);
}

.mobile-menu {
  display:none;
}

.mobile-menu summary {
  list-style:none;
  padding:10px;
  border:1px solid var(--line);
  border-radius:50%;
}

.mobile-menu summary::-webkit-details-marker {
  display:none;
}

.mobile-menu[open] summary {
  background:var(--pale);
}

.mobile-panel {
  position:absolute;
  top:100%;
  inset-inline:0;
  background:white;
  padding:18px 24px 28px;
  border-bottom:1px solid var(--line);
  box-shadow:0 15px 20px #0d13210a;
}

.mobile-panel a {
  display:block;
  text-decoration:none;
  padding:12px 8px;
  font-weight:550;
}

.mobile-panel a[aria-current] {
  color:var(--dark);
}

.hero {
  display:grid;
  grid-template-columns:1fr 1.04fr;
  align-items:center;
  gap:68px;
  padding-block:68px 72px;
}

.hero-copy h1 {
  margin-bottom:24px;
}

.hero-copy .footnote {
  font-size:.81rem;
  margin-top:19px;
}

.hero-copy .eyebrow {
  display:flex;
  align-items:center;
  gap:9px;
}

.dot {
  display:inline-block;
  width:7px;
  height:7px;
  background:var(--green);
  border-radius:50%;
  flex-shrink:0;
}

.hero-visual {
  background:var(--pale);
  border-radius:34px;
  padding:32px;
  min-height:480px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  position:relative;
  overflow:hidden;
}

.visual-label {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  font-size:.75rem;
  color:#52625a;
  margin-bottom:24px;
}

.visual-label span:last-child {
  display:flex;
  align-items:center;
  gap:7px;
}

.conversation {
  background:white;
  border:1px solid #d9e8df;
  border-radius:22px;
  box-shadow:var(--shadow);
  overflow:hidden;
  transform:rotate(-2deg);
  transition:transform .5s;
}

.hero-visual:hover .conversation {
  transform:rotate(0);
}

.conversation-head {
  display:flex;
  align-items:center;
  gap:13px;
  padding:22px;
  border-bottom:1px solid var(--line);
}

.avatar {
  display:flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  background:var(--pale);
  color:var(--dark);
  border-radius:14px;
  flex-shrink:0;
  font-size:.85rem;
  font-weight:650;
}

.conversation-head strong {
  display:block;
  font-size:.95rem;
}

.conversation-head small {
  display:block;
  font-size:.75rem;
  color:var(--muted);
}

.wave {
  height:25px;
  display:flex;
  gap:3px;
  align-items:center;
  margin-left:auto;
  color:var(--green);
}

.wave i {
  height:12px;
  width:3px;
  border-radius:8px;
  background:currentColor;
  animation:wave 1s ease-in-out 4 alternate;
}

.wave i:nth-child(2n) {
  height:23px;
  animation-delay:.12s;
}

.wave i:nth-child(3n) {
  height:17px;
  animation-delay:.3s;
}

.chat {
  padding:24px;
  display:grid;
  gap:15px;
  font-size:.88rem;
  line-height:1.5;
}

.bubble {
  padding:13px 16px;
  max-width:90%;
  border-radius:15px;
  background:var(--surface);
  color:var(--ink);
}

.bubble small {
  display:block;
  font-size:.75rem;
  color:var(--muted);
  margin-bottom:4px;
}

.bubble.caller {
  margin-left:auto;
  background:#e9f5ef;
}

.bubble:nth-child(2) {
  animation:arrive .65s .15s both;
}

.bubble:nth-child(3) {
  animation:arrive .65s .35s both;
}

.outcome {
  margin:0 20px 20px;
  padding:13px 15px;
  border-radius:12px;
  background:#f0f8f3;
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--dark);
  font-size:.81rem;
}

.outcome .icon {
  width:19px;
}

.visual-caption {
  position:relative;
  display:flex;
  gap:10px;
  justify-content:center;
  align-items:center;
  margin-top:25px;
  font-size:.77rem;
  color:#40594d;
}

.visual-caption .icon {
  width:17px;
  height:17px;
}

.hero-note {
  display:flex;
  gap:24px;
  align-items:center;
  padding:24px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  color:var(--muted);
  font-size:.87rem;
}

.hero-note p {
  margin:0;
}

.hero-note img {
  width:92px;
  height:auto;
}

.hero-note .note-end {
  margin-left:auto;
  color:var(--dark);
}

.section-head {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:32px;
  margin-bottom:36px;
}

.section-head p {
  max-width:390px;
}

.section-head h2 {
  max-width:610px;
}

.grid-2,.grid-3,.grid-4 {
  display:grid;
  gap:22px;
}

.grid-2 {
  grid-template-columns:repeat(2,minmax(0,1fr));
}

.grid-3 {
  grid-template-columns:repeat(3,minmax(0,1fr));
}

.grid-4 {
  grid-template-columns:repeat(4,minmax(0,1fr));
}

.product-card {
  display:flex;
  flex-direction:column;
  text-decoration:none;
  border-radius:var(--radius);
  border:1px solid var(--line);
  overflow:hidden;
  background:white;
  transition:transform .28s,box-shadow .28s;
}

.product-card:hover {
  transform:translateY(-5px);
  box-shadow:var(--shadow);
}

.product-art {
  height:220px;
  padding:26px;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  background:var(--surface);
  overflow:hidden;
}

.product-card:nth-child(1) .product-art {
  background:var(--pale);
}

.product-card:nth-child(2) .product-art {
  background:#eef1fa;
}

.product-card:nth-child(4) .product-art {
  background:#ecf1f2;
}

.product-copy {
  padding:25px;
  display:flex;
  flex-direction:column;
  flex:1;
}

.product-copy h3 {
  font-size:1.22rem;
  margin-bottom:10px;
}

.product-copy p {
  font-size:.9rem;
  margin-bottom:21px;
}

.product-copy .text-link {
  margin-top:auto;
  font-size:.84rem;
}

.mini-call {
  background:white;
  border-radius:17px;
  padding:21px;
  width:100%;
  box-shadow:0 8px 30px #183f3010;
}

.mini-call strong {
  font-size:.85rem;
}

.mini-call>div {
  display:flex;
  align-items:center;
  gap:9px;
}

.mini-call .wave {
  margin:18px 0 0;
  justify-content:center;
}

.mini-call p {
  font-size:.75rem;
  text-align:center;
  margin-top:10px;
}


.pulse-art {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:14px;
}

.pulse-art strong {
  letter-spacing:-.05em;
  font-size:1.5rem;
}

.route-mini {
  display:grid;
  gap:10px;
  width:100%;
  text-align:center;
}

.route-mini span {
  display:block;
  background:white;
  border:1px solid #e1e5e4;
  border-radius:10px;
  padding:8px 12px;
  font-size:.78rem;
}

.route-mini .route-branches {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}

.route-mini>.icon {
  margin:auto;
  color:var(--green);
  height:20px;
}

.mini-estate {
  width:100%;
  background:white;
  border-radius:13px;
  box-shadow:0 8px 30px #173c3015;
  padding:16px;
}

.mini-estate strong {
  font-size:.85rem;
}

.mini-estate .mini-line {
  height:7px;
  background:#e6eee9;
  border-radius:10px;
  margin-top:14px;
}

.mini-estate .mini-line:last-child {
  width:65%;
  background:#c3ddd0;
}

.mini-estate small {
  display:block;
  color:var(--dark);
  font-size:.75rem;
  margin-top:14px;
}

.feature {
  padding:26px 0;
  border-top:1px solid var(--line);
}

.feature>.icon {
  color:var(--green);
  margin-bottom:20px;
  width:27px;
  height:27px;
}

.feature h3 {
  font-size:1.17rem;
  margin-bottom:11px;
}

.feature p {
  font-size:.94rem;
}

.feature-grid {
  gap:15px 36px;
}

.step {
  padding-right:28px;
}

.step-num {
  display:flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  border-radius:50%;
  border:1px solid #cbded3;
  background:white;
  color:var(--dark);
  font-size:.9rem;
  font-weight:600;
  margin-bottom:24px;
}

.step h3 {
  margin-bottom:12px;
  font-size:1.25rem;
}

.step p {
  font-size:.95rem;
}

.split {
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  gap:80px;
}

.split h2 {
  margin-bottom:22px;
}

.split p {
  max-width:480px;
}

.check-list {
  list-style:none;
  padding:0;
  margin:26px 0;
  display:grid;
  gap:13px;
  font-size:.94rem;
}

.check-list li {
  display:flex;
  gap:10px;
  align-items:flex-start;
}

.check-list .icon {
  width:19px;
  height:23px;
  color:var(--green);
}

.partner-band {
  background:var(--pale);
  padding:56px;
  border-radius:30px;
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  gap:56px;
}

.partner-band h2 {
  margin-bottom:22px;
}

.partner-band p {
  font-size:1rem;
}

.partner-stack {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}

.partner-tile {
  padding:26px;
  border:1px solid #d2e4d9;
  border-radius:18px;
  background:#ffffffa8;
  min-height:132px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}

.partner-tile strong {
  font-size:1rem;
  letter-spacing:-.02em;
}

.partner-tile .icon {
  color:var(--dark);
  margin-bottom:15px;
}

.cta-band {
  background:var(--green);
  color:white;
  border-radius:28px;
  padding:48px 54px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:36px;
}

.cta-band h2 {
  font-size:clamp(1.8rem,3vw,2.6rem);
  max-width:700px;
}

.cta-band p {
  color:#e4f3ed;
  margin-top:13px;
}

.cta-band .btn {
  flex-shrink:0;
}

.site-footer {
  padding:60px 0 25px;
  border-top:1px solid var(--line);
}

.footer-grid {
  display:grid;
  grid-template-columns:1.6fr 1fr 1fr 1fr;
  gap:55px;
}

.footer-brand p {
  font-size:.85rem;
  max-width:245px;
  margin-top:20px;
}

.footer-col h2 {
  font-size:.83rem;
  letter-spacing:0;
  margin:7px 0 20px;
}

.footer-col a {
  display:block;
  color:var(--muted);
  font-size:.83rem;
  text-decoration:none;
  margin:11px 0;
}

.footer-col a:hover {
  color:var(--green);
}

.footer-bottom {
  margin-top:46px;
  padding-top:22px;
  border-top:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  gap:20px;
  font-size:.75rem;
  color:var(--muted);
}

.page-hero {
  padding:72px 0 58px;
}

.page-hero h1 {
  max-width:840px;
  margin-bottom:24px;
}

.page-hero .lede {
  max-width:640px;
}

.center {
  text-align:center;
}

.center .lede,.center h1 {
  margin-inline:auto;
}

.center .actions {
  justify-content:center;
}

.product-label {
  display:flex;
  align-items:center;
  gap:11px;
  margin-bottom:24px;
  font-weight:600;
}

.product-label img {
  width:33px;
  border-radius:9px;
}

.app-preview {
  background:white;
  border:1px solid #dce0ea;
  border-radius:25px;
  width:100%;
  max-width:330px;
  margin:auto;
  padding:23px;
  box-shadow:var(--shadow);
}

.app-preview-header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-bottom:23px;
}

.app-preview-header img {
  width:80px;
}

.app-preview h3 {
  font-size:1.65rem;
  margin:8px 0 24px;
}

.app-status {
  display:inline-flex;
  gap:7px;
  align-items:center;
  color:var(--dark);
  font-size:.75rem;
  border:1px solid var(--line);
  border-radius:30px;
  padding:3px 8px;
}

.app-tabs {
  display:flex;
  justify-content:space-between;
  border-bottom:1px solid var(--line);
  font-size:.75rem;
  padding-bottom:12px;
  color:var(--muted);
}

.app-tabs strong {
  color:var(--dark);
}

.call-row {
  display:flex;
  gap:12px;
  align-items:center;
  padding:18px 0;
  border-bottom:1px solid var(--line);
}

.call-row strong {
  font-size:.82rem;
  display:block;
}

.call-row small {
  font-size:.75rem;
  color:var(--muted);
  display:block;
}

.call-row>.icon {
  margin-left:auto;
  color:var(--green);
  width:18px;
}

.call-row .avatar {
  width:35px;
  height:35px;
  font-size:.75rem;
}

.app-nav {
  display:flex;
  justify-content:space-around;
  margin-top:23px;
  color:var(--muted);
}

.app-nav>div {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:5px;
  font-size:.75rem;
}

.app-nav .selected {
  color:var(--dark);
}

.app-nav .icon {
  width:20px;
  height:20px;
}

.pulse-visual {
  background:#edf1f9;
}

.store-badges {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:27px;
}

.store-badge {
  background:var(--ink);
  color:white;
  border-radius:11px;
  padding:10px 18px;
  min-width:143px;
  line-height:1.15;
  display:flex;
  align-items:center;
  gap:11px;
  text-decoration:none;
}

.store-badge small {
  font-size:.75rem;
  display:block;
  color:#dbe0e7;
  margin-bottom:4px;
}

.store-badge strong {
  font-weight:550;
  font-size:.96rem;
}

.store-badge .icon {
  width:25px;
  height:25px;
}

.store-note {
  font-size:.77rem;
  margin-top:12px;
}

.vertical-card {
  border:1px solid var(--line);
  border-radius:20px;
  padding:28px;
}

.vertical-card .icon {
  color:var(--green);
  margin-bottom:24px;
}

.vertical-card h3 {
  font-size:1.18rem;
  margin-bottom:12px;
}

.vertical-card p {
  font-size:.9rem;
}

.vertical-card .example {
  font-size:.8rem;
  border-top:1px solid var(--line);
  padding-top:18px;
  margin-top:22px;
  color:var(--dark);
}

.faq {
  max-width:860px;
  margin-inline:auto;
}

.faq>h2 {
  margin-bottom:30px;
}

.faq details {
  border-top:1px solid var(--line);
}

.faq details:last-child {
  border-bottom:1px solid var(--line);
}

.faq summary {
  font-size:1.05rem;
  font-weight:550;
  list-style:none;
  display:flex;
  gap:20px;
  justify-content:space-between;
  padding:24px 0;
}

.faq summary::-webkit-details-marker {
  display:none;
}

.faq summary:after {
  content:'+';
  color:var(--green);
  font-size:1.5rem;
  font-weight:400;
  line-height:1;
}

.faq details[open] summary:after {
  content:'−';
}

.faq details p {
  padding:0 35px 24px 0;
  max-width:750px;
  font-size:.96rem;
}

.faq details p+p {
  margin-top:-10px;
}

.routing-board {
  width:100%;
  background:white;
  border:1px solid #dbe6df;
  border-radius:20px;
  padding:28px;
}

.routing-board .board-title {
  font-size:.9rem;
  display:flex;
  gap:10px;
  align-items:center;
  padding-bottom:23px;
  margin-bottom:22px;
  border-bottom:1px solid var(--line);
}

.route-node {
  border:1px solid var(--line);
  border-radius:12px;
  display:flex;
  align-items:center;
  gap:12px;
  padding:15px;
  font-size:.85rem;
}

.route-node .icon {
  width:18px;
  color:var(--green);
}

.route-node.active {
  background:var(--pale);
  border-color:#b5d8c6;
}

.route-arrow {
  height:27px;
  display:grid;
  place-items:center;
  color:var(--green);
  font-size:1.15rem;
}

.route-fork {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}

.route-fork .route-node {
  font-size:.76rem;
  padding:12px;
}

.route-small {
  text-align:center;
  font-size:.75rem;
  margin-top:20px;
  color:var(--muted);
}

.estate-visual {
  background:#eef1f3;
}

.estate-window {
  background:white;
  border:1px solid #dde2e4;
  border-radius:20px;
  box-shadow:var(--shadow);
  overflow:hidden;
}

.estate-top {
  padding:20px 23px;
  border-bottom:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  align-items:center;
}

.estate-top strong {
  font-size:1rem;
  letter-spacing:-.04em;
}

.estate-top small {
  font-size:.75rem;
  color:var(--muted);
}

.estate-body {
  padding:23px;
}

.estate-heading {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
}

.estate-heading h3 {
  font-size:1.08rem;
}

.estate-chip {
  font-size:.75rem;
  color:var(--dark);
  background:var(--pale);
  border-radius:20px;
  padding:4px 9px;
}

.estate-tiles {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-top:22px;
}

.estate-tiles>div {
  border:1px solid var(--line);
  padding:16px;
  border-radius:12px;
  font-size:.75rem;
}

.estate-tiles .icon {
  width:20px;
  color:var(--green);
  margin-bottom:13px;
}

.estate-domain {
  display:flex;
  align-items:center;
  gap:8px;
  border-top:1px solid var(--line);
  margin-top:22px;
  padding-top:18px;
  color:var(--muted);
  font-size:.75rem;
}

.estate-domain .icon {
  width:15px;
  height:15px;
}

.compare-wrap {
  border:1px solid var(--line);
  border-radius:22px;
  overflow:auto;
}

.compare {
  width:100%;
  border-collapse:collapse;
  text-align:left;
  min-width:650px;
  font-size:.92rem;
}

.compare caption {
  text-align:left;
  padding:22px 26px;
  font-weight:600;
  background:var(--surface);
}

.compare th,.compare td {
  padding:20px 26px;
  border-bottom:1px solid var(--line);
  vertical-align:top;
}

.compare thead th {
  font-weight:600;
  background:white;
}

.compare tbody th {
  font-weight:500;
  width:29%;
}

.compare td {
  color:var(--muted);
  width:35.5%;
}

.compare tr>*:last-child {
  background:#f0f8f3;
  color:#254336;
}

.compare tr:last-child>* {
  border-bottom:0;
}

.compare .col-title {
  display:block;
  font-size:1.08rem;
  letter-spacing:-.025em;
  margin-bottom:7px;
}

.compare thead small {
  font-weight:400;
  font-size:.8rem;
}

.table-hint {
  display:none;
  font-size:.8rem;
  margin-bottom:12px;
}

.pricing-card {
  border:1px solid var(--line);
  border-radius:24px;
  padding:30px;
  display:flex;
  flex-direction:column;
  background:white;
}

.pricing-card.featured {
  border:2px solid var(--green);
  position:relative;
}

.pricing-card .label {
  display:inline-block;
  font-size:.75rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--dark);
  margin-bottom:22px;
}

.pricing-card h2 {
  font-size:1.65rem;
  margin-bottom:14px;
}

.pricing-card>p {
  font-size:.92rem;
}

.pricing-signal {
  font-size:1.4rem;
  letter-spacing:-.035em;
  font-weight:600;
  margin:29px 0 7px;
  line-height:1.25;
}

.pricing-card .check-list {
  font-size:.89rem;
  flex:1;
  margin:25px 0 30px;
}

.pricing-card .btn {
  width:100%;
}

.price-note {
  font-size:.82rem;
  margin-top:22px;
}

.contact-layout {
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:80px;
  padding-block:70px 90px;
  align-items:start;
}

.contact-copy {
  padding-top:12px;
}

.contact-copy h1 {
  font-size:clamp(2.8rem,4.5vw,4rem);
  margin-bottom:25px;
}

.contact-copy .contact-detail {
  margin-top:35px;
  padding-top:25px;
  border-top:1px solid var(--line);
}

.contact-detail strong {
  display:block;
  font-size:.85rem;
  margin-bottom:7px;
}

.contact-detail a {
  color:var(--dark);
  font-size:.95rem;
  overflow-wrap:anywhere;
}

.lead-form {
  padding:33px;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:24px;
}

.lead-form h2 {
  font-size:1.5rem;
  margin-bottom:9px;
}

.lead-form>p {
  font-size:.86rem;
  margin-bottom:26px;
}

.form-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px 16px;
}

.field {
  min-width:0;
}

.field label {
  display:block;
  font-size:.8rem;
  font-weight:550;
  margin-bottom:7px;
}

.field label .muted {
  font-weight:400;
}

.field-full {
  grid-column:1/-1;
}

.field input,.field select,.field textarea {
  width:100%;
  min-height:48px;
  background:white;
  border:1px solid #b9c3c0;
  border-radius:9px;
  padding:10px 12px;
  color:var(--ink);
  font-size:1rem;
  transition:border-color .2s,box-shadow .2s;
}

.field textarea {
  min-height:125px;
  resize:vertical;
}

.field input:hover,.field select:hover,.field textarea:hover {
  border-color:#708b7e;
}

.field input:focus,.field select:focus,.field textarea:focus {
  border-color:var(--green);
  box-shadow:0 0 0 3px #00875710;
}

.field .check-field {
  display:flex;
  align-items:flex-start;
  gap:11px;
  font-size:.77rem;
  color:var(--muted);
  font-weight:400;
  line-height:1.55;
}

.check-field input {
  width:18px;
  height:18px;
  min-height:18px;
  margin:3px 0 0;
  accent-color:var(--green);
  flex-shrink:0;
}

.check-field a {
  color:var(--dark);
}

.form-trap {
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip-path:inset(50%);
}

.form-footer {
  margin-top:21px;
}

.form-footer .btn {
  width:100%;
}

.form-footer small {
  display:block;
  font-size:.75rem;
  margin-top:14px;
  color:var(--muted);
}

.form-status {
  display:none;
}

.form-status.is-visible {
  display:block;
  margin-top:20px;
  padding:16px;
  border-radius:12px;
  font-size:.9rem;
}

.form-status.is-success {
  background:#e0f0e7;
  color:#064e33;
}

.form-status.is-error {
  background:#ffeae7;
  color:#8a271d;
}

.btn:disabled {
  cursor:wait;
  opacity:.65;
  transform:none;
}

.legal-hero {
  padding-block:65px 45px;
}

.legal-hero h1 {
  font-size:clamp(2.5rem,5vw,4rem);
  margin-bottom:20px;
}

.legal-layout {
  display:grid;
  grid-template-columns:210px minmax(0,760px);
  gap:65px;
  padding-bottom:90px;
}

.legal-nav {
  position:sticky;
  top:120px;
  align-self:start;
  display:grid;
  gap:10px;
  font-size:.85rem;
}

.legal-nav a {
  padding-block:5px;
  text-decoration:none;
  color:var(--muted);
}

.legal-nav a:hover {
  color:var(--dark);
}

.legal h2 {
  font-size:1.5rem;
  margin:35px 0 16px;
  letter-spacing:-.025em;
}

.legal h3 {
  font-size:1.15rem;
  margin:24px 0 12px;
}

.legal p,.legal li {
  font-size:.96rem;
  color:var(--muted);
}

.legal a {
  color:var(--dark);
}

.legal-notice {
  padding:20px;
  background:var(--pale);
  border-radius:14px;
  font-size:.88rem;
}

.not-found {
  padding:110px 0;
  text-align:center;
  min-height:60vh;
}

.not-found p {
  margin:23px auto;
  max-width:510px;
}

.about-facts {
  display:grid;
  gap:22px;
}

.about-facts>div {
  padding-bottom:22px;
  border-bottom:1px solid var(--line);
}

.about-facts strong {
  display:block;
  margin-bottom:7px;
  font-size:1rem;
}

.about-facts p {
  font-size:.9rem;
}

.app-wordmark {
  width:135px;
  margin-bottom:24px;
}

@keyframes wave {
  from {
    transform:scaleY(.55);
  }
  to {
    transform:scaleY(1);
  }
}

@keyframes arrive {
  from {
    opacity:0;
    transform:translateY(9px);
  }
  to {
    opacity:1;
    transform:translateY(0);
  }
}

@media(min-width:1000px) {
  .hero-copy {
    animation:arrive .7s both;
  }
  .hero-visual {
    animation:arrive .8s .1s both;
  }
}

@media(max-width:1120px) {
  .primary-nav {
    gap:17px;
    font-size:.78rem;
  }
  .brand-name {
    display:none;
  }
  .hero {
    gap:40px;
  }
  .hero-visual {
    padding:25px;
  }
  .grid-4 {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .product-art {
    height:210px;
  }
  .split {
    gap:45px;
  }
  .contact-layout {
    gap:45px;
  }
}

@media(max-width:850px) {
  .primary-nav {
    display:none;
  }
  .mobile-menu {
    display:block;
  }
  .brand-name {
    display:block;
  }
  .nav-shell {
    min-height:76px;
  }
  .hero {
    grid-template-columns:1fr 1fr;
    gap:30px;
    padding-block:48px;
  }
  .hero h1 {
    font-size:3.1rem;
  }
  .hero-visual {
    padding:20px;
    min-height:420px;
  }
  .chat {
    padding:17px;
    font-size:.8rem;
  }
  .conversation-head {
    padding:17px;
  }
  .visual-label {
    font-size:.75rem;
  }
  .grid-3 {
    gap:20px;
  }
  .pricing-card {
    padding:23px;
  }
  .pricing-signal {
    font-size:1.2rem;
  }
  .partner-band {
    padding:35px;
    gap:32px;
  }
  .partner-tile {
    padding:18px;
  }
  .footer-grid {
    gap:30px;
  }
  .section {
    padding-block:65px;
  }
  .contact-layout {
    grid-template-columns:1fr;
    gap:38px;
  }
  .contact-copy {
    max-width:640px;
  }
  .contact-copy .contact-detail {
    display:inline-block;
    margin-right:35px;
  }
  .legal-layout {
    grid-template-columns:1fr;
    gap:25px;
  }
  .legal-nav {
    position:static;
    display:flex;
    flex-wrap:wrap;
    gap:5px 20px;
  }
  .lead-form {
    max-width:740px;
  }
}

@media(max-width:650px) {
  .container {
    width:calc(100% - 40px);
  }
  .nav-shell {
    min-height:72px;
    gap:12px;
  }
  .brand img {
    width:39px;
    height:39px;
  }
  .brand-name {
    font-size:.88rem;
  }
  .brand-name small {
    font-size:.75rem;
  }
  .nav-actions {
    gap:10px;
  }
  .nav-actions>.btn {
    font-size:.75rem;
    padding:10px 15px;
    min-height:39px;
  }
  .mobile-menu summary {
    padding:8px;
  }
  .hero {
    grid-template-columns:1fr;
    gap:36px;
    padding-block:40px;
  }
  .hero h1 {
    font-size:clamp(2.8rem,10.4vw,4.3rem);
  }
  .hero-copy .lede {
    font-size:1.05rem;
  }
  .eyebrow,.kicker {
    font-size:.75rem;
    margin-bottom:17px;
  }
  .hero-copy h1 {
    margin-bottom:19px;
  }
  .actions {
    margin-top:24px;
  }
  .hero-visual {
    min-height:0;
    padding:26px 22px;
    border-radius:25px;
  }
  .visual-label {
    font-size:.75rem;
    margin-bottom:20px;
  }
  .chat {
    padding:21px;
    font-size:.84rem;
  }
  .conversation-head {
    padding:19px;
  }
  .visual-caption {
    font-size:.75rem;
  }
  .hero-note {
    gap:17px;
    align-items:center;
    font-size:.77rem;
    padding:20px 0;
  }
  .hero-note img {
    width:80px;
  }
  .hero-note .note-end {
    display:none;
  }
  .section {
    padding-block:55px;
  }
  .section-head {
    display:block;
    margin-bottom:28px;
  }
  .section-head p {
    margin-top:20px;
  }
  .section-head .text-link {
    margin-top:18px;
  }
  .grid-3,.grid-2 {
    grid-template-columns:1fr;
  }
  .grid-4 {
    gap:14px;
  }
  .product-art {
    height:180px;
    padding:17px;
  }
  .product-copy {
    padding:20px;
  }
  .product-copy h3 {
    font-size:1.1rem;
  }
  .product-copy p {
    font-size:.84rem;
  }
  .product-copy .text-link {
    font-size:.79rem;
  }
  .mini-call {
    padding:13px;
  }
  .mini-call strong {
    font-size:.75rem;
  }
  .mini-call p {
    font-size:.75rem;
  }
  .mini-call .avatar {
    width:30px;
    height:30px;
    border-radius:9px;
  }
  .mini-call .icon {
    width:18px;
  }
  .mini-estate {
    padding:13px;
  }
  .route-mini span {
    font-size:.75rem;
    padding:7px 5px;
  }
  .route-mini .route-branches {
    gap:6px;
  }
  .partner-band {
    padding:29px 24px;
    grid-template-columns:1fr;
    gap:33px;
    border-radius:24px;
  }
  .partner-tile {
    min-height:115px;
  }
  .partner-tile strong {
    font-size:.88rem;
  }
  .partner-band h2 {
    font-size:2rem;
  }
  .cta-band {
    display:block;
    padding:31px 27px;
  }
  .cta-band .btn {
    margin-top:25px;
  }
  .cta-band h2 {
    font-size:2rem;
  }
  .cta-band p {
    font-size:.91rem;
  }
  .split {
    grid-template-columns:1fr;
    gap:35px;
  }
  .footer-grid {
    grid-template-columns:1fr 1fr;
    gap:30px;
  }
  .footer-brand {
    grid-column:1/-1;
  }
  .footer-brand p {
    max-width:310px;
  }
  .footer-bottom {
    flex-direction:column;
    gap:8px;
    margin-top:27px;
    font-size:.75rem;
  }
  .site-footer {
    padding-top:40px;
  }
  .footer-col a {
    font-size:.8rem;
    min-height:24px;
  }
  .step {
    padding:0 0 22px;
  }
  .step-num {
    margin-bottom:17px;
  }
  .step h3 {
    font-size:1.25rem;
  }
  .page-hero {
    padding:48px 0 38px;
  }
  .page-hero h1 {
    font-size:2.75rem;
  }
  .page-hero .lede {
    font-size:1.06rem;
  }
  .feature-grid {
    grid-template-columns:1fr 1fr;
    gap:8px 22px;
  }
  .feature h3 {
    font-size:1.06rem;
  }
  .feature p {
    font-size:.87rem;
  }
  .feature>.icon {
    margin-bottom:16px;
  }
  .vertical-card {
    padding:25px;
  }
  .vertical-card .icon {
    margin-bottom:18px;
  }
  .vertical-card .example {
    margin-top:16px;
  }
  .faq summary {
    font-size:.97rem;
    padding-block:21px;
  }
  .faq details p {
    font-size:.9rem;
  }
  .app-preview {
    max-width:300px;
  }
  .app-preview h3 {
    font-size:1.5rem;
  }
  .estate-tiles>div {
    padding:13px;
  }
  .estate-top {
    padding:17px;
  }
  .estate-body {
    padding:20px;
  }
  .estate-top small {
    font-size:.75rem;
  }
  .table-hint {
    display:block;
  }
  .compare {
    font-size:.83rem;
    min-width:600px;
  }
  .compare th,.compare td {
    padding:17px 20px;
  }
  .pricing-card {
    padding:27px;
  }
  .pricing-signal {
    font-size:1.4rem;
    margin-top:22px;
  }
  .contact-layout {
    padding-block:42px 55px;
  }
  .contact-copy h1 {
    font-size:2.8rem;
  }
  .contact-copy .contact-detail {
    margin:25px 20px 0 0;
  }
  .lead-form {
    padding:23px;
  }
  .form-grid {
    grid-template-columns:1fr;
    gap:17px;
  }
  .field-full {
    grid-column:auto;
  }
  .lead-form>p {
    margin-bottom:23px;
  }
  .contact-copy .lede {
    font-size:1.05rem;
  }
  .legal-hero {
    padding-block:45px 30px;
  }
  .legal-layout {
    padding-bottom:55px;
  }
  .legal-nav {
    font-size:.78rem;
  }
  .legal p,.legal li {
    font-size:.9rem;
  }
  .legal h2 {
    font-size:1.3rem;
  }
  .hero .store-badge {
    min-width:137px;
    padding:10px 14px;
  }
  .hero .store-badge strong {
    font-size:.89rem;
  }
}

@media(max-width:370px) {
  .container {
    width:calc(100% - 32px);
  }
  .brand-name {
    display:none;
  }
  .grid-4 {
    grid-template-columns:1fr;
  }
  .product-art {
    height:190px;
  }
  .feature-grid {
    grid-template-columns:1fr;
  }
  .hero h1 {
    font-size:2.65rem;
  }
  .btn {
    padding-inline:19px;
  }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  *,*:before,*:after {
    animation:none!important;
    transition:none!important;
  }
  ::view-transition-old(root),::view-transition-new(root) {
    animation:none!important;
  }
}

@media(min-width:651px) and (max-width:850px) {
  .hero {
    grid-template-columns:1fr;
    gap:40px;
  }
  .hero-copy {
    max-width:620px;
  }
  .hero h1 {
    font-size:3.6rem;
  }
  .hero-visual {
    max-width:560px;
    width:100%;
    justify-self:center;
    min-height:440px;
  }
  .chat {
    font-size:.9rem;
  }
  .visual-label {
    font-size:.75rem;
  }
}

.nav-actions {
  flex-shrink:0;
}

.nav-actions>.btn {
  white-space:nowrap;
}

.mobile-menu summary {
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
}

.mobile-menu .icon {
  width:22px;
  height:22px;
}

@media(max-width:650px) {
  .site-header .brand-name small {
    display:none;
  }
  .nav-actions>.btn {
    min-height:44px;
  }
  .site-header .brand-name {
    max-width:105px;
  }
  .site-header .brand {
    gap:7px;
  }
}

.mobile-panel {
  max-height:calc(100dvh - 72px);
  overflow-y:auto;
}


@media (min-width: 651px) {
  .pricing-card h2 + p { min-height: 3.2em; }
  .pricing-signal + p { min-height: 4.8em; }
}
/* Native dropdowns: keyboard, Escape and outside-click handling need no script. */
.primary-nav { gap: 8px; }
.primary-nav > a, .nav-trigger {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  padding: 13px 17px; border: 0; border-radius: 99px; background: transparent;
  color: var(--muted); font-size: .86rem; font-weight: 550; line-height: 1.2;
  text-decoration: none; transition: color .2s, background .2s;
}
.primary-nav > a::after { display: none; }
.primary-nav > a:hover, .primary-nav > a[aria-current], .nav-trigger:hover,
.primary-nav:has(#products-menu:popover-open) [popovertarget="products-menu"],
.primary-nav:has(#company-menu:popover-open) [popovertarget="company-menu"] {
  background: var(--pale); color: var(--dark);
}
.nav-caret { width: 6px; height: 6px; border-right: 1.5px solid; border-bottom: 1.5px solid; transform: translateY(-2px) rotate(45deg); transition: transform .25s; }
.primary-nav:has(#products-menu:popover-open) [popovertarget="products-menu"] .nav-caret,
.primary-nav:has(#company-menu:popover-open) [popovertarget="company-menu"] .nav-caret { transform: translateY(1px) rotate(225deg); }
.nav-popover {
  position: fixed; inset: 100px auto auto 50%; margin: 0; width: min(690px,calc(100vw - 48px));
  max-height: calc(100dvh - 125px); overflow: auto; padding: 23px; border: 1px solid var(--line);
  border-radius: 24px; background: white; color: var(--ink); box-shadow: 0 20px 70px #153f3026;
  opacity: 0; transform: translate(-50%,-10px);
  transition: opacity .2s, transform .25s, display .25s allow-discrete, overlay .25s allow-discrete;
}
.nav-popover:popover-open { opacity: 1; transform: translate(-50%,0); }
@starting-style { .nav-popover:popover-open { opacity: 0; transform: translate(-50%,-10px); } }
.nav-popover::backdrop { background: transparent; }
.nav-product-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 0 2px 19px; }
.nav-product-heading strong { font-size: 1.3rem; letter-spacing: -.035em; font-weight: 600; }
.nav-product-heading > span { font-size: .75rem; color: var(--muted); }
.nav-product-links { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.nav-product-card {
  display: flex; position: relative; flex-direction: column; gap: 10px; min-height: 180px;
  padding: 19px; border: 1px solid var(--line); border-radius: 16px; background: #f8faf9;
  text-decoration: none; transition: background .2s, border-color .2s, transform .25s;
}
.nav-product-card > .icon { color: var(--green); margin-bottom: 15px; }
.nav-product-card strong { font-size: .96rem; letter-spacing: -.02em; }
.nav-product-card small { font-size: .8rem; color: var(--muted); line-height: 1.5; }
.nav-card-arrow { position: absolute; right: 19px; top: 18px; color: var(--dark); }
.nav-product-card:hover, .nav-product-card[aria-current] { background: var(--pale); border-color: #a9cdbb; transform: translateY(-3px); }
.company-popover { width: min(465px,calc(100vw - 48px)); }
.company-popover .nav-product-links { grid-template-columns: 1fr 1fr; }
.company-popover .nav-product-card { min-height: 154px; }
.nav-login { display: block; padding: 17px 2px 0; color: var(--dark); font-size: .8rem; text-decoration: none; }
/* Smaller version of the original moving card reel. */
.feature-reel { padding: 65px 0 60px; background: var(--pale); overflow: hidden; border-block: 1px solid #dcebe3; }
.reel-heading { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 30px; }
.reel-heading h2 { font-size: clamp(1.85rem,3.4vw,2.75rem); max-width: 700px; }
.reel-heading .kicker { margin-bottom: 14px; }
.reel-pause { display: inline-flex; flex-shrink: 0; gap: 9px; align-items: center; padding: 9px 13px; border: 1px solid #cadfd3; border-radius: 99px; background: #ffffffa3; font-size: .75rem; color: #40594d; cursor: pointer; }
.reel-pause input, .motion-control input { accent-color: var(--green); margin: 0; width: 14px; height: 14px; }
.reel-viewport { overflow: hidden; padding: 5px max(20px,calc((100vw - 1200px) / 2)) 12px; mask-image: linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent); }
.reel-track { display: flex; width: max-content; animation: feature-reel 42s linear infinite; }
.reel-group { display: flex; flex: none; gap: 16px; padding-right: 16px; }
.reel-card { display: flex; flex-direction: column; width: clamp(250px,24vw,310px); min-height: 215px; padding: 25px; background: white; border: 1px solid #d4e4da; border-radius: 22px; box-shadow: 0 3px 6px #14452b03; transition: transform .3s,box-shadow .3s; }
.reel-card:hover { transform: translateY(-4px); box-shadow: 0 12px 25px #14452b10; }
.reel-card-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 32px; color: var(--green); }
.reel-card-top > span { font-size: .75rem; letter-spacing: .04em; }
.reel-card h3 { font-size: 1.3rem; letter-spacing: -.03em; margin-top: auto; margin-bottom: 10px; }
.reel-card p { font-size: .875rem; line-height: 1.55; }
.feature-reel:hover .reel-track, .feature-reel:focus-within .reel-track { animation-play-state: paused; }
.feature-reel:has(.reel-pause input:checked) .reel-track { animation: none; }
.feature-reel:has(.reel-pause input:checked) .reel-viewport { overflow-x: auto; mask-image: none; scrollbar-width: thin; scroll-snap-type: x proximity; }
.feature-reel:has(.reel-pause input:checked) .reel-group[aria-hidden] { display: none; }
.reel-card { scroll-snap-align: center; }
@keyframes feature-reel { to { transform: translateX(-50%); } }
/* Continuous preview motion can be paused locally; body copy never moves. */
.hero-visual { padding-bottom: 62px; }
.motion-control { display: flex; align-items: center; justify-content: center; gap: 7px; position: absolute; bottom: 16px; right: 24px; color: #40594d; font-size: .75rem; cursor: pointer; }
.hero-visual .wave i { animation-iteration-count: infinite; }
.hero-visual .dot { animation: status-breathe 3s ease-in-out infinite; }
.hero-visual .app-preview, .hero-visual .estate-window { animation: preview-float 6s ease-in-out infinite; }
.hero-visual .outcome > .icon { animation: outcome-nod 5s ease-in-out infinite; }
.hero-visual .route-arrow { animation: routing-flow 3s ease-in-out infinite; }
.hero-visual .route-arrow:nth-of-type(4) { animation-delay: .45s; }
.hero-visual:has(.pause-visual:checked) * { animation-play-state: paused !important; }
.feature > .icon, .partner-tile > .icon, .step-num { transition: transform .3s, background .3s; }
.feature:hover > .icon, .partner-tile:hover > .icon { transform: translateY(-3px) rotate(-5deg); }
.step:hover .step-num { transform: translateY(-3px); background: var(--pale); }
.btn .icon { transition: transform .22s; }
.btn:hover .icon { transform: translateX(3px); }
@keyframes status-breathe { 50% { box-shadow: 0 0 0 4px #00875712; } }
@keyframes preview-float { 50% { transform: translateY(-7px); } }
@keyframes outcome-nod { 0%,75%,100% { transform: scale(1); } 85% { transform: scale(1.12); } }
@keyframes routing-flow { 50% { transform: translateY(3px); opacity: .6; } }
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .section-head, .product-card, .feature, .step, .partner-band, .cta-band, .pricing-card {
      animation: enter-view both;
      animation-timeline: view();
      animation-range: entry 0% entry 90%;
    }
  }
}
@keyframes enter-view { from { opacity: .5; translate: 0 22px; } to { opacity: 1; translate: 0 0; } }
@media (max-width:1120px) { .primary-nav > a, .nav-trigger { padding-inline: 14px; font-size: .83rem; } }
@media (max-width:850px) { .nav-popover { display: none; } }
@media (max-width:650px) {
  .feature-reel { padding-block: 43px; }
  .reel-heading { display: block; }
  .reel-pause { margin-top: 20px; }
  .reel-card { width: 255px; min-height: 205px; padding: 23px; }
  .reel-card-top { margin-bottom: 25px; }
  .reel-viewport { padding-inline: 20px; }
  .motion-control { right: 22px; font-size: .75rem; }
}
@media (prefers-reduced-motion:reduce) {
  .reel-track { animation: none; }
  .reel-viewport { overflow-x: auto; mask-image: none; scrollbar-width: thin; scroll-snap-type: x proximity; }
  .reel-group[aria-hidden] { display: none; }
  .motion-control, .reel-pause { display: none; }
  .hero-visual { padding-bottom: 32px; }
}

/* A visual language of signals, paths and conversations. */
:root { --radius: 18px; }
h1, h2 { font-weight: 620; letter-spacing: -.065em; }
.eyebrow, .kicker { letter-spacing: .08em; }
.section { padding-block: 100px; }
.section-head { margin-bottom: 48px; }
.section-head h2 { font-size: clamp(2.3rem, 4.1vw, 3.6rem); }
.section-soft { background: #f4f5f7; }
.feature p, .product-copy p, .step p, .reel-card p { font-size: 1rem; }
.hero-copy .lede { font-size: 1.13rem; max-width: 470px; }
.home-heading { display: grid; grid-template-columns: 1.55fr 1fr; gap: 64px; align-items: end; padding-block: 62px 48px; }
.home-heading h1 { font-size: clamp(4rem, 7.2vw, 6.75rem); line-height: .98; }
.home-heading .eyebrow { margin-bottom: 26px; }
.home-intro { padding-bottom: 4px; max-width: 425px; }
.home-intro .lede { color: var(--ink); font-size: 1.24rem; line-height: 1.5; }
.home-intro > p + p { margin-top: 14px; }
.home-intro .actions { gap: 18px; margin-top: 24px; }
.home-intro .text-link { font-size: .85rem; }
.home-opening { overflow: hidden; }
.call-film { position: relative; background: #edf3ef; border-block: 1px solid #d7e5dc; isolation: isolate; }
.signal-lines { position: absolute; inset: 0; width: 100%; height: 100%; color: #afcabc; pointer-events: none; z-index: -1; }
.signal-lines g { stroke-width: 1; }
.signal-travel { stroke: var(--green); stroke-width: 3; stroke-dasharray: 80 2100; animation: signal-travel 11s linear infinite; }
.film-heading, .film-footer { display: flex; align-items: center; justify-content: space-between; gap: 24px; position: relative; }
.film-heading { padding-top: 18px; font-size: .83rem; font-weight: 550; }
.film-heading > span { display: flex; align-items: center; gap: 9px; }
.film-heading .reel-pause { margin: 0; background: #ffffffb3; min-height: 36px; }
.film-viewport { overflow: hidden; padding-block: 30px 24px; mask-image: linear-gradient(90deg, transparent, #000 3%, #000 97%, transparent); }
.film-track { display: flex; width: max-content; animation: call-film 38s linear infinite; }
.film-group { display: flex; flex: none; align-items: center; gap: 32px; padding-right: 32px; }
.call-frame { width: 300px; height: 236px; padding: 22px 26px; background: #fff; border: 1px solid #d4dfd7; border-radius: 16px; box-shadow: 0 10px 18px -12px #153b332f; position: relative; }
.call-frame::after { content: '↗'; position: absolute; right: -29px; top: 47%; color: var(--green); font-size: 21px; }
.frame-index { display: block; color: #52635b; font-size: .75rem; margin-bottom: 14px; }
.call-frame > strong { display: block; font-size: 1.35rem; line-height: 1.2; letter-spacing: -.04em; }
.call-frame p { font-size: .86rem; margin-top: 8px; }
.frame-ring { transform: rotate(-3deg); }
.ring-mark { width: 51px; height: 51px; border-radius: 50%; display: grid; place-items: center; color: var(--dark); background: #e4f3e9; margin: 22px 0; position: relative; }
.ring-mark::before, .ring-mark::after { content: ''; position: absolute; inset: 0; border: 1px solid var(--green); border-radius: inherit; animation: ring-out 3s ease-out infinite; }
.ring-mark::after { animation-delay: 1.5s; }
.frame-chat { width: 350px; height: 260px; transform: rotate(2deg); }
.film-bubble { font-size: .95rem; border-radius: 12px 12px 12px 2px; background: var(--surface); padding: 11px 14px; width: fit-content; margin-bottom: 9px; }
.film-bubble.reply { margin-left: auto; border-radius: 12px 12px 2px 12px; background: #e5f2e9; }
.frame-chat .wave { height: 27px; margin: 12px 0 5px; justify-content: center; }
.frame-chat .wave i { animation-iteration-count: infinite; width: 4px; }
.frame-chat > small { display: block; text-align: center; color: var(--muted); font-size: .75rem; }
.frame-book { transform: rotate(-2deg); width: 270px; background: #fffef9; }
.booking-day { display: flex; align-items: center; gap: 15px; border-bottom: 1px dashed #c9d8cf; margin: 20px 0 16px; padding-bottom: 16px; }
.booking-day > span { font-size: .75rem; border: 1px solid #ccdacf; padding: 11px 8px; border-radius: 7px; color: var(--dark); }
.booking-day strong { font-size: 2.9rem; letter-spacing: -.07em; line-height: 1; }
.booking-confirm { display: flex; align-items: center; gap: 9px; font-size: .94rem; }
.booking-confirm > span { color: var(--green); }
.frame-team { width: 300px; transform: rotate(3deg); }
.team-faces { display: flex; margin: 22px 0 18px; padding-left: 5px; }
.team-faces span { display: grid; place-items: center; width: 41px; height: 41px; margin-left: -5px; border: 3px solid #fff; border-radius: 50%; background: #dce8e0; color: #355240; font-size: .85rem; }
.team-faces span:nth-child(2) { background: #e9e7db; }
.team-faces span:nth-child(3) { background: #e0e7f0; }
.frame-team > strong { font-size: 1.12rem; }
.handover-line { display: flex; align-items: center; justify-content: space-between; margin-top: 15px; color: var(--dark); font-size: .75rem; }
.handover-line .icon { width: 17px; }
.film-footer { padding-block: 6px 18px; font-size: .75rem; color: #486052; }
.call-film:has(#pause-home:checked) *, .call-film:has(#pause-home:checked) *::before, .call-film:has(#pause-home:checked) *::after { animation-play-state: paused !important; }
.call-film:has(#pause-home:checked) .film-track { animation: none; }
.call-film:has(#pause-home:checked) .film-viewport { overflow-x: auto; mask-image: none; scrollbar-width: thin; }
.call-film:has(#pause-home:checked) .film-group[aria-hidden] { display: none; }
.call-film:focus-within .film-track { animation-play-state: paused; }
.page-home .hero-note { border-top: 0; padding-block: 21px; }

/* Product collection: two illustrated leads, then two short editorial links. */
.product-directory { display: grid; grid-template-columns: 1.15fr 1fr; gap: 24px 40px; }
.product-directory .product-card { border: 0; border-radius: 0; position: relative; overflow: visible; box-shadow: none; }
.product-directory .product-card:hover { transform: none; }
.product-directory .product-art { height: 285px; border-radius: 16px; transition: border-radius .4s; }
.product-directory .product-card:hover .product-art { border-radius: 40px 16px 40px 16px; }
.product-directory .product-copy { position: relative; padding: 27px 0 32px 42px; }
.product-number { position: absolute; top: 32px; left: 0; color: var(--muted); font-size: .75rem; }
.product-directory h3 { font-size: 1.8rem; }
.product-directory .product-copy p { max-width: 380px; margin-top: 12px; }
.product-directory .product-copy .text-link { margin-top: 16px; }
.product-directory .mini-call { max-width: 305px; transform: rotate(-4deg); padding: 26px; transition: transform .4s; }
.product-directory .product-card:hover .mini-call { transform: rotate(0) translateY(-5px); }
.product-directory .mini-call strong { font-size: 1rem; }
.product-directory .mini-call .wave { height: 45px; }
.product-directory .mini-call .wave i { height: 22px; width: 5px; }
.product-directory .mini-call .wave i:nth-child(2n) { height: 40px; }
.product-directory .mini-call p { font-size: .85rem; }
.product-directory .product-card:nth-child(1) .product-art { background: repeating-radial-gradient(ellipse at 100% 100%, transparent 0 25px, #bfd6c6 26px 27px, transparent 28px 52px), #e7f0e9; }
.product-directory .product-card:nth-child(2) .product-art { background: #e5e9f0; color: #273e59; }
.pulse-art { width: 100%; }
.pulse-art strong { display: flex; align-items: center; gap: 15px; font-size: 6rem; line-height: 1; letter-spacing: -.085em; font-weight: 550; }
.pulse-art strong span { display: inline-block; font-size: 3.8rem; font-weight: 350; transition: transform .4s; }
.product-card:hover .pulse-art strong span { transform: translate(8px,-8px); }
.pulse-art small { font-size: .88rem; }
.product-directory .product-card:nth-child(n+3) { display: grid; grid-template-columns: 120px 1fr; align-items: center; border-block: 1px solid var(--line); gap: 24px; }
.product-directory .product-card:nth-child(n+3) .product-art { height: 120px; padding: 15px; }
.product-directory .product-card:nth-child(n+3) .product-copy { padding-block: 30px; }
.product-directory .product-card:nth-child(n+3) h3 { font-size: 1.5rem; }
.product-directory .route-mini span { padding: 5px; font-size: .6rem; }
.product-directory .route-mini .route-branches { gap: 3px; }
.product-directory .mini-estate { padding: 10px; }
.product-directory .mini-estate strong { font-size: .75rem; }
.product-directory .mini-estate .mini-line { margin-top: 8px; height: 5px; }
.product-directory .mini-estate small { display: none; }

/* Large moving geometry frames product-specific content. */
.hero { gap: 62px; padding-block: 65px 76px; }
.hero h1 { font-size: clamp(3.4rem, 5.3vw, 5rem); line-height: 1.02; }
.hero-visual { min-height: 540px; border-radius: 0; isolation: isolate; }
.hero-visual > .visual-label, .hero-visual > .motion-control, .hero-visual > .visual-caption { z-index: 3; }
.hero-visual .motion-control { background: #fffffff2; border: 1px solid #d3ddd6; border-radius: 99px; padding: 7px 11px; right: 16px; bottom: 13px; min-height: 34px; }
.voice-stage { background: #eef3ef; padding-top: 105px; overflow: hidden; }
.voice-caption { position: absolute; top: 2px; left: 18px; font-size: 7.8rem; letter-spacing: -.09em; font-weight: 570; line-height: 1; color: #c5d7cb; }
.voice-stage .visual-label { margin: 0 0 12px; }
.voice-stage .visual-label > span:first-child { display: none; }
.voice-stage .visual-label > span:last-child { margin-left: auto; }
.voice-rings { position: absolute; inset: 0; z-index: -1; }
.voice-rings i { position: absolute; width: 540px; height: 540px; border: 1px solid #9fbdab; border-radius: 50%; left: 50%; top: 50%; transform: translate(-50%,-50%) scale(.4); opacity: 0; animation: voice-ring 10s linear infinite; }
.voice-rings i:nth-child(2) { animation-delay: -2s; }
.voice-rings i:nth-child(3) { animation-delay: -4s; }
.voice-rings i:nth-child(4) { animation-delay: -6s; }
.voice-rings i:nth-child(5) { animation-delay: -8s; }
.voice-stage .conversation { transform: rotate(-3deg); border-radius: 17px; }
.voice-stage .conversation-head { padding: 17px 22px; }
.voice-stage .chat { gap: 13px; padding: 20px; }
.voice-stage .bubble { animation: none; }
.voice-stage .wave { width: 60px; overflow: hidden; }
.voice-stage .outcome { animation: booking-highlight 7s ease-in-out infinite; }
.voice-stage .visual-caption { margin-top: 19px; }
.pulse-visual { background: #e6ebf1; min-height: 610px; padding-top: 77px; }
.pulse-type { position: absolute; top: 12px; left: -10px; font-size: clamp(8rem,15vw,14rem); font-weight: 600; letter-spacing: -.09em; line-height: 1; color: #c5d1de; z-index: -1; transform: rotate(-9deg); }
.pulse-orbits { position: absolute; inset: 0; z-index: -2; overflow: hidden; }
.pulse-orbits i { position: absolute; width: 630px; height: 325px; border: 1px solid #93a7bc; border-radius: 50%; left: 50%; top: 55%; transform: translate(-50%,-50%) rotate(-35deg); }
.pulse-orbits i:nth-child(2) { width: 690px; height: 385px; }
.pulse-orbits i:nth-child(3) { width: 750px; height: 445px; }
.pulse-orbits i:nth-child(4) { width: 810px; height: 505px; }
.pulse-orbits i::after { content: ''; position: absolute; width: 12px; height: 12px; border-radius: 50%; background: var(--green); left: calc(50% - 6px); top: -6px; transform-origin: 6px 169px; animation: orbit-signal 12s linear infinite; }
.pulse-orbits i:nth-child(2)::after { transform-origin: 6px 199px; animation-delay: -3s; }
.pulse-orbits i:nth-child(3)::after { transform-origin: 6px 229px; animation-delay: -6s; }
.pulse-orbits i:nth-child(4)::after { transform-origin: 6px 259px; animation-delay: -9s; }
.pulse-visual .visual-label { margin-bottom: 18px; font-size: .75rem; }
.pulse-visual .visual-label > span:first-child { display: none; }
.pulse-visual .visual-label > span:last-child { margin-left: auto; }
.pulse-visual .app-preview { width: min(310px, 100%); transform: rotate(4deg); box-shadow: 18px 25px 0 -10px #becbd9, 0 24px 50px -30px #17354c75; border: 1px solid #b5c4d0; border-radius: 27px; animation: app-sway 8s ease-in-out infinite; }
.product-label { display: flex; align-items: center; gap: 12px; color: var(--ink); font-size: 1rem; }
.product-label > span { border-left: 1px solid #c6cdd3; padding-left: 12px; color: var(--muted); font-size: .75rem; font-weight: 450; }
.page-pulse .hero h1 { font-size: clamp(3.4rem, 6vw, 5.5rem); }
.page-pulse .hero-copy .actions { margin-top: 26px; }
.page-pulse .store-note { max-width: 360px; }
.page-pulse #pulse-features .feature-grid { gap: 40px; }
.page-pulse #pulse-features .feature { border-top: 0; padding-top: 0; }
.page-pulse #pulse-features .feature > .icon { width: 45px; height: 45px; stroke-width: 1.1; background: transparent; padding: 0; margin-bottom: 40px; }
.page-pulse #pulse-features h3 { font-size: 1.7rem; max-width: 250px; }
.route-stage { background: #eef1f0; }
.route-stage .signal-lines { width: 190%; left: -50%; color: #a9beb2; }
.route-stage .routing-board { background: #fffffff5; box-shadow: 0 12px 40px #163a2915; transform: rotate(-2deg); }
.route-stage .route-node { position: relative; }
.route-stage .route-node.active { animation: node-highlight 6s ease-in-out infinite; }
.route-stage .routing-board > .route-node:not(.active) { animation: node-highlight 6s 1.5s ease-in-out infinite; }
.route-stage .route-fork .route-node:first-child { animation: node-highlight 6s 3s ease-in-out infinite; }
.estate-visual { background: #edf0eb; padding-top: 92px; min-height: 550px; }
.estate-grid { position: absolute; inset: -80px; z-index: -2; background-image: linear-gradient(#ced8cf 1px, transparent 1px), linear-gradient(90deg,#ced8cf 1px,transparent 1px); background-size: 48px 48px; transform: rotate(-12deg); animation: estate-grid 14s linear infinite; }
.estate-brand-word { position: absolute; left: 20px; top: 18px; font-size: 3.5rem; font-weight: 600; letter-spacing: -.07em; line-height: 1.05; color: #a1b7a7; }
.estate-visual .estate-window { box-shadow: 12px 12px 0 -3px #d2ddcf, 22px 22px 0 -6px #e3e9df; border: 1px solid #aabcad; border-radius: 12px; animation: estate-sway 10s ease-in-out infinite; }
.estate-visual .visual-label > span:first-child { display: none; }
.estate-visual .visual-label > span:last-child { margin-left: auto; }
.estate-visual .visual-caption { margin-top: 32px; }
.hero-visual:has(.pause-visual:checked) *::before, .hero-visual:has(.pause-visual:checked) *::after { animation-play-state: paused !important; }

/* More variation in scale and rhythm beyond the opening screen. */
.feature-reel { background: #e8eee9; position: relative; }
.reel-card { border-radius: 14px; border-color: #cdd9d0; }
.reel-card:nth-child(even) { background: #f7f8f4; }
.reel-card-top > .icon { width: 32px; height: 32px; stroke-width: 1.3; }
.reel-card-top > span { font-size: 1rem; }
.feature-reel .reel-track { animation-duration: 34s; }
.feature-reel:hover .reel-track { animation-play-state: running; }
.feature-reel:focus-within .reel-track { animation-play-state: paused; }
.step-num { font-size: 3.4rem; line-height: 1; letter-spacing: -.07em; color: var(--green); background: transparent; width: auto; height: auto; border: 0; border-radius: 0; justify-content: start; margin-bottom: 28px; }
.step:hover .step-num { background: transparent; }
.step { padding-right: 36px; }
.partner-band { position: relative; background: white; border: 1px solid #c6d8cc; border-radius: 0; padding: 55px; overflow: hidden; }
.partner-band::before { content: ''; position: absolute; right: -180px; top: -200px; width: 750px; height: 750px; border-radius: 50%; background: repeating-radial-gradient(circle, transparent 0 31px, #dbe6de 32px 33px, transparent 34px 64px); z-index: 0; }
.partner-band > div { position: relative; }
.partner-band h2 { font-size: clamp(2.4rem,4vw,3.6rem); }
.partner-tile { background: #f0f5f0; border: 1px solid #d3ded5; border-radius: 12px; }
.partner-tile:nth-child(2), .partner-tile:nth-child(4) { transform: translateY(22px); }
.cta-band { border-radius: 0; padding: 58px; position: relative; isolation: isolate; overflow: hidden; background: var(--dark); }
.cta-band::before { content: ''; position: absolute; width: 480px; height: 480px; border: 1px solid #ffffff29; border-radius: 50%; right: -60px; top: -200px; box-shadow: 0 0 0 35px #ffffff0a,0 0 0 70px #ffffff08,0 0 0 105px #ffffff06; z-index: -1; }
.cta-band h2 { max-width: 660px; font-size: clamp(2.2rem,4vw,3.5rem); }
.page-pricing .page-hero h1 { font-size: clamp(3rem,7vw,6rem); }
.page-pricing .pricing-card { border-radius: 12px; }
.site-footer { border-top: 1px solid var(--line); }
@keyframes call-film { to { transform: translateX(-50%); } }
@keyframes signal-travel { to { stroke-dashoffset: -2180; } }
@keyframes ring-out { 0% { transform: scale(1); opacity: .5; } 100% { transform: scale(1.85); opacity: 0; } }
@keyframes voice-ring { 0% { transform: translate(-50%,-50%) scale(.35); opacity: 0; } 20% { opacity: .65; } 100% { transform: translate(-50%,-50%) scale(1.5); opacity: 0; } }
@keyframes app-sway { 0%,100% { transform: rotate(4deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-10px); } }
@keyframes orbit-signal { to { transform: rotate(360deg); } }
@keyframes estate-grid { to { transform: rotate(-12deg) translate(48px,48px); } }
@keyframes estate-sway { 0%,100% { transform: perspective(900px) rotateY(-5deg) rotate(-1deg); } 50% { transform: perspective(900px) rotateY(4deg) rotate(1deg) translateY(-7px); } }
@keyframes booking-highlight { 0%,40%,100% { background: #f0f8f3; } 65%,80% { background: #c7ead6; } }
@keyframes node-highlight { 0%,25%,100% { border-color: #d4dfd7; box-shadow: none; } 10%,18% { border-color: var(--green); box-shadow: 0 0 0 3px #00875715; } }

@media (min-width: 1400px) {
  .home-heading { grid-template-columns: 1.6fr 1fr; gap: 58px; }
}
@media (max-width: 1120px) {
  .home-heading { gap: 40px; grid-template-columns: 1.3fr 1fr; }
  .home-heading h1 { font-size: 6.8vw; }
  .hero { gap: 38px; }
  .hero h1 { font-size: 4rem; }
  .hero-visual { min-height: 520px; }
  .pulse-visual { min-height: 595px; }
  .product-directory { gap: 24px; }
  .product-directory .product-card:nth-child(n+3) { grid-template-columns: 85px 1fr; gap: 18px; }
  .product-directory .product-card:nth-child(n+3) .product-art { padding: 7px; height: 100px; }
}
@media (max-width: 850px) {
  .home-heading { grid-template-columns: 1fr; gap: 27px; padding-block: 44px 38px; }
  .home-heading h1 { font-size: clamp(3.3rem,9.2vw,5.8rem); }
  .home-heading .eyebrow { margin-bottom: 22px; }
  .home-intro { max-width: 620px; }
  .home-intro .lede { font-size: 1.17rem; }
  .hero { grid-template-columns: 1fr; gap: 38px; padding-block: 45px 50px; }
  .hero h1, .page-pulse .hero h1 { font-size: clamp(3.3rem,8vw,4.9rem); }
  .hero-visual { width: 100%; max-width: 100%; }
  .hero-visual .conversation { width: min(440px,100%); margin-inline: auto; }
  .voice-stage { min-height: 560px; }
  .voice-stage .visual-label { max-width: 440px; width: 100%; margin-inline: auto; }
  .voice-caption { font-size: 9rem; left: 35px; }
  .pulse-type { font-size: 13rem; left: 25px; }
  .pulse-visual { min-height: 590px; }
  .pulse-visual .visual-label { width: 310px; max-width: 100%; margin-inline: auto; }
  .route-stage .routing-board { width: min(440px,100%); margin-inline: auto; }
  .estate-visual .estate-window { width: min(470px,100%); margin-inline: auto; }
  .estate-visual .visual-label { width: min(470px,100%); margin-inline: auto; }
  .product-directory .product-art { height: 230px; }
  .pulse-art strong { font-size: 4.8rem; }
  .product-directory .product-card:nth-child(n+3) { display: block; }
  .product-directory .product-card:nth-child(n+3) .product-art { display: none; }
  .section { padding-block: 65px; }
  .partner-band { padding: 38px; }
  .page-pulse #pulse-features .feature-grid { gap: 25px; }
  .page-pulse #pulse-features h3 { font-size: 1.4rem; }
}
@media (max-width: 650px) {
  .home-heading { padding-top: 34px; gap: 23px; }
  .home-heading h1 { font-size: clamp(2.8rem,10.2vw,4.5rem); }
  .home-heading .eyebrow { font-size: .69rem; margin-bottom: 23px; }
  .home-intro .lede { font-size: 1.09rem; max-width: 340px; }
  .home-intro > p + p { font-size: .94rem; margin-top: 11px; }
  .home-intro .actions { gap: 18px; margin-top: 22px; }
  .home-intro .btn { padding-inline: 18px; font-size: .83rem; }
  .film-heading { font-size: .75rem; gap: 8px; padding-top: 13px; }
  .film-heading .reel-pause { font-size: .69rem; padding: 7px 9px; min-height: 35px; }
  .film-viewport { padding-block: 25px; mask-image: none; }
  .film-track { animation-duration: 44s; }
  .film-group { gap: 23px; padding-right: 23px; }
  .call-frame { width: 242px; height: 220px; padding: 19px 22px; }
  .call-frame::after { right: -23px; font-size: 17px; }
  .frame-chat { width: 288px; height: 243px; }
  .film-bubble { font-size: .85rem; }
  .frame-book { width: 242px; }
  .frame-team { width: 256px; }
  .ring-mark { margin-block: 17px; }
  .call-frame > strong { font-size: 1.2rem; }
  .frame-team > strong { font-size: 1rem; }
  .call-frame p { font-size: .8rem; }
  .film-footer { font-size: .69rem; padding-bottom: 15px; }
  .film-footer > span:last-child { display: none; }
  .section { padding-block: 55px; }
  .section-head { margin-bottom: 30px; }
  .section-head h2 { font-size: 2.25rem; }
  .product-directory { grid-template-columns: 1fr; gap: 12px; }
  .product-directory .product-art { height: 245px; }
  .product-directory .product-copy { padding-block: 22px 32px; }
  .product-number { top: 26px; }
  .product-directory .product-card:nth-child(n+3) { border-bottom: 0; }
  .product-directory .product-card:nth-child(n+3) .product-copy { padding-block: 25px; }
  .product-directory .product-card:nth-child(n+3) h3 { font-size: 1.5rem; }
  .product-directory .product-copy p { margin-top: 9px; }
  .product-directory .product-copy .text-link { font-size: .88rem; }
  .pulse-art strong { font-size: 5.9rem; }
  .hero { gap: 34px; padding-block: 36px 45px; }
  .hero h1, .page-pulse .hero h1 { font-size: clamp(2.65rem,11.3vw,4.3rem); }
  .hero-copy .lede { font-size: 1.05rem; }
  .hero-visual { min-height: 0; padding-bottom: 60px; }
  .voice-stage { padding-top: 100px; }
  .voice-caption { left: 12px; font-size: 7.3rem; }
  .voice-stage .chat { padding: 16px; gap: 11px; }
  .voice-stage .conversation-head { padding: 15px; gap: 10px; }
  .voice-stage .conversation-head .wave { width: 42px; }
  .voice-stage .bubble { max-width: 96%; font-size: .83rem; padding: 12px; }
  .voice-stage .outcome { margin: 0 13px 13px; padding: 11px; font-size: .75rem; }
  .voice-stage .visual-caption { font-size: .7rem; gap: 6px; }
  .voice-rings i { width: 420px; height: 420px; }
  .pulse-visual { min-height: 590px; padding-top: 95px; padding-bottom: 98px; }
  .pulse-type { left: -6px; top: 6px; font-size: 10rem; }
  .pulse-visual .app-preview { max-width: 270px; }
  .page-pulse #pulse-features .feature-grid { grid-template-columns: 1fr; gap: 20px; }
  .page-pulse #pulse-features .feature { padding-bottom: 28px; border-bottom: 1px solid var(--line); }
  .page-pulse #pulse-features .feature > .icon { width: 36px; height: 36px; margin-bottom: 18px; }
  .page-pulse #pulse-features h3 { max-width: 290px; font-size: 1.65rem; }
  .route-stage { padding-top: 26px; }
  .estate-visual { padding-top: 90px; }
  .estate-brand-word { font-size: 2.9rem; top: 17px; left: 16px; }
  .estate-visual .estate-tiles { gap: 9px; }
  .estate-visual .estate-body { padding: 16px; }
  .estate-visual .estate-heading h3 { font-size: 1.25rem; }
  .estate-visual .estate-top { gap: 10px; }
  .estate-visual .estate-top strong { font-size: 1rem; }
  .estate-visual .estate-top small { font-size: .65rem; }
  .partner-band { padding: 29px 25px 50px; }
  .partner-band h2 { font-size: 2.45rem; }
  .partner-tile:nth-child(2), .partner-tile:nth-child(4) { transform: translateY(13px); }
  .cta-band { padding: 33px 26px; }
  .step { padding-right: 0; }
  .step-num { font-size: 2.8rem; margin-bottom: 18px; }
  .reel-card { min-height: 230px; }
  .reel-card p { font-size: .94rem; }
}
@media (max-width: 370px) {
  .home-intro .actions { align-items: start; flex-direction: column; gap: 17px; }
  .film-heading { flex-wrap: wrap; gap: 10px; }
  .voice-stage { padding-inline: 16px; }
  .voice-stage .conversation-head .wave { display: none; }
  .estate-brand-word { font-size: 2.45rem; }
  .estate-visual { padding-inline: 16px; }
  .pulse-visual { padding-inline: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  .film-track { animation: none; }
  .film-viewport { overflow-x: auto; mask-image: none; scrollbar-width: thin; padding-inline: 20px; }
  .film-group[aria-hidden] { display: none; }
  .voice-rings i { opacity: .4; transform: translate(-50%,-50%) scale(1); }
  .voice-rings i:nth-child(2) { transform: translate(-50%,-50%) scale(.8); }
  .voice-rings i:nth-child(3) { transform: translate(-50%,-50%) scale(1.2); }
  .voice-rings i:nth-child(n+4) { display: none; }
  .hero-visual .motion-control { display: none; }
  .film-heading { padding-top: 20px; }
}

.motion-control { min-height: 28px; }
