:root{
  --blue:#0071E3;
  --blue-h:#0077ED;
  --ink:#1D1D1F;
  --grey:#6E6E73;
  --grey-l:#86868B;
  --line:#D2D2D7;
  --hair:#E8E8ED;
  --panel:#F5F5F7;
  --green:#248A3D;
  --amber:#A6720E;
  --acid:#D1FF00;
  --sans:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","Helvetica Neue",system-ui,sans-serif;
  --mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,monospace;
}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mmov{position:fixed;inset:0;background:#FBFBFD;z-index:220;display:block;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .32s ease,visibility 0s linear .32s;padding:96px 38px 34px;overflow:auto}.mmov.open{visibility:visible;opacity:1;pointer-events:auto;transition:opacity .32s ease}.mmx{position:absolute;top:18px;right:20px;border:0;background:none;cursor:pointer;font-size:21px;color:var(--ink);padding:8px;line-height:1}.mmov nav{max-width:920px;margin:0 auto}.mmov nav a{display:block;font-size:clamp(28px,3vw,38px);font-weight:600;letter-spacing:-.01em;color:var(--ink);padding:16px 0;text-decoration:none;opacity:0;transform:translateY(14px);transition:color .32s ease}.mmov nav a:hover,.mmov nav a:active{text-decoration:none;color:#86868B}.mmx{transition:opacity .32s ease}.mmx:hover,.mmx:active{opacity:.5}.mmov.open nav a{animation:mmin .46s cubic-bezier(.2,.6,.2,1) forwards;animation-delay:calc(var(--i)*38ms)}@keyframes mmin{to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.mmov nav a{opacity:1;transform:none}.mmov.open nav a{animation:none}}
@media (max-width:740px){
  .gnav .in > a:not(:first-child):not(.sipill){display:none}}

.sipill{background:var(--blue);color:#fff !important;border-radius:999px;padding:4.5px 13px;line-height:1;display:inline-flex;align-items:center;white-space:nowrap;transition:background .15s}/* apple account nav treatment, site-wide */
.gnav.agnav .in{justify-content:flex-end;max-width:1024px;padding:0 14px;gap:28px}html{scroll-behavior:smooth}body{
  background:#fff;color:var(--ink);
  font-family:var(--sans);font-size:17px;line-height:1.47;
  -webkit-font-smoothing:antialiased;
}::selection{background:var(--blue);color:#fff}a{color:inherit}svg{display:block}sup{font-size:.6em;vertical-align:top;color:inherit}/* ---------- brand loading screen (exact from superfile.com) ---------- */
#loader{position:fixed;inset:0;z-index:200}#loader .col{position:absolute;top:0;bottom:0;width:25.5%;overflow:hidden}#loader .c1{left:0}#loader .c2{left:25%}#loader .c3{left:50%}#loader .c4{left:75%;width:25%}#loader .col i{position:absolute;inset:0;display:block;transition:transform .55s cubic-bezier(.76,0,.24,1)}#loader .cr{background:#000}#loader .ac{background-color:var(--acid);transform:translateY(-101%)}/* The engraving belongs to the acid, not to the screen: it is painted INTO each column's lime, so it
   assembles strip by strip on the way in and peels away with the lime on the way out. A single
   full-screen layer would have floated over the black curtain mid-exit, which is not a thing a
   watermark can do.
   The four columns each draw the same image at its true viewport position, so the strips line up
   into one continuous engraving once they have all landed. --engw sizes it to cover the viewport at
   its own 973x577 aspect (never stretched); x is offset per column, y is centre, which each column
   already computes correctly because they are all full height. The artwork is black ink with an
   alpha channel, so it darkens the lime rather than needing a blend mode. */
#loader{--engw:max(100vw,calc(100vh * 1.6863))}
#loader .ac{background-image:url("/loader-bust-4.webp");background-repeat:no-repeat;background-size:var(--engw) auto}
#loader .c1 .ac{background-position:calc((100vw - var(--engw))/2) center}
#loader .c2 .ac{background-position:calc((100vw - var(--engw))/2 - 25vw) center}
#loader .c3 .ac{background-position:calc((100vw - var(--engw))/2 - 50vw) center}
#loader .c4 .ac{background-position:calc((100vw - var(--engw))/2 - 75vw) center}
/* No halo behind the logo. It was there to stop the beard hatching from eating the wordmark's thin
   italic strokes and the 11px tagline, but that was a symptom of the engraving being too strong —
   the fix belonged in the artwork's alpha, not in a glow layered over it. */
/* entry: acid drops in, right column first */
#loader.enter .c4 .ac{transform:translateY(0);transition-delay:.02s}#loader.enter .c3 .ac{transform:translateY(0);transition-delay:.12s}#loader.enter .c2 .ac{transform:translateY(0);transition-delay:.22s}#loader.enter .c1 .ac{transform:translateY(0);transition-delay:.32s}/* exit: acid lifts first, cream chases, left column first */
#loader.lift .c1 .ac{transform:translateY(-101%);transition-delay:0s}#loader.lift .c2 .ac{transform:translateY(-101%);transition-delay:.12s}#loader.lift .c3 .ac{transform:translateY(-101%);transition-delay:.24s}#loader.lift .c4 .ac{transform:translateY(-101%);transition-delay:.36s}#loader.lift .c1 .cr{transform:translateY(-101%);transition-delay:.14s}#loader.lift .c2 .cr{transform:translateY(-101%);transition-delay:.26s}#loader.lift .c3 .cr{transform:translateY(-101%);transition-delay:.38s}#loader.lift .c4 .cr{transform:translateY(-101%);transition-delay:.5s}#loader .lg{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
}#loader .lgmask{display:contents}#loader .lgmove{
  display:flex;flex-direction:column;align-items:center;gap:15px;
  transform:translateY(100vh);
  transition:transform .8s cubic-bezier(.25,.9,.3,1);
}#loader.enter .lgmove{transform:translateY(0);transition-delay:.45s}#loader.lift .lgmove{
  transform:translateY(-100vh);
  transition:transform .65s cubic-bezier(.65,0,.75,.6);transition-delay:0s;
}#loader .lgmove{gap:10px}#loader .lg-load{width:min(240px,56vw);height:54px;color:var(--ink);display:block}#loader .tg{
  font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.1em;
  color:var(--ink);text-transform:uppercase;
  opacity:0;transform:scale(1.6);
  transition:opacity .5s cubic-bezier(.2,.7,.3,1),transform .5s cubic-bezier(.2,.7,.3,1);
}#loader.enter .tg{opacity:1;transform:scale(1);transition-delay:1.05s}#loader.lift .tg{opacity:1;transform:scale(1);transition:none}body.no-loader #loader,#loader[data-off]{display:none}/* ---- global nav (apple style, centered) ---- */
.gnav{
  height:44px;background:rgba(251,251,253,.82);backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);
  border-bottom:1px solid rgba(0,0,0,.07);position:sticky;top:0;z-index:40;
  transition:background .35s ease,border-color .35s ease;
}/* hero mode — nav floats over the dark carousel with white text + glass blur */
.gnav:not(.scrolled){background:rgba(10,14,26,.22);border-bottom-color:rgba(255,255,255,.14)}
/* hero mode text — white so the nav is legible over the dark carousel; page-scoped to
   the homepage hero and limited to TOP-LEVEL items so the white dropdown popovers keep
   their dark text. Reverts to the shared dark ink once .scrolled is toggled on scroll. */
