/* kazap.co.uk v2 — built from the Kazap Design System (tokens.json + bundle.css), 14/10/2026 */
@font-face{font-family:"Inter";src:url("/fonts/inter-latin-wght-normal.woff2") format("woff2");font-weight:100 900;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Inter";src:url("/fonts/inter-latin-ext-wght-normal.woff2") format("woff2");font-weight:100 900;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:"Bricolage Grotesque";src:url("/fonts/bricolage-grotesque-latin-wght-normal.woff2") format("woff2");font-weight:200 800;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Bricolage Grotesque";src:url("/fonts/bricolage-grotesque-latin-ext-wght-normal.woff2") format("woff2");font-weight:200 800;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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}

:root{
  color-scheme:light dark;
  --surface:#ffffff;--surface-alt:#efede7;--surface-raised:#ffffff;--surface-inverse:#1b1b1e;--surface-inverse-raised:#242428;
  --line:#e5e5e5;--line-inverse:#3a3a40;--ink:#343434;--ink-muted:#5a5a5a;--ink-inverse:#f4f3f0;--ink-inverse-muted:#b9b7b0;
  --signal:#fecc0c;--on-signal:#1b1b1e;--ember:#ff9400;--ember-soft:#f4a602;--on-ember:#1b1b1e;--ember-ink:#9a4a00;--ember-wash:#fff4e0;
  --focus:#343434;--success:#15803d;--danger:#b42318;
  --shadow-1:0 1px 2px rgba(15,23,42,.06),0 4px 12px rgba(15,23,42,.06);
  --shadow-2:0 1px 2px rgba(15,23,42,.06),0 16px 40px rgba(15,23,42,.12);
  --shadow-aura:0 0 0 1px rgba(255,148,0,.35),0 10px 40px rgba(255,148,0,.30),0 0 80px rgba(254,204,12,.25);
  --font-display:"Bricolage Grotesque","Inter",system-ui,sans-serif;
  --font-sans:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:80px;--space-10:128px;
  --radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-pill:999px;
  --fast:160ms;--base:320ms;--slow:600ms;--ease-out:cubic-bezier(.32,.72,0,1);
  --kz-gradient:linear-gradient(90deg,var(--ember),var(--ember-soft));
  --kz-gradient-sunrise:linear-gradient(90deg,var(--ember) 0%,var(--ember-soft) 55%,var(--signal) 100%);
}
@media (prefers-color-scheme:dark){:root{
  --surface:#1b1b1e;--surface-alt:#1f1f23;--surface-raised:#242428;--surface-inverse:#0f0f11;--surface-inverse-raised:#1b1b1e;
  --line:#2e2e33;--line-inverse:#2e2e33;--ink:#f4f3f0;--ink-muted:#b9b7b0;--ember-ink:#ff9400;--ember-wash:#2b2116;--focus:#fecc0c;--success:#4ade80;--danger:#f97066;
  --shadow-1:0 1px 2px rgba(0,0,0,.4),0 4px 12px rgba(0,0,0,.3);--shadow-2:0 1px 2px rgba(0,0,0,.5),0 16px 40px rgba(0,0,0,.5);
  --shadow-aura:0 0 0 1px rgba(255,148,0,.5),0 10px 40px rgba(255,148,0,.35),0 0 80px rgba(254,204,12,.2);
}}

/* Base */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:96px}
@media (prefers-reduced-motion:no-preference){html:not(.lenis){scroll-behavior:smooth}}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}
body{margin:0;background:var(--surface);color:var(--ink);font-family:var(--font-sans);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg{max-width:100%;height:auto}
h1,h2,h3,h4{font-family:var(--font-display);margin:0;text-wrap:balance;color:inherit}
h1{font-size:clamp(2.4rem,1.5rem + 3.6vw,4.6rem);font-weight:800;line-height:1.02;letter-spacing:-.035em}
h2{font-size:clamp(1.9rem,1.3rem + 2vw,2.6rem);font-weight:800;line-height:1.08;letter-spacing:-.025em}
h3{font-size:clamp(1.25rem,1.1rem + .5vw,1.5rem);font-weight:700;line-height:1.2;letter-spacing:-.015em}
p{margin:0;text-wrap:pretty}
ul,ol{margin:0}
a{color:inherit;text-underline-offset:3px}
:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:4px}
.kz-inverse :focus-visible{outline-color:var(--signal)}
.skip{position:absolute;left:16px;top:-60px;z-index:100;background:var(--signal);color:var(--on-signal);padding:10px 16px;border-radius:var(--radius-pill);font-weight:700;text-decoration:none}
.skip:focus{top:12px}
.kz-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{width:min(1200px,100%);margin-inline:auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
@media (min-width:760px){.wrap{padding-left:max(24px,env(safe-area-inset-left,0px));padding-right:max(24px,env(safe-area-inset-right,0px))}}
.section{padding-block:var(--space-9)}
@media (min-width:960px){.section{padding-block:var(--space-10)}}
.section--alt{background:var(--surface-alt)}
.kz-inverse{background:var(--surface-inverse);color:var(--ink-inverse)}
.kz-inverse .kz-label{color:var(--ink-inverse-muted)}
.section__head{display:flex;flex-direction:column;gap:var(--space-3);max-width:760px;margin-bottom:var(--space-7)}
.section__head p{color:var(--ink-muted);font-size:19px;line-height:1.6}
.kz-inverse .section__head p{color:var(--ink-inverse-muted)}
.lede{font-size:clamp(1.08rem,1rem + .3vw,1.2rem);line-height:1.6}
.kz-label{font-size:12px;line-height:16px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-muted)}
.kz-label--ember{color:var(--ember-ink)}
.kz-inverse .kz-label--ember{color:var(--signal)}
.kz-num{font-family:var(--font-display);font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1}
.prose{display:flex;flex-direction:column;gap:var(--space-4);max-width:68ch}
.prose p,.kz-justify{hyphens:auto}
@media (min-width:640px){.prose p{text-align:justify}}
@media (min-width:1080px){.kz-justify{text-align:justify}}
.prose ul{padding-left:20px;display:flex;flex-direction:column;gap:6px}
.prose h2{margin-top:var(--space-5)}
.muted{color:var(--ink-muted)}
.kz-inverse .muted{color:var(--ink-inverse-muted)}
.foot{font-size:13px;color:var(--ink-muted)}
.foot a{color:var(--ember-ink)}
.cols-2{display:grid;gap:var(--space-7);align-items:start}
@media (min-width:960px){.cols-2{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}}
.kz-stack{display:flex;flex-direction:column;gap:var(--space-4)}
.row{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center}

