
:root{--bg:#fff;--alt:#f3f3f1;--ink:#0b0b0c;--mut:#5b5e64;--line:#e2e2e0;--acc:#ff4a1c;--pos:#0a7f45;--inv:#0b0b0c;--inv-ink:#f5f5f3;color-scheme:light;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#0d0d0f;--alt:#161618;--ink:#f5f5f3;--mut:#a1a4ab;--line:#2b2b2f;--pos:#3ddc84;--inv:#f5f5f3;--inv-ink:#0b0b0c;color-scheme:dark}}
*,*::before,*::after{box-sizing:inherit}
html{scroll-behavior:smooth;scroll-padding-top:calc(env(safe-area-inset-top,0px) + 72px)}
body{margin:0;background:var(--bg);color:var(--ink);font:400 17px/1.55 'Inter Tight',system-ui,sans-serif;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);background:var(--bg);z-index:40}
a{color:inherit}h1,h2,h3{margin:0;font-weight:700;letter-spacing:-.035em;text-wrap:balance}
h1{font-size:clamp(3rem,9.5vw,8.2rem);line-height:.9}h2{font-size:clamp(2.1rem,5vw,3.8rem);line-height:.98}h3{font-size:1.35rem;letter-spacing:-.02em}
p{text-wrap:pretty}
.mono,.lbl{font:500 .74rem 'JetBrains Mono',monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--mut)}
.w{max-width:1200px;margin:0 auto;padding:0 24px}
header{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
nav{display:flex;align-items:center;justify-content:space-between;height:64px;gap:20px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:700;font-size:1.15rem;letter-spacing:-.03em}
.logo svg{width:26px;height:26px}
.links{display:flex;gap:26px;font-size:.95rem}.links a{text-decoration:none;color:var(--mut);transition:color .2s}.links a:hover,.links a.on{color:var(--ink)}
.btn{display:inline-flex;align-items:center;gap:10px;background:var(--acc);color:#0b0b0c;padding:14px 24px;border-radius:6px;font:600 .98rem 'Inter Tight',sans-serif;text-decoration:none;border:0;cursor:pointer;transition:transform .25s cubic-bezier(.2,.7,.2,1),box-shadow .25s}
.btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px -8px var(--acc)}.btn:active{transform:none}
.btn.g{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.btn.g:hover{box-shadow:inset 0 0 0 1px var(--ink)}
.burger{display:none;background:none;border:1px solid var(--line);color:var(--ink);padding:8px 14px;border-radius:6px;font:inherit;cursor:pointer}
@media(max-width:860px){.burger{display:block}.links{display:none;position:absolute;top:64px;left:0;right:0;background:var(--bg);flex-direction:column;gap:14px;padding:20px 24px;border-bottom:1px solid var(--line)}.links.open{display:flex}.hd-cta{display:none}}
section{padding:96px 0}@media(max-width:860px){section{padding:64px 0}}
.hero{padding:56px 0 0}.hero .top{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);align-items:center;gap:48px;margin-top:24px}
.hero .top>*{min-width:0}.hero h1{font-size:clamp(3.5rem,6.5vw,6rem);line-height:.98}
.hero p.sub{max-width:360px;color:var(--mut);margin:0 0 24px;font-size:1.1rem}
.hero .mq{margin-top:40px}
@media(max-width:980px){.hero{padding-top:40px}.hero .top{grid-template-columns:1fr;gap:24px}.hero h1{font-size:clamp(2.75rem,8vw,4.75rem);max-width:16ch}.hero p.sub{max-width:520px;margin-bottom:20px}.hero .mq{margin-top:32px}}
.row{display:flex;gap:12px;flex-wrap:wrap}
.led{margin-top:56px;border-top:1px solid var(--ink)}
.led .hd,.led .r{display:grid;grid-template-columns:1.4fr 1fr 1fr .8fr 1.6fr;gap:16px;align-items:center;padding:15px 0;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}
.led .r b{font-weight:600}.led .num{font-family:'JetBrains Mono',monospace;font-size:.92rem}
.bar{height:8px;background:var(--alt);border-radius:2px;overflow:hidden}.bar i{display:block;height:100%;background:var(--ink);width:0;transition:width 1.2s cubic-bezier(.2,.7,.2,1)}
.in .bar i{width:var(--w)}
.led .tot{border-bottom:0;background:var(--alt);padding-inline:12px;margin-top:0}.led .tot .num{color:var(--pos);font-weight:500}
.cap{display:flex;justify-content:space-between;gap:16px;padding:14px 0;flex-wrap:wrap}
@media(max-width:760px){.led .hd{display:none}.led .r{grid-template-columns:1fr 1fr;row-gap:6px}.led .r .bar{grid-column:1/-1}}
.chart{margin-top:8px;width:100%;height:auto}.chart path{stroke-dasharray:1200;stroke-dashoffset:1200;transition:stroke-dashoffset 2s cubic-bezier(.2,.7,.2,1) .2s}.in .chart path{stroke-dashoffset:0}
.alt{background:var(--alt)}
.head{display:grid;grid-template-columns:1fr 1.6fr;gap:48px;margin-bottom:56px;align-items:end}@media(max-width:860px){.head{grid-template-columns:1fr;gap:16px}}
.cols{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--ink)}
.cols>div{padding:24px 24px 8px 0;border-right:1px solid var(--line);margin-right:24px}.cols>div:last-child{border:0;margin:0}
.cols h3{margin:48px 0 10px}.cols p{color:var(--mut);margin:0 0 16px;font-size:.98rem}
@media(max-width:860px){.cols{grid-template-columns:1fr 1fr}.cols>div{border-right:0;margin:0;border-bottom:1px solid var(--line);padding-right:12px}}
@media(max-width:520px){.cols{grid-template-columns:1fr}}
.calc{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}@media(max-width:860px){.calc{grid-template-columns:1fr;gap:32px}}
.fld{margin-bottom:28px}.fld .t{display:flex;justify-content:space-between;margin-bottom:10px;font-weight:500}.fld output{font-family:'JetBrains Mono',monospace}
input[type=range]{width:100%;accent-color:var(--acc);height:28px}
.big{font-size:clamp(3.2rem,8vw,6rem);font-weight:700;letter-spacing:-.05em;line-height:1;font-variant-numeric:tabular-nums}
.res{border-top:1px solid var(--ink);padding-top:20px}
.idx a{display:grid;grid-template-columns:64px 1.1fr 1.6fr 32px;gap:20px;align-items:baseline;padding:26px 0;border-bottom:1px solid var(--line);text-decoration:none;transition:padding .3s cubic-bezier(.2,.7,.2,1),background .3s}
.idx a:first-child{border-top:1px solid var(--ink)}.idx a:hover{padding-left:14px;background:var(--alt)}
.idx h3{font-size:clamp(1.4rem,3vw,2.2rem)}.idx p{margin:0;color:var(--mut)}.idx .ar{transition:transform .3s;justify-self:end}.idx a:hover .ar{transform:translateX(6px);color:var(--acc)}
.idx .core{color:var(--acc);margin-left:10px;font-size:.66rem;vertical-align:middle}
@media(max-width:760px){.idx a{grid-template-columns:40px 1fr 24px}.idx p{grid-column:2/3}}
.inv{background:var(--inv);color:var(--inv-ink)}.inv .lbl,.inv p{color:color-mix(in srgb,var(--inv-ink) 65%,transparent)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:64px}@media(max-width:860px){.two{grid-template-columns:1fr;gap:32px}}
.list{list-style:none;padding:0;margin:24px 0 0}.list li{padding:14px 0;border-top:1px solid color-mix(in srgb,currentColor 18%,transparent);display:flex;justify-content:space-between;gap:16px}
.page{padding:72px 0 0}.page h1{font-size:clamp(2.8rem,8vw,6.5rem)}.page .lead{max-width:620px;color:var(--mut);font-size:1.2rem;margin:24px 0 0}
.spec{display:grid;grid-template-columns:1fr 2fr;gap:24px;padding:28px 0;border-top:1px solid var(--line)}.spec:last-child{border-bottom:1px solid var(--line)}.spec p{margin:0;color:var(--mut)}@media(max-width:700px){.spec{grid-template-columns:1fr;gap:8px}}
details{border-top:1px solid var(--line);padding:20px 0}details:last-child{border-bottom:1px solid var(--line)}summary{cursor:pointer;font-weight:600;font-size:1.1rem;list-style:none;display:flex;justify-content:space-between}summary::after{content:"+";font-family:'JetBrains Mono',monospace}details[open] summary::after{content:"–"}details p{color:var(--mut);margin:12px 0 0;max-width:640px}
form{display:grid;gap:20px}.f2{display:grid;grid-template-columns:1fr 1fr;gap:20px}@media(max-width:600px){.f2{grid-template-columns:1fr}}
label{display:grid;gap:8px}input,select,textarea{font:inherit;color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--ink);padding:10px 0;width:100%;border-radius:0;transition:border-color .2s,box-shadow .2s}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--acc);box-shadow:0 2px 0 var(--acc)}select option{background:var(--bg)}
.ok{border-top:1px solid var(--ink);padding-top:24px}
[hidden],.form-trap{display:none!important}
.form-status{margin:0;color:var(--mut);font-size:.95rem}
.form-status:empty{display:none}
.form-status[data-state="error"]{color:var(--ink);border-left:3px solid var(--acc);padding-left:12px}
.btn:disabled{opacity:.65;cursor:wait;transform:none;box-shadow:none}
.prose{max-width:700px;padding-bottom:40px}.prose h2{font-size:1.5rem;letter-spacing:-.02em;margin:40px 0 8px}.prose p{color:var(--mut);margin:0}
.cta{padding:120px 0}.cta h2{font-size:clamp(2.6rem,7vw,6rem);max-width:900px}
footer{border-top:1px solid var(--ink);padding:56px 0 32px;font-size:.92rem;color:var(--mut)}
.fg{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:32px}@media(max-width:820px){.fg{grid-template-columns:1fr 1fr}}
.fg a{display:block;text-decoration:none;margin:8px 0}.fg a:hover{color:var(--ink)}.fg h4{margin:0 0 10px}
.legal{margin-top:48px;padding-top:20px;border-top:1px solid var(--line);font-size:.82rem}
#app{animation:fade .5s cubic-bezier(.2,.7,.2,1)}@keyframes fade{from{opacity:0;transform:translateY(8px)}}
.js .rv{opacity:0;transform:translateY(24px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}.js .rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}.js .rv{opacity:1;transform:none}.bar i{width:var(--w)}.chart path{stroke-dashoffset:0}}
:focus-visible{outline:2px solid var(--acc);outline-offset:3px}
.mq{overflow:hidden;border-block:1px solid var(--ink);margin-top:64px;padding:18px 0;white-space:nowrap}.mq>div{display:flex;gap:48px;width:max-content;animation:mq 40s linear infinite}.mq:hover>div{animation-play-state:paused}.mq span{font-size:clamp(1.3rem,3vw,2rem);font-weight:600;letter-spacing:-.03em}.mq span::after{content:"/";margin-left:48px;color:var(--acc)}@keyframes mq{to{transform:translateX(-50%)}}
.cols.c3{grid-template-columns:repeat(3,1fr)}@media(max-width:860px){.cols.c3{grid-template-columns:1fr}}
.pl{display:grid;margin-top:8px}.pl a{text-decoration:none;font-weight:600;padding:12px 0;border-top:1px solid var(--line);transition:padding .25s,color .25s}.pl a:hover{padding-left:10px;color:var(--acc)}
.grp{margin-bottom:72px}

