/* Duo polish layer 2026-10-31: motion, glass, glow, focal type. Loaded after duo-refinement.css. */
:root{--duo-ease:cubic-bezier(.2,.8,.2,1);--duo-glow:0 18px 48px -14px rgba(230,0,18,.62),0 2px 0 rgba(255,255,255,.06) inset}

/* --- reflow safety: nothing can poke out sideways while elements glide --- */

/* --- header label: full phrase in the hero, short one in the header on narrow screens --- */
.duo-book-head .dh-s{display:none}
@media(max-width:440px){
  .duo-book-head .dh-l{display:none}
  .duo-book-head .dh-s{display:inline;white-space:nowrap}
}

/* --- chat: the floating launcher is retired on compact screens; chat lives in the header / menu --- */
.duo-chat-nav,.duo-chat-head{display:none}
@media(max-width:1100px){
  .ai-guide-toggle{display:none!important}
}
@media(max-width:790px){html .duo-chat-nav{display:flex}}
html.duo-book .duo-chat-nav{display:flex}
@media(max-width:790px){
  .duo-chat-nav{align-items:center;gap:12px;width:100%;min-height:48px;padding:12px 0;margin-top:6px;background:none;border:0;border-top:1px solid #333;color:#fff;font:inherit;font-weight:800;font-size:14px;letter-spacing:.04em;text-transform:uppercase;text-align:left;cursor:pointer}
  .duo-chat-nav svg{color:#E60012;flex:none}
}
html.duo-book .duo-chat-nav{align-items:center;gap:12px;width:100%;min-height:48px;padding:12px 5px;margin-top:6px;background:none;border:0;border-top:1px solid #333;color:#fff;font:inherit;font-weight:800;font-size:15px;letter-spacing:.04em;text-transform:uppercase;text-align:left;cursor:pointer}
html.duo-book .duo-chat-nav svg{color:#E60012;flex:none}
@media(min-width:791px) and (max-width:1100px){
  html:not(.duo-book) .duo-chat-head{display:inline-grid;place-items:center;flex:none;width:44px;height:44px;margin-left:10px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.28);color:#fff;cursor:pointer;transition:transform .18s var(--duo-ease)}
  .duo-chat-head:hover{border-color:#E60012;background:rgba(230,0,18,.14)}
  .duo-chat-head:active{transform:scale(.94)}
}

/* --- glass on the bars --- */
@supports((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  .site-header{background:rgba(8,8,8,.94);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 1px 0 rgba(255,255,255,.07)}
}
.calc-sticky,.launch-sticky{background:rgb(214,0,16)!important;box-shadow:0 -10px 30px -14px rgba(230,0,18,.55)}
@media(max-width:790px){.nav{background:#0e0e0e}}

/* --- confident red: soft glow on the booking CTAs and the savings card --- */
a.duo-book{background:linear-gradient(135deg,#f01428 0%,#E60012 52%,#c8000f 100%);border-color:#E60012;box-shadow:var(--duo-glow);transition:transform .18s var(--duo-ease)}
@media(hover:hover){a.duo-book:hover{box-shadow:0 22px 56px -12px rgba(230,0,18,.78),0 2px 0 rgba(255,255,255,.08) inset}}
.duo-book-head{box-shadow:0 8px 24px -10px rgba(230,0,18,.7)}
.calc-save{position:relative;background:linear-gradient(135deg,#ff1a2e 0%,#E60012 46%,#b9000f 100%);box-shadow:0 30px 70px -28px rgba(230,0,18,.85);overflow:hidden}
.calc-save:after{content:"";position:absolute;inset:-40% -20% auto auto;width:70%;height:140%;background:radial-gradient(closest-side,rgba(255,255,255,.2),transparent);pointer-events:none}
.calc-save b,.calc-save small{position:relative;z-index:1}
.calc-save b{font-variant-numeric:tabular-nums;font-weight:900}
.calc-save.negative{background:#2a2a2a;box-shadow:none}
.duo-pop{animation:duoPop .4s var(--duo-ease)}
@keyframes duoPop{0%{transform:scale(.97)}45%{transform:scale(1.035)}100%{transform:scale(1)}}

/* --- press + focus: every control answers your touch --- */
.btn,.text-link,.menu-trigger,.pa-filters button,.calc-grid button,.launch-builder button,.cs-go,.ls-go,.brand{transition:transform .18s var(--duo-ease)}
.nav a{transition:none}
.btn:active,.menu-trigger:active,.pa-filters button:active,.cs-go:active,.ls-go:active{transform:scale(.97)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #fff;outline-offset:3px;box-shadow:0 0 0 6px rgba(230,0,18,.85)}
.calc-sticky:focus-visible,.launch-sticky:focus-visible{outline-offset:-6px;box-shadow:none}

/* --- crisp logo on hi-dpi --- */
.brand-logo{image-rendering:auto;-webkit-font-smoothing:antialiased}

/* --- the sticky bars slide + fade (transform/opacity only) --- */
.calc-sticky,.launch-sticky{will-change:transform}

/* --- INNER SCREEN (tablet-size, 600-1100px, not hinged): one bold focal point per screen --- */
@media(min-width:600px) and (max-width:1100px){
  html:not(.duo-book) .home-hero{padding:56px 0 0}
  html:not(.duo-book) .home-hero .eyebrow{font-size:12px;letter-spacing:.16em}
  html:not(.duo-book) .home-hero .big{font-size:clamp(66px,12.6vw,118px);line-height:.98;letter-spacing:-.07em;margin:30px 0 28px}
  html:not(.duo-book) .home-hero .hero-tagline{font-size:clamp(22px,3.5vw,30px);line-height:1.35;margin-bottom:30px}
  html:not(.duo-book) .home-hero .hero-body{font-size:17px;line-height:1.7}
  html:not(.duo-book) .duo-hero-cta{gap:18px;margin:6px 0 40px}
  html:not(.duo-book) .duo-book-hero{min-height:64px;font-size:15px;padding-inline:26px}
  html:not(.duo-book) .inner-hero{min-height:0;padding:64px 0 52px}
  html:not(.duo-book) .inner-hero .big{font-size:clamp(52px,9vw,88px);line-height:1;letter-spacing:-.065em;margin:24px 0 22px}
  html:not(.duo-book) .inner-hero .lede{font-size:clamp(18px,2.7vw,23px);line-height:1.55;max-width:34ch}
  html:not(.duo-book) .inner-hero .actions{margin-top:28px}
  html:not(.duo-book) .calc-save{padding:26px 30px 30px}
  html:not(.duo-book) .calc-save b{font-size:clamp(72px,15vw,124px);letter-spacing:-.07em;line-height:.95}
  html:not(.duo-book) .calc-save small{font-size:13px!important;letter-spacing:.14em}
  html:not(.duo-book) .launch-fast{padding-top:72px}
}
/* --- OUTER SCREEN + small: savings figure is the hero of the result card --- */
@media(max-width:599px){
  .calc-save b{font-size:clamp(52px,17vw,76px);letter-spacing:-.07em;line-height:.95}
  .calc-save{padding:20px 20px 22px}
}

/* --- HALF-FOLD / BOOK: bigger savings, balanced gutter --- */
html.duo-book .calc-save b{font-size:clamp(56px,7.4vw,84px)}
html.duo-book .calc-save{padding:22px 24px 26px}

@media(prefers-reduced-motion:reduce){
  .duo-pop{animation:none}
  .btn,a.duo-book,.duo-chat-head,.nav a,.menu-trigger{transition:none}
}

/* laptop pane text change: plain 200ms opacity swap (see duo-posture.js), no view transitions */
#duo-pane .dp-swap{animation:dpSwap .2s ease-out}
@keyframes dpSwap{from{opacity:.2}to{opacity:1}}

/* ================= atmosphere (transform/opacity only; paused under reduced motion) ================= */
.home-hero,.inner-hero,.pagehero{position:relative;isolation:isolate}
.duo-aurora{position:absolute;inset:0;overflow:hidden;z-index:-1;pointer-events:none;contain:strict}
.duo-aurora i{position:absolute;display:block;left:-20%;top:-25%;width:150%;height:150%;will-change:transform;
  background:radial-gradient(closest-side at 22% 24%,rgba(230,0,18,.30),rgba(230,0,18,.10) 55%,transparent 75%),radial-gradient(closest-side at 78% 40%,rgba(255,60,60,.18),transparent 70%),radial-gradient(closest-side at 46% 82%,rgba(230,0,18,.16),transparent 72%);
  animation:duoAurora 40s ease-in-out infinite alternate}
@keyframes duoAurora{from{transform:translate3d(-4%,-3%,0)}to{transform:translate3d(6%,4%,0)}}
.inner-hero:after{display:none}   /* replaced by the aurora */

/* one-shot reveal: small rise + fade, 300ms ease-out */
.duo-rv{opacity:0;transform:translate3d(0,12px,0)}
.duo-rv.duo-in{opacity:1;transform:none;transition:opacity .3s ease-out,transform .3s ease-out}

/* shimmer sweep on the primary CTA */
a.duo-book,.btn,.duo-chat-head,.calc-sticky,.launch-sticky{position:relative}
.calc-sticky,.launch-sticky{position:fixed}
a.duo-book{overflow:hidden}
a.duo-book:before{content:"";position:absolute;top:0;bottom:0;left:0;width:38%;pointer-events:none;z-index:1;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.34),transparent);transform:translate3d(-130%,0,0) skewX(-18deg);animation:duoShimmer 2.4s var(--duo-ease) 1.2s 2}
@keyframes duoShimmer{0%{transform:translate3d(-130%,0,0) skewX(-18deg)}28%,100%{transform:translate3d(420%,0,0) skewX(-18deg)}}
a.duo-book>*{position:relative;z-index:2}

/* touch ripple */
.duo-rip-host{position:relative;overflow:hidden}
.calc-sticky.duo-rip-host,.launch-sticky.duo-rip-host{position:fixed}
.duo-ripple{position:absolute;border-radius:50%;pointer-events:none;z-index:3;background:radial-gradient(closest-side,rgba(255,255,255,.55),rgba(230,0,18,.35) 55%,transparent 72%);transform:scale(.1);opacity:.9;animation:duoRip .7s var(--duo-ease) forwards}
@keyframes duoRip{to{transform:scale(1);opacity:0}}

/* glass edge highlight on panels */
.calc-panel,.calc-compare>div,.lf-card,.quote-window,.pa-card,.launch-review,.launch-builder,.power-feature{box-shadow:inset 0 1px 0 rgba(255,255,255,.14),inset 0 0 0 1px rgba(255,255,255,.04),0 24px 50px -34px rgba(0,0,0,.9)}
.lf-card.lf-new{box-shadow:inset 0 1px 0 rgba(255,255,255,.2),inset 0 0 0 1px rgba(230,0,18,.35),0 28px 70px -34px rgba(230,0,18,.55)}

@media(prefers-reduced-motion:reduce){
  .duo-aurora i,a.duo-book:before{animation:none}
  .duo-aurora i{transform:none}
  .duo-rv{opacity:1;transform:none}
  .duo-ripple{display:none}
}

/* --- BOOK posture: service/launch hero spreads across both pages (headline left page, copy + CTA right page) --- */
@media(horizontal-viewport-segments:2){
  html.duo-book .inner-hero{min-height:0;padding:56px 0 52px}
  html.duo-book .inner-hero .shell{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:var(--fold-gutter);grid-template-areas:"e e" "h l" "h a" "h p";align-content:center;align-items:start}
  html.duo-book .inner-hero .eyebrow{grid-area:e}
  html.duo-book .inner-hero h1.big{grid-area:h;font-size:clamp(42px,5.6vw,58px);margin:18px 0 0}
  html.duo-book .inner-hero .lede{grid-area:l;margin:20px 0 0;font-size:18px;line-height:1.55;max-width:none}
  html.duo-book .inner-hero .actions{grid-area:a;margin-top:26px}
  html.duo-book .inner-hero .proof{grid-area:p;margin-top:22px}
}
.duo-aurora:after{content:'';position:absolute;left:0;right:0;bottom:0;height:42%;background:linear-gradient(rgba(0,0,0,0),var(--black,#070707));pointer-events:none}
.inner-hero .actions .btn:not(.btn-outline):first-child{box-shadow:var(--duo-glow)}

/* two-column home hero (791-1100px, e.g. inner landscape): headline sized for its half-width column so the CTA stays above the fold */
@media(min-width:791px) and (max-width:1100px){
  html:not(.duo-book) .home-hero .big{font-size:clamp(54px,6.9vw,74px);line-height:1;margin:22px 0 20px}
  html:not(.duo-book) .home-hero .hero-tagline{font-size:clamp(20px,2.4vw,24px);margin-bottom:22px}
  html:not(.duo-book) .home-hero{padding-top:40px}
}

/* ================= rotation guard: while the OS rotates the screen nothing of ours moves, blurs or repaints ================= */
html.rotating{scroll-behavior:auto!important}
html.rotating *,html.rotating *:before,html.rotating *:after{animation:none!important;transition:none!important}
html.rotating .duo-aurora i{animation:none!important}
html.rotating .site-header{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
/* header + nav: never move sideways, never animate */
.duo-book-head:before{display:none!important;animation:none!important}
.site-header .brand,.nav a{animation:none!important}
.site-header .brand,.site-header .menu-trigger,.site-header .duo-book-head,.site-header .duo-chat-head{transition:transform .15s}
.nav a,.nav-link-red{transform:none!important}
@media(prefers-reduced-motion:reduce){.duo-aurora i{animation:none}}