/* Buttons */
.kz-btn{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 22px;border-radius:var(--radius-pill);font:700 15px/1.1 var(--font-sans);text-decoration:none;border:1px solid transparent;cursor:pointer;transition:background-color var(--fast) var(--ease-out),transform var(--fast) var(--ease-out),box-shadow var(--fast) var(--ease-out)}
.kz-btn:active{transform:scale(.98)}
.kz-btn--primary{background:var(--signal);color:var(--on-signal);padding-right:8px}
.kz-btn--primary:hover{background:var(--ember)}
.kz-btn__disc{display:inline-flex;width:30px;height:30px;border-radius:var(--radius-pill);background:var(--on-signal);color:var(--signal);align-items:center;justify-content:center;transition:transform var(--fast) var(--ease-out)}
.kz-btn--primary:hover .kz-btn__disc{transform:translate(2px,-1px) scale(1.05)}
.kz-btn--primary.kz-btn--plain{padding-right:22px}
.kz-btn--secondary{background:transparent;color:inherit;border-color:currentColor}
.kz-btn--secondary:hover{background:var(--surface-alt)}
.kz-inverse .kz-btn--secondary{border-color:var(--ink-inverse-muted)}
.kz-inverse .kz-btn--secondary:hover{background:var(--surface-inverse-raised)}
.kz-btn__micro{font-size:13px;color:var(--ink-muted)}
.kz-inverse .kz-btn__micro{color:var(--ink-inverse-muted)}

/* Badges, chips, tags */
.kz-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-pill);font:700 12px/16px var(--font-sans);background:var(--ember-wash);color:var(--ember-ink)}
.kz-badge--signal{background:var(--signal);color:var(--on-signal)}
.kz-badge--outline{background:transparent;color:inherit;border:1px solid var(--line)}
.kz-tag{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-sm);border:1px solid var(--line);font:600 12px/16px var(--font-sans)}
.kz-tag img{width:14px;height:14px}

/* Header */
.kz-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:var(--surface);border-bottom:1px solid var(--line)}
.kz-header__bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);min-height:76px}
.kz-header__logo{display:flex;align-items:center}
.kz-header__logo img{height:40px;width:auto;display:block}
.logo-dark{display:none!important}
@media (prefers-color-scheme:dark){.logo-light{display:none!important}.logo-dark{display:block!important}}
.kz-nav{display:none;align-items:center;gap:var(--space-6);font:600 15px/1 var(--font-sans)}
.kz-nav a:not(.kz-btn),.kz-nav__menu{text-decoration:none;padding:10px 0;border:0;border-bottom:3px solid transparent;background:none;color:inherit;font:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.kz-nav a[aria-current="page"],.kz-nav__menu[aria-current="page"]{border-bottom-color:var(--signal)}
.kz-nav a:not(.kz-btn):hover,.kz-nav__menu:hover{border-bottom-color:var(--line)}
.kz-nav .kz-btn{padding:0 22px}
.kz-nav__menu svg{transition:transform var(--fast) var(--ease-out)}
.kz-nav__menu[aria-expanded="true"] svg{transform:rotate(180deg)}
@media (min-width:960px){.kz-nav{display:flex}.kz-menu-btn{display:none!important}}
.kz-mega{position:absolute;left:0;right:0;top:100%;padding-top:8px}
.kz-mega[hidden]{display:none}
.kz-mega__panel{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--space-3);padding:var(--space-4);background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-2)}
.kz-mega__item{display:flex;flex-direction:column;gap:6px;padding:var(--space-4);border-radius:var(--radius-md);text-decoration:none;transition:background-color var(--fast)}
.kz-mega__item:hover{background:var(--surface-alt)}
.kz-mega__item strong{font:700 15px/1.3 var(--font-sans)}
.kz-mega__item span:last-child{font-size:13px;line-height:1.5;color:var(--ink-muted)}
.kz-mega__feature{background:var(--surface-inverse);color:var(--ink-inverse);border-radius:var(--radius-md);padding:var(--space-4);display:flex;flex-direction:column;gap:8px;text-decoration:none}
.kz-mega__feature span:last-child{color:var(--ink-inverse-muted);font-size:13px}
.kz-menu-btn{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:var(--radius-pill);border:1px solid var(--line);background:transparent;color:inherit;font:600 15px var(--font-sans);cursor:pointer}
.kz-drawer{border-top:1px solid var(--line);padding-block:var(--space-4)}
.kz-drawer[hidden]{display:none}
.kz-drawer ul{list-style:none;padding:0;display:flex;flex-direction:column}
.kz-drawer a{display:block;padding:12px 0;font:600 17px var(--font-sans);text-decoration:none;border-bottom:1px solid var(--line)}
.kz-drawer .sub a{padding-left:16px;font-weight:500;font-size:15px}
.kz-drawer .kz-btn{margin-top:var(--space-4);border:0}

