@font-face{font-family:'Fraunces';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/fraunces-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/fraunces-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Instrument Sans';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/instrument-sans-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Instrument Sans';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/instrument-sans-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/jetbrains-mono-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/jetbrains-mono-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/space-grotesk-latin-700-normal.woff2) format('woff2')}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;min-height:100vh}
img,svg{display:block;max-width:100%}
a{color:inherit}
.skip{position:absolute;left:8px;top:-60px;padding:12px 16px;background:#fff;color:#000;z-index:99}
.skip:focus{top:8px}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.lang a,.nav a,.btn{min-height:44px;display:inline-flex;align-items:center}
.lang [aria-current]{text-decoration:underline;text-underline-offset:4px;font-weight:700}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.tag-sample{font:500 11px/1 var(--mono);letter-spacing:.04em}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
@media (forced-colors:active){.btn{border:2px solid ButtonText}}


.signal{--bg:#0a0f0c;--panel:#101812;--ink:#e6efe8;--mut:#9fb0a4;--acc:#c6f432;--line:#24342a;--focus:#c6f432;--mono:'JetBrains Mono',ui-monospace,monospace;--disp:'Space Grotesk',system-ui,sans-serif;--body:'Space Grotesk',system-ui,sans-serif;--fill:var(--acc);--onfill:#0a0f0c;--hov:#fff;--r:0px;
background:var(--bg);color:var(--ink);font:400 17px/1.6 var(--body)}
.signal .wrap{max-width:1280px;margin:0 auto;padding:0 32px}
.signal .hd{border-bottom:1px solid var(--line)}
.signal .hdin{display:flex;align-items:center;gap:28px;min-height:72px}
.signal .brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--acc);margin-right:auto}
.signal .mark{width:30px;height:30px}.signal .wm{color:var(--ink);font-weight:700;font-size:18px}
.signal .nav{display:flex;gap:6px;font:400 14px var(--mono)}
.signal .nav a{padding:0 12px;text-decoration:none;color:var(--mut)}
.signal .nav a:hover,.signal .nav a[aria-current]{color:var(--acc)}
.signal .lang{font:400 13px var(--mono);display:flex;gap:6px;align-items:center;color:var(--mut)}
.signal .lang a{padding:0 6px;text-decoration:none}
.signal .btn-cta{border-radius:var(--r);background:var(--fill);color:var(--onfill);font-weight:700;padding:0 20px;text-decoration:none}
.signal .btn-cta:hover{background:var(--hov)}
.signal .hero{display:grid;grid-template-columns:1.5fr 1fr;gap:64px;padding-block:80px 72px;align-items:stretch}
.signal h1{overflow-wrap:break-word;font-size:clamp(44px,6.6vw,104px);line-height:.98;letter-spacing:-.035em;margin:0;font-weight:700}
.signal h1 em{font-style:normal;color:var(--acc)}
.signal .sub{font:400 15px var(--mono);color:var(--mut);margin:32px 0 0;max-width:46ch}
.signal .index{list-style:none;margin:0;padding:0;border-top:1px solid var(--line);font:400 15px var(--mono)}
.signal .index a{display:grid;grid-template-columns:44px 1fr auto;min-height:56px;align-items:center;text-decoration:none;border-bottom:1px solid var(--line);padding:0 4px}
.signal .index a:hover{background:var(--acc);color:var(--onfill)}
.signal .index span:first-child{color:var(--acc)}.signal .index a:hover span:first-child{color:var(--onfill)}
.signal .facts{display:flex;gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font:400 14px var(--mono)}
.signal .facts div{flex:1;padding:20px 24px;border-right:1px solid var(--line)}.signal .facts div:last-child{border:0}
.signal .facts b{display:block;font:700 28px var(--disp);color:var(--acc);margin-top:4px}
.signal h2{font-size:clamp(30px,3.4vw,48px);letter-spacing:-.025em;margin:0 0 40px;line-height:1.05}
.signal .sec{padding:88px 0}
.signal .rows{border-top:1px solid var(--line)}
.signal .row{display:grid;grid-template-columns:64px 1.1fr 1.4fr 1fr;gap:28px;padding:30px 0;border-bottom:1px solid var(--line);align-items:start}
.signal .row .n{font:700 14px var(--mono);color:var(--acc);padding-top:8px}
.signal .row h3{margin:0;font-size:26px;letter-spacing:-.02em;line-height:1.15}
.signal .row p{margin:0;color:var(--mut)}
.signal .tags{list-style:none;margin:0;padding:0;font:400 13px var(--mono);color:var(--ink)}
.signal .tags li{padding:3px 0}.signal .tags li::before{content:'> ';color:var(--acc)}
.signal .dark{background:var(--panel);border-block:1px solid var(--line);padding:88px 0}
.signal .dark h2{margin-bottom:40px}
.signal .proc{display:grid;grid-template-columns:repeat(5,1fr);gap:0;border-top:3px solid var(--acc)}
.signal .proc li{list-style:none;padding:24px 20px 0 0}
.signal .proc b{display:inline-block;font:700 clamp(40px,4vw,58px)/1 var(--disp);color:var(--acc);letter-spacing:-.03em}
.signal .proc h3{margin:12px 0 10px;font-size:22px}
.signal .proc p{margin:0;color:var(--mut);font-size:15px}
.signal .big{border-radius:var(--r);background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--acc);padding:32px;display:flex;flex-direction:column;justify-content:space-between;gap:28px;min-height:440px}
.signal .big .lbl{margin:0;font:400 13px var(--mono);color:var(--mut);letter-spacing:.08em;text-transform:uppercase}
.signal .big b{display:inline-block;font:700 clamp(84px,9.5vw,148px)/.9 var(--disp);color:var(--acc);letter-spacing:-.05em}
.signal .bigact{display:flex;flex-direction:column;gap:14px}
.signal .bigact .loc{margin:0;font:400 14px var(--mono);color:var(--ink)}
.signal .btn-big{border-radius:var(--r);background:var(--fill);color:var(--onfill);justify-content:space-between;padding:0 22px;min-height:60px;font-weight:700;font-size:19px;text-decoration:none;gap:16px}
.signal .btn-big:hover{background:var(--hov)}
.signal .btn-big .arr{display:inline-block;transition:transform .25s cubic-bezier(.2,.7,.2,1)}
.signal .btn-big:hover .arr{transform:translateX(6px)}
.signal .bigmail{color:var(--ink);font:400 15px var(--mono);overflow-wrap:anywhere;text-decoration:underline;text-decoration-color:var(--acc);text-underline-offset:5px;min-height:44px;display:inline-flex;align-items:center}
.signal .bigmail:hover{color:var(--acc)}
.signal .ticker{background:var(--fill);color:var(--onfill);overflow:hidden;white-space:nowrap}
.signal .tk{display:inline-flex;padding:15px 0;font:700 17px var(--mono);text-transform:uppercase;letter-spacing:.05em}
.signal .tk span{padding:0 22px}.signal .tk span::after{content:'/';margin-left:44px;opacity:.5}
.signal ol{margin:0;padding:0}
.signal .contact{background:var(--fill);color:var(--onfill);padding:80px 0}
.signal .contact h2{font-size:clamp(34px,5vw,72px);margin:0 0 16px}
.signal .contact p{margin:0 0 28px;font:400 15px var(--mono);max-width:60ch}
.signal .contact .btn{overflow-wrap:anywhere;height:auto;padding-block:10px;max-width:100%;border-radius:var(--r);background:var(--onfill);color:var(--fill);padding-inline:24px;text-decoration:none;font:700 17px var(--mono)}
.signal .contact .btn:hover{background:var(--hov);color:var(--onfill)}
.signal .contact :focus-visible{outline-color:var(--onfill)}
.signal .ft{border-top:1px solid var(--line);padding:32px 0;color:var(--mut);font:400 13px/1.6 var(--mono)}
.signal .ft p{margin:0 0 6px}
.signal .pagehead{padding-block:80px 40px}.signal .pagehead p{color:var(--mut);max-width:52ch;font:400 16px var(--mono)}
.signal .svc{display:grid;grid-template-columns:64px 1fr 1fr;gap:28px;padding:40px 0;border-top:1px solid var(--line)}
.signal .svc h2{margin:0 0 12px}.signal .svc h3{margin:0 0 8px;font:700 13px var(--mono);color:var(--acc)}
.signal .svc p{margin:0 0 24px;color:var(--mut)}
@media(max-width:900px){.signal .hero{grid-template-columns:1fr;gap:40px;padding-block:48px}.signal .row,.signal .svc{grid-template-columns:40px 1fr;}
.signal .row p,.signal .row .tags,.signal .svc>div:last-child{grid-column:2}.signal .proc{grid-template-columns:1fr}.signal .proc li{padding-bottom:20px}
.signal .hdin{flex-wrap:wrap;gap:6px 16px;padding:10px 0}.signal .nav{order:5;width:100%;overflow-x:auto}.signal .wrap{padding-inline:20px}.signal .facts{flex-direction:column}.signal .facts div{border-right:0;border-bottom:1px solid var(--line)}
.signal .sec{padding:56px 0}.signal .dark{padding:56px 0}.signal .big{min-height:0}}