body:has(.hcar) .gnav:not(.scrolled) .lg{color:#fff;transition:color .35s ease}
body:has(.hcar) .gnav:not(.scrolled) .in>a,body:has(.hcar) .gnav:not(.scrolled) .ndrop>.ntop,body:has(.hcar) .gnav:not(.scrolled) .mnavb{color:rgba(255,255,255,.92);transition:color .35s ease}
body:has(.hcar) .gnav:not(.scrolled) .in>a:hover,body:has(.hcar) .gnav:not(.scrolled) .ndrop:hover>.ntop{color:#fff}
/* nav dropdowns */
.gnav .ndrop{position:relative;display:inline-flex;align-items:center}/* mobile grouped sub-items in the overlay */
.mmov nav a.msub{font-size:clamp(19px,2.1vw,25px);font-weight:500;padding:11px 0 11px 22px;color:#6e6e73}/* ---- Okta-style hero carousel ---- */
.hcar{position:relative;height:100vh;height:100svh;height:100dvh;min-height:560px;margin-top:-44px;overflow:hidden;background:#0a0f1e}.hcar .hin{padding-top:44px}.hslides{position:absolute;inset:0}.hslide{position:absolute;inset:0;opacity:0;transition:opacity .9s ease;pointer-events:none}.hslide.on{opacity:1;pointer-events:auto}.hmedia{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.06);transition:transform 7s ease-out}.hslide.on .hmedia{transform:scale(1)}.hmedia video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hscrim{position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,9,18,.85) 0%,rgba(6,9,18,.52) 44%,rgba(6,9,18,.12) 100%),linear-gradient(0deg,rgba(6,9,18,.72) 0%,transparent 46%)}.hcar .hin{position:relative;max-width:1200px;margin:0 auto;height:100%;padding:0 24px 92px;display:flex;flex-direction:column;justify-content:center}.heyebrow{display:inline-flex;align-items:center;gap:10px;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#cfe0ff}.heyebrow::before{content:"";width:24px;height:2px;background:var(--acid);border-radius:2px}.hcar .hh1{margin-top:16px;font-size:clamp(30px,5vw,60px);font-weight:600;letter-spacing:-.02em;line-height:1.04;color:#fff;max-width:17ch;text-wrap:balance}.hsub{margin-top:16px;font-size:clamp(15px,1.5vw,19px);color:rgba(255,255,255,.82);max-width:52ch;line-height:1.5}.hcta{display:inline-flex;align-items:center;gap:8px;margin-top:26px;background:#fff;color:#0a0f1e !important;border-radius:12px;padding:13px 24px;font-size:15px;font-weight:600;width:max-content;transition:background .15s,transform .12s}.hcta,.hcta:hover,.hcta:focus{text-decoration:none}.hcta:hover{background:var(--acid);transform:translateY(-1px)}.hbar{position:absolute;left:0;right:0;bottom:0;z-index:4}.hbar .in{max-width:1200px;margin:0 auto;padding:0 24px 22px;display:flex;gap:0}.hseg{flex:1;text-align:left;background:none;border:0;cursor:pointer;padding:12px 16px 0 0;color:rgba(255,255,255,.58);font-family:var(--sans)}.hseg .hlab{display:block;font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .3s}.hseg:hover{color:rgba(255,255,255,.85)}.hseg.on{color:#fff}.hseg .htrack{margin-top:9px;height:3px;border-radius:2px;background:rgba(255,255,255,.22);overflow:hidden}.hseg .hfill{display:block;height:100%;width:0;background:#fff;border-radius:2px}.hseg.on .hfill{background:var(--acid)}@media (prefers-reduced-motion:reduce){.hslide{transition:opacity .3s}.hmedia{transform:none;transition:none}}.prodbar{background:#fff}.prodbar .in{
  max-width:1190px;margin:0 auto;padding:20px 24px;
  display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;
}.prodbar .lock{display:flex;flex-direction:column;gap:5px}.prodbar .lock .lg{height:22px;width:97px;color:var(--ink)}.prodbar .lock .tag{font-size:14px;color:var(--ink)}.prodbar .lock .tag .m{font-family:var(--mono);font-size:13px}.prodbar .btns{display:flex;gap:12px;align-items:center}.pill{
  display:inline-flex;align-items:center;font-size:14px;letter-spacing:-.016em;text-decoration:none;
  border-radius:980px;padding:8px 18px;cursor:pointer;transition:background .15s,border-color .15s;
}.pill.ghost{border:1px solid var(--line);background:#fff;color:var(--ink)}.pill.ghost:hover{border-color:#86868B}.pill.blue{background:var(--blue);color:#fff;border:1px solid var(--blue)}.pill.blue:hover{background:var(--blue-h)}/* anthem modal */
.vmodal{position:fixed;inset:0;background:rgba(0,0,0,.85);z-index:80;display:none;align-items:center;justify-content:center;padding:4vw}.vmodal.open{display:flex}.vmodal video{width:min(1000px,100%);max-height:86vh;border-radius:14px;background:#000}.vmodal .x{
  position:absolute;top:18px;right:22px;width:36px;height:36px;border-radius:50%;border:0;cursor:pointer;
  background:rgba(255,255,255,.14);color:#fff;font-size:16px;
}.vmodal .x:hover{background:rgba(255,255,255,.26)}/* ---- page head ---- */
.phead{max-width:1190px;margin:0 auto;padding:38px 24px 12px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}.phead h1{font-size:40px;font-weight:600;letter-spacing:0}.phead .sub{margin-top:6px;font-size:14px;color:var(--ink)}.phead .sub span{color:var(--grey)}.phead .chips{display:flex;flex-direction:column;gap:10px;align-items:flex-end}.chip{
  display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--ink);
  background:var(--panel);border-radius:999px;padding:8px 14px;
}.chip svg{width:13px;height:13px;color:var(--grey)}/* ---- ribbon ---- */
.ribbon{
  max-width:1190px;margin:10px auto 0;padding:0 24px;
}.ribbon .in{
  border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);
  display:flex;justify-content:center;gap:36px;padding:11px 0;flex-wrap:wrap;
  font-size:12px;color:var(--ink);
}.ribbon b{font-weight:600}/* ---- layout ---- */
.buy{max-width:1300px;margin:0 auto;padding:40px 24px 96px;display:grid;grid-template-columns:minmax(0,1fr) 388px;gap:48px;align-items:start}/* product panel (apple gray gallery) — old size, top-aligned with logo, sticks to bottom of the legal text */
.gallery{position:sticky;top:max(64px,calc(50vh - clamp(250px,36vh,330px)));align-self:start;display:flex;flex-direction:column;align-items:stretch;gap:clamp(22px,3vh,36px)}
/* ---- where "Join the waitlist" lands ----
   The sticky rule above pins the carousel so its VERTICAL CENTRE is exactly 50vh (top is
   50vh minus half the panel height, and clamp(250px,36vh,330px) IS half the panel height).
   In normal flow the first heading sits level with the TOP of the image, ~half-a-panel above
   that centre, so "image fully in view" and "heading level with the middle of the image" were
   mutually exclusive no matter where the anchor jump stopped — the jump either chopped the
   heading off or pushed the image off the bottom. --buy-lead buys the missing distance as a
   lead-in above the right column: one half-panel (less the heading's own half-height), which
   is also just enough for the gallery to be sticky-engaged at the landing position, so the
   image is guaranteed whole. scroll-margin-top then stops the jump with the heading's centre
   on 50vh — where the image's centre already is. Measured delta: 0px at 1440x900, 2000x1136,
   1680x1050, 1024x768 and -1px at 1280x800.
   Both are desktop-only: under 900px .buy is one column and .gallery goes static (see the
   max-width:900px block below), so there is no side-by-side to line up and the standard
   64px --sf-scroll-pad in realnav.css is the right landing. */
@media (min-width:901px){
  .buy{--buy-lead:calc(clamp(250px,36vh,330px) - 24px)}
  .buy>.col{padding-top:var(--buy-lead)}
  #s-name{scroll-margin-top:calc(50vh - 96px)}
}
.panel{
  background:#0b1020;border-radius:18px;width:100%;height:clamp(500px,72vh,660px);position:relative;overflow:hidden;
}/* class-reactive full-bleed story card (Okta-style) */
.cslide{position:absolute;inset:0;display:none}.cslide.on{display:block;z-index:2;animation:ccover .68s cubic-bezier(.22,.8,.3,1) both}@keyframes cfade{from{opacity:0}}
.cbg{position:absolute;inset:0;background:#0b1020;background-size:cover;background-position:center;transition:opacity .4s ease}.cwm{position:absolute;right:-8%;bottom:-10%;width:64%;color:#fff;opacity:.09;pointer-events:none}.cwm svg{width:100%;height:auto;display:block}.cscrim{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.72) 0%,rgba(0,0,0,.14) 52%,rgba(0,0,0,.34) 100%)}.cover{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:center;padding:0 34px clamp(28px,6vh,46px)}.cglass{max-width:360px;width:100%;background:linear-gradient(155deg,rgba(12,16,26,.66),rgba(12,16,26,.34));-webkit-backdrop-filter:blur(15px) saturate(1.2);backdrop-filter:blur(15px) saturate(1.2);border:1px solid rgba(255,255,255,.08);border-radius:15px;padding:16px 18px 17px;color:#fff;box-shadow:0 20px 48px rgba(0,0,0,.3);animation:coverin .5s ease;text-align:center}@keyframes coverin{from{opacity:0;transform:translateY(10px)}}
/* cinematic file lifecycle */
.cfrow{display:flex;gap:5px;flex-wrap:wrap;justify-content:center;min-height:23px}.ff{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:10.5px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.88);border-radius:6px;padding:3px 8px;opacity:0;transform:translateY(4px) scale(.96);animation:ffin .5s cubic-bezier(.2,.7,.2,1) forwards}.ff svg{width:11px;height:11px;flex:none;opacity:.8}.ff.new{background:rgba(209,255,0,.15);border-color:rgba(209,255,0,.36);color:#eaffb0}@keyframes ffin{to{opacity:1;transform:none}}
.cact{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:42px;margin-top:7px}.cwho{display:flex;align-items:center;justify-content:center;gap:7px;opacity:0;transition:opacity .35s ease,transform .35s ease}.cwho:empty{display:none}.cwho .avs{display:inline-flex}.cwho .av{width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:9.5px;font-weight:700;color:#0b1020;margin-left:-7px;border:1.5px solid rgba(12,16,26,.55);box-shadow:0 1px 2px rgba(0,0,0,.25)}.cwho .av:first-child{margin-left:0}.cwho .av.q{background:#ffd8a8 !important;color:#7a4b00;animation:qpulse 1.6s ease-in-out infinite}@keyframes qpulse{0%,100%{box-shadow:0 0 0 0 rgba(255,180,90,.5)}50%{box-shadow:0 0 0 5px rgba(255,180,90,0)}}
.cwho .cpill{display:inline-flex;align-items:center;gap:6px;font-size:11px;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:4px 11px;color:#fff}.cwho .cpill svg{width:13px;height:13px;flex:none}.cwho .lbl{font-size:11px;color:rgba(255,255,255,.72)}.cflow{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;color:rgba(255,255,255,.92);opacity:0;transition:opacity .35s ease,transform .35s ease}.cflow .cfdot{width:6px;height:6px;border-radius:50%;flex:none}.cflow .cfic{display:inline-flex;width:14px;height:14px;flex:none}.cflow .cft{white-space:nowrap}.cstory{margin-top:9px;font-size:16.5px;font-weight:600;letter-spacing:-.012em;color:#fff;line-height:1.32}.cstat{display:none}.cstat b{display:block;font-size:clamp(40px,5.6vh,58px);font-weight:600;letter-spacing:-.025em;line-height:1;color:#fff}.cstat span{display:block;margin-top:8px;font-size:13.5px;color:rgba(255,255,255,.74);max-width:30ch;line-height:1.45}.clearn,.clearn:hover,.clearn:focus{text-decoration:none !important}.clearn{display:inline-flex;align-items:center;gap:7px;margin-top:16px;background:#0b0d12;color:#fff !important;border-radius:9px;padding:10px 18px;font-size:13.5px;font-weight:600;transition:background .15s,transform .12s}.clearn:hover{background:var(--blue);transform:translateY(-1px)}/* carousel controls */
.ctrl{
  position:absolute;inset:0;z-index:3;display:flex;align-items:center;justify-content:space-between;
  padding:0 clamp(10px,1.4vw,16px);pointer-events:none;
}.dots{display:none}.dots i{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.4);transition:background .2s}.dots i.on{background:#fff}.chev{
  width:38px;height:38px;border-radius:50%;border:0;background:rgba(255,255,255,.9);pointer-events:auto;
  color:var(--ink);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;
  box-shadow:0 2px 8px rgba(0,0,0,.18);transition:background .15s,transform .12s;
}.chev:hover{background:#fff}.chev:active{transform:scale(.93)}/* ---- right column ---- */
/* Apple-style centered hero band above the reserve grid */
.herohead{text-align:center;padding:clamp(56px,9vh,104px) 24px clamp(28px,4.5vh,52px)}.herohead .hh-in{max-width:840px;margin:0 auto}.herohead .reyebrow{font-size:clamp(17px,1.5vw,21px);font-weight:600;letter-spacing:-.01em;color:var(--blue);margin:0 0 8px}.herohead .rhead{font-size:clamp(44px,6.6vw,80px);font-weight:600;letter-spacing:-.035em;line-height:1;color:var(--ink);margin:0}.herohead .rsub{margin:clamp(15px,2.4vh,24px) auto 0;max-width:26ch;font-size:clamp(20px,2.2vw,28px);font-weight:400;line-height:1.28;letter-spacing:-.016em;color:var(--ink)}.herohead .hh-cta{margin-top:clamp(16px,2.4vh,22px);display:flex;gap:30px;justify-content:center;flex-wrap:wrap}.herohead .hh-link{font-size:clamp(16px,1.6vw,19px);color:var(--blue);font-weight:400;letter-spacing:-.01em;text-decoration:none}.herohead .hh-link:hover{text-decoration:underline}.herohead .hh-link::after{content:" ›";display:inline-block;margin-left:1px}.herohead .hh-price{margin:clamp(16px,2.2vh,22px) 0 0;font-size:14px;color:var(--grey);letter-spacing:-.006em}.herohead .hh-steps{list-style:none;margin:clamp(40px,6vh,66px) auto 0;padding:0;max-width:940px;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(22px,4vw,50px);text-align:center}.herohead .hh-step{position:relative;display:flex;flex-direction:column;align-items:center;padding:0 6px}.herohead .hh-step:not(:last-child)::after{content:"";position:absolute;top:21px;left:calc(50% + 34px);right:calc(-50% + 34px);height:2px;background:var(--hair,#e8e8ed);border-radius:2px}.herohead .hh-num{width:44px;height:44px;border-radius:50%;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:600;margin-bottom:18px;position:relative;z-index:1;box-shadow:0 8px 18px -7px rgba(0,113,227,.55)}.herohead .hh-txt h4{margin:0 0 6px;font-size:17px;font-weight:600;letter-spacing:-.012em;color:var(--ink)}.herohead .hh-txt p{margin:0 auto;font-size:14.5px;line-height:1.46;color:var(--grey);max-width:26ch}@media (max-width:720px){.herohead .hh-steps{grid-template-columns:1fr;gap:22px;max-width:380px;text-align:left}.herohead .hh-step{flex-direction:row;align-items:flex-start;gap:15px;padding:0}.herohead .hh-step:not(:last-child)::after{display:none}.herohead .hh-num{margin-bottom:0;flex:none;width:38px;height:38px;font-size:16px}.herohead .hh-txt h4{margin-top:6px}.herohead .hh-txt p{max-width:none}
}.resintro .rib{margin-top:clamp(20px,2.6vh,28px);display:flex;flex-direction:column;gap:10px}.resintro .rib span{font-size:12.5px;color:var(--ink);line-height:1.35}.resintro .rib b{font-weight:600}.resintro .anthem{margin-top:18px}/* apple-style reassurance band */
.assure{background:#fff;padding:clamp(40px,6vh,74px) 24px clamp(48px,7vh,86px)}.assure-in{max-width:980px;margin:0 auto}/* when placed under the left carousel */
.gallery .assure{padding:clamp(24px,3.5vh,40px) 0 4px}.gallery .assure-in{max-width:none}.gallery .ahair{margin:clamp(22px,3.4vh,34px) 0}.gallery .acol p{font-size:15px}.acols{display:flex;justify-content:center;gap:clamp(20px,5vw,68px);flex-wrap:wrap}.acol{flex:1 1 210px;max-width:300px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:15px}.acol svg{width:34px;height:34px;color:var(--ink)}.acol p{margin:0;font-size:16.5px;font-weight:500;line-height:1.42;color:var(--ink);max-width:22ch}.acol p b{font-weight:600}.acol sup{font-size:.68em;vertical-align:super}.ahair{height:1px;background:var(--hair);margin:clamp(32px,5vh,52px) 0}.aask{display:flex;align-items:center;justify-content:center;gap:16px}.aask svg{width:42px;height:31px;color:var(--ink);flex:none}.aask-t{text-align:left}.aask .aq{margin:0;font-size:17px;font-weight:600;line-height:1.35;color:var(--ink)}.aask .al{display:inline-block;color:var(--blue);font-size:17px;text-decoration:none;margin-top:1px}.aask .al:hover{text-decoration:underline}@media (max-width:820px){.acols{flex-direction:column;align-items:center;gap:24px}.acol{flex:0 0 auto;max-width:340px}.aask{flex-direction:column;text-align:center;gap:12px}.aask-t{text-align:center}.gallery .assure{padding:clamp(26px,4vw,38px) 0 6px}.gallery .ahair{margin:22px 0}}.col section{padding:38px 0 40px;border-top:1px solid var(--hair)}.col section:first-child{border-top:0;padding-top:2px}.sect-h{font-size:26px;font-weight:600;line-height:1.14;margin-bottom:6px;letter-spacing:-.022em}.sect-h span{color:var(--grey-l);font-weight:600}.sect-sub{font-size:14px;color:var(--grey);margin-bottom:22px;line-height:1.4}.field{
  /* FILLED, not outlined — deliberately. This field sits directly above the .opt class cards, and
     while it was white with the same 1px hairline and near-identical radius it was indistinguishable
     from them: the eye read four stacked cards and never registered that the first one was a text
     input. A recessed grey fill is what separates "type into me" from "pick me". */
  display:flex;align-items:center;background:#F2F2F4;border:1px solid transparent;
  border-radius:14px;padding:2px 16px;transition:border-color .15s,box-shadow .15s,background-color .15s;
}.field:hover{background:#EAEAEE}
/* Fake caret for the empty, unfocused state — the cue that says "text goes here". visibility,
   not display, so hiding it never shifts the placeholder sideways. */
.fcaret{flex:none;width:2px;height:20px;margin-left:7px;border-radius:1px;background:var(--blue);animation:fcaret 1.1s step-end infinite}
@keyframes fcaret{0%,50%{opacity:1}50.01%,100%{opacity:0}}
.field:focus-within .fcaret,.field.filled .fcaret{visibility:hidden;animation:none}
@media (prefers-reduced-motion:reduce){.fcaret{animation:none}}
.field:focus-within{background:#fff;border-color:var(--blue);box-shadow:0 0 0 4px rgba(0,125,250,.15)}.field .at{font-family:var(--mono);font-size:17px;color:var(--grey-l)}.field input{
  flex:1;border:0;outline:none;font-family:var(--mono);font-size:17px;color:var(--ink);
  padding:15px 6px;min-width:30px;background:transparent;
}.field input::placeholder{color:#9A9AA0}   /* was #C7C7CC — so faint it read as a disabled field */.status{min-height:20px;margin-top:11px;font-size:13px;font-weight:500;color:var(--grey-l)}.status.ok{color:var(--green)}.status.ok::before{content:"\2713";display:inline-block;margin-right:6px;font-weight:700;color:var(--green)}.status.taken{color:var(--amber)}.status.taken::before{content:"\2715";display:inline-block;margin-right:6px;font-weight:700;font-size:11px;color:var(--amber);vertical-align:.5px}.status.checking::before{content:"";display:inline-block;width:11px;height:11px;border-radius:50%;border:2px solid var(--hair);border-top-color:var(--grey-l);margin-right:7px;vertical-align:-1px;animation:statspin .6s linear infinite}@keyframes statspin{to{transform:rotate(360deg)}}.opts{display:grid;gap:12px}.opt{
  border:1px solid var(--line);border-radius:12px;padding:18px 20px;cursor:pointer;
  display:flex;align-items:flex-start;gap:16px;background:#fff;
  transition:border-color .12s,box-shadow .12s;
}.opt:hover{border-color:#86868B}.opt[aria-checked="true"]{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue)}.opt .tx{flex:1;min-width:0}.opt h4{font-size:17px;font-weight:600;letter-spacing:-.012em;line-height:1.25}.opt h4 .rec{font-size:11px;font-weight:500;color:var(--blue);margin-left:7px}.opt p{font-size:13px;color:var(--grey);margin-top:5px;line-height:1.5}.opt .pr{font-size:14px;color:var(--ink);white-space:nowrap;text-align:right;line-height:1.35;font-weight:600}.helper{
  background:var(--panel);border-radius:14px;padding:16px 18px;margin-top:16px;
  font-size:12.5px;color:var(--grey);position:relative;line-height:1.5;
}.helper > b{display:block;font-size:13.5px;color:var(--ink);font-weight:600;margin-bottom:3px}.helper .qm{position:absolute;top:15px;right:16px;color:var(--grey-l);font-size:14px}/* reserve block */
.total .row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:16px}.total .l{font-size:15px;color:var(--grey)}.total .v{font-size:20px;font-weight:600;letter-spacing:-.01em}.total .n{font-size:12px;color:var(--grey-l);margin-bottom:20px;line-height:1.45}.addbtn{
  width:100%;font-family:var(--sans);font-size:16px;border:0;border-radius:12px;
  background:var(--blue);color:#fff;padding:15px;cursor:pointer;letter-spacing:-.016em;
  transition:background .15s,opacity .15s;
}.addbtn:hover{background:var(--blue-h)}.addbtn:disabled{opacity:.42;cursor:default}/* Wave 2 — class range questions, extension stepper, hold disclaimer */
.rrow{display:flex;flex-wrap:wrap;gap:10px;margin-top:2px}.rchip{font-family:var(--sans);font-size:14px;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:999px;padding:10px 18px;cursor:pointer;transition:border-color .12s,box-shadow .12s,background .12s}.rchip:hover{border-color:#86868B}.rchip[aria-checked="true"]{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue);background:rgba(0,113,227,.05);color:var(--blue);font-weight:600}.extrow{display:flex;align-items:center;gap:14px;margin-top:6px}.stbtn{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:#fff;font-size:20px;line-height:1;color:var(--ink);cursor:pointer;flex:none;transition:border-color .12s}.stbtn:hover{border-color:var(--blue);color:var(--blue)}.stbtn:disabled{opacity:.35;cursor:default}.extval{display:flex;flex-direction:column;line-height:1.1}.extval b{font-size:22px;font-weight:600;letter-spacing:-.02em}.extval span{font-size:11.5px;color:var(--grey)}.extpr{margin-left:auto;font-size:14px;font-weight:600;color:var(--ink)}.extpr.free{color:var(--green,#248A3D)}/* Apple-style extension search + cards */
.extsearch{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:16px;padding:7px 7px 7px 18px;background:#fff;margin-top:4px;transition:border-color .12s,box-shadow .12s}.extsearch:focus-within{border-color:var(--blue);box-shadow:0 0 0 4px rgba(0,113,227,.12)}.extsearch .dot{font-size:19px;font-weight:700;color:var(--grey-l);line-height:1}.extsearch input{flex:1;border:0;outline:none;font-size:16px;background:transparent;color:var(--ink);min-width:0}.extsearch input:disabled{color:var(--grey-l)}.extcheck{border:0;background:var(--ink);color:#fff;border-radius:10px;padding:10px 20px;font-size:14px;font-weight:600;cursor:pointer;flex:none;transition:opacity .12s}.extcheck:hover{opacity:.88}.extcheck:disabled{opacity:.4;cursor:default}.extstatus{font-size:12.5px;margin:9px 2px 0;min-height:16px;color:var(--grey)}.extstatus.ok{color:var(--green,#248A3D)}.extstatus.taken{color:var(--amber,#B25000)}.extlist{display:flex;flex-direction:column;gap:10px}.extlist:not(:empty){margin-top:12px}.extcard{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:14px;padding:14px 16px;animation:extin .28s cubic-bezier(.2,.7,.2,1)}@keyframes extin{from{opacity:0;transform:translateY(6px)}}
.extcard .en{font-size:15.5px;font-weight:600;color:var(--ink);letter-spacing:-.01em}.extcard .es{font-size:11.5px;font-weight:600;color:var(--green,#248A3D)}.extcard .ep{margin-left:auto;font-size:14px;font-weight:600;color:var(--ink)}.extcard .erm{border:0;background:none;color:var(--grey-l);font-size:16px;line-height:1;cursor:pointer;padding:4px 6px;border-radius:8px}.extcard .erm:hover{color:#D33;background:#f5f5f7}.extlearn{margin:2px 0 16px}.extlearn > b{font-size:14px}.extlearn .qm{position:absolute;top:16px;right:16px;color:var(--grey-l);font-size:16px;transition:transform .2s ease,color .15s}.extlearn:hover .qm{color:var(--grey)}.extlearn.open .qm{transform:rotate(45deg)}.extlearn .more{display:none;font-size:13px;color:var(--grey);line-height:1.62;margin-top:9px;border-bottom:0;padding:0}.extlearn.open .more{display:block}.extlearn .more b{display:inline;font-family:var(--mono);font-weight:600;color:var(--ink);font-size:.92em;letter-spacing:-.01em}.hold-disc{font-size:11px;line-height:1.55;color:var(--grey-l);margin-top:18px}.hold-disc a{color:var(--grey);text-decoration:underline}.agree-disc{margin-top:11px}/* Partner program band */
.partnerband{background:var(--panel);padding:clamp(56px,9vh,100px) 24px clamp(40px,6vh,60px)}.pb-in{max-width:1000px;margin:0 auto;text-align:center}.pb-eyebrow{font-size:15px;font-weight:600;letter-spacing:-.01em;color:var(--blue);margin:0 0 10px}.pb-h{font-size:clamp(30px,4vw,48px);font-weight:600;letter-spacing:-.03em;line-height:1.05;color:var(--ink);margin:0}.pb-lede{font-size:clamp(16px,1.6vw,19px);color:var(--grey);margin:14px auto 0;max-width:52ch;line-height:1.42}.pb-cards{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:clamp(30px,4vh,44px);text-align:left}.pb-card{background:#fff;border:1px solid var(--hair);border-radius:22px;padding:30px;text-decoration:none;color:var(--ink);display:flex;flex-direction:column;transition:transform .18s ease,box-shadow .18s ease}.pb-card:hover{transform:translateY(-3px);box-shadow:0 22px 44px -24px rgba(0,0,0,.3);text-decoration:none}.pb-ic{width:52px;height:52px;border-radius:14px;background:var(--panel);display:flex;align-items:center;justify-content:center;color:var(--blue);margin-bottom:18px}.pb-ic svg{width:26px;height:26px}.pb-card h3{font-size:22px;font-weight:600;letter-spacing:-.02em;margin:0 0 8px}.pb-card>p{font-size:15px;color:var(--grey);line-height:1.5;margin:0 0 16px}.pb-pts{list-style:none;margin:0 0 22px;padding:0;display:flex;flex-direction:column;gap:9px}.pb-pts li{font-size:14px;color:var(--ink);padding-left:24px;position:relative;line-height:1.4}.pb-pts li::before{content:"✓";position:absolute;left:0;top:0;color:var(--green);font-weight:700}.pb-cta{margin-top:auto;font-size:15px;font-weight:600;color:var(--blue)}
.pb-cta::after{content:" ›"}.pb-card:hover .pb-cta{text-decoration:underline}.pb-foot{font-size:14px;color:var(--grey);margin-top:24px}.pb-foot a{color:var(--link)}@media (max-width:720px){.pb-cards{grid-template-columns:1fr}.pb-card{padding:24px}}.waveband{max-width:900px;margin:20px auto 0;padding:0 24px}.waveband .wb{background:#F5F5F7;border-radius:22px;padding:40px 34px}.waveband .k{font-size:13px;font-weight:600;color:var(--blue);letter-spacing:.01em}.waveband h2{font-size:clamp(24px,3.4vw,34px);font-weight:600;letter-spacing:-.01em;margin-top:8px;line-height:1.14}.waveband .lead{margin-top:13px;font-size:16px;color:var(--grey);max-width:62ch;line-height:1.5}.wsteps{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:26px}.wstep{background:#fff;border-radius:14px;padding:18px}.wstep b{display:block;font-size:12px;color:var(--blue);font-weight:600;letter-spacing:.04em}.wstep h4{font-size:15px;font-weight:600;margin-top:6px}.wstep p{font-size:13px;color:var(--grey);margin-top:4px;line-height:1.45}@media (max-width:740px){.wsteps{grid-template-columns:1fr}.waveband .wb{padding:28px 22px}.waveband{margin-top:8px}}.contact-row{display:none;gap:8px;margin-top:10px}.contact-row.open{display:flex}.contact-row input{
  flex:1;font-size:13.5px;padding:11px 14px;font-family:var(--sans);
  border:1px solid var(--line);border-radius:10px;outline:none;color:var(--ink);
}.contact-row input:focus{border-color:var(--blue);box-shadow:0 0 0 4px rgba(0,125,250,.15)}.success{
  display:none;margin-top:10px;font-size:12.5px;font-weight:500;color:var(--green);position:relative;
}.success.open{display:block}.success.win{padding-left:26px}.success.win::before{content:"\2713";position:absolute;left:0;top:0;width:18px;height:18px;line-height:18px;text-align:center;border-radius:50%;background:var(--green);color:#fff;font-size:11px;font-weight:700;animation:winpop .45s cubic-bezier(.2,.9,.3,1.25) both}@keyframes winpop{0%{transform:scale(.3);opacity:0}60%{transform:scale(1.14)}100%{transform:scale(1);opacity:1}}#s-total{position:relative}.confetti{position:absolute;left:0;right:0;top:0;height:0;pointer-events:none;z-index:5}.confetti i{position:absolute;top:0;width:8px;height:12px;border-radius:2px;opacity:0;animation:cfall 1.1s ease-in forwards}@keyframes cfall{0%{transform:translateY(-10px) rotate(0);opacity:0}12%{opacity:1}100%{transform:translateY(160px) rotate(360deg);opacity:0}}.reserve-err{display:none;margin-top:10px;font-size:12.5px;font-weight:500;color:var(--amber)}.reserve-err.open{display:block}@media (prefers-reduced-motion:reduce){.status.checking::before{animation:none}.success.win::before{animation:none}.confetti i{display:none}}/* progress rail */
.rail{position:fixed;right:14px;top:50%;transform:translateY(-50%);display:grid;gap:10px;z-index:20}.rail i{width:6px;height:6px;border-radius:50%;background:var(--line);transition:background .25s}.rail i.on{background:var(--grey-l)}/* ---- apple footer stack ---- */
.afoot{background:var(--panel);border-top:0;font-size:12px;color:var(--grey);margin-top:0}.afoot .in{max-width:1024px;margin:0 auto;padding:0 22px}.afoot a{text-decoration:none;color:#424245}.afoot a:hover{text-decoration:underline}.fnotes{padding:clamp(40px,6vh,60px) 0 11px;border-bottom:1px solid var(--line);color:var(--grey-l);font-size:11px;line-height:1.45}.fnotes p{margin-bottom:9px}.fnotes ol{margin:0 0 9px 14px}.fnotes li{margin-bottom:9px}.fcrumb{display:flex;align-items:center;gap:10px;padding:17px 0;border-bottom:1px solid var(--line);font-size:11.5px;color:var(--grey)}.fcrumb .here{color:var(--ink)}.dir{display:grid;grid-template-columns:repeat(5,1fr);gap:20px;padding:20px 0;border-bottom:1px solid var(--line)}.dir h6{font-size:12px;font-weight:600;color:var(--ink);margin-bottom:9px}.dir h6.gap{margin-top:22px}.dir ul{list-style:none}.dir li{margin-bottom:8px}.more{padding:13px 0;border-bottom:1px solid var(--line);color:var(--grey)}.more a{color:#06C}.more a:hover{text-decoration:underline}.legalrow{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:12px 0 26px;color:var(--grey-l);font-size:11.5px}.legalrow .c{margin-right:auto}.legalrow .links{display:flex}.legalrow .links a{padding:0 10px;border-right:1px solid var(--line);color:#424245}.legalrow .links a:last-child{border-right:0}.legalrow .region{color:var(--grey)}/* ---- registry specialist chat (apple messages style) ---- */
.spchat{
  position:fixed;right:22px;bottom:22px;top:auto;z-index:60;width:min(420px,calc(100vw - 44px));
  height:min(680px,calc(100vh - 120px));display:none;flex-direction:column;overflow:hidden;
  background:#fff;border-radius:22px;
  box-shadow:0 24px 70px rgba(0,0,0,.3),0 4px 14px rgba(0,0,0,.12);
  border:1px solid var(--hair);
}.spchat.open{display:flex;animation:sheetin .3s cubic-bezier(.2,.9,.3,1)}@keyframes sheetin{from{opacity:0;transform:translateY(14px) scale(.98)}}
.spchat{transition:width .22s ease,height .22s ease}.spchat.big{width:min(820px,calc(100vw - 40px));height:min(1240px,calc(100vh - 40px))}.sphead{cursor:grab;-webkit-user-select:none;user-select:none}.sphead:active{cursor:grabbing}.sphbtns{display:flex;gap:2px;flex:none}.spbig svg{width:15px;height:15px}.spchips{display:flex;flex-wrap:wrap;gap:7px;align-self:flex-start;max-width:92%}.spchips button{
  font-family:var(--sans);font-size:13px;letter-spacing:-.01em;cursor:pointer;
  border:1px solid #0A84FF;color:#0A84FF;background:#fff;border-radius:999px;padding:6px 13px;
  transition:background .12s;
}.spchips button:active{background:rgba(10,132,255,.1)}.spchat .hd{
  display:flex;align-items:center;gap:11px;padding:12px 14px;flex-shrink:0;
  background:rgba(251,251,253,.92);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border-bottom:1px solid var(--hair);
}.spchat .hd img{width:34px;height:34px;border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.12)}.spchat .hd .t{flex:1;min-width:0}.spchat .hd .t b{display:block;font-size:14px;font-weight:600;color:var(--ink);letter-spacing:-.01em}.spchat .hd .t span{font-size:11px;color:var(--grey-l)}.spchat .hd button{
  border:0;background:transparent;color:var(--grey-l);font-size:15px;cursor:pointer;
  width:30px;height:30px;border-radius:50%;
}.spchat .hd button:hover{background:var(--panel);color:var(--ink)}.spchat .log{
  display:flex;flex-direction:column;gap:8px;padding:0;
}.spchat .log:not(:empty){padding-top:6px}.spm{max-width:82%;font-size:15px;line-height:1.4;white-space:pre-wrap;word-wrap:break-word;letter-spacing:-.01em;animation:bubin .24s cubic-bezier(.2,.9,.3,1)}@keyframes bubin{from{opacity:0;transform:translateY(7px) scale(.96)}}
.spm .tw{opacity:0;animation:twin .26s ease-out forwards}@keyframes twin{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){
  .spm .tw{animation:none;opacity:1}.spm{animation:none}.assist.bounce{animation:none}}
.sppeek{
  position:fixed;right:22px;bottom:88px;z-index:59;max-width:230px;
  background:#fff;border:1px solid var(--hair);border-radius:14px;border-bottom-right-radius:4px;
  padding:9px 13px;font-size:12.5px;color:var(--ink);cursor:pointer;
  box-shadow:0 2px 8px rgba(0,0,0,.1),0 12px 32px rgba(0,0,0,.16);
  display:none;animation:bubin .3s cubic-bezier(.2,.9,.3,1);
}.sppeek.on{display:block}@media (max-width:740px){.sppeek{right:16px;bottom:calc(88px + env(safe-area-inset-bottom))}body.mcta-on .sppeek{bottom:calc(152px + env(safe-area-inset-bottom))}
}.spm.u{
  align-self:flex-end;background:#ECECEC;color:#1D1D1F;
  border-radius:16px;padding:9px 14px;
}.spm.a{
  align-self:flex-start;background:transparent;color:#1D1D1F;
  border-radius:0;padding:1px 0;max-width:100%;
}.spm.think{background:transparent;color:#86868B;font-size:14px;font-style:italic;padding:1px 0;display:flex;align-items:center;gap:8px;max-width:100%}.spm.think::before{content:"";width:7px;height:7px;border-radius:50%;background:#C7C7CC;flex:none}.spm.typing{display:flex;gap:4px;align-items:center;padding:12px 14px}.spm.typing i{
  width:7px;height:7px;border-radius:50%;background:#A7A7AF;display:block;
  animation:tybounce 1.2s ease-in-out infinite;
}.spm.typing i:nth-child(2){animation-delay:.15s}.spm.typing i:nth-child(3){animation-delay:.3s}@keyframes tybounce{0%,60%,100%{transform:translateY(0);opacity:.5}30%{transform:translateY(-4px);opacity:1}}
.spchat .inrow{
  display:flex;gap:8px;align-items:flex-end;padding:10px 12px;flex-shrink:0;
  background:rgba(251,251,253,.92);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border-top:1px solid var(--hair);
}.spchat .inrow textarea{
  flex:1;resize:none;border:1px solid var(--line);border-radius:19px;background:#fff;
  font-family:var(--sans);font-size:16px;color:var(--ink);padding:8px 14px;outline:none;
  max-height:96px;min-height:40px;line-height:1.4;letter-spacing:-.01em;overflow-y:hidden;
}.spchat .inrow textarea::placeholder{color:#B5B5BA}.spchat .inrow textarea:focus{border-color:#0A84FF}.spchat .inrow button{
  border:0;border-radius:50%;background:#0A84FF;color:#fff;width:34px;height:34px;flex-shrink:0;
  font-size:17px;font-weight:600;cursor:pointer;transition:background .15s,transform .1s;
  display:flex;align-items:center;justify-content:center;padding-bottom:2px;
}.spchat .inrow button:hover{background:#0071E3}.spchat .inrow button:active{transform:scale(.94)}.spchat .inrow button:disabled{background:#C7C7CC;cursor:default}.spchat .foot{
  text-align:center;font-size:10px;color:var(--grey-l);padding:0 12px 8px;
  background:rgba(251,251,253,.92);
}@media (max-width:740px){.spchat{
    right:0!important;bottom:0!important;left:0!important;top:auto!important;width:100vw;height:100dvh;border-radius:0;border:0;
  }.spchat.big{width:100vw;height:100dvh}.sphead{cursor:default}.spbig{display:none}.spchat.open{animation:sheetup .34s cubic-bezier(.2,.9,.3,1)}@keyframes sheetup{from{opacity:.6;transform:translateY(40%)}}
  .spchat .hd button{width:38px;height:38px;font-size:17px}.spm{font-size:16px}.spchat .hd{padding-top:calc(12px + env(safe-area-inset-top))}.spchat .sphead{padding-top:calc(14px + env(safe-area-inset-top))}.spchat .inrow{padding-bottom:calc(10px + env(safe-area-inset-bottom))}body.mcta-on .spchat{bottom:0}
}/* specialist bubble — apple-intelligence ring */
/* Shane AI launcher pill (okta "Ask Ollie" style) */
.assist{
  position:fixed;right:22px;bottom:22px;z-index:38;display:inline-flex;align-items:center;gap:11px;
  height:50px;padding:0 22px 0 15px;border-radius:999px;border:1.5px solid #0A6CFF;background:#fff;
  cursor:pointer;box-shadow:0 8px 24px rgba(10,108,255,.18),0 2px 8px rgba(0,0,0,.08);transition:transform .15s,box-shadow .15s;
}.assist:hover{transform:translateY(-1px);box-shadow:0 12px 30px rgba(10,108,255,.24)}/* default: solid blue circle with a white chat bubble */
.assist .spin{
  position:relative;width:26px;height:26px;border-radius:50%;flex:none;
  background:#0A6CFF;display:flex;align-items:center;justify-content:center;color:#fff;
}.assist .spin svg{width:15px;height:15px}/* thinking / responding: swap the bubble for the animated gradient ring */
.assist.thinking .spin{
  background:conic-gradient(from var(--aiang,0deg),#0A6CFF 0deg,rgba(10,108,255,.12) 300deg,#0A6CFF 360deg);
  -webkit-mask:radial-gradient(circle 8px at center,#0000 96%,#000 100%);mask:radial-gradient(circle 8px at center,#0000 96%,#000 100%);
  animation:airing .8s linear infinite;
}.assist.thinking .spin svg{display:none}@media (prefers-reduced-motion:reduce){.assist.thinking .spin{animation-duration:2.4s}}.assist .ask{color:#0A6CFF;font-family:var(--sans);font-size:15.5px;font-weight:600;letter-spacing:-.01em;white-space:nowrap}.aisup{font-size:.56em;font-weight:700;vertical-align:.42em;letter-spacing:.03em;margin-left:1px}.assist.bounce{animation:abounce .85s cubic-bezier(.28,1.2,.42,1) 2}@keyframes abounce{0%,100%{transform:none}28%{transform:translateY(-12px) scale(1.04)}52%{transform:none}72%{transform:translateY(-5px)}}
@property --aiang{syntax:"<angle>";initial-value:0deg;inherits:false}@keyframes airing{to{--aiang:360deg}}
.assist .dot{position:absolute;top:-3px;right:-3px;width:13px;height:13px;border-radius:50%;background:#FF3B30;border:2px solid #fff;display:none}.assist.unread .dot{display:block}/* Shane AI panel — Okta-Ollie layout: header + wide video banner with overlaid CTA */
.sphead{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 15px 13px;border-bottom:1px solid var(--hair);flex:none}.spname{font-family:var(--sans);font-size:16px;font-weight:650;letter-spacing:-.02em;color:var(--ink)}.sprole{font-weight:500;font-size:13.5px;color:var(--grey);letter-spacing:0;margin-left:6px}.spx{border:0;background:transparent;width:30px;height:30px;border-radius:50%;cursor:pointer;color:var(--grey);font-size:15px;display:flex;align-items:center;justify-content:center;flex:none}.spx:hover{background:#F0EFEA;color:var(--ink)}/* wide video banner */
.spstage{position:relative;margin:12px 12px 0;border-radius:16px;overflow:hidden;background:#E6E4DF;aspect-ratio:1.55;flex:none}.spstage video{width:100%;height:100%;object-fit:cover;display:block}.spstage.live.ready .spidle{display:none}.spstage.speaking{outline:3px solid #0A6CFF;outline-offset:-3px}.splivevid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:4;background:#0b0d12;opacity:0;pointer-events:none;transition:opacity .45s ease}.splivevid.on{opacity:1}.spconn{position:absolute;inset:0;z-index:6;display:none;align-items:center;justify-content:center;background:rgba(11,13,18,.28)}.spstage.live .spconn{display:flex}.spstage.live.ready .spconn{display:none}.spconn .ring{width:30px;height:30px;border-radius:50%;border:2.5px solid rgba(255,255,255,.3);border-top-color:#fff;animation:sprot .8s linear infinite}@keyframes sprot{to{transform:rotate(360deg)}}
@keyframes lvp{50%{opacity:.35}}
/* overlaid "Talk live" CTA (Okta's "Speak with Ollie") */
.splive{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);z-index:5;display:none;align-items:center;gap:8px;background:#fff;border:0;border-radius:999px;padding:11px 20px;font-family:var(--sans);font-size:14.5px;font-weight:600;color:#0A6CFF;cursor:pointer;box-shadow:0 3px 14px rgba(0,0,0,.22);white-space:nowrap}.splive .lvdot{width:8px;height:8px;border-radius:50%;background:#0A6CFF;animation:lvp 1.2s ease-in-out infinite}.spstage.live .splive{display:none !important}.splive .micico{width:16px;height:16px}/* live control pill overlaid on the banner (Okta: mic · expand · End) */
.splivebar{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);z-index:7;display:none;align-items:center;gap:2px;background:#fff;border-radius:999px;padding:4px;box-shadow:0 3px 16px rgba(0,0,0,.22)}.spstage.live .splivebar{display:flex}.splivemic,.spexpand{border:0;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;background:transparent;color:#1D1D1F;transition:background .15s,transform .1s}.splivemic:hover,.spexpand:hover{background:#F0EFEA}.splivemic:active,.spexpand:active,.spend:active{transform:scale(.94)}.splivemic.off{background:#FFE7E5;color:#FF3B30}.splivemic .slash{display:none}.splivemic.off .slash{display:block}.splivemic svg,.spexpand svg{width:16px;height:16px}.spend{border:0;height:30px;padding:0 14px;margin-left:2px;border-radius:999px;background:#FF3B30;color:#fff;font-family:var(--sans);font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,transform .1s}.spend:hover{background:#ff2d21}/* sound toggle, top-right of banner */
.spsound{position:absolute;top:12px;right:12px;z-index:5;border:0;background:rgba(255,255,255,.9);width:32px;height:32px;border-radius:50%;cursor:pointer;color:var(--ink);display:flex;align-items:center;justify-content:center;box-shadow:0 1px 4px rgba(0,0,0,.14)}.spsound svg{width:16px;height:16px}.spsound.muted .wv{display:none}.spsound.muted::after{content:"";position:absolute;width:20px;height:1.8px;background:currentColor;transform:rotate(-45deg)}.spstage.live .spsound{display:none}/* live status chip, top-left of banner */
.splivechip{position:absolute;top:12px;left:12px;z-index:5;display:none;align-items:center;gap:6px;background:rgba(11,13,18,.55);color:#fff;font-family:var(--sans);font-size:12px;font-weight:600;padding:5px 11px 5px 9px;border-radius:999px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.spstage.live .splivechip{display:inline-flex}.splivechip::before{content:"";width:7px;height:7px;border-radius:50%;background:#FF3B30;animation:lvp 1.2s ease-in-out infinite}/* speaking equalizer (TTS) */
.spbars{position:absolute;top:12px;left:50%;transform:translateX(-50%);z-index:5;display:none;gap:3px;align-items:flex-end;height:16px;background:rgba(10,108,255,.92);padding:5px 9px;border-radius:999px}.spstage.speaking .spbars{display:flex}.spbars i{width:3px;height:5px;background:#fff;border-radius:2px;animation:sbar .7s ease-in-out infinite}.spbars i:nth-child(2){animation-delay:.15s}.spbars i:nth-child(3){animation-delay:.3s}.spbars i:nth-child(4){animation-delay:.45s}.spbars i:nth-child(5){animation-delay:.1s}@keyframes sbar{0%,100%{height:5px}50%{height:14px}}
@media (prefers-reduced-motion:reduce){.spbars i{animation:none;height:10px}}
.spbody{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:12px 16px 4px;display:flex;flex-direction:column;gap:12px}/* collapsed mini-bar: small circle avatar + Speak pill (shown once chatting) */
.spminibar{display:none;align-items:center;justify-content:center;gap:10px;padding:12px 14px 2px;flex:none}.spminiav{width:34px;height:34px;border-radius:50%;overflow:hidden;flex:none;background:#E6E4DF}.spminiav video{width:100%;height:100%;object-fit:cover;display:block}.splive2{display:inline-flex;align-items:center;gap:7px;background:#fff;border:1px solid var(--hair);border-radius:999px;padding:8px 15px;font-family:var(--sans);font-size:13.5px;font-weight:600;color:#0A6CFF;cursor:pointer;box-shadow:0 1px 5px rgba(0,0,0,.08);transition:background .12s}.splive2:hover{background:#F7FAFF}.splive2 .micico{width:15px;height:15px}/* state switches */
.spchat.chatting .spstage{display:none}.spchat.chatting .spminibar{display:flex}.spchat.chatting.incall .spstage{display:block}.spchat.chatting.incall .spminibar{display:none}/* expand: live video fills the whole panel */
.spchat.stagefull .spstage{position:absolute;inset:0;margin:0;border-radius:0;aspect-ratio:auto;z-index:30}/* "Ask me things like" section */
.spacts{display:flex;flex-direction:column;gap:0;padding-top:2px}.spacts.hide{display:none}.spactlabel{display:flex;align-items:center;justify-content:space-between;font-family:var(--sans);font-size:12.5px;color:var(--grey);margin-bottom:6px}.spactx{border:0;background:transparent;color:#B5B5BA;cursor:pointer;font-size:13px;line-height:1;padding:2px 4px}.spactx:hover{color:var(--grey)}.spsug{display:block;width:100%;text-align:left;border:0;background:transparent;color:#3A3A3C;font-family:var(--sans);font-size:14.5px;letter-spacing:-.01em;padding:8px 0;cursor:pointer}.spsug:hover{color:#0A6CFF}.spactbtns{display:flex;gap:10px;margin-top:12px}.spactbtn{flex:1;border:1.5px solid #0A6CFF;color:#0A6CFF;background:#fff;border-radius:12px;padding:11px 8px;font-family:var(--sans);font-size:13.5px;font-weight:600;letter-spacing:-.01em;cursor:pointer;transition:background .12s}.spactbtn:hover{background:rgba(10,108,255,.06)}.spmic{border:0;background:transparent;cursor:pointer;color:var(--grey);width:36px;height:38px;display:flex;align-items:center;justify-content:center;flex:none}.spmic svg{width:19px;height:19px}.spmic.rec{color:#FF3B30;animation:micpulse 1s ease-in-out infinite}@keyframes micpulse{50%{opacity:.4}}
.spdisc{font-size:11px;color:var(--grey);line-height:1.5;padding:10px 16px 14px;text-align:center;flex:none;border-top:1px solid var(--hair)}.spdisc a{color:var(--link)}@media (prefers-reduced-motion:reduce){.assist .spin{animation-duration:6s}.spmic.rec{animation:none}}.ld{opacity:0;transform:translateY(12px);transition:opacity .7s cubic-bezier(.2,.6,.2,1),transform .7s cubic-bezier(.2,.6,.2,1);transition-delay:var(--d,0s)}body.loaded .ld{opacity:1;transform:none}body.no-loader .ld{opacity:1;transform:none;transition:none}a:focus-visible,button:focus-visible,[role="radio"]:focus-visible{outline:4px solid rgba(0,125,250,.6);outline-offset:1px;border-radius:8px}.field input:focus,.field input:focus-visible,.contact-row input:focus,.contact-row input:focus-visible{outline:none}@media (prefers-reduced-motion:reduce){.ld{opacity:1;transform:none;transition:none}#loader{display:none}
}@media (max-width:900px){.buy{grid-template-columns:1fr;gap:24px}.gallery{position:static;height:auto;display:block}.panel{height:min(62vh,470px)}.rail{display:none}.phead .chips{flex-direction:row;align-items:flex-start}.phead h1{font-size:32px}.dir{grid-template-columns:1fr 1fr}.legalrow .c{margin-right:0;width:100%}
}@media (max-width:740px){/* compact frosted card so the image gets more room */
  .cover{padding:0 12px 13px}.cglass{max-width:340px;width:auto;margin:0 auto;padding:13px 16px 14px;border-radius:15px}.cfrow{min-height:19px;gap:4px}.ff{font-size:9.5px;padding:2px 7px}.ff svg{width:10px;height:10px}.cact{min-height:28px;margin-top:5px;gap:4px}.cwho .av{width:19px;height:19px;font-size:9px}.cstory{font-size:15px;line-height:1.3;margin-top:7px}.clearn{margin-top:11px;padding:9px 16px;font-size:12.5px}.ctrl{top:14px}
}/* apple mobile footer accordions */
@media (max-width:740px){
  .dir{display:block;padding:0;border-bottom:1px solid var(--line)}.dir>div{display:block}.dir h6{
    position:relative;margin:0;padding:14px 0;border-top:1px solid var(--line);
    cursor:pointer;font-size:12px;
  }.dir>div:first-child h6:first-child{border-top:0}.dir h6.gap{margin-top:0}.dir h6::after{content:"+";position:absolute;right:2px;top:50%;transform:translateY(-50%);font-size:17px;font-weight:300;color:var(--grey-l)}.dir h6.open::after{content:"−"}.dir ul{display:none;padding:0 0 14px}.dir h6.open+ul{display:block}.dir li{margin-bottom:11px}.fnotes{padding:15px 0 9px}.legalrow{padding:12px 0 calc(22px + env(safe-area-inset-bottom))}.legalrow .c{margin-right:0;width:100%}.legalrow .links{display:flex;flex-wrap:wrap;gap:8px 0}.legalrow .links a{border-right:1px solid var(--line);padding:0 8px}.legalrow .links a:first-child{padding-left:0}.legalrow .region{width:100%;color:var(--grey)}}



/* ---- class compare ---- */
.compare{max-width:980px;margin:0 auto;padding:72px 24px 88px}.compare h2{font-size:clamp(26px,3.4vw,36px);font-weight:600;text-align:center}.compare .subt{margin-top:8px;text-align:center;font-size:15px;color:var(--grey)}.cmp{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;margin-top:38px}.cmp .colm{border:1px solid var(--hair);border-radius:18px;padding:28px 26px;background:#fff;display:flex;flex-direction:column}.cmp .colm.hl{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue)}.cmp h3{font-size:21px;font-weight:600}.cmp .who{font-size:13px;color:var(--grey);margin:4px 0 18px}.cmp ul{list-style:none;padding:0;margin:0}.cmp li{font-size:13.5px;color:#424245;padding:9px 0 9px 26px;border-top:1px solid var(--hair);position:relative}.cmp li::before{content:"✓";position:absolute;left:2px;color:var(--green);font-weight:700;font-size:12px}.cmp .pr{margin-top:18px;font-size:14px;font-weight:600}.cmp .pr span{display:block;font-size:11.5px;font-weight:400;color:var(--grey-l)}.cmp .pick{margin-top:auto;padding-top:14px;display:inline-block;font-size:14px;color:var(--blue);cursor:pointer;align-self:flex-start}@media (max-width:900px){.cmp{grid-template-columns:1fr}}@media (max-width:740px){.compare{padding:52px 18px 60px}}/* ---- anthem band ---- */
.anthem-band{
  position:relative;margin-top:26px;height:440px;background:#000 url('anthem-poster.jpg') center 40%/cover no-repeat;
  display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;
}.anthem-band::before{content:"";position:absolute;inset:0;background:rgba(0,0,0,.34);z-index:1}.anthem-band .bgv{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%;z-index:0}.anthem-band .in{position:relative;padding:0 24px;z-index:2}@media (prefers-reduced-motion:reduce){.anthem-band .bgv{display:none}}.anthem-band h2{font-size:clamp(26px,3.6vw,40px);font-weight:600;color:#fff;letter-spacing:.002em;line-height:1.15}.anthem-band p{margin-top:10px;font-size:15px;color:rgba(255,255,255,.75)}.anthem-band .pill2{
  margin-top:26px;display:inline-flex;align-items:center;gap:9px;cursor:pointer;border:0;
  background:rgba(255,255,255,.95);color:#1D1D1F;border-radius:980px;padding:11px 24px;
  font-family:var(--sans);font-size:15px;letter-spacing:-.016em;transition:background .15s;
}.anthem-band .pill2:hover{background:#fff}.anthem-band .pill2 .tri{width:0;height:0;border-left:11px solid #1D1D1F;border-top:7px solid transparent;border-bottom:7px solid transparent}@media (max-width:740px){.anthem-band{height:340px}}/* live proof */
.proof{font-size:12px;color:var(--grey-l);margin-top:10px}.proof b{color:var(--grey);font-weight:600}/* suggestion chips */
.sugg{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.sugg button{
  font-family:var(--sans);font-size:12.5px;font-weight:500;cursor:pointer;
  border:1px solid var(--blue);color:var(--blue);background:#fff;border-radius:999px;padding:6px 13px;
}.sugg button:active{background:rgba(10,132,255,.08)}/* ================= mobile optimization ================= */
html,body{overflow-x:clip}@media (max-width:740px){/* nav: logo + sign in only */
  .gnav .in{gap:20px;padding:0 14px}/* hero carousel: full screen, tabs scroll */
  .hcar{height:100vh;height:100dvh;min-height:460px}.hcar .hin{padding:0 18px 96px}.hcar .hh1{font-size:clamp(27px,7.5vw,38px)}.hbar .in{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:16px;padding-bottom:18px}.hbar .in::-webkit-scrollbar{display:none}.hseg{flex:0 0 auto;min-width:118px}/* product bar */
  .prodbar .in{padding:16px 18px}.prodbar .lock .tag{font-size:13px}.prodbar .btns{width:100%}.prodbar .btns .pill{flex:1;justify-content:center;padding:10px 12px}/* ribbon: one swipeable line */
  .ribbon{margin-top:2px;padding:0}.ribbon .in{
    gap:26px;padding:9px 18px;font-size:11.5px;flex-wrap:nowrap;justify-content:flex-start;
    overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;
  }.ribbon .in::-webkit-scrollbar{display:none}.ribbon .in span{white-space:nowrap}/* layout */
  .buy{padding:18px 18px 64px;gap:18px}.gallery{position:static;height:auto}.panel{height:auto;min-height:0;aspect-ratio:0.78;max-height:540px}.ficon{width:150px}.fname{font-size:13px;margin-top:18px}.fname .mono2{font-size:12.5px}.handle-big{font-size:34px}.slide{padding:24px}.caption{display:none}/* column: bigger touch type */
  .col section{padding:30px 0 32px}.sect-h{font-size:23px}.sect-sub{font-size:13px;margin-bottom:18px}.opt{padding:16px 17px;border-radius:15px;gap:13px}.opt h4{font-size:16px}.opt p{font-size:12.5px;margin-top:3px}.opt .pr{font-size:12.5px}.helper{font-size:12.5px;padding:15px 16px}.helper b{font-size:13px}.field input{padding:15px 4px}.addbtn{padding:15px;font-size:16px;border-radius:12px}.status{font-size:13px}/* iOS: 16px inputs prevent zoom-on-focus */
  .field input,.contact-row input{font-size:16px}.field .at{font-size:16px}/* modal + assist (safe-area aware) */
  .vmodal{padding:0}.vmodal video{width:100%;border-radius:0;max-height:100vh}.assist{right:16px;bottom:calc(16px + env(safe-area-inset-bottom));height:46px;padding:0 18px 0 13px}.assist .ask{font-size:14.5px}body.mcta-on .assist{bottom:calc(84px + env(safe-area-inset-bottom))}/* footer breathing */
  footer .in{padding-bottom:calc(20px + env(safe-area-inset-bottom))}.afoot,.afoot .in{text-align:left}@media (max-width:740px) and (max-height:750px){.vhero{height:52vh}
}.showcase{background:#F6F5F1;padding:clamp(64px,8vh,104px) 24px}.showcase .sc-in{max-width:1160px;margin:0 auto}.sc-top{display:flex;justify-content:space-between;align-items:flex-start;gap:32px}.sc-head{font-size:clamp(28px,3.3vw,42px);font-weight:500;letter-spacing:-.024em;line-height:1.1;margin:0;max-width:820px;color:#1a1a1a;text-align:left}.sc-all{flex:none;margin-top:8px;display:inline-flex;align-items:center;background:#fff;border:1px solid #cfcdc5;border-radius:8px;padding:13px 26px;font-size:15px;font-weight:500;color:#1a1a1a;text-decoration:none;transition:border-color .15s ease,background .15s ease}.sc-all:hover{border-color:#1a1a1a;text-decoration:none}/* logo row (clickable tabs) — Okta trusted-by strip */
.partner-tabs{display:flex;justify-content:space-between;align-items:center;gap:26px;margin:clamp(34px,4vw,52px) auto 0}.ptab{background:none;border:0;cursor:pointer;font-family:var(--sans);font-size:16px;font-weight:700;letter-spacing:.005em;color:#8b9099;padding:8px 4px;opacity:.6;filter:grayscale(1);transition:color .28s ease,opacity .28s ease,filter .28s ease;white-space:nowrap;display:inline-flex;align-items:center;gap:10px}.ptab .pmark{display:inline-flex;width:22px;height:22px;flex:none}.ptab .pmark svg{width:100%;height:100%;display:block}.ptab .pmark.img{width:auto;height:26px}.ptab .pmark.img img{height:100%;width:auto;max-width:150px;object-fit:contain;display:block;filter:grayscale(1);transition:filter .28s ease}.ptab:hover .pmark.img img,.ptab.on .pmark.img img{filter:none}.ptab.logo-only{gap:0}.ptab.logo-only .pmark{width:38px;height:38px}.ptab.logo-only .pmark.img{width:auto;height:42px}.ptab.logo-only .pmark.img img{max-width:210px}.ptab:hover{opacity:1;filter:none}.ptab.on{color:var(--ink);opacity:1;filter:none}/* carousel — Okta peek */
.story-stage{position:relative;margin-top:clamp(30px,3.4vw,44px);height:clamp(400px,44vh,500px)}.story-slide{position:absolute;top:0;left:6%;width:88%;height:100%;border-radius:24px;overflow:hidden;cursor:pointer;transform-origin:center center;box-shadow:0 40px 80px -30px rgba(16,16,24,.4);transition:transform .6s cubic-bezier(.25,.85,.25,1),opacity .5s ease;will-change:transform,opacity}.story-slide.is-active{cursor:default}.story-media{position:absolute;inset:0;background:#0b0f1a}.story-photo,.story-vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}.story-scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(100deg,rgba(0,0,0,.34) 0%,rgba(0,0,0,.14) 46%,rgba(0,0,0,0) 72%);opacity:1;transition:opacity .5s ease}.story-slide.boxed .story-glass{background:linear-gradient(160deg,rgba(18,20,26,.5) 0%,rgba(8,10,15,.72) 100%)}.story-dim{position:absolute;inset:0;z-index:2;background:rgba(8,10,16,.42);opacity:0;transition:opacity .5s ease}.story-slide:not(.is-active) .story-dim{opacity:1}.story-panel{position:absolute;inset:0;z-index:3;color:#fff;opacity:0;transition:opacity .55s cubic-bezier(.33,0,.2,1)}.story-glass>*{opacity:0;transform:translateY(14px);transition:opacity .55s ease,transform .6s cubic-bezier(.2,.72,.24,1)}.story-slide.is-active .story-glass>*{opacity:1;transform:none}.story-slide.is-active .story-glass>*:nth-child(1){transition-delay:.06s}.story-slide.is-active .story-glass>*:nth-child(2){transition-delay:.12s}.story-slide.is-active .story-glass>*:nth-child(3){transition-delay:.18s}.story-slide.is-active .story-glass>*:nth-child(4){transition-delay:.24s}.story-glass{position:absolute;left:clamp(22px,2.6vw,42px);top:clamp(26px,5vh,50px);bottom:clamp(26px,5vh,50px);width:min(580px,46%);border-radius:22px;padding:clamp(30px,3.2vw,48px);display:flex;flex-direction:column;justify-content:center;background:linear-gradient(160deg,rgba(28,30,37,.4) 0%,rgba(16,18,24,.66) 100%);-webkit-backdrop-filter:blur(16px) saturate(1.15);backdrop-filter:blur(16px) saturate(1.15);border:1px solid rgba(255,255,255,.07);box-shadow:0 30px 70px -26px rgba(0,0,0,.55);text-shadow:0 1px 8px rgba(0,0,0,.3)}.story-slide.is-active .story-panel{opacity:1}.story-panel .pw{display:inline-flex;align-items:center;gap:9px;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.82);margin-bottom:18px}.story-panel .pw .dot{width:9px;height:9px;border-radius:50%;flex:none}.story-panel .story-hlogo{display:block;height:34px;width:auto;max-width:190px;object-fit:contain;object-position:left;margin:0 0 16px}.story-panel h3{margin:0;font-size:clamp(19px,2.05vw,27px);font-weight:500;letter-spacing:-.015em;line-height:1.2;color:#fff;max-width:none}.story-stat{display:flex;align-items:center;gap:20px;margin-top:clamp(22px,2.8vw,34px)}.story-stat b{font-size:clamp(44px,5.2vw,66px);font-weight:600;letter-spacing:-.035em;line-height:.86;color:#fff}.story-stat span{font-size:14.5px;line-height:1.32;color:rgba(255,255,255,.9);max-width:26ch}.story-btn{margin-top:clamp(22px,2.8vw,32px);align-self:flex-start;display:inline-flex;align-items:center;background:#0b0d12;color:#fff !important;border:0;border-radius:8px;padding:13px 25px;font-size:15px;font-weight:500;text-decoration:none;transition:background .15s ease}.story-btn:hover{background:#22262e;text-decoration:none}@media (max-width:820px){.sc-top{flex-direction:column;gap:20px}.sc-head{font-size:clamp(26px,7vw,34px)}.story-stage{height:clamp(400px,58vh,470px)}.story-panel .story-hlogo{height:26px;margin-bottom:11px}.story-slide{left:3%;width:94%}.story-glass{left:14px;right:14px;top:auto;bottom:14px;width:auto;border-radius:14px;justify-content:flex-end;padding:16px 16px 15px;background:rgba(16,18,24,.6);-webkit-backdrop-filter:blur(8px) saturate(1.1);backdrop-filter:blur(8px) saturate(1.1)}.story-panel h3{font-size:clamp(16px,4.4vw,20px);line-height:1.24;max-width:30ch}.story-panel .pw{display:none}.story-btn{margin-top:12px;padding:0;background:transparent !important;border-radius:0;font-size:15px;font-weight:500;text-decoration:underline;text-underline-offset:3px}.story-stat{margin-top:12px}.story-stat b{font-size:clamp(34px,9vw,44px)}.story-scrim{background:none}.sc-all{background:none;border:0;padding:0;font-size:16px;color:var(--ink);text-decoration:underline;text-underline-offset:3px;margin-top:0}.partner-tabs{gap:26px;overflow-x:auto;justify-content:flex-start;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:4px 2px;margin-top:28px}.partner-tabs::-webkit-scrollbar{display:none}.ptab{flex:0 0 auto;font-size:14px;gap:7px}.ptab .pmark{width:18px;height:18px}.ptab .pmark.img{height:20px}.ptab.logo-only .pmark{width:20px;height:20px}.ptab.logo-only .pmark.img{height:20px}.ptab.logo-only .pmark.img img{max-width:96px}
}@media (prefers-reduced-motion:reduce){.story-slide,.story-panel,.story-scrim,.story-dim,.story-glass>*{transition:none}.story-glass>*{opacity:1;transform:none}}/* discount code row (reserve total) */
/* ============================================================
   Shane AI character easter eggs — see easter-egg IIFE in _index.js
   for the full catalogue + triggers. All effects are motion-based
   and are only ever applied when prefers-reduced-motion is NOT set
   (JS gates them, and this @media block nulls them as a backstop).
   Everything is scoped to the character stage (#spAvWrap / .spstage);
   no egg affects normal page layout or the chat's live-call states.
   ============================================================ */
.spstage .spidle{transition:filter .3s ease}
.spstage.egg-wave .spidle{animation:eggWave .95s cubic-bezier(.36,.07,.19,.97) both;transform-origin:50% 100%}
@keyframes eggWave{0%,100%{transform:rotate(0)}12%{transform:rotate(-4deg)}30%{transform:rotate(4deg)}48%{transform:rotate(-3deg)}66%{transform:rotate(3deg)}82%{transform:rotate(-1.5deg)}}
.spstage.egg-wink .spidle{animation:eggWink .5s ease both}
@keyframes eggWink{0%,100%{filter:none;transform:none}40%{filter:brightness(1.15) contrast(1.05);transform:rotate(-2deg) scale(1.02)}55%{filter:brightness(.86);transform:rotate(-2deg) scale(1.02)}}
.spstage.egg-jump .spidle{animation:eggJump .62s cubic-bezier(.28,1.2,.42,1) both;transform-origin:50% 100%}
@keyframes eggJump{0%,100%{transform:translateY(0) scaleY(1)}18%{transform:translateY(2%) scaleY(.94)}52%{transform:translateY(-11%) scaleY(1.04)}80%{transform:translateY(1%) scaleY(.98)}}
.spstage.egg-dizzy .spidle{animation:eggDizzy 1.1s ease-in-out both}
@keyframes eggDizzy{0%{transform:rotate(0);filter:none}25%{transform:rotate(6deg) scale(1.02);filter:blur(.5px) hue-rotate(20deg)}50%{transform:rotate(-6deg) scale(1.02);filter:blur(.8px) hue-rotate(-20deg)}75%{transform:rotate(4deg);filter:blur(.4px)}100%{transform:rotate(0);filter:none}}
.spstage.egg-party .spidle{animation:eggPartyBounce .7s cubic-bezier(.28,1.2,.42,1) infinite,eggPartyHue 1.4s linear infinite;transform-origin:50% 100%}
@keyframes eggPartyBounce{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-8%) rotate(2deg)}}
@keyframes eggPartyHue{to{filter:hue-rotate(360deg) saturate(1.25)}}
.spstage.egg-sleep .spidle{animation:eggBreathe 3.4s ease-in-out infinite;filter:brightness(.82) saturate(.85)}
@keyframes eggBreathe{0%,100%{transform:scale(1)}50%{transform:scale(1.012)}}
.spstage.egg-night .spidle{filter:brightness(.9) saturate(.9) contrast(1.02)}
/* floating speech-bubble quips + z/hat overlays, contained in the frame */
.egg-bubble{position:absolute;top:8px;left:50%;transform:translateX(-50%) translateY(-6px) scale(.94);z-index:9;max-width:82%;background:#fff;color:#1D1D1F;font-family:var(--sans);font-size:12.5px;font-weight:550;letter-spacing:-.01em;line-height:1.3;padding:7px 12px;border-radius:13px;box-shadow:0 6px 20px rgba(0,0,0,.22);opacity:0;pointer-events:none;transition:opacity .28s ease,transform .28s cubic-bezier(.2,.9,.3,1);white-space:nowrap;text-align:center}
.egg-bubble.on{opacity:1;transform:translateX(-50%) translateY(0) scale(1)}
.egg-bubble::after{content:"";position:absolute;left:50%;bottom:-6px;transform:translateX(-50%);border:6px solid transparent;border-top-color:#fff;border-bottom:0}
.egg-hat{position:absolute;top:2px;left:50%;transform:translateX(-50%) rotate(-14deg);z-index:8;font-size:26px;line-height:1;pointer-events:none;filter:drop-shadow(0 2px 3px rgba(0,0,0,.28));animation:eggHatPop .5s cubic-bezier(.2,.9,.3,1.25) both}
@keyframes eggHatPop{from{opacity:0;transform:translateX(-50%) translateY(6px) rotate(-14deg) scale(.5)}}
.egg-night-badge{position:absolute;bottom:8px;left:8px;z-index:8;font-size:15px;line-height:1;pointer-events:none;opacity:.85}
.egg-zzz{position:absolute;top:6px;left:58%;z-index:9;font-family:var(--sans);font-weight:700;color:#8AA;pointer-events:none}
.egg-zzz i{position:absolute;opacity:0;animation:eggZ 2.6s ease-in-out infinite}
.egg-zzz i:nth-child(1){font-size:12px;animation-delay:0s}
.egg-zzz i:nth-child(2){font-size:15px;left:9px;animation-delay:.55s}
.egg-zzz i:nth-child(3){font-size:18px;left:20px;animation-delay:1.1s}
@keyframes eggZ{0%{opacity:0;transform:translateY(2px) scale(.7)}25%{opacity:1}70%{opacity:1;transform:translateY(-16px) scale(1.05)}100%{opacity:0;transform:translateY(-24px) scale(1.1)}}
}
/* (global from here — the mobile block above is closed; egg + promo styles apply at every width) */
.egg-confetti{position:absolute;inset:0;z-index:7;pointer-events:none;overflow:hidden}
.egg-confetti i{position:absolute;top:-8px;width:7px;height:11px;border-radius:2px;opacity:0;animation:eggConf 1.4s ease-in forwards}
@keyframes eggConf{0%{transform:translateY(-8px) rotate(0);opacity:0}12%{opacity:1}100%{transform:translateY(320px) rotate(540deg);opacity:0}}
.spstage.egg-shake .spidle{animation:eggShake .8s cubic-bezier(.36,.07,.19,.97) both}
@keyframes eggShake{10%,90%{transform:translateX(-2px) rotate(-2deg)}20%,80%{transform:translateX(4px) rotate(3deg)}30%,50%,70%{transform:translateX(-7px) rotate(-4deg)}40%,60%{transform:translateX(7px) rotate(4deg)}}
.egg-sparkle{position:absolute;inset:0;z-index:9;pointer-events:none;overflow:hidden}
.egg-sparkle i{position:absolute;font-style:normal;font-size:15px;color:#FFCC00;text-shadow:0 0 6px rgba(255,204,0,.7);opacity:0;transform:scale(.4);animation:eggSpark 1.1s ease-out forwards}
@keyframes eggSpark{0%{opacity:0;transform:scale(.3) rotate(0)}30%{opacity:1;transform:scale(1.15) rotate(90deg)}100%{opacity:0;transform:scale(.5) rotate(200deg)}}
.egg-hotcorner{position:absolute;top:0;left:0;width:26px;height:26px;z-index:8;margin:0;padding:0;border:0;background:transparent;cursor:default;-webkit-appearance:none;appearance:none}
@media (prefers-reduced-motion:reduce){.spstage.egg-wave .spidle,.spstage.egg-wink .spidle,.spstage.egg-jump .spidle,.spstage.egg-dizzy .spidle,.spstage.egg-party .spidle,.spstage.egg-sleep .spidle,.spstage.egg-shake .spidle,.egg-sparkle i,.egg-hat,.egg-zzz i,.egg-confetti i{animation:none}.egg-bubble{transition:none}}
.promo-row{display:flex;gap:10px;margin:14px 0 0}.promo-row input{flex:1;min-width:0;font:inherit;font-size:17px;padding:14px 16px;border:1px solid var(--line,#d2d2d7);border-radius:12px;background:#fff;text-transform:uppercase;letter-spacing:.02em}.promo-row input::placeholder{text-transform:none;letter-spacing:0}.promo-row input:focus{outline:none;border-color:var(--blue,#0071e3);box-shadow:0 0 0 4px rgba(0,125,250,.15)}.promo-row button{font:inherit;font-size:16px;font-weight:600;padding:14px 22px;border:1px solid var(--line,#d2d2d7);border-radius:12px;background:#f2f2f4;color:#1d1d1f;cursor:pointer;white-space:nowrap}.promo-row button:hover{background:#e9e9ec}.promo-row.applied input{border-color:#1a8f3c;background:#f4fbf6;color:#1a8f3c;font-weight:600}.promo-msg{font-size:13px;margin:8px 0 0;min-height:16px;color:var(--sub,#6e6e73)}.promo-msg.ok{color:#1a8f3c;font-weight:600}.promo-msg.bad{color:#c0392b}
/* How-it-works steps: admin can add/remove steps (content.howSteps). The server stamps
   data-n on the <ol>; desktop grid adapts to the count (3 is the stylesheet default,
   mobile stays single-column via the existing max-width:720px rule). */
@media (min-width:721px){
.herohead .hh-steps[data-n="2"]{grid-template-columns:repeat(2,1fr);max-width:640px}
.herohead .hh-steps[data-n="4"]{grid-template-columns:repeat(4,1fr);max-width:1120px}
.herohead .hh-steps[data-n="5"]{grid-template-columns:repeat(5,1fr);max-width:1240px;gap:clamp(16px,2.6vw,34px)}
.herohead .hh-steps[data-n="6"]{grid-template-columns:repeat(6,1fr);max-width:1300px;gap:clamp(12px,2vw,26px)}
}

/* even breathing room around the join button, independent of hidden note/promo elements */
.total .addbtn{margin-top:16px}

/* card-over-card class switch: the outgoing card holds still underneath while the
   incoming one slides over it (direction-aware), like dealing a card onto a stack */
.cslide.cold{display:block;z-index:1;animation:none}
@keyframes ccover{0%{transform:translateX(103%) scale(1);box-shadow:-30px 0 60px rgba(0,0,0,.45)}72%{transform:translateX(0) scale(.988);box-shadow:0 10px 34px rgba(0,0,0,.22)}100%{transform:translateX(0) scale(1);box-shadow:0 0 0 rgba(0,0,0,0)}}
.cslide.on.rev{animation-name:ccoverL}
@keyframes ccoverL{0%{transform:translateX(-103%) scale(1);box-shadow:30px 0 60px rgba(0,0,0,.45)}72%{transform:translateX(0) scale(.988);box-shadow:0 10px 34px rgba(0,0,0,.22)}100%{transform:translateX(0) scale(1);box-shadow:0 0 0 rgba(0,0,0,0)}}
@media (prefers-reduced-motion:reduce){.cslide.on{animation:cfade .3s ease both}}

/* ================= checkout receipt popup ================= */
/* the discount code now lives in the popup — the on-page row retires */
#promoRow,#promoMsg{display:none !important}
.rcpt-ov{position:fixed;inset:0;z-index:300;background:rgba(0,0,0,.45);-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;transition:opacity .28s ease}
.rcpt-ov[hidden]{display:none}
.rcpt-ov.on{opacity:1}
.rcpt{background:#fff;border-radius:22px;max-width:440px;width:100%;padding:30px 28px 26px;position:relative;box-shadow:0 30px 80px rgba(0,0,0,.28);transform:translateY(12px) scale(.97);transition:transform .32s cubic-bezier(.2,.8,.2,1);max-height:calc(100vh - 40px);overflow:auto}
.rcpt-ov.on .rcpt{transform:none}
.rcpt-x{position:absolute;top:14px;right:14px;width:30px;height:30px;border:0;border-radius:50%;background:#f0f0f2;color:#6a6a70;font-size:17px;line-height:1;cursor:pointer;padding:0}
.rcpt-x:hover{background:#e5e5e9}
.rcpt-h{font-size:22px;font-weight:700;letter-spacing:-.02em;margin:0 0 16px;color:var(--ink,#1d1d1f)}
.rcpt-rows{border-top:1px solid var(--hair,#e8e8ed)}
.rcpt-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--hair,#e8e8ed)}
.rcpt-row .l b{display:block;font-size:15.5px;letter-spacing:-.01em;color:var(--ink,#1d1d1f)}
.rcpt-row .l span{color:#6e6e73;font-size:12.5px}
.rcpt-row .r{font-weight:600;font-size:15px;white-space:nowrap}
.rcpt-row .r.free{color:#1a8f3c}
.rcpt-trow{display:flex;justify-content:space-between;align-items:baseline;padding:14px 0 2px;font-size:15px;color:#6e6e73}
.rcpt-trow b{font-size:21px;letter-spacing:-.02em;color:var(--ink,#1d1d1f)}
.rcpt-disc{display:flex;gap:10px;margin-top:14px}
.rcpt-disc input{flex:1;min-width:0;font:inherit;font-size:15px;padding:11px 14px;border:1px solid #d2d2d7;border-radius:11px;text-transform:uppercase;letter-spacing:.02em}
.rcpt-disc input::placeholder{text-transform:none;letter-spacing:0}
.rcpt-disc input:focus{outline:none;border-color:#0071e3;box-shadow:0 0 0 4px rgba(0,125,250,.15)}
.rcpt-disc button{font:inherit;font-size:14px;font-weight:600;padding:11px 18px;border:1px solid #d2d2d7;border-radius:11px;background:#f2f2f4;color:#1d1d1f;cursor:pointer;white-space:nowrap}
.rcpt-disc button:hover{background:#e9e9ec}
.rcpt-cmsg{font-size:12.5px;margin:7px 0 0;color:#6e6e73}
.rcpt-cmsg.ok{color:#1a8f3c;font-weight:600}
.rcpt-cmsg.bad{color:#c0392b}
.rcpt-lab{display:block;font-size:13px;font-weight:600;color:#6e6e73;margin:16px 0 6px}
#rcptEmail{width:100%;font:inherit;font-size:17px;padding:14px 16px;border:1px solid #d2d2d7;border-radius:12px}
#rcptEmail:focus{outline:none;border-color:#0071e3;box-shadow:0 0 0 4px rgba(0,125,250,.15)}
.rcpt-err{color:#c0392b;font-size:13px;margin:8px 0 0}
.rcpt-go{width:100%;margin-top:16px;font:inherit;font-size:16.5px;font-weight:600;padding:15px;border:0;border-radius:13px;background:#0071e3;color:#fff;cursor:pointer;transition:background .2s ease}
.rcpt-go:hover{background:#0077ed}
.rcpt-go:disabled{opacity:.55;cursor:default}
.rcpt-note{font-size:12.5px;color:#6e6e73;line-height:1.5;margin:12px 0 0;text-align:center}
#rcptDone{text-align:center}
.rcpt-check{width:56px;height:56px;border-radius:50%;background:#e8f7ee;color:#1a8f3c;font-size:28px;display:flex;align-items:center;justify-content:center;margin:6px auto 14px}
.rcpt-dmsg{font-size:15px;color:#4a4a4f;line-height:1.55;margin:0 0 18px;text-align:center}
@media (prefers-reduced-motion:reduce){.rcpt-ov,.rcpt{transition:none}}
@media (max-width:520px){.rcpt{padding:24px 20px 20px;border-radius:18px}}

/* the Total block flows straight from the extensions list — no divider above Free */
.col section#s-total{border-top:0;padding-top:10px}

/* ---- receipt popup v2: Apple Pay-sheet polish ---- */
.rcpt-ov{background:rgba(10,10,12,.5);-webkit-backdrop-filter:blur(15px) saturate(1.2);backdrop-filter:blur(15px) saturate(1.2)}
.rcpt{border-radius:26px;padding:34px 30px 28px;box-shadow:0 40px 100px rgba(0,0,0,.30),0 4px 18px rgba(0,0,0,.12)}
.rcpt-h{font-size:24px;letter-spacing:-.025em;margin-bottom:20px}
.rcpt-x{top:16px;right:16px}
.rcpt-row{padding:14px 0}
.rcpt-row .l b{font-size:17px;letter-spacing:-.015em}
.rcpt-row .l span{font-size:13px;color:#86868b;display:block;margin-top:1px}
.rcpt-row .r{font-size:16px;font-weight:500;font-variant-numeric:tabular-nums}
.rcpt-trow{padding:16px 0 4px}
.rcpt-trow b{font-size:26px;font-weight:700;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.rcpt-disclink{display:block;background:none;border:0;padding:0;margin:14px 0 0;font:inherit;font-size:14px;color:#0071e3;cursor:pointer;text-align:left}
.rcpt-disclink:hover{text-decoration:underline}
.rcpt-lab{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#86868b;margin:18px 0 8px}
#rcptEmail{border-radius:14px;padding:15px 16px}
.rcpt-go{border-radius:14px;padding:16px;font-size:17px;display:flex;align-items:center;justify-content:center;gap:9px}
.rcpt-go .lk{width:14px;height:14px;flex:none;display:block}
.rcpt-note{font-size:12px;color:#86868b;margin-top:14px}
.rcpt-disc[hidden],.rcpt-disclink[hidden]{display:none}

/* Ask-Shane launcher fade (revealed at the Early-access hero) */
.assist{transition:opacity .45s ease,transform .45s cubic-bezier(.2,.8,.2,1)}
.assist.ai-hid{opacity:0;transform:translateY(14px);pointer-events:none}
@media (prefers-reduced-motion:reduce){.assist{transition:none}}

/* ---- mobile hero tab strip: scroll affordance ---- */
@media (max-width:740px){
  .hbar .in{scroll-snap-type:x proximity;scroll-padding-left:18px;scroll-behavior:smooth}
  .hseg{scroll-snap-align:start}
  /* while tabs hide off-screen, the strip dissolves at the right edge — an invitation, not a chop */
  .hbar.has-more .in{-webkit-mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 72px),transparent);mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 72px),transparent)}
}

/* Low Power Mode etc: autoplay refused -> the video hides, its poster still shows */
.hslide.novid video{display:none}

/* home story card: one-line summary under the headline */
.story-cardsub{font-size:clamp(14px,1.5vw,17px);line-height:1.45;color:rgba(255,255,255,.86);margin:8px 0 0;max-width:38ch;letter-spacing:.01em}