/* Breadcrumb */
.kz-crumbs{background:var(--surface-alt);padding-block:14px;font:600 12px/16px var(--font-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted)}
.kz-crumbs ol{list-style:none;padding:0;display:flex;gap:10px;flex-wrap:wrap}
.kz-crumbs li+li::before{content:"›";margin-right:10px}
.kz-crumbs [aria-current="page"]{color:var(--ink)}

/* Page hero (inner) */
.page-hero{padding-block:var(--space-8) var(--space-7)}
.page-hero__inner{display:flex;flex-direction:column;gap:var(--space-5)}
.page-hero__inner>*{max-width:880px}
.page-hero .lede{color:var(--ink-muted);max-width:68ch}

/* Home hero + M1 set piece */
.hero{padding-block:var(--space-8)}
.hero__grid{display:grid;gap:var(--space-7)}
@media (min-width:1080px){.hero__grid{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:start}}
.hero__copy{display:flex;flex-direction:column;gap:var(--space-5)}
.hero__copy .lede{color:var(--ink-inverse-muted);max-width:56ch}
.kz-rotate{display:inline-grid;vertical-align:bottom;overflow:hidden;height:1.06em}
.kz-rotate>span{grid-area:1/1;color:var(--signal);opacity:0}
.kz-rotate>span:first-child{opacity:1}
@media (prefers-reduced-motion:no-preference){.kz-rotate>span{animation:kz-rotate 9s infinite var(--ease-out)}.kz-rotate>span:first-child{opacity:0}.kz-rotate>span:nth-child(2){animation-delay:3s}.kz-rotate>span:nth-child(3){animation-delay:6s}}
@keyframes kz-rotate{0%{opacity:0;transform:translateY(60%)}5%,30%{opacity:1;transform:none}35%,100%{opacity:0;transform:translateY(-60%)}}
.proof{display:flex;flex-wrap:wrap;gap:var(--space-5) var(--space-7);border-top:1px solid var(--line-inverse);padding-top:var(--space-5)}
.proof .kz-num{font-size:clamp(1.8rem,1.4rem + 1.2vw,2.5rem)}
.proof span:last-child{display:block;font-size:14px;color:var(--ink-inverse-muted);margin-top:6px}
.stage{background:var(--surface-inverse-raised);border:1px solid var(--line-inverse);border-radius:var(--radius-xl);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-4);min-height:520px}
@media (min-width:1080px){.stage{position:sticky;top:100px}}
.stage__top{display:flex;justify-content:space-between;align-items:center;gap:12px}
.stage__steps{display:flex;gap:8px;flex-wrap:wrap}
.stage__steps button{font:600 13px var(--font-sans);min-height:40px;padding:0 14px;border-radius:var(--radius-pill);border:1px solid var(--line-inverse);background:transparent;color:var(--ink-inverse);cursor:pointer}
.stage__steps button[aria-pressed="true"]{background:var(--signal);color:var(--on-signal);border-color:var(--signal)}
.stage__bar{height:4px;border-radius:2px;background:var(--line-inverse);overflow:hidden}
.stage__bar span{display:block;height:100%;width:33%;background:var(--kz-gradient-sunrise);transition:width var(--base) var(--ease-out)}
.stage[data-step="1"] .stage__bar span{width:66%}
.stage[data-step="2"] .stage__bar span{width:100%}
.scene{display:none;flex-direction:column;gap:var(--space-4);flex:1}
.stage[data-step="0"] .scene--0,.stage[data-step="1"] .scene--1,.stage[data-step="2"] .scene--2{display:flex}
@media (prefers-reduced-motion:no-preference){.scene{animation:kz-in var(--base) var(--ease-out)}}
@keyframes kz-in{from{opacity:.2;transform:translateY(10px)}to{opacity:1;transform:none}}
.mail{background:var(--surface-inverse);border:1px dashed rgba(244,243,240,.25);border-radius:var(--radius-sm);padding:12px 14px;font-size:14px}
.mail strong{display:block;font-size:14px}
.mail span{font-size:12px;color:var(--ink-inverse-muted)}
.mail:nth-child(odd){transform:rotate(-1deg)}.mail:nth-child(even){transform:rotate(.8deg);margin-left:24px}
.sheet{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;font-size:12px;color:var(--ink-inverse-muted);background:var(--surface-inverse);border-radius:var(--radius-sm);padding:10px}
.sheet span{padding:6px}.sheet span:nth-child(-n+4){background:var(--surface-inverse-raised);color:var(--ink-inverse)}
.flow{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.flow span{border:1px dashed rgba(244,243,240,.4);border-radius:var(--radius-sm);padding:10px 14px;font-size:14px}
.flow span:last-child{border:2px solid var(--signal);font-weight:700}
.flow i{flex:1;min-width:20px;height:2px;background:var(--kz-gradient-sunrise)}
.mini{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.mini div{background:var(--surface-inverse);border-radius:var(--radius-sm);padding:14px}
.mini .kz-num{font-size:28px}.mini p{font-size:13px;color:var(--ink-inverse-muted)}
.app{background:var(--ink-inverse);color:#343434;border-radius:var(--radius-md);padding:18px;display:flex;flex-direction:column;gap:8px;font-size:14px}
.app div{display:flex;justify-content:space-between;border-bottom:1px solid #e5e5e5;padding-bottom:6px}
.app div:last-child{border:0}
.big{font-size:clamp(2.4rem,1.8rem + 2.6vw,4rem);color:var(--signal)}
.scene__note{font-size:14px;color:var(--ink-inverse-muted)}
.hero__trail{display:none}
@media (min-width:1080px) and (prefers-reduced-motion:no-preference){.hero__trail{display:block}.hero__trail div{height:32vh}}

/* Problem chips */
.problems fieldset{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:var(--space-2)}
.problems legend{margin-bottom:var(--space-4)}
.problems input{position:absolute;opacity:0;pointer-events:none}
.problems label{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border-radius:var(--radius-pill);border:1px solid var(--line);background:var(--surface-raised);font:600 15px var(--font-sans);cursor:pointer;transition:all var(--fast)}
.problems input:checked+label{background:var(--surface-inverse);color:var(--ink-inverse);border-color:var(--surface-inverse)}
.problems input:focus-visible+label{outline:2px solid var(--focus);outline-offset:3px}
.answers{margin-top:var(--space-5)}
.answer{display:none;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-5);align-items:center;padding:var(--space-6);border-radius:var(--radius-lg);background:var(--surface-raised);border:1px solid var(--line)}
@media (max-width:700px){.answer{grid-template-columns:1fr}}
.answer h3{margin-bottom:8px}
.problems:has(#p1:checked) .answer--1,.problems:has(#p2:checked) .answer--2,.problems:has(#p3:checked) .answer--3,.problems:has(#p4:checked) .answer--4{display:grid}
@supports not selector(:has(*)){.answer{display:grid;margin-bottom:var(--space-3)}}

/* Grids & cards */
.kz-grid{display:grid;gap:var(--space-5);grid-auto-rows:1fr}
@media (min-width:700px){.kz-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1080px){.kz-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.kz-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}}
.kz-card{position:relative;display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-6);background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-lg);transition:transform var(--base) var(--ease-out),box-shadow var(--base) var(--ease-out)}
.kz-card:hover,.kz-card:focus-within{transform:translateY(-4px);box-shadow:var(--shadow-2)}
.kz-card__outcome{font:700 16px/1.5 var(--font-sans)}
.kz-card__body{font-size:15px;line-height:1.6;color:var(--ink-muted)}
.kz-card__meta{margin-top:auto;font-size:13px;color:var(--ink-muted)}
.kz-card__tags{display:flex;flex-wrap:wrap;gap:6px}
.kz-card a.stretch::after{content:"";position:absolute;inset:0}
.kz-aura{position:relative;isolation:isolate;border-radius:var(--radius-lg)}
.kz-aura::before{content:"";position:absolute;inset:-2px;border-radius:calc(var(--radius-lg) + 2px);background:var(--kz-gradient-sunrise);z-index:-1}
.kz-aura::after{content:"";position:absolute;inset:10px;border-radius:var(--radius-lg);background:var(--kz-gradient-sunrise);filter:blur(28px);z-index:-2;opacity:.5;transition:opacity var(--base) var(--ease-out),inset var(--base) var(--ease-out)}
.kz-aura:hover::after,.kz-aura:focus-within::after{opacity:.85;inset:0}
.kz-aura>.kz-card{border-color:transparent;height:100%}
.kz-aura>.kz-card:hover{transform:none;box-shadow:none}

/* Flip cards */
.kz-flip{perspective:1400px}
.kz-flip__inner{position:relative;height:100%;min-height:380px;transform-style:preserve-3d;transition:transform var(--slow) var(--ease-out)}
.kz-flip[data-flipped="true"] .kz-flip__inner{transform:rotateY(180deg)}
.kz-flip__face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:var(--radius-lg);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-3);overflow:auto}
.kz-flip__front{background:var(--surface-raised);border:1px solid var(--line);transition:box-shadow var(--base)}
.kz-flip:hover .kz-flip__front{box-shadow:var(--shadow-aura)}
.kz-flip__back{background:var(--surface-inverse);color:var(--ink-inverse);transform:rotateY(180deg)}
.kz-flip__back::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--kz-gradient-sunrise)}
.kz-flip__back ul{padding-left:18px;font-size:15px;line-height:1.6;color:var(--ink-inverse-muted);display:flex;flex-direction:column;gap:4px}
.kz-flip__back .kz-label{color:var(--signal)}
.kz-flip__actions{margin-top:auto;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.kz-flip__toggle{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:var(--radius-pill);border:1px solid var(--line);background:transparent;color:inherit;font:600 14px/1 var(--font-sans);cursor:pointer}
.kz-flip__back .kz-flip__toggle{border-color:var(--line-inverse)}
.kz-flip__num{font:800 14px/1 var(--font-sans);color:var(--ember-ink)}
@media (prefers-reduced-motion:reduce){.kz-flip__inner{transition:none}.kz-flip[data-flipped="true"] .kz-flip__inner{transform:none}.kz-flip__back{transform:none;visibility:hidden}.kz-flip[data-flipped="true"] .kz-flip__back{visibility:visible}}

/* KPI */
.kz-kpis{display:grid;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface-raised);overflow:hidden}
@media (min-width:700px){.kz-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1080px){.kz-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}}
.kz-kpi{padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-2);border-bottom:1px solid var(--line)}
@media (min-width:1080px){.kz-kpi{border-bottom:0}.kz-kpi+.kz-kpi{border-left:1px solid var(--line)}}
.kz-kpi .kz-num{font-size:40px}
.kz-kpi__label{font-size:14px;color:var(--ink-muted)}
.kz-kpi--feature{background:var(--surface-inverse);color:var(--ink-inverse)}
.kz-kpi--feature .kz-num{color:var(--signal)}
.kz-kpi--feature .kz-kpi__label,.kz-kpi--feature .kz-label{color:var(--ink-inverse-muted)}

