:root{--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--space-3xl:64px;--font-display:"Poppins", system-ui, sans-serif;--font-heading:"Poppins", system-ui, sans-serif;--font-body:"Inter Variable", system-ui, sans-serif;--font-label:"Inter Variable", system-ui, sans-serif;--font-code:"JetBrains Mono", ui-monospace, monospace}*,:before,:after{box-sizing:border-box}html,body{background-color:var(--colour-bg);color:var(--colour-text)}body{min-height:100vh;font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;isolation:isolate;margin:0;line-height:1.6}body:before{content:"";z-index:-1;pointer-events:none;background:var(--ambient);position:fixed;inset:0}:root{color-scheme:dark}html[data-theme=light]{color-scheme:light}html[data-theme=dark]{color-scheme:dark}a{color:var(--colour-accent);text-underline-offset:.14em;text-decoration-thickness:1px}:focus-visible{outline:2px solid var(--colour-focus-ring);outline-offset:2px}.text-display{font-family:var(--font-display);font-size:40px;font-weight:700;line-height:1.15}.text-heading{font-family:var(--font-heading);font-size:28px;font-weight:700;line-height:1.25}.text-body{font-family:var(--font-body);font-size:17px;font-weight:400;line-height:1.6}.text-label{font-family:var(--font-label);font-size:14px;font-weight:400;line-height:1.4}.icon-control{min-width:44px;min-height:44px}pre.astro-code{overflow-x:auto}img,picture{max-width:100%;height:auto}html[data-theme=dark] .astro-code,html[data-theme=dark] .astro-code span,html:not([data-theme=light]) .astro-code,html:not([data-theme=light]) .astro-code span{color:var(--shiki-dark);background-color:var(--shiki-dark-bg);font-style:var(--shiki-dark-font-style);font-weight:var(--shiki-dark-font-weight);text-decoration:var(--shiki-dark-text-decoration)}.container{width:100%;max-width:1200px;margin-inline:auto;padding-inline:clamp(16px,5vw,48px)}.mark{background:var(--gradient-brand);-webkit-text-fill-color:transparent;color:#0000;-webkit-background-clip:text;background-clip:text}.eyebrow{font-family:var(--eyebrow-font);font-weight:var(--eyebrow-weight);font-size:var(--eyebrow-size);letter-spacing:var(--eyebrow-tracking);text-transform:uppercase;color:var(--eyebrow-colour);align-items:center;gap:.55rem;margin:0 0 1rem;display:inline-flex}.eyebrow:before{content:"";width:28px;height:var(--rule-height);background:var(--gradient-rule);border-radius:2px;flex:none}.lead{color:var(--colour-text-soft);max-width:62ch;margin:0;font-size:1.15rem;line-height:1.6}.chip{border:1px solid var(--colour-border);color:var(--colour-text-soft);white-space:nowrap;border-radius:9999px;align-items:center;gap:.35rem;padding:6px 12px;text-decoration:none;transition:border-color .25s,color .25s;display:inline-flex}a.chip:hover{border-color:var(--colour-border-strong);color:var(--colour-text)}.card{background:linear-gradient(180deg, var(--colour-surface), var(--colour-surface-2));border:1px solid var(--colour-border);border-radius:var(--radius-lg);padding:32px;transition:transform .4s cubic-bezier(.22,1,.36,1),border-color .4s cubic-bezier(.22,1,.36,1),box-shadow .4s cubic-bezier(.22,1,.36,1);position:relative;overflow:hidden}.card:before{content:"";background:var(--gradient-brand);height:2px;position:absolute;inset:0 0 auto}.card:hover{border-color:var(--colour-border-strong);box-shadow:var(--shadow-glow);transform:translateY(-6px)}.btn{min-height:44px;font-family:var(--font-display);white-space:nowrap;border-radius:9999px;justify-content:center;align-items:center;gap:.55rem;padding:.7rem 1.5rem;font-size:.98rem;font-weight:600;text-decoration:none;transition:transform .3s cubic-bezier(.22,1,.36,1),box-shadow .3s cubic-bezier(.22,1,.36,1),border-color .3s cubic-bezier(.22,1,.36,1);display:inline-flex}.btn:hover{transform:translateY(-3px)}.btn-primary{background:var(--gradient-cta);color:#fff;box-shadow:var(--shadow-glow)}.btn-ghost{color:var(--colour-text);border:1.5px solid var(--colour-border-strong);background:0 0}.btn-ghost:hover{border-color:var(--colour-accent)}@property --lh-angle{syntax:"<angle>";inherits:false;initial-value:0deg}@keyframes lh-spin{to{--lh-angle:360deg}}.hub-link{font-family:var(--font-display);color:#fff;white-space:nowrap;background:linear-gradient(var(--colour-panel), var(--colour-panel)) padding-box, conic-gradient(from var(--lh-angle,0deg), #22d3ee, #2dd4bf, #8b5cf6, #22d3ee) border-box;border:2px solid #0000;border-radius:9999px;align-items:center;gap:7px;padding:6px 16px;font-size:.8rem;font-weight:600;text-decoration:none;transition:transform .3s,box-shadow .3s;display:inline-flex;position:relative}html[data-theme=light] .hub-link{color:var(--colour-text)}.hub-link:hover{transform:scale(1.05);box-shadow:0 0 18px #2dd4bf73}.hub-link .lh-spark{flex:none;width:14px;height:14px;display:block}@keyframes lh-pulse{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.15)}}@media (prefers-reduced-motion:no-preference){.hub-link{animation:4s linear infinite lh-spin}.hub-link .lh-spark{animation:2.2s ease-in-out infinite lh-pulse}}.nav-link{font-family:var(--font-body);color:var(--colour-text-soft);white-space:nowrap;border-radius:10px;align-items:center;padding:.55rem .85rem;font-size:.95rem;font-weight:500;text-decoration:none;transition:color .25s,background .25s;display:inline-flex}.nav-link:hover{color:var(--colour-text);background:#ffffff0d}.nav-link[aria-current=page]{color:var(--colour-text);box-shadow:inset 0 -2px 0 var(--colour-accent);background:#ffffff12}.prose{max-width:720px;font-family:var(--font-body);color:var(--colour-text);font-size:1.08rem;line-height:1.75}.prose>:first-child{margin-top:0}.prose h2,.prose h3,.prose h4{font-family:var(--font-heading);color:var(--colour-text);margin:2.2em 0 .7em;font-weight:700;line-height:1.2}.prose h2{font-size:1.9rem}.prose h3{font-size:1.35rem}.prose h4{font-size:1.1rem}.prose p,.prose ul,.prose ol{margin:0 0 1.25em}.prose li+li{margin-top:.35em}.prose a{color:var(--colour-accent)}.prose strong{color:var(--colour-text)}.prose blockquote{border-left:3px solid var(--colour-accent);border-radius:0 var(--radius) var(--radius) 0;background:var(--colour-panel);color:var(--colour-text-soft);margin:1.6em 0;padding:1rem 1.25rem}.prose blockquote>:last-child{margin-bottom:0}.prose code{font-family:var(--font-code);font-size:.9em}.prose :not(pre)>code{background:var(--colour-panel);border:1px solid var(--colour-border);border-radius:6px;padding:.1em .4em}.prose pre.astro-code{border-radius:var(--radius);border:1px solid var(--colour-border);margin:1.6em 0;padding:1.1rem 1.25rem;font-size:.92rem;line-height:1.6}.prose img,.prose picture{border-radius:var(--radius)}.prose img[id^=mermaid-]{box-sizing:border-box;width:100%;padding:var(--space-md);border:1px solid var(--colour-border);background:#f4f5fb}.prose hr{background:var(--colour-border);border:0;height:1px;margin:2.5em 0}.prose table{border-collapse:collapse;width:100%;margin:1.6em 0;font-size:.95em}.prose th,.prose td{border-bottom:1px solid var(--colour-border);text-align:left;padding:.6em .8em}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(https://assets.pinnacletechsolutions.co.uk/_astro/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(https://assets.pinnacletechsolutions.co.uk/_astro/inter-cyrillic-wght-normal.DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(https://assets.pinnacletechsolutions.co.uk/_astro/inter-greek-ext-wght-normal.DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(https://assets.pinnacletechsolutions.co.uk/_astro/inter-greek-wght-normal.CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(https://assets.pinnacletechsolutions.co.uk/_astro/inter-vietnamese-wght-normal.CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(https://assets.pinnacletechsolutions.co.uk/_astro/inter-latin-ext-wght-normal.DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(https://assets.pinnacletechsolutions.co.uk/_astro/inter-latin-wght-normal.Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:600;src:url(https://assets.pinnacletechsolutions.co.uk/_astro/poppins-latin-600-normal.zEkxB9Mr.woff2)format("woff2"),url(https://assets.pinnacletechsolutions.co.uk/_astro/poppins-latin-600-normal.BJdTmd5m.woff)format("woff")}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:600;src:url(https://assets.pinnacletechsolutions.co.uk/_astro/poppins-latin-ext-600-normal.CAhIAdZj.woff2)format("woff2"),url(https://assets.pinnacletechsolutions.co.uk/_astro/poppins-latin-ext-600-normal.Df5ffKXP.woff)format("woff")}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:700;src:url(https://assets.pinnacletechsolutions.co.uk/_astro/poppins-latin-700-normal.Qrb0O0WB.woff2)format("woff2"),url(https://assets.pinnacletechsolutions.co.uk/_astro/poppins-latin-700-normal.BVuQR_eA.woff)format("woff")}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:700;src:url(https://assets.pinnacletechsolutions.co.uk/_astro/poppins-latin-ext-700-normal.cby-RkWa.woff2)format("woff2"),url(https://assets.pinnacletechsolutions.co.uk/_astro/poppins-latin-ext-700-normal.DctTR6Tg.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(https://assets.pinnacletechsolutions.co.uk/_astro/jetbrains-mono-latin-400-normal.V6pRDFza.woff2)format("woff2"),url(https://assets.pinnacletechsolutions.co.uk/_astro/jetbrains-mono-latin-400-normal.6-qcROiO.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(https://assets.pinnacletechsolutions.co.uk/_astro/jetbrains-mono-latin-ext-400-normal.Bc8Ftmh3.woff2)format("woff2"),url(https://assets.pinnacletechsolutions.co.uk/_astro/jetbrains-mono-latin-ext-400-normal.fXTG6kC5.woff)format("woff")}.search-control[data-astro-cid-p7novajf]{flex:none;display:inline-flex;position:relative}.search-trigger[data-astro-cid-p7novajf]{border:1px solid var(--colour-border);color:var(--colour-text);cursor:pointer;background:0 0;border-radius:12px;flex:none;justify-content:center;align-items:center;transition:border-color .25s,background .25s;display:inline-flex}.search-trigger[data-astro-cid-p7novajf]:hover{border-color:var(--colour-border-strong);background:#ffffff0d}.search-trigger-icon[data-astro-cid-p7novajf]{width:20px;height:20px;display:inline-flex}.search-trigger-icon[data-astro-cid-p7novajf] svg{width:100%;height:100%}.search-panel[data-astro-cid-p7novajf]{top:calc(100% + var(--space-sm));background-color:var(--colour-surface);border:1px solid var(--colour-border);width:min(360px,90vw);padding:var(--space-md);border-radius:12px;max-height:60vh;position:absolute;right:0;overflow-y:auto}.search-input[data-astro-cid-p7novajf]:not([hidden]){box-sizing:border-box;width:100%;padding:var(--space-xs) var(--space-sm);background-color:var(--colour-bg);border:1px solid var(--colour-border);color:var(--colour-text);border-radius:8px;display:block}.search-scope[data-astro-cid-p7novajf]{gap:var(--space-sm);margin-top:var(--space-sm);flex-wrap:wrap;display:flex}.search-scope[data-astro-cid-p7novajf]:empty{margin-top:0}.search-scope-pill[data-astro-cid-p7novajf]{padding:var(--space-xs) var(--space-sm);border:1px solid var(--colour-border);background-color:var(--colour-surface);color:var(--colour-text-soft);cursor:pointer;white-space:normal;border-radius:999px;align-items:center;display:inline-flex}.search-scope-pill[data-astro-cid-p7novajf][aria-pressed=true]{background-color:var(--colour-accent);border-color:var(--colour-accent);color:var(--colour-bg)}.search-status[data-astro-cid-p7novajf]{margin:var(--space-sm) 0 0;color:var(--colour-text-muted)}.search-status[data-astro-cid-p7novajf]:empty,.search-status[data-astro-cid-p7novajf] p{margin:0}.search-status[data-astro-cid-p7novajf] p+p{margin-top:var(--space-xs)}.search-results[data-astro-cid-p7novajf]{margin:var(--space-sm) 0 0;padding:0;list-style:none}.search-results[data-astro-cid-p7novajf]:empty{margin:0}.search-results[data-astro-cid-p7novajf] li+li{margin-top:var(--space-sm)}.search-results[data-astro-cid-p7novajf] .search-result-title{color:var(--colour-accent);display:block}.search-results[data-astro-cid-p7novajf] .search-result-excerpt{margin:var(--space-xs) 0 0;color:var(--colour-text-soft)}.search-results[data-astro-cid-p7novajf] .search-result-meta{align-items:center;gap:var(--space-xs);margin-top:var(--space-xs);color:var(--colour-text-muted);flex-wrap:wrap;display:flex}.search-results[data-astro-cid-p7novajf] .brand-label{color:var(--colour-text-muted);border-color:var(--colour-border-strong);white-space:normal}.theme-toggle[data-astro-cid-l6lhmie6]{border:1px solid var(--colour-border);color:var(--colour-text);cursor:pointer;background:0 0;border-radius:12px;flex:none;justify-content:center;align-items:center;transition:border-color .25s,background .25s;display:inline-flex;position:relative}.theme-toggle[data-astro-cid-l6lhmie6]:hover{border-color:var(--colour-border-strong);background:#ffffff0d}.theme-toggle-icon[data-astro-cid-l6lhmie6]{width:20px;height:20px;display:inline-flex}.theme-toggle-icon[data-astro-cid-l6lhmie6] svg{width:100%;height:100%}html[data-theme=light] .theme-toggle-icon--sun[data-astro-cid-l6lhmie6],html:not([data-theme=light]) .theme-toggle-icon--moon[data-astro-cid-l6lhmie6]{display:none}.site-header[data-astro-cid-fzpbxy5g]{z-index:100;min-height:var(--header-h);background:color-mix(in srgb, var(--colour-bg) 82%, transparent);backdrop-filter:blur(16px);border-bottom:1px solid var(--colour-border);position:sticky;top:0}.site-header-row[data-astro-cid-fzpbxy5g]{min-height:var(--header-h);flex-wrap:wrap;align-items:center;gap:.5rem 1rem;padding-block:8px;display:flex}.brand-group[data-astro-cid-fzpbxy5g]{flex:auto;align-items:center;gap:.9rem;min-width:0;display:flex}.brand-logo-link[data-astro-cid-fzpbxy5g]{flex:none;align-items:center;display:flex}.brand-logo[data-astro-cid-fzpbxy5g]{width:auto;height:24px;display:block}.brand[data-astro-cid-fzpbxy5g]{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--font-display);color:var(--colour-text);font-size:1.15rem;font-weight:700;text-decoration:none;display:block;overflow:hidden}.hub-nav[data-astro-cid-fzpbxy5g]{align-items:center;gap:.35rem;min-width:0;margin-left:auto;display:flex}.header-actions[data-astro-cid-fzpbxy5g]{align-items:center;gap:var(--space-sm);flex:none;display:flex}@media (width<=899px){.hub-nav[data-astro-cid-fzpbxy5g]{white-space:nowrap;scrollbar-width:none;-webkit-overflow-scrolling:touch;flex:1 0 100%;order:3;margin-left:0;padding-bottom:4px;overflow-x:auto}.hub-nav[data-astro-cid-fzpbxy5g]::-webkit-scrollbar{display:none}}@media (width<=599px){.brand-group[data-astro-cid-fzpbxy5g]{gap:.6rem}.hub-link[data-astro-cid-fzpbxy5g]{padding:6px 10px}.hub-link[data-astro-cid-fzpbxy5g] .lh-text[data-astro-cid-fzpbxy5g]{display:none}}.site-footer[data-astro-cid-nns7i3if]{margin-top:var(--space-3xl);border-top:1px solid var(--colour-border);background:linear-gradient(180deg, transparent, color-mix(in srgb, var(--colour-panel) 60%, transparent));padding-top:clamp(48px,6vw,80px)}.footer-grid[data-astro-cid-nns7i3if]{grid-template-columns:1.4fr 1fr 1fr;gap:2rem;padding-bottom:2.5rem;display:grid}.brand[data-astro-cid-nns7i3if]{font-family:var(--font-display);color:var(--colour-text);align-items:center;gap:.7rem;font-size:1.15rem;font-weight:700;text-decoration:none;display:inline-flex}.brand-logo[data-astro-cid-nns7i3if]{width:auto;height:24px;display:block}.footer-lead[data-astro-cid-nns7i3if]{max-width:300px;color:var(--colour-text-muted);margin:.9rem 0 0;font-size:.95rem}.footer-kin[data-astro-cid-nns7i3if]{color:var(--colour-text-dim);margin:1rem 0 0}.footer-kin[data-astro-cid-nns7i3if] a[data-astro-cid-nns7i3if]{color:var(--colour-accent-soft)}.footer-heading[data-astro-cid-nns7i3if]{font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:var(--colour-text);margin:0 0 1rem;font-size:.82rem;font-weight:700}.footer-col[data-astro-cid-nns7i3if] ul[data-astro-cid-nns7i3if]{margin:0;padding:0;list-style:none}.footer-col[data-astro-cid-nns7i3if] a[data-astro-cid-nns7i3if]{color:var(--colour-text-muted);padding:.3rem 0;font-size:.95rem;text-decoration:none;transition:color .25s;display:inline-block}.footer-col[data-astro-cid-nns7i3if] a[data-astro-cid-nns7i3if]:hover{color:var(--colour-highlight)}.footer-bottom[data-astro-cid-nns7i3if]{border-top:1px solid var(--colour-border);color:var(--colour-text-dim);flex-wrap:wrap;justify-content:space-between;gap:.5rem 1.5rem;padding-block:1.25rem;display:flex}.footer-legal[data-astro-cid-nns7i3if]{gap:1.2rem;display:inline-flex}.footer-legal[data-astro-cid-nns7i3if] a[data-astro-cid-nns7i3if]{color:var(--colour-text-muted);text-decoration:none}.footer-legal[data-astro-cid-nns7i3if] a[data-astro-cid-nns7i3if]:hover{color:var(--colour-text)}@media (width<=719px){.footer-grid[data-astro-cid-nns7i3if]{grid-template-columns:1fr;gap:1.75rem}}main[data-astro-cid-z4jru4n3]{padding-block:var(--space-2xl) var(--space-3xl)}.skip-link[data-astro-cid-z4jru4n3]{z-index:200;padding:var(--space-sm) var(--space-md);background-color:var(--colour-bg);color:var(--colour-text);border:1px solid var(--colour-border);border-radius:0 0 8px;transition:transform .15s;position:absolute;top:0;left:0;transform:translateY(-100%)}.skip-link[data-astro-cid-z4jru4n3]:focus-visible{transform:translateY(0)}