.signal{--pw:max(340px,36%);--gut:max(32px,calc((100vw - 1280px)/2 + 32px))}
.signal .hd-home{border-bottom:0;background:linear-gradient(90deg,var(--bg) calc(100% - var(--pw)),var(--panel) 0)}
.signal .hero{display:grid;grid-template-columns:minmax(0,1fr) var(--pw);gap:0;padding:0;max-width:none;margin:0;align-items:stretch}
.signal .herol{padding:80px 48px 72px var(--gut)}
.signal .hero .big{border:0;border-top:1px solid var(--line);border-left:1px solid var(--line);border-radius:0;padding:32px var(--gut) 32px 36px;min-height:0}
@media(max-width:900px){
.signal .hd-home{background:var(--bg);border-bottom:1px solid var(--line)}
.signal .hero{grid-template-columns:1fr}
.signal .herol{padding:48px 20px;border-top:0}
.signal .hero .big{border-left:0;padding:28px 20px}}

.signal{--contour-o:.12;--contour-io:.24}.signal_paper{--contour-o:.16;--contour-io:.3}
.contour{position:fixed;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
@media(forced-colors:active){.contour{display:none}}
.signal .band{padding:96px 0 24px}
.signal .band h2{font:700 clamp(32px,4.4vw,56px)/1.05 var(--disp);letter-spacing:-.03em;margin:0}
.signal .bsub{color:var(--mut);max-width:52ch;margin:14px 0 0}
.signal .cols{list-style:none;margin:56px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr)}
.signal .col{padding:28px 28px 0;border-left:1px solid var(--line);display:flex;flex-direction:column;min-height:480px}
.signal .col:first-child{border-left:0;padding-left:0}
.signal .cl{font:400 13px var(--mono);color:var(--mut);letter-spacing:.06em}
.signal .col h3{font:700 22px/1.25 var(--disp);margin:12px 0 0;letter-spacing:-.01em}
.signal .ill{margin-top:auto;color:var(--ink);padding:32px 0 36px}
.signal .ill svg{width:100%;max-width:260px;height:auto;display:block;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.signal .ill .cur{fill:var(--acc);stroke:var(--bg)}
.signal .ill .led{fill:var(--acc);stroke:none}
.signal .pgrid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:24px}
.signal .pcard{border-radius:var(--r);background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--acc);padding:32px;display:flex;flex-direction:column;gap:14px}
.signal .pcard h2{margin:0;font:700 clamp(26px,2.6vw,34px)/1.1 var(--disp);letter-spacing:-.02em}
.signal .pcard p{margin:0;color:var(--mut)}
.signal .pcard .btn{align-self:flex-start}
.signal .pcard .ill{padding:20px 0 12px}
.signal .badge{font:400 12px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--acc)}
.signal .tags{list-style:none;margin:16px 0 0;padding:0;font:400 13px var(--mono);color:var(--mut)}.signal .allsvc{margin:40px 0 0}.signal .allsvc a{font:700 18px var(--mono);color:var(--acc);display:inline-flex;align-items:center;min-height:44px}
.signal .pnote{font:400 13px var(--mono);color:var(--mut);margin:28px 0 96px}
.signal .ft2{background:var(--panel);border-top:1px solid var(--line);padding:96px 0 0;margin-top:0}
.signal .ftg{display:grid;grid-template-columns:1.6fr .9fr 1fr 1.5fr;gap:48px;align-items:start}
.signal .ftbrand{display:flex;align-items:center;gap:18px;color:var(--mut)}
.signal .ftbrand .mark{width:clamp(44px,5vw,76px);height:clamp(44px,5vw,76px);flex:none}
.signal .ftbrand .mark svg{width:100%;height:100%}
.signal .ftwm{font:700 clamp(34px,4.6vw,68px)/1 var(--disp);letter-spacing:.14em;text-transform:uppercase}
.signal .ftc .l{margin:0 0 20px;font:400 14px var(--mono);color:var(--mut);text-transform:uppercase;letter-spacing:.06em}
.signal .ftc ul{list-style:none;margin:0;padding:0}
.signal .ftc a{color:var(--ink);font:600 clamp(16px,1.4vw,20px) var(--disp);text-transform:uppercase;text-decoration:none;display:inline-flex;align-items:center;min-height:44px;overflow-wrap:anywhere}
.signal .ftc a:hover{color:var(--acc)}
.signal .ftc a.ftmail{font:400 15px var(--mono);text-transform:none;text-decoration:underline;text-decoration-color:var(--acc);text-underline-offset:5px}
.signal .ftleg{display:flex;flex-wrap:wrap;gap:12px 32px;justify-content:space-between;align-items:center;margin-top:120px;padding:20px 0;border-top:1px solid var(--line);font:400 13px/1.5 var(--mono);color:var(--mut)}
.signal .ftleg a{color:var(--mut);text-decoration:none;min-height:44px;display:inline-flex;align-items:center}.signal .ftleg a:hover{color:var(--acc)}
.signal .ftlegal{display:flex;flex-wrap:wrap;gap:0 12px}.signal .ftlegal a{min-width:44px;justify-content:center;padding:0 6px}
.signal .legal{padding-block:0 40px}.signal .prose{max-width:72ch}
.signal .prose h2{font:700 24px/1.2 var(--disp);letter-spacing:-.01em;margin:44px 0 12px}
.signal .prose p,.signal .prose li{font:400 16px/1.7 var(--body);color:var(--ink);margin:0 0 14px}
.signal .prose ul{padding-left:1.2em;margin:0 0 14px}.signal .prose a{color:var(--acc);text-underline-offset:3px}
.signal .prose .legalmeta{font:400 13px/1.5 var(--mono);color:var(--mut)}
.signal .prose .legalnote{border:1px solid var(--acc);border-radius:var(--r);padding:12px 16px;font:500 14px/1.5 var(--mono);color:var(--ink);margin:0 0 20px}