/* Featured case */
.feature{display:grid;gap:var(--space-6);padding:var(--space-7);background:var(--surface-raised);border-radius:var(--radius-lg)}
@media (min-width:960px){.feature{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:center}}
.feature__nums{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4)}
.kz-aura+.foot{margin-top:var(--space-4)}
.feature__nums .kz-num{font-size:clamp(1.8rem,1.4rem + 1.5vw,2.6rem)}
.feature__nums span:last-child{display:block;font-size:13px;color:var(--ink-muted);margin-top:6px}

/* Bridge */
.bridge{display:grid;gap:var(--space-7);align-items:center}
@media (min-width:960px){.bridge{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.route{display:flex;flex-direction:column;gap:var(--space-4)}
.route__line{position:relative;display:flex;justify-content:space-between;align-items:center;padding:28px 0}
.route__line::before{content:"";position:absolute;left:8px;right:8px;top:37px;height:3px;background:var(--kz-gradient-sunrise);border-radius:2px}
.route__stop{position:relative;display:flex;flex-direction:column;align-items:center;gap:10px;font:700 15px var(--font-sans)}
.route__stop i{width:18px;height:18px;border-radius:50%;background:var(--surface-inverse);border:3px solid var(--signal)}
.route__stop small{font:500 13px var(--font-sans);color:var(--ink-inverse-muted)}

/* Marquee */
.kz-marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.kz-marquee__track{display:flex;gap:var(--space-3);width:max-content;list-style:none;padding:6px 0}
@media (prefers-reduced-motion:no-preference){.kz-marquee__track{animation:kz-marquee 50s linear infinite}.kz-marquee__track--rev{animation-direction:reverse}.kz-marquee:hover .kz-marquee__track,.marquee[data-paused="true"] .kz-marquee__track{animation-play-state:paused}}
@media (prefers-reduced-motion:reduce){.kz-marquee{-webkit-mask-image:none;mask-image:none}.kz-marquee__track{flex-wrap:wrap;width:auto}.kz-marquee__track [aria-hidden="true"]{display:none}}
@keyframes kz-marquee{to{transform:translateX(-50%)}}
.kz-logo-tile{display:inline-flex;align-items:center;gap:10px;padding:12px 18px;border:1px solid #e5e5e5;border-radius:var(--radius-sm);background:#fff;color:#343434;font:600 15px/1 var(--font-sans);white-space:nowrap}
.kz-logo-tile img{height:22px;width:auto}
.marquee{display:flex;flex-direction:column;gap:10px}
.marquee__head{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4)}

/* Steps */
.kz-steps{list-style:none;padding:0;display:flex;flex-direction:column;gap:var(--space-5)}
.kz-steps li{display:grid;grid-template-columns:36px minmax(0,1fr);gap:var(--space-4);position:relative}
.kz-steps li:not(:last-child)::after{content:"";position:absolute;left:17px;top:42px;bottom:calc(-1 * var(--space-5));width:2px;background:var(--line)}
.kz-steps__n{width:36px;height:36px;border-radius:50%;border:2px solid var(--ember);color:var(--ember-ink);font:800 14px/1 var(--font-sans);display:flex;align-items:center;justify-content:center;background:var(--surface)}
.section--alt .kz-steps__n{background:var(--surface-alt)}
.kz-steps strong{display:block;font:700 17px/1.4 var(--font-sans)}
.kz-steps p{font-size:15px;color:var(--ink-muted)}
.rail-h{display:grid;gap:var(--space-4);counter-reset:s}
@media (min-width:960px){.rail-h{grid-template-columns:repeat(5,minmax(0,1fr))}}
.rail-h li{list-style:none;position:relative;padding:var(--space-5);border-radius:var(--radius-lg);background:var(--surface-raised);border:1px solid var(--line);display:flex;flex-direction:column;gap:8px}
.rail-h li::before{counter-increment:s;content:counter(s,decimal-leading-zero);font:800 28px/1 var(--font-display);color:var(--ember-ink)}
.rail-h strong{font:700 17px/1.3 var(--font-sans)}
.rail-h p{font-size:14px;color:var(--ink-muted)}
.rail-h .gate{font-size:13px;color:var(--ink);border-top:1px solid var(--line);padding-top:8px;margin-top:auto}

/* Timeline */
.kz-tl{position:relative;display:grid;gap:var(--space-5);list-style:none;padding:0}
@media (min-width:960px){.kz-tl{grid-template-columns:repeat(4,minmax(0,1fr));padding-top:var(--space-6)}
.kz-tl::before{content:"";position:absolute;left:0;right:0;top:9px;height:4px;border-radius:2px;background:var(--line)}
.kz-tl::after{content:"";position:absolute;left:0;width:100%;top:9px;height:4px;border-radius:2px;background:var(--kz-gradient-sunrise);transform-origin:left;transform:scaleX(var(--p,1))}
.kz-tl li::before{content:"";position:absolute;top:calc(-1 * var(--space-6) + 2px);left:0;width:18px;height:18px;border-radius:50%;background:var(--ember);z-index:1}
.kz-tl li:last-child::before{background:var(--surface);border:3px solid var(--signal);box-shadow:var(--shadow-aura)}}
.kz-tl li{position:relative;display:flex;flex-direction:column;gap:8px;padding:var(--space-5);border-radius:var(--radius-lg);background:var(--surface-raised);border:1px solid var(--line)}
.kz-tl__year{font:800 32px/1 var(--font-display);letter-spacing:-.02em}
.kz-tl p{font-size:15px;color:var(--ink-muted)}

/* Profile */
.kz-profile{display:grid;gap:var(--space-6);align-items:center}
.kz-profile--stack{grid-template-columns:1fr!important;align-items:start}
.kz-profile--stack img{max-width:220px}
@media (min-width:860px){.kz-profile{grid-template-columns:280px minmax(0,1fr)}}
.kz-profile figure{margin:0;display:flex;flex-direction:column;gap:var(--space-3)}
.kz-profile img{width:100%;max-width:280px;aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius-lg);border:1px solid var(--line)}
.kz-profile .row{margin-top:var(--space-2)}

/* FAQ */
.kz-faq{display:grid;gap:var(--space-7)}
@media (min-width:960px){.kz-faq{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}}
.kz-faq details{border-bottom:1px solid var(--line);padding:var(--space-3) 0}
.kz-faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:var(--space-4);font:700 18px/1.4 var(--font-sans);min-height:44px;align-items:center}
.kz-faq summary::-webkit-details-marker{display:none}
.kz-faq summary::after{content:"+";flex-shrink:0;font:400 26px/1 var(--font-sans);color:var(--ember-ink);transition:transform var(--fast) var(--ease-out)}
.kz-faq details[open] summary::after{transform:rotate(45deg)}
.kz-faq details p{padding:var(--space-2) 0 var(--space-3);color:var(--ink-muted);font-size:16px}

