@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.00az9qtie3ho1.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.3j-a226dh71aj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.2gwoz23eiro2t.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.0i3h3th1vs4m7.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.0zr6hhvz-h9nw.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.veOXhW_className{font-family:Geist,Geist Fallback;font-style:normal}.veOXhW_variable{--font-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.27spqqad3wyeo.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.3f4zuumv8svu0.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.34r5yzckw0h2s.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.2jyz_zw3a8jit.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.30bdpjkrtcces.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.1v5bejj26fx9h.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.rdjX_G_className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.rdjX_G_variable{--font-mono:"Geist Mono", "Geist Mono Fallback"}
html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-behavior:allow-discrete;transition-property:overflow;transition-duration:1ms}
:root{--bg:#070707;--bg-1:#0e0e0e;--bg-2:#151515;--bg-3:#1d1d1d;--fg:#f2efe9;--fg-2:#a9a49c;--fg-3:#8f8a83;--ink:#0a0a0a;--line:#f2efe917;--line-2:#f2efe92e;--red:#ff3326;--red-rgb:255, 51, 38;--red-hot:#ff6a3d;--red-deep:#a3110a;--red-glow:#ff332659;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.87, 0, .13, 1);--gutter:clamp(1rem, 4vw, 3.25rem);--max:1680px;--radius:16px;--nav-h:76px;--display-xl:clamp(4.2rem, 15.5vw, 17rem);--display-l:clamp(2.8rem, 7vw, 7.5rem);--display-m:clamp(2.4rem, 5.4vw, 5.6rem)}*,:before,:after{box-sizing:border-box}html{background:var(--bg);-webkit-text-size-adjust:100%;overflow-x:clip}body{min-height:100vh;font-family:var(--font-sans),system-ui,sans-serif;color:var(--fg);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;font-size:16px;line-height:1.55;overflow-x:clip}img,video,iframe,svg{max-width:100%}img,video{height:auto;display:block}a{color:inherit}button{font:inherit;color:inherit}h1,h2,h3,h4,h5,h6{font-family:var(--font-sans);letter-spacing:-.035em;margin:0 0 .5em;font-weight:500;line-height:1.02}p{margin:0 0 1.1em}::selection{background:var(--red);color:var(--ink)}:focus-visible{outline:2px solid var(--red);outline-offset:3px;border-radius:4px}kbd{font-family:var(--font-mono);border:1px solid var(--line-2);color:var(--fg);border-bottom-width:2px;border-radius:5px;padding:.15em .45em;font-size:.75em}main{z-index:1;position:relative}.mono{font-family:var(--font-mono),ui-monospace,monospace}.display{font-size:var(--display-m);letter-spacing:-.05em;margin:0;font-weight:500;line-height:.95}.display em{color:var(--fg-2)}.accent,.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}[data-split=chars]{font-kerning:none}.split-line-mask{margin-bottom:-.1em;padding-bottom:.1em}.motion [data-reveal],.motion [data-stagger]>*,.motion [data-split]{opacity:0}.motion [data-line]{transform:scaleX(0)}.rise .w,.home-title .w{vertical-align:top;margin-bottom:-.2em;padding:.04em .06em .2em 0;display:inline-block;overflow:clip}.rise .ch,.home-title .ch{display:inline-block}@keyframes rise{0%{transform:translateY(105%)}}.motion .rise .ch{animation:rise 1.2s var(--ease-out) backwards;animation-delay:calc(80ms + var(--i)*28ms)}.home-title .rise-line{vertical-align:top;margin-bottom:-.2em;padding:.04em 0 .2em;display:inline-block;overflow:clip}.home-title .w{overflow:visible}.motion .home-title .w{animation:rise 1.3s var(--ease-out) backwards}.motion .home-title .rise-line:nth-child(2) .w{animation-delay:.12s}.glyph-text{--glyph-x:.15em;--glyph-top:.3em;--glyph-bottom:.35em;position:relative}.glyph-text.glyph-solid{width:fit-content;max-width:100%}.glyph-text.gl-ready{color:#0000}.glyph-text.gl-ready .glyph-text-gl{opacity:1}.glyph-text-gl{top:calc(-1*var(--glyph-top));left:calc(-1*var(--glyph-x));width:calc(100% + 2*var(--glyph-x));height:calc(100% + var(--glyph-top) + var(--glyph-bottom));opacity:0;pointer-events:none;position:absolute}.glyph-hover{z-index:1;opacity:0;pointer-events:none;width:100%;height:100%;transition:opacity .35s;position:absolute;inset:0}.glyph-hover.is-on{opacity:1}.section{max-width:var(--max);padding:clamp(6rem,15vh,11rem) var(--gutter);margin:0 auto;position:relative}.btn{cursor:pointer;transition:background-color .4s var(--ease-out),color .4s var(--ease-out),border-color .4s var(--ease-out),box-shadow .4s var(--ease-out);background:0 0;border:1px solid #0000;border-radius:999px;align-items:center;gap:.75rem;padding:1rem 1.6rem;font-size:1rem;font-weight:500;text-decoration:none;display:inline-flex}.btn svg{transition:transform .5s var(--ease-out)}.btn:hover svg{transform:translate(4px)}.btn-primary{background:var(--red);color:var(--ink)}.btn-primary:hover{background:var(--fg)}.btn-ghost{color:var(--fg);border-color:var(--line-2)}.btn-ghost:hover{border-color:var(--fg)}.tags{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.tag{letter-spacing:0;border:1px solid var(--line-2);color:var(--fg-2);white-space:nowrap;border-radius:999px;padding:.32rem .65rem;font-size:.68rem}.back-link{font-family:var(--font-mono);letter-spacing:0;color:var(--fg-2);transition:color .3s ease,gap .4s var(--ease-out);align-items:center;gap:.6rem;margin-bottom:3rem;font-size:.75rem;text-decoration:none;display:inline-flex}.back-link:hover{color:var(--red);gap:1rem}.roll{vertical-align:top;line-height:1.25;display:inline-block;position:relative;overflow:hidden}.roll>span,.roll:after{transition:transform .55s var(--ease-out);display:block}.roll:after{content:attr(data-text);position:absolute;top:100%;left:0}a:hover .roll>span,a:hover .roll:after,button:hover .roll>span,button:hover .roll:after{transform:translateY(-100%)}@keyframes settle{0%{transform:translateY(.35em)}to{transform:none}}.settle{animation:settle 1s var(--ease-out) both}.settle.d1{animation-delay:60ms}.settle.d2{animation-delay:.12s}@media (prefers-reduced-motion:reduce){.settle{animation:none}}body>main{z-index:1;background:var(--bg);min-height:100svh;position:relative}::view-transition{pointer-events:none}::view-transition-old(.page-exit){animation:.9s cubic-bezier(.65,0,.35,1) both page-out}@property --sweep{syntax:"<length>";inherits:false;initial-value:0}::view-transition-new(.page-enter){-webkit-mask-image:linear-gradient(to bottom, #000 calc(var(--sweep) - 36vh), transparent calc(var(--sweep) - 26vh)),url(/glyph-mask.png),linear-gradient(to bottom, transparent calc(var(--sweep) - 32vh), #000 calc(var(--sweep) - 32vh), #000 calc(var(--sweep) - 12vh), transparent var(--sweep));mask-image:linear-gradient(to bottom, #000 calc(var(--sweep) - 36vh), transparent calc(var(--sweep) - 26vh)),url(/glyph-mask.png),linear-gradient(to bottom, transparent calc(var(--sweep) - 32vh), #000 calc(var(--sweep) - 32vh), #000 calc(var(--sweep) - 12vh), transparent var(--sweep));animation:1s cubic-bezier(.65,0,.35,1) both page-type;-webkit-mask-size:100% 100%,198px 140px,100% 100%;mask-size:100% 100%,198px 140px,100% 100%;-webkit-mask-repeat:no-repeat,repeat,no-repeat;mask-repeat:no-repeat,repeat,no-repeat;-webkit-mask-composite:source-over,source-in;mask-composite:add,intersect}@keyframes page-out{to{filter:brightness(.3);transform:scale(.97)}}@keyframes page-type{0%{--sweep:-5vh}to{--sweep:140vh}}::view-transition-group(.morph){z-index:50;animation-duration:.8s;animation-timing-function:cubic-bezier(.76,0,.24,1)}::view-transition-image-pair(.morph){animation:.8s both morph-soften}@keyframes morph-soften{40%{filter:blur(2px)}}::view-transition-group(site-header){z-index:100;animation:none}::view-transition-old(site-header){display:none}::view-transition-new(site-header){animation:none}:root.curtain::view-transition-old(*){animation:none!important}:root.curtain::view-transition-new(*){animation:none!important}:root.curtain::view-transition-group(*){animation:none!important}:root.curtain::view-transition-image-pair(*){animation:none!important}.code-curtain{z-index:3000;pointer-events:none;visibility:hidden;width:100vw;height:100vh;position:fixed;inset:0}.code-curtain.is-on{visibility:visible;view-transition-name:code-curtain}::view-transition-group(code-curtain){z-index:1000;animation:none}::view-transition-old(code-curtain){mix-blend-mode:normal;opacity:1;animation:none}::view-transition-new(code-curtain){mix-blend-mode:normal;opacity:1;animation:none}@media (prefers-reduced-motion:reduce){::view-transition-old(*){animation-duration:0s!important;animation-delay:0s!important}::view-transition-new(*){animation-duration:0s!important;animation-delay:0s!important}::view-transition-group(*){animation-duration:0s!important;animation-delay:0s!important}::view-transition-image-pair(*){animation-duration:0s!important;animation-delay:0s!important}}.navbar{z-index:1000;transition:transform .7s var(--ease-out);position:fixed;top:0;left:0;right:0}.navbar.is-hidden{transform:translateY(-110%)}.nav-inner{height:var(--nav-h);padding:0 max(var(--gutter),(100vw - var(--max))/2 + var(--gutter));border-bottom:1px solid #0000;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;transition:background-color .5s,border-color .5s;display:grid;position:relative}.is-scrolled .nav-inner{background:var(--bg);border-bottom-color:var(--line)}@media (max-width:1023px){.nav-inner{grid-template-columns:1fr auto}}.nav-brand{letter-spacing:-.04em;justify-self:start;align-items:center;gap:.7rem;font-size:1.15rem;font-weight:600;text-decoration:none;display:inline-flex}.brand-mark{align-items:flex-end;gap:2px;height:16px;display:inline-flex}.brand-mark span{background:var(--red);border-radius:1px;width:3px}.brand-mark span:first-child{height:60%}.brand-mark span:nth-child(2){height:100%}.brand-mark span:nth-child(3){height:40%}.nav-links{gap:.25rem;display:flex}@media (max-width:1023px){.nav-links{display:none}}.nav-link{color:var(--fg-2);padding:.45rem .8rem;font-size:.92rem;text-decoration:none;transition:color .3s;position:relative}.nav-link:hover,.nav-link.active{color:var(--fg)}.nav-link.active:after{content:"";background:var(--red);height:1px;position:absolute;bottom:.15rem;left:.8rem;right:.8rem}.nav-right{justify-content:flex-end;align-items:center;gap:1.25rem;display:flex}.nav-cta{background:var(--red);color:var(--ink);border-radius:999px;padding:.6rem 1.1rem;font-size:.88rem;font-weight:500;text-decoration:none;transition:background-color .3s;display:inline-flex}.nav-cta:hover{background:var(--fg)}@media (max-width:767px){.nav-cta{display:none}}.menu-toggle{border:1px solid var(--line-2);letter-spacing:0;cursor:pointer;z-index:1002;background:0 0;border-radius:999px;align-items:center;gap:.75rem;padding:.55rem 1rem;font-size:.75rem;display:none;position:relative}@media (max-width:1023px){.menu-toggle{display:inline-flex}}.menu-lines{flex-direction:column;gap:4px;width:16px;display:flex}.menu-lines span{background:var(--fg);height:1.5px;transition:transform .5s var(--ease-out)}.open .menu-lines span:first-child{transform:translateY(2.75px)rotate(45deg)}.open .menu-lines span:last-child{transform:translateY(-2.75px)rotate(-45deg)}.mobile-menu{z-index:999;padding:calc(var(--nav-h) + 2rem) var(--gutter) 2rem;background:var(--bg);clip-path:inset(0 0 100%);visibility:hidden;transition:clip-path .9s var(--ease-in-out),visibility 0s .9s;flex-direction:column;justify-content:space-between;display:flex;position:fixed;inset:0}.mobile-menu.open{clip-path:inset(0);visibility:visible;transition:clip-path .9s var(--ease-in-out),visibility 0s 0s}@media (min-width:1024px){.mobile-menu{display:none}}.mobile-link-mask{border-bottom:1px solid var(--line);overflow:hidden}.mobile-link{letter-spacing:-.05em;align-items:baseline;gap:1rem;padding:.35rem 0;font-size:clamp(2.4rem,11vw,4.5rem);font-weight:500;line-height:1.05;text-decoration:none;display:flex}.mobile-link .mono{letter-spacing:0;color:var(--red);font-size:.75rem}.mobile-menu-foot{color:var(--fg-3);flex-wrap:wrap;justify-content:space-between;gap:1rem;font-size:.75rem;display:flex}.mobile-menu-foot a{color:var(--fg-2)}.footer-wrap{z-index:1;border-top:1px solid var(--line);background:var(--bg-1);position:relative;overflow:hidden}.footer-reveal .footer-wrap{z-index:0;border-top:0;position:sticky;bottom:0}.footer-reveal body>main{border-bottom:1px solid var(--line);border-radius:0 0 28px 28px}.footer{max-width:var(--max);padding:5rem var(--gutter) 2rem;margin:0 auto}.footer-top{grid-template-columns:repeat(4,1fr);gap:2rem;display:grid}@media (max-width:1023px){.footer-top{grid-template-columns:repeat(2,1fr)}}.footer-col{flex-direction:column;align-items:flex-start;gap:.45rem;display:flex}.footer-col a{color:var(--fg);text-decoration:none;transition:color .3s}.footer-col a:hover{color:var(--red)}.footer-label{font-family:var(--font-mono);letter-spacing:0;color:var(--fg-3);margin-bottom:.6rem;font-size:.75rem}.footer-time{letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:2rem;font-weight:500}.footer-muted{color:var(--fg-2);font-size:.9rem}.to-top{border:1px solid var(--line-2);cursor:pointer;background:0 0;border-radius:50%;width:52px;height:52px;margin-top:1rem;transition:background-color .3s,color .3s,border-color .3s}.to-top:hover{background:var(--red);border-color:var(--red);color:var(--ink)}.footer-word{--glyph-x:.04em;--glyph-top:.08em;--glyph-bottom:.14em;letter-spacing:-.075em;text-align:center;white-space:nowrap;color:var(--fg);margin:4rem auto 1rem;font-size:clamp(2.6rem,11.6vw,13rem);font-weight:600;line-height:.78;-webkit-mask-image:linear-gradient(#000 30%,#0000001a 100%);mask-image:linear-gradient(#000 30%,#0000001a 100%)}.footer-bottom{border-top:1px solid var(--line);letter-spacing:0;color:var(--fg-3);flex-wrap:wrap;justify-content:space-between;gap:.75rem;padding-top:1.5rem;font-size:.72rem;display:flex}.footer-link-btn{font:inherit;letter-spacing:inherit;text-transform:inherit;color:var(--fg-3);cursor:pointer;text-decoration:underline;-webkit-text-decoration-color:var(--line-2);text-decoration-color:var(--line-2);text-underline-offset:3px;background:0 0;border:none;padding:0}.footer-link-btn:hover{color:var(--red)}.consent{left:var(--gutter);z-index:990;width:min(340px,100vw - 2*var(--gutter));border:1px solid var(--line-2);background:var(--bg-1);animation:consent-in .6s var(--ease-out) 1.2s both;border-radius:12px;padding:1rem 1.1rem;position:fixed;bottom:1.25rem}@keyframes consent-in{0%{opacity:0;transform:translateY(20px)}}.consent-title{letter-spacing:0;align-items:center;gap:.6rem;margin:0 0 .5rem;font-size:.72rem;display:flex}.consent-text{color:var(--fg-2);margin:0 0 1rem;font-size:.92rem;line-height:1.5}.consent-actions{gap:.5rem;display:flex}.consent-actions .btn{padding:.6rem 1.1rem;font-size:.88rem}.race-progress{right:var(--gutter);z-index:980;border:1px solid var(--line);background:var(--bg-1);color:var(--fg-2);cursor:pointer;opacity:0;pointer-events:none;transition:opacity .5s var(--ease-out),transform .5s var(--ease-out),border-color .3s ease;border-radius:12px;align-items:center;gap:.75rem;padding:.5rem .75rem .5rem .55rem;display:flex;position:fixed;bottom:1.25rem;transform:translateY(12px)}.race-progress.is-on{opacity:1;pointer-events:auto;transform:none}.race-progress:hover{border-color:var(--line-2);color:var(--fg)}.race-progress svg{width:54px;height:auto;display:block;overflow:visible}@media (max-width:767px){.race-progress{border-radius:10px;padding:.45rem;bottom:.75rem;right:.75rem}.race-progress svg{width:34px}.race-progress .race-km{display:none}}.race-track,.race-line{fill:none;stroke-linecap:round;stroke-linejoin:round}.race-track{stroke:#f2efe933;stroke-width:22px}.race-line{stroke:var(--red);stroke-width:34px;stroke-dasharray:1;stroke-dashoffset:1px}.race-car{fill:var(--fg);stroke:var(--bg-1);stroke-width:14px}.race-km{font-variant-numeric:tabular-nums;min-width:4.6em;font-size:.75rem}@media (prefers-reduced-motion:reduce){.race-progress{transition:none}}@media (max-width:767px){body:has(.consent) .race-progress{display:none}}.cursor-label{z-index:990;background:var(--red);color:#0b0b0b;width:84px;height:84px;font-family:var(--font-mono);pointer-events:none;border-radius:50%;place-items:center;font-size:.8rem;display:grid;position:fixed;top:0;left:0;transform:scale(0)}@media (hover:none),(pointer:coarse){.cursor-label{display:none}}.sound-toggle{color:var(--fg-2);cursor:pointer;background:0 0;border:0;align-items:center;gap:.55rem;padding:.45rem .2rem;transition:color .3s;display:inline-flex}.sound-toggle:hover,.sound-toggle.is-on{color:var(--fg)}@media (max-width:767px){.sound-toggle .sound-label{display:none}}.sound-label{font-size:.72rem}.sound-bars{align-items:flex-end;gap:2px;height:12px;display:inline-flex}.sound-bars span{transform-origin:bottom;background:currentColor;width:2px;height:100%;transition:transform .3s;transform:scaleY(.25)}.is-on .sound-bars span{background:var(--red);animation:.9s ease-in-out infinite alternate sound-bar}.is-on .sound-bars span:nth-child(2){animation-delay:-.3s}.is-on .sound-bars span:nth-child(3){animation-delay:-.6s}.is-on .sound-bars span:nth-child(4){animation-delay:-.15s}@keyframes sound-bar{0%{transform:scaleY(.25)}to{transform:scaleY(1)}}@media (prefers-reduced-motion:reduce){.is-on .sound-bars span{animation:none;transform:scaleY(.7)}}.code-trail{z-index:985;pointer-events:none;width:100vw;height:100vh;position:fixed;inset:0}.home{max-width:var(--max);padding:0 var(--gutter);margin:0 auto}@media (min-width:1024px){.motion .home-hero-track:not(.is-static){height:calc(max(100vh,640px) + 150vh)}}.home-hero{--edge:calc(max(0px, (100vw - var(--max)) / 2) + var(--gutter));width:100vw;height:100svh;min-height:640px;padding:calc(var(--nav-h) + clamp(1.5rem,5vh,3rem)) var(--edge) clamp(1rem,3vh,2rem);grid-template-rows:auto 1fr auto;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:clamp(2rem,5vw,5rem);margin-left:calc(50% - 50vw);display:grid;position:relative;overflow:hidden}@media (min-width:1024px){.home-hero{position:sticky;top:0}}@media (max-width:1023px){.home-hero{height:auto;min-height:100svh;padding-top:var(--nav-h);grid-template-rows:auto auto auto auto;grid-template-columns:minmax(0,1fr)}}.home-hero-gl{z-index:0;opacity:0;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.gl-ready .home-hero-gl{opacity:1}.home-portrait{z-index:0;top:var(--nav-h);left:calc(var(--edge) - 1vw);width:min((100svh - var(--nav-h))*.75,50vw - var(--edge) + 2vw);aspect-ratio:3/4;margin:0;position:absolute;overflow:hidden}.home-portrait img{object-fit:cover;object-position:50% 30%}.gl-ready .home-portrait img{opacity:0}@media (max-width:1023px){.home-portrait{width:calc(100% + 2*var(--edge));aspect-ratio:4/5;height:auto;max-height:78svh;margin-left:calc(-1*var(--edge));border-radius:0;grid-row:2;position:relative;top:auto;left:auto}}.home-hero-meta{z-index:2;border-bottom:1px solid var(--line-2);color:var(--fg-2);grid-area:1/2;justify-content:space-between;gap:1rem;padding-bottom:1rem;font-size:.8rem;display:flex;position:relative}@media (max-width:1023px){.home-hero-meta{grid-column:1;margin-top:1rem}}.home-hero-intro{z-index:2;flex-direction:column;grid-area:2/2;align-items:flex-start;padding:clamp(2rem,7vh,5rem) 0 clamp(1.5rem,4vh,3rem);display:flex;position:relative}@media (max-width:1023px){.home-hero-intro{grid-area:4/1;padding:1.5rem 0 3rem}}.home-hero-hint{max-width:34ch;color:var(--fg-3);margin:auto 0 0;padding-top:2.5rem;font-size:.75rem;line-height:1.6;display:none}.motion .home-hero-hint{opacity:0;visibility:hidden;transition:opacity .8s var(--ease-out),visibility 0s .8s;display:block}.motion .gl-ready .home-hero-hint{opacity:1;visibility:visible;transition:opacity .8s var(--ease-out) .4s}.motion .gl-off .home-hero-hint,.home-hero-hint .hint-touch{display:none}@media (hover:none){.home-hero-hint .hint-hover{display:none}.home-hero-hint .hint-touch{display:inline}}.home-hero-hint [data-glyph-count]{color:var(--fg)}.home-hero-caption{z-index:2;padding:5rem var(--edge) 2rem;color:var(--fg);opacity:0;pointer-events:none;background:linear-gradient(#0000,#070707cc);justify-content:space-between;font-size:.85rem;display:flex;position:absolute;bottom:0;left:0;right:0}.home-title{z-index:1;letter-spacing:-.065em;white-space:nowrap;grid-area:3/1/auto/-1;margin:0;font-size:min(11.6vw,196px);font-weight:500;line-height:.82;position:relative}.motion .home-title{mix-blend-mode:difference}@media (max-width:1023px){.home-title{white-space:normal;grid-row:3;margin-top:-.82em;font-size:15.5vw;line-height:.86}.home-title .rise-line{display:block}}.home-lede{letter-spacing:-.015em;max-width:32ch;color:var(--fg-2);text-wrap:pretty;margin:0;font-size:clamp(1.15rem,.55rem + 1.2vw,2rem);line-height:1.38}@media (max-width:1023px){.home-lede{max-width:40ch;font-size:clamp(1.1rem,3.6vw,1.35rem);line-height:1.5}}.home-actions{flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.home-section{padding:clamp(5rem,12vh,8rem) 0 0}.section-head{margin-bottom:clamp(2rem,5vh,3.5rem)}.home-head-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.5rem;display:flex}.home-all{color:var(--fg-2);align-items:center;gap:.5rem;font-size:.85rem;text-decoration:none;transition:color .3s;display:inline-flex}.home-all svg{width:.8em;transition:transform .4s var(--ease-out)}.home-all:hover{color:var(--red)}.home-all:hover svg{transform:translate(4px)}.home-statement{padding:clamp(6rem,16vh,10rem) 0 0}.home-statement p{letter-spacing:-.04em;max-width:1150px;margin:0;font-size:clamp(1.9rem,4.4vw,4.6rem);font-weight:500;line-height:1.06}.home-focus{grid-template-columns:minmax(0,4fr) minmax(0,8fr);align-items:start;gap:2rem clamp(2rem,5vw,5rem);display:grid}.home-focus .home-row{grid-template-columns:minmax(0,3fr) minmax(0,5fr)}.home-focus .home-row-link{grid-column:2;justify-self:start}@media (max-width:1023px){.home-focus,.home-focus .home-row{grid-template-columns:1fr}.home-focus .home-row-link{grid-column:1}}.home-focus-aside{top:calc(var(--nav-h) + 3rem);flex-direction:column;gap:2rem;display:flex;position:sticky}@media (max-width:1023px){.home-focus-aside{position:static}}.home-focus-now{flex-direction:column;gap:.9rem;display:none}.is-live .home-focus-now{display:flex}.home-focus-bar{background:var(--line-2);width:100%;max-width:280px;height:2px;display:block}.home-focus-bar span{background:var(--red);transform-origin:0;height:100%;display:block;transform:scaleX(0)}.home-focus-name{color:var(--fg-2);font-size:.9rem;display:block}.is-live .home-row{position:relative}.is-live .home-row h3,.is-live .home-row p{color:var(--fg-3);transition:color .5s}.is-live .home-row:before{content:"";background:var(--red);width:6px;height:6px;transition:transform .5s var(--ease-out);border-radius:50%;position:absolute;top:2.85rem;left:-1.4rem;transform:scale(0)}.is-live .home-row.is-active h3{color:var(--fg)}.is-live .home-row.is-active p{color:var(--fg-2)}.is-live .home-row.is-active:before{transform:scale(1)}.home-rows{border-bottom:1px solid var(--line);margin:0;padding:0;list-style:none}.home-row{border-top:1px solid var(--line);grid-template-columns:minmax(0,3fr) minmax(0,5fr) minmax(0,2fr);align-items:baseline;gap:1rem clamp(1.5rem,3vw,3rem);padding:2rem 0;display:grid}.home-row h3{letter-spacing:-.035em;margin:0;font-size:clamp(1.4rem,2.4vw,2.1rem);font-weight:500}@media (max-width:1023px){.home-row{grid-template-columns:1fr;gap:.75rem}}.home-row-body{flex-direction:column;gap:.75rem;display:flex}.home-row-body p{max-width:58ch;color:var(--fg-2);margin:0;line-height:1.6}.home-row-tools{color:var(--fg-3);font-size:.8rem}.home-row-link{color:var(--fg);white-space:nowrap;justify-self:end;align-items:center;gap:.5rem;text-decoration:none;transition:color .3s;display:inline-flex}.home-row-link svg{width:.75em;color:var(--red);transition:transform .4s var(--ease-out)}.home-row-link:hover{color:var(--red)}.home-row-link:hover svg{transform:translate(4px)}@media (max-width:1023px){.home-row-link{justify-self:start}}.home-work-tools{align-items:center;gap:2rem;display:flex}.home-work-count{color:var(--fg-3);font-variant-numeric:tabular-nums;font-size:.85rem;display:none}.home-work-count [data-work-index]{color:var(--fg)}.home-work-progress{background:var(--line);height:2px;margin-bottom:clamp(1.5rem,4vh,2.5rem);display:none}.home-work-progress span{background:var(--red);transform-origin:0;height:100%;display:block;transform:scaleX(0)}.home-work{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(2.5rem,5vw,4rem) clamp(1rem,2vw,1.5rem);display:grid}@media (max-width:767px){.home-work{grid-template-columns:1fr}}.home-work-scene.is-reel{--edge:calc(max(0px, (100vw - var(--max)) / 2) + var(--gutter));width:100vw;height:100svh;padding:var(--nav-h) var(--edge) 2rem;flex-direction:column;justify-content:center;margin-left:calc(50% - 50vw);display:flex;overflow:hidden}.home-work-scene.is-reel .section-head{margin-bottom:1.25rem}.home-work-scene.is-reel .home-work-count,.home-work-scene.is-reel .home-work-progress{display:block}.home-work-scene.is-reel .home-work{will-change:transform;gap:clamp(1.5rem,3vw,3rem);width:max-content;display:flex}.home-work-scene.is-reel .home-work-card{flex:none;width:min(46vw,160svh - 35.2rem,820px)}.home-work-card{color:inherit;flex-direction:column;gap:.6rem;text-decoration:none;display:flex}.home-work-card p{max-width:52ch;color:var(--fg-2);margin:0;line-height:1.55}@media (hover:hover) and (pointer:fine){.home-work-card:hover h3{color:var(--red)}.home-work-card:hover img{transform:scale(1.04)}}.home-work-media{aspect-ratio:16/10;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-2);margin-bottom:.6rem;position:relative;overflow:hidden}.home-work-media img{object-fit:cover;transition:transform .9s var(--ease-out)}.home-work-reveal{position:absolute;inset:0;overflow:hidden}.home-work-drift{position:absolute;inset:-6%}.home-work-meta{align-items:baseline;gap:1rem;display:flex}.home-work-meta h3{letter-spacing:-.035em;margin:0 auto 0 0;font-size:clamp(1.4rem,2.2vw,1.9rem);font-weight:500;transition:color .3s}.home-work-meta span{color:var(--fg-3);white-space:nowrap;font-size:.8rem}.home-work-meta .home-work-num{color:var(--red)}.stack-bands{border-bottom:1px solid var(--line)}.stack-band{border-top:1px solid var(--line);padding:clamp(1.25rem,3vh,2rem) 0}.stack-band-label{color:var(--fg-3);justify-content:space-between;gap:1rem;margin-bottom:.75rem;font-size:.8rem;display:flex}.stack-band-label h3{font:inherit;color:var(--fg-2);margin:0}.stack-band-track{display:flex}.stack-band-items{letter-spacing:-.045em;flex-wrap:wrap;gap:.2em 0;margin:0;padding:0;font-size:clamp(1.9rem,5.4vw,5.6rem);font-weight:500;line-height:1.05;list-style:none;display:flex}.stack-band-items li{white-space:nowrap;align-items:center;display:flex}.stack-band-items li:after{content:"";background:var(--red);border-radius:50%;width:.14em;height:.14em;margin:0 .45em}.stack-band-items[aria-hidden]{display:none}.stack-bands.is-marquee{width:100vw;margin-left:calc(50% - 50vw)}.stack-bands.is-marquee .stack-band-label{padding:0 calc(max(0px,(100vw - var(--max))/2) + var(--gutter))}.stack-bands.is-marquee .stack-band-track{will-change:transform;width:max-content}.stack-bands.is-marquee .stack-band-items{flex-wrap:nowrap}.stack-bands.is-marquee .stack-band-items[aria-hidden]{display:flex}.stack-bands.is-marquee .stack-band:nth-child(2n) .stack-band-items{color:var(--fg-3)}.post-preview{z-index:40;aspect-ratio:16/10;pointer-events:none;opacity:0;background:var(--bg-2);border-radius:12px;width:clamp(240px,22vw,360px);position:fixed;top:0;left:0;overflow:hidden;box-shadow:0 30px 60px #00000080}.post-preview img{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .35s;position:absolute;inset:0}.post-preview img.is-on{opacity:1}.glyph-heading{--edge:calc(max(0px, (100vw - var(--max)) / 2) + var(--gutter));width:100vw;padding:.28em var(--edge) .5em;margin-left:calc(50% - 50vw);font-size:clamp(4.2rem,19.5vw,18rem);overflow:hidden}.glyph-heading h2{--glyph-x:var(--edge);--glyph-top:.28em;--glyph-bottom:.5em;letter-spacing:-.065em;margin:0;font-size:1em;font-weight:500;line-height:.9}.home-contact{padding-bottom:clamp(5rem,12vh,8rem)}.home-contact p{max-width:52ch;color:var(--fg-2);margin:1.5rem 0 0;font-size:clamp(1.05rem,1.4vw,1.25rem)}.home-email{letter-spacing:-.04em;color:var(--fg);text-decoration:underline;-webkit-text-decoration-color:var(--red);text-decoration-color:var(--red);text-underline-offset:.18em;overflow-wrap:anywhere;margin-top:2rem;font-size:clamp(1.6rem,4.5vw,3.6rem);font-weight:500;text-decoration-thickness:2px;transition:color .3s;display:inline-block}.home-email:hover{color:var(--red)}.home-socials{gap:1.5rem;margin-top:2rem;display:flex}.home-socials a{color:var(--fg-2);align-items:center;gap:.5rem;text-decoration:none;transition:color .3s;display:inline-flex}.home-socials a:hover{color:var(--fg)}.about-photo{aspect-ratio:3/4;border-radius:var(--radius);background:var(--bg-2);margin:0;position:relative;overflow:hidden}@media (max-width:1023px){.about-photo{max-width:480px}}.about-photo-inner{position:absolute;inset:-8% 0}.about-photo-inner img{object-fit:cover}.about-photo figcaption{z-index:2;background:linear-gradient(#0000,#070707d9);justify-content:space-between;padding:1rem 1.2rem;font-size:.8rem;display:flex;position:absolute;bottom:0;left:0;right:0}.about-copy p{max-width:56ch;color:var(--fg-2);font-size:clamp(1.05rem,1.25vw,1.2rem);line-height:1.7}.about-copy strong{color:var(--fg);font-weight:500}.about-copy a{color:var(--fg);-webkit-text-decoration-color:var(--red);text-decoration-color:var(--red);text-underline-offset:3px;transition:color .3s}.about-copy a:hover{color:var(--red)}.page{max-width:var(--max);padding:0 var(--gutter) clamp(6rem,14vh,10rem);margin:0 auto}.page-hero{padding-top:calc(var(--nav-h) + clamp(3rem,10vh,7rem));margin-bottom:clamp(3rem,8vh,5rem);padding-bottom:clamp(2.5rem,6vh,4rem);position:relative}.page-title{font-size:var(--display-l);letter-spacing:-.06em;flex-wrap:wrap;align-items:baseline;gap:0 .2em;margin:0;font-weight:500;line-height:.88;display:flex}.page-title em{color:var(--fg-2);letter-spacing:-.03em}.page-hero-foot{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:2rem;margin-top:clamp(2rem,5vh,3rem);display:flex}.page-desc{max-width:44ch;color:var(--fg-2);margin:0;font-size:clamp(1.05rem,1.3vw,1.25rem)}.page-hero-line{background:var(--line-2);height:1px;position:absolute;bottom:0;left:0;right:0}.empty-state{text-align:center;color:var(--fg-3);border:1px dashed var(--line-2);border-radius:var(--radius);padding:5rem 0;font-size:.85rem}.filters{flex-wrap:wrap;gap:.5rem;margin-bottom:clamp(2.5rem,6vh,4rem);display:flex}.filter{border:1px solid var(--line-2);color:var(--fg-2);cursor:pointer;background:0 0;border-radius:999px;align-items:flex-start;gap:.3rem;padding:.6rem 1.15rem;font-size:.92rem;transition:background-color .35s,color .35s,border-color .35s;display:inline-flex}.filter sup{color:var(--fg-3);font-size:.62rem;transition:color .35s}.filter:hover{color:var(--fg);border-color:var(--fg-2)}.filter.active{background:var(--red);border-color:var(--red);color:var(--ink)}.filter.active sup{color:var(--ink)}.projects-grid{grid-template-columns:repeat(2,1fr);gap:clamp(3rem,6vw,5.5rem) clamp(1.5rem,3vw,3rem);display:grid}@media (min-width:1024px){.projects-grid .project-card:nth-child(2n){margin-top:9rem}}@media (max-width:767px){.projects-grid{grid-template-columns:1fr}}.project-card{position:relative}.project-card-link{color:inherit;text-decoration:none;display:block}.project-card-media{aspect-ratio:16/10;background:var(--bg-2);border:1px solid var(--line);transition:border-color .5s ease,border-radius .6s var(--ease-out);border-radius:18px;position:relative;overflow:hidden}.project-card-media img{object-fit:cover;transition:transform 1.2s var(--ease-out)}.project-card-media:after{content:"";background:linear-gradient(0deg, rgba(var(--red-rgb), .28), transparent 55%);opacity:0;transition:opacity .6s;position:absolute;inset:0}.project-card-link:hover .project-card-media{border-color:rgba(var(--red-rgb), .6);border-radius:28px}.project-card-link:hover .project-card-media img{filter:saturate(1.05);transform:scale(1.06)}.project-card-link:hover .project-card-media:after{opacity:1}.project-card-placeholder{letter-spacing:-.06em;color:var(--fg-3);place-items:center;font-size:6rem;font-weight:600;display:grid;position:absolute;inset:0}.project-card-body{padding-top:1.4rem}.project-card-meta{color:var(--fg-3);gap:.5rem;font-size:.75rem;display:flex}.project-card-meta span+span:before{content:"·";margin-right:.5rem}.project-card-title{align-items:center;gap:.75rem;margin:.7rem 0 .6rem;font-size:clamp(1.7rem,2.8vw,2.7rem);transition:color .4s;display:flex}.project-card-link:hover .project-card-title{color:var(--red)}.project-card-arrow{opacity:0;transition:opacity .4s ease,transform .6s var(--ease-out);font-size:.55em;transform:translate(-12px)rotate(-45deg)}.project-card-link:hover .project-card-arrow{opacity:1;transform:translate(0)rotate(-45deg)}.project-card-desc{max-width:50ch;color:var(--fg-2);margin-bottom:1.1rem}.project-card-actions{gap:.5rem;display:flex;position:absolute;top:1rem;right:1rem}.project-card-actions a{background:var(--bg);border:1px solid var(--line-2);width:42px;height:42px;color:var(--fg);border-radius:50%;place-items:center;transition:background-color .3s,color .3s;display:grid}.project-card-actions a:hover{background:var(--red);color:var(--ink)}.pd-container{max-width:var(--max);padding-top:calc(var(--nav-h) + clamp(2rem,6vh,4rem));margin:0 auto}.pd-title{font-size:var(--display-l);letter-spacing:-.06em;margin:0;font-weight:500;line-height:.88}.pd-header-grid{border-top:1px solid var(--line-2);grid-template-columns:1fr 1fr;gap:4vw;margin-top:clamp(2.5rem,6vh,4rem);padding-top:2rem;display:grid}@media (max-width:1023px){.pd-header-grid{grid-template-columns:1fr}}.pd-intro{letter-spacing:-.025em;max-width:30ch;margin:0;font-size:clamp(1.3rem,2vw,1.9rem);line-height:1.3}.pd-specs{margin:0}.pd-specs>div{border-bottom:1px solid var(--line);grid-template-columns:90px 1fr;align-items:start;gap:1rem;padding:.9rem 0;display:grid}.pd-specs dt{letter-spacing:0;color:var(--fg-3);padding-top:.2rem;font-size:.7rem}.pd-specs dd{margin:0}.pd-links{flex-wrap:wrap;gap:.5rem;display:flex}.pd-links .btn{padding:.7rem 1.2rem;font-size:.9rem}.pd-image{aspect-ratio:16/10;background:var(--bg-2);border:1px solid var(--line);border-radius:22px;margin:clamp(3rem,8vh,5rem) 0;position:relative;overflow:hidden}.pd-image-inner{position:absolute;inset:-6% 0}.pd-image-inner img{object-fit:cover}.pd-body{grid-template-columns:1fr 2fr;gap:4vw;display:grid}.pd-body>*{grid-column:2}@media (max-width:1023px){.pd-body{grid-template-columns:1fr}.pd-body>*{grid-column:1}}.project-detail-content{max-width:68ch;color:var(--fg-2);font-size:1.12rem;line-height:1.75}.project-detail-content h2{color:var(--fg);margin:3.5rem 0 1.2rem;font-size:clamp(1.8rem,3vw,2.6rem)}.project-detail-content h2:first-child{margin-top:0}.project-detail-content p:first-child{color:var(--fg);font-size:1.25rem}.project-detail-content ul{margin:0 0 1.5rem;padding:0;list-style:none}.project-detail-content li{border-bottom:1px solid var(--line);padding:.85rem 0 .85rem 1.75rem;position:relative}.project-detail-content li:before{content:"→";color:var(--red);position:absolute;left:0}.project-detail-content strong{color:var(--fg);font-weight:500}.pd-next{border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2);color:inherit;margin-top:clamp(6rem,14vh,10rem);padding:clamp(2.5rem,6vh,4rem) 0;text-decoration:none;display:block}.pd-next>.mono{letter-spacing:0;color:var(--fg-3);font-size:.72rem}.pd-next-title{font-size:var(--display-m);letter-spacing:-.055em;transition:color .4s ease,padding .6s var(--ease-out);justify-content:space-between;align-items:center;gap:2rem;margin-top:1rem;font-weight:500;line-height:1;display:flex}.pd-next-title svg{color:var(--red);transition:transform .6s var(--ease-out);font-size:.5em}.pd-next:hover .pd-next-title{color:var(--red);padding-left:1.5rem}.pd-next:hover .pd-next-title svg{transform:rotate(-45deg)}.blog-list{border-bottom:1px solid var(--line)}.blog-row{border-top:1px solid var(--line);color:inherit;grid-template-columns:170px minmax(0,1fr) 240px;align-items:start;gap:1.5rem clamp(1.5rem,3vw,3rem);padding:2rem 0;text-decoration:none;display:grid}@media (hover:hover) and (pointer:fine){.blog-row:hover .blog-row-title{color:var(--red)}.blog-row:hover .blog-row-thumb img{transform:scale(1.03)}}@media (max-width:1023px){.blog-row{grid-template-columns:1fr;gap:.75rem}}.blog-row-meta{color:var(--fg-3);flex-direction:column;gap:.35rem;padding-top:.45rem;font-size:.75rem;display:flex}@media (max-width:1023px){.blog-row-meta{flex-direction:row;gap:1rem;padding-top:0}}.blog-row-main{flex-direction:column;gap:.6rem;min-width:0;display:flex}.blog-row-title{letter-spacing:-.035em;margin:0;font-size:clamp(1.4rem,2.4vw,2.2rem);line-height:1.1;transition:color .3s}.blog-row-desc{-webkit-line-clamp:2;max-width:64ch;color:var(--fg-2);-webkit-box-orient:vertical;font-size:.98rem;display:-webkit-box;overflow:hidden}.blog-row-thumb{aspect-ratio:16/9;border:1px solid var(--line);background:var(--bg-2);border-radius:10px;display:block;position:relative;overflow:hidden}.blog-row-thumb img{object-fit:cover;transition:transform .8s var(--ease-out)}@media (max-width:1023px){.blog-row-thumb{order:-1}}.blog-post-page{padding:0 var(--gutter)}.blog-post-container{max-width:1120px;padding:calc(var(--nav-h) + clamp(2rem,6vh,4rem)) 0 clamp(6rem,14vh,10rem);margin:0 auto}.breadcrumb ol{letter-spacing:0;color:var(--fg-3);flex-wrap:wrap;gap:.5rem;margin:0 0 3rem;padding:0;font-size:.72rem;list-style:none;display:flex}.breadcrumb ol li+li:before{content:"/";color:var(--line-2);margin-right:.5rem}.breadcrumb ol a{color:var(--fg-2);text-decoration:none}.breadcrumb ol a:hover{color:var(--red)}.blog-post-header{max-width:900px;margin-bottom:3.5rem}.blog-post-lede{max-width:60ch;color:var(--fg-2);margin:0 0 2.5rem;font-size:clamp(1.15rem,1.6vw,1.35rem);line-height:1.5}.blog-post-layout{grid-template-columns:220px minmax(0,720px);gap:clamp(2rem,5vw,5rem);display:grid}.blog-post-layout:not(:has(.blog-toc)){grid-template-columns:minmax(0,760px)}@media (max-width:1023px){.blog-post-layout{grid-template-columns:minmax(0,1fr)}}.blog-toc{top:calc(var(--nav-h) + 2rem);align-self:start;position:sticky}.blog-toc>p{letter-spacing:0;color:var(--fg-3);margin:0 0 1rem;font-size:.68rem}.blog-toc ol{border-left:1px solid var(--line);margin:0;padding:0;list-style:none}.blog-toc li a{color:var(--fg-2);border-left:1px solid #0000;margin-left:-1px;padding:.4rem 0 .4rem 1rem;font-size:.88rem;line-height:1.35;text-decoration:none;transition:color .3s,border-color .3s;display:block}.blog-toc li a:hover{color:var(--fg)}.blog-toc .toc-3 a{padding-left:1.75rem;font-size:.82rem}.blog-toc .active a{color:var(--fg);border-left-color:var(--red)}@media (max-width:1023px){.blog-toc{display:none}}.blog-post-meta{letter-spacing:0;color:var(--fg-3);flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1.5rem;font-size:.72rem;display:flex}.blog-post-meta .category{color:var(--red)}.blog-post-title{letter-spacing:-.05em;margin:0 0 1.5rem;font-size:clamp(2.4rem,5.5vw,4.6rem);line-height:.98}.blog-post-image{aspect-ratio:16/9;background:var(--bg-2);border:1px solid var(--line);border-radius:18px;margin:0;position:relative;overflow:hidden}.blog-post-image img{object-fit:cover}.blog-post-content{color:var(--fg-2);font-size:1.12rem;line-height:1.8}.blog-post-content h2,.blog-post-content h3{scroll-margin-top:calc(var(--nav-h) + 1.5rem);position:relative}.blog-post-content .heading-anchor{position:absolute}.blog-post-content .heading-anchor:before{content:"#"}.blog-post-content .heading-anchor{color:var(--red);opacity:0;padding-right:.3em;text-decoration:none;transition:opacity .2s;left:-1.2em}.blog-post-content h2:hover .heading-anchor,.blog-post-content h3:hover .heading-anchor{opacity:1}.blog-post-content{overflow-wrap:break-word}.blog-post-content h1,.blog-post-content h2,.blog-post-content h3,.blog-post-content h4,.blog-post-content h5,.blog-post-content h6{color:var(--fg);margin:2.5rem 0 1rem}.blog-post-content h2{font-size:clamp(1.7rem,3vw,2.2rem)}.blog-post-content h3{font-size:1.4rem}.blog-post-content p{margin-bottom:1.25rem}.blog-post-content p:empty,.blog-post-content br+br{display:none}.blog-post-content a{color:var(--fg);text-decoration:underline;-webkit-text-decoration-color:var(--red);text-decoration-color:var(--red);text-underline-offset:3px;transition:color .3s}.blog-post-content a:hover{color:var(--red)}.blog-post-content strong{color:var(--fg);font-weight:600}.blog-post-content img{border:1px solid var(--line);border-radius:12px;max-width:100%;height:auto;margin:2rem 0}.blog-post-content pre{border:1px solid var(--line-2);border-radius:12px;margin:1.5rem 0;padding:1.25rem 1.4rem;position:relative;overflow-x:auto;background:var(--bg-1)!important}.blog-post-content pre code{overflow-wrap:normal;border:none;padding:0;font-size:.85rem;line-height:1.65;background:0 0!important}.blog-post-content code{font-family:var(--font-mono);border:1px solid var(--line);background:var(--bg-2);color:var(--fg);overflow-wrap:anywhere;-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:5px;padding:.15em .4em;font-size:.88em}.blog-post-content blockquote{border-left:2px solid var(--red);font-family:var(--font-serif);color:var(--fg);margin:2rem 0;padding:.5rem 0 .5rem 1.5rem;font-size:1.5rem;font-style:italic;line-height:1.4}.blog-post-content ul,.blog-post-content ol{margin:1rem 0 1.5rem;padding-left:1.4rem}.blog-post-content ul li,.blog-post-content ol li{margin-bottom:.5rem}.blog-post-content ul li::marker{color:var(--red)}.blog-post-content ol li::marker{color:var(--red)}.blog-post-content table{border-collapse:collapse;width:100%;margin:1.5rem 0;font-size:.95rem}.blog-post-content table th,.blog-post-content table td{border-bottom:1px solid var(--line);text-align:left;padding:.7rem .8rem}.blog-post-content table th{color:var(--fg);font-weight:500}.blog-post-content hr{border:none;border-top:1px solid var(--line-2);margin:3rem 0}.blog-post-content iframe,.blog-post-content video{border:1px solid var(--line);border-radius:12px;max-width:100%;margin:1.5rem 0}.copy-button{border:1px solid var(--line-2);background:var(--bg-2);font-family:var(--font-mono);letter-spacing:0;color:var(--fg-2);cursor:pointer;border-radius:999px;padding:.35rem .75rem;font-size:.65rem;transition:background-color .3s,color .3s;position:absolute;top:.7rem;right:.7rem}.copy-button:hover{background:var(--red);border-color:var(--red);color:var(--ink)}.blog-post-footer{border-top:1px solid var(--line);flex-direction:column;gap:1.25rem;margin-top:4rem;padding-top:2rem;display:flex}.blog-post-footer p{letter-spacing:0;color:var(--fg-3);margin:0;font-size:.72rem}.blog-post-footer p a{color:var(--fg-2)}.blog-post-footer p a:hover{color:var(--red)}.share{letter-spacing:0;color:var(--fg-3);align-items:center;gap:.5rem;font-size:.72rem;display:flex}.share>span{margin-right:.5rem}.share a,.share button{border:1px solid var(--line-2);width:40px;height:40px;color:var(--fg);cursor:pointer;background:0 0;border-radius:50%;place-items:center;transition:background-color .3s,color .3s,border-color .3s;display:grid;position:relative}.share a:hover,.share button:hover{background:var(--red);border-color:var(--red);color:var(--ink)}.share em{white-space:nowrap;color:var(--fg-2);font-style:normal;position:absolute;left:calc(100% + .5rem)}.post-nav{grid-template-columns:1fr 1fr;gap:1rem;margin-top:clamp(4rem,10vh,6rem);display:grid}@media (max-width:767px){.post-nav{grid-template-columns:1fr}}.post-nav-link{border:1px solid var(--line);background:var(--bg-1);color:inherit;border-radius:18px;flex-direction:column;gap:.75rem;padding:1.5rem 1.6rem;text-decoration:none;transition:border-color .4s;display:flex}.post-nav-link>.mono{letter-spacing:0;color:var(--fg-3);font-size:.7rem}.post-nav-link.next{text-align:right}.post-nav-link:hover{border-color:rgba(var(--red-rgb), .6)}.post-nav-link:hover .post-nav-title{color:var(--red)}.post-nav-title{letter-spacing:-.03em;font-size:clamp(1.2rem,2vw,1.6rem);font-weight:500;line-height:1.2;transition:color .3s}.hb-list{border-bottom:1px solid var(--line);margin:0;padding:0;list-style:none}.hb-row{border-top:1px solid var(--line);grid-template-columns:minmax(0,3fr) minmax(0,4fr) minmax(0,4fr);align-items:start;gap:1rem clamp(1.5rem,3vw,3rem);padding:2.25rem 0;display:grid}@media (max-width:1023px){.hb-row{grid-template-columns:1fr;gap:.75rem}}.hb-title{letter-spacing:-.035em;margin:0;font-size:clamp(1.5rem,2.6vw,2.3rem);font-weight:500}.hb-body{flex-direction:column;align-items:flex-start;gap:1rem;display:flex}.hb-body p{max-width:58ch;color:var(--fg-2);margin:0;font-size:1.05rem;line-height:1.65}.hb-image{aspect-ratio:16/9;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-2);margin:0;position:relative;overflow:hidden}.hb-image img{object-fit:cover}.hb-outro{max-width:56ch;color:var(--fg-2);margin:clamp(3rem,8vh,5rem) 0 0;font-size:clamp(1.1rem,1.6vw,1.35rem)}.hb-outro a{color:var(--fg);-webkit-text-decoration-color:var(--red);text-decoration-color:var(--red);text-underline-offset:3px}.hb-outro a:hover{color:var(--red)}.spotify{border:1px solid var(--line);background:var(--bg-1);max-width:100%;color:inherit;border-radius:12px;align-items:center;gap:.9rem;padding:.6rem 1rem .6rem .6rem;text-decoration:none;transition:border-color .3s;display:inline-flex}.spotify:hover{border-color:var(--line-2)}.spotify-art{border-radius:6px;flex:none}.spotify-text{flex-direction:column;gap:.2rem;min-width:0;display:flex}.spotify-label{color:var(--fg-3);align-items:center;gap:.4rem;font-size:.75rem;display:inline-flex}.spotify-label svg{color:#1ed760}.spotify-track{white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;overflow:hidden}.spotify-track span{color:var(--fg-2)}.hw-section+.hw-section{margin-top:clamp(6rem,14vh,10rem)}.hw-machines{border-bottom:1px solid var(--line)}.hw-machine{scroll-margin-top:calc(var(--nav-h) + 1rem);grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:2rem clamp(2rem,5vw,5rem);padding:clamp(2.5rem,6vh,4rem) 0;display:grid;position:relative}@media (max-width:1023px){.hw-machine{grid-template-columns:1fr}}.hw-machine-line{background:var(--line-2);height:1px;position:absolute;top:0;left:0;right:0}.hw-machine-head{align-content:start}.hw-machine-type{font-family:var(--font-mono);letter-spacing:0;color:var(--fg-3);align-items:center;gap:.6rem;margin:0 0 1rem;font-size:.75rem;display:flex}.hw-dot{background:var(--machine);border-radius:50%;flex:none;width:8px;height:8px}.hw-machine-name{letter-spacing:-.05em;margin:0;font-size:clamp(2rem,4vw,3.6rem);font-weight:500;line-height:.95}.hw-machine-desc{max-width:40ch;color:var(--fg-2);margin:1.25rem 0 0;font-size:1.05rem}.hw-specs{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:0 clamp(1.5rem,3vw,3rem);margin:0;display:grid}@media (max-width:767px){.hw-specs{grid-template-columns:1fr}}.hw-spec{border-top:1px solid var(--line);flex-direction:column;gap:.35rem;padding:1.1rem 0;display:flex}.hw-spec dt{font-family:var(--font-mono);letter-spacing:0;color:var(--fg-3);font-size:.68rem}.hw-spec dd{letter-spacing:-.02em;margin:0;font-size:clamp(1.1rem,1.5vw,1.35rem);font-weight:500}.hw-spec dd span{letter-spacing:.02em;color:var(--fg-3);margin-top:.25rem;font-size:.75rem;font-weight:400;display:block}.hw-bench-meta{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.5rem 3rem;margin:calc(clamp(3rem,7vh,5rem)/-2) 0 clamp(2rem,5vh,3rem);display:flex}.hw-bench-intro{max-width:52ch;color:var(--fg-2);margin:0}.hw-legend{letter-spacing:0;color:var(--fg-2);flex-wrap:wrap;gap:.75rem 1.5rem;margin:0;padding:0;font-size:.72rem;list-style:none;display:flex}.hw-legend li{align-items:center;gap:.5rem;display:flex}.hw-bench-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}@media (max-width:1023px){.hw-bench-grid{grid-template-columns:1fr}}.hw-bench{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-1);flex-direction:column;margin:0;padding:clamp(1.25rem,2.5vw,1.75rem);display:flex}.hw-bench figcaption{flex-direction:column;gap:.4rem;margin-bottom:1rem;display:flex}.hw-bench figcaption span{font-family:var(--font-mono);letter-spacing:0;color:var(--fg-3);font-size:.75rem}.hw-bench figcaption strong{letter-spacing:-.02em;font-size:1.25rem;font-weight:500}.hw-bench-table{border-collapse:separate;border-spacing:0 .6rem;table-layout:fixed;width:100%}.hw-bench-table .hw-col-name{width:7.5rem}.hw-bench-table .hw-col-value{width:7rem}.hw-bench-table th{text-align:left;letter-spacing:0;white-space:nowrap;color:var(--fg-2);padding:0 1rem 0 0;font-size:.7rem;font-weight:400}.hw-bench-table td{vertical-align:middle;padding:0}@media (max-width:767px){.hw-bench-table .hw-col-name{width:6.25rem}.hw-bench-table .hw-col-value{width:5.75rem}}@media (hover:hover) and (pointer:fine){.hw-bench-table:hover tbody tr:not(:hover) .hw-bar{opacity:.35}}.hw-bar{background:var(--machine);transform-origin:0;border-radius:0 4px 4px 0;height:8px;transition:opacity .3s;display:block}.hw-bench-na{color:var(--fg-3);font-size:.75rem}.hw-bench-value{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;font-size:.95rem;padding-left:1rem!important}@media (max-width:767px){.hw-bench-value{font-size:.85rem}}.hw-bench-note{letter-spacing:.02em;color:var(--fg-3);margin:auto 0 0;padding-top:.75rem;font-size:.75rem}.hw-sources{color:var(--fg-3);margin-top:1.5rem;font-size:.75rem}.hw-sources summary{cursor:pointer;letter-spacing:0;width:fit-content;transition:color .3s}.hw-sources summary:hover{color:var(--fg)}.hw-sources ul{columns:2;column-gap:2.5rem;margin:1rem 0 0;padding:0;list-style:none}@media (max-width:767px){.hw-sources ul{columns:1}}.hw-sources li{border-bottom:1px solid var(--line);break-inside:avoid;justify-content:space-between;gap:1rem;padding:.35rem 0;display:flex}.hw-sources a{color:var(--fg-2);text-underline-offset:2px;-webkit-text-decoration-color:var(--line-2);text-decoration-color:var(--line-2)}.hw-sources a:hover{color:var(--red)}.hardware-page .pd-next{margin-top:clamp(5rem,12vh,8rem)}.not-found{min-height:80svh;max-width:var(--max);padding:calc(var(--nav-h) + 3rem) var(--gutter) 4rem;align-items:center;margin:0 auto;display:flex}.not-found-title{letter-spacing:-.07em;margin:0;font-size:clamp(6rem,22vw,16rem);font-weight:500;line-height:.85}.not-found-text{max-width:44ch;color:var(--fg-2);margin:1.5rem 0 2rem;font-size:clamp(1.1rem,1.6vw,1.35rem)}.not-found-links{flex-wrap:wrap;gap:.75rem;display:flex}.ab-section+.ab-section{margin-top:clamp(6rem,14vh,10rem)}.ab-intro-grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start;gap:clamp(2.5rem,6vw,6rem);display:grid}@media (max-width:1023px){.ab-intro-grid{grid-template-columns:1fr}}.ab-lede{letter-spacing:-.035em;max-width:30ch;margin:0 0 2rem;font-size:clamp(1.6rem,2.8vw,2.6rem);font-weight:500;line-height:1.12}.ab-lede em{color:var(--fg-2)}.ab-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(1.5rem,3vw,3rem);margin:2.5rem 0 0;display:grid}@media (max-width:767px){.ab-facts{grid-template-columns:1fr}}.ab-facts div{border-top:1px solid var(--line);flex-direction:column;gap:.35rem;padding:1rem 0;display:flex}.ab-facts dt{font-family:var(--font-mono);letter-spacing:0;color:var(--fg-3);font-size:.7rem}.ab-facts dd{letter-spacing:-.01em;margin:0;font-size:1.05rem;font-weight:500}.ab-timeline{border-bottom:1px solid var(--line);margin:0;padding:0;list-style:none}.ab-row{border-top:1px solid var(--line);grid-template-columns:minmax(150px,1fr) minmax(0,2fr) minmax(0,3fr);align-items:baseline;gap:1rem clamp(1.5rem,3vw,3rem);padding:2rem 0;display:grid}@media (max-width:1023px){.ab-row{grid-template-columns:1fr;gap:.6rem}}.ab-row-date{letter-spacing:0;color:var(--fg-3);font-size:.75rem}@media (max-width:1023px){.ab-row-date:empty{display:none}}.ab-now{color:var(--red)}.ab-row-main{align-items:flex-start;gap:1rem;display:flex}.ab-logo{border:1px solid var(--line);background:var(--bg-2);border-radius:10px;flex:none;place-items:center;width:44px;height:44px;display:grid}.ab-logo img{object-fit:contain;width:28px;height:28px}.ab-row-text{flex-direction:column;gap:.4rem;display:flex}.ab-row-text h3{letter-spacing:-.03em;margin:0;font-size:clamp(1.3rem,2vw,1.75rem);font-weight:500;line-height:1.1}.ab-row-org{letter-spacing:.03em;color:var(--fg-2);font-size:.75rem}.ab-row-org a{color:inherit;-webkit-text-decoration-color:var(--line-2);text-decoration-color:var(--line-2);text-underline-offset:3px;transition:color .3s,text-decoration-color .3s}.ab-row-org a:hover{color:var(--red);-webkit-text-decoration-color:var(--red);text-decoration-color:var(--red)}.ab-row-desc{max-width:60ch;color:var(--fg-2);margin:0;line-height:1.6}.ab-subhead{font-family:var(--font-mono);letter-spacing:0;color:var(--fg-3);margin:clamp(3rem,7vh,4.5rem) 0 1.25rem;font-size:.75rem;font-weight:400}.ab-focus-row{grid-template-columns:minmax(0,2fr) minmax(0,3fr) minmax(0,1.5fr)}@media (max-width:1023px){.ab-focus-row{grid-template-columns:1fr}}.ab-focus-title{letter-spacing:-.03em;margin:0;font-size:clamp(1.3rem,2vw,1.75rem);font-weight:500}.ab-focus-links{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.ab-focus-links a{color:var(--fg);align-items:center;gap:.5rem;text-decoration:none;transition:color .3s;display:inline-flex}.ab-focus-links a svg{width:.75em;color:var(--red);transition:transform .4s var(--ease-out)}.ab-focus-links a:hover{color:var(--red)}.ab-focus-links a:hover svg{transform:translate(4px)}.ab-writing-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.5rem;display:flex}.ab-all{letter-spacing:0;color:var(--fg-2);align-items:center;gap:.5rem;font-size:.75rem;text-decoration:none;transition:color .3s;display:inline-flex}.ab-all:hover{color:var(--red)}.ab-posts{border-bottom:1px solid var(--line);margin:0;padding:0;list-style:none}.ab-post{border-top:1px solid var(--line);color:var(--fg);grid-template-columns:minmax(150px,1fr) minmax(0,5fr) auto;align-items:baseline;gap:.5rem clamp(1.5rem,3vw,3rem);padding:1.75rem 0;text-decoration:none;display:grid}@media (max-width:1023px){.ab-post{grid-template-columns:minmax(0,1fr) auto}.ab-post .ab-post-meta{grid-column:1/-1}}@media (hover:hover) and (pointer:fine){.ab-post:hover .ab-post-title{color:var(--red)}.ab-post:hover .ab-post-arrow{color:var(--red);transform:translate(6px)}}.ab-post-meta{letter-spacing:0;color:var(--fg-3);font-size:.75rem}.ab-post-title{letter-spacing:-.03em;font-size:clamp(1.25rem,2.2vw,1.9rem);font-weight:500;line-height:1.15;transition:color .3s}.ab-post-arrow{color:var(--fg-3);transition:transform .5s var(--ease-out),color .3s ease}.ab-links{flex-wrap:wrap;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.ab-links a{border:1px solid var(--line-2);letter-spacing:0;color:var(--fg);border-radius:999px;align-items:center;gap:.6rem;padding:.7rem 1.2rem;font-size:.75rem;text-decoration:none;transition:border-color .3s,color .3s;display:inline-flex}.ab-links a svg{width:.8em;color:var(--fg-3)}.ab-links a:hover{border-color:var(--red);color:var(--red)}.about-page .pd-next{margin-top:clamp(4rem,10vh,6rem)}.ab-section+.ab-elsewhere{margin-top:clamp(3rem,7vh,4.5rem)}.hb-scene{padding:1rem 0 3rem}.track-scene{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-1);grid-template-columns:minmax(0,4fr) minmax(0,7fr);align-items:center;gap:2rem clamp(2rem,5vw,5rem);min-height:min(86vh,820px);padding:clamp(2rem,4vw,3rem);display:grid}@media (max-width:1023px){.track-scene{grid-template-columns:1fr;min-height:0}}.track-copy{flex-direction:column;gap:1rem;display:flex}.track-copy h3{letter-spacing:-.04em;margin:0;font-size:clamp(1.8rem,3.4vw,3rem);font-weight:500;line-height:1}.track-copy p{max-width:38ch;color:var(--fg-2);margin:0;line-height:1.6}.track-kicker{color:var(--red);font-size:.8rem}.track-readout{align-items:baseline;gap:.6rem;margin-top:1rem;display:flex}.track-km{letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:clamp(2.6rem,5vw,4.5rem);font-weight:500;line-height:1}.track-unit{color:var(--fg-3);font-size:.85rem}.track-bar{background:var(--line-2);width:100%;max-width:320px;height:2px;display:block}.track-bar span{background:var(--red);transform-origin:0;height:100%;display:block;transform:scaleX(0)}.track-svg{width:100%;height:auto;max-height:70vh;overflow:visible}.track-base,.track-line{fill:none;stroke-linecap:round;stroke-linejoin:round}.track-base{stroke:#f2efe924;stroke-width:16px}.track-line{stroke:var(--red);stroke-width:7px;stroke-dasharray:1;stroke-dashoffset:1px}.track-car{fill:var(--fg);stroke:var(--bg-1);stroke-width:6px}.is-timeline{padding-left:2.25rem;position:relative}.is-timeline>li{position:relative}.is-timeline>li:before{content:"";border:2px solid var(--line-2);background:var(--bg);width:10px;height:10px;transition:border-color .4s ease,background-color .4s ease,transform .5s var(--ease-out);border-radius:50%;position:absolute;top:2.3rem;left:calc(1px - 2.25rem)}.is-timeline>li.is-past:before{border-color:var(--red);background:var(--red);transform:scale(1.15)}.is-timeline>li .ab-row-date{transition:color .4s}.is-timeline>li.is-past .ab-row-date{color:var(--fg)}.timeline-line{background:var(--line);width:2px;position:absolute;top:2.3rem;bottom:2.3rem;left:5px}.timeline-line span{background:var(--red);transform-origin:top;height:100%;display:block;transform:scaleY(0)}@media (min-width:1024px){.hw-machine-head{top:calc(var(--nav-h) + 2rem);align-self:start;position:sticky}}.live-badge{color:var(--red);font-family:var(--font-mono);white-space:nowrap;border:1px solid #ff332680;border-radius:999px;align-items:center;gap:.45rem;padding:.2rem .6rem;font-size:.72rem;display:inline-flex}.live-badge.is-closed{border-color:var(--line-2);color:var(--fg-3)}.live-badge time{color:inherit}.ab-post-meta .live-badge{margin-right:.6rem}.blog-row-meta .live-badge{align-self:flex-start}.live-dot{background:var(--red);border-radius:50%;width:7px;height:7px;animation:1.6s ease-out infinite live-pulse;box-shadow:0 0 #ff332699}@keyframes live-pulse{70%{box-shadow:0 0 0 7px #ff332600}to{box-shadow:0 0 #ff332600}}@media (prefers-reduced-motion:reduce){.live-dot{animation:none}}.blog-post-content h3.live-entry-title{border-top:1px solid var(--line);flex-wrap:wrap;align-items:baseline;gap:.35rem .9rem;margin-top:2.25rem;padding-top:1.5rem;display:flex}.blog-post-content h3.live-entry-title time{font-family:var(--font-mono);color:var(--red);flex:none;font-size:.8rem;font-weight:500}
.hljs{background:#282a36;padding:.5em;display:block;overflow-x:auto}.hljs-built_in,.hljs-selector-tag,.hljs-section,.hljs-link{color:#8be9fd}.hljs-keyword{color:#ff79c6}.hljs,.hljs-subst{color:#f8f8f2}.hljs-title,.hljs-attr,.hljs-meta-keyword{color:#50fa7b;font-style:italic}.hljs-string,.hljs-meta,.hljs-name,.hljs-type,.hljs-symbol,.hljs-bullet,.hljs-addition,.hljs-variable,.hljs-template-tag,.hljs-template-variable{color:#f1fa8c}.hljs-comment,.hljs-quote,.hljs-deletion{color:#7282b4}.hljs-keyword,.hljs-selector-tag,.hljs-literal,.hljs-title,.hljs-section,.hljs-doctag,.hljs-type,.hljs-name,.hljs-strong{font-weight:700}.hljs-literal,.hljs-number{color:#bd93f9}.hljs-emphasis{font-style:italic}
.VL4vJG_overlay{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:9999;opacity:0;background:#0a0a0acc;width:100vw;height:100vh;animation:.3s cubic-bezier(.16,1,.3,1) forwards VL4vJG_fadeIn;position:fixed;top:0;left:0}.VL4vJG_overlay.VL4vJG_closing{animation:.3s cubic-bezier(.16,1,.3,1) forwards VL4vJG_fadeOut}.VL4vJG_crashOverlay{z-index:999999;width:100vw;height:100vh;font-family:var(--font-mono),monospace;color:#f55;background:#000;flex-direction:column;justify-content:flex-start;padding:40px;animation:none;display:flex;position:fixed;top:0;left:0}.VL4vJG_crashOverlay h1{color:#000;background:#f55;align-self:flex-start;margin-bottom:2rem;padding:2px 10px;font-size:1.5rem;display:inline-block}.VL4vJG_crashOverlay p{margin:10px 0;line-height:1.5}.VL4vJG_crashOverlay .VL4vJG_blink{animation:1s step-end infinite VL4vJG_blink}.VL4vJG_terminal{width:800px;max-width:90vw;height:500px;max-height:80vh;font-family:var(--font-mono),monospace;opacity:0;background:#0f0f0ff2;border:1px solid #ffffff1a;border-radius:8px;flex-direction:column;animation:.3s cubic-bezier(.16,1,.3,1) forwards VL4vJG_popIn;display:flex;position:absolute;overflow:hidden;box-shadow:0 20px 50px #00000080}.VL4vJG_terminal:before{content:"";pointer-events:none;z-index:10;background:linear-gradient(#12101000 50%,#00000040 50%) 0 0/100% 2px,linear-gradient(90deg,#ff00000f,#00ff0005,#0000ff0f) 0 0/3px 100%;height:100%;position:absolute;top:0;left:0;right:0}.VL4vJG_closing .VL4vJG_terminal{animation:.3s cubic-bezier(.16,1,.3,1) forwards VL4vJG_popOut}.VL4vJG_header{cursor:grab;background:#ffffff0d;border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:center;padding:10px 15px;display:flex}.VL4vJG_header:active{cursor:grabbing}.VL4vJG_header .VL4vJG_controls{gap:8px;display:flex}.VL4vJG_header .VL4vJG_controls span{background:#333;border-radius:50%;width:12px;height:12px}.VL4vJG_header .VL4vJG_controls span:first-child{background:#ff5f56}.VL4vJG_header .VL4vJG_controls span:nth-child(2){background:#ffbd2e}.VL4vJG_header .VL4vJG_controls span:nth-child(3){background:#27c93f}.VL4vJG_header .VL4vJG_title{color:#666;-webkit-user-select:none;user-select:none;font-size:.8rem}.VL4vJG_content{color:#e0e0e0;flex:1;padding:20px;font-size:.95rem;overflow-y:auto}.VL4vJG_content::-webkit-scrollbar{width:8px}.VL4vJG_content::-webkit-scrollbar-track{background:0 0}.VL4vJG_content::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:4px}.VL4vJG_line{word-break:break-all;margin-bottom:8px;line-height:1.5}.VL4vJG_line.VL4vJG_inputLine{color:#aaa;align-items:center;gap:10px;display:flex}.VL4vJG_line.VL4vJG_outputLine{color:#ccc;white-space:pre-wrap;padding-left:20px}.VL4vJG_prompt{color:#0f8;white-space:nowrap;font-weight:700}.VL4vJG_commandText{color:#fff}.VL4vJG_listItem{margin-bottom:4px;display:block}.VL4vJG_inputArea{align-items:center;gap:10px;padding-top:10px;display:flex}.VL4vJG_inputArea input{color:#fff;font-family:inherit;font-size:inherit;caret-color:#0f8;background:0 0;border:none;outline:none;flex:1}.VL4vJG_neofetch{font-family:var(--font-mono);gap:2rem;margin:1rem 0;display:flex}@media (max-width:768px){.VL4vJG_neofetch{flex-direction:column;gap:1rem}}.VL4vJG_neofetch .VL4vJG_art{color:#0f8;white-space:pre;-webkit-user-select:none;user-select:none;font-weight:700;line-height:1.2}.VL4vJG_neofetch .VL4vJG_info{flex-direction:column;justify-content:center;gap:2px;display:flex}.VL4vJG_neofetch .VL4vJG_info .VL4vJG_infoRow{gap:10px;display:flex}.VL4vJG_neofetch .VL4vJG_info .VL4vJG_infoRow .VL4vJG_label{color:#0f8;min-width:80px;font-weight:700}.VL4vJG_neofetch .VL4vJG_info .VL4vJG_infoRow .VL4vJG_value{color:#fff}.VL4vJG_neofetch .VL4vJG_info .VL4vJG_colorParams{gap:8px;margin-top:10px;display:flex}.VL4vJG_neofetch .VL4vJG_info .VL4vJG_colorParams .VL4vJG_colorBlock{border-radius:2px;width:12px;height:12px}.VL4vJG_projectsTable{border-collapse:collapse;width:100%;font-family:var(--font-mono);margin-top:.5rem}.VL4vJG_projectsTable thead{text-align:left;border-bottom:1px solid #fff3}.VL4vJG_projectsTable thead th{color:#0f8;text-transform:uppercase;padding:.5rem;font-size:.85rem}.VL4vJG_projectsTable tbody tr{border-bottom:1px solid #ffffff0d}.VL4vJG_projectsTable tbody tr:hover{background:#ffffff0d}.VL4vJG_projectsTable tbody tr td{padding:.5rem}.VL4vJG_projectsTable tbody tr td.VL4vJG_idCol{color:#aaa;width:50px}.VL4vJG_projectsTable tbody tr td.VL4vJG_titleCol{color:#fff;font-weight:700}.VL4vJG_projectsTable tbody tr td.VL4vJG_techCol{color:#aaa;font-size:.9rem}.VL4vJG_projectDetail{background:#00140a4d;border:1px solid #0f83;margin-top:1rem;padding:1.5rem}.VL4vJG_projectDetail h3{color:#0f8;margin:0 0 .5rem;font-size:1.5rem}.VL4vJG_projectDetail h3 span{color:#aaa;margin-left:1rem;font-size:.9rem;font-weight:400}.VL4vJG_projectDetail .VL4vJG_desc{color:#e0e0e0;white-space:pre-wrap;margin-bottom:1.5rem;line-height:1.6}.VL4vJG_projectDetail .VL4vJG_meta{flex-direction:column;gap:1rem;display:flex}.VL4vJG_projectDetail .VL4vJG_meta .VL4vJG_row{align-items:baseline;gap:1rem;display:flex}.VL4vJG_projectDetail .VL4vJG_meta .VL4vJG_row .VL4vJG_label{color:#aaa;min-width:80px;font-size:.9rem}.VL4vJG_projectDetail .VL4vJG_meta .VL4vJG_row .VL4vJG_tags{flex-wrap:wrap;gap:.5rem;display:flex}.VL4vJG_projectDetail .VL4vJG_meta .VL4vJG_row .VL4vJG_tags span{color:#fff;background:#ffffff1a;border-radius:4px;padding:2px 8px;font-size:.85rem}.VL4vJG_projectDetail .VL4vJG_meta .VL4vJG_row a{color:#0cf;text-decoration:none}.VL4vJG_projectDetail .VL4vJG_meta .VL4vJG_row a:hover{text-decoration:underline}@keyframes VL4vJG_fadeIn{0%{opacity:0}to{opacity:1}}@keyframes VL4vJG_fadeOut{0%{opacity:1}to{opacity:0}}@keyframes VL4vJG_popIn{0%{opacity:0;transform:scale(.9)translateY(20px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes VL4vJG_popOut{0%{opacity:1;transform:scale(1)translateY(0)}to{opacity:0;transform:scale(.9)translateY(20px)}}@keyframes VL4vJG_blink{50%{opacity:0}}
:root,:host{--fa-font-solid:normal 900 1em/1 "Font Awesome 7 Free";--fa-font-regular:normal 400 1em/1 "Font Awesome 7 Free";--fa-font-light:normal 300 1em/1 "Font Awesome 7 Pro";--fa-font-thin:normal 100 1em/1 "Font Awesome 7 Pro";--fa-font-duotone:normal 900 1em/1 "Font Awesome 7 Duotone";--fa-font-duotone-regular:normal 400 1em/1 "Font Awesome 7 Duotone";--fa-font-duotone-light:normal 300 1em/1 "Font Awesome 7 Duotone";--fa-font-duotone-thin:normal 100 1em/1 "Font Awesome 7 Duotone";--fa-font-brands:normal 400 1em/1 "Font Awesome 7 Brands";--fa-font-sharp-solid:normal 900 1em/1 "Font Awesome 7 Sharp";--fa-font-sharp-regular:normal 400 1em/1 "Font Awesome 7 Sharp";--fa-font-sharp-light:normal 300 1em/1 "Font Awesome 7 Sharp";--fa-font-sharp-thin:normal 100 1em/1 "Font Awesome 7 Sharp";--fa-font-sharp-duotone-solid:normal 900 1em/1 "Font Awesome 7 Sharp Duotone";--fa-font-sharp-duotone-regular:normal 400 1em/1 "Font Awesome 7 Sharp Duotone";--fa-font-sharp-duotone-light:normal 300 1em/1 "Font Awesome 7 Sharp Duotone";--fa-font-sharp-duotone-thin:normal 100 1em/1 "Font Awesome 7 Sharp Duotone";--fa-font-slab-regular:normal 400 1em/1 "Font Awesome 7 Slab";--fa-font-slab-press-regular:normal 400 1em/1 "Font Awesome 7 Slab Press";--fa-font-slab-duo-regular:normal 400 1em/1 "Font Awesome 7 Slab Duo";--fa-font-slab-press-duo-regular:normal 400 1em/1 "Font Awesome 7 Slab Press Duo";--fa-font-pixel-regular:normal 400 1em/1 "Font Awesome 7 Pixel";--fa-font-mosaic-solid:normal 900 1em/1 "Font Awesome 7 Mosaic";--fa-font-vellum-solid:normal 900 1em/1 "Font Awesome 7 Vellum";--fa-font-whiteboard-semibold:normal 600 1em/1 "Font Awesome 7 Whiteboard";--fa-font-thumbprint-light:normal 300 1em/1 "Font Awesome 7 Thumbprint";--fa-font-notdog-solid:normal 900 1em/1 "Font Awesome 7 Notdog";--fa-font-notdog-duo-solid:normal 900 1em/1 "Font Awesome 7 Notdog Duo";--fa-font-etch-solid:normal 900 1em/1 "Font Awesome 7 Etch";--fa-font-graphite-thin:normal 100 1em/1 "Font Awesome 7 Graphite";--fa-font-jelly-regular:normal 400 1em/1 "Font Awesome 7 Jelly";--fa-font-jelly-fill-regular:normal 400 1em/1 "Font Awesome 7 Jelly Fill";--fa-font-jelly-duo-regular:normal 400 1em/1 "Font Awesome 7 Jelly Duo";--fa-font-chisel-regular:normal 400 1em/1 "Font Awesome 7 Chisel";--fa-font-utility-semibold:normal 600 1em/1 "Font Awesome 7 Utility";--fa-font-utility-duo-semibold:normal 600 1em/1 "Font Awesome 7 Utility Duo";--fa-font-utility-fill-semibold:normal 600 1em/1 "Font Awesome 7 Utility Fill"}.svg-inline--fa{box-sizing:content-box;display:var(--fa-display,inline-block);vertical-align:-.125em;height:1em;width:var(--fa-width,1.25em);overflow:visible}.svg-inline--fa.fa-2xs{vertical-align:.1em}.svg-inline--fa.fa-xs{vertical-align:0}.svg-inline--fa.fa-sm{vertical-align:-.0714286em}.svg-inline--fa.fa-lg{vertical-align:-.2em}.svg-inline--fa.fa-xl{vertical-align:-.25em}.svg-inline--fa.fa-2xl{vertical-align:-.3125em}.svg-inline--fa.fa-pull-left,.svg-inline--fa .fa-pull-start{float:inline-start;margin-inline-end:var(--fa-pull-margin,.3em)}.svg-inline--fa.fa-pull-right,.svg-inline--fa .fa-pull-end{float:inline-end;margin-inline-start:var(--fa-pull-margin,.3em)}.svg-inline--fa.fa-li{width:var(--fa-li-width,2em);inset-block-start:.25em;inset-inline-start:calc(-1 * var(--fa-li-width,2em))}.fa-layers-counter,.fa-layers-text{text-align:center;display:inline-block;position:absolute}.fa-layers{text-align:center;vertical-align:-.125em;height:1em;width:var(--fa-width,1.25em);display:inline-block;position:relative}.fa-layers .svg-inline--fa{transform-origin:50%;margin:auto;position:absolute;inset:0}.fa-layers-text{transform-origin:50%;top:50%;left:50%;transform:translate(-50%,-50%)}.fa-layers-counter{background-color:var(--fa-counter-background-color,#ff253a);border-radius:var(--fa-counter-border-radius,1em);box-sizing:border-box;color:var(--fa-inverse,#fff);line-height:var(--fa-counter-line-height,1);max-width:var(--fa-counter-max-width,5em);min-width:var(--fa-counter-min-width,1.5em);padding:var(--fa-counter-padding,.25em .5em);right:var(--fa-right,0);text-overflow:ellipsis;top:var(--fa-top,0);transform:scale(var(--fa-counter-scale,.25));transform-origin:100% 0;overflow:hidden}.fa-layers-bottom-right{bottom:var(--fa-bottom,0);right:var(--fa-right,0);transform:scale(var(--fa-layers-scale,.25));transform-origin:100% 100%;top:auto}.fa-layers-bottom-left{bottom:var(--fa-bottom,0);left:var(--fa-left,0);transform:scale(var(--fa-layers-scale,.25));transform-origin:0 100%;top:auto;right:auto}.fa-layers-top-right{top:var(--fa-top,0);right:var(--fa-right,0);transform:scale(var(--fa-layers-scale,.25));transform-origin:100% 0}.fa-layers-top-left{left:var(--fa-left,0);right:auto;top:var(--fa-top,0);transform:scale(var(--fa-layers-scale,.25));transform-origin:0 0}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{vertical-align:.225em;font-size:.625em;line-height:.1em}.fa-xs{vertical-align:.125em;font-size:.75em;line-height:.0833333em}.fa-sm{vertical-align:.0535715em;font-size:.875em;line-height:.0714286em}.fa-lg{vertical-align:-.075em;font-size:1.25em;line-height:.05em}.fa-xl{vertical-align:-.125em;font-size:1.5em;line-height:.0416667em}.fa-2xl{vertical-align:-.1875em;font-size:2em;line-height:.03125em}.fa-width-auto{--fa-width:auto}.fa-fw,.fa-width-fixed{--fa-width:1.25em}.fa-canvas-square{margin-block-end:-.125em;padding-block:.125em}.fa-canvas-roomy{box-sizing:content-box;margin-block-end:-.25em;padding-block:.25em;padding-inline:.125em}.fa-ul{margin-inline-start:var(--fa-li-margin,2.5em);padding-inline-start:0;list-style-type:none}.fa-ul>li{position:relative}.fa-li{text-align:center;width:var(--fa-li-width,2em);line-height:inherit;position:absolute;inset-inline-start:calc(-1 * var(--fa-li-width,2em))}.fa-border{border-color:var(--fa-border-color,#eee);border-radius:var(--fa-border-radius,.1em);border-style:var(--fa-border-style,solid);border-width:var(--fa-border-width,.0625em);box-sizing:var(--fa-border-box-sizing,content-box);padding:var(--fa-border-padding,.1875em .25em)}.fa-pull-left,.fa-pull-start{float:inline-start;margin-inline-end:var(--fa-pull-margin,.3em)}.fa-pull-right,.fa-pull-end{float:inline-end;margin-inline-start:var(--fa-pull-margin,.3em)}.fa-beat{animation-name:fa-beat;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{animation-name:fa-bounce;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28, .84, .42, 1))}.fa-fade{animation-name:fa-fade;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-beat-fade{animation-name:fa-beat-fade;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-flip{animation-name:fa-flip;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1.5s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-flip-360{animation-name:fa-flip-360;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{animation-name:fa-shake;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,.75s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-spin{animation-name:fa-spin;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,2s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{animation-name:fa-spin;animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,steps(8))}.fa-spin-snap{animation-name:fa-spin-snap;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,3s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-snap-4{animation-name:fa-spin-snap-4;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,2.4s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-snap-8{animation-name:fa-spin-snap-8;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,4s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-buzz{animation-name:fa-buzz;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,.6s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-wag{animation-name:fa-wag;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,.9s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-out);transform-origin:bottom}.fa-float{animation-name:fa-float;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,3s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out);will-change:transform}.fa-swing{animation-name:fa-swing;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1.2s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-out);transform-origin:top}.fa-jello{animation-name:fa-jello;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,.9s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-out)}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-bounce,.fa-fade,.fa-beat-fade,.fa-flip,.fa-flip-360,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse,.fa-buzz,.fa-float,.fa-jello,.fa-spin-snap,.fa-spin-snap-4,.fa-spin-snap-8,.fa-swing,.fa-wag{transition:none!important;animation:none!important}}@keyframes fa-beat{0%{transform:scale(1)}25%{transform:scale(calc(1.25 * var(--fa-beat-scale,1.25)))}45%{transform:scale(calc(1.22 * var(--fa-beat-scale,1.22)))}65%{transform:scale(calc(1.25 * var(--fa-beat-scale,1.25)))}90%{transform:scale(1)}}@keyframes fa-bounce{0%{animation-timing-function:var(--fa-animation-timing);transform:scale(1)translateY(0)}14%{transform:scale(var(--fa-bounce-start-scale-x,1.06), var(--fa-bounce-start-scale-y,.94)) translateY(var(--fa-bounce-anticipation,3px));animation-timing-function:cubic-bezier(.33,0,.66,.33)}32%{transform:scale(var(--fa-bounce-jump-scale-x,.94), var(--fa-bounce-jump-scale-y,1.12)) translateY(calc(-1 * var(--fa-bounce-height,.5em)));animation-timing-function:cubic-bezier(.33,.66,.66,1)}52%{transform:scale(1, 1) translateY(calc(-1 * var(--fa-bounce-height,.5em) * 1.1));animation-timing-function:cubic-bezier(.5,0,1,.5)}70%{transform:scale(var(--fa-bounce-land-scale-x,1.06), var(--fa-bounce-land-scale-y,.92)) translateY(0);animation-timing-function:cubic-bezier(.33,.33,.66,1)}85%{transform:scale(.98, 1.04) translateY(calc(-2px * var(--fa-bounce-rebound,1)));animation-timing-function:cubic-bezier(.33,0,.66,1)}to{transform:scale(1)translateY(0)}}@keyframes fa-fade{0%{opacity:1;animation-timing-function:cubic-bezier(.2,0,.4,1);transform:scale(1)}40%{opacity:var(--fa-fade-opacity,.4);animation-timing-function:cubic-bezier(.4,0,.6,1);transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes fa-beat-fade{0%{opacity:var(--fa-beat-fade-opacity,.4);animation-timing-function:cubic-bezier(.2,0,.4,1);transform:scale(1)}25%{opacity:calc(var(--fa-beat-fade-opacity,.4) + .4);transform:scale(var(--fa-beat-fade-scale,1.28));animation-timing-function:cubic-bezier(.4,0,.6,1)}45%{opacity:1;transform:scale(var(--fa-beat-fade-scale,1.25));animation-timing-function:cubic-bezier(.4,0,.2,1)}65%{opacity:calc(var(--fa-beat-fade-opacity,.4) + .4);transform:scale(var(--fa-beat-fade-scale,1.28));animation-timing-function:cubic-bezier(.4,0,.6,1)}to{opacity:var(--fa-beat-fade-opacity,.4);transform:scale(1)}}@keyframes fa-flip{0%{transform:perspective(2em) scale(1) rotate3d(var(--fa-flip-x,0), var(--fa-flip-y,1), var(--fa-flip-z,0), 0deg);animation-timing-function:cubic-bezier(.2,0,.4,1)}8%{transform:perspective(2em) scale(var(--fa-flip-anticipation-scale,.95)) rotate3d(var(--fa-flip-x,0), var(--fa-flip-y,1), var(--fa-flip-z,0), 0deg);animation-timing-function:cubic-bezier(.33,0,.66,.33)}35%{transform:perspective(2em) scale(1) rotate3d(var(--fa-flip-x,0), var(--fa-flip-y,1), var(--fa-flip-z,0), calc(var(--fa-flip-angle,-360deg) * .6));animation-timing-function:linear}65%{transform:perspective(2em) scale(1) rotate3d(var(--fa-flip-x,0), var(--fa-flip-y,1), var(--fa-flip-z,0), calc(var(--fa-flip-angle,-360deg) * .5));animation-timing-function:cubic-bezier(.33,.66,.66,1)}92%{transform:perspective(2em) scale(1) rotate3d(var(--fa-flip-x,0), var(--fa-flip-y,1), var(--fa-flip-z,0), calc(var(--fa-flip-angle,-360deg) * var(--fa-flip-overshoot,1.04)));animation-timing-function:cubic-bezier(.33,0,.66,1)}to{transform:perspective(2em) scale(1) rotate3d(var(--fa-flip-x,0), var(--fa-flip-y,1), var(--fa-flip-z,0), var(--fa-flip-angle,-360deg))}}@keyframes fa-flip-360{0%{transform:perspective(2em) scale(1) rotate3d(var(--fa-flip-x,0), var(--fa-flip-y,1), var(--fa-flip-z,0), 0deg);animation-timing-function:cubic-bezier(.2,0,.4,1)}8%{transform:perspective(2em) scale(var(--fa-flip-anticipation-scale,.95)) rotate3d(var(--fa-flip-x,0), var(--fa-flip-y,1), var(--fa-flip-z,0), 0deg);animation-timing-function:cubic-bezier(.33,0,.66,.33)}50%{transform:perspective(2em) scale(1) rotate3d(var(--fa-flip-x,0), var(--fa-flip-y,1), var(--fa-flip-z,0), calc(var(--fa-flip-angle,-360deg) * .6));animation-timing-function:cubic-bezier(.33,.66,.66,1)}80%{transform:perspective(2em) scale(1) rotate3d(var(--fa-flip-x,0), var(--fa-flip-y,1), var(--fa-flip-z,0), calc(var(--fa-flip-angle,-360deg) * var(--fa-flip-overshoot,1.04)));animation-timing-function:cubic-bezier(.33,0,.66,1)}to{transform:perspective(2em) scale(1) rotate3d(var(--fa-flip-x,0), var(--fa-flip-y,1), var(--fa-flip-z,0), var(--fa-flip-angle,-360deg))}}@keyframes fa-shake{0%{animation-timing-function:cubic-bezier(.2,0,.8,1);transform:rotate(0)}8%{animation-timing-function:cubic-bezier(.3,0,.7,1);transform:rotate(35deg)translate(1px)}20%{animation-timing-function:cubic-bezier(.3,0,.7,1);transform:rotate(-22deg)translate(-1px)}35%{animation-timing-function:cubic-bezier(.3,0,.7,1);transform:rotate(15deg)translate(1px)}50%{animation-timing-function:cubic-bezier(.4,0,.6,1);transform:rotate(-9deg)}65%{animation-timing-function:cubic-bezier(.4,0,.6,1);transform:rotate(5deg)}78%{animation-timing-function:cubic-bezier(.4,0,.6,1);transform:rotate(-3deg)}90%{animation-timing-function:cubic-bezier(.4,0,.2,1);transform:rotate(1deg)}to{transform:rotate(0)}}@keyframes fa-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes fa-spin-snap{0%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:rotate(0)}12%{animation-timing-function:cubic-bezier(.8,0,1,1);transform:rotate(60deg)}16.67%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:rotate(60deg)}28.67%{animation-timing-function:cubic-bezier(.8,0,1,1);transform:rotate(120deg)}33.33%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:rotate(120deg)}45.33%{animation-timing-function:cubic-bezier(.8,0,1,1);transform:rotate(180deg)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:rotate(180deg)}62%{animation-timing-function:cubic-bezier(.8,0,1,1);transform:rotate(240deg)}66.67%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:rotate(240deg)}78.67%{animation-timing-function:cubic-bezier(.8,0,1,1);transform:rotate(300deg)}83.33%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:rotate(300deg)}95.33%{animation-timing-function:cubic-bezier(.8,0,1,1);transform:rotate(360deg)}to{transform:rotate(360deg)}}@keyframes fa-spin-snap-4{0%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:rotate(0)}15%{animation-timing-function:cubic-bezier(.8,0,1,1);transform:rotate(90deg)}25%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:rotate(90deg)}40%{animation-timing-function:cubic-bezier(.8,0,1,1);transform:rotate(180deg)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:rotate(180deg)}65%{animation-timing-function:cubic-bezier(.8,0,1,1);transform:rotate(270deg)}75%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:rotate(270deg)}90%{animation-timing-function:cubic-bezier(.8,0,1,1);transform:rotate(360deg)}to{transform:rotate(360deg)}}@keyframes fa-spin-snap-8{0%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:rotate(0)}9%{animation-timing-function:cubic-bezier(.8,0,1,1);transform:rotate(45deg)}12.5%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:rotate(45deg)}21.5%{animation-timing-function:cubic-bezier(.8,0,1,1);transform:rotate(90deg)}25%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:rotate(90deg)}34%{animation-timing-function:cubic-bezier(.8,0,1,1);transform:rotate(135deg)}37.5%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:rotate(135deg)}46.5%{animation-timing-function:cubic-bezier(.8,0,1,1);transform:rotate(180deg)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:rotate(180deg)}59%{animation-timing-function:cubic-bezier(.8,0,1,1);transform:rotate(225deg)}62.5%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:rotate(225deg)}71.5%{animation-timing-function:cubic-bezier(.8,0,1,1);transform:rotate(270deg)}75%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:rotate(270deg)}84%{animation-timing-function:cubic-bezier(.8,0,1,1);transform:rotate(315deg)}87.5%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:rotate(315deg)}96.5%{animation-timing-function:cubic-bezier(.8,0,1,1);transform:rotate(360deg)}to{transform:rotate(360deg)}}@keyframes fa-buzz{0%{animation-timing-function:cubic-bezier(.1,0,.9,1);transform:translate(0)rotate(0)}5%{transform:translateX(var(--fa-buzz-distance,4px)) rotate(.5deg)}10%{transform:translateX(calc(-1 * var(--fa-buzz-distance,4px))) rotate(-.5deg)}15%{transform:translateX(var(--fa-buzz-distance,4px)) rotate(.3deg)}20%{transform:translateX(calc(-1 * var(--fa-buzz-distance,4px))) rotate(-.3deg)}25%{transform:translateX(calc(var(--fa-buzz-distance,4px) * .7)) rotate(.2deg)}30%{transform:translateX(calc(-1 * var(--fa-buzz-distance,4px) * .7)) rotate(-.2deg)}35%{transform:translateX(calc(var(--fa-buzz-distance,4px) * .4)) rotate(.1deg)}40%{transform:translate(0)rotate(0)}to{transform:translate(0)rotate(0)}}@keyframes fa-wag{0%{animation-timing-function:cubic-bezier(.2,0,.6,1);transform:rotate(0)}12%{transform:rotate(var(--fa-wag-angle,12deg));animation-timing-function:cubic-bezier(.4,0,.2,1)}24%{animation-timing-function:cubic-bezier(.2,0,.6,1);transform:rotate(2deg)}36%{transform:rotate(calc(var(--fa-wag-angle,12deg) * .85));animation-timing-function:cubic-bezier(.4,0,.2,1)}48%{animation-timing-function:cubic-bezier(.2,0,.6,1);transform:rotate(1deg)}58%{transform:rotate(calc(var(--fa-wag-angle,12deg) * .6));animation-timing-function:cubic-bezier(.4,0,.2,1)}68%{transform:rotate(0)}to{transform:rotate(0)}}@keyframes fa-float{0%{transform:translateY(0) translateX(0) rotate(0deg) scale(var(--fa-float-squash-x,1.02), var(--fa-float-squash-y,.98));animation-timing-function:cubic-bezier(.33,0,.66,.33)}15%{transform:translateY(calc(-.4 * var(--fa-float-height,6px))) translateX(var(--fa-float-drift,1px)) rotate(var(--fa-float-tilt,1deg)) scale(1, 1);animation-timing-function:cubic-bezier(.33,.66,.66,1)}35%{transform:translateY(calc(-1 * var(--fa-float-height,6px))) translateX(0) rotate(0deg) scale(var(--fa-float-stretch-x,.98), var(--fa-float-stretch-y,1.03));animation-timing-function:cubic-bezier(.5,0,.5,0)}50%{transform:translateY(calc(-.92 * var(--fa-float-height,6px))) translateX(calc(-.5 * var(--fa-float-drift,1px))) rotate(calc(-.5 * var(--fa-float-tilt,1deg))) scale(.995, 1.01);animation-timing-function:cubic-bezier(.33,0,.66,.33)}70%{transform:translateY(calc(-.3 * var(--fa-float-height,6px))) translateX(calc(-1 * var(--fa-float-drift,1px))) rotate(calc(-1 * var(--fa-float-tilt,1deg))) scale(1, 1);animation-timing-function:cubic-bezier(.33,.66,.66,1)}90%{transform:translateY(calc(.05 * var(--fa-float-height,6px))) translateX(0) rotate(0deg) scale(var(--fa-float-squash-x,1.02), var(--fa-float-squash-y,.98));animation-timing-function:cubic-bezier(.33,0,.66,1)}to{transform:translateY(0) translateX(0) rotate(0deg) scale(var(--fa-float-squash-x,1.02), var(--fa-float-squash-y,.98))}}@keyframes fa-swing{0%{animation-timing-function:cubic-bezier(.2,0,.8,1);transform:rotate(0)}8%{transform:rotate(var(--fa-swing-angle,22deg));animation-timing-function:cubic-bezier(.3,0,.7,1)}18%{transform:rotate(calc(-1 * var(--fa-swing-angle,22deg) * .85));animation-timing-function:cubic-bezier(.3,0,.7,1)}28%{transform:rotate(calc(var(--fa-swing-angle,22deg) * .65));animation-timing-function:cubic-bezier(.35,0,.65,1)}38%{transform:rotate(calc(-1 * var(--fa-swing-angle,22deg) * .45));animation-timing-function:cubic-bezier(.4,0,.6,1)}48%{transform:rotate(calc(var(--fa-swing-angle,22deg) * .25));animation-timing-function:cubic-bezier(.4,0,.6,1)}56%{transform:rotate(calc(-1 * var(--fa-swing-angle,22deg) * .1));animation-timing-function:cubic-bezier(.4,0,.6,1)}64%{transform:rotate(0)}to{transform:rotate(0)}}@keyframes fa-jello{0%{animation-timing-function:cubic-bezier(.2,0,.8,1);transform:scale(1)}12%{transform:scale(var(--fa-jello-scale-x,1.15), calc(2 - var(--fa-jello-scale-x,1.15)));animation-timing-function:cubic-bezier(.3,0,.7,1)}24%{transform:scale(calc(2 - var(--fa-jello-scale-y,1.12)), var(--fa-jello-scale-y,1.12));animation-timing-function:cubic-bezier(.3,0,.7,1)}36%{transform:scale(calc(1 + (var(--fa-jello-scale-x,1.15) - 1) * .5), calc(2 - (1 + (var(--fa-jello-scale-x,1.15) - 1) * .5)));animation-timing-function:cubic-bezier(.4,0,.6,1)}48%{transform:scale(calc(2 - (1 + (var(--fa-jello-scale-y,1.12) - 1) * .3)), calc(1 + (var(--fa-jello-scale-y,1.12) - 1) * .3));animation-timing-function:cubic-bezier(.4,0,.6,1)}58%{animation-timing-function:cubic-bezier(.4,0,.2,1);transform:scale(1.02,.98)}68%{transform:scale(1)}to{transform:scale(1)}}.fa-rotate-90{transform:rotate(90deg)}.fa-rotate-180{transform:rotate(180deg)}.fa-rotate-270{transform:rotate(270deg)}.fa-flip-horizontal{transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}.fa-rotate-by{transform:rotate(var(--fa-rotate-angle,0))}.svg-inline--fa .fa-primary{fill:var(--fa-primary-color,currentColor);opacity:var(--fa-primary-opacity,1)}.svg-inline--fa .fa-secondary{fill:var(--fa-secondary-color,currentColor);opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-primary{opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-secondary{opacity:var(--fa-primary-opacity,1)}.svg-inline--fa mask .fa-primary,.svg-inline--fa mask .fa-secondary{fill:#000}.svg-inline--fa.fa-inverse{fill:var(--fa-inverse,#fff)}.fa-stack{vertical-align:middle;width:2.5em;height:2em;line-height:2em;display:inline-block;position:relative}.fa-inverse{color:var(--fa-inverse,#fff)}.svg-inline--fa.fa-stack-1x{--fa-width:1.25em;height:1em;width:var(--fa-width)}.svg-inline--fa.fa-stack-2x{--fa-width:2.5em;height:2em;width:var(--fa-width)}.fa-stack-1x,.fa-stack-2x{z-index:var(--fa-stack-z-index,auto);margin:auto;position:absolute;inset:0}
