.suckable{will-change:transform,opacity}body.sucking .suckable{animation:suck .5s cubic-bezier(.55,0,.85,.4) forwards}body.sucking .suckable.s2{animation-delay:.05s}body.sucking .suckable.s3{animation-delay:.1s}@keyframes suck{30%{opacity:1}to{transform:translate(var(--dx),var(--dy)) scale(.04);opacity:0}}body.unsucking .suckable{animation:unsuck .55s cubic-bezier(.16,.85,.3,1) both}body.unsucking .suckable.s2{animation-delay:.06s}body.unsucking .suckable.s3{animation-delay:.12s}@keyframes unsuck{0%{transform:translate(var(--dx),var(--dy)) scale(.04);opacity:0}to{transform:none;opacity:1}}.pullaway{transition:opacity .4s,transform .45s}body.preview .pullaway,body.sucking .pullaway{opacity:0;transform:translateY(-36px) scale(.98);pointer-events:none}body.preview .pullaway{visibility:hidden}body.sucking [data-suckable]{pointer-events:none}.sp-hero{cursor:pointer;transform-origin:top left;transition:transform .62s cubic-bezier(.34,1.08,.28,1),box-shadow .5s}body.preview .sp-hero{box-shadow:0 60px 110px -30px rgba(10,9,7,.55)}body.space-mode .sp-hero{animation:flch-hero 6s ease-in-out infinite alternate}@keyframes flch-hero{0%{translate:-4px -8px}to{translate:4px 8px}}.space{position:fixed;inset:0;z-index:140;background:transparent;opacity:0;pointer-events:none;transition:opacity .5s}.space.on{opacity:1}.space>*{pointer-events:auto}.sp-scene{inset:0;perspective:1300px;pointer-events:none}.sp-scene,.sp-slot{position:absolute;transform-style:preserve-3d}.sp-slot{left:var(--sx);top:var(--sy);width:var(--sp-w,380px);height:var(--sp-h,333px);padding:0;border:0;background:none;will-change:transform;cursor:pointer;z-index:2;pointer-events:auto;outline:2.5px solid transparent;outline-offset:6px;transition:outline-color .35s}.sp-slot.spsel{outline-color:var(--acc)}.sp-slot:focus-visible{outline-color:var(--acc);outline-width:3px}.sp-slot.arrives-right{transition:transform .6s cubic-bezier(.55,-.18,.22,1.12),opacity .45s,outline-color .35s}.sp-slot.arrives-right.pre{transform:translateX(78vw) rotate(1.5deg);opacity:0}.sp-slot.arrives-left{transition:transform .62s cubic-bezier(.34,1.08,.28,1),opacity .45s,outline-color .35s}.sp-slot.arrives-left.pre{transform:translateX(-78vw);opacity:0}.spfloat{display:block;transform-style:preserve-3d;height:100%}.fl-ch{animation:flch 6s ease-in-out infinite alternate}@keyframes flch{0%{transform:translate(-4px,-8px)}to{transform:translate(4px,8px)}}.fl-sh{animation:flsh 1.9s cubic-bezier(.5,.05,.5,1) infinite alternate}@keyframes flsh{0%{transform:translate(3px,-5px) rotate(-.6deg)}to{transform:translate(-3px,5px) rotate(.6deg)}}.spwin{width:100%;height:100%;background:var(--p-bg);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 44px 90px -26px rgba(10,9,7,.5);text-align:left}.spwin .macbar{display:flex;align-items:center;height:38px;padding:0 14px;background:var(--p-chrome);border-bottom:1px solid rgba(0,0,0,.5);position:relative}.spwin .lights{display:flex;gap:8px}.spwin .lights i{width:12px;height:12px;border-radius:50%}.spwin .lights i:first-child{background:#ff5f57}.spwin .lights i:nth-child(2){background:#febc2e}.spwin .lights i:nth-child(3){background:#28c840}.spwin .macbar .title{position:absolute;left:0;right:0;text-align:center;pointer-events:none;color:var(--p-gray);font-size:12.5px;font-weight:500}.sp-panel{position:relative;flex:1;background:var(--p-bg);border-top:1px solid var(--p-line);padding:26px 20px 0;overflow:hidden}.sp-panel svg{width:100%;height:104px;display:block;position:relative;z-index:1}.sh-wave{fill:none;stroke:#e0643c;stroke-width:2.5;stroke-dasharray:1200;animation:shjolt 1.4s steps(6) infinite}@keyframes shjolt{0%,to{stroke-dashoffset:0}50%{stroke-dashoffset:24}}.sh-drive{display:flex;align-items:center;gap:12px;margin-top:14px;font:500 10px IBM Plex Mono,monospace;letter-spacing:.16em;color:#8f7f74}.sh-segs{display:flex;gap:4px;flex:1;max-width:220px}.sh-segs i{flex:1;height:10px;background:#2a221e;border-radius:2px}.sh-segs i:nth-child(-n+7){background:#e0643c;animation:shseg .7s steps(2) infinite alternate}.sh-segs i:nth-child(6),.sh-segs i:nth-child(7){animation-duration:.4s}@keyframes shseg{to{opacity:.35}}.ch-saws{overflow:hidden}.ch-saws polyline{fill:none;stroke-width:1.5}.ch-saws .s1{stroke:#6ec6d8}.ch-saws .s2{stroke:rgba(110,198,216,.55)}.ch-saws .s3{stroke:rgba(110,198,216,.3)}.ch-saws .drift{animation:drift 5s linear infinite}@keyframes drift{0%{transform:translateX(0)}to{transform:translateX(-60px)}}.ch-flow{fill:none;stroke:var(--p-teal);stroke-width:2;stroke-dasharray:6 5;animation:flowdash 1.1s linear infinite}@keyframes flowdash{to{stroke-dashoffset:-22}}.kb{display:flex;gap:3px;margin-top:14px}.kb i{flex:1;height:40px;background:#151a1e;border:1px solid #232a30;border-radius:0 0 3px 3px}.kb i.held{background:var(--p-teal);border-color:var(--p-teal);animation:chpulse 2.4s ease-in-out infinite}@keyframes chpulse{50%{opacity:.55}}.sp-caption{position:absolute;left:50%;top:74dvh;transform:translateX(-50%);display:flex;align-items:baseline;gap:16px;white-space:nowrap;transition:opacity .25s,transform .25s}.sp-caption.swap{opacity:0;transform:translateX(-50%) translateY(8px)}.spc-name{font-family:Anton,Arial Narrow,sans-serif;font-size:34px;text-transform:uppercase;color:var(--ink)}.spc-info{display:none}.spc-meta{font-weight:500;font-size:14px;color:var(--acc);transition:color .5s}.spc-open{font:500 12px/1 IBM Plex Mono,monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--paper);background:var(--ink);border:1.5px solid var(--ink);border-radius:999px;padding:9px 18px;min-height:32px;cursor:pointer;transition:background .2s,color .2s}.spc-open:hover{background:var(--acc);border-color:var(--acc)}.sp-nav{position:absolute;left:50%;top:82dvh;transform:translateX(-50%);display:flex;gap:10px}.sp-round{width:40px;height:40px;border-radius:50%;border:1.5px solid var(--ink);background:var(--paper);color:var(--ink);font-size:18px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .2s,color .2s}.sp-round:hover{border-color:var(--acc);color:var(--acc)}.sp-close{right:26px;top:96px}.sp-close,.sp-kb{position:absolute}.sp-kb{left:26px;bottom:26px;background:var(--card);border:1.5px solid var(--ink);border-radius:14px;padding:13px 16px;max-width:260px;box-shadow:0 20px 44px -18px rgba(10,9,7,.3)}.sp-kb dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0;font-size:12px;color:var(--half)}.sp-kb dt{font:500 10px/1.6 IBM Plex Mono,monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}.sp-kb dd{margin:0;line-height:1.6}.sp-info{position:fixed;z-index:160;pointer-events:none;background:var(--paper);border:1.5px solid var(--ink);border-left:4px solid var(--acc);border-radius:14px;padding:11px 15px;max-width:250px;box-shadow:0 20px 44px -14px rgba(10,9,7,.4);animation:spinfoin .18s cubic-bezier(.2,.9,.3,1);transition:border-color .3s}@keyframes spinfoin{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.sp-info b{display:block;font-size:13.5px;color:var(--ink);margin-bottom:2px}.sp-info span{font-size:12px;color:var(--half);line-height:1.5;display:block}.sp-info[hidden]{display:none}.sp-slot[data-slot="0"]{--sx:22vw;--sy:26dvh}.sp-slot[data-slot="1"]{--sx:56vw;--sy:26dvh}@media (max-width:980px){.sp-slot[data-slot="0"]{--sx:6vw}.sp-slot[data-slot="1"]{--sx:52vw}.spc-name{font-size:26px}.sp-close{right:16px;top:84px}}@media (max-width:700px){.sp-slot[data-slot="0"]{--sx:24vw;--sy:14dvh}.sp-slot[data-slot="1"]{--sx:24vw;--sy:39dvh}.spwin .macbar .lights{display:none}.spc-name{font-size:22px}.spc-meta{font-size:12.5px}.sp-caption{flex-direction:column;align-items:center;gap:8px;top:64dvh}.sp-nav{top:auto;bottom:20px}.sp-round{width:48px;height:48px}.sp-kb{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;background:none;box-shadow:none;max-width:none;left:0;bottom:0}.sp-info{display:none}.spc-info{display:block;max-width:78vw;white-space:normal;text-align:center;font-size:13px;line-height:1.5;color:var(--half)}.sp-panel{padding:12px 12px 0}.sp-panel svg{height:62px}.kb i{height:22px}.kb,.sh-drive{margin-top:8px}.sh-segs i{height:7px}}body.space-mode .masthead .brand{transform:scale(1.8333);transform-origin:left center}@media (max-width:700px){body.space-mode .masthead .brand{transform:none}}.masthead .brand{display:inline-block;transition:transform .5s cubic-bezier(.3,.9,.3,1)}body.space-mode .masthead nav a{opacity:.9;transition:opacity .4s}body.space-mode .masthead nav a:focus-visible,body.space-mode .masthead nav a:hover{opacity:1}body.dark .spwin{border:1px solid rgba(255,255,255,.11)}@media (prefers-reduced-motion:reduce){.ch-flow,.ch-saws .drift,.kb i.held,.sh-segs i,.sh-wave,.sp-hero,.spfloat{animation:none!important}.masthead .brand,.sp-caption,.sp-hero,.sp-slot,.space{transition-duration:1ms!important}}.pl-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--hair)}.pl-list li{border-bottom:1px solid var(--hair)}.pl-row{display:flex;align-items:baseline;gap:18px;padding:22px 2px;text-decoration:none;color:var(--ink)}.pl-row:hover .pl-name{color:var(--acc)}.pl-name{font-family:Anton,Arial Narrow,sans-serif;font-size:26px;text-transform:uppercase;transition:color .2s}.pl-tag{color:var(--half);font-size:15px;flex:1}.pl-state{font:500 10px/1 IBM Plex Mono,monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--half);white-space:nowrap}@media (max-width:640px){.pl-row{flex-wrap:wrap;gap:8px 14px}.pl-tag{flex:1 0 100%}}.pl-open{margin-top:26px}