/* Filters (Work) */
.filters{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-6)}
.filters fieldset{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}
.filters legend{float:left;margin-right:var(--space-3);font:600 12px/44px var(--font-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-muted)}
.filters input{position:absolute;opacity:0;pointer-events:none}
.filters label{display:inline-flex;align-items:center;min-height:40px;padding:0 16px;border-radius:var(--radius-pill);border:1px solid var(--line);background:var(--surface-raised);font:600 14px var(--font-sans);cursor:pointer}
.filters input:checked+label{background:var(--surface-inverse);color:var(--ink-inverse);border-color:var(--surface-inverse)}
.filters input:focus-visible+label{outline:2px solid var(--focus);outline-offset:3px}

/* Divider */
.kz-hr--text{display:flex;align-items:center;gap:var(--space-4);font:600 12px/1 var(--font-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-muted);margin-block:var(--space-7) var(--space-5)}
.kz-hr--text::before,.kz-hr--text::after{content:"";flex:1;height:1px;background:var(--line)}
.kz-hr--brand{display:block;height:4px;width:64px;border-radius:2px;background:var(--kz-gradient-sunrise);border:0;margin:0}

/* Closing CTA */
.cta{padding-block:var(--space-9)}
.cta__inner{display:grid;gap:var(--space-6);align-items:center}
@media (min-width:960px){.cta__inner{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr)}}
.cta__copy{display:flex;flex-direction:column;gap:var(--space-4)}
.cta__copy p{color:var(--ink-inverse-muted);font-size:19px;max-width:52ch}
.cta__card{background:var(--surface-inverse-raised);border:1px solid var(--line-inverse);border-radius:var(--radius-xl);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-3)}
.cta__card ul{list-style:none;padding:0;display:flex;flex-direction:column;gap:10px;font-size:15px;color:var(--ink-inverse-muted)}
.cta__card li::before{content:"✓";color:var(--signal);font-weight:800;margin-right:10px}

