/* Shared colour and motion system. Decorative loops pause outside the viewport. */
body[data-tone=mint]{--purple:#08796e;--purple-dark:#075b53;--lavender:#dcf8f2}
body[data-tone=peach]{--purple:#b64a20;--purple-dark:#933b1a;--lavender:#fff0e6}
body[data-tone=pink]{--purple:#a32966;--purple-dark:#81204f;--lavender:#fce9f2}
body[data-tone=lime]{--purple:#4d701b;--purple-dark:#3c5815;--lavender:#eef8da}
.hero{position:relative;background:radial-gradient(ellipse at 6% 4%,#fff0df 0,transparent 38%),radial-gradient(ellipse at 98% 80%,#e6fbf3 0,transparent 43%)}
.hero-visual{background:linear-gradient(130deg,#f0e7ff,#edfdf9 63%,#fff2dd)}
.hero-visual .visual-caption,.hero-visual .visual-footer{color:#565973}.hero-visual .system-art>text{fill:#565973}.hero-visual .orbital{stroke:#7545e8;stroke-opacity:.18}
.page-hero{position:relative;isolation:isolate;background:linear-gradient(115deg,var(--lavender),#fff 75%);overflow:hidden}
.page-hero>.wrap{position:relative;z-index:1}.page-hero-visual{position:absolute;width:min(48%,640px);right:-1%;top:30%;opacity:.22;pointer-events:none;transform:rotate(-15deg)}
.page-hero-visual .signal-node rect{fill:var(--lavender);stroke:var(--purple)}.page-hero-visual .signal-node path{stroke:var(--purple)}
.service-hero{background:radial-gradient(ellipse at 94% 72%,var(--lavender),transparent 52%)}
.hero h1 em,.page-hero h1 em{position:relative;display:inline-block}.hero h1 em::after,.page-hero h1 em::after{content:'';position:absolute;height:5px;border-radius:100%;background:linear-gradient(90deg,#fa9772,#ce9aff,#64d7c6);left:0;right:0;bottom:-8px;transform-origin:left;animation:underline-draw 1.1s .25s both cubic-bezier(.2,.7,.2,1)}
.brand-mark i{animation:brand-arrive .7s both}.brand-mark i:nth-child(2){animation-delay:.12s}.brand-mark i:nth-child(3){animation-delay:.24s}.brand:hover .brand-mark i{transform:translateY(-3px);transition:transform .25s}.brand:hover .brand-mark i:nth-child(2){transform:translateY(3px)}
.nav-wrap nav>a{position:relative}.nav-wrap nav>a::after{position:absolute;content:'';left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,var(--purple),#54c9b5);transform:scaleX(0);transform-origin:left;transition:transform .28s}.nav-wrap nav>a:hover::after,.nav-wrap nav>a:focus-visible::after{transform:scaleX(1)}
.site-header{transition:box-shadow .35s,background .35s}.page-scrolled .site-header{background:#fffffff5;box-shadow:0 5px 32px #25213816}
.btn{position:relative;overflow:hidden;transition:transform .24s,box-shadow .24s,background .24s}.btn:hover{transform:translateY(-3px);box-shadow:0 9px 22px #241f3020}.btn:active{transform:translateY(0) scale(.98)}.btn .icon{transition:transform .25s}.btn:hover .icon,.btn:focus-visible .icon{transform:translateX(4px)}.btn.primary::after{content:'';position:absolute;inset:-70% -40%;background:linear-gradient(100deg,transparent 40%,#ffffff25 50%,transparent 60%);transform:translateX(-110%) rotate(12deg);pointer-events:none}.btn.primary:hover::after,.btn.primary:focus-visible::after{animation:button-glint .8s ease-out}
.floating-enquiry>.icon{animation:enquiry-beckon 5s 4s ease-in-out infinite}.floating-enquiry:hover{box-shadow:0 8px 28px #7545e840;transform:translateY(-3px)}
.form-completion{display:grid;gap:9px;margin:0 0 20px;font-size:10px;color:var(--muted)}.form-completion progress{height:4px;appearance:none;width:100%;border:0;background:var(--line);border-radius:5px;overflow:hidden}.form-completion progress::-webkit-progress-bar{background:var(--line)}.form-completion progress::-webkit-progress-value{background:linear-gradient(90deg,var(--purple),#29b5a3);transition:width .4s}.form-completion progress::-moz-progress-bar{background:var(--purple)}
.lead-form input,.lead-form select,.lead-form textarea,.planner-questions input,.planner-questions select,.planner-questions textarea{transition:border-color .25s,box-shadow .25s,background .25s}.lead-form :is(input,select,textarea):focus,.planner-questions :is(input,select,textarea):focus{border-color:var(--purple);box-shadow:0 0 0 4px var(--lavender);outline:2px solid transparent;background:#fff}.form-status:not(:empty){animation:notice-arrive .3s ease-out}.dialog-intro>.text-link{font-size:12px;margin:-6px 0 24px}
.engagement-strip{position:relative;overflow:hidden;background:#1e2032;color:#fff;padding:60px 0}.engagement-strip::before{content:'';position:absolute;left:-25%;bottom:0;width:150%;height:3px;background:linear-gradient(90deg,#ac8aff,#5bd6c6,#edbb83,#f2a7ca,#cfe58c);animation:spectrum-drift 10s ease-in-out infinite alternate}.engagement-strip>.wrap{display:grid;grid-template-columns:1fr 1.45fr;gap:70px;align-items:center}.engagement-strip h2{font-size:36px;line-height:1.15;margin-bottom:18px}.engagement-strip .eyebrow{color:#bfc3dd}.engagement-strip .text-link{color:#9fe6d6;font-size:13px}.engagement-visual ol{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;list-style:none;padding:0;text-align:center;margin:0;font-size:11px;color:#e6e7f1}.engagement-visual li b{display:block;font:10px var(--mono);color:#94cabc;margin-bottom:8px}.signal-art{width:100%;height:auto;display:block;overflow:visible}.signal-base{stroke:#a7a9c6;stroke-width:1;stroke-dasharray:2 8;opacity:.5}.signal-trace{stroke-width:3;stroke-dasharray:45 155;animation:signal-draw 8s linear infinite}.signal-node rect{fill:#30334d;stroke:#9a88c7;stroke-width:1.5}.signal-node path{stroke:#b2e4db;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.signal-node{animation:signal-float 4s ease-in-out infinite}.signal-node.node-1{animation-delay:.45s}.signal-node.node-2{animation-delay:.9s}.signal-node.node-3{animation-delay:1.35s}.signal-halo{fill:none;stroke:#91cabf;stroke-width:1;opacity:.35;transform-box:fill-box;transform-origin:center;animation:signal-halo 4s ease-in-out infinite}.node-1 .signal-halo{animation-delay:1s}.node-2 .signal-halo{animation-delay:2s}.node-3 .signal-halo{animation-delay:3s}.signal-orbits{stroke:#ac8bdd;stroke-width:1;opacity:.28;transform-origin:320px 80px;animation:signal-orbit 32s linear infinite}
.testing-drivers{background:linear-gradient(180deg,#fff,#fbfcf7)}.driver-grid,.testing-comparison{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.driver-card{padding:34px;border:1px solid #2020350c;border-radius:22px;position:relative;overflow:hidden;transition:transform .3s,box-shadow .3s}.driver-card:hover{transform:translateY(-7px);box-shadow:0 18px 30px #2421380d}.driver-card>.icon{width:34px;height:34px;margin-bottom:25px}.driver-card h3{font-size:29px;line-height:1.15;margin:0 0 18px}.driver-card p{font-size:14px;line-height:1.8;color:#4b4c60}.driver-card h2{font-size:30px;line-height:1.2}.testing-comparison .text-link{margin-top:22px;font-size:12px}.regulatory-note{display:grid;grid-template-columns:150px 1fr;column-gap:30px;align-items:start;padding:30px 0 0;margin-top:30px;border-top:1px solid var(--line)}.regulatory-note p{margin:0;font-size:14px;line-height:1.8}.regulatory-label{font:10px var(--mono);text-transform:uppercase;letter-spacing:.07em;background:#202035;color:#fff;padding:10px 12px;border-radius:6px}.regulatory-note .text-link{grid-column:2;margin-top:15px;font-size:12px}.prose h3{font:600 24px var(--display);margin:30px 0 14px}
.planner-section{padding-top:45px}.planner-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:75px;align-items:start}.planner-aside{position:sticky;top:120px}.planner-progress{list-style:none;padding:0;margin:30px 0}.planner-progress li{display:flex;gap:20px;padding:20px 0;color:var(--muted);transition:color .35s}.planner-progress li>b{font:11px var(--mono);background:#efeff4;border-radius:50%;width:35px;height:35px;display:grid;place-items:center;flex-shrink:0;transition:background .3s,transform .3s}.planner-progress span{font:500 21px var(--display)}.planner-progress small{font:12px var(--body);display:block;line-height:1.6;margin-top:8px}.planner-progress [aria-current=step]{color:var(--ink)}.planner-progress [aria-current=step]>b{background:var(--purple);color:white;transform:scale(1.1)}.planner-progress .complete>b{background:#d8f3e9;color:#28594f}.planner-aside>p{font-size:12px;line-height:1.8;color:var(--muted)}.planner-art{background:#212539;border-radius:20px;padding:10px;margin-bottom:22px}.planner-card{padding:38px;border:1px solid var(--line);border-radius:24px;box-shadow:0 20px 70px #2521380b;background:#fff;min-width:0}.planner-questions fieldset{border:0;padding:0;margin:0;min-width:0}.planner-questions legend{font:500 31px/1.2 var(--display);padding:0;margin:0 0 15px}.planner-questions p,.planner-review>p{font-size:13px;line-height:1.8;color:var(--muted)}.planner-questions label{display:grid;gap:9px;font-size:12px;margin:22px 0}.planner-questions input,.planner-questions select,.planner-questions textarea{width:100%;padding:14px;font:14px/1.5 var(--body);color:var(--ink);border:1px solid var(--line);border-radius:9px;background:#fbfbfd;box-sizing:border-box;min-width:0}.planner-questions .btn{margin-top:12px}.planner-review h2{font-size:32px}.planner-review>.quiet-link{margin:4px 0 24px}.planner-review textarea{min-height:230px}.planner-review .form-row{grid-template-columns:1fr}.no-js .planner-questions .actions,.no-js [data-plan-next],.no-js [data-plan-edit]{display:none}.no-js .planner-review{margin-top:35px}
@keyframes brand-arrive{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@keyframes underline-draw{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes button-glint{to{transform:translateX(110%) rotate(12deg)}}
@keyframes enquiry-beckon{0%,75%,100%{transform:rotate(0)}80%{transform:rotate(-12deg)}85%{transform:rotate(12deg)}90%{transform:rotate(-6deg)}}
@keyframes notice-arrive{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@keyframes signal-draw{to{stroke-dashoffset:-600}}
@keyframes signal-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes signal-halo{0%,100%{transform:scale(.85);opacity:.15}50%{transform:scale(1.15);opacity:.55}}
@keyframes signal-orbit{to{transform:rotate(360deg)}}
@keyframes spectrum-drift{to{transform:translateX(15%)}}
@media(max-width:950px){.driver-card{padding:25px}.driver-card h3{font-size:25px}.driver-card p{font-size:12px}.engagement-strip>.wrap{gap:30px}.engagement-strip h2{font-size:30px}.planner-layout{gap:35px;grid-template-columns:.8fr 1.2fr}.planner-card{padding:27px}.planner-progress span{font-size:19px}.testing-comparison{grid-template-columns:1fr}.testing-comparison h2{max-width:650px}.testing-comparison .text-link{margin-top:10px}}
@media(max-width:680px){.hero h1{font-size:clamp(40px,10.6vw,65px)}.hero h1 em::after,.page-hero h1 em::after{height:3px;bottom:-5px}.page-hero-visual{width:75%;right:-15%;top:10%;opacity:.13}.driver-grid{grid-template-columns:1fr;gap:14px}.driver-card{padding:26px}.driver-card>.icon{float:right;width:28px;height:28px;margin:0 0 12px 15px}.driver-card h3{font-size:28px}.driver-card p{font-size:13px}.regulatory-note{grid-template-columns:1fr;gap:18px}.regulatory-label{justify-self:start}.regulatory-note p{font-size:12px}.regulatory-note .text-link{grid-column:1;margin:0}.engagement-strip{padding:40px 0}.engagement-strip>.wrap{grid-template-columns:1fr;gap:22px}.engagement-strip h2{font-size:32px}.engagement-visual ol{font-size:9px;gap:7px}.engagement-visual li b{font-size:9px}.planner-layout{grid-template-columns:1fr;gap:28px}.planner-aside{position:static}.planner-progress{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:15px 0}.planner-progress li{display:block;padding:12px 0}.planner-progress span{font-size:13px;line-height:1.5;display:block;margin-top:13px}.planner-progress small,.planner-art{display:none}.planner-aside>p{font-size:11px}.planner-card{padding:27px 22px}.planner-questions legend{font-size:27px}.planner-questions input,.planner-questions select,.planner-questions textarea{font-size:16px}.planner-questions .actions{gap:10px}.planner-questions .btn{font-size:11px;padding:12px}.form-completion{font-size:10px}.dialog-intro>.text-link{font-size:12px;line-height:1.6}.planner-review h2{font-size:29px}}
@media print{.engagement-strip,.page-hero-visual,.planner-art{display:none}.planner-aside{position:static}.planner-layout{display:block}.planner-card{box-shadow:none}}
