*{box-sizing:border-box}
:root{--bg:#e8efed;--sf:#f6faf9;--ink:#10231f;--mut:#4d6660;--ac:#00724d;--acs:#cde4da;--ln:#bfd0ca;--on:#fff;--led:#ff9d2e;color-scheme:light;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:#0e1917;--sf:#162522;--ink:#e2eee9;--mut:#9fb8b0;--ac:#52d4a2;--acs:#1f3b34;--ln:#2b433d;--on:#06211a;color-scheme:dark}}
:root[data-theme="dark"]{--bg:#0e1917;--sf:#162522;--ink:#e2eee9;--mut:#9fb8b0;--ac:#52d4a2;--acs:#1f3b34;--ln:#2b433d;--on:#06211a;color-scheme:dark}
html{scroll-padding-top:calc(env(safe-area-inset-top,0px) + 70px)}
body{margin:0;background:var(--bg);color:var(--ink);font:400 17px/1.6 "IBM Plex Sans",system-ui,sans-serif}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);background:var(--bg);z-index:10}
h1,h2,.st b,.it b{font-family:"Bricolage Grotesque","IBM Plex Sans",system-ui,sans-serif}
button{font:inherit;color:inherit;cursor:pointer}
:focus-visible{outline:3px solid var(--ac);outline-offset:2px}
.nv{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;display:flex;align-items:center;gap:12px;padding:10px max(20px,calc((100% - 1040px)/2));background:var(--bg);border-bottom:1px solid var(--ln)}
.lg{font:800 20px "Bricolage Grotesque",sans-serif;color:var(--ac);text-decoration:none}
nav{display:flex;gap:4px;overflow-x:auto;flex:1;scrollbar-width:none}
nav a{padding:6px 12px;border-radius:99px;color:var(--mut);text-decoration:none;white-space:nowrap;font-size:15px}
nav a.on{background:var(--acs);color:var(--ink)}
.lw{display:flex;gap:6px;align-items:center}
.fg{padding:0;width:34px;height:24px;border-radius:5px;border:2px solid var(--ln);background:none;overflow:hidden;opacity:.55;line-height:0;transition:opacity .2s,border-color .2s}
.fg svg{display:block;width:100%;height:100%}.fg:hover{opacity:.85}
.fg[aria-pressed=true]{opacity:1;border-color:var(--ac)}
.zt b{font-weight:400}
#th{width:38px;height:38px;border-radius:50%;border:1.5px solid var(--ln);background:var(--sf)}
.pg{position:absolute;left:0;right:0;bottom:-1px;height:3px}.pg i{display:block;height:100%;width:0;background:var(--ac)}
main{max-width:1040px;margin:0 auto;padding:0 20px}
section{padding:56px 0}
h2{font-size:clamp(28px,4vw,40px);margin:0 0 8px;line-height:1.1;letter-spacing:-.02em}
.sub{color:var(--mut);margin:0 0 24px;max-width:60ch}
.hero{display:grid;grid-template-columns:1.15fr 1fr;gap:40px;align-items:center;padding-top:44px}
@media(max-width:820px){.hero{grid-template-columns:1fr}}
.ph{width:96px;height:96px;border-radius:50%;object-fit:cover;border:3px solid var(--ac);transition:transform .4s}.ph:hover{transform:rotate(-6deg) scale(1.06)}
h1{font-size:clamp(40px,7vw,68px);line-height:1;margin:18px 0 10px;letter-spacing:-.03em;font-weight:800}
.role{font-size:clamp(20px,3vw,26px);color:var(--ac);font-weight:500;min-height:1.6em;margin:0 0 14px}
.cur{display:inline-block;width:2px;height:1em;background:currentColor;margin-left:3px;vertical-align:-.12em;animation:bl 1s steps(2) infinite}
@keyframes bl{50%{opacity:0}}
.lead{max-width:56ch;margin:0}
.facts{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}
.facts span{padding:4px 12px;border:1px solid var(--ln);border-radius:99px;font-size:15px;background:var(--sf)}
.st{display:flex;gap:28px;margin:22px 0}.st b{display:block;font-size:36px;line-height:1}.st span{font-size:14px;color:var(--mut)}
.cta{display:flex;flex-wrap:wrap;gap:10px}
.bt{display:inline-block;padding:11px 20px;border-radius:10px;background:var(--ac);color:var(--on);border:2px solid var(--ac);text-decoration:none;font-weight:500}
.bt.g{background:transparent;color:var(--ink);border-color:var(--ln)}.bt:hover{filter:brightness(1.1)}
.bd{background-color:var(--sf);background-image:radial-gradient(var(--ln) 1.2px,transparent 1.4px);background-size:16px 16px;border:2px solid var(--ln);border-radius:26px;padding:24px;transition:border-color .3s}
.bd.on{border-color:var(--led)}.bd h2{font-size:24px}.bd p{margin:0 0 4px;color:var(--mut);font-size:15px}
.rw{display:flex;align-items:center;margin:18px 0}.pin{font-size:14px;color:var(--mut);padding-right:10px}
.wire{flex:1;height:5px;border-radius:5px;background:var(--ln)}
.bd.on .wire{background:repeating-linear-gradient(90deg,var(--led) 0 10px,transparent 10px 20px);animation:fl .5s linear infinite}
@keyframes fl{to{background-position:20px 0}}
.led{width:56px;height:56px;border-radius:50%;background:#6b5a46;border:3px solid var(--ink);transition:background .06s,box-shadow .06s}
.led.on{background:var(--led);box-shadow:0 0 0 6px rgba(255,157,46,.25),0 0 40px 12px rgba(255,157,46,.55)}
pre{background:var(--bg);border-radius:12px;padding:12px 14px;font:14px/1.5 ui-monospace,Menlo,Consolas,monospace;overflow-x:auto;margin:0 0 14px}pre b{color:var(--ac)}
.rg{display:flex;gap:12px;align-items:center;margin-bottom:14px}.rg input,.sc input{flex:1;accent-color:var(--ac)}
.ch{padding:6px 14px;border-radius:99px;border:1.5px solid var(--ln);background:var(--sf);list-style:none}
button.ch.on{background:var(--ac);color:var(--on);border-color:var(--ac)}
.fl,.tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 20px}
.sc{display:flex;gap:16px;align-items:center;margin-bottom:18px}.sc output{min-width:150px;font-weight:500;text-align:right}
.tl{list-style:none;margin:0;padding:0 0 0 22px;border-left:3px solid var(--ln);display:grid;gap:14px}
.it{position:relative;border:1.5px solid var(--ln);border-radius:14px;background:var(--sf);transition:opacity .25s,border-color .25s}
.it::before{content:"";position:absolute;left:-30px;top:20px;width:13px;height:13px;border-radius:50%;background:var(--bg);border:3px solid var(--ln)}
.it.act{border-color:var(--ac)}.it.act::before{background:var(--ac);border-color:var(--ac);box-shadow:0 0 0 5px var(--acs)}.it.dim{opacity:.4}
.it>button{width:100%;text-align:left;display:grid;gap:2px;padding:14px 18px;background:none;border:0}
.it b{font-size:19px;line-height:1.25}.it small{color:var(--mut);font-size:14px}
.tag{justify-self:start;font-size:13px;padding:1px 10px;border-radius:99px;background:var(--acs)}
.x{display:grid;grid-template-rows:0fr;transition:grid-template-rows .25s}.x>p{overflow:hidden;margin:0;padding:0 18px;color:var(--mut)}
button[aria-expanded=true]+.x{grid-template-rows:1fr}button[aria-expanded=true]+.x>p{padding:0 18px 16px}
#sk,#gc{list-style:none;margin:0;padding:0;display:grid;gap:12px}
#sk li{display:grid;grid-template-columns:minmax(120px,200px) 1fr 140px;gap:14px;align-items:center}
#sk.fx,#gc{display:flex;flex-wrap:wrap}#sk.fx li{display:block}
@media(max-width:600px){#sk li{grid-template-columns:1fr auto}#sk .br{grid-column:1/-1;order:3}}
.br{height:10px;border-radius:9px;background:var(--acs);overflow:hidden}.br i{display:block;height:100%;width:0;background:var(--ac);border-radius:9px;transition:width .8s cubic-bezier(.2,.8,.2,1)}.go .br i{width:var(--w)}
#sk em{font-style:normal;color:var(--mut);font-size:15px;text-align:right}
#gc li{animation:pp .35s both}@keyframes pp{from{opacity:0;transform:scale(.8)}}
.zg{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
.zt{padding:26px;border:1.5px solid var(--ln);border-radius:18px;background:var(--sf);text-align:left}.zt span{display:block;font-size:42px}.zt small{color:var(--mut)}
@keyframes bn{30%{transform:translateY(-14px) rotate(-8deg)}60%{transform:none}}.zt.bn span{animation:bn .5s}
.kg{display:grid;grid-template-columns:1fr 1fr;gap:24px}@media(max-width:760px){.kg{grid-template-columns:1fr}}
.kc{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 18px;border:1.5px solid var(--ln);border-radius:14px;background:var(--sf);margin-bottom:12px}
.kc small{display:block;color:var(--mut);line-height:1.2}
input,textarea{width:100%;font:inherit;padding:11px 14px;border-radius:10px;border:1.5px solid var(--ln);background:var(--sf);color:var(--ink);margin-bottom:10px}
#cf .bt{font:inherit;font-weight:500}#cf .bt:disabled{opacity:.6;cursor:wait}
#fs{margin:12px 0 0;min-height:1.4em;font-size:15px}#fs.ok{color:var(--ac)}#fs.err{color:#c0392b}
#ts{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translate(-50%,40px);opacity:0;background:var(--ink);color:var(--bg);padding:10px 18px;border-radius:10px;transition:.3s;z-index:30;pointer-events:none}#ts.on{opacity:1;transform:translate(-50%,0)}
#up{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));opacity:0;pointer-events:none;transition:opacity .3s;padding:8px 16px;border-radius:99px;border:1.5px solid var(--ln);background:var(--sf)}#up.sh{opacity:1;pointer-events:auto}
footer{text-align:center;color:var(--mut);padding:30px 0 60px;font-size:14px}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