/* Chat composer (contact) */
.kz-chat{max-width:560px;border-radius:var(--radius-xl);background:var(--surface-raised);box-shadow:var(--shadow-2);overflow:hidden;display:flex;flex-direction:column;border:1px solid var(--line)}
.kz-chat__head{display:flex;align-items:center;gap:12px;padding:16px 18px;background:var(--surface-inverse);color:var(--ink-inverse)}
.kz-chat__head small{display:block;color:var(--ink-inverse-muted);font-size:12px}
.kz-chat__avatar{width:36px;height:36px;border-radius:50%;background:var(--signal);color:var(--on-signal);display:flex;align-items:center;justify-content:center;font:800 16px var(--font-display);flex-shrink:0}
.kz-chat__body{padding:18px;display:flex;flex-direction:column;gap:12px;font-size:15px;line-height:1.5}
.kz-bubble{max-width:88%;padding:10px 14px;border-radius:14px 14px 14px 4px;background:var(--surface-alt)}
.kz-bubble--me{align-self:flex-end;border-radius:14px 14px 4px 14px;background:var(--surface-inverse);color:var(--ink-inverse);white-space:pre-wrap}
.kz-chat__step{display:flex;flex-direction:column;gap:8px}
.kz-chat__step label{font-size:13px;font-weight:600;color:var(--ink-muted)}
.kz-chat__step[hidden]{display:none}
.kz-input{width:100%;min-height:44px;border:1px solid var(--line);border-radius:var(--radius-md);padding:10px 14px;font:15px var(--font-sans);background:var(--surface);color:var(--ink)}
textarea.kz-input{min-height:96px;resize:vertical}
.kz-chat__done[hidden]{display:none}
.kz-chat__privacy{font-size:12px;color:var(--ink-muted);padding:0 18px 14px}
.copybox{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:12px 14px;border-radius:var(--radius-md);background:var(--surface-alt);font:600 16px var(--font-sans)}
.copybox button{min-height:36px;padding:0 12px;border-radius:var(--radius-pill);border:1px solid var(--line);background:var(--surface-raised);color:inherit;font:600 13px var(--font-sans);cursor:pointer}
.details{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 24px;font-size:15px}
.details dt{color:var(--ink-muted)}
.details dd{margin:0}

