/* /clean-design.css */
:root{--ink:#173b40;--muted:#607174;--paper:#f8f9f5;--lime:#e9f16d;--line:#dce3de}
*{box-sizing:border-box}html{scroll-behavior:auto;scroll-padding-top:0}body.clean-site{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #759fa0;outline-offset:5px}[hidden]{display:none!important}.wrap{max-width:1240px;margin:auto;padding-left:48px;padding-right:48px}.clean-nav{height:88px;display:flex;align-items:center;gap:36px;padding:0 40px;position:sticky;top:0;z-index:30;background:rgba(248,249,245,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(16px)}.wordmark{font-family:Outfit,sans-serif;font-size:39px;font-weight:600;letter-spacing:-2.3px;line-height:1}.wordmark span{font:11px Inter,sans-serif;vertical-align:top;letter-spacing:0;margin-left:3px}.nav-links{display:flex;gap:28px;align-items:center;margin-left:auto;font-size:13px;font-weight:500}.nav-links>a:last-child{display:none}.nav-links a{color:var(--ink)!important}.nav-actions{display:flex;align-items:center;gap:24px;font-size:13px}.button{display:inline-flex;justify-content:center;align-items:center;gap:24px;padding:16px 23px;border-radius:8px;font-size:13px;font-weight:600;transition:background .2s,transform .2s;border:1px solid transparent;line-height:1.25}.button:hover{transform:translateY(-2px);background:#dce661}.lime{background:var(--lime);color:var(--ink)}.mobile-toggle{display:none}.hero{display:grid;grid-template-columns:1.03fr 1fr;gap:62px;align-items:center;padding-top:86px;padding-bottom:88px}.eyebrow{display:flex;align-items:center;gap:9px;font-size:10px;letter-spacing:.13em;text-transform:uppercase;font-weight:600;line-height:1.7}.eyebrow i{height:6px;width:6px;background:#72978e;border-radius:50%}h1,h2,h3{font-family:Outfit,sans-serif;font-weight:400}h1{font-size:clamp(48px,5.5vw,76px);line-height:1.03;letter-spacing:-.045em;margin:23px 0}h1 em,h2 em{font-style:normal;color:#648781}.hero-copy>p,.firm-hero>p{font-size:15px;line-height:1.8;max-width:440px;color:var(--muted)}.actions{display:flex;gap:26px;align-items:center;flex-wrap:wrap;margin-top:28px}.text-link{font-size:13px;font-weight:600;display:inline-flex;align-items:center;gap:15px;padding:9px 0}.text-link:hover{text-decoration:underline;text-underline-offset:5px}.hero-copy .micro{font-size:10px;margin-top:18px}.firm-shortcut{display:block;font-size:11px;line-height:1.6;margin-top:28px;padding-top:20px;border-top:1px solid var(--line);max-width:410px}.hero-product{border:1px solid #d6dfd8;background:white;border-radius:16px;box-shadow:0 24px 60px #1d454010;position:relative;transform:rotate(-1deg)}.window-bar{padding:18px 22px;border-bottom:1px solid #e4e9e5;display:flex;justify-content:space-between;align-items:center}.mini-brand{font-size:14px;font-weight:600;letter-spacing:-.5px}.sample-label{font-size:9px;color:#7a8a89}.workspace{padding:26px}.workspace-heading{display:flex;justify-content:space-between;align-items:center;gap:8px}.workspace-heading small{font-size:8px;letter-spacing:.12em;color:var(--muted)}.workspace-heading h2{font-size:25px;margin:8px 0 23px;letter-spacing:-.03em}.status{font-size:8px;color:#38756b;background:#edf5ee;padding:6px 8px;border-radius:5px;white-space:nowrap}.metrics{display:grid;grid-template-columns:1.2fr 1fr;gap:12px;margin-bottom:24px}.metrics>div{padding:16px;background:#f6f8f4;border:1px solid #e7ece5;border-radius:9px}.metrics small{font-size:10px;color:var(--muted)}.metrics strong{display:block;font-size:26px;font-weight:500;letter-spacing:-1px;margin-top:12px}.metrics strong span{float:right;font-size:17px;color:#799589}.metrics p{font-size:9px;color:var(--muted);line-height:1.6}.metrics svg{width:100%;height:42px;overflow:visible}.metrics path{fill:none;stroke:#648c7e;stroke-width:2;stroke-dasharray:300;stroke-dashoffset:300;animation:chart-draw 3s ease forwards}.document-row{display:flex;gap:12px;align-items:center;border-top:1px solid #e6ebe6;padding:15px 0;animation:entry-in .9s both}.document-row:nth-child(4){animation-delay:.2s}.doc-icon{font-size:20px;border:1px solid var(--line);border-radius:6px;padding:4px 8px}.document-row b{display:block;font-size:10px;font-weight:500}.document-row small{display:block;font-size:8px;color:var(--muted);margin-top:5px}.document-row>.status{margin-left:auto}.ai-message{background:#edf1e7;border:1px solid #dce4d2;padding:16px;border-radius:9px;display:flex;align-items:flex-start;gap:12px;margin-top:12px;animation:entry-in 1s .4s both}.ai-message img{width:22px;height:22px}.ai-message b{font-size:10px;font-weight:600}.ai-message p{font-size:9px;line-height:1.6;margin:6px 0 0;color:var(--muted)}.workspace-link{display:flex;justify-content:space-between;margin-top:23px;font-size:10px;font-weight:600}.floating-note{position:absolute;bottom:-21px;right:25px;background:#244b46;color:white;border-radius:9px;padding:15px 21px;font-size:10px;box-shadow:0 10px 20px #153b401c}.floating-note span{color:var(--lime);margin-right:10px}.connection-strip{display:flex;align-items:center;gap:38px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-top:24px;padding-bottom:24px}.connection-strip>span:first-child{font-size:9px;letter-spacing:.13em;margin-right:auto;color:var(--muted)}.connection-strip>span{display:flex;align-items:center;gap:10px;font-size:16px}.connection-strip img{width:24px;height:24px}.connection-strip small{font-size:9px;color:var(--muted)}.section{padding-top:96px;padding-bottom:96px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-bottom:40px}h2{font-size:clamp(34px,3.8vw,49px);line-height:1.08;letter-spacing:-.035em;margin:18px 0 0}.section-heading>p{max-width:345px;font-size:14px;line-height:1.8;color:var(--muted);margin:0 0 4px}.tour-shell{border:1px solid #d2ded6;border-radius:14px;overflow:hidden;background:white}.tour-tabs{display:flex;padding:10px;gap:7px;background:#eef2eb;border-bottom:1px solid #d9e3d8}.tour-tabs button{flex:1;border:0;background:transparent;border-radius:6px;padding:16px;cursor:pointer;text-align:left;font-size:10px;color:#638078;display:flex;gap:17px;align-items:center}.tour-tabs button span{font-size:12px;font-weight:500;color:var(--ink)}.tour-tabs button[aria-selected=true]{background:white;box-shadow:0 2px 7px #163b4010}.motion-frame{position:relative;aspect-ratio:16/9;background:#18393f;overflow:hidden}.motion-frame iframe{position:absolute;width:100%;height:100%;inset:0;border:0}.tour-caption{padding:18px 24px;display:flex;justify-content:space-between;gap:16px;font-size:10px;background:#fff;line-height:1.6}.tour-caption>span{color:var(--muted)}.tour-caption a{font-weight:600}.feature-row{display:grid;grid-template-columns:repeat(3,1fr);gap:42px;margin-top:38px}.feature-row>div>span{font-size:10px;color:#79918a}.feature-row h3{font-size:19px;margin:14px 0 8px;letter-spacing:-.02em}.feature-row p{font-size:12px;line-height:1.8;color:var(--muted);margin:0}.firm-section{background:#193e40;color:#fff;padding:84px 0}.firm-grid{display:grid;grid-template-columns:1fr 1fr;gap:92px;align-items:center}.firm-section .eyebrow{color:#dfe9e6}.firm-section h2{margin:22px 0}.firm-section h2 em{color:#bdcec6}.firm-section p{font-size:14px;line-height:1.8;color:#e3ece9}.firm-section small{display:block;margin-top:22px;color:#b7c9c2;font-size:10px}.portal-stack{border-top:1px solid #476362}.portal-stack>a{display:flex;align-items:center;gap:22px;padding:24px 0;border-bottom:1px solid #476362;transition:padding .2s}.portal-stack>a:hover{padding-left:10px}.portal-number{font-size:12px;color:#e3ece9}.portal-stack h3{font-size:21px;margin:0}.portal-stack p{font-size:13px;margin:5px 0 0}.portal-stack>a>span:last-child{margin-left:auto;color:var(--lime)}.assistance{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}.assistance p{font-size:14px;color:var(--muted);line-height:1.8;max-width:420px}.support-options details{border-bottom:1px solid var(--line);padding:24px 0}.support-options details:first-child{border-top:1px solid var(--line)}summary{list-style:none;cursor:pointer;font-size:14px;font-weight:500;display:flex;gap:15px;justify-content:space-between;line-height:1.6}summary::-webkit-details-marker{display:none}summary span{font-size:20px;font-weight:400;transition:transform .2s}details[open] summary span{transform:rotate(45deg)}.support-options p{font-size:12px;line-height:1.8;max-width:95%}.support-options a{font-size:11px;font-weight:600}.firm-section .support-options details{border-color:#476362}.closing{background:#eaf0e6;border-radius:16px;display:grid;grid-template-columns:1fr 1fr;gap:80px;padding-top:58px;padding-bottom:58px;margin-bottom:80px}.closing h2{font-size:42px}.closing>div:last-child{padding-left:30px;border-left:1px solid #cddacc}.closing p{font-size:14px;line-height:1.8;color:var(--muted)}.price{font-size:50px;font-family:'Google Sans Flex',Arial,sans-serif;letter-spacing:-2px}.price span{font:13px 'Google Sans Flex',Arial,sans-serif;letter-spacing:0;margin-left:7px}.closing small,.closing>div>a:not(.button){display:block;font-size:13px;margin-top:14px}.clean-footer{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:40px;padding-top:10px;padding-bottom:28px}.clean-footer p{font-size:12px;line-height:1.8;color:var(--muted);margin-top:20px}.clean-footer b{font-size:11px;display:block;margin:7px 0 20px}.clean-footer>div>a:not(.wordmark){display:block;font-size:11px;color:var(--muted);margin-top:14px}.footer-bottom{border-top:1px solid var(--line);padding-top:25px;grid-column:1/-1;display:flex;align-items:center;gap:24px;font-size:12px;color:var(--muted)}.footer-bottom span{margin-right:auto}.clean-footer .footer-bottom>a{margin:0!important;font-size:12px!important}.firm-hero{text-align:center;padding-top:76px;padding-bottom:58px}.firm-hero .eyebrow,.firm-hero .actions{justify-content:center}.firm-hero h1{font-size:clamp(48px,6.5vw,84px)}.firm-hero>p{margin:20px auto}.firm-hero>small{display:block;font-size:10px;color:var(--muted);margin-top:22px}.firm-movie .motion-frame{border-radius:14px 14px 0 0}.firm-movie .tour-caption{border:1px solid var(--line);border-radius:0 0 14px 14px}.product-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.product-grid article{background:#eef2ea;padding:35px;border-radius:12px;display:flex;flex-direction:column;scroll-margin-top:110px}.product-card-top{display:flex;justify-content:space-between;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#617b71}.product-grid h3{font-size:30px;line-height:1.15;letter-spacing:-.025em;max-width:330px;margin:35px 0 16px}.product-grid p{font-size:13px;line-height:1.8;color:var(--muted);margin:0 0 25px}.product-grid a{margin-top:auto}.svc-dd{position:relative}.svc-menu{display:none;position:absolute;top:100%;left:-15px;min-width:255px;padding:13px;background:white;border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 40px #173b4017}.svc-menu a{display:block;padding:10px;font-size:12px;border-radius:5px}.svc-menu a:hover{background:#edf2e9}.svc-open-business [data-svc-key=business]>.svc-menu,.svc-open-firms [data-svc-key=firms]>.svc-menu,.svc-open-services [data-svc-key=services]>.svc-menu{display:block}@keyframes chart-draw{to{stroke-dashoffset:0}}@keyframes entry-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(min-width:1500px){.clean-nav{padding-left:calc((100vw - 1144px)/2);padding-right:calc((100vw - 1144px)/2)}}
@media(max-width:1100px){.nav-links{gap:18px}.nav-links>a{display:none}.clean-nav{gap:24px}.hero{gap:35px}.hero h1{font-size:60px}.firm-grid{gap:50px}.connection-strip{gap:22px}.nav-actions{gap:15px}}
@media(max-width:850px){.wrap{padding-left:26px;padding-right:26px}.clean-nav{height:74px;padding:0 26px}.nav-links,.nav-actions{display:none}.mobile-toggle{display:flex;margin-left:auto;gap:20px;align-items:center;background:transparent;border:0;font-size:12px;padding:12px 0;color:var(--ink)}#clean-mobile{position:absolute;top:74px;left:0;right:0;background:var(--paper);padding:18px 26px 26px;border-bottom:1px solid var(--line);box-shadow:0 20px 30px #173b4015}#clean-mobile a{display:block;padding:13px 0;font-size:15px}.hero{grid-template-columns:1fr;gap:48px;padding-top:48px;padding-bottom:65px}.hero-copy>p{max-width:500px}.hero h1{font-size:62px}.hero-product{max-width:560px;width:100%;justify-self:center;transform:none}.connection-strip{flex-wrap:wrap;gap:20px}.connection-strip>span:first-child{width:100%}.connection-strip small{margin-left:auto}.section{padding-top:64px;padding-bottom:64px}.section-heading{gap:25px}.section-heading>p{max-width:280px}.firm-grid,.assistance{grid-template-columns:1fr;gap:40px}.firm-section{padding:64px 0}.firm-grid>div:first-child{max-width:560px}.closing{margin-left:26px;margin-right:26px;gap:32px;padding-top:40px;padding-bottom:40px}.closing h2{font-size:33px}.feature-row{gap:24px}.tour-tabs button{padding:13px 10px;gap:8px}.clean-footer{gap:25px}.product-grid article{padding:26px}}
@media(max-width:540px){.hero h1{font-size:53px}.hero .eyebrow{font-size:8px}.hero-copy>p{font-size:14px}.hero .actions{gap:19px}.button{padding:15px 18px;font-size:12px}.text-link{font-size:12px}.workspace{padding:19px}.window-bar{padding:16px 19px}.floating-note{font-size:9px;right:15px;padding:13px}.workspace-heading h2{font-size:23px}.connection-strip>span{font-size:15px}.connection-strip small{width:100%;margin:0}.section-heading{display:block}.section-heading>p{margin-top:20px;max-width:none;font-size:13px}.tour-tabs{padding:7px;gap:3px}.tour-tabs button{flex-direction:column;align-items:flex-start;gap:7px;padding:11px 8px}.tour-tabs button span{font-size:10px;line-height:1.4}.motion-frame{aspect-ratio:4/3}.tour-caption{flex-direction:column;padding:15px 18px;font-size:9px;gap:8px}.feature-row{grid-template-columns:1fr;gap:25px}.feature-row>div{border-bottom:1px solid var(--line);padding-bottom:23px}.feature-row h3{margin-top:10px}.closing{grid-template-columns:1fr;gap:28px;margin-bottom:55px}.closing>div:last-child{padding:25px 0 0;border-left:0;border-top:1px solid #cddacc}.clean-footer{grid-template-columns:1fr 1fr}.clean-footer>div:first-child{grid-column:1/-1}.footer-bottom{flex-wrap:wrap;gap:16px}.clean-footer{padding-bottom:96px}.footer-bottom span{width:100%}.product-grid{grid-template-columns:1fr}.firm-hero{padding-top:50px}.firm-hero h1{font-size:48px}.firm-hero p{font-size:13px}.firm-hero .actions{gap:18px}.firm-movie{padding-left:15px;padding-right:15px}}
.pricing-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.price-card{background:white;border:1px solid var(--line);border-radius:12px;padding:30px 26px;display:flex;flex-direction:column}.price-card.featured{background:#edf2e7;border-color:#b9c9ae}.price-card h2{font-size:27px;min-height:66px;margin:21px 0 24px}.price-card .eyebrow{font-size:8px}.quote-price{font:29px 'Google Sans Flex',Arial,sans-serif;letter-spacing:-.03em;min-height:63px;display:flex;align-items:center}.price-card p{font-size:10px;color:var(--muted);margin:10px 0}.price-card ul{list-style:none;padding:22px 0;margin:12px 0 20px;border-top:1px solid var(--line);font-size:11px;line-height:1.7;display:grid;gap:16px}.price-card li{padding-left:20px;position:relative}.price-card li::before{content:'✓';position:absolute;left:0;color:#618174}.price-card .button{margin-top:auto}.outline{border-color:#bfcfc3}.outline:hover{background:#eef2e8}.price-card small{font-size:9px;line-height:1.7;color:var(--muted);margin-top:17px}.service-note{padding-top:44px;text-align:center}.service-note h3{font-size:23px;margin:0}.service-note p{font-size:12px;color:var(--muted);line-height:1.7}.clean-site section[id]{scroll-margin-top:100px}.clean-site .nav-links>a:last-child{display:none}
@media(max-width:850px){.pricing-grid{grid-template-columns:1fr;max-width:600px}.price-card h2{min-height:0}.price-card{padding:30px}.price-card ul{margin-top:10px}.price-card .eyebrow{font-size:9px}.price-card li{font-size:13px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.metrics path{stroke-dashoffset:0}}
.motion-actions{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;background:#edf2eb;border-top:1px solid #d5e0d4}.motion-actions button{border:1px solid #bdcdbf;border-radius:6px;background:white;color:#244a42;min-height:40px;min-width:65px;font-size:11px;cursor:pointer}.motion-actions button:hover{background:#e9f16d}
.wordmark{display:inline-flex;flex-shrink:0}.wordmark .brand-mark{display:block;width:116px;height:30px;margin:0;background:#173b40;mask:url(/assets/vacei-word-mask.png?v=31c81e3068) center/contain no-repeat;-webkit-mask:url(/assets/vacei-word-mask.png?v=31c81e3068) center/contain no-repeat}
.motion-frame::before{content:"Loading animated walkthrough…";position:absolute;inset:0;display:grid;place-items:center;background:#193e40;color:#c6d7cf;font:12px Inter,sans-serif;z-index:2;pointer-events:none}.motion-frame.motion-ready::before{display:none}
/* Keep every navigation destination reachable on short phone screens. The
   header stays beside its close control while the links scroll independently. */
@media(max-width:1024px){
  body.clean-site .mobile-toggle{min-height:44px;padding:10px 14px;gap:12px;border:1px solid var(--line);border-radius:999px;font-size:14px;cursor:pointer}
  .mobile-toggle span{display:inline-flex;justify-content:center;width:18px;font-size:18px;line-height:1}
  html.clean-menu-open{overflow:hidden}
  html.clean-menu-open body.clean-site{overflow:hidden;padding-top:74px}
  html.clean-menu-open body.clean-site .clean-nav{position:fixed!important;top:0!important;left:0;right:0;z-index:1100;background:#fff!important;--logo-color:#173b40;color:#173b40}
  html.clean-menu-open .mobile-toggle{color:#173b40!important}
  body.clean-site #clean-mobile{position:fixed;top:74px;bottom:0;max-height:calc(100dvh - 74px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:12px 20px max(24px,env(safe-area-inset-bottom))}
  body.clean-site #clean-mobile a{display:flex;align-items:center;min-height:48px;padding:12px 8px;line-height:1.5}
  html.clean-menu-open body.clean-site #clean-mobile .button{justify-content:space-between;min-height:52px;margin-top:12px;padding:12px 16px}
}

/* /brand-refinement.css */
/* Original Vacei cover palette and rounded surfaces, with the clearer page structure. */
.clean-site{--paper:#fafbf9;--lime:#e9f16d;--cover-1:#33646e;--cover-2:#4e7b84;--cover-3:#6b939b;--cover-4:#8faeb3}
.clean-site .button{border-radius:999px}
.clean-site .hero.wrap{max-width:none;padding-left:max(48px,calc((100vw - 1144px)/2));padding-right:max(48px,calc((100vw - 1144px)/2));background:radial-gradient(ellipse at 80% 0%,#ffffff22,transparent 60%),linear-gradient(112deg,var(--cover-1),var(--cover-2) 48%,var(--cover-4));border-radius:0 0 34px 34px;position:relative;overflow:hidden;padding-top:78px;padding-bottom:84px}
.hero-copy{position:relative;z-index:1}.hero-copy h1{color:#fff;font-weight:400}.hero-copy h1 em{color:#e7eee2}.hero-copy>.eyebrow{color:#e0e9e8}.hero-copy>.eyebrow i{background:var(--lime)}.hero-copy>p{color:#f0f5f2}.hero-copy .micro{color:#e2ece8}.hero-copy .text-link{color:#fff}.hero-copy .firm-shortcut{border-color:#ffffff38;color:#fff}.hero-product{transform:none;border-radius:22px;border:1px solid #ffffff66;box-shadow:0 28px 80px #153b4030}.hero-product .window-bar{background:#f4f6f2;border-radius:22px 22px 0 0}.hero-product .floating-note{background:#143c3f;border:1px solid #ffffff38;border-radius:999px;right:22px;bottom:-20px}.clean-site .connection-strip{border-top:0;margin-top:12px}.clean-site .firm-section{background:radial-gradient(ellipse at 0 0,#6b939b44,transparent 65%),linear-gradient(120deg,#254f59,#173a43 60%,#122d33)}.clean-site .portal-stack>a{border-color:#ffffff25}.clean-site .portal-stack>a:hover{background:#ffffff05}.clean-site .closing{background:radial-gradient(ellipse at 100% 0%,#d4e2df 0%,transparent 70%),#eef3ed;border-radius:24px}.clean-site .product-grid article{border-radius:20px;background:#edf2ef;border:1px solid #dfe8e0}.clean-site .price-card{border-radius:20px}.clean-site .tour-shell{border-radius:22px}.clean-site .price-card.featured{border-color:#789c8f;background:linear-gradient(145deg,#eaf2e6,#f3f6ed)}
body[data-page="for-firms"] .firm-hero,body[data-page="books"] .firm-hero,body[data-page="bookkeeping"] .firm-hero,body[data-page="audit"] .firm-hero{max-width:none;background:radial-gradient(ellipse at 85% 0%,#ffffff18,transparent 60%),linear-gradient(112deg,#33646e,#4e7b84 62%,#6b939b);padding-top:66px;padding-bottom:115px;border-radius:0 0 34px 34px;color:white}
body[data-page="for-firms"] .firm-hero h1,body[data-page="books"] .firm-hero h1,body[data-page="bookkeeping"] .firm-hero h1,body[data-page="audit"] .firm-hero h1{font-size:clamp(46px,5.6vw,72px)}
body[data-page]:not([data-page="pricing"]) .firm-hero h1 em{color:#e0eade}
body[data-page]:not([data-page="pricing"]) .firm-hero>p,body[data-page]:not([data-page="pricing"]) .firm-hero>small{color:#edf3ee}
body[data-page]:not([data-page="pricing"]) .firm-hero .eyebrow{color:#dde9e3}
body[data-page]:not([data-page="pricing"]) .firm-hero .eyebrow i{background:var(--lime)}
.firm-hero+.firm-movie{margin-top:-55px;position:relative;z-index:1}.firm-movie .motion-frame{border:1px solid #ffffff40;border-bottom:0;border-radius:22px 22px 0 0;box-shadow:0 20px 65px #183b4015}.firm-movie .tour-caption{border-radius:0 0 22px 22px}
.clean-site .tour-tabs{background:#e8efeb}.clean-site .motion-actions{background:#edf2ee}.clean-site .firm-shortcut:hover{text-decoration:underline;text-underline-offset:4px}
@media(max-width:1100px){.clean-site .clean-nav{gap:20px}.clean-site .nav-links{gap:17px;font-size:12px}.clean-site .nav-actions{gap:15px}.clean-site .hero.wrap{gap:35px}.clean-site .hero h1{font-size:58px}}
@media(max-width:1024px){.clean-site .nav-links,.clean-site .nav-actions{display:none}.clean-site .mobile-toggle{display:flex;margin-left:auto;gap:20px;align-items:center;background:transparent;border:0;font-size:12px;padding:12px 0;color:var(--ink)}.clean-site .clean-nav{height:74px;padding:0 26px}.clean-site #clean-mobile{position:absolute;top:74px;left:0;right:0;background:var(--paper);padding:18px 26px 26px;border-bottom:1px solid var(--line);box-shadow:0 20px 30px #173b4015}.clean-site #clean-mobile a{display:block;padding:13px 0;font-size:15px}.clean-site #clean-mobile a.button{display:flex;justify-content:center;margin-top:14px;padding:15px 22px}}
@media(max-width:850px){.clean-site .hero.wrap{padding:48px 26px 65px;gap:46px;border-radius:0 0 26px 26px}.clean-site .hero h1{font-size:62px}.hero-product{width:100%}.hero-copy .firm-shortcut{max-width:500px}.clean-site .connection-strip{margin-top:0}.firm-hero+.firm-movie{margin-top:-42px}body[data-page="for-firms"] .firm-hero,body[data-page="books"] .firm-hero,body[data-page="bookkeeping"] .firm-hero,body[data-page="audit"] .firm-hero{padding-top:50px;padding-bottom:88px;border-radius:0 0 26px 26px}}
@media(max-width:540px){.clean-site .hero h1{font-size:52px}.hero-product .floating-note{right:10px;font-size:8px;padding:13px 15px}.clean-site .hero-copy .micro{font-size:9px}body[data-page="for-firms"] .firm-hero h1,body[data-page="books"] .firm-hero h1,body[data-page="bookkeeping"] .firm-hero h1,body[data-page="audit"] .firm-hero h1{font-size:46px}.clean-site .connection-strip{padding-top:26px;padding-bottom:26px}}
@media(max-width:850px){.clean-site .hero.wrap{background:radial-gradient(ellipse at 100% 0%,#ffffff0a,transparent 60%),linear-gradient(140deg,#2d5963,#416e78)}body[data-page="for-firms"] .firm-hero,body[data-page="books"] .firm-hero,body[data-page="bookkeeping"] .firm-hero,body[data-page="audit"] .firm-hero{background:linear-gradient(135deg,#2d5963,#416e78)}}

/* /signature-motion.css */
/* Teal sampled from the supplied logo reference; no pale blue overlay. */
.clean-site{--vacei-teal-start:#346a76;--vacei-teal-mid:#376c79;--vacei-teal-end:#3b717e;--vacei-cover:linear-gradient(112deg,var(--vacei-teal-start),var(--vacei-teal-mid) 50%,var(--vacei-teal-end));--logo-color:#173b40}
.clean-site .clean-nav{background:var(--vacei-cover);border-bottom:1px solid #ffffff18;color:#fff;--logo-color:#fff;backdrop-filter:none}
.clean-site .nav-links a{color:#fff!important}.clean-site .nav-links .svc-menu a{color:#173b40!important}.clean-site .mobile-toggle{color:#fff}.clean-site #clean-mobile{background:var(--vacei-cover);border-color:#ffffff30;color:#fff}
.clean-site .wordmark{display:inline-flex;align-items:center;gap:13px;min-width:132px;height:42px;letter-spacing:0}
.clean-site .wordmark .brand-symbol{display:block;flex:none;width:41px;height:41px;margin:0;background:var(--logo-color);mask:url('/assets/vacei-v-mask.png?v=6091836562') center/contain no-repeat;-webkit-mask:url('/assets/vacei-v-mask.png?v=6091836562') center/contain no-repeat}
.clean-site .wordmark .brand-divider{display:block;flex:none;width:1px;height:33px;margin:0;background:var(--logo-color);opacity:.4}
.clean-site .wordmark .brand-mark{display:block;flex:none;width:66px;height:18px;margin:0;background:var(--logo-color);mask:url('/assets/vacei-word-mask.png?v=31c81e3068') center/contain no-repeat;-webkit-mask:url('/assets/vacei-word-mask.png?v=31c81e3068') center/contain no-repeat}
.clean-site .hero.wrap{background:var(--vacei-cover);border-radius:0;transform-origin:50% 40%;will-change:transform,border-radius;min-height:calc(100svh - 88px);padding-top:48px;padding-bottom:64px}
.hero-scroll-stage{position:relative;height:128svh;background:#edf2ed}.clean-site .hero-scroll-stage>.hero{position:sticky;top:88px}.hero-scroll-stage .hero-copy,.hero-scroll-stage .hero-product{will-change:transform,opacity}
.clean-site .hero h1 em{color:#e5eeea}.clean-site .hero-product{box-shadow:0 20px 60px #13373e22}.clean-site .hero-product .floating-note{box-shadow:none}
body[data-page="for-firms"] .firm-hero,body[data-page="books"] .firm-hero,body[data-page="bookkeeping"] .firm-hero,body[data-page="audit"] .firm-hero{background:var(--vacei-cover)}
.clean-site .firm-section{background:var(--vacei-cover)}
.intro-scroll-stage{height:168svh;position:relative;background:#fafbf9;margin:0;z-index:2}
.intro-sticky{height:100svh;position:sticky;top:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;overflow:hidden;padding:16px 0}
.intro-heading{text-align:center;flex:none}.intro-heading .eyebrow{justify-content:center;font-size:9px}.intro-heading h2{font-size:32px;margin-top:10px;letter-spacing:-.035em}
.intro-media{width:min(calc(100vw - 48px),1600px,calc((100svh - 170px)*1.77778));flex:none;transform:scale(.86);transform-origin:50% 50%;will-change:transform;perspective:1200px}
.intro-tilt{overflow:hidden;border-radius:24px;background:#15373f;box-shadow:0 22px 65px #183b401f;transform:rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .18s ease-out;will-change:transform;border:1px solid #d5e1dd}
.intro-media video{display:block;width:100%;aspect-ratio:16/9;background:#15373f;object-fit:contain}
.intro-film-controls{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 18px;background:#fff;color:#173b40}
.intro-film-controls>span{font-size:11px}.intro-film-controls>div{display:flex;gap:8px}.intro-film-controls button{border:1px solid #d4dfd7;border-radius:999px;background:#f6f8f4;color:#173b40;min-height:40px;padding:0 17px;font-size:11px;cursor:pointer}.intro-film-controls button:hover{background:#e9f16d}.intro-film-controls button:last-child{background:#e9f16d;border-color:#e9f16d}
.intro-skip{font-size:11px;font-weight:500;padding:10px;flex:none}.intro-skip:hover{text-decoration:underline;text-underline-offset:4px}
@media(max-width:1100px){.clean-site .hero h1{font-size:54px}.clean-site .clean-nav{gap:22px}.clean-site .nav-links{gap:15px}}
@media(max-width:1024px){.clean-site .hero-scroll-stage>.hero{top:74px}.clean-site .hero.wrap{min-height:calc(100svh - 74px)}.intro-sticky{top:0;height:100svh}}
@media(max-width:850px){.hero-scroll-stage{height:auto;padding-bottom:40px}.clean-site .hero-scroll-stage>.hero{position:relative;top:0}.clean-site .hero.wrap{padding-top:42px;padding-bottom:58px;min-height:0;border-radius:0;transform-origin:50% 15%}.clean-site .hero h1{font-size:58px}.intro-scroll-stage{height:135svh}.intro-sticky{gap:20px}.intro-media{width:calc(100vw - 28px)}.intro-heading h2{font-size:29px}.intro-film-controls{padding:12px;flex-wrap:wrap;justify-content:center}.intro-film-controls>span{display:none}.intro-film-controls button{font-size:11px;padding:0 15px;min-height:42px}.intro-tilt{box-shadow:0 16px 35px #183b401a}}
@media(max-width:540px){.clean-site .wordmark{min-width:126px;gap:12px}.clean-site .wordmark .brand-symbol{width:37px;height:37px}.clean-site .wordmark .brand-mark{width:62px;height:17px}.clean-site .hero h1{font-size:51px}.intro-scroll-stage{height:auto;padding:40px 0}.intro-sticky{position:relative;height:auto}.intro-heading h2{font-size:27px}.intro-media{width:calc(100vw - 20px)}.intro-heading .eyebrow{font-size:8px}}
@media(prefers-reduced-motion:reduce){.hero-scroll-stage{height:auto;padding-bottom:0}.clean-site .hero-scroll-stage>.hero{position:relative;top:0}.clean-site .hero.wrap{transform:none!important;box-shadow:none!important;border-radius:0!important}.hero-scroll-stage .hero-copy,.hero-scroll-stage .hero-product{transform:none!important;opacity:1!important}.intro-scroll-stage{height:auto;padding:45px 0}.intro-sticky{height:auto;position:relative;top:0;overflow:visible}.intro-media,.intro-tilt{transform:none!important}.intro-media{will-change:auto}.intro-skip{margin-top:12px}}

/* /fonts/google-sans-flex.css */
/* Google Sans Flex (opsz 8-144, wght 400-600), self-hosted so first paint never waits on two Google
   origins and an @import chain. The same woff2 subsets and descriptors that
   fonts.googleapis.com/css2?family=Google+Sans+Flex:opsz,wght@8..144,400..600&display=swap served on
   2026-10-04 (v23). SIL Open Font License 1.1: fonts/google-sans-flex/OFL.txt.
   Each unicode-range is the range Google served cut down to the characters its file can draw (perf,
   2026-10-05). Google declares one generic range per subset, wider than the file: the arrows and marks
   the pages use (↗ → ☰ ✓) sit in the symbols and math ranges, but neither file has them, so every
   page downloaded both (106 KB) and laid its text out again as each arrived, only for those characters
   to fall back to the next font, as they always did and still do. A browser downloads a subset only
   for a character it can draw now; what each character renders in is unchanged. The pages whose hero
   fade waits for the face (index, outsourced-audit, outsourced-bookkeeping) preload latin.woff2. */
/* canadian-aboriginal */
@font-face {
  font-family: 'Google Sans Flex';
  font-style: normal;
  font-weight: 400 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(/fonts/google-sans-flex/canadian-aboriginal.woff2?v=e08ee6f354) format('woff2');
  unicode-range: U+02C7, U+02D8-02D9, U+02DB, U+0307, U+25CC;
}
/* cherokee */
@font-face {
  font-family: 'Google Sans Flex';
  font-style: normal;
  font-weight: 400 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(/fonts/google-sans-flex/cherokee.woff2?v=6b3490a7ae) format('woff2');
  unicode-range: U+0300-0302, U+0304, U+030B-030C, U+0323;
}
/* math */
@font-face {
  font-family: 'Google Sans Flex';
  font-style: normal;
  font-weight: 400 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(/fonts/google-sans-flex/math.woff2?v=8edb70172d) format('woff2');
  unicode-range: U+0302-0303, U+0307-0308, U+0312, U+0326-0327, U+03BC, U+2070, U+2074-2079, U+207B, U+2080-2089, U+221A, U+2248, U+2260, U+2264-2265, U+25CC, U+1D6E1;
}
/* nushu */
@font-face {
  font-family: 'Google Sans Flex';
  font-style: normal;
  font-weight: 400 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(/fonts/google-sans-flex/nushu.woff2?v=ff5eb9902b) format('woff2');
  unicode-range: U+2003;
}
/* symbols */
@font-face {
  font-family: 'Google Sans Flex';
  font-style: normal;
  font-weight: 400 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(/fonts/google-sans-flex/symbols.woff2?v=5f8652229f) format('woff2');
  unicode-range: U+25CC, U+2780-2788, U+278A-2792;
}
/* syriac */
@font-face {
  font-family: 'Google Sans Flex';
  font-style: normal;
  font-weight: 400 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(/fonts/google-sans-flex/syriac.woff2?v=6798ed6146) format('woff2');
  unicode-range: U+0303-0304, U+0307-0308, U+030A, U+0323, U+25CC;
}
/* tifinagh */
@font-face {
  font-family: 'Google Sans Flex';
  font-style: normal;
  font-weight: 400 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(/fonts/google-sans-flex/tifinagh.woff2?v=a8f291a3f2) format('woff2');
  unicode-range: U+02C7, U+0301-0302, U+0304, U+0306-0307, U+0309, U+0323, U+25CC;
}
/* vietnamese */
@font-face {
  font-family: 'Google Sans Flex';
  font-style: normal;
  font-weight: 400 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(/fonts/google-sans-flex/vietnamese.woff2?v=29d89e7c75) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+1EA0-1EF9;
}
/* latin-ext */
@font-face {
  font-family: 'Google Sans Flex';
  font-style: normal;
  font-weight: 400 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(/fonts/google-sans-flex/latin-ext.woff2?v=a6d71eae2e) format('woff2');
  unicode-range: U+0100-0107, U+010A-0113, U+0116-011B, U+011E-0123, U+0126-012B, U+012E-0130, U+0132-0133, U+0136-0137, U+0139-0148, U+014C-014D, U+0150-0151, U+0154-015B, U+015E-0165, U+0168-017E, U+0181, U+018A, U+018F, U+0198-0199, U+01A0-01A1, U+01AF-01B0, U+01B3-01B4, U+01CD-01CE, U+0218-021B, U+0237, U+0253, U+0257, U+0259, U+02C7, U+02DD, U+02E3, U+0304, U+0308, U+1E44-1E45, U+1E62-1E63, U+1E80-1E85, U+1E9E, U+1EF2-1EF9, U+20A9, U+20B9;
}
/* latin */
@font-face {
  font-family: 'Google Sans Flex';
  font-style: normal;
  font-weight: 400 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(/fonts/google-sans-flex/latin.woff2?v=6ea3d11623) format('woff2');
  unicode-range: U+000D, U+0020-007E, U+00A0-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+2002, U+2009, U+200B, U+2013-2014, U+2018-201A, U+201C-201E, U+2022, U+2026, U+2039-203A, U+2044, U+20AC, U+2122, U+2212;
}

/* /minimal-design.css */
/* One typographic system across product pages, campaigns and service forms. */
.legacy-minimal .hero2{display:block!important;max-width:900px!important;text-align:center;margin:auto}.legacy-minimal .hero2>div:nth-child(2){display:none!important}.legacy-minimal .hero2 h1,.legacy-minimal .hero2 p{margin-left:auto!important;margin-right:auto!important}.legacy-minimal .hero2 h1{max-width:20ch}.legacy-minimal .hero2>div>div:has(>a){justify-content:center}.legacy-minimal .hero2>div>p:last-child:has(a[href="/health-check"]){display:none}.legacy-minimal .site-bar .nav-links{margin-left:auto!important;margin-right:20px!important}.legacy-minimal .site-bar .nav-cta{background:#e9f16d!important;min-height:48px!important;font-weight:500!important}.legacy-minimal .quiet-video{margin:32px auto 0;max-width:1000px;border-radius:24px!important;overflow:hidden;position:relative;box-shadow:none!important;cursor:default!important}.legacy-minimal .quiet-video video{display:block;width:100%;border-radius:24px}.legacy-minimal footer{background:#173b40!important}
:root{--font-marketing:'Google Sans Flex',Arial,sans-serif;--font-body:'Google Sans Flex',Arial,sans-serif}
body.clean-site,body.legacy-minimal{font-family:'Google Sans Flex',Arial,sans-serif;--paper:#fafbf9;--ink:#173b40;--body:#465d60;--muted:#607174;--brand:#346a76;--cover-1:#346a76;--cover-2:#376c79;--cover-3:#386d7a;--cover-4:#3b717e}
.clean-site h1,.clean-site h2,.clean-site h3,.legacy-minimal h1,.legacy-minimal h2,.legacy-minimal h3{font-family:'Google Sans Flex',Arial,sans-serif!important;font-weight:400!important;text-wrap:balance;letter-spacing:-.045em!important}
.clean-site .eyebrow{font-size:12px;text-transform:none;letter-spacing:.02em;font-weight:400}
.clean-site .hero.wrap{display:flex;justify-content:center;text-align:center;min-height:calc(92svh - 88px);padding-top:90px;padding-bottom:95px}
.clean-site .hero-copy{width:100%;max-width:1000px}.clean-site .hero h1{font-size:clamp(48px,6.6vw,94px);line-height:1.05;letter-spacing:-.055em;margin:28px 0}
.clean-site .hero-copy>.eyebrow,.clean-site .hero-copy .actions{justify-content:center}.clean-site .hero-copy>p{max-width:550px;margin-left:auto;margin-right:auto;font-size:17px;line-height:1.6}.clean-site .hero-copy .micro{font-size:12px}.clean-site .hero-copy .firm-shortcut{margin:35px auto 0;border:0;padding:0;max-width:none;font-size:13px;color:#e1ece9}
.type-line{display:inline-grid;position:relative;max-width:100%}.type-reserve{visibility:hidden;grid-area:1/1}.type-visible{grid-area:1/1}.type-visible.typing:after{content:'';display:inline-block;height:.82em;width:2px;background:currentColor;margin-left:5px;animation:caret .7s step-end infinite}@keyframes caret{50%{opacity:0}}
.clean-site .firm-hero{padding:85px 28px 110px!important;max-width:none!important;background:linear-gradient(112deg,#346a76,#376c79 50%,#3b717e)!important;color:white!important;border-radius:0 0 32px 32px}
.clean-site .firm-hero h1{font-size:clamp(44px,5.8vw,80px)!important;max-width:950px;margin-left:auto;margin-right:auto}.clean-site .firm-hero h1 em,.clean-site .firm-hero>p,.clean-site .firm-hero>small,.clean-site .firm-hero .eyebrow{color:#e5eeea!important}.clean-site .firm-hero>p{max-width:620px;font-size:17px;line-height:1.65}.clean-site .firm-hero .text-link{color:white}
.clean-site .product-grid article{background:transparent;border:0;border-top:1px solid #dce3de;border-radius:0;padding-left:0;padding-right:20px}.clean-site .section{padding-top:100px;padding-bottom:75px}.clean-site .closing{background:#eef3ef;box-shadow:none}.clean-site .tour-shell{border:0;background:transparent}.clean-site .tour-tabs{background:transparent;border:0;padding:0 0 16px}.clean-site .tour-tabs button{border-radius:999px;text-align:center;justify-content:center}.clean-site .motion-frame{aspect-ratio:16/9;border:0!important;border-radius:24px!important;overflow:hidden;box-shadow:none!important}.clean-site .tour-caption{background:transparent!important;border:0!important;padding:20px 4px}.clean-site .tour-caption>span{font-size:11px;color:#657675}.clean-site .motion-actions{display:none}.clean-site .firm-movie{max-width:1100px}
.landing-film{position:relative;aspect-ratio:16/9;border-radius:24px;overflow:hidden;background:#14353d}.landing-film iframe{display:block;width:100%;height:100%;border:0}.clean-site .firm-movie .landing-film{border:1px solid #ffffff30}
.intro-tilt{position:relative;box-shadow:none!important;border:0!important}.intro-play{position:absolute;inset:0;width:100%;height:100%;border:0;background:transparent;color:#173b40;cursor:none}.play-cursor{position:absolute;left:var(--cursor-x,50%);top:var(--cursor-y,50%);transform:translate(-50%,-50%);padding:18px 25px;display:flex;align-items:center;gap:13px;white-space:nowrap;border-radius:999px;background:#ffffffed;backdrop-filter:blur(12px);font-size:14px;pointer-events:none;box-shadow:0 4px 22px #0001}.play-cursor>span{font-size:11px}.intro-play:focus-visible{outline:3px solid #e9f16d;outline-offset:-7px}.intro-play:focus-visible .play-cursor{left:50%;top:50%}.intro-dialog{padding:0;width:min(1200px,94vw);max-width:94vw;background:#101819;border:0;border-radius:24px;overflow:visible;color:white}.intro-dialog::backdrop{background:#071316dd;backdrop-filter:blur(15px)}.intro-dialog video{display:block;width:100%;max-height:80svh;border-radius:24px}.intro-close{position:absolute;right:0;top:-48px;border:0;color:white;background:transparent;padding:10px 0;cursor:pointer;font-size:14px}html:has(.intro-dialog[open]){overflow:hidden}
/* Older pages retain their forms and tools, with the same quieter visual treatment. */
body.legacy-minimal{margin:0;background:#fafbf9!important;color:#173b40}.legacy-minimal :is(h1,h2,h3,p,a,button,input,select,textarea){font-family:'Google Sans Flex',Arial,sans-serif!important}.legacy-minimal .site-bar{min-height:88px;background:linear-gradient(112deg,#346a76,#3b717e)!important;box-shadow:none!important;border-bottom:1px solid #ffffff18}.legacy-minimal [data-screen-label="Hero"]{background:linear-gradient(112deg,#346a76,#376c79 50%,#3b717e)!important;padding-top:85px!important;padding-bottom:95px!important;border-radius:0 0 32px 32px}.legacy-minimal [data-screen-label="Hero"] h1{font-size:clamp(44px,5.8vw,80px)!important;line-height:1.07!important}.legacy-minimal [data-screen-label="Hero"] h1+p{font-size:17px!important;line-height:1.65!important}.legacy-minimal [data-screen-label="Hero"]>div:first-child:not(:has(h1)){background:transparent!important;backdrop-filter:none!important;border:0!important}.legacy-minimal [data-reveal]{scroll-margin-top:105px!important}.legacy-minimal section[data-reveal]{padding-top:90px!important}.legacy-minimal [data-reveal] h2{font-size:clamp(32px,3.8vw,49px)!important}.legacy-minimal div:has(>iframe),.legacy-minimal div:has(>div>iframe){box-shadow:none!important;border-radius:24px!important}.legacy-minimal iframe{border-radius:24px}.legacy-minimal section a[style*="height:"]{border-radius:999px!important}.legacy-minimal [data-screen-label="Footer"]{background:#173b40!important}.legacy-minimal [style*="font-family: var(--font-body); background: #0F2226"]{background:#fafbf9!important}.legacy-minimal .site-bar>a:first-child span:first-child{width:41px!important;height:41px!important}.legacy-minimal .site-bar>a:first-child span:last-child{width:66px!important;height:18px!important}.legacy-minimal .site-bar>a:first-child{gap:13px!important}
@media(max-width:850px){.clean-site .hero.wrap{min-height:650px;padding:70px 22px 80px}.clean-site .hero h1{font-size:clamp(43px,7.7vw,68px)}.clean-site .hero-copy>p{font-size:16px}.clean-site .hero-copy .micro{font-size:11px}.clean-site .firm-hero{padding:62px 24px 95px!important}.clean-site .section{padding-top:65px;padding-bottom:50px}.clean-site .firm-hero>p{font-size:16px}.landing-film,.clean-site .motion-frame{border-radius:20px!important}.legacy-minimal [data-screen-label="Hero"]{padding:62px 24px 75px!important}.legacy-minimal .site-bar{min-height:74px}.legacy-minimal section[data-reveal]{padding-top:65px!important}.legacy-minimal .site-bar>a:first-child span:first-child{width:33px!important;height:33px!important}}
@media(max-width:540px){.clean-site .hero h1{font-size:clamp(34px,9vw,48px)}.clean-site .hero.wrap{min-height:610px}.clean-site .hero-copy .actions{gap:15px}.clean-site .hero-copy .firm-shortcut{font-size:12px;max-width:260px}.play-cursor{padding:14px 20px;font-size:13px}.intro-dialog,.intro-dialog video{border-radius:16px}.clean-site .firm-hero h1{font-size:43px!important}}
@media(pointer:coarse){.intro-play{cursor:pointer}.play-cursor{left:50%!important;top:50%!important}}
@media(prefers-reduced-motion:reduce){.type-visible.typing:after{animation:none}.intro-play{cursor:pointer}.play-cursor{left:50%!important;top:50%!important}}
/* Page navigation leaves the viewport with the page; it does not cover demos. */
.clean-site .clean-nav,.legacy-minimal .site-bar{position:relative!important;top:auto!important}
.clean-site .hero-scroll-stage>.hero,.clean-site .intro-sticky{top:0}

.skip-link{position:fixed;left:16px;top:12px;z-index:300;padding:10px 14px;border-radius:8px;background:#fff;color:#173b40;font-weight:600;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}
/* Older pages (body.legacy-minimal) still load the A4 Services design system. These rules put them on the Vacei brand the clean pages use. */
body.legacy-minimal{--marketing-dark:#0f2225;--shell-dark:#0f2225;--sidebar-dark:#0f2225;--brand-hover:#2a535c;--brand-glow:#6b939b;--brand-soft:#edf2ed;--brand-soft-border:#dce6df;--brand-tint:rgba(52,106,118,.08);--brand-focus:#759fa0;--sidebar-active:rgba(52,106,118,.24);--canvas:#edf2ed;--hairline:#dce6df;--hairline-soft:#e6ede8;--hairline-strong:#cfdcd4;--line:#dce6df;--line-soft:#e6ede8;--stone:#5d7073;--mute:#6b7f82;--marketing-mute:#5d7073;--lime:#e9f16d;--lime-ink:#173b40;--surface-subtle:#f3f6f3;--surface-hover:#edf2ed;--surface-quiet:#fafbf9}
body.legacy-minimal a[style*="background: var(--marketing-dark)"],body.legacy-minimal button[style*="background: var(--marketing-dark)"]{background:#e9f16d!important;color:#173b40!important;border-color:transparent!important}
body.legacy-minimal a[style*="background: var(--marketing-dark)"]:hover,body.legacy-minimal button[style*="background: var(--marketing-dark)"]:hover{background:#dde65a!important;color:#173b40!important}
body.legacy-minimal footer.clean-footer{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:40px;padding:56px max(48px,calc((100% - 1144px)/2)) 28px;background:#f8f9f5!important;color:#173b40;font-family:'Google Sans Flex',Arial,sans-serif}
body.legacy-minimal .clean-footer p{font-size:12px;line-height:1.8;color:#607174;margin:20px 0 0}
body.legacy-minimal .clean-footer b{font-size:11px;font-weight:600;display:block;margin:7px 0 20px}
body.legacy-minimal .clean-footer>div>a:not(.wordmark){display:block;font-size:11px;color:#607174;margin-top:14px}
body.legacy-minimal .clean-footer>div>a:not(.wordmark):hover{color:#173b40}
body.legacy-minimal .clean-footer .footer-note{grid-column:1/-1;margin:0}
body.legacy-minimal .clean-footer .footer-bottom{border-top:1px solid #dce3de;padding-top:25px;grid-column:1/-1;display:flex;align-items:center;gap:24px;font-size:12px;color:#607174}
body.legacy-minimal .clean-footer .footer-bottom span{margin-right:auto}
body.legacy-minimal .clean-footer .footer-bottom a{color:#607174}
body.legacy-minimal .clean-footer .wordmark{--logo-color:#173b40;display:inline-flex;align-items:center;gap:13px;min-width:132px;height:42px}
body.legacy-minimal .clean-footer .wordmark .brand-symbol{display:block;flex:none;width:41px;height:41px;background:var(--logo-color);mask:url('/assets/vacei-v-mask.png?v=6091836562') center/contain no-repeat;-webkit-mask:url('/assets/vacei-v-mask.png?v=6091836562') center/contain no-repeat}
body.legacy-minimal .clean-footer .wordmark .brand-divider{display:block;flex:none;width:1px;height:33px;background:var(--logo-color);opacity:.4}
body.legacy-minimal .clean-footer .wordmark .brand-mark{display:block;flex:none;width:66px;height:18px;background:var(--logo-color);mask:url('/assets/vacei-word-mask.png?v=31c81e3068') center/contain no-repeat;-webkit-mask:url('/assets/vacei-word-mask.png?v=31c81e3068') center/contain no-repeat}
@media(max-width:850px){body.legacy-minimal footer.clean-footer{gap:25px;padding:48px 26px 96px}}
@media(max-width:540px){body.legacy-minimal footer.clean-footer{grid-template-columns:1fr 1fr}body.legacy-minimal .clean-footer>div:first-child{grid-column:1/-1}body.legacy-minimal .clean-footer .footer-bottom{flex-wrap:wrap;gap:16px}body.legacy-minimal .clean-footer .footer-bottom span{width:100%}}
/* Four assurance cards need a full row at phone widths: two columns made the
   audit page wider than a 320px screen. Keep the same shared service layout. */
@media(max-width:560px){
  .legacy-minimal .g4{grid-template-columns:minmax(0,1fr)}
}
/* Comfortable form controls without shrinking the text when the keyboard opens. */
@media(max-width:640px){
  body.legacy-minimal :is(.finput,.bd-i,.bdp-input){min-height:48px;font-size:16px}
  body.legacy-minimal .nav-drawer-panel{overscroll-behavior:contain;max-height:100dvh}
  body.legacy-minimal .nav-drawer-head{position:sticky;top:0;z-index:1;background:#fff;padding-block:4px}
  body.legacy-minimal :is(.nav-drawer,nav[data-screen-label="Mobile menu"]){z-index:1100}
}


/* /firm-os.css */
/* Vacei, the operating system for firms (2026-10-01): the homepage as a film.
   As on a4.com.mt, the page alternates pinned scroll films (the Vacei film's chapters,
   played by film/os-film.js) with static sections, and ends on the film's end card.
   Vacei's own brand throughout: Google Sans Flex at 400, the teal cover, ink #173b40,
   deep #0f2226, lime only as a fill under ink text or as the highlighter, sage surfaces.
   Loaded after the shared clean-site sheets. */
.os{--os-deep:#0f2226;--os-ink:#173b40;--os-teal:#346a76;--os-lime:#e9f16d;--os-sage:#edf2ed;--os-off:#fafbf9;--os-line:#dce3de;--os-body:#465d60;--os-muted:#607174;--os-on-dark:#b7cdd0;--os-pad:clamp(96px,11vw,168px)}
.os main{background:var(--os-off)}
.os :is(h1,h2,h3){font-weight:400!important}
.os-wrap{max-width:1240px;margin:0 auto;padding:0 48px}
.os-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* The one emphasised word: the film's lime highlighter on light, lime ink on dark. */
.os h1 em,.os h2 em{font-style:normal;background:linear-gradient(transparent 14%,var(--os-lime) 14%,var(--os-lime) 94%,transparent 94%);color:var(--os-ink);padding:0 .06em;border-radius:.08em;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.os .is-dark h2 em,.os .os-hero h1 em,.os .os-end h2 em{background:none;color:var(--os-lime);padding:0}

/* ---------- Nav: tucks away while reading down, returns on the way up ---------- */
.os .clean-nav{transition:transform .45s cubic-bezier(.22,1,.36,1)}
html.os-nav-tucked .os .clean-nav{transform:translateY(-100%)}
html[data-immersive] .os .clean-nav{transform:translateY(-100%)}
/* While a film is pinned, floating chrome steps aside (the cookie notice never does). */
html[data-immersive] :is(.vc-launcher,.vc-fab,[data-vc-launcher],#vacei-chat-launcher,.geo-banner,[data-floating-chrome]){opacity:0!important;pointer-events:none!important;transition:opacity .3s}

/* ---------- Hero: the teal cover, quiet grid ---------- */
.os-hero{position:relative;overflow:hidden;min-height:calc(100svh - 88px);display:flex;align-items:center;background:var(--vacei-cover,linear-gradient(112deg,#346a76,#376c79 50%,#3b717e));color:#fff;text-align:center}
.os-hero::before{content:'';position:absolute;inset:-64px;background-image:linear-gradient(#ffffff14 1px,transparent 1px),linear-gradient(90deg,#ffffff14 1px,transparent 1px);background-size:64px 64px;background-position:calc(50% + 32px) calc(50% + 32px);-webkit-mask-image:radial-gradient(ellipse 70% 65% at 50% 45%,#000 25%,transparent 100%);mask-image:radial-gradient(ellipse 70% 65% at 50% 45%,#000 25%,transparent 100%);pointer-events:none}
.os-hero .os-wrap{position:relative;width:100%;padding-top:72px;padding-bottom:120px}
.os-kicker{display:inline-flex;align-items:center;gap:10px;padding:7px 15px;border-radius:999px;background:#ffffff1a;border:1px solid #ffffff2e;font-size:13px;font-weight:500;letter-spacing:.01em;color:#edf2ed}
.os-kicker i{width:7px;height:7px;border-radius:50%;background:var(--os-lime)}
.os-hero h1{margin:28px auto 0;max-width:1100px;font-size:clamp(46px,7.2vw,112px)!important;line-height:1.02!important;letter-spacing:-.05em!important;color:#fff}
.os-hero h1 .type-line{display:inline-grid}
.os-hero h1 .type-line>*{grid-area:1/1}
.os-hero h1 .type-reserve{visibility:hidden}
.os-hero p.os-lead{max-width:700px;margin:30px auto 0;font-size:clamp(17px,1.5vw,20px);line-height:1.6;color:#e4eeec}
.os-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:38px}
.os-btn{display:inline-flex;align-items:center;gap:12px;min-height:56px;padding:0 28px;border-radius:999px;font-size:16px;font-weight:500;line-height:1;border:1px solid transparent;cursor:pointer;transition:transform .25s cubic-bezier(.22,1,.36,1),background .25s,border-color .25s}
.os-btn:hover{transform:translateY(-2px)}
.os-btn:focus-visible{outline:3px solid var(--os-lime);outline-offset:3px}
/* Lime is for the dark surfaces (the teal hero and end card, .is-dark). On the light sections (off-white, sage) it
   all but disappears, so the ring there is ink (review fix F5, 2026-10-08). */
.os-sec:not(.is-dark) .os-btn:focus-visible{outline-color:var(--os-ink)}
/* Plain links on light sections: the base #759fa0 ring is under 3:1 on sage and off-white (owner review, 2026-10-09). */
.os-sec:not(.is-dark) a:focus-visible{outline-color:var(--os-ink)}
.os-hero a:not(.os-btn):focus-visible{outline-color:var(--os-lime)}
.os-btn.is-lime{background:var(--os-lime);color:var(--os-ink)}
.os-btn.is-lime:hover{background:#dce661}
.os-btn.is-ghost{background:#ffffff14;border-color:#ffffff4d;color:#fff;font:inherit;font-size:16px;font-weight:500}
.os-btn.is-ghost:hover{background:#ffffff26}
.os-btn.is-ink{background:var(--os-ink);color:#fff}
.os-btn.is-ink:hover{background:var(--os-deep)}
.os-btn .os-play{width:22px;height:22px;border-radius:50%;background:var(--os-lime);display:inline-flex;align-items:center;justify-content:center}
.os-btn .os-play::before{content:'';border-left:7px solid var(--os-ink);border-top:4.5px solid transparent;border-bottom:4.5px solid transparent;margin-left:2px}
.os-hero .os-biz{display:inline-block;margin-top:26px;font-size:14px;color:#e4eeec;text-decoration:underline;text-underline-offset:5px;text-decoration-color:#ffffff59}
.os-hero .os-biz:hover{text-decoration-color:#fff}
/* The homepage hero with VEE and his team (2026-10-04; VEE alone from 2026-10-03). The copy leads on the left; on the
   right a modest cluster: VEE in the middle (150-220 px), Emma, Tom, Olivia and Sam on a loose orbit round him (56-72
   px), a thin lime line from VEE to each and a name chip, in a box no larger than 440 x 380 at 1440 wide. The markup is
   the final composition, shown as stills with no 3D (phones, tablets, Save-Data, low memory, no WebGL2) and under
   reduced motion. On desktop with 3D (vees/vees-loader.js, data-vees-media), vees/vees-hero.js plays the call once:
   while the 3D is being tried (.is-3d-loading) and while it runs (.is-3d), a teammate, its line and its chip show only
   once VEE has called it (.is-called); the engine brings the teammate in when its spot loses data-vees-hidden. The
   whole call is over, and the stage at rest, within 5 s. The lines' coordinates in index.html are drawn for this box
   (viewBox 432 x 372) and these positions. */
.os-hero.has-vee .os-wrap{display:flex;flex-direction:column;align-items:center}
.os-hero-copy{width:100%}
.os-hero-vee{--vee:72px;--mate:30px;order:-1;position:relative;width:calc(var(--vee) * 2);aspect-ratio:432/372;margin:0 auto 4px}
.os-hero-lead{position:absolute;left:50%;top:50%;width:var(--vee);translate:-50% -50%}
.os-hero-mate{position:absolute;width:var(--mate);translate:-50% -50%}
.os-hero-mate .vees-art{width:100%}
.os-hero-mate.is-nw{left:15%;top:24%}
.os-hero-mate.is-ne{left:85%;top:21%}
.os-hero-mate.is-se{left:86%;top:77%}
.os-hero-mate.is-sw{left:14%;top:79%}
/* his still, and his live halo, carry their glow to the edges of their square: round his still off on the teal (the
   star, his hop and his shadow sit well inside the solid part; his live halo fits inside the box) */
.os-hero-lead .vees-still{-webkit-mask-image:radial-gradient(closest-side,#000 74%,transparent);mask-image:radial-gradient(closest-side,#000 74%,transparent)}
.os-hero-links{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.os-hero-link{fill:none;stroke:var(--os-lime);stroke-opacity:.34;stroke-width:1.25;stroke-linecap:round;vector-effect:non-scaling-stroke;transform-box:view-box;transform-origin:50% 50%}
.os-hero-tag{position:absolute;display:none;padding:4px 10px 5px;border:1px solid #ffffff24;border-radius:999px;background:#0f222659;color:#cfe0dd;font-size:12.5px;line-height:1.25;white-space:nowrap;opacity:.86}
.os-hero-tag b{font-weight:500;color:#fff}
.os-hero-mate:is(.is-nw,.is-ne) .os-hero-tag{bottom:calc(100% + 2px)}
.os-hero-mate:is(.is-sw,.is-se) .os-hero-tag{top:calc(100% + 2px)}
.os-hero-mate:is(.is-nw,.is-sw) .os-hero-tag{left:0}
.os-hero-mate:is(.is-ne,.is-se) .os-hero-tag{right:0}
@media(max-width:640px){
  .os-hero.has-vee .os-wrap{padding-top:24px}
}
@media(min-width:1025px){
  .os-hero.has-vee{text-align:left}
  .os-hero.has-vee::after{transform:translate(22vw,-4vh)}
  .os-hero.has-vee .os-wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:clamp(24px,3vw,56px)}
  .os-hero.has-vee h1{margin:28px 0 0;font-size:clamp(46px,5.3vw,88px)!important}
  .os-hero.has-vee p.os-lead{margin:30px 0 0;max-width:600px}
  .os-hero.has-vee .os-actions{justify-content:flex-start}
  .os-hero.has-vee .os-hero-fine{margin:22px 0 0}
  .os-hero-vee{--vee:clamp(150px,15vw,220px);--mate:clamp(56px,calc(var(--vee) * .335),72px);order:0;margin:0}
  .os-hero-tag{display:block}
  /* the call (vees/vees-hero.js): held back until VEE calls each one, then the line draws out from him and the chip
     rises in; while he calls, the called lines and chips are bright, and settle to the quiet state when he is done */
  .os-hero-link{transition:transform .3s cubic-bezier(.2,.7,.2,1),stroke-opacity .6s ease}
  .os-hero-tag{transition:opacity .4s ease,translate .4s cubic-bezier(.2,.7,.2,1)}
  .os-hero-vee.is-3d-loading [data-vees-hidden] .vees-still{opacity:0}
  .os-hero-vee:is(.is-3d-loading,.is-3d) .os-hero-link:not(.is-called){transform:scale(0);stroke-opacity:0}
  .os-hero-vee:is(.is-3d-loading,.is-3d) .os-hero-mate:not(.is-called) .os-hero-tag{opacity:0;translate:0 4px}
  .os-hero-vee.is-calling .os-hero-link.is-called,.os-hero-link.is-ping{stroke-opacity:.72}
  .os-hero-vee.is-calling .is-called .os-hero-tag,.os-hero-mate.is-ping .os-hero-tag{opacity:1}
}
@media(prefers-reduced-motion:reduce){
  .os-hero-link,.os-hero-tag{transition:none}
}
.os-cue{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#d4e3e0}
.os-cue::after{content:'';width:1px;height:34px;background:linear-gradient(#fff,transparent)}

/* ---------- Scroll films ----------
   Without JavaScript a chapter is its transcript, set large on the dark surface. With it,
   film/os-film.js sets the height, pins the stage and the transcript becomes screen-reader
   text. */
.os-chapter{position:relative;background:var(--os-deep);color:#fff}
.os-chapter .os-script{max-width:1240px;margin:0 auto;padding:var(--os-pad) 48px}
.os-chapter .os-script p{margin:0 0 .5em;font-size:clamp(26px,3.6vw,52px);line-height:1.15;letter-spacing:-.035em;color:#fff}
.os-chapter .os-script p strong{font-weight:400;color:var(--os-lime)}
.os-chapter .os-script .os-script-label{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--os-on-dark);margin-bottom:28px}
.os-chapter.is-live .os-script{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.os-chapter .os-stage{display:none}
/* No `contain: paint` here: on a sticky stage Chromium then skips repaints while scrolling. */
.os-chapter.is-live .os-stage{display:block;position:sticky;top:0;height:100svh;overflow:hidden;background:var(--os-deep)}
.os-stage-inner{position:absolute;inset:0;overflow:hidden}

/* ---------- Sections between the films ---------- */
.os-sec{position:relative;padding:var(--os-pad) 0;background:var(--os-off);color:var(--os-ink)}
.os-sec.is-sage{background:var(--os-sage)}
.os-sec.is-dark{background:radial-gradient(1100px 760px at 70% 20%,#3b717e44,transparent 70%),linear-gradient(112deg,#0f2226,#173b40);color:#fff}
.os-sec.is-dark::before{content:'';position:absolute;inset:0;background-image:linear-gradient(#ffffff0b 1px,transparent 1px),linear-gradient(90deg,#ffffff0b 1px,transparent 1px);background-size:64px 64px;pointer-events:none}
.os-sec>.os-wrap{position:relative}
.os-label{display:inline-flex;align-items:center;gap:10px;font-size:13px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--os-teal)}
.os-label::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--os-teal)}
.is-dark .os-label{color:var(--os-on-dark)}
.is-dark .os-label::before{background:var(--os-lime)}
.os-head{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:56px;align-items:end;margin-bottom:64px}
.os-head h2,.os-h2{margin:18px 0 0;font-size:clamp(40px,5.4vw,84px)!important;line-height:1.03!important;letter-spacing:-.05em!important;color:inherit}
.os-head>p,.os-sub{margin:0;font-size:clamp(17px,1.4vw,19px);line-height:1.65;color:var(--os-body)}
.is-dark .os-head>p,.is-dark .os-sub{color:#d4e3e0}

/* The operating system: VEE in the middle, four portals around it. */
.os-map{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.os-core{grid-column:1/-1;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:28px;align-items:center;padding:34px 38px;border-radius:28px;background:linear-gradient(112deg,#0f2226,#173b40);color:#fff;box-shadow:0 30px 70px -40px #0f2226}
/* VEE in the core card: his still (no flat orb; the outsourcing pages show him the same way), its glow
   rounded off on the dark card as in the hero */
.os-core .os-core-vee{display:block;width:96px;height:96px;-webkit-mask-image:radial-gradient(closest-side,#000 74%,transparent);mask-image:radial-gradient(closest-side,#000 74%,transparent)}
.os-core h3{margin:0 0 8px;font-size:30px!important;letter-spacing:-.03em;color:#fff}
.os-core p{margin:0;font-size:16px;line-height:1.6;color:#d4e3e0;max-width:680px}
.os-core strong{font-weight:500;color:var(--os-ink);background:var(--os-lime);padding:10px 18px;border-radius:999px;white-space:nowrap;font-size:15px}
.os-mod{display:flex;flex-direction:column;padding:30px 28px 26px;border-radius:24px;background:#fff;border:1px solid var(--os-line);min-height:260px;transition:box-shadow .35s}
.os-mod:hover{box-shadow:0 26px 50px -30px #173b4055}
.os-num{font-size:15px;color:var(--os-teal);font-variant-numeric:tabular-nums}
.os-mod h3{margin:18px 0 10px;font-size:28px!important;letter-spacing:-.03em;color:var(--os-ink)}
.os-mod p{margin:0 0 22px;font-size:15px;line-height:1.6;color:var(--os-body)}
.os-mod a{margin-top:auto;font-size:15px;font-weight:500;color:var(--os-ink);text-decoration:underline;text-underline-offset:5px;text-decoration-color:#173b4040}
.os-mod a:hover{text-decoration-color:var(--os-ink)}
.os-note{margin:40px 0 0;max-width:900px;font-size:clamp(18px,1.6vw,22px);line-height:1.55;color:var(--os-body)}
.os-note strong{font-weight:400;color:var(--os-ink)}

/* Films that are watched, not scrolled: the explainers. */
.os-film{position:relative;border-radius:28px;overflow:hidden;background:#0f2226;box-shadow:0 40px 90px -50px #0f2226;aspect-ratio:16/9}
.os-film video{display:block;width:100%;height:100%;object-fit:cover}
/* A loop's poster is a lazy <img> under its video (perf, 2026-10-05): a video's poster attribute is fetched with the
   page wherever the video sits, three of them 129 KB at load on the homepage. Until a loop has a frame to show the
   video is transparent, so the image shows through exactly where and as the poster did (same frame, same cover). */
.os-film .os-film-poster{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}
.os-film .os-film-poster+video{position:relative}
.os-film-cap{margin:14px 4px 0;font-size:14px;color:var(--os-muted)}
.is-dark .os-film-cap{color:var(--os-on-dark)}

.os-steps{list-style:none;margin:56px 0 0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;counter-reset:os}
.os-steps.is-four{grid-template-columns:repeat(4,minmax(0,1fr))}
.os-steps li{counter-increment:os;padding:26px 24px;border-radius:22px;background:#fff;border:1px solid var(--os-line)}
.is-dark .os-steps li{background:#ffffff0d;border-color:#ffffff1f}
.os-steps li::before{content:counter(os,decimal-leading-zero);display:block;font-size:15px;color:var(--os-teal);margin-bottom:18px}
.is-dark .os-steps li::before{color:var(--os-lime)}
.os-steps h3{margin:0 0 8px;font-size:21px!important;letter-spacing:-.02em;line-height:1.2;color:inherit}
.os-steps h3:last-child{margin-bottom:0}
.os-steps p{margin:0;font-size:15px;line-height:1.6;color:var(--os-body)}
.is-dark .os-steps p{color:#d4e3e0}

.os-gets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.os-get{padding:32px 30px;border-radius:24px;background:#fff;border:1px solid var(--os-line)}
.os-get.is-key{background:var(--os-ink);border-color:var(--os-ink);color:#fff}
.os-ico{width:52px;height:52px;border-radius:16px;background:var(--os-sage);display:flex;align-items:center;justify-content:center;color:var(--os-teal)}
.os-get.is-key .os-ico{background:var(--os-lime);color:var(--os-ink)}
.os-ico svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.os-get h3{margin:24px 0 10px;font-size:24px!important;letter-spacing:-.025em;color:inherit}
.os-get p{margin:0;font-size:15px;line-height:1.65;color:var(--os-body)}
.os-get.is-key p{color:#d4e3e0}

.os-how{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:56px;align-items:center}
.os-cta-row{display:flex;flex-wrap:wrap;align-items:center;gap:14px 26px;margin-top:40px}
.os-link{font-size:16px;font-weight:500;color:inherit;text-decoration:underline;text-underline-offset:6px;text-decoration-color:currentColor}

/* Businesses: Vacei Books, kept as its own door. */
.os-biz-band{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:center}
.os-price{display:flex;align-items:baseline;gap:8px;margin-top:30px;font-size:64px;letter-spacing:-.05em;color:var(--os-ink)}
.os-price span{font-size:18px;letter-spacing:0;color:var(--os-muted)}
.os-fine{margin:8px 0 0;font-size:14px;color:var(--os-muted)}
.os-biz-links{display:flex;flex-direction:column;gap:12px;margin-top:22px;font-size:15px}
.os-biz-links a{color:var(--os-ink);text-decoration:underline;text-underline-offset:5px;text-decoration-color:#173b4040}

/* FAQ */
.os-faq{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:56px}
.os-faq details{border-bottom:1px solid var(--os-line)}
.os-faq summary{display:flex;justify-content:space-between;gap:20px;padding:24px 0;font-size:20px;letter-spacing:-.015em;color:var(--os-ink);cursor:pointer;list-style:none}
.os-faq summary::-webkit-details-marker{display:none}
.os-faq summary span{flex:none;width:32px;height:32px;border-radius:50%;background:var(--os-sage);display:inline-flex;align-items:center;justify-content:center;transition:transform .3s}
.os-faq details[open] summary span{transform:rotate(45deg);background:var(--os-lime)}
.os-faq details p{margin:0 0 24px;max-width:640px;font-size:16px;line-height:1.7;color:var(--os-body)}

/* The end card: the film's last frame, and the page's. */
.os-end{position:relative;overflow:hidden;min-height:100svh;display:flex;align-items:center;justify-content:center;text-align:center;background:var(--vacei-cover,linear-gradient(112deg,#346a76,#376c79 50%,#3b717e));color:#fff}
.os-end .os-lockup{display:flex;align-items:center;justify-content:center;gap:clamp(18px,2.6vw,36px);--logo-color:#fff}
.os-end .os-lockup i{display:block;background:#fff}
.os-end .os-lockup .v{width:clamp(70px,9vw,130px);aspect-ratio:1;mask:url('/assets/vacei-v-mask.png?v=6091836562') center/contain no-repeat;-webkit-mask:url('/assets/vacei-v-mask.png?v=6091836562') center/contain no-repeat}
.os-end .os-lockup .d{width:2px;height:clamp(56px,7vw,104px);opacity:.45}
.os-end .os-lockup .w{width:clamp(120px,15vw,214px);aspect-ratio:3.67;mask:url('/assets/vacei-word-mask.png?v=31c81e3068') center/contain no-repeat;-webkit-mask:url('/assets/vacei-word-mask.png?v=31c81e3068') center/contain no-repeat}
.os-end h2{margin:clamp(36px,5vw,64px) auto 0;max-width:900px;font-size:clamp(32px,4vw,58px)!important;line-height:1.1!important;letter-spacing:-.04em!important;color:#fff}
.os-end .os-actions{margin-top:44px}
.os-end small{display:block;margin-top:26px;font-size:15px;color:#e4eeec}
html.fx .os-end [data-reveal]{opacity:0;transform:translateY(12px);transition:opacity .45s cubic-bezier(.2,.7,.2,1),transform .45s cubic-bezier(.2,.7,.2,1)}
html.fx .os-end.is-in [data-reveal]{opacity:1;transform:none}

/* The full film, with sound, in a dialog. */
.os-dialog{width:min(1280px,calc(100vw - 32px));max-width:none;padding:0;border:0;border-radius:24px;background:#0f2226;overflow:hidden}
.os-dialog::backdrop{background:#0f2226d9;backdrop-filter:blur(6px)}
.os-dialog video{display:block;width:100%;aspect-ratio:16/9;background:#0f2226}
.os-dialog .os-close{position:absolute;top:12px;right:12px;z-index:2;min-height:40px;padding:0 16px;border-radius:999px;border:0;background:#ffffffe6;color:#173b40;font:inherit;font-size:14px;font-weight:500;cursor:pointer}

/* ---------- The outsourcing pages (2026-10-02) on the same parts ---------- */
.os-hero .os-hero-fine{max-width:720px;margin:26px auto 0;font-size:14px;line-height:1.7;color:#e4eeec}
.os-map.is-three{grid-template-columns:repeat(3,minmax(0,1fr))}
.os-head+.os-steps{margin-top:0}
.os-head:last-child{margin-bottom:0}
.os-film iframe{display:block;width:100%;height:100%;border:0}
.is-dark .os-get{background:#ffffff0d;border-color:#ffffff1f;color:#fff}
.is-dark .os-get p{color:#d4e3e0}
.is-dark .os-ico{background:#ffffff14;color:var(--os-lime)}
.os-end small{max-width:720px;margin-left:auto;margin-right:auto;line-height:1.7}
.os-end .os-end-lead{max-width:640px;margin:26px auto 0;font-size:clamp(17px,1.4vw,19px);line-height:1.6;color:#e4eeec}
.os-end .os-end-link{display:inline-block;margin-top:18px;font-size:15px;color:#fff;text-decoration:underline;text-underline-offset:5px;text-decoration-color:#ffffff66}
.os-end .os-end-link:hover{text-decoration-color:#fff}
/* ---------- Motion (2026-10-03): one gentle fade, once ----------
   The sections are played by os-motion.js on the homepage and the outsourcing pages. The <head>
   sets html.fx before first paint; it hides only what is about to fade in (the runtime's RISE
   groups; a test keeps the lists equal). No JavaScript, a runtime that never starts within 3.5 s,
   or reduced motion: no html.fx, nothing hidden. Nothing here moves on its own or with the
   scroll: the glows behind the cover, the dark bands and the end card are still.
   The hero (perf, 2026-10-04) plays the same fade in CSS: the same 12px rise over 450 ms on the
   same curve, as one group, once the face is in and never later than 600 ms. The <head> starts it
   (html.fx-hero) as soon as the stylesheets are in, instead of os-motion.js starting it behind
   every deferred script on the page. It starts from 1% opacity, which no eye can tell from 0 on
   the teal cover, because Chrome does not count text it first paints at opacity 0 as painted until
   the fade has ended: a fade from 0 holds the page's Largest Contentful Paint back by 450 ms. */
.os{--fx-ease:cubic-bezier(.16,1,.3,1)}
html.fx :is(.os-sec>.os-wrap>*):not(.fx-done){opacity:0}
html.fx:not(.fx-hero) :is(.os-hero .os-wrap>*, .os-hero .os-cue){opacity:0}
@keyframes fx-rise{from{opacity:.01;transform:translateY(12px)}to{opacity:1;transform:none}}
html.fx.fx-hero :is(.os-hero .os-wrap>*, .os-hero .os-cue){animation:fx-rise .45s cubic-bezier(.2,.7,.2,1) backwards}
/* Still glows behind the teal cover, the dark bands and the end card. */
.os-sec.is-dark{overflow:hidden}
.os-hero::after,.os-sec.is-dark::after,.os-end::after{content:'';position:absolute;z-index:0;left:50%;top:50%;width:1100px;height:1100px;margin:-550px 0 0 -550px;border-radius:50%;pointer-events:none;background:radial-gradient(circle,var(--fx-glow) 0,transparent 65%);transform:translate(-4vw,-6vh)}
.os-hero::after{--fx-glow:#ffffff1f}
.os-sec.is-dark::after{--fx-glow:#3b717e59;transform:translate(6vw,6vh)}
.os-end::after{--fx-glow:#e9f16d1a}
.os-hero .os-wrap,.os-sec.is-dark>.os-wrap,.os-end .os-wrap{position:relative;z-index:1}
.os-hero .os-cue{z-index:1}
.os-end .os-lockup{position:relative}
/* Answers slide open where the browser can animate to auto; elsewhere they open at once. */
@supports selector(::details-content){
  .os-faq details{interpolate-size:allow-keywords}
  .os-faq details::details-content{block-size:0;overflow-y:clip;transition:block-size .45s var(--fx-ease),content-visibility .45s allow-discrete}
  .os-faq details[open]::details-content{block-size:auto}
}
.os-get{transition:border-color .35s,box-shadow .35s}
.os-get:hover{border-color:#346a7659;box-shadow:0 24px 60px -34px #173b4040}
.is-dark .os-get:hover{border-color:#e9f16d59;box-shadow:0 24px 60px -34px #00000066}
/* ---------- Footer under the end card ---------- */
.os .clean-footer{padding-top:64px}

@media(max-width:1024px){
  .os-head,.os-how,.os-biz-band,.os-faq{grid-template-columns:1fr;gap:28px}
  .os-map{grid-template-columns:repeat(2,minmax(0,1fr))}
  .os-core{grid-template-columns:auto minmax(0,1fr)}
  .os-core strong{grid-column:1/-1;justify-self:start}
  .os-steps,.os-steps.is-four{grid-template-columns:repeat(2,minmax(0,1fr))}
  .os-gets{grid-template-columns:repeat(2,minmax(0,1fr))}
  .os-hero{min-height:calc(100svh - 74px)}
  .os-map.is-three{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
  .os-wrap,.os-chapter .os-script{padding-left:20px;padding-right:20px}
  .os-map,.os-map.is-three,.os-steps,.os-steps.is-four,.os-gets{grid-template-columns:1fr}
  .os-core{grid-template-columns:1fr;padding:28px 24px}
  .os-core .os-core-vee{width:72px;height:72px}
  .os-hero .os-wrap{padding-top:48px;padding-bottom:110px}
  .os-btn{min-height:52px;padding:0 22px;font-size:15px}
  .os-faq summary{font-size:18px}
  .os-film{border-radius:18px}
}
@media(prefers-reduced-motion:reduce){
  .os .clean-nav{transition:none}
  .os-end [data-reveal]{opacity:1;transform:none;transition:none}
  .os-mod,.os-btn{transition:none}
  .os-faq details::details-content{transition:none}
}
/* On your phone and tablet (homepage #app, 2026-10-05): the installable apps,
   prominent on the homepage, with VEE. Two real app screens, no motion. */
.os-app-band{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:56px;align-items:center}
.os-app-facts{list-style:none;margin:26px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.os-app-facts li{display:inline-flex;align-items:center;gap:9px;min-height:40px;padding:0 16px;border-radius:999px;background:#fff;border:1px solid var(--os-line);font-size:15px;color:var(--os-ink)}
.os-app-facts li::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--os-teal)}
.os-app-art{position:relative;min-height:540px;display:flex;align-items:center;justify-content:center}
.os-app-phone{width:240px;aspect-ratio:860/1864;padding:9px;border-radius:40px;background:#0a1417;box-shadow:0 40px 80px -36px #0f2226b3,inset 0 0 0 1px #ffffff1f}
.os-app-phone img{display:block;width:100%;height:100%;object-fit:cover;object-position:top;border-radius:31px}
.os-app-phone.is-back{position:absolute;transform:translate(-112px,28px) rotate(-6deg) scale(.88)}
.os-app-phone.is-front{position:relative;transform:translate(60px,0) rotate(3deg)}
.os-app-vee{position:absolute;left:0;bottom:7%;z-index:1;display:flex;align-items:center;gap:12px;max-width:300px;padding:10px 20px 10px 10px;border-radius:999px;background:#fff;border:1px solid var(--os-line);box-shadow:0 24px 50px -30px #173b4066;font-size:15px;line-height:1.35;color:var(--os-body)}
.os-app-vee img{width:56px;height:56px;flex:none;border-radius:50%;background:var(--os-sage)}
.os-app-vee b{display:block;font-weight:500;color:var(--os-ink)}
@media(max-width:1024px){
  .os-app-band{grid-template-columns:1fr;gap:28px}
  .os-app-art{min-height:500px}
}
@media(max-width:640px){
  .os-app-art{min-height:420px}
  .os-app-phone{width:180px;padding:7px;border-radius:30px}
  .os-app-phone img{border-radius:24px}
  .os-app-phone.is-back{transform:translate(-78px,22px) rotate(-6deg) scale(.88)}
  .os-app-phone.is-front{transform:translate(44px,0) rotate(3deg)}
  .os-app-vee{bottom:2%;max-width:250px;font-size:14px}
  .os-app-vee img{width:48px;height:48px}
}
/* Vacei Books, the homepage highlight (owner, 2026-10-08: a dedicated Books section). The heading, the live
   "phone to portal" illustration (books-live.css, books-live.js), three short facts as pills (owner, 12 Oct 2026: "still a lot of text"; they were four cards), then the price (owner, 2026-10-08: €5 a month per company, first month free), sign-up and A4. */
.os-books-head{max-width:980px}
.os-books-head .os-sub{margin-top:22px;max-width:640px}
.os-books-points{list-style:none;margin:28px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.os-books-points li{display:inline-flex;align-items:center;gap:9px;min-height:40px;padding:0 16px;border-radius:999px;background:#fff;border:1px solid var(--os-line);font-size:15px;color:var(--os-ink)}
.os-books-points li::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--os-teal)}
.os-books-start{margin-top:56px}
.os-books-start .os-price{margin-top:0}
/* Owner, 2026-10-19: Books has no price; the line reads "A component of your portal" and wraps on a phone. */
.os-books-start .os-price{flex-wrap:wrap;font-size:clamp(40px,10vw,64px);row-gap:2px}
.os-books-start .os-biz-links{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px 56px;margin-top:32px;padding-top:24px;border-top:1px solid var(--os-line)}
/* A light outline button, the quieter one beside an ink or lime one on a light section (owner, 2026-10-08). */
.os-btn.is-line{background:transparent;border-color:#173b4040;color:var(--os-ink);font:inherit;font-size:16px;font-weight:500}
.os-btn.is-line:hover{border-color:var(--os-ink)}
/* Your own software, part by part (#parts), straight after Books. Owner, 13 Oct 2026: it takes the place and the look
   of the homepage's payroll section (two columns; a white card of rows), with Vacei's parts as the rows: a name, and
   one short line under it. A part that is "Set up with us" for a business (truth table row 4) carries that label as a
   chip beside its name, in the /how-it-works chip's colours (os-explainer.css .osx-pill--setup). */
.os-parts{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:56px;align-items:center}
.os-parts .os-sub{margin-top:22px}
.os-parts .os-cta-row{margin-top:30px}
.os-parts-list{list-style:none;margin:0;padding:6px 28px;border-radius:24px;background:#fff;border:1px solid var(--os-line)}
.os-parts-list li{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:14px 0;border-top:1px solid var(--os-line)}
.os-parts-list li:first-child{border-top:0}
.os-parts-list b{font-weight:500;font-size:19px;letter-spacing:-.01em;color:var(--os-ink)}
.os-parts-list span{font-size:15px;line-height:1.45;color:var(--os-body)}
.os-parts-chip{display:inline-block;margin-left:10px;padding:3px 11px;border-radius:999px;background:var(--os-sage);font-size:12.5px;font-style:normal;font-weight:500;line-height:1.4;letter-spacing:0;color:var(--os-teal);vertical-align:2px;white-space:nowrap}
@media(max-width:1024px){
  .os-books-start .os-biz-links,.os-parts{grid-template-columns:1fr}
  .os-parts{gap:32px}
}
/* tablets: the stacked card is full width, so its rows sit in two columns there */
@media(min-width:641px) and (max-width:1024px){
  .os-parts-list{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:40px}
  .os-parts-list li:nth-child(2){border-top:0}
}
@media(max-width:640px){
  .os-books-start{margin-top:40px}
  .os-parts-list{padding:4px 20px}
  .os-parts-list li{padding:12px 0}
  .os-parts-list b{font-size:17px}
}

/* Phones: let the headline and next action lead, with a smaller Vee stage and
   readable spacing instead of the desktop cover's large vertical allowances. */
@media(max-width:640px){
body[data-page="index"] .os-hero{min-height:auto}
body[data-page="index"] .os-hero.has-vee .os-wrap{padding:18px 24px 42px}
body[data-page="index"] .os-hero-vee{--vee:50px;--mate:23px;margin-bottom:10px}
body[data-page="index"] .os-hero h1{font-size:clamp(36px,10.5vw,48px)!important;margin-top:20px;max-width:13ch}
body[data-page="index"] .os-hero p.os-lead{font-size:16px;line-height:1.6;margin-top:20px;max-width:36ch}
body[data-page="index"] .os-hero .os-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;max-width:360px;margin:24px auto 0}
body[data-page="index"] .os-hero .os-actions .os-btn{justify-content:center;min-height:52px}
body[data-page="index"] .os-hero .os-hero-fine{font-size:13px;line-height:1.6;margin-top:20px;text-wrap:balance}
body[data-page="index"] .os-hero .os-hero-copy .os-biz{display:flex;align-items:center;justify-content:center;width:fit-content;max-width:100%;min-height:44px;margin:12px auto 0;font-size:14px}
body[data-page="index"] .os-hero .os-hero-copy .os-biz+.os-biz{margin-top:0}
body[data-page="index"] .os-hero .os-cue{display:none}
body[data-page="index"] #how .osh-start-btn{width:44px;min-height:44px}
body[data-page="index"] .os-hero .osh-top-film{max-width:300px;margin-bottom:16px}
body[data-page="index"] .os-hero .osh-top-film .os-film-cap{font-size:12px;line-height:1.4;margin:8px 0 0}
body[data-page="index"] .os-hero:has(.osh-top-film) h1{margin-top:16px}
body[data-page="index"] .os-hero:has(.osh-top-film) p.os-lead{margin-top:16px}
body[data-page="index"] .os-hero:has(.osh-top-film) .os-actions{margin-top:20px}
}
@media(max-width:360px){
body[data-page="index"] #app .os-app-art .os-app-phone{width:160px}
body[data-page="index"] #app .os-app-art .os-app-phone.is-back{transform:translate(-58px,22px) rotateY(18deg) rotateX(6deg) rotateZ(-4deg) scale(.88)}
body[data-page="index"] #app .os-app-art .os-app-phone.is-front{transform:translate(38px,0) rotateY(-16deg) rotateX(6deg) rotateZ(2deg)}
}
/* A landscape phone needs the copy first, without the tablet cover's stage. */
@media(max-width:1024px) and (max-height:500px){
body[data-page="index"] .os-hero{min-height:auto}
body[data-page="index"] .os-hero.has-vee .os-wrap{padding:16px 24px 32px}
body[data-page="index"] .os-hero-vee{display:none}
body[data-page="index"] .os-hero h1{font-size:clamp(32px,5vw,44px)!important;max-width:none;margin-top:16px}
body[data-page="index"] .os-hero p.os-lead{font-size:16px;line-height:1.5;max-width:60ch;margin-top:16px}
body[data-page="index"] .os-hero .os-actions{display:flex;justify-content:center;margin-top:20px}
body[data-page="index"] .os-hero .os-cue{display:none}
body[data-page="index"] .os-hero.has-vee:has(.osh-top-film){text-align:left}
body[data-page="index"] .os-hero.has-vee:has(.osh-top-film) .os-wrap{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:start;gap:24px;padding-top:12px}
body[data-page="index"] .os-hero .osh-top-film{order:0;max-width:none;margin:0}
body[data-page="index"] .os-hero .osh-top-film .os-film-cap{font-size:12px;line-height:1.4;margin:8px 0 0}
body[data-page="index"] .os-hero:has(.osh-top-film) h1{font-size:clamp(26px,3.8vw,32px)!important;margin-top:12px}
body[data-page="index"] .os-hero:has(.osh-top-film) p.os-lead{font-size:14px;line-height:1.5;margin:12px 0 0}
body[data-page="index"] .os-hero:has(.osh-top-film) .os-actions{justify-content:flex-start;margin-top:16px}
body[data-page="index"] .os-hero:has(.osh-top-film) .os-actions .os-btn{min-height:44px;padding:0 14px;font-size:14px}
}
/* On a short phone, floating chat must not sit over the hero's main action. */
@media(max-width:640px) and (max-height:640px){
html.os-hero-in-view body[data-page="index"] .vc-launcher{visibility:hidden;pointer-events:none}
}

/* /film-theme.css */
/* The film theme on all 30 marketing pages (PLAN.md). Tokens, then the components */
body.clean-site,body.legacy-minimal{
/* film palette (film.jsx C) */
--ft-ink:#173b40;--ft-deep:#0f2226;--ft-deep-glow:#22555e;--ft-mid:#33646e;--ft-lime:#e9f16d;--ft-lime-ink:#1f2a0c;--ft-mint:#a9efc4;
/* text on grounds: contrast is the worst stop of each ground ($T/final/cc.py) */
--ft-body:#33494d;          /* body on any light ground: 5.97 (GRAD #b6cef5) .. 9.5 (white) */
--ft-muted:#4a5f62;         /* small secondary text: only on white/WARM/MIST/SOFT/WHITE (>=5.0); NEVER on GRAD or SKY */
--ft-on-deep:#d4e3e0;--ft-on-deep-2:#b7cdd0;   /* on DEEP: 12.4 / 9.9 */
--ft-line:#e3e9ec;--ft-skel:#edf1f4;--ft-row:#f6f8fa;--ft-page:#f7f9fc;
--ft-ok:#186246;--ft-ok-bg:#e3f1ea;--ft-payroll:#2f7fea;
/* Vee colours (vees/cast.json = film AGENTS); decoration on Vacei's own parts only */
--ft-emma:#ffd055;--ft-emma-d:#e0a81f;--ft-jack:#2fa3b8;--ft-tom:#84d9a5;--ft-tom-d:#3fae6c;--ft-sam:#63aef2;--ft-sam-d:#2f86d6;--ft-olivia:#a68bf7;--ft-olivia-d:#7d5ce8;
/* grounds (film.jsx 239-245), static; px radials converted to % of the section */
--ft-g-warm:radial-gradient(70% 75% at 8% 4%,#ffe2c4 0%,#ffe2c400 70%),radial-gradient(65% 80% at 96% 92%,#e6d9fb 0%,#e6d9fb00 72%),radial-gradient(55% 60% at 88% 10%,#ffd3d3 0%,#ffd3d300 70%),linear-gradient(160deg,#fff7ec 0%,#fdf1ee 50%,#f3edfb 100%);
--ft-g-white:radial-gradient(62.5% 74% at 50% 45%,#fff 0%,#fff 55%,#f2f5f9 100%);
--ft-g-mist:radial-gradient(70% 80% at 18% 0%,#fff 0%,#fff0 60%),radial-gradient(60% 70% at 92% 100%,#e4dcfa 0%,#e4dcfa00 70%),#d6e6f6;
--ft-g-soft:radial-gradient(62.5% 83% at 0% 0%,#e9f16d3d,#e9f16d14 45%,#e9f16d00 75%),radial-gradient(68% 93% at 100% 100%,#a68bf72b,#a68bf70d 45%,#a68bf700 75%),linear-gradient(165deg,#f8fafc 0%,#eef3f8 55%,#eaf0f8 100%);
--ft-g-grad:radial-gradient(62.5% 88% at 0% 0%,#b6cef5 0%,#b6cef566 40%,#b6cef500 72%),radial-gradient(57% 83% at 100% 0%,#d5cef7 0%,#d5cef766 40%,#d5cef700 72%),radial-gradient(73% 93% at 100% 100%,#cdeee8 0%,#cdeee866 40%,#cdeee800 72%),linear-gradient(160deg,#c6d7f6 0%,#dad7f6 50%,#dcf1ed 100%);
/* SKY mirrored: vivid on the right behind the product, copy on the light left end (ink >= 6.7) */
--ft-g-sky:radial-gradient(60% 55% at 12% 6%,#d9d6fb 0%,#d9d6fb00 70%),radial-gradient(55% 60% at 8% 96%,#d3f1fb 0%,#d3f1fb00 72%),linear-gradient(285deg,#5ba2f2 0%,#79b1f4 26%,#9dc3f6 52%,#c3d8f9 74%,#dde8fb 100%);
/* SKY on phones (<=1024): copy on top, product at the bottom */
--ft-g-sky-v:radial-gradient(70% 40% at 15% 0%,#d9d6fb 0%,#d9d6fb00 70%),linear-gradient(180deg,#dde8fb 0%,#c3d8f9 42%,#9dc3f6 74%,#79b1f4 100%);
/* film SKY as is: behind pictures only, never behind text */
--ft-g-sky-vivid:radial-gradient(60% 55% at 88% 6%,#b9b6f6 0%,#b9b6f600 70%),radial-gradient(55% 60% at 92% 96%,#bdebf8 0%,#bdebf800 72%),linear-gradient(105deg,#5ba2f2 0%,#79b1f4 38%,#9dc3f6 70%,#afcbf7 100%);
--ft-g-deep:radial-gradient(68% 70% at 62% -8%,#22555e 0%,#22555e00 70%),#0f2226;
/* shadows: film SHADOW / big card / window / Brand panels / chip / buttons */
--ft-sh-card:0 1px 2px #14326e0f,0 18px 40px -10px #14326e38;
--ft-sh-big:0 1px 2px #14326e0f,0 30px 70px -16px #14326e42;
--ft-sh-window:0 70px 140px -30px #173b404d,0 12px 34px #173b4014;
--ft-sh-3d:0 60px 120px -30px #0a285a73,0 10px 30px #0a285a1f;
--ft-sh-chip:0 10px 30px #173b401a;
--ft-sh-lime:0 18px 40px #96a02840;
--ft-sh-cta:0 22px 50px -12px #788c1e73,inset 0 2px 0 #ffffff99;
--ft-sh-on-deep:0 40px 90px -30px #0000008c,0 2px 6px #00000033;
/* gradients, radii, ease */
--ft-cta:linear-gradient(100deg,#e9f16d 0%,#d7f28c 55%,#bdf0c2 100%);
--ft-glow-text:linear-gradient(95deg,#e9f16d 10%,#a9efc4 90%);
--ft-caret:linear-gradient(180deg,#e9f16d,#5ba2f2);
--ft-r-tile:24px;--ft-r-card:30px;--ft-r-big:36px;--ft-r-stage:40px;
--ft-io:cubic-bezier(.65,0,.35,1);
/* the four-point spark (film SPARK path) */
--ft-i-spark:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23E9F16D' d='M12 0C12.9 7 17 11.1 24 12C17 12.9 12.9 17 12 24C11.1 17 7 12.9 0 12C7 11.1 11.1 7 12 0Z'/%3E%3C/svg%3E");
--ft-i-spark-ink:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%231F2A0C' d='M12 0C12.9 7 17 11.1 24 12C17 12.9 12.9 17 12 24C11.1 17 7 12.9 0 12C7 11.1 11.1 7 12 0Z'/%3E%3C/svg%3E");
/* the site's own light tokens, moved onto the film's light grounds */
--paper:#f7f9fc;--line:#e3e9ec;--muted:#4a5f62;--body:#33494d;
}
body.clean-site{--ft-nav:88px}
@media(max-width:1024px){body.clean-site{--ft-nav:74px}}
body.legacy-minimal{--ft-lnav:88px;--canvas:#f7f9fc;--surface-subtle:#f3f6fa;--surface-quiet:#f7f9fc;--hairline:#e3e9ec;--hairline-soft:#edf1f4;--stone:#33494d;--mute:#4a5f62;--marketing-mute:#4a5f62}
@media(max-width:1024px){body.legacy-minimal{--ft-lnav:74px}}
body.clean-site.os{--os-off:#f7f9fc;--os-sage:#e9f0f8;--os-line:#e3e9ec;--os-muted:#4a5f62;--os-body:#33494d}
body.clean-site .ak.ak--vacei{--ak-paper-2:#e9f0f8;--ak-paper-3:#f7f9fc;--ak-line:#e3e9ec;--ak-muted:#4a5f62;--ak-faint:#4a5f62}
/* grounds (os family; film-home.css re-grounds some homepage sections by id) */
body.clean-site .os-hero,body.clean-site .os-end{background:var(--ft-g-warm);color:var(--ft-ink)}
body.clean-site.os .os-sec:not(.is-sage):not(.is-dark){background:var(--ft-g-white)}
body.clean-site.os .os-sec.is-sage{background:var(--ft-g-mist)}
body.clean-site.os .os-sec.is-dark{background:var(--ft-g-deep)}
body.clean-site.os .os-sec.is-dark::before{display:none}
body.clean-site.os .os-sec.is-dark::after{--fx-glow:#e9f16d14}
body.clean-site.os .os-hero::before{display:none}
body.clean-site.os .os-hero::after{--fx-glow:#e9f16d6b}
body.clean-site.os .os-end::after{--fx-glow:#e9f16d59}
body.clean-site main{background:var(--ft-page)}
/* nav: no bar of colour; the hero's ground runs up under it */
body.clean-site .clean-nav{background:transparent!important;border-bottom-color:transparent!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;box-shadow:none!important}
body.clean-site:not([data-page="insights"]) .clean-nav{--logo-color:var(--ft-ink);color:var(--ft-ink)}
body.clean-site:not([data-page="insights"]) :is(.nav-links a,.nav-actions>a:not(.button)){color:var(--ft-ink)!important}
body.clean-site:not([data-page="insights"]) .mobile-toggle{color:var(--ft-ink);border-color:#173b402e}
body.clean-site[data-page="insights"] .clean-nav{--logo-color:#fff}
body.clean-site #clean-mobile{background:#fff!important;color:var(--ft-ink);box-shadow:var(--ft-sh-big)}
body.clean-site #clean-mobile a{color:var(--ft-ink)!important}
body.clean-site .svc-menu{box-shadow:var(--ft-sh-big);border-color:transparent}
body.clean-site :is(.os-hero,.firm-hero,.ak-hero){margin-top:calc(-1 * var(--ft-nav))!important;border-top:var(--ft-nav) solid transparent!important;background-origin:border-box!important}
body.clean-site .os-hero{min-height:100svh}
@media screen{body.clean-site .ak-hero[data-ak-hero]{min-height:calc(min(100vh,980px) + var(--ft-nav))}}
@media(forced-colors:active){html body.clean-site :is(.os-hero,.firm-hero,.ak-hero),html body.legacy-minimal [data-screen-label="Hero"]{border-top-color:Canvas!important}}
/* legacy bar from 901 px (its burger stops at 900) to 1100: the link row on one line */
@media(min-width:901px) and (max-width:1100px){
body.legacy-minimal :is(.site-bar,header[data-screen-label="Nav"]){gap:14px!important}
body.legacy-minimal :is(.site-bar,header[data-screen-label="Nav"])>.nav-links{gap:clamp(8px,12.5vw - 112.5px,18px)!important;margin-right:0!important}
body.legacy-minimal :is(.site-bar,header[data-screen-label="Nav"]) :is(.nav-links>a,.nav-links>.svc-dd>a,.nav-cta){white-space:nowrap}
}
/* type: headings at 500; legacy and article headings keep -.045em (font-swap shifts) */
body.clean-site :is(h1,h2),body.legacy-minimal :is(h1,h2){font-weight:500!important;letter-spacing:-.035em!important;text-wrap:balance}
body.clean-site h3,body.legacy-minimal h3{font-weight:500!important}
body.clean-site.os :is(.os-h2,.os-head h2,.os-hero h1){letter-spacing:-.04em!important;line-height:1.04!important}
body.clean-site.os:is([data-page="outsourced-audit"],[data-page="outsourced-bookkeeping"]) :is(.os-h2,.os-head h2){font-size:clamp(38px,5.05vw,78px)!important}
body.clean-site .ak :is(h1,h2),body.legacy-minimal :is(h1,h2){letter-spacing:-.045em!important}
body.clean-site .ak h1{text-wrap:pretty}
@media(max-width:640px){body.legacy-minimal :is(h1,h2){font-weight:450!important}}
/* the band (light grounds) and the glow (DEEP) */
body.clean-site :is(h1,h2) em{font-style:normal;padding:0;border-radius:0;color:var(--ft-ink);background:linear-gradient(var(--ft-lime),var(--ft-lime)) no-repeat 0 88%/100% 46%;-webkit-box-decoration-break:slice;box-decoration-break:slice}
body.clean-site .firm-hero h1 em{color:var(--ft-ink)!important}
body.clean-site.os :is(.os-hero h1,.os-end h2) em{font-style:normal;padding:0;color:var(--ft-ink);background:linear-gradient(var(--ft-lime),var(--ft-lime)) no-repeat 0 88%/100% 46%;-webkit-box-decoration-break:slice;box-decoration-break:slice}
body.clean-site.os .os-sec.is-dark :is(h1,h2) em{background:var(--ft-glow-text);background-size:100% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;-webkit-box-decoration-break:slice;box-decoration-break:slice}
body.clean-site.os .os-hero h1 .type-line{display:inline}
body.clean-site.os .os-hero h1 .type-reserve{display:none}
body.clean-site.os .os-hero h1 .type-visible{display:inline}
/* focus: ink on the light grounds, lime only on DEEP */
body.clean-site :is(a,button,summary,input,select,textarea):focus-visible,body.legacy-minimal :is(a,button,summary,input,select,textarea):focus-visible{outline-color:var(--ft-ink)}
body.clean-site.os .os-hero :is(a,button):focus-visible,body.clean-site.os .os-end :is(a,button):focus-visible{outline-color:var(--ft-ink)}
body.clean-site.os .osx :is(.os-hero,.os-end) :focus-visible{outline-color:var(--ft-ink)}
body.clean-site.os :is(.os-sec.is-dark,.os-core,.os-get.is-key,.os-chapter) :is(a,button,summary):focus-visible{outline-color:var(--ft-lime)}
body.clean-site .ak-dark :is(a,button):focus-visible,body.clean-site[data-page="insights"] .clean-nav :is(a,button):focus-visible{outline-color:var(--ft-lime)}
body.clean-site.os .osx .osx-film .osx-film-btn:focus-visible{outline-color:var(--ft-sam-d)}
body.clean-site[data-page="insights"] .skip-link:focus-visible{outline-color:#fff}
body.clean-site .ak .ak-field input:focus-visible{outline:3px solid var(--ft-ink);outline-offset:2px}
body.clean-site .ak .ak-qc--dark .ak-field input:focus-visible,body.clean-site .ak .ak-icard--dark .ak-step:focus-visible{outline-color:#fff}
/* chips: the film's label, for section labels, kickers and eyebrows */
body.clean-site.os :is(.os-label,.os-kicker),body.clean-site .firm-hero .eyebrow,body:is(.clean-site,.legacy-minimal) .ai-showcase-heading>span{display:inline-flex;align-items:center;gap:10px;padding:8px 16px 8px 12px;border:0;border-radius:999px;background:#ffffffdb;box-shadow:var(--ft-sh-chip);font-size:14px;font-weight:600;letter-spacing:-.005em;text-transform:none;color:var(--ft-ink)}
body.clean-site.os .os-label::before,body.clean-site .firm-hero .eyebrow::before,body:is(.clean-site,.legacy-minimal) .ai-showcase-heading>span::before{content:'';flex:none;width:10px;height:10px;border-radius:50%;background:var(--ft-dot,var(--ft-lime));box-shadow:0 0 0 2px #173b402e}
body.clean-site.os .os-kicker i{width:10px;height:10px;background:var(--ft-lime);box-shadow:0 0 0 2px #173b402e}
body.clean-site .firm-hero .eyebrow{color:var(--ft-ink)!important}
body.clean-site.os .os-sec.is-dark :is(.os-label,.os-kicker){background:#e9f16d1a;box-shadow:inset 0 0 0 2px #e9f16d47;color:var(--ft-lime)}
body.clean-site.os .os-sec.is-dark .os-label::before,body.clean-site.os .os-sec.is-dark .os-kicker i{background:var(--ft-lime);box-shadow:0 0 12px #e9f16db3}
body.clean-site :is(.eyebrow,.osh-demo-k,.os-num){text-transform:none;letter-spacing:0;font-weight:600}
/* buttons: lime pill, the glyph in an ink disc */
body.clean-site .os-btn{font-weight:600}
body.clean-site .os-btn.is-lime{background:var(--ft-lime);color:var(--ft-lime-ink);box-shadow:var(--ft-sh-lime)}
body.clean-site .os-btn.is-ink{box-shadow:0 18px 40px -12px #173b4073}
body.clean-site .os-btn:is(.is-lime,.is-ink):has(>span[aria-hidden="true"]:last-child:not(.os-play)){padding-right:8px;gap:12px}
body.clean-site .os-btn:is(.is-lime,.is-ink)>span[aria-hidden="true"]:last-child:not(.os-play),body.clean-site .clean-nav .button.lime>span:last-child{display:inline-grid;place-items:center;flex:none;width:40px;height:40px;border-radius:50%;background:var(--ft-ink);color:var(--ft-lime);font-size:17px;line-height:1}
body.clean-site .os-btn.is-ink>span[aria-hidden="true"]:last-child:not(.os-play){background:var(--ft-lime);color:var(--ft-ink)}
body.clean-site .clean-nav .button.lime>span:last-child{width:32px;height:32px;margin:-6px -12px -6px 4px;font-size:14px}
body.clean-site .clean-nav .button.lime{box-shadow:none}
body.clean-site .os-btn:is(.is-ghost,.is-line){background:#ffffffe6;border-color:transparent;color:var(--ft-ink);box-shadow:var(--ft-sh-card)}
body.clean-site .os-btn:is(.is-ghost,.is-line):hover{background:#fff}
body.clean-site .os-btn .os-play{width:28px;height:28px;background:var(--ft-ink)}
body.clean-site .os-btn .os-play::before{border-left-color:var(--ft-lime)}
body.clean-site .button.lime{background:var(--ft-lime)!important;color:var(--ft-lime-ink)!important;font-weight:600;box-shadow:var(--ft-sh-lime)}
body.clean-site .button.outline{background:#fff;border-color:transparent;box-shadow:var(--ft-sh-card);color:var(--ft-ink)}
/* cards: white floating cards on light grounds; the dark cards stay dark */
body.clean-site.os .os-sec:not(.is-dark) :is(.os-mod,.os-get:not(.is-key),.os-steps li,.os-parts-list,.osx-card,.osx-stage),body.clean-site :is(.price-card,.feature-row>div){background:#fff!important;border:0!important;box-shadow:var(--ft-sh-card)!important}
body.clean-site.os .os-sec:not(.is-dark) :is(.os-mod,.os-get:not(.is-key)),body.clean-site .price-card{border-radius:var(--ft-r-card)!important}
body.clean-site.os .os-sec:not(.is-dark) .os-steps li,body.clean-site .feature-row>div{border-radius:var(--ft-r-tile)!important}
body.clean-site.os .os-sec:not(.is-dark) :is(.os-mod,.os-get:not(.is-key)):hover{box-shadow:var(--ft-sh-big)!important}
body.clean-site.os .os-sec.is-dark :is(.os-get,.os-steps li,.os-mod){border-color:#ffffff1f}
body.clean-site.os .os-sec:not(.is-dark) .os-steps li{padding:24px 22px 26px}
body.clean-site.os .os-sec:not(.is-dark) .os-steps li::before{display:flex;align-items:center;justify-content:center;width:40px;height:40px;margin-bottom:20px;border-radius:50%;background:var(--ft-skel);font-weight:600;color:var(--ft-ink)}
body.clean-site.os .os-sec:not(.is-dark) .os-steps li:last-child::before{background:var(--ft-lime);color:var(--ft-lime-ink)}
/* the dark cards: DEEP; VEE's own card keeps his halo */
body.clean-site.os :is(.os-core,.os-get.is-key){box-shadow:var(--ft-sh-window)!important;border-radius:var(--ft-r-big)!important;border:0!important}
body.clean-site.os .os-core{background:radial-gradient(closest-side at 120px 50%,#e9f16d38,#e9f16d00) no-repeat 0 0/240px 100%,var(--ft-g-deep)!important}
body.clean-site.os .os-get.is-key{background:var(--ft-g-deep)!important}
@media(min-width:1025px){body.clean-site.os .os-core .os-core-vee{width:160px;height:160px;margin:-20px 0}}
body.clean-site.os .os-core strong{background:var(--ft-cta);color:var(--ft-lime-ink);font-weight:600;box-shadow:var(--ft-sh-cta)}
/* squircle icons in Vee colours */
body.clean-site.os .os-sec:not(.is-dark) .os-ico{width:56px;height:56px;border-radius:15px;color:#fff;background:linear-gradient(140deg,var(--ft-a0,#7cc0f6),var(--ft-a1,#2f86d6));box-shadow:inset 0 1px 0 #ffffff59,0 12px 24px -12px var(--ft-a1,#2f86d6)}
body.clean-site.os .os-gets>.os-get:nth-child(3n+1){--ft-a0:var(--ft-emma);--ft-a1:var(--ft-emma-d)}
body.clean-site.os .os-gets>.os-get:nth-child(3n+2){--ft-a0:var(--ft-tom);--ft-a1:var(--ft-tom-d)}
body.clean-site.os .os-gets>.os-get:nth-child(3n){--ft-a0:#b9a2fa;--ft-a1:var(--ft-olivia-d)}
body.clean-site.os .os-sec .os-get.is-key .os-ico{background:var(--ft-cta);color:var(--ft-ink);box-shadow:var(--ft-sh-lime)}
/* how-it-works: the connect tiles float, the pressed one keeps its ink ring */
body.clean-site.os .osx-tile{border-color:transparent;box-shadow:var(--ft-sh-card)}
body.clean-site.os .osx-tile:not(:disabled):not([aria-pressed="true"]):hover{border-color:transparent;box-shadow:var(--ft-sh-big)}
body.clean-site.os .osx-tile[aria-pressed="true"]{border-color:var(--ft-ink);box-shadow:0 0 0 1px var(--ft-ink),var(--ft-sh-card)}
body.clean-site.os :is(.osx-shortlist,.osx-seg){border-color:transparent;box-shadow:var(--ft-sh-chip)}
/* films and windows */
body.clean-site .os-film{border-radius:var(--ft-r-big);box-shadow:var(--ft-sh-window),0 0 0 1px #ffffffcc}
body.clean-site.os .os-sec.is-dark .os-film{box-shadow:var(--ft-sh-on-deep)}
body.clean-site .jn-film video{border-radius:var(--ft-r-big);box-shadow:var(--ft-sh-window)}
body.clean-site .firm-movie .motion-frame{border-radius:var(--ft-r-card)!important;box-shadow:var(--ft-sh-window)!important}
body.clean-site :is(.os-film-cap,.os-fine,.os-note,.osx-tag,.bl-tag,.jn-film figcaption,.jn-film figcaption a,.firm-movie .tour-caption>span,.firm-movie .tour-caption a){color:var(--ft-ink)}
body.clean-site.os .os-sec.is-dark :is(.os-film-cap,.os-fine,.os-note){color:var(--ft-on-deep-2)}
/* the ai-showcase (both families): SOFT, full bleed, the window floats */
body:is(.clean-site,.legacy-minimal) .ai-showcase{background:var(--ft-g-soft)!important}
@media(min-width:761px){body:is(.clean-site,.legacy-minimal) .ai-showcase{max-width:none;padding-left:max(40px,calc((100% - 1120px)/2));padding-right:max(40px,calc((100% - 1120px)/2))}}
body:is(.clean-site,.legacy-minimal) .ai-showcase iframe{border-radius:28px!important;background:#fff;box-shadow:var(--ft-sh-window)}
body:is(.clean-site,.legacy-minimal) :is(.ai-showcase-heading p,.ai-showcase-caption){color:var(--ft-body)}
body:is(.clean-site,.legacy-minimal) .ai-showcase-caption a{color:var(--ft-ink)}
/* FAQ: one white card of rows (the film's Choose card) */
body.clean-site.os .os-faq>div:last-child,body.clean-site .assistance .support-options{align-self:start;padding:10px 34px;border-radius:40px;background:#fff;box-shadow:var(--ft-sh-big)}
body.clean-site.os .os-faq details,body.clean-site .assistance .support-options details{border-color:var(--ft-skel)}
body.clean-site.os .os-faq details:last-child,body.clean-site .assistance .support-options details:last-child{border-bottom:0}
body.clean-site .assistance .support-options details:first-child{border-top:0}
body.clean-site.os .os-faq summary{font-weight:500}
body.clean-site.os .os-faq summary span,body.clean-site .support-options summary span{display:inline-flex;align-items:center;justify-content:center;flex:none;width:32px;height:32px;border-radius:50%;background:var(--ft-skel);font-size:18px;font-weight:600}
body.clean-site.os .os-faq details[open] summary span,body.clean-site .support-options details[open] summary span{background:var(--ft-lime)}
/* the os hero and end card: WARM, ink */
body.clean-site.os .os-hero h1{color:var(--ft-ink)}
body.clean-site.os .os-hero :is(p.os-lead,.os-hero-fine){color:var(--ft-body)}
body.clean-site.os .os-hero .os-biz{color:var(--ft-ink);text-decoration-color:#173b4059}
body.clean-site.os .os-cue{color:var(--ft-mid);text-transform:none;letter-spacing:0}
body.clean-site.os .os-cue::after{background:linear-gradient(var(--ft-mid),transparent)}
body.clean-site.os .os-end .os-lockup{--logo-color:var(--ft-ink)}
body.clean-site.os .os-end .os-lockup i{background:var(--ft-ink)}
body.clean-site.os .os-end .os-lockup .d{opacity:.35}
body.clean-site.os .os-end h2{color:var(--ft-ink)}
body.clean-site.os .os-end :is(small,.os-end-lead){color:var(--ft-body)}
body.clean-site.os .os-end .os-end-link{color:var(--ft-ink);text-decoration-color:#173b4059}
body.clean-site.os:not([data-page="index"]) .os-end::before{content:'';position:absolute;z-index:0;inset:6% 3%;pointer-events:none;background:var(--ft-i-spark) 16% 14%/54px no-repeat,var(--ft-i-spark) 6% 62%/30px no-repeat,var(--ft-i-spark) 22% 92%/40px no-repeat,var(--ft-i-spark) 84% 10%/40px no-repeat,var(--ft-i-spark) 95% 54%/58px no-repeat,var(--ft-i-spark) 78% 94%/28px no-repeat;filter:drop-shadow(0 0 14px #e9f16dcc)}
/* clean pages: books, bookkeeping, pricing */
body.clean-site .firm-hero{background:var(--ft-g-warm)!important;background-origin:border-box!important;color:var(--ft-ink)!important}
body.clean-site .firm-hero h1{color:var(--ft-ink)}
body.clean-site .firm-hero>p,body.clean-site .firm-hero>small{color:var(--ft-body)!important}
body.clean-site .firm-hero .text-link{color:var(--ft-ink)}
body.clean-site .firm-section{background:var(--ft-g-grad)!important;color:var(--ft-ink)}
body.clean-site .firm-section :is(h2,h3,.eyebrow,a,b,strong){color:var(--ft-ink)}
body.clean-site .firm-section :is(p,small,li){color:var(--ft-body)}
body.clean-site .closing{background:var(--ft-g-warm);border-radius:40px;box-shadow:var(--ft-sh-big)}
body.clean-site .closing :is(p,small){color:var(--ft-body)}
body.clean-site .closing>div:last-child{border-color:#173b401f}
body.clean-site .price-card{padding:34px 30px}
body.clean-site .price-card.featured{overflow:hidden;box-shadow:0 0 0 2px var(--ft-lime),0 40px 90px -30px #a0af1e8c,var(--ft-sh-card)!important}
body.clean-site .price-card.featured::before{content:'';display:block;flex:none;height:8px;margin:-34px -30px 26px;background:var(--ft-cta)}
body.clean-site .price-card .eyebrow{color:var(--ft-mid)}
body.clean-site .price-card ul{border-top-color:var(--ft-skel)}
body.clean-site .price-card li::before{color:var(--ft-ok)}
body.clean-site .feature-row>div{padding:28px 26px 30px}
body.clean-site .feature-row>div>span{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;font-size:14px;font-weight:600;color:var(--ft-ink);background:linear-gradient(140deg,#ffe399,var(--ft-emma))}
body.clean-site .feature-row>div:nth-child(2)>span{background:linear-gradient(140deg,#c6eed6,var(--ft-tom))}
body.clean-site .feature-row>div:nth-child(3)>span{background:linear-gradient(140deg,#cfe6fb,#8ec5f5)}
body.clean-site .feature-row p{color:var(--ft-body)}
body.clean-site .feature-filters button{border-color:#173b402e}
body.clean-site .feature-filters button[aria-pressed=true]{background:var(--ft-ink);border-color:var(--ft-ink)}
/* insights: the kit's tokens; its dark turns on the film's DEEP */
body.clean-site .ak.ak--vacei{--ak-accent-text:var(--ft-mid)}
body.clean-site .ak.ak--vacei .ak-dark{background:var(--ft-g-deep)}
/* footer */
body.clean-site .clean-footer,body.legacy-minimal footer.clean-footer{background:#fff!important;box-shadow:0 -1px 0 var(--ft-line)}
@media(min-width:1241px){body.clean-site .clean-footer{max-width:none;padding-left:calc((100% - 1144px)/2);padding-right:calc((100% - 1144px)/2)}}
/* phones */
@media(max-width:640px){
body.clean-site .os-film{border-radius:22px}
body.clean-site.os .os-faq>div:last-child,body.clean-site .assistance .support-options{padding:4px 20px;border-radius:28px}
body.clean-site .closing{border-radius:30px}
body.clean-site.os:not([data-page="index"]) .os-end::before{inset:2% 3%;background:var(--ft-i-spark) 4% 2%/30px no-repeat,var(--ft-i-spark) 2% 99%/20px no-repeat,var(--ft-i-spark) 96% 1%/22px no-repeat,var(--ft-i-spark) 98% 97%/32px no-repeat}
}
/* Mobile navigation stays within the visible screen, including short landscape
   views. Its own scroll keeps every destination reachable above browser chrome. */
@media(max-width:850px){
body.clean-site .mobile-toggle{min-width:64px;min-height:44px;justify-content:center}
body.clean-site #clean-mobile{max-height:calc(100vh - 74px);max-height:calc(100dvh - 74px);overflow-y:auto;overscroll-behavior:contain;padding-bottom:calc(24px + env(safe-area-inset-bottom))}
body.clean-site #clean-mobile a{min-height:44px;line-height:1.4}
body.clean-site .text-link{min-height:44px}
body.clean-site .firm-hero>small a{display:inline-flex;align-items:center;min-height:44px;line-height:1.5}
body.clean-site .clean-footer>div>a:not(.wordmark){display:flex;align-items:center;min-height:44px;margin-top:2px;font-size:14px;line-height:1.5}
body.clean-site .clean-footer .footer-bottom{flex-wrap:wrap;gap:8px 20px}
body.clean-site .clean-footer .footer-bottom>a{min-height:44px;display:inline-flex;align-items:center;font-size:13px!important}
}

/* motion: the band sweeps in once */
@media (prefers-reduced-motion: no-preference){
html.fx-on body.clean-site.os .os-sec:not(.is-dark)>.os-wrap>* :is(h1,h2) em,html.fx-on body.clean-site.os .os-sec:not(.is-dark)>.os-wrap>:is(h1,h2) em{transition:background-size .7s var(--ft-io) .4s}
html.fx-on body.clean-site.os .os-sec:not(.is-dark)>.os-wrap>:not(.fx-done) :is(h1,h2) em,html.fx-on body.clean-site.os .os-sec:not(.is-dark)>.os-wrap>:is(h1,h2):not(.fx-done) em{background-size:0% 46%}
html.fx.fx-hero body.clean-site.os .os-hero h1 em{animation:ft-band .8s var(--ft-io) .5s backwards}
@keyframes ft-band{from{background-size:0% 46%}}
html.fx body.clean-site.os .os-end h2 em{transition:background-size .7s var(--ft-io) .55s}
html.fx body.clean-site.os .os-end:not(.is-in) h2 em{background-size:0% 46%}
}

