:root{
  --ivory:#F2EFEA;
  --stone:#CFCAC2;
  --charcoal:#121417;
  --charcoal-2:#17191c;
  --charcoal-3:#1d2023;
  --champagne:#E6D7B7;
  --amber:#FFB45C;
  --amber-soft:rgba(255,180,92,.18);
  --ink:#17191b;
  --muted-dark:#5d5c58;
  --muted-light:rgba(242,239,234,.60);
  --line-dark:rgba(18,20,23,.13);
  --line-light:rgba(242,239,234,.12);
  --radius:20px;
  --radius-lg:32px;
  --max:1280px;
  --pad:clamp(24px,5vw,72px);
  --header:82px;
}

*{box-sizing:border-box}
html{background:var(--charcoal);scroll-behavior:auto}
body{margin:0;color:var(--ivory);background:var(--charcoal);font-family:"Avenir Next",Avenir,"Helvetica Neue",Arial,sans-serif;font-weight:400;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
body.dialog-open{overflow:hidden}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button{color:inherit}
img{display:block;width:100%;height:auto}
svg{display:block}
::selection{background:var(--champagne);color:var(--charcoal)}
.skip-link{position:fixed;left:16px;top:16px;z-index:1000;padding:10px 14px;background:var(--ivory);color:var(--charcoal);transform:translateY(-160%)}
.skip-link:focus{transform:none}
:where(a,button,input,select,summary):focus-visible{outline:2px solid var(--amber);outline-offset:4px}

.dark-section{background:var(--charcoal);color:var(--ivory)}
.light-section{background:var(--ivory);color:var(--charcoal)}
.section-pad{padding:clamp(96px,11vw,168px) var(--pad)}

h1,h2,h3,p{margin-top:0}
h1,h2,h3{font-weight:300;letter-spacing:-.035em}
h1{font-size:clamp(58px,7vw,112px);line-height:.93;margin-bottom:28px}
h2{font-size:clamp(46px,5.4vw,84px);line-height:.98;margin-bottom:28px}
h3{font-size:clamp(28px,2.5vw,42px);line-height:1.05;margin-bottom:14px}
.display{font-size:clamp(54px,6vw,96px)}
.eyebrow,.section-kicker{font-size:10px;line-height:1.3;letter-spacing:.20em;text-transform:uppercase;color:var(--champagne);margin-bottom:22px;font-weight:500}
.eyebrow.dark,.section-kicker{color:#8f7c5f}
.section-kicker{max-width:var(--max);margin-left:auto;margin-right:auto;margin-bottom:58px}
.section-lead{font-size:clamp(17px,1.5vw,21px);line-height:1.65;color:var(--muted-light);max-width:560px;margin-bottom:0}
.section-lead.dark{color:var(--muted-dark)}
.editorial-punch{font-size:clamp(24px,2.7vw,42px);font-weight:300;letter-spacing:-.025em;margin:66px auto 0;max-width:var(--max)}

.site-header{position:fixed;inset:0 0 auto;z-index:100;height:var(--header);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 var(--pad);transition:background .35s ease,border-color .35s ease,backdrop-filter .35s ease;border-bottom:1px solid transparent}
.site-header.scrolled{background:rgba(18,20,23,.82);backdrop-filter:blur(18px);border-bottom-color:rgba(242,239,234,.08)}
.brand,.footer-brand{display:flex;align-items:center;gap:14px;color:var(--champagne);font-size:12px;letter-spacing:.38em;font-weight:500;width:max-content}
.brand-mark{width:34px;height:28px;fill:none;stroke:currentColor;stroke-width:2.2;vector-effect:non-scaling-stroke}
.desktop-nav{display:flex;align-items:center;gap:36px;font-size:11px;letter-spacing:.06em;color:rgba(242,239,234,.74)}
.desktop-nav a,.footer-links a,.text-link{transition:color .25s ease,opacity .25s ease}
.desktop-nav a:hover,.footer-links a:hover,.text-link:hover{color:var(--champagne)}
.desktop-cta{justify-self:end}
.menu-button,.mobile-nav{display:none}
.mobile-nav[hidden]{display:none}

.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 22px;border-radius:999px;border:1px solid transparent;font-size:11px;letter-spacing:.10em;text-transform:uppercase;transition:transform .25s ease,background .25s ease,border-color .25s ease,color .25s ease;cursor:pointer}
.button:hover{transform:translateY(-1px)}
.button-primary{background:var(--champagne);color:var(--charcoal)}
.button-primary:hover{background:#f0dfbb}
.button-outline{border-color:rgba(230,215,183,.42);background:transparent;color:var(--ivory)}
.button-outline:hover{border-color:var(--champagne)}
.button-small{min-height:40px;padding:0 17px;font-size:9px}
.button-dark{background:var(--charcoal);color:var(--ivory)}
.text-link{display:inline-flex;align-items:center;gap:12px;padding:0;border:0;background:transparent;font-size:12px;color:rgba(242,239,234,.74);cursor:pointer}
.mobile-demo-trigger{padding:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}

/* Hero */
.hero{position:relative;min-height:100svh;padding:calc(var(--header) + 70px) var(--pad) 58px;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);grid-template-rows:1fr auto;align-items:center;gap:40px;overflow:hidden}
.hero-copy{position:relative;z-index:3;max-width:780px;padding-left:max(0px,calc((100vw - var(--max))/2 - var(--pad)))}
.hero-lead{font-size:clamp(17px,1.55vw,22px);line-height:1.62;color:rgba(242,239,234,.68);max-width:650px;margin-bottom:34px}
.hero-actions{display:flex;align-items:center;gap:24px}
.hero-media{position:relative;align-self:stretch;min-height:620px;z-index:2;display:flex;align-items:center;justify-content:center}
.hero-media::before{content:"";position:absolute;width:75%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(255,180,92,.13),rgba(255,180,92,.03) 42%,transparent 68%);filter:blur(22px)}
.hero-product{position:relative;z-index:2;width:min(720px,115%);max-width:none;object-fit:cover;aspect-ratio:1.16/1;border-radius:38px;box-shadow:0 36px 95px rgba(0,0,0,.38)}
.hero-shadow{position:absolute;left:12%;right:6%;bottom:12%;height:9%;background:rgba(0,0,0,.7);filter:blur(30px);border-radius:50%}
.hero-lines{position:absolute;right:-7vw;top:8%;width:48vw;height:60vh;opacity:.22;pointer-events:none}
.hero-lines span{position:absolute;inset:0;border:1px solid rgba(230,215,183,.22);border-radius:52% 48% 60% 40% / 38% 55% 45% 62%;transform:rotate(-8deg)}
.hero-lines span:nth-child(2){inset:8% 4% -8% -3%;opacity:.55}.hero-lines span:nth-child(3){inset:18% -4% -18% 8%;opacity:.28}
.hero-caption{grid-column:1/-1;display:flex;align-items:center;gap:11px;color:rgba(242,239,234,.45);font-size:11px;letter-spacing:.06em;position:relative;z-index:4}
.status-dot{width:7px;height:7px;border-radius:50%;background:var(--amber);box-shadow:0 0 18px var(--amber);animation:breathe 3.8s ease-in-out infinite}

