:root{--purple:#6950d9;--muted:#616b80;--ink:#20243c;--bg:#f8f9ff}.hero:before{background:radial-gradient(ellipse at 80% 35%,#ded7ffb0,transparent 57%)}.hero h1>span{background-image:linear-gradient(110deg,#6744d8,#a05ac4)}.button.primary{background:linear-gradient(120deg,#7857e8,#6751ce);box-shadow:0 6px 18px #7453db30}.eyebrow{color:#7654ba}.hero-description,.capability p,.about-copy>p{color:#68738a}.hero-meta{color:#717d94}.toolbelt>div>span{color:#67728a}.toolbelt-label{color:#7b8499}.section-heading>p{color:#717b91}.project-type{color:#618673}.nhs-feature{border-color:#d1e5da;background:#e5f1e9}.nhs-copy h3{color:#244b3c}.nhs-copy p{color:#567565}.pill{color:#3f7b5c;background:#f7fffa;border-color:#c9e3d3}.nhs-copy .button{background:#367459}.nhs-diagram{background:radial-gradient(circle at 50% 50%,#f2fcf5,#d5ebdd 77%)}.nhs-diagram:before,.nhs-diagram:after{border-color:#b5d6c2}.diagram-caption{color:#688e77}.diagram-chip{color:#4b7e5c;border-color:#bfdbc9;background:#f9fffb}.diagram-path>span{color:#63886d}.charac-logo{color:#487458}.project-caption p{color:#75829a}.pet .project-visual{background:#f2d8b5}.pet-orbit{background:#dda975}.reptile .project-visual{background:#d7e8c6}.reach .project-visual{background:#d5e3fb}.school .project-visual{background:#e6daf7}.villa .project-visual{background:#e6ded0}.project-visual{box-shadow:inset 0 0 0 1px #ffffff44}.visual-label{opacity:.85}.visual-footer{opacity:.9}.capability{border-color:#e4e1f1;background:linear-gradient(145deg,#fff,#f8f6ff)}.cap-icon{color:#805bc4;background:#ede5fc}.capability:nth-child(3n+2) .cap-icon{color:#438a76;background:#e0f3ea}.capability:nth-child(3n) .cap-icon{color:#b27c53;background:#f9eadd}.skill-tags span{color:#706884;border-color:#e7e0f2;background:#f0eaf8}.ai-banner{background:linear-gradient(115deg,#ede5fc,#f6efff);border-color:#dfd1f7}.ai-banner p{color:#7c698f}.ai-mark{color:#9770d0}.education div>span,.career-date,.career-item p{color:#7a8499}.career-item b{color:#626f88}.contact-panel{background:radial-gradient(ellipse at right,#d7c7f4,#eee5fb 75%);border-color:#dac9f4}.contact-panel h2>span{color:#9672c1}.contact-email{color:#7752ac}.contact-phone{color:#88749e}.contact-orb{color:#8458b9;border-color:#bda3df;background:#e6d7f999}.nav-contact{background:#eee6ff;color:#7254c5}.canvas-label{color:#7c7a98}.canvas-node small{color:#7c7d96}.core-node small{color:#89819e}.canvas-foot{color:#8c81a1}.canvas-foot b{color:#8968bd}.delivery-canvas{background:radial-gradient(ellipse at 50% 40%,#ebe4fe,#f3f1ff 75%);border-color:#e8e2f6}.canvas-orbit{border-color:#d6c8ef}.canvas-node{box-shadow:0 9px 26px #7253a312;border-color:#e4dcf4}.core-node{box-shadow:0 14px 50px #7c50b520}.canvas-spark{color:#a477d3}.nhs-coverage{padding:26px 30px;grid-template-columns:145px 1fr;gap:25px;background:#f0f8f3;border-color:#cfe2d6}.nhs-coverage>span{font-size:12px;font-weight:600;line-height:1.5;color:#456c56;padding-top:10px}.nhs-coverage>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.nhs-coverage>div>span{font-size:11px;font-weight:500;padding:10px 12px;border:1px solid #cfe1d5;background:#fff;border-radius:9px;color:#40684f;display:flex;align-items:center;gap:8px;min-height:43px;box-shadow:0 3px 7px #36564003}.nhs-coverage>div>span:before{content:'✓';font-size:10px;color:#58a276;flex-shrink:0}.nhs-coverage .im1{grid-column:span 2;display:block!important;position:relative;padding-left:29px!important}.nhs-coverage .im1:before{position:absolute;left:12px;top:11px}.nhs-coverage small{font-size:10px;color:#708b79;font-weight:400;line-height:1.7;margin-top:4px}.nhs-coverage>div>span:hover{border-color:#99c5a9;background:#f9fffb;transform:translateY(-2px)}.nhs-coverage>div>span{transition:transform .2s,border-color .2s}.round-arrow{transition:background .25s,color .25s,transform .25s}.project-card:hover .round-arrow{background:#7560d5;border-color:#7560d5;color:white;transform:rotate(45deg)}.project-visual>div,.leaf-shape{transition:transform .7s cubic-bezier(.22,.7,.2,1)}.project-card:hover .pet-orbit{transform:rotate(18deg) scale(1.05)}.project-card:hover .leaf-shape{transform:rotate(2deg) translateY(-6px)}.project-card:hover .villa-arch{transform:translateY(-7px)}.project-card:hover .reach-globe{transform:rotate(-5deg)}.project-card:hover .school-symbol{transform:rotate(38deg)}.capability{position:relative;overflow:hidden}.capability:after{content:'';position:absolute;inset:0;background:radial-gradient(circle at var(--px,50%) var(--py,50%),#c5abf51c,transparent 65%);pointer-events:none;opacity:0;transition:opacity .3s}.capability:hover:after{opacity:1}.cap-icon{transition:transform .3s}.capability:hover .cap-icon{transform:rotate(-7deg) scale(1.08)}.status-dot{box-shadow:0 0 0 4px #77b99c0d;animation:breathe 3.5s ease-in-out infinite}.canvas-orbit.orbit-two{animation:orbit 80s linear infinite}.canvas-spark{animation:sparkle 7s ease-in-out infinite}.diagram-path:before{content:'';position:absolute;width:5px;height:5px;background:#79ac8b;border-radius:50%;top:-2px;animation:travel 4s ease-in-out infinite;z-index:4}.hero-copy{animation:enter .8s ease-out both}.delivery-canvas{animation:enter 1s .15s ease-out both}.reveal-ready{opacity:0;transform:translateY(22px);transition:opacity .75s ease,transform .75s cubic-bezier(.2,.7,.2,1)}.reveal-ready.is-visible{opacity:1;transform:translateY(0)}@keyframes breathe{50%{box-shadow:0 0 0 5px #77b99c20}}@keyframes orbit{from{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}@keyframes sparkle{50%{transform:rotate(60deg) scale(.8);opacity:.6}}@keyframes travel{0%{left:0;opacity:0}20%{opacity:1}80%{opacity:1}100%{left:100%;opacity:0}}@keyframes enter{from{opacity:0;transform:translateY(17px)}to{opacity:1;transform:translateY(0)}}@media(max-width:760px){.nhs-coverage{grid-template-columns:1fr;gap:15px;padding:23px}.nhs-coverage>span{padding:0}.nhs-coverage>div{grid-template-columns:repeat(2,minmax(0,1fr))}.nhs-coverage small{font-size:10px}.nhs-coverage>div>span{font-size:11px}}@media(max-width:430px){.nhs-coverage{padding:20px}.nhs-coverage>div>span{padding:9px;font-size:10px;gap:5px}.nhs-coverage small{font-size:9px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.reveal-ready{opacity:1;transform:none}}
:root{--linkedin:#685090}.linkedin-link{display:inline-flex;gap:8px;align-items:center;margin-top:18px;font-size:11px;color:var(--linkedin);transition:color .2s,transform .2s}.linkedin-link:hover{color:#452b83;transform:translateX(3px)}.linkedin-icon{font:bold 11px Arial;background:#8260b0;color:white;padding:2px 3px;border-radius:3px}.footer-links{display:flex;gap:22px}.footer-links a:hover{color:var(--purple)}
.observability{grid-column:1/-1;display:grid;grid-template-columns:36px 1fr 205px;align-items:center;gap:23px;padding:27px}.observability h3{margin-top:0}.observability p{max-width:660px}.monitor-visual{padding:14px 15px;border:1px solid #e2d8f4;background:#f3effb;border-radius:12px;color:#9c7bc7}.monitor-title{font-size:9px;color:#8a72a6;display:flex;align-items:center;gap:6px}.monitor-title>i{width:4px;height:4px;border-radius:50%;background:#70ab91}.monitor-visual svg{width:100%;height:55px;margin-top:7px}.monitor-visual path{stroke-dasharray:260;stroke-dashoffset:260;animation:draw 5s ease-in-out infinite}.monitor-lines{display:flex;flex-direction:column;gap:5px}.monitor-lines i{height:3px;width:85%;border-radius:4px;background:#e2d6f1}.monitor-lines i:nth-child(2){width:65%}.monitor-lines i:nth-child(3){width:76%}@keyframes draw{35%,85%{stroke-dashoffset:0}100%{stroke-dashoffset:-260}}@media(max-width:760px){.observability{grid-template-columns:34px 1fr;align-items:start;gap:15px}.monitor-visual{grid-column:2;max-width:240px;width:100%}}@media(max-width:430px){.observability{display:block}.observability h3{margin-top:17px}.monitor-visual{margin-top:20px;max-width:none}}
@media(prefers-reduced-motion:reduce){.monitor-visual path{stroke-dashoffset:0}}
.nav-contact{border:0;font:600 12px 'DM Sans',sans-serif;cursor:pointer}.contact-orb{cursor:pointer;font-family:inherit}.contact-choose{display:block;margin-top:15px;border:1px solid #c8b3e4;background:#ffffff66;border-radius:8px;padding:8px 12px;color:#7752ac;font-size:11px;cursor:pointer}.contact-choose>span{margin-left:16px}.contact-choose:hover{background:#fff9}#connect-dialog{max-width:470px;padding:33px}#connect-dialog h2{font-size:29px;margin-top:17px}.connect-options{display:flex;flex-direction:column;gap:10px;margin-top:22px}.connect-options>a{display:flex;align-items:center;gap:13px;padding:16px;border:1px solid #e7e1f2;background:#fbfaff;border-radius:13px;transition:background .2s,transform .2s,border-color .2s}.connect-options>a:hover{background:#f2ecff;border-color:#c6b4e9;transform:translateX(3px)}.connect-icon{width:37px;height:37px;border-radius:11px;display:grid;place-items:center;background:#eee6fb;color:#9270c1;font-size:23px}.connect-icon.whatsapp-icon{background:#e5f4eb;color:#5f9d79}.connect-options b{display:block;font-size:13px;font-weight:550}.connect-options small{display:block;font-size:11px;color:#9290a4;margin-top:3px}.connect-go{margin-left:auto;color:#a18abf;font-size:18px}@media(max-width:430px){.nav-contact{font-size:11px}#connect-dialog{padding:25px}.connect-options>a{padding:13px}.connect-options small{font-size:10px}.connect-options b{font-size:12px}}
.reading-progress{position:fixed;left:0;top:0;height:3px;width:100%;z-index:100;background:linear-gradient(90deg,#a07ce7,#6c52d9,#7eb6a1);transform:scaleX(0);transform-origin:left;pointer-events:none}.reveal-ready{transition-delay:var(--entrance-delay,0ms)}.hero h1>span{background-size:220% 100%;animation:color-flow 8s ease-in-out infinite}.hero:before{animation:glow-drift 13s ease-in-out infinite;transform-origin:70% 40%;pointer-events:none}.delivery-canvas{transform:perspective(1100px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .5s ease-out;animation:canvas-arrive 1.2s ease both}.core-symbol{animation:core-breathe 6s ease-in-out infinite}.canvas-node{animation-duration:5.5s}.canvas-lines path{animation:dash-flow 22s linear infinite}.canvas-node:hover{box-shadow:0 16px 34px #7452b326;border-color:#cdb8ed}.diagram-chip{animation:chip-drift 6s ease-in-out infinite}.chip-record{animation-delay:-2s}.chip-patient{animation-delay:-4s}.nhs-logo,.charac-logo{transition:transform .5s,box-shadow .5s}.nhs-feature:hover .nhs-logo{transform:translateX(-5px);box-shadow:0 15px 30px #55725a15}.nhs-feature:hover .charac-logo{transform:translateX(5px);box-shadow:0 15px 30px #55725a15}.button>span,.nav-contact>span{display:inline-block;transition:transform .3s}.button:hover>span,.nav-contact:hover>span{transform:translate(3px,-2px)}.button.primary{background-size:180% 100%;transition:background-position .5s,transform .3s,box-shadow .3s}.button.primary:hover{background-position:100% 0;box-shadow:0 9px 24px #7453db40}.project-visual:after{content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,#ffffff30 50%,transparent 70%);transform:translateX(-110%);transition:transform .9s;pointer-events:none}.project-card:hover .project-visual:after{transform:translateX(110%)}.capability:hover{box-shadow:0 12px 26px #6b4c990b;transition-delay:0ms}.contact-orb{animation:orb-breathe 6s ease-in-out infinite}.contact-panel:after{content:'';position:absolute;right:-75px;bottom:-170px;width:400px;height:400px;border:1px solid #b29bda22;border-radius:50%;pointer-events:none;animation:contact-ring 14s ease-in-out infinite}.connect-options>a{animation:option-arrive .4s ease both}.connect-options>a:nth-child(2){animation-delay:.06s}.connect-options>a:nth-child(3){animation-delay:.12s}dialog[open]{animation:dialog-arrive .3s cubic-bezier(.2,.7,.3,1)}@keyframes color-flow{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes glow-drift{50%{transform:translate(12px,-15px) scale(1.06);opacity:.75}}@keyframes canvas-arrive{from{opacity:0;translate:0 20px}to{opacity:1;translate:0 0}}@keyframes core-breathe{50%{transform:translateY(-3px);filter:drop-shadow(0 5px 9px #946ce522)}}@keyframes dash-flow{to{stroke-dashoffset:-100}}@keyframes chip-drift{50%{translate:0 -7px}}@keyframes orb-breathe{50%{box-shadow:0 0 0 30px #d9c9ef44,0 0 0 60px #d9c9ef22}}@keyframes contact-ring{50%{transform:scale(1.15) translate(-15px,-10px)}}@keyframes option-arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes dialog-arrive{from{opacity:0;translate:0 10px;scale:.98}to{opacity:1;translate:0 0;scale:1}}@media(prefers-reduced-motion:reduce){.delivery-canvas{transform:none!important}.reading-progress{display:none}}
.skip-link{position:fixed;top:8px;left:12px;z-index:200;background:#fff;color:#6845b5;padding:9px 15px;border-radius:8px;box-shadow:0 3px 16px #37304922;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}
