/* Load last. Only newly introduced mobile copy is hidden at desktop sizes. */
.mobile-only,
.mobile-only.mobile-swipe-hint { display:none; }
.chat-stack-viewport { display:contents; }
.contact-routing { display:contents; }

@media (min-width:800px) {
  .site-header { height:64px; }
  .site-header > .brand { padding-inline:28px; }
}

@media (max-width:799px) {
  :root { --header-height:52px; --mobile-gutter:20px; }
  .mobile-only { display:block; }
  html { scroll-padding-top:var(--header-height); }
  .section { padding:40px var(--mobile-gutter); }
  .hero,.combined-offer,.model-panels,.delivery-scene,.journeys,.contact.section {
    min-height:0;
    height:auto;
  }
  .section-transition { display:none; }
  .mobile-scene-viewport {
    position:relative;
    height:calc(100svh - var(--header-height));
    height:calc(100dvh - var(--header-height));
    overflow-x:hidden;
    overflow-y:auto;
    overscroll-behavior-y:contain;
    scroll-padding:0;
    scrollbar-width:thin;
  }
  .observer-enabled > .section-transition { display:block; }
  .observer-enabled .mobile-reveal,
  .observer-snapshot .mobile-reveal { opacity:1; transform:none; transition:none; }
  .product-reveal,.product-reveal.split-enabled { height:auto; }
  .product-reveal .reveal-stage { display:block; position:static; height:auto; overflow:visible; }
  .product-reveal .combined-offer,.product-reveal .model-panels,.product-reveal .delivery-scene {
    visibility:visible;
    pointer-events:auto;
  }
  .model-panel,.models-heading > span { transform:none; will-change:auto; }
  h2 { font-size:clamp(34px,9vw,54px); }
  .button { min-height:48px; padding:13px 17px; gap:16px; font-size:14px; }
  .text-link { min-height:44px; }

  .site-header { height:52px; padding:0 10px 0 0; gap:8px; }
  .site-header > .brand { padding-inline:14px; }
  .site-header > .brand img { width:152px; }
  .site-header .menu-toggle {
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:6px;
    width:44px;
    height:44px;
    padding:12px;
    border:1px solid var(--cream);
    background:transparent;
  }
  .menu-toggle span { width:18px; height:1px; background:var(--cream); }
  .menu-toggle[aria-expanded=true] span:first-child { transform:translateY(3.5px) rotate(45deg); }
  .menu-toggle[aria-expanded=true] span:last-child { transform:translateY(-3.5px) rotate(-45deg); }
  .site-header nav {
    display:none;
    position:absolute;
    inset:52px 0 auto;
    padding:16px 20px 22px;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    font-size:15px;
    max-height:calc(100dvh - 52px);
    overflow-y:auto;
    border-bottom:1px solid var(--cream);
  }
  .site-header nav.open { display:flex; }
  .site-header nav > a:not(.button) { padding:13px 0; }
  .site-header nav .button { margin-top:10px; }

  /* Fill the phone's visible screen without clipping content on shorter devices. */
  .hero { --hero-ticker-height:38px; min-height:calc(100svh - var(--header-height)); min-height:calc(100dvh - var(--header-height)); padding:26px 20px 60px; justify-content:center; }
  .hero h1 { font-size:clamp(30px,9.65vw,66px); line-height:1.05; }
  .mobile-hero-intro { max-width:36ch; margin:14px auto 0; font-size:14px; line-height:1.5; text-align:center; }
  .hero-collage { height:328px; max-width:480px; margin:18px auto 10px; zoom:1; }
  .hero-phone { top:8px; width:208px; border-width:5px; border-radius:22px; transform:translateX(-50%) rotate(2deg); }
  .hero-phone .phone-top { padding:10px 8px; gap:7px; }
  .hero-phone .restaurant-icon { width:25px; height:25px; }
  .hero-phone .phone-top strong { font-size:10px; }
  .hero-phone .phone-top > div > span { font-size:8px; }
  .hero-phone .phone-body { min-height:0; padding:8px; gap:6px; }
  .hero-phone .bubble { padding:7px 8px; font-size:9px; }
  .hero-phone .bubble.dish { padding:4px; }
  .hero-phone .dish img { height:64px; }
  .hero-phone .dish strong { font-size:10px; padding-top:5px; }
  .hero-phone .dish p { font-size:9px; }
  .hero-phone .dish p,.hero-phone .hero-message:last-child { display:none; }
  .hero-phone .phone-bottom { padding:7px; font-size:7px; }
  .hero-phone .phone-bottom > span:last-child { font-size:13px; line-height:1.2; }
  .hero .food-photo { width:140px; top:64px; border-width:5px; }
  .hero .food-photo img { height:170px; }
  .hero .food-photo figcaption { padding:6px 0 2px; font-size:7px; }
  .hero .photo-left { left:calc(50% - 186px); animation:none; transform:rotate(-12deg); }
  .hero .photo-right { right:calc(50% - 186px); animation:none; transform:rotate(12deg); }
  .hero-sticker { width:64px; height:64px; right:0; top:0; outline-offset:-4px; }
  .hero-sticker strong { font-size:15px; margin:3px 0; }
  .hero-sticker span { font-size:4px; }
  .order-ticket { bottom:0; right:0; padding:8px 11px; gap:7px; }
  .order-ticket strong { font-size:10px; }
  .order-ticket div > span { font-size:8px; }
  .ticket-icon { width:24px; height:24px; font-size:13px; }
  .collage-note { display:none; }
  .hero-bottom { display:flex; align-items:center; justify-content:center; gap:12px; width:100%; max-width:440px; margin:0 auto; }
  .hero-bottom > .button { box-sizing:border-box; flex:none; align-self:center; width:fit-content; min-width:0; max-width:100%; min-height:56px; margin-top:4px; padding:16px 22px; justify-content:center; }
  .hero > .ticker { padding:10px 0; }
  .hero .ticker span { font-size:18px; }
  .hero .ticker b { font-size:18px; }
  .hero .ticker-group { gap:22px; padding-right:22px; }
  .hero .ticker-track { animation-duration:54s; }
  .mobile-demo-open .ticker-track { animation-play-state:paused; }

  #why .commission-heading,.observer-snapshot.combined-offer .commission-heading { font-size:clamp(31px,8.3vw,52px); line-height:1.08; text-align:left; }
  .stop-stamp { border-width:3px; }
  .mobile-section-intro { margin:18px 0 0; max-width:55ch; font-size:15px; line-height:1.55; text-align:left; }
  .entry-plan { --entry-body-size:15px; grid-template-columns:minmax(0,1fr); gap:22px; margin-top:24px; }
  .entry-plan::before { display:none; }
  .entry-plan > .entry-demo { order:1; }
  .entry-plan > .entry-copy { order:2; grid-column:auto; }
  .entry-plan > .entry-details { order:3; }
  .entry-copy > p { display:none; }
  .entry-price { margin:0 0 18px; }
  .entry-price strong { font-size:42px; }
  .entry-price > span { font-size:14px; margin-top:6px; }
  .entry-copy .button { width:100%; min-height:48px; padding:14px 17px; font-size:14px; }
  .entry-details ol { margin:0 0 16px; }
  .entry-details li { padding:11px 0 11px 30px; }
  .entry-details li::before { top:13px; }
  .entry-details li strong { font-size:15px; }
  .entry-details li p { display:none; }
  .entry-details .entry-terms { font-size:14px; line-height:1.55; color:#46544a; }
  .mobile-section-closing { font-size:15px; line-height:1.55; }

  .model-panels { display:grid; grid-template-columns:minmax(0,1fr); }
  .models-heading { position:static; padding:30px 20px; font-size:clamp(34px,9vw,54px); gap:.24em; flex-wrap:wrap; }
  .model-panel { display:block; padding:32px var(--mobile-gutter) 36px; }
  .model-content,.model-guided .model-content {
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:16px;
    max-width:600px;
    margin:0 auto;
    align-items:start;
  }
  .model-copy,.model-guided .model-copy { display:contents; }
  .model-copy > h3 { order:1; font-size:clamp(32px,8.4vw,46px); line-height:1.08; }
  .model-copy > p { order:2; font-size:15px; line-height:1.55; max-width:55ch; }
  .model-content > .product-screen,.model-guided .model-content > .product-screen { order:3; grid-column:auto; grid-row:auto; }
  .model-content .model-features { order:4; font-size:14px; gap:0; }
  .model-content .model-features li { padding:10px 0; }
  .model-content .text-link { order:5; justify-self:start; width:fit-content; max-width:100%; font-size:14px; margin:0; padding:9px 0; }

  .model-panels.mobile-model-stage {
    display:flex;
    flex-direction:column;
    min-height:calc(100svh - var(--header-height));
    min-height:calc(100dvh - var(--header-height));
    background:var(--green);
  }
  .mobile-model-stage > .model-panel[hidden],.mobile-model-stage > .models-heading[hidden] { display:none; }
  .mobile-model-stage[data-model-index="0"] { background:var(--cream); }
  .mobile-model-stage[data-model-index="2"] { background:#eedec4; }
  .mobile-model-stage > .models-heading {
    flex:1;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    padding:40px var(--mobile-gutter);
    font-size:clamp(60px,19vw,110px);
    flex-wrap:nowrap;
    gap:.06em;
  }
  .mobile-model-stage > .model-panel { display:flex; flex-direction:column; justify-content:center; flex:1; padding:32px var(--mobile-gutter); }
  .mobile-model-stage .model-content { gap:clamp(12px,2dvh,22px); }
  .mobile-model-stage .model-copy > h3 { font-size:clamp(38px,min(12vw,6.5dvh),62px); }
  .mobile-model-stage .model-copy > p { font-size:16px; line-height:1.5; }
  .mobile-model-stage .model-features { font-size:14px; }
  .mobile-model-stage .model-features li { padding:7px 0; }
  .mobile-model-stage .mobile-demo-art { height:clamp(130px,25dvh,240px); }

  /* Direct-child selectors never suppress the real device moved into the dialog. */
  .mobile-demo-ready > .entry-phone,
  .mobile-demo-ready > .concierge-device,
  .mobile-demo-ready > .flow-device { display:none; }
  .entry-demo.mobile-demo-ready,.product-screen.mobile-demo-ready {
    display:block;
    width:100%;
    max-width:none;
    min-width:0;
    height:auto;
    margin:0;
    grid-template-rows:none;
  }
  .mobile-demo-trigger {
    display:grid;
    position:relative;
    width:100%;
    padding:0 0 14px;
    overflow:hidden;
    border:1px solid var(--ink);
    border-radius:16px;
    background:var(--cream);
    color:var(--ink);
    text-align:left;
    font-family:var(--body);
    box-shadow:3px 4px 0 #1b261e20;
    cursor:pointer;
  }
  .mobile-demo-trigger[hidden] { display:none; }
  .mobile-demo-art {
    display:block;
    position:relative;
    isolation:isolate;
    height:180px;
    margin-bottom:12px;
    overflow:hidden;
    background:radial-gradient(circle at 14% 20%,#f5c64e70,transparent 58%),#dce7cf;
  }
  /* A cropped phone-shaped food card keeps the thumbnail recognisably a demo. */
  .mobile-demo-art::before {
    content:'';
    position:absolute;
    z-index:-1;
    right:9%;
    top:18px;
    width:112px;
    height:190px;
    border:5px solid var(--ink);
    border-radius:20px;
    background:linear-gradient(#145c45 0 24px,transparent 24px 134px,#f5f1e6 134px),url('assets/pizza.jpg') center 24px/auto 112px no-repeat,#f5f1e6;
    box-shadow:8px 10px 0 #145c4520;
    transform:rotate(9deg);
  }
  .mobile-demo-art::after { content:''; position:absolute; z-index:1; inset:0; background:rgb(0 0 0 / 52%); pointer-events:none; }
  .mobile-demo-bubble {
    position:absolute;
    left:16px;
    top:23px;
    max-width:60%;
    padding:11px 13px;
    border-radius:12px 12px 12px 2px;
    background:white;
    color:var(--ink);
    font-size:13px;
    font-weight:600;
    line-height:1.35;
    box-shadow:0 3px 0 #1b261e0d;
  }
  .mobile-demo-bubble-reply { top:auto; bottom:20px; left:28px; max-width:57%; background:#145c45; color:white; border-radius:12px 12px 2px 12px; font-size:12px; font-weight:400; }
  .mobile-demo-play {
    position:absolute;
    z-index:2;
    top:50%;
    left:50%;
    transform:translate(-50%,-50%);
    width:44px;
    height:44px;
    display:grid;
    place-items:center;
    border:0;
    background:transparent;
    color:var(--orange);
    font-size:0;
    pointer-events:none;
  }
  .mobile-demo-play::before { content:''; display:block; width:30px; height:34px; background:currentColor; clip-path:polygon(0 0,100% 50%,0 100%); }
  .mobile-demo-label { display:block; padding:0 16px; font-size:15px; line-height:1.4; font-weight:700; }
  .mobile-demo-status { display:block; padding:4px 16px 0; font-size:11px; line-height:1.4; color:#526153; }
  .agentic-screen .mobile-demo-art { background:radial-gradient(circle at 75% 10%,#f5c64e35,transparent 70%),#bed5ba; }
  .guided-screen .mobile-demo-art { background:radial-gradient(circle at 15% 30%,#f5c64e70,transparent 65%),#ead5b6; }
  .mobile-demo-trigger:focus-visible { outline:3px solid var(--orange); outline-offset:5px; }
  .model-guided .mobile-demo-trigger:focus-visible,.entry-demo .mobile-demo-trigger:focus-visible { outline-color:var(--green); }

  .mobile-demo-dialog {
    box-sizing:border-box;
    width:min(390px,calc(100% - 24px));
    max-width:calc(100% - 24px);
    max-height:calc(100vh - 32px);
    max-height:calc(100dvh - 32px);
    padding:0;
    margin:auto;
    border:1px solid var(--ink);
    border-radius:20px;
    background:var(--cream);
    color:var(--ink);
    overflow-y:auto;
    overscroll-behavior:contain;
    box-shadow:0 20px 80px #0006;
  }
  .mobile-demo-dialog::backdrop { background:#101713bf; }
  .mobile-demo-shell { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; padding:16px; }
  .mobile-demo-title { align-self:center; font:400 25px/1.12 var(--display); overflow-wrap:anywhere; }
  .mobile-demo-close { position:sticky; top:8px; z-index:3; min-width:44px; min-height:44px; padding:10px 12px; border:1px solid var(--ink); border-radius:8px; background:var(--cream); font:700 12px/1.25 var(--body); box-shadow:0 2px 0 #1b261e20; }
  .mobile-demo-stage { grid-column:1/-1; min-width:0; padding:2px 0 6px; }
  .mobile-demo-stage .mobile-demo-context { display:block; width:min(300px,100%); max-width:100%; margin:auto; text-align:left; grid-template-rows:none; }
  .mobile-demo-stage :is(.entry-phone,.concierge-device,.flow-device) { display:flex; width:100%; height:540px; max-width:100%; margin:0; border-width:6px; border-radius:28px; transform:none; box-shadow:4px 5px 0 #1b261e18; }
  .mobile-demo-stage .entry-phone-screen,.mobile-demo-stage .concierge-thread,.mobile-demo-stage .flow-device-body { overflow-y:auto; overscroll-behavior-y:contain; }
  .mobile-demo-stage .concierge-bar strong,.mobile-demo-stage .entry-phone-bar strong { font-size:13px; }
  .mobile-demo-stage .concierge-bar small,.mobile-demo-stage .entry-phone-bar small { font-size:11px; }
  .mobile-demo-stage .concierge-message { flex-shrink:0; font-size:13px; line-height:1.45; }
  .mobile-demo-stage .dish-message p,.mobile-demo-stage .dish-message strong { font-size:12px; line-height:1.4; }
  .mobile-demo-stage .dish-tags { font-size:11px; }
  .mobile-demo-stage .dish-illustration { height:85px; }
  .mobile-demo-stage .entry-chat,.mobile-demo-stage .entry-scene p,.mobile-demo-stage .entry-bill { font-size:13px; }
  .mobile-demo-stage .flow-device-body { padding:18px 12px; }
  .mobile-demo-stage .flow-screen-content h3 { font-size:18px; }
  .mobile-demo-stage .flow-screen-content p { font-size:13px; line-height:1.5; margin:0 0 12px; }
  .mobile-demo-stage .flow-option { font-size:13px; }
  .mobile-demo-stage .flow-option small,.mobile-demo-stage .flow-choice small { font-size:11px; }
  .mobile-demo-stage .flow-device-footer small { font-size:10px; }
  .mobile-demo-disclaimer { grid-column:1/-1; margin:0; font-size:12px; line-height:1.45; color:#526153; }

  .delivery-scene {
    display:block;
    min-height:0;
    --rider-height:clamp(190px,33dvh,360px);
    padding:clamp(20px,4dvh,42px) var(--mobile-gutter) var(--rider-height);
    background:#145c45 url('assets/delivery-landscape.svg') no-repeat right bottom/auto var(--rider-height);
  }
  .delivery-scene-copy { width:100%; max-width:600px; margin:auto; gap:16px; }
  .delivery-scene h2 { font-size:clamp(42px,min(14vw,7.5dvh),72px); line-height:1.04; }
  .delivery-scene-copy p { max-width:55ch; font-size:16px; line-height:1.5; }
  .delivery-scene-copy .button { font-size:14px; padding:14px 17px; }
  .delivery-rider { display:block; inset:auto 0 0; height:var(--rider-height); background-position:right -18px bottom calc(var(--rider-height) * -.2); background-size:auto calc(var(--rider-height) * 1.6); will-change:transform; }

  .journeys { display:block; }
  .section-heading { display:block; margin-bottom:18px; }
  .section-heading h2 { font-size:clamp(34px,9vw,54px); }
  .journeys .section-heading > p { max-width:55ch; margin-top:16px; padding:0; background:none; box-shadow:none; border-radius:0; font-size:15px; line-height:1.55; }
  .journeys .section-heading > p::after { display:none; }
  .journeys .journey-carousel-viewport { overflow:visible; min-width:0; height:auto; }
  .journeys .journey-grid {
    display:grid;
    grid-auto-flow:column;
    grid-auto-columns:min(86%,340px);
    grid-template-columns:none;
    align-items:stretch;
    gap:14px;
    width:auto;
    height:auto;
    margin:0 calc(-1 * var(--mobile-gutter));
    padding:4px var(--mobile-gutter) 16px;
    overflow-x:auto;
    overscroll-behavior-x:contain;
    scroll-snap-type:x mandatory;
    scroll-padding-inline:var(--mobile-gutter);
    scrollbar-width:thin;
    scrollbar-color:var(--green) #d5d7c9;
  }
  .journeys .journey-grid > article { position:static; width:auto; max-width:none; margin:0; padding:14px; min-width:0; height:auto; border:1px solid #1b261e40; border-radius:12px; background:#f9f6ed; scroll-snap-align:start; transform:none; translate:none; }
  .journeys .journey-art { width:100%; height:150px; max-height:none; aspect-ratio:auto; object-fit:contain; margin:0 0 14px; border:0; border-radius:6px; background:#eedeca; }
  .journeys .journey-grid article > span { font-size:10px; }
  .journeys .journey-grid h3 { font-size:23px; margin:10px 0; }
  .journeys .journey-grid p { font-size:14px; line-height:1.55; }
  /* A portrait deck reserves its full footprint, including the three rear cards. */
  .journeys.journey-stack-enabled { overflow-anchor:none; }
  .journeys.journey-stack-enabled .journey-carousel-viewport {
    position:relative;
    width:min(100%,440px);
    margin-inline:auto;
    padding:48px 42px 18px 0;
    overflow:visible;
    perspective:800px;
    touch-action:pan-y pinch-zoom;
    cursor:pointer;
  }
  .journey-stack-enabled .journey-carousel-viewport:focus-visible {
    outline:2px solid var(--green);
    outline-offset:6px;
    border-radius:12px;
  }
  .journeys.journey-stack-enabled .journey-grid {
    display:grid;
    grid-template-columns:minmax(0,1fr);
    grid-template-rows:auto;
    grid-auto-flow:row;
    grid-auto-columns:auto;
    gap:0;
    width:100%;
    margin:0;
    padding:0;
    overflow:visible;
    scroll-snap-type:none;
    isolation:isolate;
  }
  .journeys.journey-stack-enabled .journey-grid > article {
    grid-area:1 / 1;
    position:relative;
    width:100%;
    min-height:370px;
    padding:14px;
    border:1px solid var(--ink);
    border-top:3px solid var(--green);
    border-radius:10px;
    background:#f9f6ed;
    box-shadow:3px 5px 0 #1b261e18;
    transform-origin:bottom left;
    will-change:transform,opacity;
    user-select:none;
  }
  .journeys.journey-stack-enabled .journey-art {
    height:clamp(160px,48vw,210px);
    margin-bottom:16px;
    pointer-events:none;
  }
  .journeys.journey-stack-enabled .journey-grid h3 { font-size:clamp(22px,6vw,27px); }

  /* Native horizontal scrolling replaces six viewport-height integration panels. */
  .chat-flow { padding:28px 0; height:auto; min-height:0; }
  .chat-flow .cf-stage { position:static; height:auto; overflow:visible; }
  .chat-flow .cf-track {
    display:grid;
    grid-auto-flow:column;
    grid-auto-columns:min(88%,440px);
    align-items:stretch;
    width:100%;
    height:auto;
    gap:14px;
    padding:4px var(--mobile-gutter) 16px;
    overflow-x:auto;
    overscroll-behavior-x:contain;
    scroll-snap-type:x mandatory;
    scroll-padding-inline:var(--mobile-gutter);
    scrollbar-width:thin;
    scrollbar-color:var(--green) #cdd3ba;
    transform:none!important;
  }
  .chat-flow .cf-screen {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    gap:20px;
    width:auto;
    min-width:0;
    min-height:0;
    height:auto;
    padding:22px 18px;
    scroll-snap-align:start;
    border:1px solid #145c4530;
    border-radius:14px;
    background:#eef0e3;
  }
  .chat-flow .cf-intro,.chat-flow .cf-outro { justify-content:center; text-align:left; }
  .chat-flow .cf-outro { background:var(--ink); color:var(--cream); }
  .chat-flow .cf-intro h2,.chat-flow .cf-outro h2 { font-size:clamp(34px,8.8vw,50px)!important; line-height:1.06!important; }
  .chat-flow .cf-intro p,.chat-flow .cf-outro p { font-size:15px!important; line-height:1.5!important; }
  /* These override the source's inline desktop composition sizes, not its colours. */
  .chat-flow .cf-copy { gap:10px!important; }
  .chat-flow .cf-copy > div { font-size:38px!important; }
  .chat-flow .cf-copy h2 { font-size:25px!important; line-height:1.1!important; }
  .chat-flow .cf-copy > p { font-size:14px!important; line-height:1.5!important; }
  .chat-flow .cf-art { width:100%; max-width:none!important; gap:10px!important; zoom:1; }
  .chat-flow .cf-art > div { min-width:0; }
  .chat-flow .cf-art > div[style*="padding"] { padding:12px!important; border-radius:12px!important; gap:9px!important; }
  .chat-flow .cf-art > div > div[style*="font-size:20px"] { padding:10px 12px!important; font-size:15px!important; }
  .chat-flow .cf-art [style*="font-size:19px"] { font-size:16px!important; }
  .chat-flow .cf-art [style*="font-size:17px"] { font-size:15px!important; }
  .chat-flow .cf-art > div[style*="grid-template-columns"] { grid-template-columns:minmax(0,1fr)!important; gap:8px!important; }
  .chat-flow .cf-art > div[style*="grid-template-columns"] > div { padding:12px!important; }
  .chat-flow .cf-art [style*="letter-spacing:2px"] { letter-spacing:1px!important; }
  .chat-flow .cf-progress { display:none; }
  .chat-flow.chat-stack-enabled { padding-inline:var(--mobile-gutter); overflow-anchor:none; }
  .chat-stack-enabled .chat-stack-viewport {
    display:block;
    position:relative;
    width:min(100%,440px);
    margin-inline:auto;
    padding:48px 40px 18px 0;
    overflow:visible;
    perspective:800px;
    touch-action:pan-y pinch-zoom;
    cursor:pointer;
  }
  .chat-stack-enabled .chat-stack-viewport:focus-visible {
    outline:2px solid var(--green);
    outline-offset:6px;
    border-radius:14px;
  }
  .chat-flow.chat-stack-enabled .cf-track {
    display:grid;
    grid-template-columns:minmax(0,1fr);
    grid-template-rows:auto;
    grid-auto-flow:row;
    grid-auto-columns:auto;
    gap:0;
    width:100%;
    padding:0;
    overflow:visible;
    scroll-snap-type:none;
    isolation:isolate;
  }
  .chat-flow.chat-stack-enabled .cf-screen {
    grid-area:1 / 1;
    position:relative;
    width:100%;
    min-height:480px;
    padding:24px 18px;
    border:1px solid var(--ink);
    border-top:3px solid var(--green);
    box-shadow:3px 5px 0 #1b261e18;
    transform-origin:bottom left;
    will-change:transform,opacity;
    user-select:none;
    overflow-wrap:break-word;
  }
  .chat-flow.chat-stack-enabled .cf-intro h2,
  .chat-flow.chat-stack-enabled .cf-outro h2 { font-size:clamp(32px,8.5vw,46px)!important; }

  .contact.section { grid-template-columns:minmax(0,1fr); gap:26px; padding:36px var(--mobile-gutter) 40px; }
  .contact h2,.contact h2 span { color:#fff; font-size:clamp(34px,9vw,54px); line-height:1.05; }
  .contact > div > p:not(.eyebrow) { font-size:15px; line-height:1.55; margin-top:16px; }
  .contact .contact-number { min-height:44px; font-size:20px; margin-top:14px; padding-block:8px; }
  .contact .form-title { font-size:22px; margin-bottom:18px; }
  .contact form label { font-size:14px; gap:6px; margin-bottom:14px; }
  .contact .form-row { grid-template-columns:minmax(0,1fr); gap:0; }
  .contact input,.contact select,.contact textarea { min-height:48px; padding:12px; font-size:16px; }
  .contact textarea { min-height:96px; }
  .contact form > .button { min-height:50px; padding:13px 17px; font-size:15px; }

  /* Every transition lands on a complete surface, never a short card over the next scene. */
  .hero,.combined-offer,.model-panels.mobile-model-stage,.delivery-scene,.journeys,.chat-flow,.contact.section {
    min-height:calc(100svh - var(--header-height));
    min-height:calc(100dvh - var(--header-height));
  }
  .journeys,.chat-flow { display:flex; flex-direction:column; justify-content:center; }
  .chat-flow .cf-stage { width:100%; }

  footer { padding:24px var(--mobile-gutter); flex-wrap:wrap; gap:18px; }
  footer > div { flex-wrap:wrap; gap:6px 20px; }
  footer > div a { display:inline-flex; align-items:center; min-height:44px; }

  /* Budget the offer and contact to a single phone screen, rather than a long page. */
  .combined-offer { display:flex; flex-direction:column; justify-content:center; padding:clamp(16px,3dvh,28px) var(--mobile-gutter); }
  .combined-offer .mobile-section-intro { margin-top:12px; font-size:14px; line-height:1.45; }
  .combined-offer .entry-plan { grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(12px,2dvh,20px); margin-top:18px; }
  .combined-offer .entry-details { grid-column:1/-1; }
  .combined-offer .mobile-demo-art { height:clamp(130px,20dvh,190px); }
  .combined-offer .mobile-demo-trigger { padding-bottom:10px; }
  .combined-offer .mobile-demo-label { padding-inline:10px; font-size:13px; }
  .combined-offer .mobile-demo-status { padding-inline:10px; font-size:10px; }
  .combined-offer .mobile-demo-bubble { left:8px; max-width:85%; padding:8px; font-size:11px; }
  .combined-offer .mobile-demo-bubble-reply { left:12px; font-size:10px; }
  .combined-offer .entry-copy { display:grid; grid-template-columns:minmax(0,1fr); align-content:center; gap:18px; }
  .combined-offer .entry-price { margin:0; }
  .combined-offer .entry-price strong { font-size:clamp(28px,8vw,42px); }
  .combined-offer .entry-price > span { font-size:12px; }
  .combined-offer .entry-copy .button { padding:12px; font-size:13px; gap:8px; }
  .combined-offer .entry-copy .button > span { font-size:22px; }
  .combined-offer .entry-details ol { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:0 0 12px; }
  .combined-offer .entry-details li { padding:8px 0 0; }
  .combined-offer .entry-details li::before { display:none; }
  .combined-offer .entry-details li strong { font-size:13px; line-height:1.4; display:block; }
  .combined-offer .entry-terms { font-size:12px; line-height:1.45; }

  .contact.section { display:flex; flex-direction:column; justify-content:space-between; align-items:stretch; gap:clamp(10px,2dvh,20px); padding:clamp(14px,2.4dvh,26px) var(--mobile-gutter) 0; }
  .contact h2,.contact h2 span { font-size:clamp(30px,min(9vw,4.8dvh),46px); line-height:1.04; }
  .contact h2 > br:first-child { display:none; }
  .contact h2 > br:first-child::after { content:' '; }
  .contact > div > p:not(.eyebrow) { font-size:13px; line-height:1.4; margin-top:10px; }
  .contact .contact-number { font-size:17px; min-height:32px; margin-top:5px; padding-block:4px; }
  .contact .form-title { font-size:18px; margin-bottom:10px; }
  .contact .form-row,.contact .contact-routing { display:grid; grid-template-columns:minmax(0,1fr); gap:10px; }
  .contact form label { font-size:12px; line-height:1.3; gap:4px; margin-bottom:10px; }
  .contact input,.contact select,.contact textarea { min-height:44px; padding:10px; font-size:16px; line-height:1.25; }
  .contact textarea { height:58px; min-height:58px; resize:none; }
  .contact form > .button { min-height:46px; padding:10px 14px; font-size:14px; }
  .contact > footer { flex:none; margin-inline:calc(-1 * var(--mobile-gutter)); padding:10px var(--mobile-gutter); gap:3px 12px; display:flex; flex-wrap:wrap; }
  .contact > footer > .brand { display:none; }
  .contact > footer > div { width:100%; flex-direction:row; flex-wrap:wrap; justify-content:space-between; gap:0 10px; font-size:11px; }
  .contact > footer > div a { min-height:28px; }
  .contact > footer > p { width:auto; font-size:10px; margin:0; }

  @media (max-height:849px) {
    .hero { padding-top:18px; }
    .hero-collage { height:296px; margin-top:12px; }
    .journeys.section { padding:18px var(--mobile-gutter); }
    .journeys .section-heading h2 { font-size:32px; }
    .journeys .section-heading > p { margin-top:10px; font-size:14px; }
    .journeys.journey-stack-enabled .journey-carousel-viewport { padding-top:44px; padding-bottom:8px; }
    .journeys.journey-stack-enabled .journey-grid > article { min-height:0; padding:12px; }
    .journeys.journey-stack-enabled .journey-art { height:135px; margin-bottom:10px; }
    .journeys.journey-stack-enabled .journey-grid h3 { font-size:22px; margin:8px 0; }
    .journeys.journey-stack-enabled .journey-grid p { font-size:13px; line-height:1.4; }
    .chat-flow.chat-stack-enabled { padding-block:12px; }
    .chat-stack-enabled .chat-stack-viewport { padding-top:42px; padding-bottom:8px; }
    .chat-flow.chat-stack-enabled .cf-screen { padding:14px 12px; gap:12px; min-height:480px; }
    .chat-flow .cf-copy { gap:6px!important; }
    .chat-flow .cf-copy > div { font-size:30px!important; }
    .chat-flow .cf-copy h2 { font-size:22px!important; }
    .chat-flow .cf-copy > p { font-size:13px!important; line-height:1.4!important; }
    .chat-flow .cf-art { gap:8px!important; }
    .chat-flow .cf-art > div[style*="padding"] { padding:9px!important; gap:6px!important; }
    .chat-flow .cf-art [style*="font-size:15px"],.chat-flow .cf-art [style*="font-size:16px"] { font-size:13px!important; }
    .chat-flow .cf-art [style*="padding:10px 0"] { padding:6px 0!important; }
    .chat-flow .cf-art [style*="padding:12px 16px"] { padding:8px!important; }
    .chat-flow .cf-art > div > div[style*="font-size:20px"] { font-size:14px!important; padding:8px!important; }
    .mobile-model-stage > .model-panel { padding:14px var(--mobile-gutter); }
    .mobile-model-stage .model-content { gap:10px; }
    .mobile-model-stage .model-copy > p { font-size:14px; line-height:1.45; }
    .mobile-model-stage .model-features li { padding:6px 0; }
    .mobile-model-stage .mobile-demo-art { height:120px; }
    .delivery-scene { --rider-height:190px; padding-top:20px; }
    .delivery-scene-copy { gap:12px; }
    .delivery-scene-copy p { font-size:14px; line-height:1.45; }
    .delivery-scene h2 { font-size:42px; }
    .combined-offer { padding-block:14px; }
    .combined-offer .entry-plan { margin-top:12px; gap:10px; }
    .combined-offer .mobile-demo-art { height:120px; }
    .combined-offer .mobile-demo-art::before { top:6px; }
    .combined-offer .mobile-demo-bubble { top:10px; }
    .combined-offer .mobile-demo-bubble-reply { top:auto; bottom:10px; }
    .contact.section { gap:8px; padding-top:12px; }
    .contact > div > p:not(.eyebrow) { margin-top:6px; }
    .contact form label { margin-bottom:8px; }
    .contact .form-title { margin-bottom:8px; }
  }

  /* Larger default reading size, without forcing browser zoom or scaling the scene geometry. */
  @media (min-width:390px) and (min-height:850px) {
    :root { --mobile-reading-size:clamp(18px,2.2dvh,22px); }
    .hero h1 { font-size:clamp(38px,11vw,76px); }
    .mobile-hero-intro { font-size:var(--mobile-reading-size); line-height:1.4; }
    .hero-bottom > .button { font-size:18px; }
    #why .commission-heading,.observer-snapshot.combined-offer .commission-heading { font-size:clamp(38px,10.5vw,62px); }
    .combined-offer .mobile-section-intro { font-size:var(--mobile-reading-size); line-height:1.4; }
    .combined-offer .entry-price strong { font-size:clamp(32px,9.5vw,48px); }
    .combined-offer .entry-price > span { font-size:15px; }
    .combined-offer .entry-copy .button { font-size:16px; padding:14px 10px; }
    .combined-offer .entry-details li strong { font-size:17px; line-height:1.35; }
    .combined-offer .entry-details .entry-terms { font-size:14px; line-height:1.45; }
    .combined-offer .mobile-demo-label { font-size:16px; }
    .combined-offer .mobile-demo-status { font-size:12px; }
    .mobile-model-stage > .model-panel { padding-block:24px; }
    .mobile-model-stage .model-copy > h3 { font-size:clamp(46px,min(14vw,7dvh),74px); }
    .mobile-model-stage .model-copy > p { font-size:var(--mobile-reading-size); line-height:1.4; }
    .mobile-model-stage .model-features { font-size:17px; }
    .mobile-model-stage .model-content .text-link { font-size:17px; }
    .mobile-model-stage .mobile-demo-art { height:clamp(140px,20dvh,200px); }
    .mobile-demo-label { font-size:19px; }
    .mobile-demo-status { font-size:14px; }
    .delivery-scene { --rider-height:clamp(210px,29dvh,330px); }
    .delivery-scene h2 { font-size:clamp(48px,min(16vw,8dvh),82px); }
    .delivery-scene-copy p { font-size:var(--mobile-reading-size); line-height:1.4; }
    .delivery-scene-copy .button { font-size:17px; }
    .journeys .section-heading h2 { font-size:clamp(42px,11vw,64px); }
    .journeys .section-heading > p { font-size:var(--mobile-reading-size); line-height:1.4; }
    .journeys .journey-grid p { font-size:18px; line-height:1.45; }
    .journeys .journey-grid article > span { font-size:12px; }
    .journeys.journey-stack-enabled .journey-grid h3 { font-size:28px; }
    .chat-flow .cf-copy h2 { font-size:30px!important; }
    .chat-flow .cf-copy > p,.chat-flow .cf-intro p,.chat-flow .cf-outro p { font-size:18px!important; line-height:1.45!important; }
    .chat-flow .cf-art [style*="font-size:15px"],.chat-flow .cf-art [style*="font-size:16px"],.chat-flow .cf-art [style*="font-size:17px"] { font-size:17px!important; }
  }

  .mobile-reveal { opacity:0; transform:translateY(14px); transition:opacity .5s ease,transform .6s cubic-bezier(.2,.7,.2,1); }
  .mobile-reveal.is-visible { opacity:1; transform:none; }
  .delivery-rider.mobile-reveal { transform:translateX(-65px); transition-duration:.6s,.9s; }
  .delivery-rider.mobile-reveal.is-visible { transform:translateX(0); }
  .observer-enabled .delivery-rider.mobile-reveal { transform:none; transition:none; }

  @media (max-width:359px) {
    :root { --mobile-gutter:16px; }
    .mobile-demo-shell { padding:12px; gap:10px; }
    .mobile-demo-title { font-size:22px; }
    .journeys.journey-stack-enabled .journey-carousel-viewport { padding-right:12px; padding-top:20px; }
    .chat-stack-enabled .chat-stack-viewport { padding-right:20px; padding-top:26px; }
    .mobile-demo-bubble { left:12px; max-width:63%; font-size:12px; }
    .mobile-demo-bubble-reply { left:20px; font-size:11px; }
    .chat-flow .cf-screen { padding-inline:14px; }
  }
  @media (prefers-reduced-motion:reduce) {
    html { scroll-behavior:auto; }
    .mobile-reveal,.mobile-reveal.is-visible,.delivery-rider.mobile-reveal { opacity:1; transform:none; transition:none; }
    .hero .ticker-track { animation:none; }
    .journeys .journey-grid,.chat-flow .cf-track { scroll-behavior:auto; scroll-snap-type:x proximity; }
  }
}
