@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:500 600;font-display:swap;src:url(/assets/cormorant-garamond-latin-ext.9dc38267.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:500 600;font-display:swap;src:url(/assets/cormorant-garamond-latin.5d618c46.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:500;font-display:swap;src:url(/assets/cormorant-garamond-italic-latin-ext.9bf62fcb.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:500;font-display:swap;src:url(/assets/cormorant-garamond-italic-latin.efd94eb5.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Manrope';font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/manrope-latin-ext.ce093b34.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Manrope';font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/manrope-latin.e310b55a.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--bg:#0b0e12;--surface:#12161c;--fg:#f2f3f4;--muted:#a9b0b8;--line:#2a313a;--brand:#d19a5e;--brand-ink:#0b0e12;--cta:#f2f3f4;--cta-ink:#0b0e12;--tint:#212121;--deep:#07090c;--deep-ink:#f2f3f4;--head:'Cormorant Garamond';--body:'Manrope'}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font-family:var(--body),system-ui,-apple-system,sans-serif;color:var(--fg);background:var(--bg);line-height:1.62;
 -webkit-font-smoothing:antialiased;font-size:17px}
img{max-width:100%;display:block}a{color:inherit}button{font:inherit;color:inherit}
h1,h2,h3{font-family:var(--head),Georgia,serif;margin:0;text-wrap:balance;font-weight:600}p{margin:0}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px}
.concept{background:#0a0a0a;color:#d4d4d4;font:500 12.5px/1.4 system-ui,sans-serif;text-align:center;padding:7px 14px;letter-spacing:.01em}
.concept b{color:#fff}.concept .short{display:none}
.nav{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;gap:18px;min-height:74px}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--head);font-weight:700;font-size:21px;text-decoration:none;min-width:0}
.brand img{height:46px;width:auto;max-width:180px;object-fit:contain}.brand span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.links{display:flex;gap:26px;margin-left:auto;font-size:15px}.links a{text-decoration:none;color:var(--muted)}.links a:hover{color:var(--fg)}
.menu{display:none;position:relative;margin-left:auto}.menu summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:6px;font-size:14px;color:var(--muted);min-height:44px;min-width:44px;padding:10px 8px}
.menu summary::-webkit-details-marker{display:none}.menu-links{display:flex;flex-direction:column;gap:10px;position:absolute;right:0;top:100%;min-width:180px;padding:12px 16px;background:var(--surface);border:1px solid var(--line);border-radius:12px;z-index:45}
.menu-links a{text-decoration:none;color:var(--fg);font-size:15px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:0 24px;font-weight:600;font-size:16px;
 text-decoration:none;border:1.5px solid transparent;cursor:pointer;white-space:nowrap;border-radius:var(--r-btn);transition:transform .2s,background .2s,box-shadow .2s}
.btn:hover{transform:translateY(-1px)}.btn-cta{background:var(--cta);color:var(--cta-ink)}.btn-line{border-color:currentColor;background:transparent}
.nav .btn{min-height:44px;padding:0 18px;font-size:15px}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font:600 12.5px/1 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--brand)}
.lead{font-size:clamp(17px,1.5vw,20px);color:var(--muted);max-width:56ch}
.ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.badges{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:30px;font-size:14.5px;color:var(--muted)}
.badges span{display:inline-flex;align-items:center;gap:8px}.badges svg{color:var(--brand)}
section.block{padding:clamp(72px,9vw,128px) 0;position:relative}
.head{max-width:760px;margin-bottom:48px}.head h2{font-size:clamp(30px,3.8vw,48px);line-height:1.08}
.head p{color:var(--muted);margin-top:16px;font-size:18px}
.center .head{margin-inline:auto;text-align:center}
.grid{display:grid;gap:22px}.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.about.solo{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start;gap:32px 72px}.about.solo.one{grid-template-columns:minmax(0,780px)}
.about.solo .body>p:first-child{margin-top:4px}.about.solo .head{margin-bottom:0}
.twin{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:32px 72px;align-items:start}.twin .head{margin-bottom:0}.twin .faq{max-width:none}
.twin .head,.about.solo .head,.intake .head{text-align:left;margin-inline:0}
section.block.tight{padding-block:40px}.ctas.flat{margin:0}
.hero h1{margin-top:22px}.wrap.narrow{max-width:920px}.solo-card{display:flex;justify-content:center}
.nav-cta{display:flex;gap:10px;margin-left:auto}
.hero{position:relative;overflow:hidden}
.hero h1{font-size:clamp(40px,6vw,78px);line-height:1.02;letter-spacing:-.02em}
.hero .lead{margin-top:22px}.hero h1 em{font-style:normal;color:var(--brand)}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:64px;align-items:center;padding-block:clamp(56px,8vw,112px)}
.media{position:relative}.media img{width:100%;height:100%;object-fit:cover}
.riley-card{background:#fff;color:#111827;border-radius:18px;box-shadow:0 30px 80px rgba(0,0,0,.22);overflow:hidden;max-width:360px;width:100%;
 font-family:var(--body)}
