
:root{--bg:#000000;--tx:#F3F2EE;--mu:#A2A7AE;--ln:#26292E;--acc:#F0B35A;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:#000000;--tx:#F3F2EE;--mu:#A2A7AE;--ln:#26292E;--acc:#F0B35A}}
*,*::before,*::after{box-sizing:inherit}
html{scroll-behavior:smooth;scroll-padding-top:env(safe-area-inset-top,0px)}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--bg);color:var(--tx);font-family:Geist,Sora,"Segoe UI",system-ui,-apple-system,sans-serif;font-weight:400;line-height:1.6;text-transform:lowercase;-webkit-font-smoothing:antialiased}
.keep{text-transform:none}
a{color:var(--acc)} a:hover{color:#FFD08A}
:focus-visible{outline:2px solid var(--acc);outline-offset:3px}
.skip{position:absolute;left:-9999px} .skip:focus{left:16px;top:16px;background:var(--tx);color:var(--bg);padding:8px 12px;border-radius:8px;z-index:9}
.wrap{max-width:1280px;margin:0 auto;padding:0 clamp(20px,5vw,72px)}
.top{max-width:1280px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;padding:28px clamp(20px,5vw,72px)}
.mark{font-weight:500;font-size:18px;letter-spacing:.02em;color:var(--tx);text-decoration:none}
.top nav{display:flex;gap:clamp(18px,3vw,40px);font-size:15px}
.top nav a{color:var(--mu);text-decoration:none} .top nav a:hover{color:var(--tx)}
section{border-top:1px solid var(--ln);padding:clamp(56px,8vw,96px) 0}
section.hero{border-top:0;padding-top:clamp(64px,10vw,120px)}
h1{margin:0;font-weight:300;font-size:clamp(46px,8.2vw,112px);line-height:.98;letter-spacing:-.025em;max-width:16ch}
h2{margin:0;font-weight:300;font-size:clamp(34px,4.4vw,52px);line-height:1.05;letter-spacing:-.01em}
h3{margin:0;font-size:20px;font-weight:500}
.lede{margin:28px 0 0;font-size:clamp(18px,1.8vw,22px);line-height:1.55;color:var(--mu);max-width:44ch}
p.body{margin:0;font-size:17px;color:var(--mu);max-width:60ch}
.actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:36px}
.btn{display:inline-flex;align-items:center;min-height:52px;padding:0 26px;border-radius:10px;font-size:16px;font-weight:500;text-decoration:none}
.btn.solid{background:var(--tx);color:var(--bg)} .btn.solid:hover{background:#fff;color:var(--bg)}
.btn.line{border:1px solid var(--ln);color:var(--tx)} .btn.line:hover{border-color:var(--mu);color:var(--tx)}
.tech{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(32px,5vw,72px);align-items:start}
.tech-side{display:flex;flex-direction:column;gap:24px;padding-top:12px}
.stacks{display:flex;flex-direction:column;gap:10px}
.stacks button{all:unset;cursor:pointer;min-height:52px;padding:0 20px;border-radius:10px;border:1px solid var(--ln);color:var(--mu);font:inherit;font-size:16px;display:flex;align-items:center}
.stacks button:hover{color:var(--tx)}
.stacks button[aria-pressed="true"]{border-color:var(--acc);color:var(--tx)}
.stacks button:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.panel[hidden]{display:none}
.figure svg{width:100%;height:auto;display:block}
.svgt{font-family:Geist,Sora,system-ui,sans-serif;font-size:14px}
.caption{margin:8px 0 0;font-size:13px;color:var(--mu)}
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(28px,4vw,48px);margin-top:48px}
.steps .n{color:var(--acc);font-size:15px}
.steps div{display:flex;flex-direction:column;gap:10px}
.split{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(32px,5vw,72px);align-items:start}
.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px}
.cards div{display:flex;flex-direction:column;gap:10px}
blockquote{margin:0;font-weight:300;font-size:clamp(28px,3.4vw,40px);line-height:1.3}
.contact h2{font-size:clamp(44px,6vw,72px)}
.mail{font-size:20px}
.foot{max-width:1280px;margin:0 auto;border-top:1px solid var(--ln);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:36px clamp(20px,5vw,72px);font-size:13px;color:var(--mu)}
.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
.stats div{display:flex;flex-direction:column;gap:8px}
.stat{font-weight:300;font-size:clamp(40px,5vw,64px);line-height:1;letter-spacing:-.02em;color:var(--acc)}
@media (max-width:860px){.tech,.split{grid-template-columns:1fr} .steps,.cards{grid-template-columns:1fr}}
@media (max-width:520px){.stats{grid-template-columns:1fr}}
