.fig{--f-panel:var(--paper);--f-fill:#ece6d8;--f-deck:#e5dfcf;--f-line:#3d5a4e;--f-detail:#c9cbbe;--f-recess:#d8d1bf;--f-glass:#e9e3d4;--f-glass-on:#f3d79a;--f-accent:var(--clay);--f-accent-hi:#d9772f;--f-ink:#5a6158;margin:0}.plate{background:var(--f-panel);aspect-ratio:4/3;width:100%}.stage{outline:none;width:100%;height:100%;display:block}.stage:focus-visible{outline:2px dashed var(--f-accent);outline-offset:-6px}.fig figcaption{color:var(--muted);margin-top:.5rem;font-size:.8rem}.readout{font:.75rem/1.45 var(--font-mono);color:var(--canopy);min-height:1.45em;display:block}.stage .face{fill:var(--f-fill);stroke:var(--f-line);stroke-width:1px;vector-effect:non-scaling-stroke;stroke-linejoin:round}.stage .face.top{fill:var(--f-deck)}.stage .face.recess{fill:var(--f-recess)}.stage .detail{fill:none;stroke:var(--f-detail);stroke-width:1px;vector-effect:non-scaling-stroke}.stage .label{fill:var(--f-ink);font-family:var(--font-body);letter-spacing:.06em;font-size:8px}.stage .glass{fill:var(--f-glass);stroke:var(--f-line);stroke-width:1px;vector-effect:non-scaling-stroke;transition:fill .3s,stroke .3s}.stage .glass.hot{fill:var(--f-glass-on);stroke:var(--f-accent)}.stage .halo{fill:var(--f-accent);opacity:0;transition:opacity .4s}.stage .halo.hot{opacity:.24}.stage .led{fill:var(--f-detail);stroke:var(--f-line);stroke-width:1px;vector-effect:non-scaling-stroke;transition:fill .2s}.stage .led.hot{fill:var(--f-accent);stroke:var(--f-accent-hi)}.stage .wire{fill:none;stroke:var(--f-line);stroke-width:1px;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round;transition:stroke .4s}.stage .wire.hot{stroke:var(--f-accent)}.stage .wire-under{fill:none;stroke:var(--f-panel);stroke-width:3.5px;stroke-linecap:round;stroke-linejoin:round}.stage .pulse{fill:none;stroke:var(--f-accent-hi);stroke-width:2.4px;stroke-linecap:round;vector-effect:non-scaling-stroke;stroke-dasharray:70 2000;stroke-dashoffset:70px;opacity:0}.stage .pulse.go{animation:.55s linear flow}@keyframes flow{0%{stroke-dashoffset:70px;opacity:1}90%{opacity:1}to{stroke-dashoffset:-1000px;opacity:0}}.stage .press{cursor:pointer;transition:transform 60ms ease-out}.stage .press.down{transform:translateY(3px)}.stage .press .face{transition:fill .6s ease-out,stroke .6s ease-out}.stage .press:hover .face{stroke:var(--f-accent)}.stage .press.lit .face{fill:var(--f-accent);stroke:var(--f-accent-hi);transition:none}.stage .press.lit .face.top{fill:var(--f-accent-hi)}.stage .press.lit .label{fill:var(--f-panel)}@media (prefers-reduced-motion:reduce){.stage .pulse.go{animation:none}}.wrap[data-astro-cid-7aropxhg]{max-width:68rem;margin:0 auto;padding-inline:1.25rem}section[data-astro-cid-7aropxhg]{padding-block:3.5rem}.top[data-astro-cid-7aropxhg]{justify-content:space-between;align-items:center;gap:1rem;padding-block:.75rem;display:flex}.brand[data-astro-cid-7aropxhg]{color:var(--ink);font:700 1.25rem var(--font-head);align-items:center;gap:.6rem;text-decoration:none;display:flex}.logo[data-astro-cid-7aropxhg]{mix-blend-mode:multiply;height:auto}nav[data-astro-cid-7aropxhg]{gap:1.25rem;display:flex}nav[data-astro-cid-7aropxhg] a[data-astro-cid-7aropxhg]{color:var(--ink);text-decoration:underline 2px var(--line);text-underline-offset:.4em;padding:.65rem 0;font-size:.95rem;font-weight:600;transition:color .15s,text-decoration-color .15s}nav[data-astro-cid-7aropxhg] a[data-astro-cid-7aropxhg]:hover{color:var(--canopy);text-decoration-color:var(--canopy)}@media (width<=720px){nav[data-astro-cid-7aropxhg]{display:none}}.right[data-astro-cid-7aropxhg]{align-items:center;gap:1.25rem;display:flex}.lang[data-astro-cid-7aropxhg]{border:1.5px solid var(--ink);min-width:44px;min-height:44px;color:var(--ink);border-radius:3px;justify-content:center;align-items:center;font-size:.9rem;font-weight:600;text-decoration:none;display:inline-flex}.lang[data-astro-cid-7aropxhg]:hover{background:var(--ink);color:var(--paper)}.hero[data-astro-cid-7aropxhg]{align-items:center;gap:2.5rem;padding-top:1.5rem;display:grid}@media (width>=900px){.hero[data-astro-cid-7aropxhg]{grid-template-columns:1.1fr 1fr}}.kicker[data-astro-cid-7aropxhg]{font:600 .8rem var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0}h1[data-astro-cid-7aropxhg]{letter-spacing:-.015em;margin:.5rem 0 .75rem;font-size:clamp(2.2rem,5.5vw,3.6rem)}.tagline[data-astro-cid-7aropxhg]{font:1.45rem/1.3 var(--font-hand);color:var(--canopy);text-wrap:balance;margin:0 0 1rem}.lede[data-astro-cid-7aropxhg]{color:var(--muted);max-width:34rem;margin:0 0 1.5rem;font-size:1.1rem}.btns[data-astro-cid-7aropxhg]{flex-wrap:wrap;gap:.75rem;display:flex}.btn[data-astro-cid-7aropxhg]{border:1.5px solid var(--ink);min-height:48px;color:var(--ink);border-radius:3px;align-items:center;padding:0 1.25rem;font-weight:600;text-decoration:none;transition:background .15s,color .15s;display:inline-flex}.btn[data-astro-cid-7aropxhg]:hover{background:var(--ink);color:var(--paper)}.btn[data-astro-cid-7aropxhg].cta{background:var(--clay);border-color:var(--clay);color:#fff}.btn[data-astro-cid-7aropxhg].cta:hover{background:var(--ink);border-color:var(--ink)}h2[data-astro-cid-7aropxhg]{margin:0 0 1.75rem;font-size:clamp(1.8rem,4vw,2.4rem)}.scribble[data-astro-cid-7aropxhg]{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 180 14' fill='none' stroke='%231F4D3F' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M2 9c30-6 58-6 88-2s60 3 86-3'/%3E%3Cpath d='M8 12c40-4 90-3 130-1'/%3E%3C/svg%3E") 0 100%/9rem .7rem no-repeat;padding-bottom:.6rem;display:inline-block}.sub[data-astro-cid-7aropxhg]{color:var(--muted);margin:-.75rem 0 1.5rem}.services[data-astro-cid-7aropxhg]{gap:1.75rem;display:grid}@media (width>=800px){.services[data-astro-cid-7aropxhg]{grid-template-columns:1fr 1fr}.iot[data-astro-cid-7aropxhg]{grid-column:1/-1}}.svc[data-astro-cid-7aropxhg]{border:1.5px solid var(--ink);box-shadow:6px 6px 0 var(--canopy);flex-direction:column;padding:1.5rem;display:flex}.svc-head[data-astro-cid-7aropxhg]{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.svc[data-astro-cid-7aropxhg] h3[data-astro-cid-7aropxhg]{color:var(--canopy);margin:0 0 .75rem;font-size:1.6rem}.num[data-astro-cid-7aropxhg]{font:2.6rem/1 var(--font-hand);color:var(--clay);margin:0}.svc[data-astro-cid-7aropxhg] .iso{flex:none;width:7.5rem;height:5.5rem}@media (width<=480px){.svc[data-astro-cid-7aropxhg] .iso{width:5.5rem;height:4rem}}.svc[data-astro-cid-7aropxhg] .iso .f{fill:#ece6d8}.svc[data-astro-cid-7aropxhg] .iso .f2{fill:#e5dfcf}.svc[data-astro-cid-7aropxhg] .iso .t{fill:var(--paper)}.svc[data-astro-cid-7aropxhg] .iso .s{fill:var(--shade)}.svc[data-astro-cid-7aropxhg] .iso polygon,.svc[data-astro-cid-7aropxhg] .iso line{stroke:var(--canopy);stroke-width:1.3px;stroke-linejoin:round;vector-effect:non-scaling-stroke}.svc[data-astro-cid-7aropxhg] .iso .led{fill:var(--clay)}.ask[data-astro-cid-7aropxhg]{border-top:1.5px dashed var(--line);color:var(--clay);margin-top:auto;padding:1rem 0 .15rem;font-weight:700;text-decoration:none}.ask[data-astro-cid-7aropxhg]:hover{text-decoration:underline}.svc[data-astro-cid-7aropxhg]>.price[data-astro-cid-7aropxhg]:last-of-type,.svc[data-astro-cid-7aropxhg]>dl[data-astro-cid-7aropxhg]{margin-bottom:1.25rem}.svc[data-astro-cid-7aropxhg] ul[data-astro-cid-7aropxhg]{margin:0 0 1rem;padding-left:1.1rem}.svc[data-astro-cid-7aropxhg] li[data-astro-cid-7aropxhg]{margin-bottom:.35rem}.iot[data-astro-cid-7aropxhg]{box-shadow:6px 6px 0 var(--clay)}@media (width>=800px){.iot[data-astro-cid-7aropxhg] ul[data-astro-cid-7aropxhg]{columns:2;column-gap:2.5rem}}.price[data-astro-cid-7aropxhg]{margin:0;font-weight:700}dl[data-astro-cid-7aropxhg]{margin:0}dt[data-astro-cid-7aropxhg]{font:700 1.1rem var(--font-head);margin-top:1rem}dt[data-astro-cid-7aropxhg]:first-child{margin-top:0}dd[data-astro-cid-7aropxhg]{margin:.2rem 0 0}dd[data-astro-cid-7aropxhg].price{color:var(--canopy)}.demos[data-astro-cid-7aropxhg]{grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));gap:1.75rem;margin:0;padding:0;list-style:none;display:grid}.demos[data-astro-cid-7aropxhg] a[data-astro-cid-7aropxhg]{border:1.5px solid var(--ink);height:100%;box-shadow:6px 6px 0 var(--canopy);color:var(--ink);align-content:start;text-decoration:none;transition:background .15s;display:grid;overflow:hidden}.demos[data-astro-cid-7aropxhg] a[data-astro-cid-7aropxhg].write{box-shadow:6px 6px 0 var(--clay)}.demos[data-astro-cid-7aropxhg] img[data-astro-cid-7aropxhg]{aspect-ratio:16/10;object-fit:cover;object-position:top;border-bottom:1.5px solid var(--ink);width:100%;height:auto;display:block}.demos[data-astro-cid-7aropxhg] .phone[data-astro-cid-7aropxhg] img[data-astro-cid-7aropxhg]{object-fit:contain;background:var(--shade)}@media (width<=639px){.demos[data-astro-cid-7aropxhg],.services[data-astro-cid-7aropxhg]{scroll-snap-type:x mandatory;scrollbar-width:none;grid-template-columns:none;grid-auto-columns:82%;grid-auto-flow:column;gap:1rem;margin-inline:-1.25rem;padding:0 1.25rem .75rem;scroll-padding-inline:1.25rem;overflow-x:auto}.demos[data-astro-cid-7aropxhg] li[data-astro-cid-7aropxhg],.svc[data-astro-cid-7aropxhg]{scroll-snap-align:start}}.demos[data-astro-cid-7aropxhg] a[data-astro-cid-7aropxhg]:hover{background:var(--shade)}.demos[data-astro-cid-7aropxhg] a[data-astro-cid-7aropxhg]:hover strong[data-astro-cid-7aropxhg]{text-underline-offset:.2em;text-decoration:underline}.demos[data-astro-cid-7aropxhg] strong[data-astro-cid-7aropxhg]{font:700 1.1rem var(--font-head);padding:1rem 1.25rem .25rem}.demos[data-astro-cid-7aropxhg] strong[data-astro-cid-7aropxhg]:after{content:" →"}.demos[data-astro-cid-7aropxhg] span[data-astro-cid-7aropxhg]{color:var(--muted);padding:0 1.25rem 1.1rem;font-size:.95rem}.steps[data-astro-cid-7aropxhg]{counter-reset:s;gap:1.5rem;margin:0;padding:0;list-style:none;display:grid}@media (width>=800px){.steps[data-astro-cid-7aropxhg]{grid-template-columns:repeat(4,1fr)}}.steps[data-astro-cid-7aropxhg] li[data-astro-cid-7aropxhg]{counter-increment:s;border-top:2px solid var(--canopy);padding-top:.75rem}.steps[data-astro-cid-7aropxhg] li[data-astro-cid-7aropxhg]:before{content:counter(s);font:1.6rem var(--font-hand);color:var(--canopy)}.steps[data-astro-cid-7aropxhg] h3[data-astro-cid-7aropxhg]{margin:.25rem 0 .5rem;font-size:1.4rem}.steps[data-astro-cid-7aropxhg] small[data-astro-cid-7aropxhg]{font:600 .8rem var(--font-body);color:var(--muted);letter-spacing:.08em;text-transform:uppercase}.steps[data-astro-cid-7aropxhg] p[data-astro-cid-7aropxhg]{color:var(--muted);margin:0}@media (width<=799px){.steps[data-astro-cid-7aropxhg]{cursor:pointer;-webkit-tap-highlight-color:transparent;grid-template-areas:"deck";gap:0;padding:0 1.25rem 1.25rem 0}.steps[data-astro-cid-7aropxhg]:focus{outline:none}.steps[data-astro-cid-7aropxhg]:focus-visible{outline:2px dashed var(--canopy);outline-offset:4px}.steps[data-astro-cid-7aropxhg] li[data-astro-cid-7aropxhg]{background:var(--paper);border:1.5px solid var(--ink);transform:translate(calc(var(--pos) * 6px), calc(var(--pos) * 6px));z-index:calc(4 - var(--pos));grid-area:deck;padding:1rem 1.25rem 1.25rem;transition:transform .65s cubic-bezier(.2,.7,.2,1),opacity .65s}.steps[data-astro-cid-7aropxhg] li[data-astro-cid-7aropxhg].out{opacity:0;z-index:5;transform:translate(-115%,-1rem)rotate(-8deg)}.steps[data-astro-cid-7aropxhg] li[data-astro-cid-7aropxhg].hide{opacity:0;transition:none}}@media (width<=799px) and (prefers-reduced-motion:reduce){.steps[data-astro-cid-7aropxhg] li[data-astro-cid-7aropxhg]{transition:none}}.name[data-astro-cid-7aropxhg]{gap:1.5rem;display:grid}.name[data-astro-cid-7aropxhg] h2[data-astro-cid-7aropxhg]{margin-bottom:0}@media (width>=800px){.name[data-astro-cid-7aropxhg]{grid-template-columns:1.15fr 1fr;align-items:center;gap:2.5rem}.name[data-astro-cid-7aropxhg] h2[data-astro-cid-7aropxhg]{grid-column:1/-1}}.name[data-astro-cid-7aropxhg] p[data-astro-cid-7aropxhg]{max-width:38rem}.dict[data-astro-cid-7aropxhg]{margin:0 0 1.25rem}.dict[data-astro-cid-7aropxhg] div[data-astro-cid-7aropxhg]{border-bottom:1.5px dashed var(--line);padding:.9rem 0}.dict[data-astro-cid-7aropxhg] div[data-astro-cid-7aropxhg]:first-child{border-top:1.5px dashed var(--line)}.dict[data-astro-cid-7aropxhg] dt[data-astro-cid-7aropxhg]{font:2.4rem/1 var(--font-hand);color:var(--clay)}.dict[data-astro-cid-7aropxhg] dt[data-astro-cid-7aropxhg] small[data-astro-cid-7aropxhg]{font:.85rem var(--font-mono);color:var(--muted);margin-left:.6rem}.dict[data-astro-cid-7aropxhg] dd[data-astro-cid-7aropxhg]{margin:.35rem 0 0;font-size:1.1rem}.dict[data-astro-cid-7aropxhg] dd[data-astro-cid-7aropxhg] em{color:var(--muted);font-size:.95rem}.who[data-astro-cid-7aropxhg]{border:1.5px solid var(--ink);box-shadow:6px 6px 0 var(--canopy);margin-top:1.5rem;padding:1.25rem 1.5rem}.who[data-astro-cid-7aropxhg] .k[data-astro-cid-7aropxhg]{font:600 .75rem var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 .4rem}.who[data-astro-cid-7aropxhg] p[data-astro-cid-7aropxhg]{margin:0 0 1rem}.who[data-astro-cid-7aropxhg] .btns[data-astro-cid-7aropxhg]{gap:.6rem}.who[data-astro-cid-7aropxhg] .btn[data-astro-cid-7aropxhg] small[data-astro-cid-7aropxhg]{color:var(--muted);margin-left:.4rem;font-weight:400}.who[data-astro-cid-7aropxhg] .btn[data-astro-cid-7aropxhg]:hover small[data-astro-cid-7aropxhg]{color:inherit}.name[data-astro-cid-7aropxhg] .tree{justify-self:center;width:100%;max-width:30rem;height:auto}.name[data-astro-cid-7aropxhg] .tree polygon,.name[data-astro-cid-7aropxhg] .tree line,.name[data-astro-cid-7aropxhg] .tree circle,.name[data-astro-cid-7aropxhg] .tree ellipse{stroke:var(--canopy);stroke-width:1.3px;stroke-linejoin:round;vector-effect:non-scaling-stroke}.name[data-astro-cid-7aropxhg] .tree .f{fill:#ece6d8}.name[data-astro-cid-7aropxhg] .tree .f2{fill:#e5dfcf}.name[data-astro-cid-7aropxhg] .tree .t,.name[data-astro-cid-7aropxhg] .tree .scr{fill:var(--paper)}.name[data-astro-cid-7aropxhg] .tree .shadow{fill:#cfd8c6;stroke:none}.name[data-astro-cid-7aropxhg] .tree .mat{fill:#ead9b0}.name[data-astro-cid-7aropxhg] .tree .weave{stroke:#c4ab72;stroke-width:.8px}.name[data-astro-cid-7aropxhg] .tree .tr{fill:#6e4c33;stroke:none}.name[data-astro-cid-7aropxhg] .tree .tr2{fill:#5b3e29;stroke:none}.name[data-astro-cid-7aropxhg] .tree .trt{fill:#80593c;stroke:none}.name[data-astro-cid-7aropxhg] .tree .branch{fill:none;stroke:#6e4c33;stroke-width:4px;stroke-linecap:round}.name[data-astro-cid-7aropxhg] .tree .canopy-back{fill:#7fa98a;opacity:.75}.name[data-astro-cid-7aropxhg] .tree .canopy{fill:#3f7a5c}.name[data-astro-cid-7aropxhg] .tree .canopy *,.name[data-astro-cid-7aropxhg] .tree .canopy-back *{stroke:none}.name[data-astro-cid-7aropxhg] .tree .cl{fill:#3d5a4e}.name[data-astro-cid-7aropxhg] .tree .cl2{fill:#34503f}.name[data-astro-cid-7aropxhg] .tree .clt{fill:#4b6a5c}.name[data-astro-cid-7aropxhg] .tree .sh{fill:var(--clay)}.name[data-astro-cid-7aropxhg] .tree .sh2{fill:#8f3f1c}.name[data-astro-cid-7aropxhg] .tree .sht{fill:#b85a30}.name[data-astro-cid-7aropxhg] .tree .head{fill:#c99a6b}.name[data-astro-cid-7aropxhg] .tree .skin{fill:#c99a6b;stroke:none}.name[data-astro-cid-7aropxhg] .tree .hair{fill:var(--ink);stroke:var(--ink)}.name[data-astro-cid-7aropxhg] .tree .arm{stroke:#8f3f1c;stroke-width:2.4px;stroke-linecap:round}.name[data-astro-cid-7aropxhg] .tree .led{fill:var(--clay)}.name[data-astro-cid-7aropxhg] .tree .sun{fill:#fff3d6;stroke:none;animation:3.2s ease-in-out infinite alternate flicker}.name[data-astro-cid-7aropxhg] .tree .sun:nth-of-type(2n){animation-delay:1.1s}.name[data-astro-cid-7aropxhg] .tree .sun:nth-of-type(3n){animation-delay:2s}.name[data-astro-cid-7aropxhg] .tree .hand{animation:.24s ease-in-out infinite alternate type}.name[data-astro-cid-7aropxhg] .tree .hand.l{animation-duration:.31s;animation-delay:.12s}@keyframes flicker{0%{opacity:1}to{opacity:.35}}@keyframes type{0%{transform:translateY(0)}to{transform:translateY(-1.6px)}}@media (prefers-reduced-motion:reduce){.name[data-astro-cid-7aropxhg] .tree .hand,.name[data-astro-cid-7aropxhg] .tree .sun{animation:none}}.contact[data-astro-cid-7aropxhg]{background:var(--canopy);color:var(--paper)}.contact[data-astro-cid-7aropxhg] h2[data-astro-cid-7aropxhg]{color:var(--paper);margin-bottom:.75rem}.contact[data-astro-cid-7aropxhg] p[data-astro-cid-7aropxhg]{margin:0 0 1.5rem}.btn[data-astro-cid-7aropxhg].light{border-color:var(--paper);color:var(--paper)}.btn[data-astro-cid-7aropxhg].light:hover{background:var(--paper);color:var(--canopy)}.contact[data-astro-cid-7aropxhg] .btn[data-astro-cid-7aropxhg].cta:hover{background:var(--paper);border-color:var(--paper);color:var(--canopy)}.foot[data-astro-cid-7aropxhg]{color:var(--muted);padding-block:1.5rem;font-size:.9rem}@media (width<=719px){section[data-astro-cid-7aropxhg]{padding-block:2.5rem}.hero[data-astro-cid-7aropxhg]{gap:1.25rem;padding-top:.75rem}.foot[data-astro-cid-7aropxhg]{padding-bottom:5.5rem}.wa-bar[data-astro-cid-7aropxhg]{z-index:10;left:1.25rem;right:1.25rem;bottom:calc(.75rem + env(safe-area-inset-bottom));box-shadow:4px 4px 0 var(--ink);justify-content:center;transition:transform .25s ease-out;position:fixed;transform:translateY(150%)}.wa-bar[data-astro-cid-7aropxhg].on{transform:none}}@media (width>=720px){.wa-bar[data-astro-cid-7aropxhg]{display:none}}@media (prefers-reduced-motion:reduce){.wa-bar[data-astro-cid-7aropxhg]{transition:none}}