.rc-head{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid #eef0f3}
.rc-head b{display:block;font-size:15px}.rc-head small{color:#6b7280;font-size:12px;display:block;white-space:nowrap}
.rc-head .dot{margin-left:auto;width:9px;height:9px;border-radius:9px;background:#22c55e;box-shadow:0 0 0 4px #dcfce7}
.rc-body{padding:16px;display:flex;flex-direction:column;gap:10px;background:#f8fafc}
.rc-m{max-width:88%;padding:10px 13px;border-radius:14px;font-size:14.5px;line-height:1.45}
.rc-m.a{background:#fff;border:1px solid #e5e7eb;align-self:flex-start}.rc-m.u{background:#111827;color:#fff;align-self:flex-end}
.rc-m.typing{display:flex;gap:4px}.rc-m.typing span{width:6px;height:6px;border-radius:6px;background:#94a3b8;animation:rcb 1.2s infinite}
.rc-m.typing span:nth-child(2){animation-delay:.15s}.rc-m.typing span:nth-child(3){animation-delay:.3s}@keyframes rcb{0%,60%,100%{opacity:.3}30%{opacity:1}}
.rc-cta{display:block;width:calc(100% - 32px);margin:0 16px 16px;min-height:46px;border:0;border-radius:12px;background:#111827;color:#fff;font-weight:600;cursor:pointer}
.media .riley-card{position:absolute;left:-40px;bottom:-34px;max-width:300px}
.hero-product .media .riley-card{position:relative;left:auto;bottom:auto;margin:18px auto 0}
.stat{display:flex;flex-direction:column;gap:6px}.stat b{font-family:var(--head);font-size:clamp(42px,5vw,68px);line-height:1;font-weight:600;color:var(--brand)}
.stat span{color:var(--muted);font-size:15px}
.svc{list-style:none;margin:0;padding:0;display:grid;gap:22px;grid-template-columns:repeat(var(--cols,3),minmax(0,1fr));counter-reset:n}
.c2{--cols:2}.c3{--cols:3}.c4{--cols:4}
.svc li{counter-increment:n;position:relative}.svc h3{font-size:21px;line-height:1.25}.svc p{color:var(--muted);margin-top:8px;font-size:16px}
.svc .ic{width:44px;height:44px;display:grid;place-items:center;color:var(--brand);margin-bottom:18px}
.trustrow{display:grid;grid-template-columns:repeat(var(--cols,4),minmax(0,1fr));gap:0}.trustrow>div{padding:6px 26px;border-left:1px solid var(--line)}
.trustrow>div:first-child{border-left:0;padding-left:0}.trustrow h3{font-size:18px;line-height:1.3}.trustrow p{color:var(--muted);font-size:15px;margin-top:6px}
.trustrow svg{color:var(--brand);margin-bottom:14px}
.feature{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}.feature .media{aspect-ratio:4/5;overflow:hidden;border-radius:var(--r-media)}
.feature.flip .media{order:2}.feature h2{font-size:clamp(30px,3.6vw,46px);line-height:1.08}.feature p{color:var(--muted);margin-top:18px;font-size:18px}
.ticks{list-style:none;padding:0;margin:26px 0 0;display:grid;gap:12px}.ticks li{display:flex;gap:12px;align-items:flex-start}
.ticks svg{color:var(--brand);flex:none;margin-top:3px}
.statement{max-width:960px;margin:0 auto;text-align:center}.statement q{display:block;font-family:var(--head);font-size:clamp(28px,4vw,50px);line-height:1.18;quotes:none}
.statement cite{display:block;margin-top:26px;font:600 13px var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-style:normal}
.about{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}.about .media{aspect-ratio:5/4;overflow:hidden;border-radius:var(--r-media)}
.about h2{font-size:clamp(30px,3.6vw,46px);line-height:1.08}.about .body>p{color:var(--muted);margin-top:18px;font-size:18px}
.steps{display:grid;grid-template-columns:repeat(var(--cols,3),minmax(0,1fr));gap:40px}.step .n{font-family:var(--head);font-size:44px;color:var(--brand);line-height:1}
.step h3{margin-top:14px;font-size:20px}.step p{color:var(--muted);margin-top:8px}
.towns{display:flex;flex-wrap:wrap;gap:10px}.town{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:999px;
 padding:9px 16px;font-size:15px;background:var(--surface)}.town svg{color:var(--brand)}
.marquee{overflow:hidden;border-block:1px solid var(--line);padding:22px 0;white-space:nowrap}
.marquee .track{display:inline-flex;gap:46px;animation:mq 60s linear infinite;font-family:var(--head);font-size:clamp(22px,2.6vw,34px)}
.marquee .track span{display:inline-flex;align-items:center;gap:46px}.marquee .track span::after{content:"✦";font-size:.5em;color:var(--brand)}
@keyframes mq{to{transform:translateX(-50%)}}
.faq{max-width:860px}.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;font-weight:600;font-size:19px;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:62px;padding:16px 0}
.faq summary::after{content:"+";color:var(--brand);font-size:26px;line-height:1;font-weight:400}.faq details[open] summary::after{content:"–"}
.faq details p{color:var(--muted);padding-bottom:20px;max-width:70ch}
.band{background:var(--deep);color:var(--deep-ink);border-radius:var(--r-media);padding:clamp(40px,6vw,76px);display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap}
.band h2{font-size:clamp(30px,3.6vw,48px);line-height:1.08;max-width:18ch}.band p{opacity:.8;margin-top:12px;max-width:52ch}
.band .btn-cta{background:var(--deep-ink);color:var(--deep)}.band .btn-line{color:var(--deep-ink)}
.gallery{display:grid;grid-template-columns:repeat(var(--cols,3),minmax(0,1fr));gap:16px}.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-media)}
.gallery.tall img:first-child{grid-row:span 2;aspect-ratio:auto;height:0;min-height:100%}
.alert{display:flex;gap:28px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:var(--deep);color:var(--deep-ink);
 border-radius:var(--r-media);padding:clamp(28px,4vw,48px)}.alert h2{font-size:clamp(26px,3vw,38px)}.alert p{opacity:.8;margin-top:8px;max-width:60ch}
.alert .btn-cta{background:var(--deep-ink);color:var(--deep)}.alert .btn-line{color:var(--deep-ink)}
footer{background:var(--deep);color:color-mix(in srgb,var(--deep-ink) 78%,transparent);padding:72px 0 36px;font-size:15px}
footer .cols{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:40px}footer .cols.pair{grid-template-columns:1.5fr 1fr}footer h3{color:var(--deep-ink);font-size:19px;margin-bottom:14px}
footer a{color:var(--deep-ink);text-decoration:none}footer .fine{border-top:1px solid color-mix(in srgb,var(--deep-ink) 16%,transparent);margin-top:44px;padding-top:22px;font-size:13px;opacity:.75}
.callbar{display:none}
.riley-launch{position:fixed;right:18px;bottom:18px;z-index:40;display:flex;align-items:center;gap:9px;background:#111827;color:#fff;border:0;border-radius:999px;
 padding:14px 20px;font:600 15px var(--body),sans-serif;box-shadow:0 14px 34px rgba(0,0,0,.28);cursor:pointer}
.riley{position:fixed;right:18px;bottom:18px;z-index:41;width:min(380px,calc(100vw - 24px));height:min(560px,calc(100vh - 90px));background:#fff;color:#111827;
 border-radius:18px;box-shadow:0 24px 60px rgba(0,0,0,.3);display:none;flex-direction:column;overflow:hidden;border:1px solid #e5e7eb;font-family:var(--body)}
.riley.open{display:flex}.riley header{background:#111827;color:#fff;padding:14px 16px;display:flex;align-items:center;gap:10px}
.riley header b{display:block;font-size:15px}.riley header small{opacity:.8;font-size:12px}
.riley header button{margin-left:auto;background:none;border:0;color:#fff;font-size:22px;cursor:pointer;min-width:40px;min-height:40px}
.riley .msgs{flex:1;overflow:auto;padding:14px;background:#f8fafc;display:flex;flex-direction:column;gap:9px}
.riley .m{max-width:85%;padding:10px 13px;border-radius:14px;font-size:15px;line-height:1.45;white-space:pre-wrap}
.riley .m.a{background:#fff;border:1px solid #e5e7eb;align-self:flex-start}.riley .m.u{background:#111827;color:#fff;align-self:flex-end}
.riley form{display:flex;gap:8px;padding:10px;border-top:1px solid #e5e7eb}
.riley input{flex:1;border:1px solid #e5e7eb;border-radius:10px;padding:0 12px;min-height:44px;font:inherit;font-size:15px}
.riley form button{background:#111827;color:#fff;border:0;border-radius:10px;padding:0 16px;min-height:44px;font-weight:600;cursor:pointer}
.hero-grid.solo{grid-template-columns:minmax(0,900px);padding-block:clamp(80px,11vw,150px)}.hero-grid.solo .lead{max-width:60ch}
.soon{display:inline-flex;align-items:center;gap:8px;margin-top:20px;padding:8px 14px;border:1px solid var(--line);border-radius:999px;font-size:14px;color:var(--muted);background:var(--surface)}
.soon svg{color:var(--brand)}
.strip{list-style:none;margin:40px 0 0;padding:22px 0 0;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:12px 32px;font-size:15px;color:var(--muted)}
.strip li{display:inline-flex;align-items:center;gap:10px}.strip svg{color:var(--brand);flex:none}
.hero-panel{aspect-ratio:4/3;padding:12px;overflow:hidden;border-radius:calc(var(--r-media) + 10px);box-shadow:0 30px 70px rgba(0,0,0,.14);
 background:linear-gradient(140deg,color-mix(in srgb,var(--brand) 60%,transparent),color-mix(in srgb,var(--brand) 10%,transparent) 55%,var(--line))}
.hero-panel img{border-radius:var(--r-media)}
.hero-chat{display:none;align-items:center;gap:10px;width:100%;min-height:52px;margin-top:12px;padding:0 16px;background:#fff;color:#111827;border:1px solid #e5e7eb;
 border-radius:14px;box-shadow:0 10px 30px rgba(0,0,0,.12);font:600 15px var(--body),sans-serif;text-align:left;cursor:pointer}
.hero-chat small{color:#6b7280;font-weight:500;font-size:12.5px}.hero-chat .dot{margin-left:auto;flex:none;width:9px;height:9px;border-radius:9px;background:#22c55e;box-shadow:0 0 0 4px #dcfce7}
.contact{display:grid;grid-template-columns:1fr 1fr;gap:0 48px;max-width:960px}
.contact.one{grid-template-columns:1fr;max-width:480px}.contact.odd>.crow:last-child{grid-column:1/-1}
.crow{display:flex;align-items:center;gap:16px;padding:22px 0;border-top:1px solid var(--line);min-width:0}
.crow>div{min-width:0}.crow svg{color:var(--brand);flex:none}
.crow small{display:block;font:600 12px/1 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.crow a,.crow .linkbtn{font-weight:600;font-size:18px;text-decoration:none;overflow-wrap:anywhere}.crow a:hover,.crow .linkbtn:hover{color:var(--brand)}
.linkbtn{background:none;border:0;padding:0;cursor:pointer;text-align:left;min-height:44px;display:inline-flex;align-items:center}
html.js .rv{opacity:0;transform:translateY(22px);transition:opacity .8s ease,transform .8s ease}html.js .rv.in,html.qa .rv{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){html.js .rv{opacity:1;transform:none;transition:none}.marquee .track{animation:none}}
@media (max-width:960px){.hero-grid,.feature,.about{grid-template-columns:1fr;gap:44px}.twin,.about.solo{grid-template-columns:1fr;gap:0}.twin .head,.about.solo .head{margin-bottom:32px}.feature.flip .media{order:0}
 .svc,.steps{grid-template-columns:1fr 1fr}.trustrow{grid-template-columns:1fr 1fr;gap:28px}.trustrow>div{border-left:0;padding:0}
 footer .cols,footer .cols.pair{grid-template-columns:1fr}.links{display:none}.menu{display:block}.feature .media,.feature.flip .media,.about .media{order:2}.feature .body,.about .body{order:1}.media .riley-card{position:relative;left:auto;bottom:auto;margin:-60px auto 0}
 .gallery{grid-template-columns:1fr 1fr}.gallery.tall img:first-child{grid-row:auto;aspect-ratio:4/3;height:auto;min-height:0}
 .svc>li:last-child:nth-child(odd),.steps>.step:last-child:nth-child(odd),.trustrow>div:last-child:nth-child(odd),.gallery>img:last-child:nth-child(odd){grid-column:1/-1}
 .gallery>img:last-child:nth-child(odd){aspect-ratio:16/9}}
@media (min-width:961px){.svc.c3.split{--cols:6}.svc.c3.split>li{grid-column:span 2}.svc.c3.split>li:nth-last-child(-n+2){grid-column:span 3}
 .svc.c4.split{--cols:12}.svc.c4.split>li{grid-column:span 3}.svc.c4.split>li:nth-last-child(-n+3){grid-column:span 4}
 .hero-product .hero-grid{grid-template-columns:1.25fr .75fr}.hero-product .hero-grid.solo{grid-template-columns:minmax(0,900px)}}
@media (max-width:760px){.cols-3,.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}.cols-3>.stat:last-child{grid-column:1/-1}.contact{grid-template-columns:1fr;gap:0}}
@media (max-width:600px){body{font-size:16px}.svc,.steps,.trustrow,.gallery{grid-template-columns:1fr}
 .hero-grid{gap:24px;padding-block:28px 36px}.hero .hero-media,.hero .hero-panel{aspect-ratio:4/3;max-height:45vh}
 section.hero h1{font-size:clamp(32px,9.2vw,40px);margin-top:16px}.hero .lead{margin-top:16px}.hero .ctas{margin-top:24px}
 .hero .riley-card,.hero .solo-card{display:none}.hero-chat{display:flex}.hero.has-chat-row .ctas button.btn-line{display:none}
 .badges{margin-top:22px}.strip{margin-top:26px;padding-top:18px;gap:10px 22px}.gallery>img:last-child:nth-child(odd){aspect-ratio:4/3}
 .ctas .btn,.band .btn,.alert .btn{width:100%;white-space:normal;overflow-wrap:anywhere;text-align:center}
 .concept .long{display:none}.concept .short{display:inline}.nav .btn .label{display:none}.brand{font-size:17px}
 .brand span{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.1}
 .nav .wrap{gap:10px}.nav .btn{padding:0 12px;font-size:14px;letter-spacing:.02em;min-width:44px}.nav-cta{margin-left:0}.menu summary span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
 .riley-launch{padding:0;width:56px;height:56px;justify-content:center}.riley-launch .label{display:none}.wrap{padding-inline:20px}
 .callbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:41;gap:8px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line)}
 .callbar .btn{flex:1;justify-content:center;white-space:nowrap;width:auto}body.has-callbar{padding-bottom:84px}body.has-callbar .riley-launch{display:none}}
@media (max-width:380px){.nav .brand{font-size:16px}.nav .btn{padding:0 10px;font-size:13.5px}}

:root{--r-btn:0;--r-media:0}
body{letter-spacing:.005em}
.hero h1,.head h2,.feature h2,.about h2,.band h2,.statement q{font-weight:500;letter-spacing:-.005em}.hero h1 em{font-style:italic}
.hero h1{font-size:clamp(46px,6.6vw,88px)}
.eyebrow{color:var(--brand);letter-spacing:.3em}.eyebrow::before,.eyebrow::after{content:"";width:28px;height:1px;background:currentColor;opacity:.6}
.btn{letter-spacing:.14em;text-transform:uppercase;font-size:13.5px;font-weight:600}
.btn-line{border-color:var(--brand);color:var(--brand)}
.hero-full{min-height:min(88vh,820px);display:flex;align-items:center;text-align:center}
.hero-full .bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-full .bg-shade{position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(12,12,13,.55),rgba(12,12,13,.92))}
.hero-full .wrap{position:relative;z-index:1}.hero-full .lead{margin-inline:auto;color:#d7d0c3}.hero-full .ctas,.hero-full .badges{justify-content:center}
.hero-plain{background:radial-gradient(ellipse at 70% 20%,var(--deep),var(--bg) 60%)}
.hero-media{aspect-ratio:4/5;overflow:hidden;outline:1px solid var(--line);outline-offset:14px}
.svc li,.trustrow>div{border:1px solid var(--line);padding:34px;background:var(--surface)}.trustrow{gap:18px}.trustrow>div:first-child{padding-left:34px;border-left:1px solid var(--line)}
.svc .ic,.trustrow svg{color:var(--brand)}.svc h3{font-family:var(--head);font-weight:500;font-size:26px}
.center .head,.head{text-align:center;margin-inline:auto}
.head h2::after{content:"";display:block;width:44px;height:1px;background:var(--brand);margin:26px auto 0}
.stat{align-items:center;text-align:center}.stat b{font-weight:500;color:var(--brand)}
.town{background:transparent}.marquee .track{font-style:italic}
.band{border:1px solid var(--line);background:var(--surface);color:var(--fg)}.band .btn-cta{background:var(--brand);color:var(--bg)}
.alert{background:var(--surface);color:var(--fg);border:1px solid var(--line)}.alert .btn-cta{background:var(--brand);color:var(--bg)}.alert .btn-line{color:var(--brand)}
.hero-grid.solo{justify-content:center;text-align:center}.hero-grid.solo .lead{margin-inline:auto}
.hero-grid.solo .ctas,.hero-grid.solo .badges,.hero-grid.solo .strip{justify-content:center}
.soon{background:transparent;border-color:var(--brand);color:var(--brand);border-radius:0;letter-spacing:.1em;text-transform:uppercase;font-size:12.5px}
.contact{gap:14px 18px}.crow{border:1px solid var(--line);background:var(--surface);padding:24px 26px}
footer{background:#070708}
@media (max-width:600px){section.hero h1{font-size:clamp(36px,10.4vw,46px)}}

body.branded .band .btn-cta,body.branded .alert .btn-cta{background:var(--cta);color:var(--cta-ink)}

.flow .head{margin-bottom:28px}
.flow .flow-kicker{display:inline-flex;align-items:center;gap:10px;margin:0 0 12px;font:600 13px/1 var(--body);letter-spacing:.22em;text-transform:uppercase;color:var(--brand)}
.flow-nodes{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 40px}
.flow-node{position:relative;margin:0;padding:0;min-width:0;display:grid;grid-template-rows:subgrid;grid-row:span 4;row-gap:0;align-items:start}
.flow-node::before{content:"";position:absolute;left:0;right:-40px;top:17px;height:1px;background:var(--line)}
.flow-node:nth-child(3n)::before{right:0}.flow-node p{max-width:38ch}
.flow-num{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:46px;height:34px;padding:0 12px;background:var(--bg);
 font:600 14px/1 var(--body);letter-spacing:.16em;color:var(--brand);grid-area:1/1;justify-self:start}
.flow-human .flow-num{border-radius:999px;box-shadow:0 0 0 1px var(--brand)}
.flow-human .flow-num{margin-bottom:16px}
.flow-cue{grid-area:1/1;align-self:end;font:600 13px/1 var(--body);letter-spacing:.18em;text-transform:uppercase;color:var(--brand)}
.flow-node .flow-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.body>p.who,.feature p.who{margin-top:14px}
.who-label{display:block;margin-bottom:4px;font:600 13px/1 var(--body);letter-spacing:.22em;text-transform:uppercase;color:var(--brand)}
.flow-ic{width:48px;height:48px;display:grid;place-items:center;margin-top:14px;color:var(--brand);background:var(--surface);border:1px solid var(--line);
 border-radius:min(var(--r-media),14px)}
.flow-node h3{margin-top:14px;font-size:22px;line-height:1.25}
.flow-node p{margin-top:6px;color:var(--muted);font-size:16px;line-height:1.55}
.flow-note{margin:28px auto 0;color:var(--muted);font-size:16px;line-height:1.55;max-width:62ch;text-align:center}
.hero-jobs{margin-top:16px;font-size:18px;font-weight:400;line-height:1.55;color:var(--muted);max-width:60ch}
.hero-grid.solo .lead.lead-first,.hero .lead.lead-first{color:var(--fg)}
.hero-jobs+.ctas{margin-top:18px}
.d-luxe_dark .hero-grid.solo .hero-jobs,.d-heritage .hero-grid.solo .hero-jobs{margin-inline:auto}
.strip.strip-type{gap:12px 28px}.strip-type li{gap:12px}.strip-type li::before{content:"";width:5px;height:5px;background:var(--brand);flex:none}
.btn-link{border:0;padding:0 4px;background:transparent;color:var(--muted);text-decoration:underline;text-underline-offset:.3em;text-decoration-color:var(--line)}
.btn-link:hover{color:var(--fg);transform:none;text-decoration-color:currentColor}
.guardrail{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 28px;margin:28px auto 0;max-width:900px;text-align:left;font-size:16px;color:var(--muted)}
.guardrail li{align-items:flex-start;line-height:1.5}
.intake-preview{border:1px solid var(--line);border-radius:var(--r-media);padding:18px 22px;background:var(--surface);display:grid;gap:8px}
.intake-preview h3{font-size:22px;line-height:1.2}
.intake-preview ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 20px}
.intake-preview li{display:inline-flex;align-items:flex-start;gap:12px;font-size:16px;color:var(--muted)}
.intake-preview li::before{content:"";width:5px;height:5px;margin-top:.65em;background:var(--brand);flex:none}
.intake-lead{font-size:17px;color:var(--muted);max-width:62ch}
@media (max-width:899px){.flow-nodes{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 28px}.flow-node::before{right:-28px}.flow-node:nth-child(3n)::before{right:-28px}.flow-node:nth-child(2n)::before{right:0}}
@media (max-width:760px){.guardrail{grid-template-columns:1fr;gap:12px;max-width:52ch}}
@media (max-width:600px){.intake-preview ul{display:grid;gap:6px}}
@media (max-width:599px){.flow-nodes{grid-template-columns:1fr;gap:20px}
 .flow-node{display:grid;grid-template-columns:48px minmax(0,1fr);grid-template-areas:"num label" "icon text";column-gap:16px;row-gap:8px;align-items:start;grid-template-rows:none;grid-row:auto}
 .flow-node::before,.flow-node:nth-child(2n)::before,.flow-node:nth-child(3n)::before,.flow-node:nth-child(6n)::before{top:0;bottom:-20px;left:23px;right:auto;width:1px;height:auto}
 .flow-node:last-child::before{bottom:0}
 .flow-num{grid-area:num;min-width:48px;height:36px;padding:0;justify-self:start}
 .flow-ic{grid-area:icon;margin:0;width:48px;height:48px;justify-self:start}
 .flow-node h3{grid-area:label;margin:0;align-self:center}.flow-node p{grid-area:text;margin:0}
 .flow-human{grid-template-areas:"num label" "num cue" "icon text";grid-template-rows:minmax(36px,auto) auto auto}.flow-human .flow-num{margin-bottom:0}
 .flow-cue{grid-area:cue;align-self:start}
 .flow-note{margin-top:24px}}

body.product .eyebrow{font-size:14px;letter-spacing:.26em}
body.product .lead,body.product .hero-grid.solo .lead{font-size:clamp(18px,1.6vw,22px);line-height:1.5;max-width:54ch}
body.product main .btn-cta{font-size:14.5px;font-weight:600;min-height:52px}
body.product .strip{font-size:16px}
body.product section.block{padding-block:clamp(48px,6.5vw,96px)}body.product section.block.tight{padding-block:40px}
body.product .hero+section.block{padding-top:72px}
body.product .hero-grid:has(.hero-jobs){padding-bottom:max(24px,calc(clamp(56px,8vw,112px) - 86px))}
body.product .hero-grid.solo:has(.hero-jobs){padding-bottom:max(40px,calc(clamp(80px,11vw,150px) - 86px))}
body.product section.block:has(.guardrail){padding-block:clamp(40px,5vw,72px)}
body.product .head p{max-width:62ch}
body.product.d-luxe_dark .head p,body.product.d-heritage .head p,body.product .center .head p{margin-inline:auto}
body.product .svc h3{font-size:26px}body.product .svc p{font-size:17px}body.product .svc .ic svg{width:26px;height:26px}
body.product .trustrow h3{font-size:22px}body.product .trustrow p{font-size:16.5px}
body.product .step h3,body.product footer h3{font-size:22px}
body.product .about .body>p,body.product .about.solo .body>p{max-width:56ch}
body.product .feature .media{aspect-ratio:1/1}
body.product .contact{margin-inline:auto}
body.product .stat span,body.product footer,body.product .field label,body.product .intake-consent .check,body.product .intake-live{font-size:16px}
body.product .nb{white-space:nowrap}
body.product .hero-grid.solo{padding-top:clamp(56px,8vw,120px)}
body.product .head{margin-bottom:36px}body.product .head p{margin-top:12px}body.product.d-luxe_dark .head h2::after{margin-top:20px}
body.product.d-luxe_dark .svc li,body.product.d-luxe_dark .trustrow>div{padding:26px}
body.product .svc .ic{width:40px;height:40px;margin-bottom:14px}body.product .trustrow svg{margin-bottom:10px}
body.product .faq summary{min-height:56px;padding:14px 0}body.product .crow{padding:18px 0}
body.product footer{padding:56px 0 32px}body.product footer h3{margin-bottom:10px}body.product footer .fine{margin-top:32px}
body.product .intake-form{gap:20px}body.product .intake-step{gap:16px}body.product .intake-step legend{margin-bottom:0}body.product .intake-options{gap:8px}
body.product .chip{min-height:48px;padding:10px 16px}body.product .intake-fields{gap:10px 18px}body.product .field{gap:6px}
body.product .field input:not([type=checkbox]){min-height:48px}
body.product footer .foot-nav{display:flex;flex-wrap:wrap;gap:0 22px;margin-top:4px;font-size:15px}
body.product footer .foot-nav a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px}
body.product .brand{min-height:44px}
body.product .nav .links a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px}
@media (max-width:960px){body.product .twin .head,body.product .about.solo .head{margin-bottom:24px}body.product footer .cols{gap:28px}
 body.product .feature p,body.product .about .body>p{font-size:17px}}
@media (max-width:600px){body.product .hero-jobs{font-size:16px}body.product .hero+section.block{padding-top:56px}
 body.product .hero-grid.solo{padding-block:40px 36px}body.product .head p{font-size:17px}body.product .trustrow{gap:14px}
 body.product footer .foot-nav{gap:0 14px}}
body.product .nav .links a{padding:0 9px;margin:0 -9px}
body.product footer .foot-nav{row-gap:12px}body.product footer .foot-nav a{padding:4px 6px 8px;margin:-4px -6px -8px}

.brand img.brand-mark{height:28px;width:auto;max-width:none;flex:none}
footer h3 img.foot-brand{display:block;width:282px;max-width:100%;height:auto}
footer h3:has(>img.foot-brand){margin:0 0 18px}
@media (max-width:600px){.brand img.brand-mark{height:24px}}
html.xp .brand{gap:12px}html.xp .brand .brand-word{display:block;flex:0 1 auto;min-width:0;width:179.66px;height:auto;aspect-ratio:767/111;overflow:hidden}html.xp .brand .brand-name{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;text-overflow:clip}@media (max-width:600px){html.xp .brand{max-width:calc(100% - 185.98px)}html.xp .brand .brand-word{width:152.02px}}@media (max-width:380px){html.xp .brand{flex-direction:column;justify-content:center;gap:5px;max-width:none}html.xp .brand img.brand-mark{height:28px;margin-right:9.64px}html.xp .brand .brand-word{flex:none;width:100%;max-width:101px}}html.xp .nav .links{flex-shrink:0}
@media (forced-colors:active){html.xp .brand{max-width:none}html.xp .brand .brand-word{display:none}html.xp .brand .brand-name{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto;clip-path:none;white-space:normal}}

html.xp{--xp-ease:cubic-bezier(.2,.75,.25,1)}
html.xp [id]{scroll-margin-top:88px}
html.xp [data-xp-count]{font-variant-numeric:tabular-nums}
html.xp.js .rv{transition:opacity .75s var(--xp-ease) var(--xp-d,0s),transform .75s var(--xp-ease) var(--xp-d,0s)}
html.xp.js .rv.xp-on{transition:opacity .3s var(--xp-ease),transform .3s var(--xp-ease)}
html.xp.js .rv[data-xp^=hero]{opacity:1;transform:none;transition:none}
html.xp .btn{transition:transform .18s var(--xp-ease)}
html.xp main .block img:not(.xp-wait):not(.rv){transition:opacity .6s ease,transform .9s var(--xp-ease)}
html.xp .xp-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
html.xp body:not(.d-editorial) .svc>li,html.xp .d-luxe_dark .trustrow>div,html.xp .d-clean_premium .trustrow>div{position:relative}
html.xp body:not(.d-editorial) .svc>li::after,html.xp .d-luxe_dark .trustrow>div::after,html.xp .d-clean_premium .trustrow>div::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;box-shadow:0 24px 48px -24px color-mix(in srgb,var(--fg) 45%,transparent);transition:opacity .3s var(--xp-ease)}
html.xp .links a,html.xp .menu-links a,html.xp footer a,html.xp .crow a{position:relative}
html.xp .links a::after,html.xp .menu-links a::after,html.xp footer a::after,html.xp .crow a::after{content:"";position:absolute;left:0;right:0;top:calc(50% + .62em);height:1px;background:currentColor;pointer-events:none;transform:scaleX(0);transform-origin:0 50%;transition:transform .3s var(--xp-ease)}
html.xp .links a:focus-visible::after,html.xp .menu-links a:focus-visible::after,html.xp footer a:focus-visible::after,html.xp .crow a:focus-visible::after{transform:none}
html.xp .menu-links a{display:grid;grid-template-columns:fit-content(100%)}
html.xp .menu-links a::after{position:static;grid-row:2;grid-column:1;margin-top:calc(.62em - .5lh)}
html.xp body.product .nav .links a::after{left:9px;right:9px}
html.xp body.product footer .foot-nav a::after{left:6px;right:6px;top:calc(50% - 2px + .62em)}
@media (prefers-reduced-motion:no-preference){
html.xp{scroll-behavior:smooth}
html.xp.js:not(.qa) .rv:not(.in):not([data-xp^=hero]){transform:translate3d(0,28px,0)}
html.xp.js:not(.qa) .rv:not(.in)[data-xp=fade]{transform:none}
html.xp.js:not(.qa) .rv:not(.in)[data-xp=scale]{transform:scale(.94)}
html.xp.js:not(.qa) main .block img.xp-wait{opacity:0;transition:none}
html.xp header.nav{animation:xp-drop .7s var(--xp-ease) backwards}
html.xp [data-xp=hero]>*{animation:xp-rise .9s var(--xp-ease) .12s backwards}
html.xp [data-xp=hero]>:nth-child(2){animation-delay:.2s}html.xp [data-xp=hero]>:nth-child(3){animation-delay:.28s}
html.xp [data-xp=hero]>:nth-child(4){animation-delay:.36s}html.xp [data-xp=hero]>:nth-child(5){animation-delay:.44s}
html.xp [data-xp=hero]>:nth-child(6){animation-delay:.52s}html.xp [data-xp=hero]>:nth-child(n+7){animation-delay:.6s}
html.xp [data-xp=hero-media]{animation:xp-zoom 1.1s var(--xp-ease) .25s backwards}
html.xp .btn:not([disabled]):active{transform:scale(.97)}
}
@media (min-width:961px) and (prefers-reduced-motion:no-preference){
html.xp.js:not(.qa) .rv:not(.in)[data-xp=left]{transform:translate3d(-24px,0,0)}
html.xp.js:not(.qa) .rv:not(.in)[data-xp=right]{transform:translate3d(24px,0,0)}
}
@media (min-width:961px) and (hover:hover) and (pointer:fine){
html.xp body:not(.d-editorial) .svc>li:hover::after,html.xp .d-luxe_dark .trustrow>div:hover::after,html.xp .d-clean_premium .trustrow>div:hover::after{opacity:1}
html.xp .links a:hover::after,html.xp .menu-links a:hover::after,html.xp footer a:hover::after,html.xp .crow a:hover::after{transform:none}
}
@media (min-width:961px) and (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
html.xp body:not(.d-editorial) .svc>li:hover,html.xp .d-luxe_dark .trustrow>div:hover,html.xp .d-clean_premium .trustrow>div:hover{transform:translate3d(0,-4px,0)}
html.xp .feature>.media:hover img,html.xp .about>.media:hover img{transform:scale(1.04)}
}
@keyframes xp-drop{from{opacity:0;transform:translate3d(0,-100%,0)}}
@keyframes xp-rise{from{opacity:0;transform:translate3d(0,24px,0)}}
@keyframes xp-zoom{from{opacity:0;transform:scale(.96)}}
@media (prefers-reduced-motion:reduce){
html.xp *,html.xp *::before,html.xp *::after{animation:none!important;transition:none!important}
html.xp{scroll-behavior:auto}
html.xp [data-xp-px]{transform:none!important}
}
html.xp.qa *,html.xp.qa *::before,html.xp.qa *::after{animation:none!important;transition:none!important}
html.xp.qa [data-xp-px]{transform:none!important}
html.xp body{--xp-s1:4px;--xp-s2:8px;--xp-s3:12px;--xp-s4:16px;--xp-s5:24px;--xp-s6:32px;--xp-s7:48px;--xp-s8:64px;--xp-s9:96px;--xp-t-press:.18s;--xp-t-hover:.3s;--xp-ring-w:2px;--xp-ring-o:3px;--xp-ring:var(--fg);--xp-gutter:24px;--xp-g-wait:linear-gradient(135deg,var(--surface),var(--tint))}
html.xp body.d-editorial{--xp-e1:none;--xp-e2:0 1px 0 var(--line);--xp-e3:0 16px 32px -24px color-mix(in srgb,var(--fg) 40%,transparent);--xp-e4:0 24px 48px -24px color-mix(in srgb,var(--fg) 45%,transparent);--xp-r-card:2px;--xp-g-band:none;--xp-g-alert:var(--xp-g-band)}
html.xp body.d-luxe_dark{--xp-e1:inset 0 1px 0 color-mix(in srgb,var(--fg) 6%,transparent);--xp-e2:0 8px 24px -8px color-mix(in srgb,#000 60%,transparent);--xp-e3:0 32px 64px -32px color-mix(in srgb,#000 90%,transparent),0 0 0 1px color-mix(in srgb,var(--brand) 36%,transparent);--xp-e4:0 32px 96px -32px color-mix(in srgb,#000 95%,transparent),0 0 0 1px var(--line);--xp-r-card:0;--xp-g-band:linear-gradient(180deg,var(--surface),var(--bg));--xp-g-alert:var(--xp-g-band)}
html.xp body.d-modern_bold{--xp-e1:none;--xp-e2:0 12px 24px -12px color-mix(in srgb,var(--fg) 40%,transparent);--xp-e3:0 24px 48px -24px color-mix(in srgb,var(--fg) 45%,transparent);--xp-e4:0 32px 64px -24px color-mix(in srgb,var(--fg) 45%,transparent);--xp-r-card:24px;--xp-g-band:linear-gradient(135deg,var(--fg),color-mix(in srgb,var(--fg) 40%,#000));--xp-g-alert:linear-gradient(135deg,var(--deep),color-mix(in srgb,var(--deep) 76%,#000));--xp-mark:var(--pop,var(--brand));--xp-mark-w:48px;--xp-mark-h:8px}
html.xp body.d-heritage{--xp-e1:0 1px 0 var(--line),0 4px 12px -8px color-mix(in srgb,var(--fg) 30%,transparent);--xp-e2:0 8px 16px -8px color-mix(in srgb,var(--fg) 30%,transparent);--xp-e3:0 24px 48px -28px color-mix(in srgb,var(--fg) 40%,transparent);--xp-e4:0 32px 64px -32px color-mix(in srgb,var(--fg) 45%,transparent);--xp-r-card:4px;--xp-g-band:linear-gradient(180deg,var(--deep),color-mix(in srgb,var(--deep) 84%,#000));--xp-g-alert:var(--xp-g-band)}
html.xp body.d-clean_premium{--xp-e1:0 1px 2px color-mix(in srgb,var(--fg) 6%,transparent),0 1px 1px color-mix(in srgb,var(--fg) 4%,transparent);--xp-e2:0 8px 24px -12px color-mix(in srgb,var(--fg) 24%,transparent);--xp-e3:0 24px 48px -20px color-mix(in srgb,var(--fg) 26%,transparent),0 8px 16px -8px color-mix(in srgb,var(--fg) 10%,transparent);--xp-e4:0 40px 96px -32px color-mix(in srgb,var(--fg) 30%,transparent);--xp-r-card:20px;--xp-g-band:radial-gradient(120% 160% at 0% 0%,var(--deep),color-mix(in srgb,var(--deep) 60%,#000));--xp-g-alert:var(--xp-g-band);--xp-mark:linear-gradient(90deg,var(--brand),var(--glow));--xp-mark-w:40px;--xp-mark-h:4px}
html.xp body.branded{--xp-mark-h:4px}
html.xp :is(footer,.band,.alert,.hero-block,.hero-full){--xp-ring:var(--deep-ink)}html.xp :is(.riley,.riley-card){--xp-ring:#111827}html.xp .riley header{--xp-ring:#fff}
@media (max-width:600px){html.xp body{--xp-gutter:20px}}
html.xp body:not(.d-editorial) :is(.svc>li,.crow),html.xp :is(.d-luxe_dark,.d-clean_premium) .trustrow>div,html.xp .town{box-shadow:var(--xp-e1);border-radius:var(--xp-r-card)}
html.xp body:not(.d-editorial) .svc>li::after,html.xp .d-luxe_dark .trustrow>div::after,html.xp .d-clean_premium .trustrow>div::after{box-shadow:var(--xp-e3)}
html.xp header.nav::after{content:"";position:absolute;pointer-events:none;inset:0 0 -1px;opacity:0;box-shadow:var(--xp-e2)}
html.xp.xp-scrolled header.nav::after{opacity:1}
html.xp .menu-links{box-shadow:var(--xp-e3)}html.xp .riley{box-shadow:var(--xp-e4)}
html.xp .callbar{box-shadow:0 -8px 24px -16px color-mix(in srgb,#000 30%,transparent)}
html.xp .band{background-image:var(--xp-g-band)}html.xp .alert{background-image:var(--xp-g-alert)}
html.xp body.d-luxe_dark :is(.band,.alert){box-shadow:inset 0 1px 0 color-mix(in srgb,var(--brand) 40%,transparent)}
html.xp .hero-block{isolation:isolate}html.xp body:not(.branded,.product) .hero-block{background-image:linear-gradient(135deg,var(--brand),color-mix(in srgb,var(--brand) 76%,#000))}
@media (min-width:961px){html.xp .hero-block>.hero-grid:not(.solo)::before{content:"";position:absolute;pointer-events:none;z-index:-1;top:max(-160px,-13vw);right:max(-160px,-13vw);width:min(640px,52vw);height:min(640px,52vw);border-radius:50%;box-shadow:inset 0 0 0 1px color-mix(in srgb,#fff 18%,transparent)}}
@media (min-width:961px) and (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
html.xp body.d-editorial .svc>li::after{content:"";position:absolute;pointer-events:none;left:0;right:0;top:-1px;height:2px;background:var(--brand);transform:scaleX(0);transform-origin:0 50%;transition:transform var(--xp-t-hover) var(--xp-ease)}
html.xp body.d-editorial .svc>li:hover::after{transform:none}
}
html.xp .btn{position:relative}html.xp .btn.btn-link{color:var(--muted)}
html.xp .btn:not(.btn-link)::after{content:"";position:absolute;pointer-events:none;inset:0;border-radius:inherit;opacity:0;box-shadow:var(--xp-e2),0 0 0 3px color-mix(in srgb,var(--xp-ring) 22%,transparent);transition:opacity var(--xp-t-hover) var(--xp-ease)}
html.xp .riley-launch::after{content:"";position:absolute;pointer-events:none;inset:0;border-radius:inherit;z-index:-1;opacity:0;box-shadow:0 0 0 3px color-mix(in srgb,var(--xp-ring) 22%,transparent);transition:opacity var(--xp-t-hover) var(--xp-ease)}
@media (min-width:961px) and (hover:hover) and (pointer:fine){
html.xp :is(.btn:not(.btn-link),.riley-launch):not([disabled]):hover::after{opacity:1}
html.xp .btn-line:not([disabled]):hover{box-shadow:inset 0 0 0 1px currentColor}
html.xp :is(.btn-link,.linkbtn):not([disabled]):hover{text-decoration:underline;text-decoration-color:currentColor;text-underline-offset:.3em}
}
html.xp .btn:not(.btn-link):focus-visible{isolation:isolate}html.xp .btn:not(.btn-link):focus-visible::after{z-index:-1}
html.xp :is(.btn:not(.btn-link),.riley-launch):focus-visible::after{opacity:1}
html.xp .riley-launch:focus-visible{--xp-ring:#111827}html.xp .riley-launch:focus-visible::after{box-shadow:0 0 0 3px #fff}
html.xp :is(.btn:not(.btn-link),.riley-launch):not([disabled]):active::after{opacity:.5}
html.xp .btn[disabled]{opacity:.55;cursor:not-allowed}
@media (prefers-reduced-motion:no-preference){html.xp :is(.menu summary,.riley-launch){transition:transform var(--xp-t-press) var(--xp-ease)}html.xp :is(.menu summary,.riley-launch):not([disabled]):active{transform:scale(.94)}}
@media (max-width:600px) and (prefers-reduced-motion:no-preference){html.xp .nav .btn:not([disabled]):active{transform:scale(.94)}}
html.xp :is(a,button,summary):focus-visible{outline:var(--xp-ring-w) solid var(--xp-ring);outline-offset:var(--xp-ring-o)}
html.xp .riley input:focus-visible{outline:var(--xp-ring-w) solid var(--xp-ring);outline-offset:var(--xp-ring-o)}
html.xp .intake-form :is(input,textarea):focus-visible{outline-offset:var(--xp-ring-o)}
html.xp body:is(.d-clean_premium,.d-modern_bold) .head>h2:first-child{position:relative}
html.xp body:is(.d-clean_premium,.d-modern_bold) .head>h2:first-child::before{content:"";position:absolute;pointer-events:none;left:var(--xp-mark-x,0);top:calc(-1*(var(--xp-s5) + var(--xp-mark-h)));width:var(--xp-mark-w);height:var(--xp-mark-h);border-radius:var(--xp-mark-h);background:var(--xp-mark)}
html.xp .center .head{--xp-mark-x:calc(50% - var(--xp-mark-w)/2)}
html.xp body.d-luxe_dark .head h2::after{background:linear-gradient(90deg,transparent,var(--brand),transparent)}
html.xp body.d-heritage :is(.eyebrow,.step .n){color:color-mix(in srgb,var(--gilt) 60%,var(--fg))}
html.xp body.d-clean_premium .step .n{background:linear-gradient(120deg,var(--brand),var(--fg));-webkit-background-clip:text;background-clip:text;color:transparent}
html.xp .hero-full :is(.eyebrow,h1,.lead,.badges){text-shadow:0 2px 16px color-mix(in srgb,var(--bg) 70%,transparent)}
html.xp ::selection{background:color-mix(in srgb,var(--brand) 28%,var(--bg));color:var(--fg)}
html.xp body.d-luxe_dark main>section.block+section.block::before{content:"";position:absolute;pointer-events:none;top:0;left:calc(50% - 80px);width:160px;height:1px;background:linear-gradient(90deg,transparent,var(--brand),transparent)}
html.xp body.d-luxe_dark main>section.block+section.block::after{content:"";position:absolute;pointer-events:none;top:-4px;left:calc(50% - 4px);width:8px;height:8px;background:var(--bg);box-shadow:inset 0 0 0 1px var(--brand);transform:rotate(45deg)}
html.xp body.d-editorial main>section.block+section.block::before{content:"";position:absolute;pointer-events:none;top:0;left:max(var(--xp-gutter),calc(50% - 576px));right:max(var(--xp-gutter),calc(50% - 576px));height:1px;background:var(--line)}
html.xp body.d-heritage main>section.block+section.block::before{content:"";position:absolute;pointer-events:none;top:-2px;left:calc(50% - 60px);width:120px;height:4px;box-shadow:inset 0 1px 0 var(--gilt),inset 0 -1px 0 var(--gilt)}
html.xp :is(.feature,.about)>.media{background-image:var(--xp-g-wait)}
html.xp body:is(.d-clean_premium,.d-luxe_dark,.d-heritage) :is(.feature,.about)>.media::after{content:"";position:absolute;pointer-events:none;inset:0;border-radius:inherit}
html.xp body.d-clean_premium :is(.feature,.about)>.media::after{background:linear-gradient(180deg,transparent 60%,color-mix(in srgb,var(--fg) 12%,transparent));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--fg) 8%,transparent)}
html.xp body.d-luxe_dark :is(.feature,.about)>.media::after{background:radial-gradient(ellipse at center,transparent 55%,color-mix(in srgb,#000 45%,transparent));box-shadow:inset 0 0 0 1px var(--line)}
html.xp body.d-heritage :is(.feature,.about)>.media::after{background:color-mix(in srgb,var(--gilt) 12%,transparent);mix-blend-mode:multiply;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--gilt) 40%,transparent)}
html.xp body.branded.d-heritage :is(.feature,.about)>.media::after{background:none}
html.xp body.d-heritage .hero-media{box-shadow:inset 0 0 0 3px var(--surface),inset 0 0 0 4px var(--gilt)}
html.xp body.d-modern_bold .hero-media{border-radius:32px 32px 32px 128px}
html.xp body.d-modern_bold :is(.feature,.about)>.media{border-radius:24px 24px 24px 96px}
@media (max-width:600px){html.xp body.d-modern_bold .hero-media{border-radius:24px 24px 24px 96px}}
html.xp body{--xp-f:calc((100vw - 360px)/1080);--xp-wide:1280px;--xp-gutter:clamp(20px,calc(20px + 28*var(--xp-f)),var(--xp-s7,48px));font-size:clamp(16px,calc(16px + 2*var(--xp-f)),18px);line-height:1.6}
html.xp body.d-editorial{--xp-h1:min(clamp(41.05px,calc(41.05px + 36.35*var(--xp-f)),77.4px),max(32px,9.2vw));--xp-h2:clamp(28.83px,calc(28.83px + 15.96*var(--xp-f)),44.79px);--xp-h2s:clamp(25.63px,calc(25.63px + 11.69*var(--xp-f)),37.32px);--xp-h3:clamp(20.25px,calc(20.25px + 5.67*var(--xp-f)),25.92px);--xp-h4:clamp(18px,calc(18px + 3.6*var(--xp-f)),21.6px);--xp-lh1:1.05;--xp-w1:400;--xp-ls1:-.03em;--xp-lh2:1.1;--xp-w2:400;--xp-ls2:-.02em;--xp-lh3:1.15;--xp-w3:400;--xp-ls3:-.01em;--xp-ew:500;--xp-els:.2em;--xp-lw:500;--xp-lls:.14em}
html.xp body.d-heritage{--xp-h1:min(clamp(36.49px,calc(36.49px + 28.01*var(--xp-f)),64.5px),max(30px,8.4vw));--xp-h2:clamp(28.83px,calc(28.83px + 15.96*var(--xp-f)),44.79px);--xp-h2s:clamp(25.63px,calc(25.63px + 11.69*var(--xp-f)),37.32px);--xp-h3:clamp(20.25px,calc(20.25px + 5.67*var(--xp-f)),25.92px);--xp-h4:clamp(18px,calc(18px + 3.6*var(--xp-f)),21.6px);--xp-lh1:1.05;--xp-w1:400;--xp-ls1:-.015em;--xp-lh2:1.1;--xp-w2:400;--xp-ls2:-.01em;--xp-lh3:1.15;--xp-w3:700;--xp-ls3:0;--xp-ew:600;--xp-els:.24em;--xp-lw:600;--xp-lls:.16em}
html.xp body.d-clean_premium{--xp-h1:min(clamp(37.01px,calc(37.01px + 31.65*var(--xp-f)),68.66px),max(32px,9.2vw));--xp-h2:clamp(27.98px,calc(27.98px + 15.97*var(--xp-f)),43.95px);--xp-h2s:clamp(24.33px,calc(24.33px + 10.83*var(--xp-f)),35.16px);--xp-h3b:clamp(21.16px,calc(21.16px + 6.96*var(--xp-f)),28.12px);--xp-h3:clamp(18.4px,calc(18.4px + 4.1*var(--xp-f)),22.5px);--xp-h4:clamp(16px,calc(16px + 2*var(--xp-f)),18px);--xp-lh1:1.05;--xp-w1:800;--xp-ls1:-.04em;--xp-lh2:1.1;--xp-w2:800;--xp-ls2:-.03em;--xp-lh3:1.15;--xp-w3:700;--xp-ls3:-.015em;--xp-ew:600;--xp-els:.1em;--xp-lw:600;--xp-lls:.12em}
html.xp body.d-modern_bold{--xp-h1:min(clamp(37.01px,calc(37.01px + 63.97*var(--xp-f)),100.98px),max(32px,9.2vw));--xp-h2:clamp(27.98px,calc(27.98px + 28.85*var(--xp-f)),56.83px);--xp-h2s:clamp(24.33px,calc(24.33px + 18.3*var(--xp-f)),42.63px);--xp-h3:clamp(18.4px,calc(18.4px + 5.59*var(--xp-f)),23.99px);--xp-h4:clamp(16px,calc(16px + 2*var(--xp-f)),18px);--xp-lh1:1;--xp-w1:900;--xp-ls1:-.045em;--xp-lh2:1.05;--xp-w2:900;--xp-ls2:-.035em;--xp-lh3:1.15;--xp-w3:800;--xp-ls3:-.015em;--xp-ew:600;--xp-els:.12em;--xp-lw:600;--xp-lls:.1em}
html.xp body.d-luxe_dark{--xp-h1:min(clamp(37.01px,calc(37.01px + 63.97*var(--xp-f)),100.98px),max(36px,10.4vw));--xp-h2:clamp(27.98px,calc(27.98px + 28.85*var(--xp-f)),56.83px);--xp-h2s:clamp(24.33px,calc(24.33px + 18.3*var(--xp-f)),42.63px);--xp-h3:clamp(21.16px,calc(21.16px + 10.82*var(--xp-f)),31.98px);--xp-h4:clamp(18.4px,calc(18.4px + 5.59*var(--xp-f)),23.99px);--xp-lh1:1.05;--xp-w1:500;--xp-ls1:-.01em;--xp-lh2:1.1;--xp-w2:500;--xp-ls2:-.005em;--xp-lh3:1.15;--xp-w3:500;--xp-ls3:0;--xp-ew:600;--xp-els:.32em;--xp-lw:600;--xp-lls:.2em}
html.xp .hero h1{font-size:var(--xp-h1);line-height:var(--xp-lh1);font-weight:var(--xp-w1);letter-spacing:var(--xp-ls1)}
html.xp :is(.head,.feature,.about,.band) h2{font-size:var(--xp-h2);line-height:var(--xp-lh2);font-weight:var(--xp-w2);letter-spacing:var(--xp-ls2)}
html.xp .alert h2{font-size:var(--xp-h2s);line-height:var(--xp-lh2);font-weight:var(--xp-w2);letter-spacing:var(--xp-ls2)}
html.xp :is(.svc,.step,.trustrow) h3{line-height:var(--xp-lh3);font-weight:var(--xp-w3);letter-spacing:var(--xp-ls3)}
html.xp :where(body:not(.product)) :is(.svc,.step) h3{font-size:var(--xp-h3)}
html.xp :where(body:not(.product)) .trustrow h3{font-size:var(--xp-h4)}
html.xp body.d-clean_premium:where(:not(.product)) .svc.bento>li:first-child h3{font-size:var(--xp-h3b)}
html.xp :where(body:not(.product)) .eyebrow{font-weight:var(--xp-ew);letter-spacing:var(--xp-els)}
html.xp :is(.crow small,.statement cite,.num){font-weight:var(--xp-lw);letter-spacing:var(--xp-lls)}
html.xp :where(section.block){padding-block:clamp(var(--xp-s8,64px),calc(var(--xp-s8,64px) + 32*var(--xp-f)),var(--xp-s9,96px))}
html.xp :where(.head){margin-bottom:clamp(var(--xp-s6,32px),calc(var(--xp-s6,32px) + 16*var(--xp-f)),var(--xp-s7,48px))}
html.xp :where(.wrap:not(.narrow,.statement)){max-width:var(--xp-wide)}
html.xp .wrap{padding-inline:var(--xp-gutter)}
html.xp body.d-editorial main>section.block+section.block::before{left:max(var(--xp-gutter),calc(50% - var(--xp-wide)/2 + var(--xp-gutter)));right:max(var(--xp-gutter),calc(50% - var(--xp-wide)/2 + var(--xp-gutter)))}
html.xp body.product:not(.d-editorial) .crow{padding-inline:clamp(12px,4vw,24px)}
html.xp body.product:not(.d-editorial) .crow>.xp-copy{margin-right:calc(8px - clamp(12px,4vw,24px));justify-items:center}
html.xp body.product:not(.d-editorial) .crow:has(>.xp-copy){flex-wrap:wrap;justify-content:flex-end}
html.xp body.product:not(.d-editorial) .crow:has(>.xp-copy)>div{flex:1 1 auto;max-width:calc(100% - 38px)}
html.xp body.product:is(.d-modern_bold,.d-clean_premium) .crow:has(>.xp-copy)>div{max-width:calc(100% - 58px)}
html.xp body.product.d-luxe_dark .svc .ic{width:26px;height:26px;margin-bottom:18px}
html.xp body.product.d-luxe_dark :is(.svc,.trustrow){gap:18px}
html.xp main p{text-wrap-style:pretty}
html.xp :is(.faq summary,.guardrail li){text-wrap-style:balance}
html.xp .flow-nodes{grid-auto-rows:minmax(clamp(34px,(900px - 100vw)*999,36px),auto) auto auto auto}
html.xp body.product footer .cols>div+div>div{display:flex;align-items:center;min-height:44px}
html.xp body.product footer .cols>div+div>div>a{display:flex;align-items:center;align-self:stretch}
html.xp body.product footer .cols:not(.pair)>div:last-child{padding-top:clamp(0px,(100vw - 960px)*999,45.2px)}
html.xp .feature>.body>p,html.xp .flow-note{max-width:34em}
html.xp:not(.xp-scrolled) [data-xp-nav]{background:var(--bg);backdrop-filter:none}
html.xp.xp-scrolled [data-xp-nav]{background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:saturate(1.4) blur(16px)}
html.xp [data-xp-nav] :is(.links,.menu-links) a[aria-current]{color:var(--fg)}
html.xp [data-xp-nav] :is(.links,.menu-links) a[aria-current]::before{content:"";height:1px;background:currentColor;pointer-events:none}
html.xp [data-xp-nav] .links a[aria-current]::before{position:absolute;left:0;right:0;top:calc(50% + .62em)}
html.xp body.product [data-xp-nav] .links a[aria-current]::before{left:.6em;right:.6em}
html.xp [data-xp-nav] .menu-links a[aria-current]::before{grid-row:2;grid-column:1;margin-top:calc(.62em - .5lh)}
html.xp [data-xp-nav] .menu-links{transition:opacity .2s var(--xp-ease),transform .2s var(--xp-ease)}
html.xp [data-xp-nav] .menu.xp-from .menu-links{opacity:0;transform:translate3d(0,-8px,0)}
html.xp .xp-bar{position:fixed;top:0;left:0;right:0;z-index:60;height:3px;background:var(--brand);transform:scaleX(0);transform-origin:0 50%;pointer-events:none}
@supports (animation-timeline:scroll()){html.xp .xp-bar{animation:xp-progress linear both;animation-timeline:scroll(root block)}}
@keyframes xp-progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}
html.xp.qa .xp-bar{display:none!important}
@media (prefers-reduced-motion:no-preference){
html.xp.js .rv:not(.in):not([data-xp]){transition:opacity .75s var(--xp-ease) var(--xp-d,0s)}
html.xp.xp-up.js:not(.qa) .rv:not(.in):not([data-xp]){transform:translate3d(0,-28px,0)}
}
html.xp body.product .menu-links{gap:0;padding-block:4px}
html.xp body.product .menu-links a{min-height:44px;align-content:center}
@media (max-width:600px){html.xp body.product .menu{position:static}html.xp body.product .menu-links{left:var(--xp-gutter,20px);right:var(--xp-gutter,20px);min-width:0}}
html.xp :where(body.product) :where(a[href],button,input,select,textarea,summary,[tabindex]){scroll-margin-top:88px}
html.xp.js [data-xp-lightbox]>img{cursor:zoom-in}
html.xp [data-xp-lightbox]>img:focus-visible,html.xp [data-xp-tabs]>[role=tabpanel]:focus-visible{outline:var(--xp-ring-w,2px) solid var(--xp-ring,var(--fg));outline-offset:var(--xp-ring-o,3px)}
html.xp .xp-modal{max-width:min(1200px,calc(100vw - 32px));padding:8px;border:0;background:none;--xp-ring:#fff}
html.xp .xp-modal::backdrop{background:color-mix(in srgb,#000 72%,transparent);backdrop-filter:blur(8px)}
html.xp .xp-modal-box{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:8px 16px;align-items:center;justify-items:center;transition:opacity .24s var(--xp-ease),transform .24s var(--xp-ease)}
@starting-style{html.xp .xp-modal[open] .xp-modal-box{opacity:0;transform:scale(.96)}}
html.xp .xp-modal.xp-closing .xp-modal-box{opacity:0;transform:scale(.96);transition:opacity .16s var(--xp-ease),transform .16s var(--xp-ease)}
html.xp .xp-modal-img{grid-area:2/2;max-width:100%;max-height:calc(100vh - 128px);object-fit:contain;border-radius:var(--r-media,0);transition:opacity .2s var(--xp-ease)}
html.xp .xp-modal-count{grid-area:1/2;margin:0;padding:4px 12px;border-radius:16px;background:#111827;color:#fff}
html.xp .xp-modal button{width:44px;height:44px;padding:0;border:0;border-radius:50%;background:#111827;color:#fff;display:grid;place-items:center;cursor:pointer}
html.xp .xp-modal svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
html.xp .xp-modal-close{grid-area:1/3}html.xp .xp-modal-prev{grid-area:2/1}html.xp .xp-modal-next{grid-area:2/3}
@media (max-width:600px){html.xp .xp-modal-box{grid-template-columns:44px minmax(0,1fr) 44px 44px}html.xp .xp-modal-img{grid-area:1/1/2/5}html.xp .xp-modal-close{grid-area:2/1}html.xp .xp-modal-count{grid-area:2/2}html.xp .xp-modal-prev{grid-area:2/3}html.xp .xp-modal-next{grid-area:2/4}}
html.xp.qa .xp-modal{display:none!important}
html.xp .xp-tablist{position:relative;display:flex;gap:4px;overflow-x:auto;margin:0 -8px 24px;padding:8px;box-shadow:inset 0 -1px 0 color-mix(in srgb,var(--fg) 16%,transparent)}
html.xp .xp-tab{flex:none;min-height:44px;padding:0 16px;border:0;background:none;font:inherit;color:var(--muted);white-space:nowrap;cursor:pointer}
html.xp .xp-tab[aria-selected=true]{color:var(--fg)}
html.xp .xp-tab-ink{position:absolute;left:0;bottom:0;width:1px;height:2px;background:var(--fg);transform-origin:0 0;pointer-events:none;transition:transform .3s var(--xp-ease)}
html.xp [data-xp-tabs]>[role=tabpanel]{transition:opacity .24s var(--xp-ease),transform .24s var(--xp-ease)}
html.xp.qa [data-xp-tabs]>[role=tabpanel]{display:block;content-visibility:visible}
@media (min-width:961px) and (hover:hover) and (pointer:fine){html.xp .xp-tab:hover{color:var(--fg)}}
html.xp .xp-toast{position:fixed;top:88px;left:50%;z-index:70;width:max-content;max-width:min(480px,calc(100vw - 32px));padding:12px 16px;border-radius:12px;background:#111827;color:#fff;font:600 16px/1.5 var(--body),sans-serif;text-align:center;pointer-events:none;opacity:0;transform:translate3d(-50%,-12px,0);transition:opacity .24s var(--xp-ease),transform .24s var(--xp-ease)}
html.xp .xp-toast.xp-show{opacity:1;transform:translate3d(-50%,0,0)}
html.xp .xp-copy{flex:none;display:inline-grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:8px;background:none;color:var(--muted);cursor:pointer;vertical-align:middle}
html.xp .crow:has(>.xp-copy)>div{flex:1}html.xp .crow>.xp-copy{margin-left:-12px;justify-items:end}
html.xp body:is(.d-luxe_dark,.d-heritage,.d-modern_bold,.d-clean_premium):not(.product) .crow>.xp-copy{margin-right:-12px;justify-items:center}
html.xp :is(.xp-copy,.xp-top) svg{width:20px;height:20px;padding:0;border:0;border-radius:0;background:none;pointer-events:none}
html.xp .xp-copy svg{grid-area:1/1;color:inherit;transition:opacity .24s var(--xp-ease),transform .24s var(--xp-ease)}
html.xp .xp-copy svg+svg{opacity:0;transform:scale(.6)}
html.xp .xp-copy.xp-done svg{opacity:0}html.xp .xp-copy.xp-done svg+svg{opacity:1;transform:none}
html.xp .xp-top{position:fixed;right:16px;bottom:16px;z-index:39;display:grid;place-items:center;width:48px;height:48px;padding:0;border:0;border-radius:50%;background:#111827;color:#fff;cursor:pointer;opacity:0;transform:translate3d(0,8px,0);pointer-events:none}
html.xp .xp-top.xp-show{opacity:1;transform:none;pointer-events:auto;transition:opacity .3s var(--xp-ease),transform .3s var(--xp-ease)}
html.xp .xp-top:focus-visible{--xp-ring:#111827;box-shadow:0 0 0 3px #fff}
html.xp{scroll-padding-bottom:76px}
@media (min-width:961px){html.xp .xp-top{right:24px;bottom:24px}html.xp{scroll-padding-bottom:84px}}
html.xp body:has(.riley-launch) .xp-top{bottom:92px}html.xp:has(.riley-launch){scroll-padding-bottom:152px}
@media (max-width:600px){html.xp body.has-callbar .xp-top{bottom:92px}html.xp:has(body.has-callbar){scroll-padding-bottom:152px}}
@media (min-width:961px) and (hover:hover) and (pointer:fine){html.xp .xp-copy:hover{color:var(--fg)}}
html.xp.qa :is(.xp-toast,.xp-top){display:none!important}
html.xp.js .intake-form[data-xp-form] .field:has(>[placeholder]){position:relative}
html.xp.js .intake-form[data-xp-form] .field:has(>[placeholder])>label{position:absolute;top:0;left:16px;max-width:calc(100% - 32px);line-height:1.25;transform-origin:0 0;transform:translate3d(0,20px,0);transition:transform .2s var(--xp-ease)}
html.xp.js .intake-form[data-xp-form] .field:has(>[placeholder])>:is(input,textarea){padding-top:24px;padding-bottom:8px}
html.xp.js .intake-form[data-xp-form] .field:has(>[placeholder]:is(:focus,:not(:placeholder-shown),:autofill))>label,html.xp.js.qa .intake-form[data-xp-form] .field:has(>[placeholder])>label{transform:translate3d(0,4px,0) scale(.8)}
html.xp .intake-form[data-xp-form] .intake-error:not([hidden]){transition:opacity .2s var(--xp-ease),transform .2s var(--xp-ease)}
@starting-style{html.xp .intake-form[data-xp-form] .intake-error:not([hidden]){opacity:0;transform:translate3d(0,-4px,0)}}
html.xp .intake-form[data-xp-form].armed button[type=submit][disabled]{opacity:1;cursor:progress}
html.xp .intake-form[data-xp-form].armed button[type=submit][disabled]::before{content:"";position:absolute;left:4px;top:calc(50% - 8px);width:16px;height:16px;box-sizing:border-box;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;pointer-events:none;animation:xp-spin .8s linear infinite}
@keyframes xp-spin{to{transform:rotate(360deg)}}
html.xp .xp-halo{position:fixed;left:0;top:0;z-index:80;box-sizing:border-box;width:32px;height:32px;border:2px solid color-mix(in srgb,var(--brand) 55%,transparent);border-radius:50%;pointer-events:none;opacity:0;transition:opacity .2s var(--xp-ease)}
html.xp .xp-halo.xp-show{opacity:1}
html.xp.qa .xp-halo{display:none!important}
@media (prefers-reduced-motion:reduce){html.xp .xp-halo{display:none!important}}
html.xp body.product .hero-panel{padding:0;border:12px solid transparent;background-origin:border-box}
@media (forced-colors:active){html.xp body.product .hero-panel{border-color:Canvas}}
@media (prefers-reduced-motion:no-preference){html.xp.js:not(.qa) body.product .hero-panel.xp-live>img{transform:scale(1.05) translate3d(-1%,-1%,0);transition:transform 3.5s cubic-bezier(.4,0,.2,1) 1.4s}}
html.xp body.product :is(.flow-head,.flow-node,.flow-note),html.xp body.product footer h3:has(>.foot-brand){transition:opacity .75s var(--xp-ease) var(--xp-d,0s),transform .75s var(--xp-ease) var(--xp-d,0s)}
@media (min-width:900px){html.xp body.product .flow-node:nth-child(3n+2){--xp-d:90ms}html.xp body.product .flow-node:nth-child(3n){--xp-d:180ms}}
@media (min-width:600px) and (max-width:899px){html.xp body.product .flow-node:nth-child(2n){--xp-d:90ms}}
html.xp body.product .flow-node::before{transform-origin:0 50%;transition:transform .6s var(--xp-ease) calc(var(--xp-d,0s) + .3s)}
@media (max-width:599px){html.xp body.product .flow-node::before{transform-origin:50% 0}}
html.xp body.product .flow-human .flow-num::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:0 0 0 1px var(--brand);pointer-events:none;opacity:0;transform:scale(1.6);transition:opacity .9s ease calc(var(--xp-d,0s) + .6s),transform .9s var(--xp-ease) calc(var(--xp-d,0s) + .6s)}
@media (prefers-reduced-motion:no-preference){
html.xp.js:not(.qa) body.product .xp-hold{opacity:0;transform:translate3d(0,28px,0);transition:none}
html.xp.js:not(.qa) body.product .flow-node.xp-hold::before{transform:scaleX(0);transition:none}
html.xp.js:not(.qa) body.product .flow-human.xp-hold .flow-num::after{opacity:.9;transform:none;transition:none}
html.xp.js:not(.qa) body.product footer:has(.xp-hold)::before{transform:scaleX(0);transition:none}
}
@media (max-width:599px) and (prefers-reduced-motion:no-preference){html.xp.js:not(.qa) body.product .flow-node.xp-hold::before{transform:scaleY(0)}}
@media print{html.xp.js:not(.qa) body.product .xp-hold{opacity:1;transform:none;transition:none}html.xp.js:not(.qa) body.product .flow-node.xp-hold::before,html.xp.js:not(.qa) body.product footer:has(.xp-hold)::before{transform:none;transition:none}html.xp.js:not(.qa) body.product .flow-human.xp-hold .flow-num::after{opacity:0;transition:none}}
html.xp body.product .flow-ic{position:relative}
html.xp body.product .flow-ic::after{content:"";position:absolute;inset:-1px;border-radius:inherit;pointer-events:none;opacity:0;box-shadow:0 0 0 1px var(--brand),0 16px 32px -16px color-mix(in srgb,var(--brand) 50%,transparent);transition:opacity .3s var(--xp-ease)}
html.xp body.product .flow-node>:not(.flow-sr){transition:transform .3s var(--xp-ease)}
@media (min-width:961px) and (hover:hover) and (pointer:fine){html.xp body.product .flow-node:hover .flow-ic::after{opacity:1}}
@media (min-width:961px) and (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){html.xp body.product .flow-node:hover>:not(.flow-sr){transform:translate3d(0,-4px,0)}}
html.xp body.product .guardrail li{transition:opacity .6s var(--xp-ease) var(--xp-t,.3s),transform .6s var(--xp-ease) var(--xp-t,.3s)}
html.xp body.product .guardrail li:nth-child(2){--xp-t:.42s}html.xp body.product .guardrail li:nth-child(3){--xp-t:.54s}
html.xp body.product .guardrail svg{transition:transform .5s var(--xp-ease) calc(var(--xp-t,.3s) + .16s)}
@media (prefers-reduced-motion:no-preference){html.xp.js:not(.qa) body.product .statement:not(.in) .guardrail li{opacity:0;transform:translate3d(0,12px,0)}html.xp.js:not(.qa) body.product .statement:not(.in) .guardrail svg{transform:scale(.4)}}
@media (prefers-reduced-motion:no-preference){
html.xp.js:not(.qa) body.product [data-xp-form].xp-live .intake-step.on{transition:opacity .35s var(--xp-ease),transform .35s var(--xp-ease)}
@starting-style{html.xp.js:not(.qa) body.product [data-xp-form].xp-live .intake-step.on{opacity:0;transform:translate3d(0,12px,0)}}
html.xp.js:not(.qa) body.product [data-xp-form].xp-live .intake-step.on .intake-preview{transition:opacity .45s var(--xp-ease) .12s,transform .45s var(--xp-ease) .12s}
@starting-style{html.xp.js:not(.qa) body.product [data-xp-form].xp-live .intake-step.on .intake-preview{opacity:0;transform:translate3d(0,8px,0)}}
html.xp.js:not(.qa) body.product [data-xp-form].xp-live~.intake-done:not([hidden]){transition:opacity .35s var(--xp-ease),transform .35s var(--xp-ease)}
@starting-style{html.xp.js:not(.qa) body.product [data-xp-form].xp-live~.intake-done:not([hidden]){opacity:0;transform:translate3d(0,12px,0)}}
}
html.xp body.product .intake-preview{position:relative;box-shadow:var(--xp-e1,none)}
html.xp body.product.d-luxe_dark .intake-preview::before{content:"";position:absolute;left:-1px;right:-1px;top:-1px;height:2px;background:linear-gradient(90deg,var(--brand),transparent);pointer-events:none}
html.xp body.product [data-xp-form] .chip{position:relative}
html.xp body.product [data-xp-form] .chip::after{content:"";position:absolute;inset:-1px;border-radius:inherit;pointer-events:none;opacity:0;box-shadow:0 0 0 1px color-mix(in srgb,var(--brand) 64%,transparent);transition:opacity .2s var(--xp-ease)}
@media (min-width:961px) and (hover:hover) and (pointer:fine){html.xp body.product [data-xp-form] .chip:hover::after{opacity:1}}
html.xp body.product footer{position:relative}
html.xp body.product.d-luxe_dark footer::before{content:"";position:absolute;top:0;left:calc(50% - 80px);width:160px;height:1px;background:linear-gradient(90deg,transparent,var(--brand),transparent);pointer-events:none;transition:transform 1.2s var(--xp-ease) .2s}
html.xp body.product [data-xp-nav] :is(.links,.menu-links) a[aria-current]::before{background:var(--brand)}
html.xp body.product .xp-top{background:var(--bg);color:var(--fg);box-shadow:inset 0 0 0 3px var(--fg)}
html.xp body.product .xp-top:focus-visible{--xp-ring:var(--fg);box-shadow:inset 0 0 0 3px var(--fg),0 0 0 3px var(--bg)}
@media (min-width:961px){html.xp body.product .xp-top{--xp-tg:calc(max(0px,(100% - var(--xp-wide,1280px))/2) + var(--xp-gutter,48px));--xp-ts:clamp(44px,var(--xp-tg) - 12px,48px);width:var(--xp-ts);height:auto;aspect-ratio:1;right:max(0px,min(24px,(var(--xp-tg) - var(--xp-ts))/2))}}
@media (min-width:961px) and (max-width:1303px){html.xp body.product .xp-top{visibility:hidden}}
html.xp .flow-note{text-align:start}
html.xp body:not(.d-luxe_dark,.d-heritage) .flow-note{margin-inline:0}
html.xp .statement q{text-wrap-style:balance}
html.xp :is(.eyebrow,.flow-kicker,.flow-cue,.who-label,.intake-count,.statement cite,.crow small,.soon,.num){text-wrap-style:balance}
html.xp :is(.twin,.about.solo,.intake) .head p{margin-inline:0}
html.xp :is(.twin,.about.solo,.intake) .head h2::after{margin-inline:0}
html.xp :is(body.d-luxe_dark,body.d-heritage) section.block>.wrap>.head[data-xp-long] p,html.xp section.block.center>.wrap>.head[data-xp-long] p{margin-inline:auto;text-align:start}
html.xp section.block>.wrap>.head[data-xp-long] p{max-width:34em}
html.xp body.product:not(.d-luxe_dark,.d-heritage) .contact{margin-inline:0}
html.xp body.product:not(.d-luxe_dark,.d-heritage) .intake .wrap{margin-inline:max(0px,calc(50% - var(--xp-wide,1280px)/2)) auto}
@media (max-width:760px){
html.xp section.block .head{text-align:start;margin-inline:0;--xp-mark-x:0}
html.xp section.block .head p{margin-inline:0}
html.xp :is(body.d-luxe_dark,body.d-heritage) section.block>.wrap>.head[data-xp-long] p,html.xp section.block.center>.wrap>.head[data-xp-long] p,html.xp .flow-note{margin-inline:0}
html.xp section.block .head h2::after{margin-inline:0}
html.xp body.d-heritage section.block .head~.trustrow>div{text-align:start;border-left:0}
html.xp section.block .head~.grid>.stat{align-items:flex-start;text-align:start}
html.xp .hero-grid.solo,html.xp .hero-full{text-align:start}
html.xp .hero .wrap :is(.lead,.hero-jobs,.seal){margin-inline:0}
html.xp .hero .wrap :is(.ctas,.badges,.strip){justify-content:flex-start}
}
@media (max-width:600px){
html.xp body:is(.product,.d-luxe_dark,.d-heritage,.d-editorial) .eyebrow{letter-spacing:.14em}
html.xp body:is(.d-luxe_dark,.d-editorial) .eyebrow{gap:8px}
html.xp body.d-luxe_dark .eyebrow::before,html.xp body.d-luxe_dark .eyebrow::after{width:16px}
html.xp body.d-editorial .eyebrow::before{width:24px}
html.xp .flow .flow-kicker{font-size:13px;letter-spacing:.14em}
}
@media (max-width:380px){
html.xp body:is(.product,.d-luxe_dark,.d-heritage,.d-editorial) .eyebrow{letter-spacing:.1em}
html.xp body.d-luxe_dark .eyebrow::after{display:none}
}

.intake .wrap{max-width:860px}.intake [hidden]{display:none!important}
.intake-form{display:grid;gap:26px}
.intake-count{font:600 12.5px/1 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.intake-count [aria-current]{color:var(--brand)}
.intake-step{display:grid;gap:22px}
html.js .intake-step:not(.on){display:none}html.qa .intake-step:not(.on){display:grid}
.intake-step fieldset{border:0;margin:0;padding:0;min-width:0;display:grid;gap:18px}
.intake-step legend{font-family:var(--head);font-size:clamp(24px,2.8vw,34px);line-height:1.15;font-weight:600;padding:0;margin:0 0 6px;color:var(--fg);text-wrap:balance}
.intake-step legend:focus-visible,.intake-explain:focus-visible,.intake-live:focus-visible,.intake-done:focus-visible{outline:2px solid var(--brand);outline-offset:6px}
.intake-options{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}
.chip{display:flex;align-items:center;gap:12px;min-height:52px;padding:12px 16px;border:1px solid var(--line);background:var(--surface);
 border-radius:min(var(--r-btn),16px);cursor:pointer;font-size:16px;line-height:1.3;color:var(--fg);min-width:0}
.chip span{min-width:0;overflow-wrap:anywhere}.chip input{width:20px;height:20px;margin:0;flex:none;accent-color:var(--brand)}
body.product .chip input{appearance:none;-webkit-appearance:none;width:18px;height:18px;border:1px solid var(--muted);background:var(--bg);border-radius:4px;display:grid;place-items:center}
body.product .chip input[type=radio]{border-radius:50%}body.product .chip input:checked{border-color:var(--brand);background:var(--brand);box-shadow:inset 0 0 0 3px var(--bg)}
body.product .chip input:focus-visible{outline:2px solid var(--brand);outline-offset:3px}
body.product.d-luxe_dark .intake-form input,body.product.d-luxe_dark .intake-form textarea,body.product.d-luxe_dark .intake-consent input{color-scheme:dark}
body.product .intake .head p{margin-inline:0}body.product .intake-preview .intake-explain{font-size:16px;margin:0}
.chip:has(input:checked){border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand)}
.chip:has(input:focus-visible){outline:2px solid var(--brand);outline-offset:2px}
.intake-fields{display:grid;gap:16px 18px;grid-template-columns:repeat(2,minmax(0,1fr))}
.field{display:grid;gap:8px;min-width:0;align-content:start}.field.wide{grid-column:1/-1}
.field label{font-weight:600;font-size:15px}
.field input:not([type=checkbox]),.field textarea{width:100%;min-height:50px;padding:12px 14px;border:1px solid var(--line);border-radius:min(var(--r-btn),16px);
 background:var(--surface);color:var(--fg);font:inherit;font-size:16px}
.field textarea{min-height:120px;resize:vertical}
.field input:focus-visible,.field textarea:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.intake-consent:has(input:focus-visible) .check{outline:2px solid var(--brand);outline-offset:4px}
.intake-form [data-bad],.intake-form fieldset[data-bad] .chip{border-color:#d9534f}
.intake-error{font-size:14.5px;font-weight:600;color:var(--fg);border-left:3px solid #d9534f;padding-left:10px}
.intake-explain{font-size:18px;color:var(--fg);max-width:62ch}
.intake-placeholder{border:1px dashed var(--line);border-radius:var(--r-media);padding:22px 24px;color:var(--muted);display:grid;gap:6px;background:var(--surface);font-size:16px}
.intake-consent .check{display:flex;gap:12px;align-items:flex-start;min-height:44px;cursor:pointer;font-size:15px;line-height:1.5;font-weight:500}
.intake-consent input{width:20px;height:20px;margin:2px 0 0;flex:none;accent-color:var(--brand)}
.intake-trap{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.intake-test{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--muted);border:1px solid var(--line);padding:8px 14px;border-radius:999px;justify-self:start;max-width:100%}
.intake-test svg{color:var(--brand);flex:none}
.intake-nav{display:flex;gap:12px;flex-wrap:wrap}
.intake-nav [data-next],.intake-nav [data-back]{display:none}
html.js .intake-nav [data-next],html.js .intake-nav [data-back]{display:inline-flex}
html.qa .intake-nav [data-next],html.qa .intake-nav [data-back]{display:none}
.intake-nav .btn[disabled]{opacity:.55;cursor:not-allowed;transform:none}
.intake-live{font-size:15px;font-weight:600;color:var(--fg)}
.intake-live:not(:empty){padding:12px 16px;border:1px solid var(--line);border-left:3px solid #d9534f;background:var(--surface);border-radius:min(var(--r-btn),16px)}
.intake-nojs{font-size:14.5px;color:var(--muted)}.intake-form.armed .intake-nojs{display:none}
.intake-done{display:grid;gap:10px;max-width:60ch}
.intake-thanks{font-family:var(--head);font-size:clamp(28px,3.4vw,42px);line-height:1.1;font-weight:600}
.intake-done p:not(.intake-thanks){color:var(--muted);font-size:18px}
@media (max-width:600px){.intake-options,.intake-fields{grid-template-columns:1fr}.intake-nav{flex-direction:column-reverse}
 .intake-nav .btn{width:100%;white-space:normal;overflow-wrap:anywhere}.intake-test{white-space:normal;text-align:left}}
:root{color-scheme:dark}
.book{scroll-margin-top:88px}
.book-steps{display:grid;gap:26px}body.product .book-steps{gap:20px}
.book-steps:not(.armed){display:none}.book-steps.armed~.book-nojs{display:none}
.book-steps fieldset[data-bad] .chip{border-color:#d9534f}
.book-steps legend{scroll-margin-top:120px}.book-done{scroll-margin-top:88px}
.book-steps .intake-live{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.book-pick{display:grid;gap:10px;justify-items:start}
.book-note{font-size:15px;line-height:1.5;color:var(--muted)}
.book-nojs{font-size:17px;max-width:62ch}.book-nojs a,.book-fallback a{color:var(--fg);font-weight:600}
.book-dialog{padding:0;border:1px solid var(--line);border-radius:min(var(--r-media),16px);background:var(--bg);color:var(--fg);
 width:min(960px,100vw - 48px);height:min(800px,100vh - 48px);height:min(800px,100dvh - 48px);max-width:none;max-height:none;overflow:hidden}
.book-dialog[open]{display:flex;flex-direction:column}.book-dialog:not([open]){display:none}
.book-dialog::backdrop{background:rgba(0,0,0,.62)}
.book-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 8px 8px 20px;border-bottom:1px solid var(--line)}
.book-bar h2{font-size:20px;line-height:1.2}
.book-close{min-width:44px;min-height:44px;padding:0 16px;border:1px solid var(--line);border-radius:min(var(--r-btn),12px);
 background:var(--surface);color:var(--fg);font-weight:600;font-size:15px;cursor:pointer}
.book-close:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.book-stage{position:relative;flex:1 1 auto;min-height:0;display:flex;align-items:center;justify-content:center;padding:24px;background:#fff}
.book-loading{margin:0;display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;color:#4f5661;font-size:16px;line-height:1.5;font-weight:500}
.book-loading::before{content:"";display:block;width:40px;height:2px;border-radius:2px;background:var(--brand)}
.book-frame{position:absolute;inset:0;z-index:1;display:block;width:100%;height:100%;border:0;background:transparent;color-scheme:light}
.book-fallback{padding:10px 20px;font-size:14.5px;color:var(--muted);border-top:1px solid var(--line)}
html:has(.book-dialog[open]){overflow:hidden}
@media (min-width:601px){.book-steps .intake-nav{align-items:flex-start}}
@media (max-width:600px){.book-pick{justify-items:stretch}
 .book-dialog{inset:0;margin:0;width:100vw;height:100vh;height:100dvh;max-width:none;max-height:none;border:0;border-radius:0}
 .book-pick{margin-bottom:12px}.book-note{text-align:center}}
@media (max-width:960px){html.book-on .xp-top{visibility:hidden}}
.book .book-steps .intake-step legend{margin-bottom:16px}
/* Curtis at the booking desk (/curtis): beside the booking heading, and in the booking window's bar */
.book-avatar{display:block;flex:none;width:44px;height:44px;border-radius:8px;position:relative}
.book-avatar>img{display:block;width:100%;height:100%;border-radius:inherit}
.book-avatar>.cur-l{position:absolute;inset:0}
.book-bar h2{flex:1 1 auto;min-width:0}
.book .head:has(>.book-avatar){display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:18px}
.book .head>.book-avatar{grid-column:1;grid-row:1;width:52px;height:52px;align-self:start;margin-top:calc((var(--xp-h2) * var(--xp-lh2) - 52px) / 2)}
.book .head:has(>.book-avatar)>h2{grid-column:2;grid-row:1}
.book .head:has(>.book-avatar)>p{grid-column:2}
@media (max-width:600px){.book .head>.book-avatar{width:44px;height:44px;margin-top:calc((var(--xp-h2) * var(--xp-lh2) - 44px) / 2)}.book .head:has(>.book-avatar){column-gap:14px}.book .head:has(>.book-avatar)>p{grid-column:1/-1}}
@media (hover:hover) and (pointer:fine){.book-steps fieldset:not([data-bad]) .chip:not(:has(input:checked)):hover{border-color:color-mix(in srgb,var(--brand) 64%,var(--line))}}
@media (prefers-reduced-motion:no-preference){.book-loading:not([aria-hidden])::before{animation:book-wait 1.6s ease-in-out infinite alternate}}
@keyframes book-wait{from{opacity:.4;transform:scaleX(.6)}to{opacity:1;transform:scaleX(1)}}


.sf-veins{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.sf-veins img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.07;animation:sf-vein 7.5s ease-in-out infinite}
.sf-veins .v2{animation-delay:-5s}.sf-veins .v3{animation-delay:-2.5s}
@keyframes sf-vein{0%,100%{opacity:.06}8%{opacity:.24}16%{opacity:.11}24%{opacity:.2}50%{opacity:.06}}
@media (prefers-reduced-motion:reduce){.sf-veins img{animation:none;opacity:.12}}
html.qa .sf-veins img{animation:none;opacity:.14}

body.product{font-variant-numeric:lining-nums}
html.xp body.product [data-xp-count]{font-variant-numeric:lining-nums tabular-nums}
body.product .hero-plain{background:radial-gradient(ellipse at 70% 20%,rgba(7,9,12,.7),rgba(11,14,18,0) 60%)}
/* /curtis's hero keeps the bottom it had with its second paragraph, which the export trims it for */
body.product.pg-curtis .hero-grid{padding-bottom:max(24px,calc(clamp(56px,8vw,112px) - 86px))}
/* /curtis: the trades under the hero's chips, each a link to its own page */
.hero-trades{margin:18px 0 0;color:var(--muted);font-size:15px;line-height:1.8}
/* the offer's line (2026-11-10): above the buttons on the home page and /curtis, above the questions on /try */
.tp-offer{margin:0 0 16px;padding:11px 14px;border:1px solid color-mix(in srgb,var(--brand) 55%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--brand) 12%,var(--bg));color:var(--fg);font-size:15.5px;line-height:1.45;text-wrap:pretty}
.tp-offer b{color:var(--brand);font-weight:700}
.hero .tp-offer{margin:20px 0 0;max-width:540px}
.hero-grid.solo .tp-offer{margin-inline:auto}
.call-num{font-weight:500;white-space:nowrap}
@media (max-width:600px){.call-num{display:none}}
.hero-trades a{color:var(--fg);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--brand) 65%,transparent);text-decoration-thickness:1px;text-underline-offset:4px;white-space:nowrap}
.hero-trades a:hover{color:var(--brand)}
.hero-trades a:focus-visible{outline:2px solid var(--brand);outline-offset:3px}
/* /curtis and the trade pages: what Curtis does on day one (DAY_ONE), one quiet line under the chips */
.hero-scope{margin:14px 0 0;max-width:54ch;color:var(--muted);font-size:15px;line-height:1.6}
.hero-grid.solo .hero-hear{margin-inline:auto}
body.product footer{background-color:rgba(7,7,8,.86)}
footer .powered{display:inline-flex;align-items:center;gap:10px;margin-top:14px;color:var(--muted);text-decoration:none;font-size:14px;letter-spacing:.04em}
footer .powered img{border-radius:50%;background:#000}
footer .powered:hover{color:var(--fg)}
footer .inception{display:block;width:132px;height:auto;margin-top:18px}
footer .el-grants{display:block;width:200px;margin-top:18px;opacity:.85}
footer .el-grants:hover{opacity:1}
footer .el-grants img{display:block;width:100%;height:auto}
footer .nv-legal{margin:28px 0 0;max-width:760px;color:var(--muted);font-size:12px;line-height:1.5}
/* the trade pages, under the footer's own links: "Curtis for" and the four trades */
body.product footer .foot-trades{align-items:center}
footer .foot-trades>span{color:var(--muted)}

/* the doors on the home page */
.doors{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.door{display:flex;flex-direction:column;border:1px solid var(--line);background:var(--surface);color:inherit;text-decoration:none;transition:transform .3s ease,border-color .3s ease}
.door:hover{transform:translate3d(0,-4px,0);border-color:color-mix(in srgb,var(--brand) 55%,var(--line))}
.door:focus-visible{outline:2px solid var(--brand);outline-offset:4px}
.door-media{aspect-ratio:16/10;overflow:hidden;background:#000;display:grid;place-items:center}
.door-media>img{width:100%;height:100%;object-fit:cover;display:block}
.door-media .atr-stage{height:96%;width:auto}
.door-body{padding:28px 28px 30px;display:flex;flex-direction:column;flex:1}
.door-kicker{font:600 12.5px/1 var(--body);letter-spacing:.2em;text-transform:uppercase;color:var(--brand)}
.door h3{font-family:var(--head);font-weight:500;font-size:clamp(28px,2.8vw,38px);line-height:1.08;margin-top:12px}
.door p{color:var(--muted);margin-top:12px}
.door .ticks{margin-top:18px}
.door-go{margin-top:auto;padding-top:24px;font-weight:600;color:var(--fg);display:inline-flex;gap:8px;align-items:center}
@media (max-width:760px){.doors{grid-template-columns:1fr}}
/* the Website + Curtis band and the smaller custom-agents door (the orb beside the text, stacked on phones) run the
   doors' full width under them. The websites door is a card with many links (each demo, the booking), so it never
   lifts as a whole; each demo's picture does */
.door-demo:hover{transform:none;border-color:var(--line)}
.demo-tag{position:absolute;bottom:clamp(10px,1.4vw,16px);right:clamp(24px,3.6vw,44px);font:600 11.5px/1 var(--body);letter-spacing:.16em;
 text-transform:uppercase;color:#0d0f12;background:#f2f2f2;padding:7px 10px;border-radius:999px}
.door-note{font-size:14.5px}
.door-links{margin-top:auto;padding-top:20px;display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.door-links .door-go{margin-top:0;padding-top:0;min-height:44px;text-decoration:none}
.door-links .door-go:hover{text-decoration:underline;text-underline-offset:4px}
.door-links .door-go:focus-visible{outline:2px solid var(--brand);outline-offset:3px}
.door-go-quiet{color:var(--muted)!important;font-weight:500!important}
/* the websites door's picture: a carousel of the website demos (Mike, 2026-10-22), each slide a demo's first screen
   framed as a page with its trade and company under it, one in view at a time (Mike, 2026-10-23: the gap between
   slides is the strip's side padding, so the next one starts just out of view). It scrolls by itself (scroll snap, a
   swipe); the arrows and dots come with the page script (REEL_JS) */
.door-demo{min-width:0}  /* a grid item: without it the strip's width would widen the card */
.door-reel{display:block;place-items:normal;aspect-ratio:auto;min-width:0;padding-top:clamp(14px,2.2vw,28px)}
.reel{width:100%;list-style:none;margin:0;padding:0 clamp(14px,2.2vw,28px);display:flex;gap:clamp(14px,2.2vw,28px);overflow-x:auto;overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;scroll-padding-inline:clamp(14px,2.2vw,28px);scrollbar-width:none}
.reel::-webkit-scrollbar{display:none}
.reel:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}
.reel-slide{flex:0 0 100%;min-width:0;scroll-snap-align:start}
.reel-slide a{display:block;color:inherit;text-decoration:none}
.reel-shot{position:relative;display:block}
.reel-shot img{display:block;width:100%;height:auto;aspect-ratio:90/53;border:1px solid var(--line);border-radius:8px;transition:transform .35s ease}
.reel-slide a:hover .reel-shot img{transform:translate3d(0,-4px,0)}
.reel-slide a:focus-visible{outline:none}.reel-slide a:focus-visible .reel-shot img{outline:2px solid var(--brand);outline-offset:3px}
.reel-shot .demo-tag{bottom:12px;right:12px}
.reel-cap{display:grid;gap:4px;padding:12px 2px 0;font-size:14.5px;line-height:1.35;color:#d5d8dc}
.reel-cap b{color:var(--brand);font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-size:11.5px}
.reel-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px clamp(14px,2.2vw,28px) 14px}
.reel-nav[hidden]{display:none}
.reel-prev,.reel-next{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);
  background:transparent;color:var(--fg);cursor:pointer;transition:border-color .2s ease,opacity .2s ease}
.reel-prev:hover:not(:disabled),.reel-next:hover:not(:disabled){border-color:var(--brand)}
.reel-prev:disabled,.reel-next:disabled{opacity:.3;cursor:default}
.reel-dots{display:flex;flex-wrap:wrap;justify-content:center}
.reel-dot{width:24px;height:24px;display:grid;place-items:center;border:0;background:none;padding:0;cursor:pointer}
.reel-dot::before{content:"";width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.3);transition:background .2s ease,transform .2s ease}
.reel-dot[aria-current=true]::before{background:var(--brand);transform:scale(1.25)}
.reel-prev:focus-visible,.reel-next:focus-visible,.reel-dot:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
@media (prefers-reduced-motion:reduce){.reel-shot img,.reel-dot::before{transition:none}}
.doors>.band,.doors>.door-wide{grid-column:1/-1}
.doors>.band{padding:clamp(28px,3.2vw,44px) 28px}
.doors>.band h3{font-family:var(--head);font-weight:500;font-size:clamp(28px,2.8vw,38px);line-height:1.08}
.doors>.band p{color:var(--muted);opacity:1}
.door-wide{flex-direction:row}
.door-wide>.door-media{flex:0 0 clamp(220px,26%,300px);aspect-ratio:auto}
.door-wide .door-media .atr-stage{width:88%;height:auto}
.door-wide p{max-width:62ch}
@media (max-width:760px){.door-wide{flex-direction:column}.door-wide>.door-media{flex:none;aspect-ratio:2/1}.door-wide .door-media .atr-stage{width:auto;height:96%}}
/* the home page's service in three parts (the offer explainer, 2026-10-27): three cards side by side whose rows line up (subgrid:
   picture, heading, the three PART_ROWS), stacked on phones and narrow laptops, each card whole */
.offers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.offer{display:grid;grid-row:span 4;grid-template-rows:subgrid;row-gap:0;min-width:0;border:1px solid var(--line);background:var(--surface)}
.seo-part{display:grid;grid-template-columns:minmax(220px,30%) 1fr;margin-top:20px;border:1px solid var(--line);background:var(--surface)}
.seo-media{position:relative;overflow:hidden;display:grid;place-items:center;padding:28px;background:#08141d}
.seo-map{position:absolute;inset:0;width:100%;height:100%}
.seo-art{position:relative;width:100%;max-width:340px;height:auto}
.seo-body{padding:28px 28px 26px}
.seo-body h3{font-family:var(--head);font-weight:500;font-size:clamp(26px,2.4vw,34px);line-height:1.08;margin-top:12px}
.seo-lead{color:var(--muted);margin-top:10px;max-width:62ch}
.seo-built{margin-top:14px;max-width:62ch;color:var(--fg);font-size:15.5px;line-height:1.55}
.seo-lists{display:grid;grid-template-columns:1fr;gap:24px;margin-top:22px;max-width:62ch}
.seo-list h4{font:600 12px/1.3 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--brand);padding-top:12px;border-top:1px solid var(--line)}
.seo-list ul{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}
.seo-list li{position:relative;padding-left:16px;color:var(--fg);font-size:15px;line-height:1.45}
.seo-list li::before{content:"";position:absolute;left:0;top:.6em;width:6px;height:6px;border-radius:50%;background:var(--brand)}
.seo-more{margin-top:14px;max-width:62ch;color:var(--muted);font-size:14.5px;line-height:1.5}
.seo-rows{margin:22px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:0 24px}
.seo-rows>div{padding:12px 0 0;border-top:1px solid var(--line)}
.seo-rows dt{font:600 12px/1.3 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.seo-rows dd{margin:6px 0 0;color:var(--fg);font-size:15.5px;line-height:1.5}
@media (max-width:860px){.seo-part{grid-template-columns:1fr}.seo-media{padding:40px 22px;min-height:320px}.seo-art{max-width:300px}.seo-rows{grid-template-columns:1fr}}
.offer-month{display:flex;align-items:center;justify-content:space-between;gap:20px 32px;flex-wrap:wrap;margin-top:20px;padding:22px 28px;border:1px solid color-mix(in srgb,var(--brand) 55%,var(--line));background:var(--surface)}
.offer-month p{margin:0;max-width:70ch;color:var(--fg);line-height:1.55}
.offer>.door-media:not(.door-reel){aspect-ratio:auto;min-height:220px}
.offer-sum{display:flex;flex-direction:column;justify-content:center;gap:6px;padding:24px 28px;min-height:100%;
  background:linear-gradient(160deg,color-mix(in srgb,var(--brand) 12%,var(--surface)),var(--surface) 70%)}
.offer-sum span{font-family:var(--head);font-size:clamp(24px,2.2vw,32px);line-height:1.1;color:var(--fg)}
.offer-sum span+span{color:var(--brand)}
.offer-head{padding:24px 28px 0}
.offer-head h3{font-family:var(--head);font-weight:500;font-size:clamp(26px,2.4vw,34px);line-height:1.08;margin-top:12px}
.offer-head p:not(.door-kicker){color:var(--muted);margin-top:10px}
.offer-rows{margin:18px 0 0;padding:0 28px 14px;display:grid;grid-auto-rows:auto;align-content:start}
.offer-rows>div{padding:12px 0;border-top:1px solid var(--line)}
.offer-rows dt{font:600 12px/1.3 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.offer-rows dd{margin:6px 0 0;color:var(--fg);font-size:15.5px;line-height:1.5}
.offer>.door-links{padding:8px 28px 26px}
@supports (grid-template-rows:subgrid){
  .offer{grid-row:span 4}
  .offer-rows{display:grid;grid-row:span 2;grid-template-rows:subgrid;row-gap:0}
}
.offer-eg{margin-top:clamp(40px,5vw,64px)}
.block-eg .offer-eg{margin-top:0}
body.product .block-eg{padding-bottom:0}
.offer-eg-h{font-family:var(--head);font-weight:500;font-size:clamp(24px,2.4vw,32px);line-height:1.15;margin-bottom:18px}
.eg-steps{margin:0;padding:0;list-style:none;counter-reset:eg;display:grid;gap:12px}
.eg-steps li{counter-increment:eg;display:grid;grid-template-columns:28px 1fr;gap:10px;color:var(--fg);line-height:1.5}
.eg-steps li::before{content:counter(eg);font:600 13px/26px var(--body);text-align:center;width:26px;height:26px;border-radius:50%;
  border:1px solid color-mix(in srgb,var(--brand) 60%,var(--line));color:var(--brand)}
.offer-eg .door-note{margin-top:14px;color:var(--muted)}
.offer-eg .eg-steps{max-width:820px}
.offer-more{margin-top:clamp(40px,5vw,64px)}
.offer-more .door:hover{transform:none;border-color:var(--line)}  /* a card with two links, so it never lifts as one */
@media (max-width:999px){.offers{grid-template-columns:minmax(0,1fr)}.offer>.door-media:not(.door-reel){aspect-ratio:16/10;min-height:0}.offer{grid-row:auto;grid-template-rows:none;display:flex;flex-direction:column}
  .offer-rows{grid-row:auto;grid-template-rows:none}.offer-sum{display:none}
  /* Curtis's picture on phones sized by its width (Mike, 2026-10-27: he was cut off): Safari doesn't resolve the stage's
     height:100% inside a box sized by aspect-ratio, so the stage was drawn at its full size and cropped */
  .offer>.door-media:not(.door-reel){aspect-ratio:auto;padding:20px 0}.offer>.door-media:not(.door-reel) .cur-stage{height:auto;width:min(62%,300px)}}
/* the home page's booking routes name who they're for, a label that can take two lines */
body.pg-home .crow small{line-height:1.4}
/* the home hero's eyebrow takes two lines on phones; its rules keep their width beside it, and go where it wraps, so
   the two lines sit flush left with nothing lopsided beside them */
body.pg-home .hero .eyebrow::before,body.pg-home .hero .eyebrow::after{flex:none}
@media (max-width:499px){body.pg-home .hero .eyebrow::before,body.pg-home .hero .eyebrow::after{display:none}}
/* a hero chip that takes two lines keeps its square beside its first line, as the one-line chips have it */
body.pg-curtis .hero .strip-type li{align-items:flex-start}
body.pg-curtis .hero .strip-type li::before{margin-top:calc(.5lh - 2.5px)}

/* Curtis: the plate, whole, where the robot stood. The picture is see-through outside its frame, so it needs no
   clip; the old one sat on the new frame's soft edge */
.cur-stage{position:relative;aspect-ratio:1;display:grid;place-items:center}
.cur-stage .cur-img{display:block;width:74%;height:auto;aspect-ratio:1;object-fit:contain}
.cur-media{max-width:560px;width:100%;justify-self:center}
.door-media .cur-stage{height:100%;width:auto}

/* Curtis blinks and talks. His closed eyes (owner, 2026-10-16), on top of the open ones, show for 130ms about every
   4 to 7 seconds, now and then twice, in a 23s round. His mouths (owner, 2026-10-20) talk in bursts with listening
   pauses in the same round (tools/curtis/talk.json, the cur-mid, cur-ah and cur-shut keyframes), on the plates only.
   Each place starts its round at its own time, so no two blink together (the booking window's from when it opens),
   and a plate's mouths start with its eyes. The layers switch visibility, not opacity: an opacity animation puts a
   layer on its own, which Chrome can place a fraction of a pixel off the open picture, so his whole face jumped with
   each blink. Nothing moves with reduced motion, and then the layers are never fetched: a lazy picture that isn't
   shown doesn't load */
.cur-stage>.cur-img{grid-area:1/1}
.cur-blink,.cur-talk{visibility:hidden;animation:cur-blink 23s steps(1,end) 1.5s infinite}
.cur-mid{animation-name:cur-mid}.cur-ah{animation-name:cur-ah}.cur-shut{animation-name:cur-shut}
.door-media :is(.cur-blink,.cur-talk){animation-delay:2.5s}
.book .head>.book-avatar>.cur-blink{animation-delay:3.1s}
.book-bar>.book-avatar>.cur-blink{animation-delay:1.2s}
@keyframes cur-blink{0%{visibility:visible}.57%{visibility:hidden}24.35%{visibility:visible}24.91%{visibility:hidden}43.91%{visibility:visible}44.48%{visibility:hidden}45.43%{visibility:visible}46%{visibility:hidden}70.87%{visibility:visible}71.43%{visibility:hidden}}
@media (prefers-reduced-motion:reduce){:is(.cur-stage,.book-avatar)>.cur-l{display:none}}
html.qa :is(.cur-stage,.book-avatar)>.cur-l{display:none}
@keyframes cur-mid{0%{visibility:hidden}3.291%{visibility:visible}3.996%{visibility:hidden}4.37%{visibility:visible}4.935%{visibility:hidden}5.422%{visibility:visible}5.878%{visibility:hidden}6.322%{visibility:visible}6.761%{visibility:hidden}7.178%{visibility:visible}7.852%{visibility:hidden}8.374%{visibility:visible}9.148%{visibility:hidden}11.909%{visibility:visible}12.691%{visibility:hidden}14.048%{visibility:visible}14.435%{visibility:hidden}22.996%{visibility:visible}23.426%{visibility:hidden}24.517%{visibility:visible}25.157%{visibility:hidden}25.596%{visibility:visible}26.065%{visibility:hidden}26.613%{visibility:visible}27.152%{visibility:hidden}28.248%{visibility:visible}28.896%{visibility:hidden}31.283%{visibility:visible}31.843%{visibility:hidden}32.2%{visibility:visible}32.839%{visibility:hidden}33.478%{visibility:visible}34.061%{visibility:hidden}41.739%{visibility:visible}42.361%{visibility:hidden}43.035%{visibility:visible}43.43%{visibility:hidden}44.022%{visibility:visible}44.626%{visibility:hidden}45.357%{visibility:visible}45.974%{visibility:hidden}47.052%{visibility:visible}47.583%{visibility:hidden}49.796%{visibility:visible}50.17%{visibility:hidden}50.87%{visibility:visible}51.457%{visibility:hidden}52.113%{visibility:visible}52.77%{visibility:hidden}53.765%{visibility:visible}54.309%{visibility:hidden}54.935%{visibility:visible}55.696%{visibility:hidden}56.139%{visibility:visible}56.67%{visibility:hidden}66.957%{visibility:visible}67.452%{visibility:hidden}68.678%{visibility:visible}69.439%{visibility:hidden}70.783%{visibility:visible}71.23%{visibility:hidden}71.826%{visibility:visible}72.517%{visibility:hidden}72.913%{visibility:visible}73.643%{visibility:hidden}74.396%{visibility:visible}74.822%{visibility:hidden}76.174%{visibility:visible}76.839%{visibility:hidden}77.5%{visibility:visible}77.952%{visibility:hidden}78.352%{visibility:visible}78.735%{visibility:hidden}80.087%{visibility:visible}80.443%{visibility:hidden}88.578%{visibility:visible}88.983%{visibility:hidden}89.578%{visibility:visible}89.952%{visibility:hidden}91.652%{visibility:visible}92.048%{visibility:hidden}94.07%{visibility:visible}94.813%{visibility:hidden}}
@keyframes cur-ah{0%{visibility:hidden}2.609%{visibility:visible}3.291%{visibility:hidden}4.935%{visibility:visible}5.422%{visibility:hidden}10.457%{visibility:visible}11.152%{visibility:hidden}12.691%{visibility:visible}13.452%{visibility:hidden}14.435%{visibility:visible}14.783%{visibility:hidden}22.609%{visibility:visible}22.996%{visibility:hidden}23.948%{visibility:visible}24.517%{visibility:hidden}27.874%{visibility:visible}28.248%{visibility:hidden}28.896%{visibility:visible}29.622%{visibility:hidden}30.017%{visibility:visible}30.735%{visibility:hidden}34.061%{visibility:visible}34.617%{visibility:hidden}43.43%{visibility:visible}44.022%{visibility:hidden}46.535%{visibility:visible}47.052%{visibility:hidden}47.583%{visibility:visible}48.152%{visibility:hidden}48.722%{visibility:visible}49.417%{visibility:hidden}50.17%{visibility:visible}50.87%{visibility:hidden}69.439%{visibility:visible}69.857%{visibility:hidden}70.426%{visibility:visible}70.783%{visibility:hidden}75.526%{visibility:visible}76.174%{visibility:hidden}77.952%{visibility:visible}78.352%{visibility:hidden}79.4%{visibility:visible}80.087%{visibility:hidden}80.443%{visibility:visible}80.87%{visibility:hidden}86.957%{visibility:visible}87.648%{visibility:hidden}88.126%{visibility:visible}88.578%{visibility:hidden}89.952%{visibility:visible}90.578%{visibility:hidden}91.27%{visibility:visible}91.652%{visibility:hidden}92.652%{visibility:visible}93.157%{visibility:hidden}93.639%{visibility:visible}94.07%{visibility:hidden}95.326%{visibility:visible}95.961%{visibility:hidden}}
@keyframes cur-shut{0%{visibility:hidden}5.878%{visibility:visible}6.322%{visibility:hidden}9.791%{visibility:visible}10.457%{visibility:hidden}11.152%{visibility:visible}11.539%{visibility:hidden}14.783%{visibility:visible}22.609%{visibility:hidden}23.426%{visibility:visible}23.948%{visibility:hidden}25.157%{visibility:visible}25.596%{visibility:hidden}26.065%{visibility:visible}26.613%{visibility:hidden}27.152%{visibility:visible}27.874%{visibility:hidden}30.735%{visibility:visible}31.283%{visibility:hidden}32.839%{visibility:visible}33.478%{visibility:hidden}42.361%{visibility:visible}43.035%{visibility:hidden}45.974%{visibility:visible}46.535%{visibility:hidden}49.417%{visibility:visible}49.796%{visibility:hidden}51.457%{visibility:visible}52.113%{visibility:hidden}53.352%{visibility:visible}53.765%{visibility:hidden}55.696%{visibility:visible}56.139%{visibility:hidden}57.391%{visibility:visible}66.957%{visibility:hidden}67.987%{visibility:visible}68.678%{visibility:hidden}69.857%{visibility:visible}70.426%{visibility:hidden}71.23%{visibility:visible}71.826%{visibility:hidden}74.822%{visibility:visible}75.526%{visibility:hidden}87.648%{visibility:visible}88.126%{visibility:hidden}92.048%{visibility:visible}92.652%{visibility:hidden}93.157%{visibility:visible}93.639%{visibility:hidden}}

/* the follow-up pipeline, where jobs slip away */
body.product .feature .media.pipe{aspect-ratio:auto;overflow:visible;background:none;border:1px solid var(--line);background-color:rgba(18,22,28,.9)}
body.product .feature .media.pipe::after{display:none}
.pipe-bar{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 22px;border-bottom:1px solid var(--line);font-size:14px;color:var(--muted)}
.pipe-bar b{color:var(--fg);font-weight:600}
.pipe-steps{list-style:none;margin:0;padding:18px 22px 20px;position:relative}
.pipe-steps::before{content:"";position:absolute;left:31px;top:30px;bottom:30px;width:2px;background:var(--line)}
.pipe-steps li{position:relative;display:grid;grid-template-columns:22px 1fr;column-gap:16px;padding:10px 0}
.pipe-steps li::before{content:"";grid-row:1/span 3;width:12px;height:12px;margin:5px 0 0 4px;border-radius:50%;background:var(--bg);box-shadow:0 0 0 2px var(--line);position:relative;z-index:1}
.pipe-steps li.done::before{background:var(--brand);box-shadow:0 0 0 2px var(--brand),0 0 14px color-mix(in srgb,var(--brand) 60%,transparent)}
.pipe-steps time{grid-column:2;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--brand);font-weight:600}
.pipe-steps b{grid-column:2;font-family:var(--head);font-weight:600;font-size:21px;line-height:1.2;margin-top:2px}
.pipe-steps span{grid-column:2;color:var(--muted);font-size:15px;margin-top:2px}
.pipe-note{padding:4px 22px 18px;color:var(--muted);font-size:13px}
html.js .pipe.rv .pipe-steps li{opacity:0;transform:translateY(8px);transition:opacity .5s ease,transform .5s ease}
html.js .pipe.rv.in .pipe-steps li{opacity:1;transform:none}
.pipe.rv.in .pipe-steps li:nth-child(2){transition-delay:.25s}.pipe.rv.in .pipe-steps li:nth-child(3){transition-delay:.5s}
.pipe.rv.in .pipe-steps li:nth-child(4){transition-delay:.75s}.pipe.rv.in .pipe-steps li:nth-child(5){transition-delay:1s}
.pipe.rv.in .pipe-steps li:nth-child(6){transition-delay:1.25s}.pipe.rv.in .pipe-steps li:nth-child(7){transition-delay:1.5s}
.pipe.rv.in .pipe-steps li:nth-child(8){transition-delay:1.75s}
html.qa .pipe .pipe-steps li{opacity:1;transform:none;transition:none}
@media (prefers-reduced-motion:reduce){html.js .pipe.rv .pipe-steps li{opacity:1;transform:none;transition:none}}

/* the footer: the fin and the lockup's SHORTFIN / LABS lettering, as in the header; the typed name stays for
   screen readers and shows instead of the lettering in forced colours */
footer .foot-lockup{display:flex;align-items:center;gap:14px;margin:0}
footer .foot-lockup img{width:64px;height:auto;flex:none}
footer .foot-lockup .foot-word{display:block;flex:0 1 auto;min-width:0;width:231.66px;max-width:calc(100% - 78px);height:auto;aspect-ratio:767/111;overflow:hidden}
footer .foot-lockup span{font-family:var(--head);font-weight:600;font-size:34px;letter-spacing:.01em;color:var(--fg);line-height:1}
footer .foot-lockup .foot-name{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
@media (forced-colors:active){footer .foot-lockup .foot-word{display:none}footer .foot-lockup .foot-name{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto;clip-path:none}}

/* off screen (AWAY_JS): Curtis's layers, all of his places together, and the live dot wait where they are */
html.cur-away :is(.cur-stage,.book-avatar)>.cur-l,.call-live.off::before{animation-play-state:paused}


/* the example call on the Curtis page */
.call{max-width:860px;margin:0 auto;border:1px solid var(--line);background:rgba(18,22,28,.88)}
.call-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 22px;border-bottom:1px solid var(--line);font-size:14px;color:var(--muted)}
.call-bar b{color:var(--fg);font-weight:600}
.call-live{display:inline-flex;align-items:center;gap:8px}
.call-live::before{content:"";width:8px;height:8px;border-radius:50%;background:#e8843c;box-shadow:0 0 0 0 rgba(232,132,60,.6);animation:call-dot 2s ease-out infinite}
@keyframes call-dot{to{box-shadow:0 0 0 10px rgba(232,132,60,0)}}
.call ol{list-style:none;margin:0;padding:22px;display:grid;gap:14px}
.call li{display:grid;gap:6px;max-width:78%}
.call li.caller{justify-self:start}
.call li.curtis{justify-self:end;text-align:left}
.call .who{font:600 12px/1 var(--body);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.call li.curtis .who{color:var(--brand)}
.call .say{padding:14px 18px;border:1px solid var(--line);background:var(--bg);line-height:1.55}
.call li.curtis .say{background:color-mix(in srgb,var(--brand) 9%,var(--surface));border-color:color-mix(in srgb,var(--brand) 35%,var(--line))}
.call li.handoff .say{box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 70%,transparent)}
.call .why{display:inline-flex;align-items:center;gap:6px;justify-self:end;font-size:13px;color:var(--brand)}
.call .why svg{width:14px;height:14px}
.call .sys{justify-self:center;max-width:none;display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);border:1px dashed var(--line);padding:8px 14px;text-align:center}
.call .sys svg{flex:none;color:var(--brand)}
.call-note{max-width:860px;margin:16px auto 0;text-align:center;color:var(--muted);font-size:14px}
@media (max-width:600px){.call li{max-width:94%}.call ol{padding:16px}}

/* the home hero: its eyebrow is part of the h1 and looks as it did on its own line */
.hero h1.h1-keyed{margin-top:0}
.h1-keyed .eyebrow-row{display:block;font:400 clamp(16px,calc(16px + 2*var(--xp-f)),18px)/1.6 var(--body),system-ui,sans-serif;letter-spacing:normal;text-wrap:wrap}
.h1-keyed .h1-main{display:block;margin-top:22px}
@media (max-width:600px){.h1-keyed .eyebrow-row{font-size:16px}.h1-keyed .h1-main{margin-top:16px}}

/* the Atrium page */
.atr-hero{position:relative;text-align:center;padding-block:clamp(36px,5vw,72px) clamp(56px,7vw,96px)}
.atr-powered{display:block;color:var(--brand)}
.atr-hero .atr-stage{width:min(520px,86vw);margin:14px auto 0}
.atr-word{display:block;width:min(340px,64vw);height:auto;margin:4px auto 0;mix-blend-mode:screen}
.atr-hero h1{max-width:18ch;margin:clamp(28px,4vw,44px) auto 0}
.atr-hero .lead{max-width:62ch;margin-inline:auto}
.atr-hero .ctas{justify-content:center}
/* the Atrium orb (tools/orb.js draws it as the app does): on the near-black behind it in the app's Command Center
   (#111 to #050505), which its glow is blended onto; the still shows until the canvas has drawn its first frame.
   The canvas is a whole number of pixels wide (orb.js sets its size), centred on the stage. The 780px still is shown
   (W - 12) * 780/768 wide on a W-wide stage, centred, so its rings land where the canvas draws them (see orb_stage) */
.atr-stage{position:relative;aspect-ratio:1;background:radial-gradient(closest-side,#0b0b0b 72%,rgba(11,11,11,0))}
.atr-stage>*{position:absolute;inset:0;width:100%;height:100%}
.atr-stage>canvas{margin:auto}
.atr-still{mix-blend-mode:lighten}
.atr-still>img{position:absolute;inset:0;margin:auto;width:calc((100% - 12px) * 1.015625);height:calc((100% - 12px) * 1.015625)}
.atr-live>.atr-still{visibility:hidden}
.door-media:has(>.atr-stage){background:#0b0b0b}
.sides{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.side{border:1px solid var(--line);background:var(--surface);padding:30px}
.side h3{font-family:var(--head);font-weight:500;font-size:clamp(26px,2.6vw,34px);line-height:1.1}
.side p{color:var(--muted);margin-top:12px}
.side-kicker{font:600 12.5px/1 var(--body);letter-spacing:.2em;text-transform:uppercase;color:var(--brand);margin-bottom:12px}
.side.ours{border-color:color-mix(in srgb,var(--brand) 55%,var(--line))}
/* the boxed cards: /atrium's agents, and the calls Curtis handles on each trade page */
:is(.agents,.calls) li{border:1px solid var(--line);background:var(--surface);padding:26px}
.agents li.super{border-color:color-mix(in srgb,var(--brand) 60%,var(--line));background:linear-gradient(160deg,color-mix(in srgb,var(--brand) 10%,var(--surface)),var(--surface) 60%)}
.agents a{color:var(--fg)}
.steps .step{border-top:1px solid var(--line);padding-top:22px}
.steps .step .n{font-variant-numeric:lining-nums}
@media (max-width:760px){.sides{grid-template-columns:1fr}}

/* the example call (tools/curtis_call.js): Curtis with the call's bar and the one play button, the transcript, and
   the ticket his crew gets, side by side, stacked on narrower screens. Before anyone presses play, and without
   script, it's the finished call: every line, every row and the stamp */
.lc-stage{display:grid;grid-template-columns:minmax(200px,.72fr) minmax(0,1.3fr) minmax(270px,.95fr);gap:clamp(18px,2.4vw,32px);align-items:start;max-width:1280px;margin:0 auto;padding:0 var(--xp-gutter,24px)}
.lc .lc-talk{max-width:none;margin:0}
.lc-who{display:grid;gap:16px;justify-items:center}
/* beside the transcript he's a column: his face, the call's bar, the play button, then the waveform and who's
   talking (the bar and the waveform are one group in the page, .lc-meta, which sits beside his face on a phone) */
.lc-meta{display:contents}
.lc-play{order:1}.lc-wave,.lc-speaker{order:2}
.lc-face{position:relative;width:min(100%,340px);aspect-ratio:1}
.lc-face img{position:absolute;inset:0;width:100%;height:100%;display:block}
.lc-face .lc-l{visibility:hidden}
.lc-face[data-mouth=mid] .lc-mid,.lc-face[data-mouth=ah] .lc-ah,.lc-face[data-mouth=shut] .lc-shut{visibility:visible}
/* he blinks as he does elsewhere (the 23s round), at his own time, and waits while he's off screen */
.lc-ready .lc-face .lc-closed{animation:cur-blink 23s steps(1,end) 4.1s infinite}
.lc-away .lc-face .lc-closed{animation-play-state:paused}
/* the phone ringing: rings spread from his frame until he picks up */
.lc-face::before,.lc-face::after{content:"";position:absolute;inset:6%;border:2px solid #e8843c;border-radius:14%;opacity:0;pointer-events:none}
.lc-ringing .lc-face::before{animation:lc-ring 1.6s ease-out infinite}
.lc-ringing .lc-face::after{animation:lc-ring 1.6s ease-out .8s infinite}
@keyframes lc-ring{from{opacity:.7;transform:scale(1)}to{opacity:0;transform:scale(1.22)}}
.lc-bar{width:min(100%,340px);padding:14px 16px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:4px 12px;border:1px solid var(--line);background:rgba(18,22,28,.88)}
.lc-dot{width:9px;height:9px;border-radius:50%;background:#5fd38a}
/* orange until he picks up, then green */
.lc-live .lc-dot{background:#e8843c}
.lc-ringing .lc-dot{animation:call-dot 1s ease-out infinite}
.lc-live.lc-on .lc-dot{background:#5fd38a;box-shadow:0 0 10px rgba(95,211,138,.7)}
.lc-bar b{font-weight:600}
.lc-time{font-variant-numeric:tabular-nums;color:var(--muted);font-size:14px}
.lc-biz{grid-column:2/4;color:var(--muted);font-size:13.5px}
.lc-wave{width:min(100%,340px);height:44px;display:block}
.lc-speaker{font:600 11.5px/1 var(--body);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);min-height:12px}
.lc:not(.lc-ready) :is(.lc-wave,.lc-speaker){display:none}
/* the one play button (the hero's is a shortcut to it): large, in his colour, under the call's bar */
.lc-play{width:min(100%,340px)}
html:not(.js) .lc-play{display:none}
.lc-play .hear{display:flex;width:100%;padding:10px 18px 10px 10px;gap:14px;border-color:var(--brand);background:color-mix(in srgb,var(--brand) 12%,transparent);font-size:17px;transition:border-color .15s,background-color .15s}
.lc-play .hear:hover{background:color-mix(in srgb,var(--brand) 22%,transparent)}
.lc-play .hear:focus-visible{outline:2px solid var(--fg);outline-offset:3px}
.lc-play .hear-ic{width:44px;height:44px}
.lc-play .hear-ic::before{left:17px;top:13px;border-width:9px 0 9px 14px}
.lc-play .hear.on .hear-ic::before{left:15px;top:13px;width:14px;height:18px;border-width:0 5px}
.lc-play .hear-time{margin-left:auto}
.lc-play .hear-note{margin:10px 0 0;color:var(--muted);font-size:13.5px;line-height:1.45}
/* the transcript's box: with the script it keeps one height and scrolls inside itself, resting at the end, where
   the call was handled; without the script it's the whole call, as tall as it is. (overflow-anchor: a line that
   grows by a row as it types never shifts anything outside the box, so the browser mustn't hold the page to a
   line inside it: with the box's top scrolled off the top of the screen it moved the page a row at a time) */
.lc-view{position:relative}
.lc-ready .lc-view{height:clamp(300px,58vh,560px);overflow-y:auto;overflow-anchor:none;scrollbar-width:thin;scrollbar-color:var(--line) transparent}
.lc-view:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}
/* scrolled down (always, at rest: the box rests at its end), its top edge fades, so a bubble cut there reads as
   "there's more above" */
.lc-ready .lc-view.lc-cut:not(:focus-visible){-webkit-mask-image:linear-gradient(transparent,#000 30px);mask-image:linear-gradient(transparent,#000 30px)}
.lc-view li.now .say{border-color:var(--brand);box-shadow:inset 3px 0 0 var(--brand)}
/* Safari re-balances a whole "pretty" paragraph on every added letter, so typed words jumped rows: plain wrapping here */
.lc .say{text-wrap-style:auto}
.lc-waiting{display:none}
.lc-latest{display:none}
.lc-ticket{border:1px solid var(--line);background:rgba(18,22,28,.88);padding:22px}
.lc-ticket h3{font-family:var(--head);font-weight:500;font-size:clamp(24px,2.2vw,30px);line-height:1.1;margin:0}
.lc-ticket>p{margin:6px 0 14px;color:var(--muted);font-size:13.5px}
.lc-ticket dl{margin:0}
.lc-row{display:grid;grid-template-columns:88px 1fr;gap:12px;padding:8px 0;border-top:1px solid var(--line)}
.lc-row dt{font:600 11.5px/1.6 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.lc-row dd{margin:0;font-weight:500;font-size:15px;line-height:1.45}
/* what matters most on the ticket: an emergency, or the time it's booked for */
.lc-row:is(.urgent,.key) dd{color:#ffb38a}
.lc-stamp{margin-top:14px;display:inline-flex;padding:10px 14px;border:1px solid var(--brand);color:var(--brand);font:700 12px/1 var(--body);letter-spacing:.2em;text-transform:uppercase}
.lc-ready .lc-stamp{transform:rotate(-3deg);transform-origin:left bottom;transition:opacity .35s,transform .45s cubic-bezier(.2,1.6,.4,1)}
/* stacked (a tablet, a phone): Curtis across the top, the transcript under him. The transcript's box takes the
   height the screen has left under Curtis, so the line being said is on screen while the call plays: the screen's
   height with the browser's own bars showing (svh, which doesn't change as they hide), less --lc-chrome, which the
   script measures (the header, Curtis's block, the transcript's bar and the margins). The phone's bar is out of the
   way then (html.call-on, in the page's stylesheet) */
@media (max-width:999px){.lc-stage{grid-template-columns:1fr 1fr}.lc-who{grid-column:1/-1;grid-template-columns:minmax(0,200px) minmax(0,340px);justify-content:center;align-items:center}.lc-who .lc-face{grid-row:1/3}.lc-meta{display:grid;gap:16px;justify-items:center;width:min(100%,340px);align-self:end}.lc-bar,.lc-wave{width:100%}.lc-play{align-self:start}.lc-play,.lc-wave,.lc-speaker{order:0}
 html:not(.js) .lc-who .lc-face{grid-row:auto}html:not(.js) .lc-meta{align-self:center}
 .lc-ready .lc-view{height:clamp(150px,calc(100vh - var(--lc-chrome,440px)),420px);height:clamp(150px,calc(100svh - var(--lc-chrome,440px)),420px)}}
/* a phone: his face beside the call's bar, as large as the bar leaves room for (his mouth is what moves), the play
   button under them. On a short phone (.lc-tight, the script's) the business's line in the bar gives its room to
   the transcript: the transcript's bar says the hour and the call's first line says the name */
@media (max-width:640px){.lc-stage{grid-template-columns:1fr}.lc-who{grid-template-columns:clamp(96px,calc(100vw - 264px),132px) 1fr;justify-items:stretch;gap:12px 14px}.lc-who .lc-face{grid-row:auto;width:100%}.lc-meta{width:100%;gap:8px;align-self:center}.lc-bar{padding:10px 14px}.lc-wave{height:28px}.lc-play{grid-column:1/-1;width:100%}.lc-play .hear{padding-block:7px}
 .lc-tight .lc-biz{display:none}
 .lc-tight .lc-talk{margin-top:-8px}.lc-tight .lc-play .hear{padding-block:4px}.lc-tight .lc-play .hear-note{margin-top:6px}
 /* the ticket is under the fold here, so while the call plays the transcript's bar says what Curtis took last (the
    script fills .lc-latest): it lies over the bar's own words, which keep their room, so nothing moves. A long
    detail takes two lines and is never cut short with dots; the bar is tall enough for two at all times (with the
    script, at rest as well), and the detail's two lines keep their room when it has one, so from one detail to the
    next neither the bar, the transcript's box nor the page changes size. (On a short phone, .lc-tight, the gaps
    around the play button give the box back the height the taller bar takes) */
 .lc-ready .call-bar{min-height:68px}
 .lc-live .call-bar{position:relative}
 .lc-live .call-bar>:not(.lc-latest){visibility:hidden}
 .lc-live .lc-latest{position:absolute;inset:0;display:grid;grid-template-columns:1fr auto;align-content:center;gap:5px 12px;padding:0 16px}
 .lc-latest-h,.lc-latest-n{font:600 11px/1 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
 .lc-latest-n{font-variant-numeric:tabular-nums}
 .lc-latest-row{grid-column:1/-1;min-width:0;height:2.5em;font-size:14.5px;line-height:1.25;color:var(--fg);overflow:hidden}
 .lc-latest-row span{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;animation:lc-flash 1.2s ease-out}
 .lc-latest-row b{font-weight:600;color:var(--muted)}
 .lc-latest-row .none{color:var(--muted);animation:none}
 .lc-latest-row .sent{font:700 12px/1.5 var(--body);letter-spacing:.2em;text-transform:uppercase;color:var(--brand)}}
/* a short window on a laptop (1366x650, 1280x680): beside the transcript his column ran past the foot of the
   screen, and under the section's heading the fold cut the play button (under 840px tall it could: a trade page
   with a three-line heading has the button's foot at 818). There the play button comes straight under his face,
   with the call's bar, the waveform and who's talking after it, the waveform is as low as a phone's, and under
   about 710px his face gives up the height it must (never under 150px): so the button is whole on screen with the
   heading above it, and his whole column, down to who's talking, is on screen with the transcript while the call
   plays. A window 840px tall or more is as it was */
@media (min-width:1000px) and (max-height:839px){.lc-face{width:min(100%,340px,max(150px,calc(100vh - 440px)))}.lc-bar{order:2}.lc-wave{height:28px}}
/* playing (.lc-live, while the recording plays or is paused part way): each line comes in and types as it's said,
   the newest kept in view inside the box, and the ticket's values come in as the caller gives them. Nothing
   outside the two boxes changes size, so the page never moves under the reader */
.lc-live .lc-view{scroll-behavior:smooth}
.lc-live .lc-view li.in{animation:lc-rise .35s ease-out both}
@keyframes lc-rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
/* a line not reached yet, and the words not said yet, are there for a screen reader but take no room: the whole
   call reads in order, and a bubble grows as it types */
.lc-live :is(.lc-view li:not(.in),.say .off){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.lc-live .say .on.typing::after{content:"";display:inline-block;width:2px;height:1em;margin-left:1px;vertical-align:-2px;background:var(--brand);animation:lc-caret .9s steps(1) infinite}
@keyframes lc-caret{50%{opacity:0}}
.lc-live .why{opacity:0;transform:translateY(4px);transition:opacity .3s,transform .3s}
.lc-live .done .why{opacity:1;transform:none}
.lc-live.lc-ringing .lc-waiting{display:grid;place-items:center;position:absolute;inset:0;margin:0;color:var(--muted);font:600 12.5px/1 var(--body);letter-spacing:.22em;text-transform:uppercase}
.lc-live.lc-ringing .lc-waiting span{animation:lc-caret 1.2s steps(1) infinite}
/* the ticket is a form being filled in: every label is there from the start, so it keeps its size, and each value
   comes in (still read by a screen reader before it does) when the call reaches it; the stamp lands at the end */
.lc-live .lc-row:not(.in) dd{opacity:0}
.lc-live .lc-row.in dd{animation:lc-flash 1.2s ease-out}
@keyframes lc-flash{from{color:#fff;text-shadow:0 0 14px rgba(232,132,60,.9)}}
.lc-live .lc-ticket:not(.lc-sent) .lc-stamp{opacity:0;transform:scale(1.4) rotate(-6deg);transition:none}
/* paused: the ring and the caret wait too */
.lc-paused .lc-face::before,.lc-paused .lc-face::after,.lc-paused .lc-dot,.lc-paused .lc-waiting span,.lc-paused .say .on.typing::after{animation-play-state:paused}
@media (prefers-reduced-motion:reduce){.lc .lc-l{display:none}.lc-ready .lc-stamp{transition:none}}
html.qa .lc .lc-l{display:none}