.skip-link{position:fixed;z-index:100;top:8px;left:16px;padding:10px 16px;background:var(--ink);color:var(--bg);transform:translateY(-150%)}.skip-link:focus{transform:none}
::selection{background:var(--acc);color:#0b0b0c}input,textarea{caret-color:var(--acc)}a{text-underline-offset:.2em}
.site-header>.w{position:relative}.site-header .links{gap:22px}.nav-services{display:flex;align-items:center;gap:3px}.menu-toggle{display:grid;place-items:center;width:28px;height:36px;background:none;border:0;color:var(--mut);cursor:pointer}.menu-toggle[aria-expanded="true"] svg{transform:rotate(180deg)}
.service-menu{position:absolute;inset:64px 24px auto;background:var(--bg);border:1px solid var(--line);padding:28px 32px 20px;max-height:calc(100dvh - 88px);overflow:auto}.menu-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 32px}.menu-group{min-width:0}.menu-group a{display:block;margin:8px 0;line-height:1.35;font-size:.9rem}.menu-group .menu-title{font-size:1rem;font-weight:600;color:var(--ink);margin:0 0 12px}.menu-all{display:block;margin-top:24px;padding-top:16px;border-top:1px solid var(--line);font-weight:600}
.breadcrumbs{height:auto;justify-content:flex-start;flex-wrap:wrap;gap:10px;margin-bottom:24px;font-size:.84rem;color:var(--mut)}.breadcrumbs a{text-decoration:none}.breadcrumbs a:hover{color:var(--ink)}.page h1{max-width:1050px;font-size:clamp(2.8rem,7vw,6rem);line-height:1}.page .lead{max-width:720px}.page .row{margin-top:28px}
.detail-page section:not(.page):not(.cta){padding:72px 0}.body-copy p{color:var(--mut);margin:0 0 18px;max-width:66ch}.body-copy p:last-child{margin-bottom:0}.body-copy .plain-list{margin-top:20px}.plain-list{padding-left:1.1em;margin:0;display:grid;gap:12px;color:var(--mut)}.plain-list li::marker{color:var(--acc)}.section-title{margin:0 0 24px}.text-link{display:inline-block;margin-top:24px;font-weight:600;text-decoration:none}.text-link:hover{color:var(--acc)}
.group-index .mono{color:var(--acc)}.group-intro{display:grid;grid-template-columns:1fr 1.6fr;gap:48px;margin-bottom:32px}.group-intro p{margin:12px 0 0;color:var(--mut);max-width:60ch}.group-intro h2{font-size:clamp(2rem,4vw,3rem)}.group-section+.group-section{margin-top:80px}.group-section .idx{margin-top:28px}
.article-list>a{display:grid;grid-template-columns:160px minmax(0,1fr) 24px;gap:32px;align-items:baseline;padding:28px 0;border-top:1px solid var(--line);text-decoration:none}.article-list>a:last-child{border-bottom:1px solid var(--line)}.article-list h3{font-size:clamp(1.35rem,2.8vw,2rem)}.article-list p{margin:10px 0 0;color:var(--mut);max-width:64ch}.article-list a:hover h3{color:var(--acc)}.article-body{max-width:760px;margin:auto}.article-body h2{font-size:clamp(1.6rem,4vw,2.3rem);line-height:1.1;margin:40px 0 16px}.article-body h2:first-child{margin-top:0}.article-body p,.article-body li{color:var(--mut);font-size:1.08rem;line-height:1.7}.article-body .plain-list{margin:20px 0}
.process-step{display:grid;grid-template-columns:64px 1fr 1.5fr;gap:28px;border-top:1px solid var(--line);padding:32px 0}.process-step h2{font-size:2rem}.process-step p{color:var(--mut);margin:0 0 14px}.process-step .output{margin:0;color:var(--ink);font-weight:500}.process-step:last-child{border-bottom:1px solid var(--line)}
.cta h2{margin-bottom:32px}.footer-top{display:grid;grid-template-columns:2fr 1fr 1.5fr;gap:48px;margin-bottom:48px}.footer-top a,.footer-services a{display:block;text-decoration:none;margin:8px 0}.footer-top a:hover,.footer-services a:hover{color:var(--ink)}.footer-top .logo{display:flex;color:var(--ink);margin-top:0}.footer-intro{max-width:330px}.footer-services{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px}.footer-services h4{margin:0 0 12px;color:var(--ink)}.footer-services h4 a{margin:0}.footer-services a{font-size:.86rem}.legal{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}.legal div{display:flex;gap:20px}.legal a{text-decoration:none}
@media(max-width:1050px){.site-header .burger{display:block}.site-header .hd-cta{display:none}.site-header .links{display:none;position:absolute;top:64px;left:0;right:0;background:var(--bg);flex-direction:column;align-items:stretch;gap:16px;padding:20px 24px;border-bottom:1px solid var(--line);max-height:calc(100dvh - 64px);overflow:auto}.site-header .links.open{display:flex}.nav-services{flex-wrap:wrap;justify-content:space-between}.nav-services>a{flex:1}.menu-toggle{width:44px;height:44px;margin:-10px 0}.service-menu{position:static;flex-basis:100%;padding:20px 0 0;border:0;overflow:visible;max-height:none}.menu-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.service-menu a{padding:4px 0}.menu-all{margin-top:20px}}
@media(max-width:860px){.group-intro{grid-template-columns:1fr;gap:16px}.detail-page section:not(.page):not(.cta){padding:56px 0}.footer-top{grid-template-columns:1fr 1fr;gap:28px}.footer-top>div:first-child{grid-column:1/-1}.footer-services{grid-template-columns:repeat(2,minmax(0,1fr))}.process-step{grid-template-columns:40px 1fr;gap:16px}.process-step>div{grid-column:2}.article-list>a{grid-template-columns:1fr 24px;gap:14px}.article-list .lbl{grid-column:1/-1}.article-list .ar{grid-column:2;grid-row:2}.page .lead{font-size:1.1rem}}
@media(max-width:480px){.menu-grid{grid-template-columns:1fr}.footer-top{grid-template-columns:1fr}.footer-top>div:first-child{grid-column:auto}.footer-services{gap:28px 20px}.footer-top a[href^="mailto:"]{overflow-wrap:anywhere}}
.heading-link{color:inherit;text-decoration:none}.heading-link:hover{color:var(--acc)}.capability{display:block;padding:22px 0}.capability p{color:var(--ink)}