/* Legal */
.legal{display:grid;gap:var(--space-7)}
@media (min-width:960px){.legal{grid-template-columns:240px minmax(0,1fr)}.legal__toc{position:sticky;top:110px;align-self:start}}
.legal__toc ol{padding-left:18px;display:flex;flex-direction:column;gap:8px;font-size:14px}
.legal__toc a{text-decoration:none;color:var(--ink-muted)}
.legal__toc a:hover{color:var(--ink);text-decoration:underline}
.legal .prose h2{font-size:1.5rem;scroll-margin-top:110px}
.legal .prose{counter-reset:h}
.legal .prose h2::before{counter-increment:h;content:counter(h) ". ";color:var(--ember-ink)}
.table-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius-md)}
.table-scroll table{width:100%;border-collapse:collapse;font-size:14px}
.table-scroll th{text-align:left;font:600 12px/16px var(--font-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);padding:10px 14px;background:var(--surface-alt)}
.table-scroll td{padding:10px 14px;border-top:1px solid var(--line);vertical-align:top}

/* Footer */
.kz-footer{background:var(--surface-inverse);color:var(--ink-inverse);padding-block:var(--space-8) var(--space-6)}
.kz-footer__cols{display:grid;gap:var(--space-6)}
@media (min-width:760px){.kz-footer__cols{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1080px){.kz-footer__cols{grid-template-columns:1.3fr repeat(3,minmax(0,1fr))}}
.kz-footer h2{font:700 12px/16px var(--font-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--signal);margin-bottom:var(--space-3)}
.kz-footer ul{list-style:none;padding:0;display:flex;flex-direction:column;gap:10px;font-size:15px}
.kz-footer a{text-decoration:none}
.kz-footer a:hover{text-decoration:underline}
.kz-footer__brand{display:flex;flex-direction:column;gap:var(--space-4)}
.kz-footer__brand img{height:44px;width:auto;align-self:flex-start}
.kz-footer .muted{color:var(--ink-inverse-muted)}
.kz-footer__brand p{font-size:15px;color:var(--ink-inverse-muted);max-width:300px}
.kz-footer__legal{margin-top:var(--space-7);border-top:1px solid var(--line-inverse);padding-top:var(--space-4);display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-4);font-size:13px;color:var(--ink-inverse-muted)}
.kz-footer__legal nav{display:flex;gap:20px}
.kz-social{display:flex;gap:8px;margin-top:var(--space-3)}
.kz-social a{width:40px;height:40px;border-radius:50%;border:1px solid var(--line-inverse);display:inline-flex;align-items:center;justify-content:center}
.kz-social a:hover{border-color:var(--signal);color:var(--signal)}

