:root{--cp-l1:#222226;--cp-l2:#1c1c1f;--cp-ring:#ffffff14;--cp-sa:#0e0e10;--cp-sb:#141416;--iso-sel:#ffffff80;--iso-top:#1d1d21;--iso-ink:#0b0b0d;--iso-line:#fff3;--iso-line-2:#fff6;--iso-grid:#ffffff1f;--iso-fill:#141416;--iso-a:#0f0f11;--iso-b:#0b0b0d;--iso-base:#111113;--iso-node:#fff;--iso-bar:#ffffff8c;--iso-bar2:#ffffff38}:root[data-theme=light]{--cp-l1:#ececea;--cp-l2:#e2e2df;--cp-ring:#11111412;--cp-sa:#cfcfcb;--cp-sb:#dcdcd8;--iso-sel:#11111473;--iso-top:#fff;--iso-ink:#fff;--iso-line:#11111438;--iso-line-2:#11111461;--iso-grid:#11111417;--iso-fill:#fff;--iso-a:#ececea;--iso-b:#e2e2df;--iso-base:#f7f7f5;--iso-node:#151517;--iso-bar:#111114b3;--iso-bar2:#11111438}.iso-scene{margin:-40px -28px -6px -24px;display:block;position:relative}.iso-svg{width:100%;height:auto;display:block;overflow:visible}.iso-svg .s0{stroke:var(--iso-grid);stroke-width:.5px;vector-effect:non-scaling-stroke}.iso-svg .s1{stroke:var(--iso-line);stroke-width:.6px;vector-effect:non-scaling-stroke;fill:none}.iso-svg .s2{stroke:var(--iso-line-2);stroke-width:.7px;vector-effect:non-scaling-stroke}.iso-svg .nf{fill:none}.iso-svg .dash{stroke-dasharray:4 3}.iso-svg .guide{stroke-dasharray:2 4}.iso-svg .f-top{fill:var(--iso-fill)}.iso-svg .f-base{fill:var(--iso-base)}.iso-svg .f-a{fill:var(--iso-a)}.iso-svg .f-b{fill:var(--iso-b)}.iso-svg .f-tile{fill:var(--iso-fill)}.iso-svg .final{stroke:var(--iso-node)}.iso-svg .f-glow{fill:var(--iso-top)}.iso-svg .hatch{fill:url(#iso-hatch)}.iso-svg .hatch-side{fill:url(#iso-hatch);opacity:.7}.iso-svg .bar{fill:var(--iso-bar)}.iso-svg .bar2{fill:var(--iso-bar2)}.iso-svg .acc{fill:var(--iso-node)}.iso-svg .tile-ic{color:var(--muted);stroke-width:1.6px}.iso-svg .node{fill:var(--iso-node)}.iso-svg .cp-fill{fill:var(--panel-3)}.iso-svg .cp-edge{fill:none;stroke:var(--iso-line-2);stroke-width:.7px;vector-effect:non-scaling-stroke}.iso-svg .cp-l1{fill:var(--cp-l1);stroke:var(--cp-ring);stroke-width:.6px;vector-effect:non-scaling-stroke}.iso-svg .cp-l2{fill:var(--cp-l2);stroke:var(--cp-ring);stroke-width:.6px;vector-effect:non-scaling-stroke}.iso-svg .cp-sa{fill:var(--cp-sa)}.iso-svg .cp-sb{fill:var(--cp-sb)}.iso-svg .cp-glowf{fill:currentColor}.cp .cp-glow{opacity:.38;transition:opacity .6s}.cat-tile:hover .cp .cp-glow{opacity:.6}.cp .cp-top,.cp .cp-g1,.cp .cp-g2{transition:transform .6s cubic-bezier(.16,1,.3,1)}.cat-tile:hover .cp .cp-top{transform:translateY(-8px)}.cat-tile:hover .cp .cp-g1{transform:translateY(2px)}.cat-tile:hover .cp .cp-g2{transform:translateY(6px)}.iso-svg .ext{stroke:var(--iso-line);stroke-width:.7px;vector-effect:non-scaling-stroke;stroke-dasharray:3 5}.iso-svg .wire{stroke:var(--iso-line-2);stroke-width:.8px;vector-effect:non-scaling-stroke}.iso-svg .sat-ic{color:var(--muted);stroke-width:1.5px}.iso-svg .tag rect{fill:var(--hero-bg,var(--panel));stroke:var(--iso-line-2);stroke-width:.6px;vector-effect:non-scaling-stroke}.iso-svg .tag text{font:500 7.5px var(--mono);fill:var(--muted);letter-spacing:.08em;text-transform:uppercase}.iso-svg .lead{stroke:var(--iso-line-2);stroke-width:.6px;vector-effect:non-scaling-stroke}.iso-svg .cursor path{fill:var(--iso-node);stroke:var(--bg);stroke-width:1.2px;stroke-linejoin:round}.iso-svg .cursor{animation:8s cubic-bezier(.65,0,.35,1) infinite iso-cursor}.iso-svg .sel{fill:none;stroke:var(--iso-sel);stroke-width:.9px;vector-effect:non-scaling-stroke;stroke-dasharray:4 3;opacity:0;animation:8s linear infinite iso-sel;animation-delay:calc(var(--s) * 2s)}.iso-svg .ripple{fill:none;stroke:var(--iso-node);stroke-width:1px;vector-effect:non-scaling-stroke;opacity:0;transform-box:fill-box;transform-origin:50%;animation:8s ease-out infinite iso-ripple;animation-delay:calc(var(--s) * 2s + .35s)}@keyframes iso-sel{0%,4%{opacity:0}8%,22%{opacity:1}25%,to{opacity:0}}@keyframes iso-ripple{0%{opacity:.9;transform:scale(.1)}8%{opacity:0;transform:scale(1.6)}to{opacity:0}}.iso-svg .tile .f-tile{animation:12.5s infinite iso-tile;animation-delay:calc(var(--w) * 2.5s)}.iso-svg .tile .tile-ic{animation:12.5s infinite iso-tile-ic;animation-delay:calc(var(--w) * 2.5s)}@keyframes iso-tile{0%,17%{fill:var(--iso-node)}20%,to{fill:var(--iso-fill)}}@keyframes iso-tile-ic{0%,17%{color:var(--iso-ink)}20%,to{color:var(--muted)}}.iso-svg .lyr{transition:transform .9s cubic-bezier(.16,1,.3,1)}.iso-svg .lyr-in{animation:7s ease-in-out infinite iso-bob;animation-delay:calc(var(--k) * -.6s)}.iso-scene:hover .lyr{transform:translateY(calc(var(--k) * -12px))}@keyframes iso-bob{50%{transform:translateY(-3px)}}.iso-svg.cz-svg{overflow:hidden}.iso-svg .cz-lid{fill:var(--iso-base);stroke:var(--iso-line-2);stroke-width:.8px;vector-effect:non-scaling-stroke}.iso-svg .cz-notch{fill:var(--iso-base)}.iso-svg .cz-acc{fill:var(--iso-node);stroke:var(--iso-node);stroke-width:0;vector-effect:non-scaling-stroke;transition:fill .4s,stroke-width .4s}.cz-art[data-acc=blue] .cz-acc{fill:var(--accent)}.cz-art[data-acc=line] .cz-acc{fill:#0000;stroke:var(--iso-line-2);stroke-width:1px}.iso-svg .cz-h1{font-family:var(--font);letter-spacing:-.025em;fill:var(--iso-node);font-size:24px;font-weight:600}.iso-svg .cz-h1.b{fill:var(--iso-bar)}.iso-svg .cz-tx,.iso-svg .cz-im{transition:transform .7s cubic-bezier(.16,1,.3,1),opacity .4s}.cz-art[data-lo=mirror] .cz-tx{transform:translateX(calc(250px + var(--e,0px)))}.cz-art[data-lo=mirror] .cz-im{transform:translateX(calc(-218px - var(--e,0px)))}.cz-art[data-lo=center] .cz-tx{transform:translate(calc(130px + var(--e,0px) / 2),6px)}.cz-art[data-lo=center] .cz-im{opacity:0;transform:translateY(10px)}.iso-svg .cz-drop{fill:none;stroke:var(--iso-node);stroke-width:1.2px;vector-effect:non-scaling-stroke;stroke-dasharray:5 4;opacity:0;transition:opacity .2s}.cz-art.over .cz-drop{opacity:.7}@media (prefers-reduced-motion:reduce){.iso-svg .cz-acc,.iso-svg .cz-tx,.iso-svg .cz-im{transition:none}}.iso-svg .pi-top{fill:var(--pc)}.iso-svg .pi-a{fill:var(--pc-a)}.iso-svg .pi-b{fill:var(--pc-b)}.iso-svg .pi-logo{fill:#fff}.iso-svg .pi-float.t{animation:5s ease-in-out infinite pi-bob}@keyframes pi-bob{50%{transform:translateY(-10px)}}.iso-svg .pi-grid .ext{stroke-dasharray:none;stroke:#ffffff29}.iso-svg.pi-svg{filter:drop-shadow(0 30px 60px color-mix(in srgb,var(--pc) 22%,transparent));overflow:visible}@media (prefers-reduced-motion:reduce){.iso-svg .pi-float{animation:none}}.iso-svg .ps-wall{fill:#101012}.iso-svg .ps-edge{fill:#0c0c0e;stroke:#ffffff38;stroke-width:.6px;vector-effect:non-scaling-stroke}.iso-svg .ps-brush{stroke:#ffffff05;stroke-width:1px}.iso-svg .ps-logo{filter:url(#ps-ink)}.iso-svg .ps-k{font:500 4.6px var(--mono);letter-spacing:.2em;fill:#e2e2e8}.iso-svg .ps-dim{fill:#ffffff73}.iso-svg .ps-badge{fill:#ffffff0d;stroke:#ffffff47;stroke-width:.5px}.iso-svg .ps-brand{font:600 9px var(--font);letter-spacing:-.01em}.iso-svg .ps-num{font:600 24px var(--font);letter-spacing:-.05em}.iso-svg .ps-sub{font:500 5px var(--mono);letter-spacing:.2em;fill:#dcdce2}.iso-svg .ps-sub2{font:400 6px var(--font);fill:#ffffff80}.iso-svg .ps-div{stroke:#ffffff17;stroke-width:.5px}.iso-svg .ps-pt{fill:#ffffff0f;stroke:#ffffff29;stroke-width:.5px}.iso-svg .ps-pic{color:#e2e2e8;stroke-width:1.7px}.iso-svg .ps-glow{fill:#8c96ff12;filter:url(#ps-haze)}.iso-svg .ps-chipl{fill:none;stroke:#00000040;stroke-width:.6px}.iso-svg .ps-sheen{animation:6s cubic-bezier(.6,0,.3,1) infinite ps-sheen}@keyframes ps-sheen{0%,35%{transform:translate(0)}75%,to{transform:translate(400px)}}.iso-svg .ps-beam{stroke:var(--iso-line-2);stroke-width:.8px;vector-effect:non-scaling-stroke;stroke-dasharray:3 4;animation:12.5s infinite ps-beam,1.2s linear infinite ps-flow;animation-delay:calc(var(--w) * 2.5s),0s}@keyframes ps-beam{0%,17%{stroke:var(--iso-node);stroke-width:1.2px}20%,to{stroke:var(--iso-line-2);stroke-width:.8px}}@keyframes ps-flow{to{stroke-dashoffset:-14px}}.iso-svg.ps-svg{overflow:visible}.iso-svg .ps-shadow{fill:#000;opacity:.7}.iso-svg .ps-floor .ext{stroke:#ffffff21;stroke-dasharray:none}.ps-svg .pi-float.t{animation-duration:6s}@media (prefers-reduced-motion:reduce){.iso-svg .ps-sheen,.iso-svg .ps-beam{animation:none}}@container (max-width:900px){.iso-scene{max-width:560px;margin:12px auto 0}}@keyframes iso-cursor{0%{transform:translate(0)}17.5%{transform:translate(0)}25%{transform:translate(59.8px,-2.5px)}42.5%{transform:translate(59.8px,-2.5px)}50%{transform:translate(124.7px,36px)}67.5%{transform:translate(124.7px,36px)}75%{transform:translate(57.2px,-29px)}92.5%{transform:translate(57.2px,-29px)}to{transform:translate(0)}}
