@font-face{font-family:'Geist';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/geist-400.woff2) format('woff2')}
@font-face{font-family:'Geist';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/geist-500.woff2) format('woff2')}
@font-face{font-family:'Geist';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/geist-600.woff2) format('woff2')}
@font-face{font-family:'Geist Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/geist-mono-400.woff2) format('woff2')}
@font-face{font-family:'Geist Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/geist-mono-500.woff2) format('woff2')}
@font-face{font-family:'Geist Mono';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/geist-mono-600.woff2) format('woff2')}
body{margin:0;background:#F4F6FA;color:#0E1A2B;font-family:'Geist',system-ui,sans-serif;font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
@media(max-width:720px){body{font-size:16px}}
a{color:#1F5BFF}a:hover{color:#1546CC}
[id]{scroll-margin-top:96px}
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid #1F5BFF;outline-offset:3px;border-radius:6px}
.wrap{max-width:1200px;margin:0 auto;padding:0 32px}
@media(max-width:720px){.wrap{padding:0 16px}}
.g12{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;row-gap:48px}
.c1-7{grid-column:1/8}.c1-6{grid-column:1/7}.c1-5{grid-column:1/6}.c2-12{grid-column:2/12}.c6-13{grid-column:6/13}.c7-13{grid-column:7/13}.c8-13{grid-column:8/13}.c1-13{grid-column:1/-1}
@media(max-width:900px){.g12>*{grid-column:1/-1 !important;grid-row:auto !important}}
.sec{padding:128px 0}.sec-xl{padding:160px 0}
@media(max-width:720px){.sec{padding:80px 0}.sec-xl{padding:80px 0}}
.dark{background:#0E1A2B;color:#FFFFFF}.dark a{color:#7FA2FF}
.white{background:#FFFFFF}
.t-display{margin:0;font-weight:600;font-size:clamp(44px,3.6vw + 20px,72px);line-height:1.05;letter-spacing:-0.035em;text-wrap:balance}
.t-h2{margin:0;font-weight:600;font-size:clamp(30px,1.4vw + 22px,40px);line-height:1.15;letter-spacing:-0.02em;text-wrap:balance}
.t-h3{margin:0;font-weight:600;font-size:clamp(22px,0.8vw + 17px,28px);line-height:1.25;letter-spacing:-0.01em;text-wrap:balance}
.t-sub{margin:0;font-weight:500;font-size:clamp(18px,0.3vw + 16px,20px);line-height:1.4;letter-spacing:-0.005em}
.t-lead{margin:0;font-weight:400;font-size:clamp(18px,0.3vw + 16px,20px);line-height:1.55;max-width:65ch;text-wrap:pretty}
.t-body{margin:0;max-width:65ch;text-wrap:pretty;hyphens:auto}
.t-small{margin:0;font-size:14px;line-height:1.5;letter-spacing:0.005em}
.t-eye{margin:0;font-family:'Geist Mono',monospace;font-weight:500;font-size:13px;line-height:1.2;letter-spacing:0.08em;text-transform:uppercase}
.t-data{font-family:'Geist Mono',monospace;font-weight:500;font-size:15px;line-height:1.4;font-variant-numeric:tabular-nums}
.t-cap{margin:0;font-family:'Geist Mono',monospace;font-size:13px;line-height:1.5}
.t-stat{font-weight:600;font-size:clamp(36px,1.2vw + 30px,48px);line-height:1;letter-spacing:-0.03em;font-variant-numeric:tabular-nums}
.t-stat.mono{font-family:'Geist Mono',monospace;font-weight:500;letter-spacing:-0.04em}
.muted{color:#5B6678}.dark .muted{color:#A9B6CB}
.blue{color:#1F5BFF}.dark .blue{color:#7FA2FF}
.hblock{margin-bottom:48px}
.hblock .t-eye+*{margin-top:8px}.hblock h2+p{margin-top:16px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:16px 24px;box-sizing:border-box;border-radius:10px;font-weight:500;font-size:16px;line-height:1;letter-spacing:0.005em;text-decoration:none;transition:background-color .16s ease-out,border-color .16s ease-out;white-space:nowrap}
.btn-p{background:#1F5BFF;color:#FFFFFF !important}.btn-p:hover{background:#1546CC}
.btn-s{border:1px solid #DCE1EA;color:#0E1A2B !important;background:#FFFFFF}.btn-s:hover{border-color:#0E1A2B}
.card{display:flex;flex-direction:column;background:#FFFFFF;border:1px solid #DCE1EA;border-radius:16px;padding:32px;text-decoration:none;color:#0E1A2B;transition:border-color .16s ease-out,box-shadow .16s ease-out,transform .16s ease-out}
.card:hover,.card:focus-visible{border-color:#1F5BFF;box-shadow:0 8px 24px rgba(14,26,43,.08);color:#0E1A2B}
@media(hover:hover){.card:hover,.card:focus-visible{transform:translateY(-2px)}}
.arr{display:inline-block;transition:transform .16s ease-out}
.card:hover .arr,.card:focus-visible .arr{transform:translateX(4px)}
.sample{display:inline-flex;align-items:center;font-family:'Geist Mono',monospace;font-size:11px;font-weight:500;letter-spacing:0.04em;padding:3px 8px;border-radius:999px;border:1px solid #9AA6B8;color:#5B6678;background:transparent;white-space:nowrap}
.dark .sample.on-dark{border-color:#7FA2FF;color:#7FA2FF}
.soon{display:inline-flex;font-family:'Geist Mono',monospace;font-size:12px;font-weight:500;padding:4px 10px;border-radius:999px;border:1px dashed #1F5BFF;color:#1F5BFF}
.runway{height:0;border-top:2px dashed #9AA6B8}
.dark .runway{border-top-color:#33445F}

.hdr{position:sticky;top:0;z-index:20;background:rgba(244,246,250,.9);backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid transparent;transition:background-color .2s ease-out,border-color .2s ease-out}
.hdr .bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:24px;padding-bottom:24px;transition:padding .2s ease-out;position:relative}
.hdr.is-condensed{background:#FFFFFF;border-bottom-color:#DCE1EA}
.hdr.is-condensed .bar{padding-top:12px;padding-bottom:12px}
.nav-links{display:flex;align-items:center;gap:32px}
.nav-links a{color:#0E1A2B;text-decoration:none;font-weight:500;font-size:15px;padding:8px 0;border-bottom:2px solid transparent}
.nav-links a:hover{color:#1F5BFF}
.nav-links a[aria-current]{border-bottom:2px dashed #1F5BFF}
.hdr-right{display:flex;align-items:center;gap:16px}
.lang a{font-family:'Geist Mono',monospace;font-size:14px;text-decoration:none}
.menu-btn{display:none;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid #DCE1EA;border-radius:10px;background:#FFFFFF;cursor:pointer;padding:0}
.cta-short{display:none}
@media(max-width:960px){
.menu-btn{display:inline-flex}
.nav-links{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:#FFFFFF;border-bottom:1px solid #DCE1EA;padding:8px 16px 16px}
.nav-links.open{display:flex}
.nav-links a{padding:16px 0;border-bottom:1px solid #EEF1F6;font-size:17px}
.hdr .btn{padding:12px 16px;min-height:44px;font-size:15px}
.cta-long{display:none}.cta-short{display:inline}
}

.hero-art{position:relative}
.lw-path{stroke-dasharray:1;stroke-dashoffset:1;animation:lw-draw 1.1s cubic-bezier(.65,0,.25,1) .1s forwards}
.lw-dot{transform-box:fill-box;transform-origin:center;transform:scale(0);animation:lw-pop .35s ease-out 2.2s forwards}
.chip-a{opacity:0;animation:lw-a 1.35s linear 1s forwards}
.chip-b{opacity:0;animation:lw-b 1.15s linear 1.2s forwards}
.chip-c{opacity:0;animation:lw-c 1s ease-out 1.35s forwards}
@keyframes lw-draw{to{stroke-dashoffset:0}}
@keyframes lw-pop{0%{transform:scale(0)}70%{transform:scale(1.2)}100%{transform:scale(1)}}
@keyframes lw-a{0%{opacity:0;transform:translate(-278px,218px)}8%{opacity:1;transform:translate(-268px,218px)}32%{transform:translate(-152px,218px)}100%{opacity:1;transform:translate(0,0)}}
@keyframes lw-b{0%{opacity:0;transform:translate(-211px,122px)}8%{opacity:1;transform:translate(-201px,122px)}46%{transform:translate(-85px,122px)}100%{opacity:1;transform:translate(0,0)}}
@keyframes lw-c{0%{opacity:0;transform:translate(-66px,-56px)}15%{opacity:1}60%{transform:translate(0,-56px)}100%{opacity:1;transform:translate(0,0)}}
@media (prefers-reduced-motion: reduce),(max-width:720px){.lw-path,.lw-dot,.chip-a,.chip-b,.chip-c{animation:none;opacity:1;transform:none;stroke-dashoffset:0}}
@media(max-width:720px){.hero-art svg{max-height:220px}}

.bento{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.bento .wide{grid-column:span 2}
@media(max-width:900px){.bento{grid-template-columns:1fr}.bento .wide{grid-column:auto}}
.mini{margin-top:24px;border:1px solid #DCE1EA;border-radius:10px;background:#F9FAFC;padding:16px;font-size:13px;line-height:1.4}
.desk{position:relative;height:500px}
.desk .paper{position:absolute;width:400px;transition:box-shadow .16s ease-out;max-width:100%;background:#FFFFFF;color:#0E1A2B;border-radius:10px;padding:24px;box-sizing:border-box;box-shadow:0 18px 40px rgba(0,0,0,.35);font-size:13px;line-height:1.45}
.desk .paper:hover,.desk .paper:focus-visible{z-index:10 !important;box-shadow:0 24px 56px rgba(0,0,0,.5)}
.desk .paper:focus-visible{outline:2px solid #7FA2FF;outline-offset:4px}
@media(max-width:1180px){.desk{height:auto;display:flex;flex-direction:column;gap:24px}.desk .paper{position:static;width:100%;transform:none !important}}
.doc-row{display:grid;gap:8px;padding:8px 0;border-top:1px solid #EEF1F6;font-family:'Geist Mono',monospace;font-size:12px;font-variant-numeric:tabular-nums}
.win{border-radius:14px;overflow:hidden;border:1px solid #22344F;background:#15243A}
.win-bar{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid #22344F}
.win-dot{width:10px;height:10px;border-radius:50%;background:#33445F}
.unit{position:relative}
.unit input{padding-right:72px}
.unit span{position:absolute;right:16px;bottom:15px;font-family:'Geist Mono',monospace;font-size:13px;color:#5B6678;pointer-events:none}
label{display:flex;flex-direction:column;gap:8px;font-weight:500;font-size:14px}
input{font:inherit;font-family:'Geist Mono',monospace;font-size:16px;font-variant-numeric:tabular-nums;padding:12px 16px;border:1px solid #DCE1EA;border-radius:10px;min-height:48px;box-sizing:border-box;background:#FFFFFF;color:#0E1A2B;width:100%}
.step{border-top:2px dashed #9AA6B8;padding-top:24px}
.step .num{color:#5B6678}
@supports (animation-timeline: view()){
.step{animation:lw-step linear both;animation-timeline:view();animation-range:entry 70% cover 45%}
.step .num{animation:lw-num linear both;animation-timeline:view();animation-range:entry 70% cover 45%}
}
@keyframes lw-step{to{border-top-color:#1F5BFF}}
@keyframes lw-num{to{color:#1F5BFF}}
details{border-bottom:1px solid #DCE1EA}
summary{list-style:none;cursor:pointer;padding:24px 0;display:flex;justify-content:space-between;gap:24px;font-weight:500;font-size:clamp(18px,0.3vw + 16px,20px);line-height:1.4}
summary::-webkit-details-marker{display:none}
summary .pm{font-family:'Geist Mono',monospace;color:#5B6678;flex:none;display:inline-block;transition:transform .16s ease-out}
details[open] summary .pm{transform:rotate(45deg)}
details>p{margin:0 0 24px}
.m365{border:2px solid #0E1A2B;border-radius:16px;padding:24px;background:#FFFFFF;position:relative}
.m365-chip{border:1px solid #DCE1EA;border-radius:10px;padding:12px 16px;background:#F4F6FA;font-weight:500;font-size:15px}
@media (prefers-reduced-motion: reduce){*{transition:none !important}.step,.step .num{animation:none}}

.skip{position:absolute;left:16px;top:-64px;z-index:100;background:#0E1A2B;color:#FFFFFF;padding:12px 16px;border-radius:8px;text-decoration:none;font-weight:500}
.skip:focus{top:16px;color:#FFFFFF}
.lang{white-space:nowrap}
@media (max-width:640px){.win>div:nth-child(2){grid-template-columns:1fr!important;min-height:0!important}.win>div:nth-child(2)>div:first-child{border-right:0!important;border-bottom:1px solid #22344F}.win-bar>.t-cap{display:none}}
.prose{max-width:68ch}
.prose h2{margin:48px 0 16px;font-weight:600;font-size:clamp(22px,0.8vw + 17px,28px);line-height:1.25;letter-spacing:-0.01em}
.prose p,.prose li{color:#33415A;hyphens:auto}
.prose ul{padding-left:20px}
.prose li+li{margin-top:8px}


.dm-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);min-height:380px}
.dm-list{border-right:1px solid #22344F;padding:16px;display:flex;flex-direction:column;gap:8px}
.dm-item{border-radius:8px;padding:12px;background:#1B2C45}
.dm-t{font-weight:500;font-size:14px}
.dm-new{background:#1F5BFF;transition:opacity .4s ease,transform .4s ease}
.dm-pane{padding:24px;display:flex;flex-direction:column;gap:16px}
.dm-status{margin:0;display:flex;align-items:center;gap:8px;color:#C9D4E5;font-size:13px;min-height:20px}
.dm-pulse{width:8px;height:8px;border-radius:50%;background:#7FA2FF;flex:none}
.dm-doc{background:#FFFFFF;color:#0E1A2B;border-radius:8px;padding:16px;font-size:13px;transition:opacity .4s ease}
.dm-fill{transition:opacity .35s ease}
.dm-check{display:inline-flex;align-self:flex-start;gap:8px;padding:6px 12px;border-radius:999px;border:1px solid #2F6B4F;color:#8FE3B8;transition:opacity .4s ease}
.dm-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin-top:16px}
.dm-steps{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 24px;color:#7D8BA3;font-size:13px}
.dm-steps li{display:flex;align-items:center;gap:8px;transition:color .3s ease}
.dm-n{width:22px;height:22px;border-radius:50%;border:1px solid #33445F;display:inline-grid;place-items:center;font-family:'Geist Mono',ui-monospace,monospace;font-size:11px;transition:background .3s ease,border-color .3s ease}
.dm-steps li.on{color:#FFFFFF}.dm-steps li.on .dm-n{background:#1F5BFF;border-color:#1F5BFF}
.dm-replay{background:none;border:1px solid #33445F;color:#C9D4E5;border-radius:8px;padding:8px 14px;cursor:pointer}
.dm-replay:hover{border-color:#7FA2FF;color:#FFFFFF}
[data-demo][data-s="0"] .dm-new{opacity:0;transform:translateY(-8px)}
[data-demo][data-s="0"] .dm-doc,[data-demo][data-s="1"] .dm-doc{opacity:.15}
[data-demo] .dm-fill.off{opacity:0}
[data-demo]:not([data-s="4"]):not([data-s="5"]) .dm-check{opacity:0}
[data-demo][data-s="5"] .dm-status{color:#8FE3B8}
[data-demo][data-s="1"] .dm-pulse,[data-demo][data-s="2"] .dm-pulse,[data-demo][data-s="3"] .dm-pulse{animation:dm-p 1s ease-in-out infinite}
[data-demo][data-s="5"] .dm-pulse{background:#8FE3B8}
@keyframes dm-p{50%{opacity:.25}}
@media (max-width:640px){.dm-grid{grid-template-columns:1fr;min-height:0}.dm-list{border-right:0;border-bottom:1px solid #22344F}.dm-list .dm-item:not(.dm-new){display:none}}
@media (prefers-reduced-motion: reduce){.dm-pulse{animation:none !important}}
.proof{display:grid;gap:4px;border-left:2px solid #1F5BFF;padding-left:24px}
.proof .t-stat{font-size:clamp(28px,1vw + 20px,36px);line-height:1.1}
.fine{margin-top:32px;font-size:13px;color:#5B6678}