/* Floating: FAB + back to top + section rail */
.float{position:fixed;right:max(16px,env(safe-area-inset-right,0px));bottom:max(16px,env(safe-area-inset-bottom,0px));z-index:40;display:flex;align-items:flex-end;gap:12px}
.kz-top{width:48px;height:48px;border-radius:50%;border:1px solid var(--line);background:var(--surface-raised);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;box-shadow:var(--shadow-1);cursor:pointer;opacity:0;pointer-events:none;transform:translateY(8px);transition:opacity var(--base),transform var(--base) var(--ease-out)}
.kz-top.is-on{opacity:1;pointer-events:auto;transform:none}
.kz-fab{display:flex;flex-direction:column-reverse;align-items:flex-end;gap:12px}
.kz-fab__main{width:56px;height:56px;border-radius:50%;border:0;background:var(--signal);color:var(--on-signal);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-2);transition:transform var(--base) var(--ease-out),background-color var(--fast)}
.kz-fab[data-open="true"] .kz-fab__main{transform:rotate(45deg);background:var(--ember);box-shadow:var(--shadow-aura)}
.kz-fab__list{display:flex;flex-direction:column;gap:10px;align-items:flex-end}
.kz-fab__list[hidden]{display:none}
.kz-fab__action{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.kz-fab__action span{font:600 14px/1 var(--font-sans);background:var(--surface-raised);padding:10px 14px;border-radius:var(--radius-pill);box-shadow:var(--shadow-1);border:1px solid var(--line)}
.kz-fab__action i{width:48px;height:48px;border-radius:50%;background:var(--surface-raised);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-1)}
.kz-rail{position:fixed;right:max(24px,env(safe-area-inset-right,0px));top:50%;transform:translateY(-50%);z-index:30;display:none}
@media (min-width:1400px){.kz-rail{display:block}}
.kz-rail ul{list-style:none;padding:0;display:flex;flex-direction:column;gap:14px}
.kz-rail a{display:flex;align-items:center;justify-content:flex-end;gap:10px;text-decoration:none;font:600 12px/1 var(--font-sans);color:var(--ink-muted)}
.kz-rail a span{opacity:0;transition:opacity var(--fast)}
.kz-rail:hover a span,.kz-rail a:focus-visible span,.kz-rail a[aria-current="true"] span{opacity:1}
.kz-rail a::after{content:"";width:10px;height:10px;border-radius:50%;border:2px solid var(--ink-muted);transition:all var(--fast);background:var(--surface)}
.kz-rail a[aria-current="true"]{color:var(--ink)}
.kz-rail a[aria-current="true"]::after{background:var(--signal);border-color:var(--signal);transform:scale(1.3)}

/* 404 */
.notfound{min-height:50vh;display:flex;flex-direction:column;justify-content:center;gap:var(--space-5)}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}

/* Work filters (generated) */
.work:has(#use-portals:checked) .kz-card[data-use]:not([data-use="portals"]){display:none}
.work:has(#use-documents:checked) .kz-card[data-use]:not([data-use="documents"]){display:none}
.work:has(#use-marketplaces:checked) .kz-card[data-use]:not([data-use="marketplaces"]){display:none}
.work:has(#use-internal:checked) .kz-card[data-use]:not([data-use="internal"]){display:none}
.work:has(#use-process:checked) .kz-card[data-use]:not([data-use="process"]){display:none}
.work:has(#use-feasibility:checked) .kz-card[data-use]:not([data-use="feasibility"]){display:none}
.work:has(#ind-legal:checked) .kz-card[data-ind]:not([data-ind="legal"]){display:none}
.work:has(#ind-property:checked) .kz-card[data-ind]:not([data-ind="property"]){display:none}
.work:has(#ind-finance:checked) .kz-card[data-ind]:not([data-ind="finance"]){display:none}
.work:has(#ind-charity:checked) .kz-card[data-ind]:not([data-ind="charity"]){display:none}
.work:has(#ind-hospitality:checked) .kz-card[data-ind]:not([data-ind="hospitality"]){display:none}
.work:has(#ind-consumer:checked) .kz-card[data-ind]:not([data-ind="consumer"]){display:none}
.work:has(#use-feasibility:checked) .work__delivery,.work:has(#ind-charity:checked) .work__delivery,.work:has(#ind-hospitality:checked) .work__delivery{display:none}
.work:has(#use-portals:checked) .work__consult,.work:has(#use-documents:checked) .work__consult,.work:has(#use-marketplaces:checked) .work__consult,.work:has(#use-process:checked) .work__consult,.work:has(#ind-legal:checked) .work__consult,.work:has(#ind-finance:checked) .work__consult,.work:has(#ind-consumer:checked) .work__consult{display:none}
.work .kz-grid{grid-auto-rows:auto}