.signal .ftnote{max-width:60ch}
@media(max-width:1000px){.signal .cols{grid-template-columns:1fr 1fr}.signal .col{min-height:420px}.signal .col:nth-child(odd){border-left:0;padding-left:0}.signal .col{border-top:1px solid var(--line)}.signal .col:nth-child(-n+2){border-top:0}
.signal .ftg{grid-template-columns:1fr 1fr}.signal .ftbrand{grid-column:1/-1}}
@media(max-width:640px){.signal .band{padding-top:64px}.signal .cols{grid-template-columns:1fr}.signal .col{border-left:0;padding-left:0;min-height:0}.signal .col:nth-child(-n+2){border-top:1px solid var(--line)}.signal .col:first-child{border-top:0}
.signal .pgrid{grid-template-columns:1fr}.signal .pcard{padding:24px}.signal .ftg{grid-template-columns:1fr;gap:32px}.signal .ft2{padding-top:56px}.signal .ftleg{margin-top:56px}}

.signal_cyan{--bg:#060d14;--panel:#0c1822;--ink:#e4eef5;--mut:#9db3c2;--acc:#3ee0ff;--line:#1d3345;--focus:#3ee0ff;--onfill:#04121a}
.signal_rose{--bg:#140b10;--panel:#1d1017;--ink:#f5e8ee;--mut:#c4a7b4;--acc:#ff7aa8;--line:#3a2230;--focus:#ff7aa8;--onfill:#190a11;--r:14px;--disp:'Syne',system-ui,sans-serif;--body:'Instrument Sans',system-ui,sans-serif}
.signal_paper{--bg:#dfe6ee;--panel:#eaeff4;--ink:#0b1424;--mut:#4a5a70;--acc:#1f4fd1;--line:#b4c0d0;--focus:#1f4fd1;--onfill:#ffffff;--hov:#153a9e;--disp:'Fraunces',Georgia,serif;--body:'Instrument Sans',system-ui,sans-serif}
.signal_mono{--bg:#000;--panel:#0b0b0b;--ink:#fff;--mut:#bdbdbd;--acc:#fff;--line:#3a3a3a;--focus:#fff;--onfill:#000;--hov:#bdbdbd;--disp:'JetBrains Mono',ui-monospace,monospace;--body:'JetBrains Mono',ui-monospace,monospace}
.signal_mono h1{letter-spacing:-.04em}

@media(min-width:901px){
.signal_mono .hd-home{background:linear-gradient(90deg,var(--panel) var(--pw),var(--bg) 0)}
.signal_mono .hero{grid-template-columns:var(--pw) minmax(0,1fr)}
.signal_mono .hero>aside{order:-1;border-left:0;border-right:1px solid var(--line);padding:32px 36px 32px var(--gut)}
.signal_mono .herol{padding:80px var(--gut) 72px 48px}}

.signal .dark,.signal .ft2{background:transparent}
.signal .pcard,.signal .big,.signal .hero .big{background:color-mix(in srgb,var(--panel) 72%,transparent)}
.signal .hd-home{background:linear-gradient(90deg,transparent calc(100% - var(--pw)),color-mix(in srgb,var(--panel) 72%,transparent) 0)}
@media(min-width:901px){.signal_mono .hd-home{background:linear-gradient(90deg,color-mix(in srgb,var(--panel) 72%,transparent) var(--pw),transparent 0)}}
@media(max-width:900px){.signal .hd-home{background:transparent;border-bottom:1px solid var(--line)}}
.signal .brand .logo{height:40px;width:auto;display:block}
.signal .brand .wm{font:700 22px/1 var(--disp);letter-spacing:.14em;text-transform:uppercase;color:var(--mut)}
.signal .ftbrand .logo{height:clamp(52px,6vw,84px);width:auto}
.signal .flow{border-block:1px solid var(--line);padding:96px 0 40px}
.signal .flow h2{font:700 clamp(32px,4.4vw,56px)/1.05 var(--disp);letter-spacing:-.03em;margin:0 0 40px}
.signal .steps{list-style:none;margin:0;padding:0}
.signal .step{padding:28px 0;border-top:1px solid var(--line)}
.signal .step .sn{font:400 13px var(--mono);color:var(--acc);letter-spacing:.06em}
.signal .step h3{font:700 clamp(32px,4vw,56px)/1.05 var(--disp);letter-spacing:-.03em;margin:10px 0 14px}
.signal .step p{margin:0;max-width:46ch;font-size:18px}
.signal .flowl{display:none}
.fj .signal .flowg{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:72px}
.fj .signal .flowl{display:block;position:sticky;top:max(96px,calc(50vh - 200px));height:min(400px,62vh);align-self:start;border:1px solid var(--line);border-radius:var(--r);background:color-mix(in srgb,var(--panel) 70%,transparent);overflow:hidden}
.fj .signal .step{min-height:62vh;display:flex;flex-direction:column;justify-content:center;border-top:0}
.fj .signal .step h3,.fj .signal .step p{color:var(--mut)}
.fj .signal .step.on h3,.fj .signal .step.on p{color:var(--ink)}
.js .signal .step h3,.js .signal .step p{transition:color .4s}
.signal .scene{position:absolute;inset:0;display:grid;place-items:center;padding:36px 28px 24px;opacity:0}
.signal .scene.on{opacity:1}
.js .signal .scene{transition:opacity .45s}
.signal .scene svg{width:100%;max-width:340px;height:auto;fill:none;stroke:var(--ink);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.signal .scene .acc{stroke:var(--acc)}
.signal .scene .cap{position:absolute;left:20px;top:16px;font:400 13px var(--mono);color:var(--mut)}
.js .signal .scene .d{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.1s cubic-bezier(.6,0,.2,1) calc(var(--d,0)*60ms + .15s)}
.js .signal .scene.on .d{stroke-dashoffset:0}
@media(max-width:900px){.fj .signal .flowg{display:block}.fj .signal .flowl{display:none}.fj .signal .step{min-height:0;border-top:1px solid var(--line)}.fj .signal .step h3,.fj .signal .step p{color:var(--ink)}.signal .flow{padding-top:64px}}
.signal .cgrid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
.signal .contact .alt{margin:28px 0 8px}
.signal .compose{display:grid;gap:16px}
.signal .fld{display:grid;gap:6px}
.signal .fld label{font:700 14px var(--mono);letter-spacing:.04em}
.signal .fld input,.signal .fld select,.signal .fld textarea{font:400 17px var(--body);color:var(--onfill);background:transparent;border:2px solid var(--onfill);border-radius:var(--r);padding:12px 14px;min-height:48px;width:100%}
.signal .fld textarea{resize:vertical}
.signal .fld select option{color:#000;background:#fff}
.signal .sendbtn{justify-self:start;cursor:pointer;border:0;min-height:52px}
.signal .cnote,.signal .cstatus{margin:0;font:400 13px/1.5 var(--mono);max-width:60ch}
@media(max-width:900px){.signal .cgrid{grid-template-columns:1fr;gap:40px}}
.signal .brand{min-height:44px}
.signal .lang a{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}
.signal .ftleg a[href="#main"]{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}
.signal .brand .wm,.signal .ftwm{font-family:'Space Grotesk',system-ui,sans-serif;font-weight:700}
.signal .ftbrand{grid-column:1/-1;flex-wrap:nowrap;min-width:0;margin-bottom:24px}
.signal .ftwm{font-size:clamp(26px,5.2vw,72px);line-height:1.05;letter-spacing:.1em;overflow-wrap:anywhere;min-width:0}
.signal .brand .wm{font-size:20px;letter-spacing:.1em;white-space:nowrap}
@media(max-width:1100px){.signal .brand .wm{font-size:16px;letter-spacing:.06em}}
@media(max-width:640px){.signal .brand .wm{font-size:14px;letter-spacing:.04em}.signal .brand{gap:8px}}
@media(max-width:380px){.signal .hdin .nav{font-size:12px;gap:0}.signal .hdin .nav a{padding:0 5px}.signal .hdin .nav a:first-child{padding-left:0}.signal .hdin .nav a:last-child{padding-right:0}.signal .brand .wm{font-size:12px;letter-spacing:.02em}.signal .brand .logo{height:32px}.signal .brand{gap:6px}.signal .lang{gap:0}}
@media(min-width:1001px){.signal .ftg{grid-template-columns:1.2fr 1fr 1.6fr}}
.signal .ftc a.ftmail{overflow-wrap:normal;white-space:nowrap}
@media(max-width:380px){.signal .ftc a.ftmail{white-space:normal;overflow-wrap:anywhere}}
@media(min-width:901px){.fj .signal .step{min-height:100vh;scroll-snap-align:center;scroll-snap-stop:always}.fj .signal .step:last-child{min-height:min(400px,62vh)}html.snapflow{scroll-snap-type:y proximity}}
.signal .hdcta{display:flex}

.signal .menubtn{display:none}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media(max-width:900px){
.signal .menubtn:not([hidden]){display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin-right:-10px;background:transparent;border:0;color:var(--ink);cursor:pointer;order:4;border-radius:var(--r)}
.signal .bars{position:relative;width:22px;height:16px;display:block}
.signal .bars i{position:absolute;left:0;width:22px;height:2px;background:currentColor;border-radius:1px;transition:transform .2s ease,opacity .2s ease}
.signal .bars i:nth-child(1){top:0}.signal .bars i:nth-child(2){top:7px}.signal .bars i:nth-child(3){top:14px}
.signal .hd.open .bars i:nth-child(1){transform:translateY(7px) rotate(45deg)}
.signal .hd.open .bars i:nth-child(2){opacity:0}
.signal .hd.open .bars i:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.signal .hd.jsmenu .hdin{padding-block:12px}
.signal .hd.jsmenu .nav,.signal .hd.jsmenu .lang{display:none}
.signal .hd.jsmenu .menubtn:not([hidden]){margin-left:auto}
.signal .hd.jsmenu.open .nav{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--line);margin-top:8px;font-size:15px}
.signal .hd.jsmenu.open .nav a,.signal .hd.jsmenu.open .nav a:first-child,.signal .hd.jsmenu.open .nav a:last-child{padding:0;min-height:52px;border-bottom:1px solid var(--line)}
.signal .hd.jsmenu.open .lang{display:flex;order:6;width:100%;padding-top:8px}.signal .hd.jsmenu.open .lang a:first-child{justify-content:flex-start;padding-left:0}
.signal .hd.jsmenu.open .hdcta{display:flex;order:7;width:100%;padding:8px 0 8px}
.signal .hd.jsmenu.open .hdcta .btn{width:100%;justify-content:center}
}
@media(prefers-reduced-motion:reduce){.signal .bars i{transition:none}}
@media(max-width:900px){.signal .hdcta{display:none}.signal .hdin{padding-block:12px 4px}.signal .nav{justify-content:space-between;font-size:13px;border-top:1px solid var(--line)}.signal .nav a{padding:0 8px}.signal .nav a:first-child{padding-left:0;min-width:44px}.signal .nav a:last-child{padding-right:0}}
@media(prefers-reduced-motion:reduce){html.snapflow{scroll-snap-type:none}}
.signal .vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.signal .shop{display:grid;grid-template-columns:288px minmax(0,1fr);gap:48px;align-items:start;padding-bottom:96px}
.signal .filters{display:none}
.fj .signal .filters{display:block;position:sticky;top:96px;border:1px solid var(--line);border-radius:var(--r);background:color-mix(in srgb,var(--panel) 82%,transparent);padding:8px 24px 24px}
.signal .fsum{display:flex;align-items:center;justify-content:space-between;min-height:44px;font:700 14px var(--mono);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;list-style:none;padding:0}
.signal .fsum::-webkit-details-marker{display:none}
.signal .fset{border:0;border-top:1px solid var(--line);margin:12px 0 0;padding:16px 0 0;min-width:0}
.signal .fset legend{font:400 13px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--mut);padding:0}
.signal .fopt{display:flex;align-items:center;gap:12px;min-height:44px;cursor:pointer}
.signal .fopt input{width:20px;height:20px;accent-color:var(--acc);flex:none;margin:0}
.signal .fopt .fc{margin-left:auto;font:400 13px var(--mono);color:var(--mut)}
.signal .fsearch{margin-top:12px}
.signal .fsearch label{display:block;font:400 13px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--mut);margin-bottom:8px}
.signal .fsearch input{width:100%;min-height:44px;padding:0 12px;font:400 16px var(--body);color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:var(--r)}
.signal .fclear{margin-top:16px;min-height:44px;padding:0 16px;font:700 14px var(--mono);color:var(--acc);background:transparent;border:1px solid var(--acc);border-radius:var(--r);cursor:pointer}
.signal .fclear:hover{background:var(--acc);color:var(--onfill)}
.signal .pbar{display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;align-items:baseline;margin:0 0 20px;font:400 14px var(--mono);color:var(--mut)}
.signal .plist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:24px}
.signal .plist>li[hidden]{display:none}
.signal .prod{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r);background:color-mix(in srgb,var(--panel) 82%,transparent);overflow:hidden;min-width:0}
.signal .pimg{aspect-ratio:4/3;background:color-mix(in srgb,var(--line) 35%,var(--bg));display:flex;align-items:center;justify-content:center;color:var(--mut)}
.signal .pimg img{width:100%;height:100%;object-fit:cover;display:block}
.signal .pimg svg{width:72px;height:72px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.signal .pbody{padding:20px;display:flex;flex-direction:column;gap:10px;flex:1}
.signal .pmeta{display:flex;flex-wrap:wrap;gap:6px 12px;font:400 12px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--mut)}
.signal .pmeta .pav{color:var(--acc)}
.signal .prod h2{font:700 20px/1.25 var(--disp);letter-spacing:-.01em;margin:0}
.signal .prod .psum{margin:0;color:var(--mut);font-size:16px}
.signal .prod .pprice{margin:0;font:700 16px var(--mono)}
.signal .pmore summary{display:flex;align-items:center;min-height:44px;font:700 14px var(--mono);color:var(--acc);cursor:pointer}
.signal .pmore p{margin:0 0 12px;font-size:16px}
.signal .pmore dl{margin:0 0 12px;font:400 14px var(--mono)}.signal .pmore dt{color:var(--mut)}.signal .pmore dd{margin:0 0 6px}
.signal .pmore .pgal{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px;padding:0;list-style:none}.signal .pmore .pgal img{width:72px;height:54px;object-fit:cover;display:block}
.signal .prod .pask{margin-top:auto;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 16px;font:700 14px var(--mono);text-decoration:none;color:var(--onfill);background:var(--fill);border-radius:var(--r)}
.signal .prod .pask:hover{background:var(--hov)}
.signal .pempty{margin:0;padding:32px 0;color:var(--mut)}
@media(max-width:900px){.signal .shop{grid-template-columns:1fr;gap:24px}.fj .signal .filters{position:static}}
@media(min-width:901px){.signal .fsum{display:none}}
.signal_paper .ft2{--ink:#e4ecf8;--mut:#a9b8cf;--acc:#8fb0ff;--line:#2a3a52;--focus:#8fb0ff;background:#101b2b;color:var(--ink)}
.signal_paper .ft2 .ftbrand .logo{filter:invert(1)}
@media(min-width:901px){.signal_paper{--pw:max(340px,30%);--pl:calc(100% - var(--gut) - var(--pw));--pr:calc(100% - var(--gut))}
.signal_paper .hero{grid-template-columns:minmax(0,1fr) clamp(340px,calc((100% + var(--gut)) * .3),520px)}
.signal_paper .hd-home{background:transparent}
.signal_paper .hero{padding-right:var(--gut)}
.signal_paper .hero .big{padding:32px 36px;border-right:1px solid var(--line)}}
@media(min-width:901px){.signal_paper .hero{display:flex;align-items:center;min-height:clamp(520px,calc(100vh - 124px),760px);padding:0;grid-template-columns:none}
.signal_paper .herol{padding:72px var(--gut);width:100%}
.signal_paper .herol h1{font-size:clamp(48px,6vw,104px);line-height:1.02;max-width:13em}
.signal_paper .herol .sub{font:400 20px/1.6 var(--body);color:var(--mut);margin:36px 0 0;max-width:40ch}}
.signal .heroact{display:flex;gap:12px;flex-wrap:wrap;margin-top:40px}
.signal .btn-line{border:1px solid var(--ink);color:var(--ink);padding:0 22px;text-decoration:none;font-weight:700;background:transparent;border-radius:var(--r)}
.signal .btn-line:hover{background:var(--ink);color:var(--bg)}
.signal .heroact .btn{min-height:52px}


.js :is(.row,.sheet,.item,.ent,.proc li,.svc,.facts div,.index li,.contact h2,.contact p,.contact .btn,.contact a.mail,.two>div:first-child,.sechd h2,.pagehead>*,.diagram,.big,.sec>.wrap>h2,.dark h2,.band h2,.band .bsub,.col,.pcard){opacity:0;transform:translateY(26px);transition:opacity .75s cubic-bezier(.2,.7,.2,1) calc(var(--i,0)*70ms),transform .75s cubic-bezier(.2,.7,.2,1) calc(var(--i,0)*70ms)}
.js :is(.row,.sheet,.item,.ent,.proc li,.svc,.facts div,.index li,.contact h2,.contact p,.contact .btn,.contact a.mail,.two>div:first-child,.sechd h2,.pagehead>*,.diagram,.big,.sec>.wrap>h2,.dark h2,.band h2,.band .bsub,.col,.pcard).in{opacity:1;transform:none}
@keyframes up{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
@keyframes blink{50%{opacity:0}}

@keyframes wipe{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 -1% 0 0)}}
.js .signal h1{animation:wipe 1.1s steps(30,end) .15s both}
.js .signal h1::after{content:'';display:inline-block;width:.42em;height:.09em;background:var(--acc);margin-left:.12em;animation:blink .55s steps(1) 1.2s 6}
.js .signal .sub{animation:up .8s cubic-bezier(.2,.7,.2,1) 1s both}
.js .signal .mark rect{animation:blink .7s steps(1) .6s 5}
.js .signal .row{position:relative}
.js .signal .row::before{content:'';position:absolute;left:0;top:-1px;height:2px;width:100%;background:var(--acc);transform:scaleX(0);transform-origin:left;transition:transform 1s cubic-bezier(.2,.7,.2,1) .2s}
.js .signal .row.in::before{transform:scaleX(1)}
@keyframes tick{to{transform:translateX(-33.3333%)}}
@keyframes pop{from{transform:scale(.55);opacity:0}70%{transform:scale(1.07);opacity:1}to{transform:none;opacity:1}}
.js .signal .tk{animation:tick 400s linear infinite}
.js .signal .big.in b{animation:pop .9s cubic-bezier(.2,.8,.2,1) .35s both}
.js .signal .big.in .bigact{animation:up .8s cubic-bezier(.2,.7,.2,1) .7s both}
.js .signal .proc li b{transform:scale(.4);opacity:0;transition:transform .6s cubic-bezier(.3,1.6,.5,1) calc(var(--i,0)*70ms + .15s),opacity .3s calc(var(--i,0)*70ms + .15s)}
.js .signal .proc li.in b{transform:none;opacity:1}
.js .signal .contact{position:relative;overflow:hidden}
.js .signal .contact::after{content:'';position:absolute;inset:0;background:var(--bg);transform-origin:bottom;transition:transform 1.1s cubic-bezier(.7,0,.2,1);pointer-events:none}
.js .signal .contact.in::after{transform:scaleY(0)}
.js .signal .ill .d{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.3s cubic-bezier(.6,0,.2,1) calc(var(--d,0)*70ms + .25s)}
.js .signal .in .ill .d{stroke-dashoffset:0}
.js .signal .ill .cur{opacity:0;transition:opacity .3s 1.5s}
.js .signal .in .ill .cur{opacity:1;animation:curmove 4.5s ease-in-out 1.8s infinite}
.js .signal .in .ill .led{animation:blink 1.4s steps(1) calc(var(--l,0)*.35s) infinite}
@keyframes curmove{0%,100%{transform:translate(0,0)}35%{transform:translate(-34px,-18px)}70%{transform:translate(20px,14px)}}
@media(hover:hover){.signal .row h3{transition:color .2s,transform .35s cubic-bezier(.2,.7,.2,1)}.signal .row:hover h3{color:var(--acc);transform:translateX(10px)}
.signal .btn-cta{transition:transform .2s}.signal .btn-cta:hover{transform:translateY(-2px)}}