/* Experience */
.center-intro{max-width:980px;margin:0 auto;text-align:center}
.center-intro .section-lead{margin-left:auto;margin-right:auto}
.experience{padding-bottom:140px}
.conversation-stage{position:relative;max-width:var(--max);margin:74px auto 0;border-radius:var(--radius-lg);overflow:hidden;min-height:680px;background:#d2c8bc}
.conversation-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.conversation-scrim{position:absolute;inset:0;background:linear-gradient(90deg,rgba(18,20,23,.72),rgba(18,20,23,.08) 58%,rgba(18,20,23,.1))}
.conversation-lines{position:absolute;left:clamp(28px,5vw,70px);top:50%;transform:translateY(-50%);z-index:3;display:grid;gap:22px;max-width:520px}
.conversation-lines p{margin:0;color:var(--ivory);font-size:clamp(20px,2vw,30px);font-weight:300;letter-spacing:-.02em;opacity:.48;transition:opacity .35s ease,transform .35s ease}
.conversation-lines p.active{opacity:1;transform:translateX(10px)}
.conversation-glow{position:absolute;z-index:3;left:58%;bottom:15%;width:18px;height:18px;border-radius:50%;background:var(--amber);filter:blur(1px);box-shadow:0 0 34px 10px rgba(255,180,92,.5);opacity:.5}

/* Capabilities */
.split-heading{max-width:var(--max);margin:0 auto 70px;display:grid;grid-template-columns:1.2fr .8fr;gap:70px;align-items:end}
.split-heading h2{margin-bottom:0}
.editorial-grid{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:1.15fr .85fr;grid-template-rows:560px 460px;gap:20px}
.editorial-card{position:relative;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--line-light);min-height:0}
.editorial-card img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.22,.7,.2,1)}
.editorial-card:hover img{transform:scale(1.025)}
.card-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(18,20,23,.92),rgba(18,20,23,.04) 72%)}
.card-copy{position:absolute;inset:auto 38px 34px;z-index:2}
.card-copy h3{margin-bottom:9px}.card-copy p{max-width:430px;color:rgba(242,239,234,.62);font-size:14px;margin-bottom:0}
.card-tonal{background:linear-gradient(145deg,#202326,#111315)}
.card-tonal.alternate{background:linear-gradient(145deg,#17191c,#242018)}
.ambient-orbit{position:absolute;inset:12%;border:1px solid rgba(230,215,183,.2);border-radius:50% 42% 62% 40% / 52% 45% 58% 46%;box-shadow:0 0 80px rgba(255,180,92,.05),inset 0 0 75px rgba(255,180,92,.035)}
.ambient-orbit::before,.ambient-orbit::after{content:"";position:absolute;inset:12%;border:1px solid rgba(230,215,183,.12);border-radius:48% 52% 42% 58%}.ambient-orbit::after{inset:27%;box-shadow:0 0 40px rgba(255,180,92,.08)}
.card-icon{position:absolute;right:10%;top:16%;width:39%;height:auto;fill:none;stroke:rgba(230,215,183,.38);stroke-width:1.4}

/* Journey */
.journey{padding:150px var(--pad) 130px}
.journey-shell{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:minmax(400px,.92fr) minmax(420px,1.08fr);gap:8vw;align-items:start}
.journey-sticky{position:sticky;top:120px;min-height:calc(100vh - 150px);display:flex;flex-direction:column;align-items:flex-start}
.journey-intro{color:var(--muted-dark);font-size:17px;max-width:480px;margin-bottom:34px}
.journey-device{position:relative;width:100%;max-width:520px;margin-top:auto;border-radius:28px;overflow:hidden;background:#d5c9bb}
/* The studio frame carries a lockup at its left edge; crop past it rather
   than slicing it mid-letter. */
.journey-device img{aspect-ratio:1.35/1;object-fit:cover;object-position:76% center}
.device-breathe{position:absolute;left:52%;bottom:18%;width:10px;height:10px;border-radius:50%;background:var(--amber);box-shadow:0 0 26px 10px rgba(255,180,92,.3);opacity:.55}
.journey-steps{display:grid;gap:8vh;padding:10vh 0 14vh}
.journey-step{min-height:42vh;border-top:1px solid var(--line-dark);padding:28px 0 0;opacity:.22;transform:translateY(20px);transition:opacity .5s ease,transform .5s ease}
.journey-step.is-active{opacity:1;transform:none}
.step-number{font-size:10px;letter-spacing:.2em;color:#8f7c5f}.step-label{font-size:14px;text-transform:uppercase;letter-spacing:.10em;margin:38px 0 24px;color:#5f584e}
.journey-step blockquote{margin:0;font-size:clamp(30px,3.2vw,54px);line-height:1.08;letter-spacing:-.035em;font-weight:300;color:var(--charcoal);max-width:650px}
.intent-pill{display:inline-flex;padding:16px 20px;border:1px solid rgba(18,20,23,.15);border-radius:999px;font-size:15px;color:var(--charcoal);background:rgba(255,255,255,.35)}
.mini-task{max-width:520px;border:1px solid rgba(18,20,23,.13);border-radius:18px;padding:24px;background:rgba(255,255,255,.36);display:grid;gap:8px}.mini-task span,.mini-task small{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#776b59}.mini-task strong{font-size:24px;font-weight:400;letter-spacing:-.02em}
.step-note{margin:18px 0 0;max-width:460px;font-size:14px;line-height:1.6;color:var(--muted-dark)}
/* Step 05 is the only place ROOM acts unprompted, so the follow-through
   carries the amber state cue rather than another neutral chip row. */
.followthrough{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.followthrough span{display:inline-flex;align-items:center;gap:9px;padding:9px 15px;border:1px solid rgba(18,20,23,.14);border-radius:999px;font-size:11px;letter-spacing:.06em;color:#5d5c58}
.followthrough span::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--amber);box-shadow:0 0 10px rgba(255,180,92,.7)}
.status-track{position:relative;padding-top:34px;display:flex;justify-content:space-between;max-width:600px}.status-track::before{content:"";position:absolute;left:0;right:0;top:13px;height:1px;background:rgba(18,20,23,.16)}.status-track i{position:absolute;left:0;top:10px;width:8px;height:8px;border-radius:50%;background:#8f7c5f;box-shadow:0 0 0 6px rgba(143,124,95,.1)}.status-track b{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:#6c6255}

/* Intelligence */
.insights-ui{max-width:var(--max);margin:0 auto;border:1px solid var(--line-light);border-radius:24px;background:#16181b;overflow:hidden;box-shadow:0 38px 100px rgba(0,0,0,.28)}
.insights-topbar{height:66px;border-bottom:1px solid var(--line-light);display:flex;align-items:center;gap:12px;padding:0 24px}.insights-topbar strong{font-size:12px;font-weight:500;letter-spacing:.08em}.insights-topbar small{margin-left:auto;color:rgba(242,239,234,.4);font-size:10px}.mark-mini{width:18px;height:14px;position:relative}.mark-mini::before,.mark-mini::after{content:"";position:absolute;top:0;width:8px;height:14px;border:1px solid var(--champagne);border-radius:5px}.mark-mini::before{left:0}.mark-mini::after{right:0}
.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line-light)}.metric-grid article{padding:30px;border-right:1px solid var(--line-light)}.metric-grid article:last-child{border-right:0}.metric-grid span,.signal-panel>span,.panel-title span{display:block;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--champagne);margin-bottom:28px}.metric-grid strong{display:block;font-size:24px;font-weight:300;margin-bottom:8px}.metric-grid small{color:rgba(242,239,234,.42);font-size:11px}
.insights-lower{display:grid;grid-template-columns:1.4fr .6fr}.requests-panel,.signal-panel{padding:30px}.requests-panel{border-right:1px solid var(--line-light)}.panel-title{display:flex;align-items:center;justify-content:space-between}.panel-title small{font-size:9px;color:rgba(242,239,234,.35);text-transform:uppercase;letter-spacing:.12em}.request-row{display:grid;grid-template-columns:60px 1fr 110px 120px;gap:14px;align-items:center;padding:17px 0;border-top:1px solid rgba(242,239,234,.07);font-size:12px}.request-row b{font-weight:400;color:var(--champagne)}.request-row span{color:rgba(242,239,234,.82)}.request-row em{font-style:normal;font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:#b9b6ac}.request-row em.in-progress{color:var(--amber)}.request-row small{color:rgba(242,239,234,.38)}
.signal-panel ul{list-style:none;padding:0;margin:0}.signal-panel li{padding:13px 0;border-top:1px solid rgba(242,239,234,.07);font-size:12px;color:rgba(242,239,234,.64)}
.intelligence .editorial-punch{color:var(--champagne);text-align:center;margin-top:80px}
.architecture-copy h2{font-size:clamp(46px,5.4vw,78px)}
.visibility-copy>p:not(.eyebrow){font-size:17px;line-height:1.7;color:var(--muted-dark);max-width:610px}
.service-timeline{margin-top:50px;display:flex;align-items:flex-start}.service-timeline div{width:110px}.service-timeline span{display:block;font-size:11px;color:#8f7c5f;margin-bottom:7px}.service-timeline strong{font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:500;color:#484640}.service-timeline i{flex:1;height:1px;background:var(--line-dark);margin:8px 10px 0}

/* Architecture */
.architecture{position:relative;min-height:100svh;overflow:hidden;padding:0 0 110px}.architecture-image{height:100svh;position:relative}.architecture-image img{width:100%;height:100%;object-fit:cover}.architecture-overlay{position:absolute;inset:0 0 auto;height:100svh;background:linear-gradient(90deg,rgba(18,20,23,.88),rgba(18,20,23,.3) 48%,rgba(18,20,23,.25)),linear-gradient(to top,rgba(18,20,23,.8),transparent 55%)}
.architecture-copy{position:absolute;z-index:3;left:var(--pad);top:50svh;transform:translateY(-50%);max-width:840px}.architecture-copy p:not(.eyebrow){font-size:18px;color:rgba(242,239,234,.66);max-width:560px}.human-copy>p:not(.eyebrow){font-size:17px;line-height:1.7;color:var(--muted-dark)}

/* Personalization */
.personalization{display:grid;grid-template-columns:1.05fr .95fr;gap:8vw;align-items:center}.personalization-image{border-radius:var(--radius-lg);overflow:hidden}.personalization-image img{aspect-ratio:1/1.05;object-fit:cover}.personalization-copy>p:not(.eyebrow,.quiet-line){font-size:17px;color:var(--muted-light);max-width:560px}.preference-cloud{display:flex;flex-wrap:wrap;gap:10px;margin-top:38px}.preference-cloud span{padding:12px 15px;border:1px solid var(--line-light);border-radius:999px;font-size:11px;color:rgba(242,239,234,.68);background:rgba(255,255,255,.018)}.quiet-line{margin-top:38px;color:var(--champagne)!important;font-size:15px!important}

/* Languages */
.languages{display:grid;grid-template-columns:1.32fr .68fr;gap:6vw;align-items:center}.language-demo{padding:48px;border:1px solid var(--line-dark);border-radius:var(--radius-lg);background:rgba(255,255,255,.38)}.language-demo>p{font-size:clamp(21px,2.1vw,30px);line-height:1.3;letter-spacing:-.018em;color:var(--charcoal);font-weight:300;margin:0 0 14px;text-wrap:pretty}/* The four asks are the proof, so they carry the display type and the
   structured result becomes the quiet outcome. Previously the languages
   were 11px grey and aria-hidden — the evidence set as a footnote. */
.language-demo>p.language-ask:nth-child(2){color:#3d3b37}
.language-demo>p.language-ask:nth-child(3){color:#56534d}
.language-demo>p.language-ask:nth-child(4){color:#6b675f;margin-bottom:0}
.language-converge{height:52px;margin:8px 0 22px;width:1px;margin-left:auto;margin-right:auto;
  background:linear-gradient(180deg,transparent,rgba(255,180,92,.75),var(--charcoal))}.language-result{display:block;text-align:center;padding:16px;border-radius:12px;background:var(--charcoal);color:var(--champagne);font-size:11px;letter-spacing:.10em;text-transform:uppercase}.language-copy>p:not(.eyebrow){font-size:17px;color:var(--muted-dark);max-width:560px}

/* Integrations */
.integrations{display:grid;grid-template-columns:.85fr 1.15fr;gap:7vw;align-items:center}.integrations-copy>p:not(.eyebrow){font-size:17px;color:var(--muted-light);max-width:560px}.integrations-copy .text-link{margin-top:24px;color:var(--champagne)}
.integration-map{position:relative;min-height:610px;border:1px solid var(--line-light);border-radius:var(--radius-lg);overflow:hidden;background:radial-gradient(circle at 50% 50%,rgba(255,180,92,.07),transparent 36%),#15171a}/* Centred with the independent `translate` property, not `transform`: the
   node-reveal animation writes `transform: scale(...)` on this element and
   was wiping the -50%,-50% out, dropping the mark 75px off the point the
   network lines converge on. */
.room-core{position:absolute;left:50%;top:50%;translate:-50% -50%;width:150px;height:150px;border:1px solid rgba(230,215,183,.28);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:rgba(18,20,23,.8);z-index:3}.room-core .large{width:46px;height:38px}.room-core strong{font-size:11px;letter-spacing:.28em;font-weight:500;color:var(--champagne)}.node{position:absolute;padding:11px 15px;border:1px solid var(--line-light);border-radius:999px;background:#1a1c1f;font-size:10px;letter-spacing:.08em;color:rgba(242,239,234,.68);z-index:2}.node-1{left:12%;top:12%}.node-2{left:46%;top:7%}.node-3{right:8%;top:17%}.node-4{right:4%;top:48%}.node-5{right:14%;bottom:10%}.node-6{left:34%;bottom:5%}.node-7{left:5%;bottom:23%}.network-lines{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:rgba(230,215,183,.15);stroke-width:1;z-index:1}.privacy-copy>p:not(.eyebrow){font-size:18px;color:rgba(242,239,234,.56);max-width:650px}.privacy-principles{position:relative;z-index:2;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:86px;background:rgba(242,239,234,.08);border:1px solid rgba(242,239,234,.08)}.privacy-principles div{background:#0d0f11;padding:32px;min-height:128px}.privacy-principles strong{font-size:15px;line-height:1.45;font-weight:400}.privacy-closing{position:relative;z-index:2;text-align:center;font-size:clamp(28px,3vw,46px);font-weight:300;color:var(--champagne);margin:95px 0 0}

/* Properties */
.properties .center-intro{margin-bottom:74px}.property-grid{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:1.1fr .9fr;grid-template-rows:370px 370px;gap:20px}.property-card{position:relative;border-radius:var(--radius-lg);overflow:hidden;background:#c8c1b8}.property-card.large{grid-row:span 2}.property-card:nth-child(4){grid-column:1/-1}.property-card img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.22,.7,.2,1)}.property-card:hover img{transform:scale(1.02)}.property-card::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(18,20,23,.84),transparent 58%)}.property-card>div{position:absolute;z-index:2;left:28px;right:28px;bottom:26px;color:var(--ivory)}.property-card span{display:block;font-size:28px;font-weight:300;letter-spacing:-.03em}.property-card p{max-width:440px;font-size:13px;color:rgba(242,239,234,.66);margin:6px 0 0}

/* Pilot */
.pilot{display:grid;grid-template-columns:1fr 1fr;gap:7vw;align-items:center}.pilot-product{border-radius:var(--radius-lg);overflow:hidden}.pilot-product img{aspect-ratio:1/1;object-fit:cover}.pilot-copy>p:not(.eyebrow){font-size:17px;color:var(--muted-light);max-width:570px}.pilot-includes{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;margin:38px 0 40px;border-top:1px solid var(--line-light)}.pilot-includes span{padding:13px 0;border-bottom:1px solid var(--line-light);font-size:11px;color:rgba(242,239,234,.62)}.pilot-actions{display:flex;gap:12px;flex-wrap:wrap}

/* Final / Footer */
.final-brand{min-height:78vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:100px var(--pad);position:relative;overflow:hidden}.final-brand::before{content:"";position:absolute;width:min(900px,80vw);aspect-ratio:1;border:1px solid rgba(230,215,183,.06);border-radius:50%;box-shadow:0 0 100px rgba(255,180,92,.035)}.closing-mark{width:124px;height:99px;fill:none;stroke:var(--champagne);stroke-width:1.5;position:relative;z-index:2;margin-bottom:34px}.final-brand h2{position:relative;z-index:2;font-size:clamp(38px,5vw,72px);letter-spacing:.28em;margin:0 0 14px;padding-left:.28em}.descriptor{position:relative;z-index:2;color:var(--champagne);font-size:12px;letter-spacing:.08em}.final-line{position:relative;z-index:2;font-size:18px;color:rgba(242,239,234,.55);margin-top:42px}.amber-line{position:relative;z-index:2;width:min(360px,60vw);height:1px;background:linear-gradient(90deg,transparent,var(--amber),transparent);margin-top:38px;box-shadow:0 0 18px rgba(255,180,92,.4)}
.site-footer{padding:32px var(--pad) 38px;border-top:1px solid var(--line-light);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;color:rgba(242,239,234,.42);font-size:10px}.footer-links{display:flex;gap:28px}.site-footer>p{justify-self:end;margin:0}

/* Dialog */
.demo-dialog{border:0;padding:0;background:transparent;width:min(720px,calc(100% - 32px));max-width:none;color:var(--charcoal)}
.demo-dialog::backdrop{background:rgba(7,8,9,.72);backdrop-filter:blur(14px)}
.dialog-shell{position:relative;max-height:min(880px,calc(100svh - 32px));overflow-y:auto;overscroll-behavior:contain;background:var(--ivory);border-radius:26px;padding:clamp(28px,5vw,54px);box-shadow:0 34px 100px rgba(0,0,0,.36)}
.dialog-shell h2{font-size:clamp(38px,5vw,62px);margin-bottom:16px}
.dialog-intro{color:var(--muted-dark);max-width:560px}
.dialog-close{position:absolute;right:16px;top:14px;width:44px;height:44px;border:0;background:transparent;color:var(--charcoal);font-size:28px;cursor:pointer;border-radius:50%}
.demo-form{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px;margin-top:30px}
.demo-form[hidden],.demo-success[hidden]{display:none}
.demo-form .full{grid-column:1/-1}
.demo-form label span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.13em;color:#756e64;margin:0 0 7px}
.demo-form input,.demo-form select{width:100%;border:1px solid rgba(18,20,23,.16);background-color:rgba(255,255,255,.45);border-radius:12px;padding:13px 14px;outline:none;color:var(--charcoal)}
.demo-form input:focus,.demo-form select:focus{border-color:#9e8c70;box-shadow:0 0 0 3px rgba(230,215,183,.48)}
.demo-form [aria-invalid="true"]{border-color:#8b352f;box-shadow:0 0 0 3px rgba(139,53,47,.12)}
.form-field-error{display:block;min-height:17px;margin-top:4px;color:#8b352f;font-size:11px;font-weight:500}
.form-disclosure{font-size:11px;line-height:1.55;color:#6d665d;margin:0}
.form-status{font-size:12px;color:#665c4e;margin:0;min-height:18px}
.demo-form button:disabled{cursor:wait;opacity:.68;transform:none}
.demo-success{padding:34px 0 12px;outline:none}
.demo-success h3{font-size:clamp(30px,4vw,44px);margin-bottom:12px}
.demo-success>p:last-child{color:var(--muted-dark);margin-bottom:0}
.honeypot{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Motion fallback */
.motion-reveal{opacity:0;transform:translateY(18px)}
.motion-reveal.is-visible{opacity:1;transform:none;transition:opacity .8s ease,transform .8s cubic-bezier(.22,.7,.2,1)}

@keyframes breathe{0%,100%{opacity:.4;transform:scale(.84)}50%{opacity:1;transform:scale(1.06)}}
@keyframes deviceBreath{0%,100%{opacity:.3;box-shadow:0 0 20px 6px rgba(255,180,92,.18)}50%{opacity:.95;box-shadow:0 0 30px 12px rgba(255,180,92,.32)}}
.device-breathe{animation:deviceBreath 4s ease-in-out infinite}

@media(max-width:1060px){
  .desktop-nav,.desktop-cta{display:none}.site-header{grid-template-columns:1fr auto}.menu-button{display:flex;width:44px;height:44px;border:0;background:transparent;flex-direction:column;justify-content:center;gap:7px;padding:11px}.menu-button span{height:1px;background:var(--ivory);width:22px;transition:.25s ease}.menu-button[aria-expanded="true"] span:first-child{transform:translateY(4px) rotate(45deg)}.menu-button[aria-expanded="true"] span:last-child{transform:translateY(-4px) rotate(-45deg)}.mobile-nav{display:flex;position:fixed;top:var(--header);left:0;right:0;background:rgba(18,20,23,.98);backdrop-filter:blur(18px);border-bottom:1px solid var(--line-light);padding:28px var(--pad) 34px;flex-direction:column;gap:20px;transform:translateY(-130%);opacity:0;pointer-events:none;transition:.35s ease}.mobile-nav.open{transform:none;opacity:1;pointer-events:auto}.mobile-nav a,.mobile-nav button{font-size:18px;font-weight:300}
  .hero{grid-template-columns:1fr;grid-template-rows:auto auto auto;padding-top:150px}.hero-copy{padding-left:0}.hero-media{min-height:0}.hero-product{width:100%;aspect-ratio:16/10}.hero-caption{grid-column:auto}.hero-lines{width:82vw}
  .split-heading,.service-visibility,.human,.personalization,.languages,.integrations,.pilot{grid-template-columns:1fr;gap:56px}.split-heading{align-items:start}.split-heading .section-lead{max-width:680px}.editorial-grid{grid-template-columns:1fr 1fr;grid-template-rows:460px 420px}
  .journey-shell{grid-template-columns:1fr;gap:0}.journey-sticky{position:relative;top:auto;min-height:auto}.journey-device{margin-top:28px}.journey-steps{gap:40px;padding:80px 0 0}.journey-step{min-height:auto;opacity:1!important;transform:none!important;padding:34px 0 70px}
  .metric-grid{grid-template-columns:1fr}.metric-grid article{border-right:0;border-bottom:1px solid var(--line-light)}.metric-grid article:last-child{border-bottom:0}.insights-lower{grid-template-columns:1fr}.requests-panel{border-right:0;border-bottom:1px solid var(--line-light)}.service-visibility,.human,.personalization,.languages,.integrations,.pilot{max-width:var(--max);margin:0 auto}.privacy-principles{grid-template-columns:1fr 1fr}.property-grid{grid-template-columns:1fr 1fr;grid-template-rows:420px 360px}.property-card.large{grid-row:auto;grid-column:1/-1}.integration-map{min-height:520px}
  .site-footer{grid-template-columns:1fr;gap:20px}.site-footer>p{justify-self:start}
}

@media(max-width:700px){
  :root{--pad:22px;--header:70px}.section-pad{padding-top:88px;padding-bottom:96px}.site-header{height:var(--header)}.brand{font-size:10px;letter-spacing:.28em}.brand-mark{width:30px}
  h1{font-size:clamp(54px,16vw,76px)}h2,.display{font-size:clamp(42px,12vw,58px)}
  .hero{padding-top:118px;padding-bottom:34px}.hero-product{aspect-ratio:4/5;object-position:62% center;border-radius:22px}.hero-actions{align-items:stretch;flex-direction:column}.hero-actions .button{width:100%}.hero-caption{margin-top:4px}
  .section-kicker{margin-bottom:38px}.conversation-stage{min-height:620px;border-radius:22px;margin-top:52px}.conversation-scrim{background:linear-gradient(to top,rgba(18,20,23,.84),rgba(18,20,23,.08) 70%)}.conversation-lines{left:22px;right:22px;top:auto;bottom:40px;transform:none;gap:14px}.conversation-lines p{font-size:20px}.editorial-punch{margin-top:48px}
  .editorial-grid{grid-template-columns:1fr;grid-template-rows:430px 360px 360px 430px}.card-copy{inset:auto 22px 22px}.card-copy p{font-size:13px}
  .journey{padding:100px var(--pad)}.journey-device{border-radius:20px}.journey-step blockquote{font-size:34px}.status-track{display:grid;gap:14px;padding-top:0}.status-track::before,.status-track i{display:none}.intent-pill{border-radius:14px;line-height:1.45}
  .insights-ui{border-radius:18px}.metric-grid article,.requests-panel,.signal-panel{padding:22px}.request-row{grid-template-columns:48px 1fr;gap:8px}.request-row em,.request-row small{grid-column:2}.insights-topbar{padding:0 18px}.insights-topbar small{display:none}.service-timeline{display:grid;grid-template-columns:auto 1fr;gap:18px}.service-timeline div{width:auto}.service-timeline i{width:1px;height:22px;margin:0 0 0 23px;background:var(--line-dark)}
  .architecture-image,.architecture-overlay{height:88svh}.architecture-copy{left:var(--pad);right:var(--pad);top:44svh}
  .preference-cloud span{font-size:10px}.language-demo{padding:28px}.language-demo>p{font-size:20px}
  .integration-map{min-height:480px}.node{font-size:9px;padding:9px 11px}.room-core{width:120px;height:120px}.node-2{left:42%}.node-4{right:2%}.node-7{left:2%}
  .privacy-principles{grid-template-columns:1fr}.privacy-principles div{min-height:auto}.privacy-closing{margin-top:70px}
  .faq-item summary{padding-right:36px}.faq-item p{padding-right:0}
  .property-grid{grid-template-columns:1fr;grid-template-rows:460px repeat(2,360px)}.property-card.large{grid-column:auto;grid-row:auto}.pilot-includes{grid-template-columns:1fr}.pilot-actions{flex-direction:column}.pilot-actions .button{width:100%}
  .final-brand h2{letter-spacing:.16em;padding-left:.16em}.site-footer{padding:28px var(--pad)}.footer-links{flex-wrap:wrap}.demo-form{grid-template-columns:1fr}.demo-form .full{grid-column:auto}
}

@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.motion-reveal{opacity:1!important;transform:none!important}.conversation-lines p{opacity:.8}.journey-step{opacity:1!important;transform:none!important}
}


/* ===== ROOM immersive refinement v2 ===== */
.scroll-progress{position:fixed;left:0;right:0;top:0;height:2px;z-index:1000;pointer-events:none;background:transparent}.scroll-progress span{display:block;width:100%;height:100%;background:linear-gradient(90deg,var(--champagne),var(--amber));transform:scaleX(0);transform-origin:left center;box-shadow:0 0 14px rgba(255,180,92,.35)}
.ambient-cursor{position:fixed;z-index:2;width:480px;height:480px;border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(255,180,92,.07),rgba(230,215,183,.025) 34%,transparent 68%);filter:blur(10px);transform:translate(-50%,-50%);opacity:0;transition:opacity .5s ease}.ambient-cursor.visible{opacity:1}@media(pointer:coarse){.ambient-cursor{display:none}}
.floating-demo{position:fixed;right:26px;bottom:24px;z-index:70;display:flex;align-items:center;gap:12px;padding:12px 17px 12px 13px;border:1px solid rgba(230,215,183,.26);border-radius:999px;background:rgba(18,20,23,.72);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);color:var(--ivory);font-size:10px;letter-spacing:.08em;text-transform:uppercase;opacity:0;transform:translateY(14px);pointer-events:none;cursor:pointer;transition:opacity .35s ease,transform .35s ease,border-color .25s ease,background .25s ease}.floating-demo-mark{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--champagne);color:var(--charcoal);flex:0 0 auto}.floating-demo-mark svg{width:18px;height:15px;fill:none;stroke:currentColor;stroke-width:4;vector-effect:non-scaling-stroke}.floating-demo-label{white-space:nowrap}.floating-demo.show{opacity:1;transform:none;pointer-events:auto}.floating-demo:hover{background:rgba(230,215,183,.12);border-color:rgba(230,215,183,.56)}
.hero{min-height:108svh;overflow:hidden}.hero-copy{position:relative;z-index:4}.hero-media{position:relative;z-index:3}.hero-product{will-change:transform,clip-path,filter}.hero-pilot-note{position:absolute;right:var(--pad);bottom:38px;z-index:5;display:flex;align-items:center;gap:8px;color:rgba(242,239,234,.48);font-size:9px;letter-spacing:.13em;text-transform:uppercase}.hero-pilot-note>span{width:7px;height:7px;border-radius:50%;background:var(--amber);box-shadow:0 0 14px rgba(255,180,92,.55);animation:breathe 3s ease-in-out infinite}.hero-lines span{will-change:transform,opacity}
.conversation-stage{transform:translateZ(0)}.conversation-stage img{will-change:transform,filter}.conversation-lines p{filter:blur(.15px)}.conversation-lines p.active{filter:none}.conversation-glow{will-change:transform,opacity}
.editorial-card{transition:transform .6s cubic-bezier(.22,.7,.2,1),border-color .4s ease,box-shadow .4s ease}.editorial-card:hover{transform:translateY(-5px);border-color:rgba(230,215,183,.28);box-shadow:0 24px 70px rgba(0,0,0,.18)}.editorial-card img{transition:transform 1.1s cubic-bezier(.22,.7,.2,1),filter .8s ease}.editorial-card:hover img{transform:scale(1.035);filter:saturate(1.04) contrast(1.02)}
.capability-notes{max-width:var(--max);margin:26px auto 0;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line-light);border-bottom:1px solid var(--line-light)}.capability-notes article{padding:28px 32px 30px 0;display:grid;grid-template-columns:minmax(150px,.6fr) 1fr;gap:28px}.capability-notes article+article{border-left:1px solid var(--line-light);padding-left:32px}.capability-notes span{font-size:10px;letter-spacing:.11em;text-transform:uppercase;color:var(--champagne)}.capability-notes p{margin:0;color:rgba(242,239,234,.58);font-size:13px;line-height:1.7;max-width:420px}
.journey-progress{display:flex;align-items:center;gap:12px;width:min(330px,100%);margin:2px 0 20px}.journey-progress>span{height:1px;flex:1;background:linear-gradient(90deg,var(--charcoal) 0 20%,rgba(18,20,23,.14) 20% 100%);background-size:500% 100%;background-position:100% 0}.journey-progress b,.journey-progress em{font-size:9px;letter-spacing:.12em;font-style:normal;font-weight:500;color:rgba(18,20,23,.48)}.journey-progress b{color:var(--charcoal)}.journey-step{will-change:opacity,transform}.journey-device::after{content:"";position:absolute;left:12%;right:12%;bottom:8%;height:1px;background:linear-gradient(90deg,transparent,var(--amber),transparent);opacity:.65;box-shadow:0 0 16px rgba(255,180,92,.35)}
.insights-ui{will-change:transform,opacity;transform-origin:center top}.service-timeline i{transform-origin:left center}.architecture-hero img,.human-image img,.personalization-image img{will-change:transform,filter}.architecture-copy{will-change:transform,opacity}.preference-cloud span{will-change:transform,opacity}
.integration-map .network-lines path{stroke-dasharray:1300;stroke-dashoffset:1300}.integration-map.is-live .network-lines path{animation:networkDraw 2.2s cubic-bezier(.22,.7,.2,1) forwards}.integration-map .node{transition:border-color .35s ease,background .35s ease,color .35s ease}.integration-map .node:hover{border-color:rgba(230,215,183,.5);background:rgba(230,215,183,.09);color:var(--ivory)}@keyframes networkDraw{to{stroke-dashoffset:0}}.privacy-principles{max-width:var(--max)}.privacy-principles div{transition:background .35s ease,border-color .35s ease,transform .35s ease}.privacy-principles div:hover{background:rgba(230,215,183,.035);border-color:rgba(230,215,183,.24);transform:translateY(-3px)}
.pilot{min-height:96svh;align-items:center}.pilot-product{will-change:transform,filter}.pilot-audience{max-width:620px!important;color:var(--champagne)!important;font-size:12px!important;letter-spacing:.015em}.pilot-actions .button-primary{box-shadow:0 0 0 rgba(255,180,92,0);transition:box-shadow .35s ease,transform .35s ease,background .35s ease}.pilot-actions .button-primary:hover{box-shadow:0 0 44px rgba(255,180,92,.16)}
.final-brand{min-height:92svh}.amber-line{transform-origin:center center}
@media(max-width:1060px){.hero-pilot-note{position:relative;right:auto;bottom:auto;grid-column:1/-1;margin-top:22px}.floating-demo{right:18px;bottom:18px}.capability-notes{grid-template-columns:1fr}.capability-notes article{grid-template-columns:1fr;gap:10px;padding:24px 0}.capability-notes article+article{border-left:0;border-top:1px solid var(--line-light);padding-left:0}}
@media(max-width:700px){.floating-demo{display:none}.hero{min-height:auto}.capability-notes article{padding:22px 0}.journey-progress{margin-bottom:10px}}
@media(prefers-reduced-motion:reduce){.floating-demo,.ambient-cursor{display:none!important}.integration-map .network-lines path{stroke-dashoffset:0!important;animation:none!important}.editorial-card:hover{transform:none}.editorial-card:hover img{transform:none}}



/* FINAL SURGICAL REFINEMENTS */
/* The privacy cue reads as a caption to the material evidence, in normal
   flow beneath the strip. Inside .architecture-copy it inherited that
   block's absolute position and scroll recession, so the material strip
   rode over the one hardware fact the trust story depends on. */
.material-note{max-width:var(--max);margin:0 auto;padding:0 var(--pad);position:relative;z-index:4}
.privacy-cue{display:flex;align-items:center;gap:13px;margin-top:34px;padding-top:20px;border-top:1px solid rgba(230,215,183,.17);max-width:470px}
.privacy-dot{width:12px;height:12px;border:1px solid var(--champagne);border-radius:50%;box-shadow:0 0 16px rgba(255,180,92,.22);position:relative;flex:0 0 auto}
.privacy-dot:after{content:'';position:absolute;width:4px;height:4px;left:3px;top:3px;border-radius:50%;background:var(--amber)}
.privacy-cue strong{display:block;color:var(--ivory);font-size:12px;font-weight:500;letter-spacing:.02em}
.privacy-cue small{display:block;margin-top:4px;color:rgba(242,239,234,.48);font-size:11px;line-height:1.45}
.pilot-note{margin-top:15px!important;color:rgba(242,239,234,.48)!important;font-size:12px!important}
.demo-form select{width:100%;border:1px solid rgba(18,20,23,.16);background:rgba(255,255,255,.45);border-radius:12px;padding:13px 38px 13px 14px;outline:none;color:var(--charcoal);font:inherit;appearance:none;background-image:linear-gradient(45deg,transparent 50%,#756e64 50%),linear-gradient(135deg,#756e64 50%,transparent 50%);background-position:calc(100% - 17px) 52%,calc(100% - 12px) 52%;background-size:5px 5px,5px 5px;background-repeat:no-repeat}
.demo-form select:focus{border-color:#9e8c70;box-shadow:0 0 0 3px rgba(230,215,183,.48)}

/* =====================================================================
   v3 - TYPOGRAPHY, TEXTURE, SEAMS, MOTION SCAFFOLD
   Content unchanged. Visual + dynamic refinement only.
   ===================================================================== */

:root{
  --umber:#8F7C5F;
  --font-display:"Jost","Avenir Next",Avenir,"Helvetica Neue",Arial,sans-serif;
  --font-text:"Hanken Grotesk","Avenir Next",Avenir,"Helvetica Neue",Arial,sans-serif;
  --ease-room:cubic-bezier(.22,.7,.2,1);
  --scroll-velocity:0;
}

/* --- Type program -------------------------------------------------- */
body{font-family:var(--font-text);font-synthesis-weight:none;letter-spacing:.002em}

h1,h2,h3,.display,blockquote,.editorial-punch,.human-statement,
.material-statement strong,.privacy-closing,.final-brand h2,
.property-card span,.metric-grid strong,.mini-task strong,.room-core strong,
.brand span,.footer-brand span,.dialog-shell h2,.language-demo>p{
  font-family:var(--font-display)}

/* Jost sets narrower than Avenir, so the display tracking is re-tuned. */
h1,h2,.display{letter-spacing:-.026em;font-weight:300}
h3{letter-spacing:-.018em}
blockquote,.editorial-punch,.human-statement,.privacy-closing{letter-spacing:-.022em}

/* Uppercase micro-labels read better in the text face at 500. */
.eyebrow,.section-kicker,.button,.desktop-nav,.step-number,
.step-label,.capability-notes span,.material-shot figcaption,
.request-row em,.node,.descriptor,.demo-form label span,.site-footer,
.metric-grid span,.signal-panel>span,.panel-title span,.service-timeline strong{
  font-family:var(--font-text);font-weight:500}

/* Digits that sit in columns or tick upward must not jitter. */
.metric-grid,.request-row,.service-timeline,.journey-progress,.step-number,
.status-track,.insights-topbar,
.mini-task,.language-echo{font-variant-numeric:tabular-nums}

h3,.privacy-closing,.material-statement strong,
.editorial-punch,.human-statement{text-wrap:balance}
p,.section-lead,.hero-lead{text-wrap:pretty}

/* --- Film grain: keeps the large flat charcoal fields from going dead - */
.grain{position:fixed;inset:0;z-index:900;pointer-events:none;opacity:.055;
  mix-blend-mode:overlay;background-repeat:repeat;background-size:170px 170px;
  background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='170' height='170'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='170' height='170' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E")}

/* --- Light seam between tonal sections: ROOM's own product motif ------ */
.dark-section+.light-section,.light-section+.dark-section{position:relative}
.dark-section+.light-section::before,.light-section+.dark-section::before{
  content:"";position:absolute;left:0;right:0;top:0;height:1px;z-index:6;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(255,180,92,.45) 20%,
    rgba(230,215,183,.62) 50%,rgba(255,180,92,.45) 80%,transparent);
  opacity:.62}

/* --- Focus: visible, on-brand, never suppressed ---------------------- */
:focus-visible{outline:2px solid var(--amber);outline-offset:3px;border-radius:3px}
.button:focus-visible{outline-offset:4px}
.light-section :focus-visible,.dialog-shell :focus-visible{outline-color:var(--umber)}

/* --- Primary action responds to the pointer like a light source ------- */
.button-primary,.button-dark{position:relative;overflow:hidden;isolation:isolate}
.button-primary::after,.button-dark::after{content:"";position:absolute;inset:-45%;z-index:-1;
  opacity:0;transition:opacity .45s ease;
  background:radial-gradient(circle at var(--mx,50%) var(--my,50%),
    rgba(255,180,92,.6),rgba(255,180,92,0) 58%)}
.button-primary:hover::after,.button-dark:hover::after{opacity:1}
.button-dark::after{background:radial-gradient(circle at var(--mx,50%) var(--my,50%),
  rgba(230,215,183,.34),rgba(230,215,183,0) 60%)}

/* --- Header tucks on descent, returns on ascent ---------------------- */
.site-header{will-change:transform;
  transition:transform .55s var(--ease-room),background .35s ease,
    border-color .35s ease,backdrop-filter .35s ease}
.site-header.tucked{transform:translateY(-101%)}

/* --- Reading seam brightens with scroll velocity --------------------- */
.scroll-progress span{
  box-shadow:0 0 calc(9px + var(--scroll-velocity) * 20px)
    rgba(255,180,92,calc(.26 + var(--scroll-velocity) * .42))}

/* --- Conversation: the active request carries the light -------------- */
.conversation-lines p{position:relative;padding-left:27px}
.conversation-lines p::before{content:"";position:absolute;left:0;top:.6em;width:7px;height:7px;
  border-radius:50%;background:var(--amber);opacity:0;transform:scale(.35);
  box-shadow:0 0 17px rgba(255,180,92,.75);
  transition:opacity .5s ease,transform .5s var(--ease-room)}
.conversation-lines p.active::before{opacity:1;transform:none}

/* --- Line-mask reveal scaffold (only armed once Motion has loaded) ---- */
.line-mask{display:block;overflow:hidden;padding-bottom:.16em;margin-bottom:-.16em}
.line-mask>span{display:block;will-change:transform,opacity}

/* --- Network lines: visible by default, drawn only when Motion runs --- */
.integration-map .network-lines path{stroke-dasharray:none;stroke-dashoffset:0}
.js-motion .integration-map .network-lines path{stroke-dasharray:1300;stroke-dashoffset:1300}

/* --- Closing mark draws itself in ------------------------------------ */
.js-motion .final-brand .closing-mark rect{stroke-dasharray:242;stroke-dashoffset:242}
.js-motion .final-brand.is-drawn .closing-mark rect{
  animation:markDraw 1.7s var(--ease-room) forwards}
.js-motion .final-brand.is-drawn .closing-mark rect:nth-child(2){animation-delay:.24s}
@keyframes markDraw{to{stroke-dashoffset:0}}

/* --- Hero measure: let the authored line breaks actually hold ---------
   The copy column was narrower than the longest headline line, so
   "a personal concierge." wrapped and the two-line structure was lost.
   Widen the column, cap the measure, and scale type to the column.

   Scoped to the two-column hero only. Unscoped, these three declarations
   sit after the stacking media queries and silently outrank them, so the
   copy column kept a 400px sibling all the way down: 251px of measure at
   768px, and 0px at 390px, with the headline set one word per line.      */
@media(min-width:1061px){
  .hero{grid-template-columns:minmax(0,1.15fr) minmax(400px,.85fr)}
  .hero-copy{max-width:min(960px,100%);container-type:inline-size}
  h1{font-size:clamp(58px,11.4cqi,112px)}
}

/* --- Column headings size to their column, not the viewport ----------
   These sit in half-width columns where viewport-scaled display type
   overran the authored line breaks. Sizing in cqi gives a deliberate
   two-tier system: full-width section heads stay large, column heads
   step down and keep their breaks.                                     */
.human-copy,.personalization-copy,.integrations-copy,.pilot-copy,
.language-copy,.visibility-copy{container-type:inline-size}
.human-copy h2,.personalization-copy h2,.integrations-copy h2,.pilot-copy h2,
.language-copy h2{
  font-size:clamp(34px,7.8cqi,72px)}

/* --- The room becomes the interface ---------------------------------
   Restored from the earlier ROOM build. The heading sizes against its
   own column in cqi, like the other column heads, so the authored line
   break holds. The capability row is a ruled four-up: hairlines rather
   than boxes, so it reads as a table of the product rather than as
   another set of cards.                                              */
.statement-grid{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);
  gap:clamp(36px,6vw,104px);align-items:end}

/* The four capability icons, carried over from the retired statement
   section so the taxonomy keeps one icon family across the page. */
/* The service timeline moved onto charcoal when the two operations
   sections merged; it was coloured for ivory. It now reads as the
   dashboard's caption—the same request, told as elapsed time. */
.intelligence .service-timeline{max-width:var(--max);margin:34px auto 0}
.intelligence .service-timeline span{color:var(--champagne)}
.intelligence .service-timeline strong{color:rgba(242,239,234,.62)}
.intelligence .service-timeline i{background:var(--line-light)}

/* --- Object + trust, merged -------------------------------------------
   The physical control and the light state are product facts, so the
   privacy argument now lives on the object rather than in a policy
   section nine screens later. */
.trust-block{max-width:var(--max);margin:0 auto;padding:clamp(76px,9vw,124px) var(--pad) 0;position:relative;z-index:4}
/* Declared min-width-first: this block sits after the stacking media
   queries, so an unscoped two-column rule would outrank them—the same
   trap the hero fell into. */
.trust-lead{display:grid;gap:34px}
@media(min-width:701px){.trust-lead{grid-template-columns:1.05fr .95fr;gap:clamp(32px,5vw,72px);align-items:center}}
.trust-shot{margin:0;border-radius:22px;overflow:hidden;border:1px solid var(--line-light);background:#1b1d20}
.trust-shot img{aspect-ratio:1.5/1;object-fit:cover}
.trust-intro{font-size:18px;line-height:1.6;color:rgba(242,239,234,.66);max-width:520px;margin:0}
.trust-block .privacy-principles{margin-top:64px}
.trust-block .privacy-closing{margin-top:72px}

/* --- FAQ: hairline rows, not cards ------------------------------------
   The page argues, then stops talking; this is where an operator's own
   questions get answered. Ruled rows keep it a reference, not a feature. */
.faq-list{max-width:var(--max);margin:0 auto;border-top:1px solid var(--line-light)}
.faq-item{border-bottom:1px solid var(--line-light)}
.faq-item summary{list-style:none;cursor:pointer;padding:26px 44px 26px 0;position:relative;
  font-family:var(--font-display);font-size:clamp(19px,1.7vw,24px);font-weight:300;
  letter-spacing:-.018em;color:var(--ivory);transition:color .3s ease}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary:hover{color:var(--champagne)}
.faq-item summary::after{content:"";position:absolute;right:6px;top:50%;width:11px;height:11px;
  margin-top:-6px;border-right:1px solid var(--champagne);border-bottom:1px solid var(--champagne);
  transform:rotate(45deg);transform-origin:60% 60%;transition:transform .35s var(--ease-room)}
.faq-item[open] summary::after{transform:rotate(225deg)}
.faq-item[open] summary{color:var(--champagne)}
.faq-item p{margin:0;padding:0 clamp(0px,8vw,120px) 30px 0;max-width:820px;
  font-size:15px;line-height:1.72;color:rgba(242,239,234,.60)}

/* --- Tone flips ------------------------------------------------------
   Personalization moved to ivory and the language proof to charcoal, so
   light and dark alternate the whole way down. Each flip needs its
   section's hardcoded colours inverted, not just the section class. */
.personalization-copy>p:not(.eyebrow,.quiet-line){color:var(--muted-dark)}
.personalization .preference-cloud span{border-color:var(--line-dark);color:#5d5c58;
  background:rgba(255,255,255,.45)}
.personalization .preference-cloud span:hover{border-color:rgba(18,20,23,.3);color:var(--charcoal)}
.personalization .quiet-line{color:var(--umber)!important}

.languages .language-copy>p:not(.eyebrow){color:var(--muted-light)}
.languages .language-demo{border-color:var(--line-light);background:rgba(242,239,234,.035)}
.languages .language-demo>p{color:var(--ivory)}
.languages .language-demo>p.language-ask:nth-child(2){color:rgba(242,239,234,.82)}
.languages .language-demo>p.language-ask:nth-child(3){color:rgba(242,239,234,.66)}
.languages .language-demo>p.language-ask:nth-child(4){color:rgba(242,239,234,.52)}
.languages .language-converge{background:linear-gradient(180deg,transparent,rgba(255,180,92,.85),var(--champagne))}
.languages .language-result{background:var(--champagne);color:var(--charcoal)}

/* FAQ sits on ivory, immediately before the ask. */
.faq-list{border-top-color:var(--line-dark)}
.faq-item{border-bottom-color:var(--line-dark)}
.faq-item summary{color:var(--charcoal)}
.faq-item summary:hover,.faq-item[open] summary{color:var(--umber)}
.faq-item summary::after{border-color:var(--umber)}
.faq-item p{color:var(--muted-dark)}

.card-mark{width:30px;height:30px;margin-bottom:16px;color:var(--champagne);opacity:.72}
.card-mark svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.5;
  stroke-linecap:round;stroke-linejoin:round}

/* --- Numbering belongs to the one real sequence ----------------------
   The request journey is an ordered process, so its 01-05 carries
   information. The capability cards and privacy principles are parallel
   sets whose order means nothing, so their ordinals are gone and the
   layout holds the rhythm instead. Numbering now reads as a signal.     */
/* The ordinals are gone, so the cells no longer need to reserve height for
   them. Bottom-aligning one line inside 190px left four empty boxes. */
.privacy-principles div{display:flex;flex-direction:column;justify-content:center}
.step-number{font-size:11px;letter-spacing:.22em;color:var(--umber);
  transition:color .5s ease}
.journey-step.is-active .step-number{color:var(--charcoal)}

/* --- Small tactile refinements --------------------------------------- */
.preference-cloud span{transition:border-color .35s ease,background .35s ease,color .35s ease}
.preference-cloud span:hover{border-color:rgba(230,215,183,.42);
  background:rgba(230,215,183,.07);color:var(--ivory)}
.request-row{transition:background .3s ease}
.request-row:hover{background:rgba(230,215,183,.035)}
.signal-panel li{transition:color .3s ease}
.signal-panel li:hover{color:rgba(242,239,234,.9)}
.text-link span{transition:transform .35s var(--ease-room);display:inline-block}
.text-link:hover span{transform:translateX(5px)}
.status-dot{will-change:transform,opacity}

@media(prefers-reduced-motion:reduce){
  .grain{display:none}
  .line-mask{overflow:visible;padding-bottom:0;margin-bottom:0}
  .line-mask>span{transform:none!important;opacity:1!important}
  .site-header.tucked{transform:none}
  .js-motion .final-brand .closing-mark rect{stroke-dasharray:none;stroke-dashoffset:0}
  .js-motion .integration-map .network-lines path{stroke-dasharray:none;stroke-dashoffset:0}
}


/* --- Responsive: the experience four-up ------------------------------
   Declared last so it outranks the base grid above, which is appended
   after the page's original breakpoint blocks.                        */
@media(max-width:1060px){
}
@media(max-width:700px){
}
