@font-face{font-family:Instrument Sans;src:url(/fonts/instrument-sans.woff2)format("woff2");font-style:normal;font-weight:400 700;font-stretch:75% 100%;font-display:swap}@font-face{font-family:Commit Mono;src:url(/fonts/commit-mono.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Departure Mono;src:url(/fonts/departure-mono.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}:root{--hero-background:#f6f8fa;--hero-foreground:#171d26;--accent-blue:#1757d1;--work-background:#151b21;--work-foreground:#eef3f7;--work-muted:#eef3f794;--about-background:#e3e5de;--footer-corner-radius:clamp(1.35rem, 2.2vw, 2.6rem);--selected-work-inset:max(clamp(24px, 3.2vw, 68px), env(safe-area-inset-left), env(safe-area-inset-right));--selected-work-grid-gap:clamp(10px, 1vw, 18px);--selected-work-title-size:clamp(68px, 5.9vw, 112px)}*{box-sizing:border-box}html,body{min-height:100%;margin:0}html{scrollbar-gutter:stable;-webkit-text-size-adjust:100%;text-size-adjust:100%}html.is-loading,html.is-loading body{overflow:hidden}body{background:var(--hero-background);min-width:320px;color:var(--hero-foreground);font-family:Instrument Sans,system-ui,sans-serif;overflow-x:clip}button,input,textarea,select{font:inherit}button{color:inherit}a,button{-webkit-tap-highlight-color:#1757d124}.home{min-height:100svh;position:relative}.experience-background,.three-layer{clip-path:inset(var(--experience-clip-top,100%) 0 var(--experience-clip-bottom,0px) 0);will-change:clip-path;position:fixed;inset:0}.experience-background{z-index:0;pointer-events:none;background:var(--work-background);overflow:hidden}.experience-background:before{background:var(--hero-background);opacity:var(--hero-surface-opacity,0);content:"";position:absolute;inset:0}.experience-background__light-wash,.experience-background__light-field{pointer-events:none;position:absolute}.experience-background__light-wash{background:var(--about-background);opacity:var(--about-surface-opacity,0);will-change:opacity;inset:0}.experience-background__light-field{width:92vmax;height:76vmax;opacity:var(--about-field-opacity,0);transform:translate3d(-50%, -50%, 0) translate3d(var(--about-field-shift,0vw), 0, 0) scale(var(--about-field-scale,.72));transform-origin:50%;will-change:transform, opacity;background:radial-gradient(#efe5d3e6 0%,#ebe5d67a 42%,#e3e5de14 68%,#0000 78%);top:42%;left:75%}.three-layer{z-index:2;opacity:var(--experience-scene-opacity,1);pointer-events:auto;will-change:clip-path, opacity}.dev-render-stats{width:80px;height:48px;top:max(8px, env(safe-area-inset-top))!important;opacity:.88!important;z-index:10000!important}.dev-render-stats--r3f{left:max(8px, env(safe-area-inset-left))!important}.dev-render-stats--homelab{left:max(96px, calc(env(safe-area-inset-left) + 96px))!important}.dev-render-stats:after{color:#dce8f2;letter-spacing:.06em;background:#000000c7;padding:2px 4px;font:8px/1.2 Commit Mono,ui-monospace,monospace;position:absolute;top:100%;left:0}.dev-render-stats--r3f:after{content:"R3F"}.dev-render-stats--homelab:after{content:"THREE"}.experience-controls{z-index:40;pointer-events:none;position:fixed;inset:0}.home-content{position:relative}.selected-work{--selected-work-stage-height:100svh;min-height:320svh;color:var(--work-foreground);background:0 0;margin-top:-100svh;position:relative;overflow:clip}.selected-work__title-layer{z-index:1;height:var(--selected-work-stage-height);margin-bottom:calc(0px - var(--selected-work-stage-height));pointer-events:none;opacity:var(--selected-work-title-opacity,1);transform:translate3d(0, var(--selected-work-title-y,0px), 0);will-change:transform, opacity;position:sticky;top:0}.selected-work__stage{z-index:4;height:var(--selected-work-stage-height);pointer-events:none;position:sticky;top:0}.selected-work__browse-copy{opacity:var(--selected-work-chrome-opacity,1);transform:translate3d(0, var(--selected-work-chrome-y,0px), 0);will-change:transform, opacity;position:absolute;inset:0}.selected-work__title-content,.selected-work__browse-copy-inner{opacity:1;transition:opacity .22s}.selected-work--active .selected-work__title-content,.selected-work--active .selected-work__browse-copy-inner{opacity:0}.selected-work__top-grid,.selected-work__project-heading,.selected-work__details-grid{right:var(--selected-work-inset);left:var(--selected-work-inset);column-gap:var(--selected-work-grid-gap);grid-template-columns:repeat(12,minmax(0,1fr));display:grid;position:absolute}.selected-work__top-grid{top:max(clamp(32px, 4.3vh, 44px), calc(env(safe-area-inset-top) + 18px));align-items:center}.selected-work__label{color:#ebf2f899;font-variant-numeric:tabular-nums;letter-spacing:.06em;text-transform:uppercase;grid-column:1/4;margin:0;font-family:Commit Mono,ui-monospace,monospace;font-size:clamp(11px,.78vw,13px);font-style:normal;font-weight:400;line-height:1.2}.selected-work__project-heading{top:clamp(68px,7.8vh,76px)}.selected-work__project-heading-viewport{grid-column:1/8;min-width:0;position:relative}.selected-work__project-heading-text{color:#ebf2f8f0;font-family:Instrument Sans,system-ui,sans-serif;font-size:var(--selected-work-title-size);font-kerning:normal;font-optical-sizing:auto;font-variant-ligatures:common-ligatures;letter-spacing:-.05em;white-space:nowrap;font-synthesis:none;margin:0;font-style:normal;font-weight:500;font-stretch:90%;line-height:.86}.selected-work__project-heading-text--outgoing{position:absolute;inset:0}.selected-work__project-heading-line{display:block;overflow:hidden}.selected-work__project-heading-line-inner{will-change:transform, opacity;display:block}.selected-work__project-heading-text--incoming .selected-work__project-heading-line-inner{animation:.5s cubic-bezier(.22,1,.36,1) both selected-work-title-in;animation-delay:var(--line-delay,0s)}.selected-work__project-heading-text--outgoing .selected-work__project-heading-line-inner{animation:.48s cubic-bezier(.22,1,.36,1) both selected-work-title-out;animation-delay:var(--line-delay,0s)}.selected-work__counter-mask{color:#ebf2f88f;font-variant-numeric:tabular-nums;letter-spacing:.03em;grid-column:4/6;width:max-content;height:1.2em;font-family:Commit Mono,ui-monospace,monospace;font-size:clamp(11px,.78vw,13px);font-style:normal;font-weight:400;line-height:1.2;position:relative;overflow:hidden}.selected-work__counter-value{white-space:nowrap;will-change:transform, opacity;display:block}.selected-work__counter-value--outgoing{animation:.2s cubic-bezier(.22,1,.36,1) both selected-work-counter-out;position:absolute;inset:0 auto auto 0}.selected-work__counter-value--incoming{animation:.2s cubic-bezier(.22,1,.36,1) both selected-work-counter-in}.selected-work__details-grid{bottom:max(clamp(52px, 7.4vh, 78px), calc(env(safe-area-inset-bottom) + 30px));align-items:end;animation:.22s cubic-bezier(.22,1,.36,1) both selected-work-details-in}.selected-work__descriptor,.selected-work__metadata{grid-row:1;margin:0}.selected-work__descriptor{color:#ebf2f8b8;font-kerning:normal;font-optical-sizing:auto;font-variant-ligatures:common-ligatures;letter-spacing:-.012em;-webkit-line-clamp:2;-webkit-box-orient:vertical;grid-column:1/4;max-width:32ch;font-family:Instrument Sans,system-ui,sans-serif;font-size:clamp(16px,1.1vw,18px);font-style:normal;font-weight:400;line-height:1.28;display:-webkit-box;overflow:hidden}.selected-work__metadata{color:#ebf2f88a;font-variant-numeric:tabular-nums;letter-spacing:.045em;text-transform:uppercase;grid-column:4/9;font-family:Commit Mono,ui-monospace,monospace;font-size:clamp(10px,.72vw,12px);font-style:normal;font-weight:400;line-height:1.2}.selected-work__projects{pointer-events:none;position:absolute;inset:0}.selected-work__project{color:#ebf2f8d1;cursor:pointer;pointer-events:none;touch-action:manipulation;background:0 0;border:0;outline:0;width:clamp(9rem,17vw,16rem);height:clamp(4.5rem,11vh,7rem);padding:0;text-decoration:none;position:absolute;left:clamp(1.25rem,5vw,5rem);transform:translateY(-50%)}.selected-work__project-index,.selected-work__project-name{opacity:0}.selected-work__project:focus-visible{background:#151c24e0}.selected-work__project:focus-visible .selected-work__project-index,.selected-work__project:focus-visible .selected-work__project-name{opacity:1}.selected-work__project--1{top:26%}.selected-work__project--2{top:49%}.selected-work__project--3{top:71%}.selected-work__project:disabled,.selected-work__project[aria-disabled=true],.selected-work--active .selected-work__project{cursor:default;pointer-events:none}.selected-work__project:after{content:"";border:1px solid #0000;border-radius:.4rem;position:absolute;inset:-.3rem}.selected-work__project:focus-visible:after{border-color:#ebf2f8b8}.selected-work__eject{min-height:44px;color:var(--work-foreground);cursor:pointer;opacity:0;pointer-events:none;backdrop-filter:blur(8px);touch-action:manipulation;background:#151c24d1;border:1px solid #ebf2f852;border-radius:.35rem;align-items:center;gap:1.1rem;padding:.72rem .8rem .72rem .9rem;font-size:.76rem;line-height:1;transition:border-color .18s,background-color .18s,opacity .25s,transform .35s cubic-bezier(.22,1,.36,1);display:flex;position:absolute;top:clamp(1.25rem,3vw,2.5rem);right:clamp(1.25rem,3vw,2.5rem);transform:translateY(-.35rem)}.experience-controls--visible .selected-work__eject{opacity:1;pointer-events:auto;transform:translateY(0)}.selected-work__eject-key{color:var(--work-muted);letter-spacing:.04em;text-transform:uppercase;border:1px solid #ebf2f838;border-radius:.2rem;padding:.28rem .34rem;font-size:.62rem}.selected-work__eject:hover,.selected-work__eject:focus-visible{background:#1e252ef0;border-color:#ebf2f89e}.selected-work__eject:focus-visible{outline:1px solid var(--work-foreground);outline-offset:.25rem}.about{z-index:3;color:#171b18;background:0 0;min-height:760svh;position:relative;overflow:clip}.about__stage{pointer-events:none;height:100svh;position:sticky;top:0;overflow:clip}.about__meta,.about__beat{right:var(--selected-work-inset);left:var(--selected-work-inset);column-gap:var(--selected-work-grid-gap);grid-template-columns:repeat(12,minmax(0,1fr));display:grid;position:absolute}.about__meta{opacity:var(--about-meta-opacity,1);will-change:opacity;top:clamp(32px,4.3vh,44px)}.about__meta-inner{grid-column:8/13;justify-content:space-between;align-items:center;gap:2rem;min-width:0;display:flex}.about__label,.about__counter{color:#171b1880;font-variant-numeric:tabular-nums;letter-spacing:.055em;margin:0;font-family:Commit Mono,ui-monospace,monospace;font-size:clamp(11px,.78vw,13px);font-style:normal;font-weight:400;line-height:1.2}.about__label{text-transform:uppercase}.about__counter{letter-spacing:.03em;height:1.2em;overflow:hidden}.about__counter-stack{transform:translate3d(0, calc(var(--about-counter-position,0) * -1.2em), 0);will-change:transform;flex-direction:column;display:flex}.about__counter-stack span{white-space:nowrap;flex:0 0 1.2em;height:1.2em;display:block}.about__counter-accessible{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.about__beats{position:absolute;inset:0}.about__beat{margin:0;top:clamp(300px,44.5vh,445px)}.about__beat-inner{grid-column:8/13;min-width:0}.about__headline-mask{clip-path:inset(-.12em -1em -.16em);overflow:visible}.about__headline{max-width:var(--about-headline-measure,100%);color:#171b18;font-family:Instrument Sans,system-ui,sans-serif;font-size:var(--about-headline-size);font-stretch:var(--about-headline-width);font-kerning:normal;font-optical-sizing:auto;font-variant-ligatures:common-ligatures;font-style:normal;font-weight:500;line-height:var(--about-headline-leading,.94);letter-spacing:-.03em;text-wrap:balance;opacity:var(--about-headline-opacity,0);transform:translate3d(0, var(--about-headline-y,24px), 0);will-change:transform, opacity;font-synthesis:none;margin:0}.about__body{max-width:var(--about-body-measure,38ch);color:#171b18c2;font-kerning:normal;font-optical-sizing:auto;font-variant-ligatures:common-ligatures;letter-spacing:-.012em;text-wrap:pretty;opacity:var(--about-body-opacity,0);transform:translate3d(0, var(--about-body-y,14px), 0);will-change:transform, opacity;font-synthesis:none;margin-top:clamp(24px,3.2vh,34px);font-family:Instrument Sans,system-ui,sans-serif;font-size:clamp(17px,1.12vw,19px);font-style:normal;font-weight:400;line-height:1.5;display:block}.about__body p{margin:0}.about__body--split{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(20px,2vw,34px);max-width:none;display:grid}.about__beat--1{--about-headline-size:clamp(54px, 3.8vw, 68px);--about-headline-width:93%;--about-headline-leading:.94;--about-body-measure:39ch}.about__beat--2{--about-headline-size:clamp(50px, 3.45vw, 60px);--about-headline-width:96%;--about-headline-leading:.95;--about-body-measure:39ch}.about__beat--3{--about-headline-size:clamp(49px, 3.3vw, 58px);--about-headline-width:94%;--about-headline-leading:.95}.about__beat--4{--about-headline-size:clamp(53px, 3.65vw, 65px);--about-headline-width:92%;--about-headline-leading:.94;--about-body-measure:39ch}.about__beat--5{--about-headline-size:clamp(48px, 3.2vw, 56px);--about-headline-width:96%;--about-headline-leading:.96;--about-headline-measure:92%}.about__beat--5 .about__body{margin-top:clamp(42px,5.5vh,62px)}.about__beat--1{--about-headline-opacity:1;--about-headline-y:0px;--about-body-opacity:1;--about-body-y:0px}@keyframes selected-work-title-in{0%{opacity:0;transform:translateY(65%)}to{opacity:1;transform:translateY(0)}}@keyframes selected-work-title-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-18%)}}@keyframes selected-work-counter-in{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes selected-work-counter-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-100%)}}@keyframes selected-work-details-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (width<=800px){.selected-work{min-height:240svh}.about{min-height:680svh}.about__meta-inner,.about__beat-inner{grid-column:7/13}.about__beat{top:clamp(300px,46vh,420px)}.about__headline{font-size:clamp(44px,6.2vw,54px)}.about__body{font-size:17px}.selected-work__project{width:8.5rem;left:1.25rem}}@media (width<=1024px),(hover:none) and (pointer:coarse){.three-layer{pointer-events:none}.selected-work{--selected-work-title-size:clamp(52px, 9vw, 76px);min-height:260svh}.selected-work__project-heading{top:max(66px,8.8svh)}.selected-work__project-heading-viewport{grid-column:1/13}.selected-work__label{grid-column:1/8}.selected-work__counter-mask{grid-column:9/13;justify-self:end}.selected-work__details-grid{bottom:max(98px, calc(env(safe-area-inset-bottom) + 82px))}.selected-work__descriptor{grid-column:1/8;max-width:36ch;font-size:clamp(14px,2vw,17px)}.selected-work__metadata{text-align:right;grid-column:8/13;place-self:end}.selected-work__projects{inset:auto var(--selected-work-inset) max(18px, calc(env(safe-area-inset-bottom) + 10px));height:50px;opacity:var(--selected-work-chrome-opacity,1);pointer-events:auto;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;transition:opacity .18s;display:grid}html[data-about-transition] .selected-work__projects{pointer-events:none}.selected-work__project,.selected-work__project--1,.selected-work__project--2,.selected-work__project--3{pointer-events:auto;backdrop-filter:blur(8px);background:#151c24b3;border:1px solid #ebf2f833;border-radius:.35rem;justify-content:space-between;align-items:center;gap:.5rem;width:100%;height:50px;padding:0 .7rem;display:flex;position:relative;top:auto;left:auto;transform:none}.selected-work__project-index,.selected-work__project-name{opacity:1}.selected-work__project-index{color:#ebf2f885;letter-spacing:.04em;font-family:Commit Mono,ui-monospace,monospace;font-size:10.5px}.selected-work__project-name{letter-spacing:-.015em;text-overflow:ellipsis;white-space:nowrap;font-family:Instrument Sans,system-ui,sans-serif;font-size:13px;font-weight:500;overflow:hidden}.selected-work__project.is-active,.selected-work__project:focus-visible{background:#1f2730f0;border-color:#ebf2f8b8}.selected-work--active .selected-work__projects{opacity:0;pointer-events:none}.selected-work--active .selected-work__project{pointer-events:none}.selected-work__eject{top:max(16px, calc(env(safe-area-inset-top) + 10px));right:max(16px, calc(env(safe-area-inset-right) + 10px));min-height:48px}.selected-work__eject-key{display:none}}@media (width<=620px){:root{--selected-work-inset:max(20px, env(safe-area-inset-left), env(safe-area-inset-right));--selected-work-grid-gap:8px}.selected-work{--selected-work-title-size:clamp(48px, 14vw, 62px);min-height:225svh}.selected-work__project-heading{top:max(62px,9svh)}.selected-work__descriptor{grid-column:1/9;font-size:14.5px;line-height:1.32}.selected-work__metadata{grid-column:9/13;font-size:10.5px}.selected-work__project,.selected-work__project--1,.selected-work__project--2,.selected-work__project--3{min-width:0;padding-inline:.58rem}.selected-work__project-name{font-size:12px}.about{min-height:600svh}.about__meta-inner,.about__beat-inner{grid-column:1/13}.about__meta{top:24px}.about__beat{top:43vh}.about__headline{font-size:clamp(38px,10.5vw,48px)}.about__body{max-width:36ch;margin-top:22px;font-size:16px}.about__body--split{max-width:36ch;display:block}.about__body--split p+p{margin-top:18px}.about__beat--5 .about__body{margin-top:36px}}@media (height<=700px){.about__beat{top:clamp(180px,34vh,260px)}.about__headline{font-size:clamp(36px,3.8vw,52px)}.about__body,.about__beat--5 .about__body{margin-top:18px;font-size:15px;line-height:1.42}}@media (height<=560px) and (width>=521px){.selected-work{--selected-work-title-size:clamp(40px, 7vw, 54px);min-height:230svh}.selected-work__project-heading{top:max(52px,12svh)}.selected-work__details-grid{bottom:max(72px, calc(env(safe-area-inset-bottom) + 64px))}.selected-work__descriptor{font-size:13px}.selected-work__projects{bottom:max(10px, env(safe-area-inset-bottom));height:44px}.selected-work__project,.selected-work__project--1,.selected-work__project--2,.selected-work__project--3{height:44px}.about{min-height:520svh}.about__meta{top:max(16px, env(safe-area-inset-top))}.about__meta-inner,.about__beat-inner{grid-column:6/13}.about__beat{top:clamp(96px,27vh,150px)}.about__headline{font-size:clamp(30px,5vw,40px);line-height:.94}.about__body,.about__beat--5 .about__body{max-width:44ch;margin-top:12px;font-size:14.5px;line-height:1.35}}@media (width<=800px) and (aspect-ratio<=4/5) and (prefers-reduced-motion:no-preference){.about__stage{height:100dvh;min-height:100svh}.about__meta{z-index:2}.about__beats{z-index:1;isolation:isolate}.about__beats:before{content:"";z-index:0;pointer-events:none;opacity:var(--about-panel-opacity,0);background:linear-gradient(#e3e5de00 54%,#e3e5ded1 71%,#e3e5defa 82%,#e3e5de 100%);position:absolute;inset:0}.about__beat{z-index:1;top:auto;bottom:max(28px, calc(env(safe-area-inset-bottom) + 20px));align-items:end}.about__beat-inner,.about__meta-inner{grid-column:1/13}.about__headline{letter-spacing:-.035em;text-wrap:balance;max-width:12ch;font-size:clamp(31px,5.5vw,42px);line-height:.98}.about__body,.about__beat--5 .about__body{max-width:34ch;margin-top:15px;font-size:clamp(14px,2.1vw,16px);line-height:1.43}.about__body--split p+p{margin-top:12px}}@media (prefers-reduced-motion:reduce){.selected-work{min-height:220svh}.loading-screen,.loading-screen--complete,.selected-work__title-layer,.selected-work__browse-copy,.selected-work__eject{transition:none}.selected-work__project-heading-text--outgoing,.selected-work__counter-value--outgoing{display:none}.selected-work__project-heading-line-inner,.selected-work__counter-value,.selected-work__details-grid{opacity:1;transform:none;animation:none!important}.about__headline,.about__body{transform:none!important}.about{min-height:0;padding:clamp(5rem, 10vw, 8rem) var(--selected-work-inset);background:var(--about-background)}.about__stage{height:auto;position:relative;overflow:visible}.about__meta,.about__beat,.about__beats{position:relative;inset:auto}.about__meta,.about__beat{left:auto;right:auto}.about__meta-inner,.about__beat-inner{grid-column:1/13}.about__meta{margin-bottom:clamp(3rem,8vw,5rem);opacity:1!important}.about__counter{display:none}.about__beats{gap:clamp(4rem,10vw,7rem);display:grid}.about__beat{top:auto}.about__headline,.about__body{max-width:46rem;opacity:1!important}}:root{--loader-cell:12px}.loading-screen{--loader-inset:max(clamp(25px, 4.3vw, 75px), env(safe-area-inset-left), env(safe-area-inset-right));z-index:60;isolation:isolate;pointer-events:auto;position:fixed;inset:0;overflow:hidden}.loading-screen__surface{background:#f7f9fc;position:absolute;inset:0;overflow:hidden;transform:translateZ(0)}.loading-screen__surface--painted{background:0 0}.loading-screen__surface--painted .loading-screen__ambient,.loading-screen__surface--painted .loading-screen__grid{display:none}.loading-screen__ambient,.loading-screen__grid,.loading-screen__field{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.loading-screen__ambient{background:radial-gradient(32% 43% at 73% 52%,#b3c6de42,#0000 92%),radial-gradient(29% 35% at 30% 86%,#cad7e52b,#0000 93%),#f7f9fc}.loading-screen__grid{background-image:linear-gradient(90deg,#7695ba2b 1px,#0000 1px),linear-gradient(#7695ba2b 1px,#0000 1px);background-size:var(--loader-cell) var(--loader-cell);background-position:0 0}.loading-screen__field{z-index:1;image-rendering:auto;display:block}.loading-screen__top{z-index:2;top:max(clamp(27px, 4.6vh, 60px), calc(env(safe-area-inset-top) + 18px));right:var(--loader-inset);left:var(--loader-inset);color:#26384cc7;letter-spacing:.045em;justify-content:space-between;gap:1.5rem;font:11px/1.3 Commit Mono,ui-monospace,monospace;display:flex;position:absolute}.loading-screen__top span{transition:opacity .41s,transform .65s cubic-bezier(.27,.03,.12,1)}.loading-screen__top span:last-child{color:#687b91}.loading-screen--releasing .loading-screen__top span{opacity:0;transform:translateY(-17px)}.loading-screen--releasing .loading-screen__top span:last-child{transition-delay:90ms}.loading-screen__footer{z-index:2;right:var(--loader-inset);bottom:max(clamp(37px, 6vh, 78px), calc(env(safe-area-inset-bottom) + 24px));left:var(--loader-inset);color:#1c2735;grid-template-columns:minmax(0,1fr) max-content;align-items:flex-end;gap:clamp(12px,3vw,52px);display:grid;position:absolute}.loading-screen__title-window{min-width:0;margin:-.2em -.1em -.35em -.04em;padding:.2em .1em .35em .04em;overflow:visible}.loading-screen--releasing .loading-screen__title-window{overflow:clip}.loading-screen__title{letter-spacing:-.07em;text-transform:uppercase;white-space:nowrap;width:max-content;max-width:100%;margin:0;font-family:Instrument Sans,system-ui,sans-serif;font-size:clamp(86px,10.6vw,172px);font-weight:520;font-stretch:92%;line-height:.98;display:flex}.loading-screen__letter{transform-origin:bottom;min-width:0;transition:transform .82s cubic-bezier(.58,.04,.18,1),opacity .5s cubic-bezier(.55,0,.4,1);transition-delay:calc(var(--exit-index) * 58ms);will-change:transform;flex:none;display:inline-block;transform:translate(0,0)}.loading-screen--releasing .loading-screen__letter{opacity:0;transform:translate3d(var(--exit-x,10px),126%,0) rotate(var(--exit-rotate,2deg))}.loading-screen__progress{font-variant-numeric:tabular-nums;letter-spacing:-.065em;flex:none;align-items:baseline;font-family:Instrument Sans,system-ui,sans-serif;font-size:clamp(74px,9.55vw,155px);font-weight:480;font-stretch:94%;line-height:.82;display:flex}.loading-screen__number{white-space:nowrap;justify-content:flex-end;align-items:baseline;width:1.83em;display:flex}.loading-screen__digit-window,.loading-screen__percent-window{align-items:baseline;margin:-.18em 0 -.35em;padding:.18em 0 .35em;display:inline-flex;overflow:visible}.loading-screen__digit-window{justify-content:center;width:.61em}.loading-screen--releasing .loading-screen__digit-window,.loading-screen--releasing .loading-screen__percent-window{overflow:clip}.loading-screen__digit,.loading-screen__percent{will-change:transform;transition:transform .86s cubic-bezier(.6,.04,.2,1),opacity .43s cubic-bezier(.55,0,.42,1);display:inline-block;transform:translate(0,0)}.loading-screen__digit{transition-delay:calc(.245s + var(--exit-index) * .112s)}.loading-screen__percent{letter-spacing:-.05em;padding-left:.025em;font-size:.48em;font-weight:440;transition-delay:.61s}.loading-screen--releasing .loading-screen__digit,.loading-screen--releasing .loading-screen__percent{opacity:0;transform:translate3d(var(--exit-x,8px),133%,0)}html.is-loading .hero__identity,html.is-loading .hero__statement-line,html.is-loading .hero__note,html.is-loading .hero__scroll{transition:opacity .71s cubic-bezier(.17,.5,.3,1),transform .8s cubic-bezier(.18,.69,.29,1)}html.is-loading:not(.hero-intro-visible) .hero__identity,html.is-loading:not(.hero-intro-visible) .hero__statement-line,html.is-loading:not(.hero-intro-visible) .hero__note,html.is-loading:not(.hero-intro-visible) .hero__scroll{opacity:0;transform:translateY(24px)}html.is-loading .hero__identity{transition-delay:0s}html.is-loading .hero__statement-line--1{transition-delay:45ms}html.is-loading .hero__statement-line--2{transition-delay:.145s}html.is-loading .hero__statement-line--3{transition-delay:.245s}html.is-loading .hero__note{transition-delay:.36s}html.is-loading .hero__scroll{transition-delay:.455s}@media (width<=920px){.loading-screen__title{font-size:clamp(66px,10.25vw,105px)}.loading-screen__progress{font-size:clamp(61px,9.1vw,92px)}}@media (width<=600px){.loading-screen{--loader-inset:max(clamp(19px, 5vw, 31px), env(safe-area-inset-left), env(safe-area-inset-right))}.loading-screen__top{top:max(24px, calc(env(safe-area-inset-top) + 14px));font-size:10px}.loading-screen__footer{bottom:max(clamp(34px, 6vh, 54px), calc(env(safe-area-inset-bottom) + 20px));grid-template-columns:minmax(0,1fr) max-content;align-items:baseline;gap:clamp(8px,2.8vw,12px)}.loading-screen__title{letter-spacing:-.078em;font-size:clamp(37px,12vw,55px)}.loading-screen__progress{letter-spacing:-.065em;place-self:baseline end;font-size:clamp(38px,10.7vw,49px)}.loading-screen__footer{transition:opacity .34s,transform .52s cubic-bezier(.22,1,.36,1)}.loading-screen--releasing .loading-screen__footer{opacity:0;transform:translateY(12px)}.loading-screen--releasing .loading-screen__title-window,.loading-screen--releasing .loading-screen__digit-window,.loading-screen--releasing .loading-screen__percent-window{overflow:visible}.loading-screen--releasing .loading-screen__letter,.loading-screen--releasing .loading-screen__digit,.loading-screen--releasing .loading-screen__percent{opacity:1;transition:none;transform:none}}@media (width<=365px){.loading-screen__title{font-size:clamp(35px,11.5vw,40px)}.loading-screen__progress{font-size:clamp(35px,10.8vw,38px)}}@media (prefers-reduced-motion:reduce){.loading-screen__letter,.loading-screen__digit,.loading-screen__percent,.loading-screen__top span,html.is-loading .hero__identity,html.is-loading .hero__statement-line,html.is-loading .hero__note,html.is-loading .hero__scroll{will-change:auto;transition:none!important}.loading-screen--reduced.loading-screen--releasing{opacity:0;transition:opacity .24s!important}}.hero{z-index:3;pointer-events:none;height:340svh;position:relative}.hero__stage{height:100svh;position:sticky;top:0;overflow:hidden}.hero__identity,.hero__copy,.hero__scroll{left:max(clamp(28px, 5.2vw, 90px), calc(env(safe-area-inset-left) + 20px));position:absolute}.hero__identity,.hero__scroll{display:flex}.hero__identity{top:max(clamp(34px, 5.2vh, 66px), calc(env(safe-area-inset-top) + 20px));color:#212a34;opacity:calc(1 - var(--hero-identity-exit,0));transform:translate3d(calc(var(--hero-identity-exit,0) * -4.2vw), 0, 0);will-change:transform, opacity;flex-direction:column;gap:5px}.hero__identity span:first-child{letter-spacing:-.025em;font-family:Instrument Sans,system-ui,sans-serif;font-size:clamp(15px,1vw,17px);font-weight:500}.hero__identity span:last-child{color:#626d79;letter-spacing:.075em;font-family:Commit Mono,ui-monospace,monospace;font-size:clamp(10.5px,.72vw,12px);font-weight:400}.hero__copy{color:#171d26;width:min(51vw,900px);top:51%;transform:translateY(-49%)}.hero__statement{letter-spacing:-.048em;font-synthesis:none;margin:0;font-family:Instrument Sans,system-ui,sans-serif;font-size:clamp(46px,4.25vw,88px);font-weight:400;font-stretch:94%;line-height:.94}.hero__statement-line{white-space:nowrap;width:max-content;max-width:100%;opacity:calc(1 - var(--hero-line-exit,0));transform:translate3d(calc(var(--hero-line-exit,0) * -5.2vw), 0, 0);will-change:transform, opacity;display:block}.hero__statement-line--1{--hero-line-exit:var(--hero-line-1-exit,0)}.hero__statement-line--2{--hero-line-exit:var(--hero-line-2-exit,0)}.hero__statement-line--3{--hero-line-exit:var(--hero-line-3-exit,0)}.hero__statement-accent{color:var(--accent-blue)}.hero__note{color:#65717f;max-width:27ch;opacity:calc(1 - var(--hero-note-exit,0));transform:translate3d(calc(var(--hero-note-exit,0) * -3.5vw), 0, 0);will-change:transform, opacity;margin:clamp(28px,4.4vh,50px) 0 0;font-family:Commit Mono,ui-monospace,monospace;font-size:clamp(12px,.9vw,14px);line-height:1.55}.hero__scroll{bottom:max(clamp(36px, 6.3vh, 72px), calc(env(safe-area-inset-bottom) + 24px));color:#536070;letter-spacing:.065em;opacity:calc(1 - var(--hero-scroll-exit,0));transform:translate3d(calc(var(--hero-scroll-exit,0) * -4vw), 0, 0);will-change:transform, opacity;align-items:center;gap:20px;margin:0;font-family:Commit Mono,ui-monospace,monospace;font-size:11px}.hero__scroll-arrow{color:#171d26;font-family:Instrument Sans,system-ui,sans-serif;font-size:38px;font-weight:400;line-height:.7}@media (width<=1024px){.hero{height:300svh}.hero__copy{width:min(calc(100% - (var(--selected-work-inset) * 2)), 48rem);top:max(8rem,28svh);transform:none}.hero__statement{font-size:clamp(42px,5.8vw,58px)}}@media (width<=800px){.hero{height:280svh}.hero__copy{top:max(8rem,26svh)}.hero__statement{font-size:clamp(40px,6.8vw,54px)}.hero__statement-line{white-space:normal;text-wrap:balance;width:100%}}@media (width<=640px){.hero__statement{font-size:clamp(33px,6.8vw,42px)}}@media (width<=520px){.hero{height:260svh}.hero__copy{top:max(7.5rem,24svh)}.hero__statement{letter-spacing:-.052em;font-size:clamp(31px,8.15vw,35px);font-stretch:88%;line-height:.98}.hero__statement-line{white-space:nowrap;text-wrap:nowrap;width:max-content;max-width:100%}.hero__note{margin-top:clamp(20px,3.8vh,28px);font-size:11.5px;line-height:1.48}.hero__scroll{gap:14px;font-size:10.5px}.hero__scroll-arrow{font-size:32px}}@media (width<=365px){.hero__statement{font-size:clamp(28px,8.55vw,31px);font-stretch:86%}}@media (height<=560px) and (width>=521px){.hero{height:250svh}.hero__identity{top:max(20px, calc(env(safe-area-inset-top) + 12px))}.hero__copy{width:min(64vw,34rem);top:max(5.2rem,22svh)}.hero__statement{font-size:clamp(31px,5.6vw,42px);line-height:.93}.hero__note{max-width:32ch;margin-top:16px;font-size:10.5px;line-height:1.42}.hero__scroll{right:max(22px, env(safe-area-inset-right));bottom:max(18px, calc(env(safe-area-inset-bottom) + 10px));left:auto}}@media (prefers-reduced-motion:reduce){.hero{height:210svh}}@view-transition{navigation:auto}:root{--crt-handoff-duration:.86s;--crt-entry-duration:.76s;--crt-raster-opacity:.54;--crt-glass-opacity:1;view-transition-name:none}html[data-crt-page=true],html[data-crt-page=true] body{background:#080c09}html[data-crt-page=true]{overscroll-behavior:none;overflow-x:clip}html[data-crt-transition] .crt-transition-surface{view-transition-name:crt-surface}::view-transition-group(crt-surface){z-index:2147483647;animation-duration:.12s;animation-timing-function:linear}::view-transition-old(crt-surface),::view-transition-new(crt-surface){mix-blend-mode:normal;animation-duration:.12s;animation-timing-function:linear}::view-transition-old(crt-surface){animation-name:crt-view-old}::view-transition-new(crt-surface){animation-name:crt-view-new}.crt-transition-surface{z-index:1000;pointer-events:none;isolation:isolate;contain:paint;display:none;position:fixed;inset:0;overflow:hidden}html[data-crt-page=true] .crt-transition-surface,html[data-crt-transition=out] .crt-transition-surface,html[data-crt-transition=in] .crt-transition-surface{display:block}.crt-transition-surface__wash,.crt-transition-surface__gloom,.crt-transition-surface__raster,.crt-transition-surface__sync,.crt-transition-surface__frame{position:absolute;inset:0}.crt-transition-surface__wash{z-index:1;opacity:0;background:#efede7}.crt-transition-surface__gloom{z-index:2;opacity:0;background:radial-gradient(86% 72% at 50% 44%,#ffffff0e,#ffffff04 46%,#0000 72%),linear-gradient(90deg,#03070506,#0000 8% 92%,#03070509)}html[data-crt-page=true] .crt-transition-surface__gloom{opacity:.48}.crt-transition-surface__raster{z-index:3;opacity:0;background:repeating-linear-gradient(#040a0714 0 1px,#ffffff04 1px 2px,#0000 2px 4px)}html[data-crt-page=true] .crt-transition-surface__raster{opacity:var(--crt-raster-opacity)}.crt-transition-surface__sync{z-index:4;will-change:transform, opacity;opacity:0;background:linear-gradient(#0000,#eaf1eb03 28%,#eaf1eb14 49%,#eaf1eb03 70%,#0000);height:18vh;top:-20vh;bottom:auto}html[data-crt-page=true] .crt-transition-surface__sync{animation:8.5s linear infinite crt-persistent-scan}.crt-transition-surface__frame{z-index:5;opacity:0;background:url(/crt-glass-frame.svg) 50%/100% 100% no-repeat}html[data-crt-page=true] .crt-transition-surface__frame{opacity:var(--crt-glass-opacity)}html[data-crt-transition=out] .crt-transition-surface__wash{animation:crt-wash-out var(--crt-handoff-duration) cubic-bezier(.22, 1, .36, 1) both}html[data-crt-transition=out] .crt-transition-surface__gloom{animation:crt-gloom-out var(--crt-handoff-duration) cubic-bezier(.22, 1, .36, 1) both}html[data-crt-transition=out] .crt-transition-surface__raster{animation:crt-raster-out var(--crt-handoff-duration) cubic-bezier(.22, 1, .36, 1) both}html[data-crt-transition=out] .crt-transition-surface__frame{animation:crt-frame-out var(--crt-handoff-duration) cubic-bezier(.22, 1, .36, 1) both}html[data-crt-transition=out] .crt-transition-surface__sync{animation:crt-sync-out var(--crt-handoff-duration) cubic-bezier(.22, 1, .36, 1) both}html[data-crt-transition=in] .crt-transition-surface__wash{animation:crt-wash-in var(--crt-entry-duration) cubic-bezier(.22, 1, .36, 1) both}html[data-crt-transition=in] .crt-transition-surface__sync{animation:crt-sync-in var(--crt-entry-duration) cubic-bezier(.22, 1, .36, 1) both}@keyframes crt-wash-out{0%,24%{opacity:0}54%{opacity:.08}82%{opacity:.58}to{opacity:1}}@keyframes crt-gloom-out{0%,18%{opacity:0}62%{opacity:.18}to{opacity:.48}}@keyframes crt-raster-out{0%,12%{opacity:0}52%{opacity:.16}to{opacity:var(--crt-raster-opacity)}}@keyframes crt-frame-out{0%,18%{opacity:0}58%{opacity:.22}to{opacity:var(--crt-glass-opacity)}}@keyframes crt-sync-out{0%,30%{opacity:0;transform:translateY(0)}48%{opacity:.22}to{opacity:.04;transform:translateY(112vh)}}@keyframes crt-wash-in{0%{opacity:1}28%{opacity:.62}68%{opacity:.12}to{opacity:0}}@keyframes crt-sync-in{0%{opacity:.04;transform:translateY(112vh)}20%{opacity:.18}76%,to{opacity:0;transform:translateY(18vh)}}@keyframes crt-persistent-scan{0%,7%{opacity:0;transform:translateY(0)}14%{opacity:.11}76%{opacity:.07;transform:translateY(126vh)}84%,to{opacity:0;transform:translateY(126vh)}}@keyframes crt-view-old{0%{opacity:1}to{opacity:0}}@keyframes crt-view-new{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){:root{--crt-handoff-duration:1ms;--crt-entry-duration:.14s}html[data-crt-page=true] .crt-transition-surface__sync,html[data-crt-transition=out] .crt-transition-surface__sync,html[data-crt-transition=in] .crt-transition-surface__sync{display:none}}html[data-crt-return=pending] .loading-screen{pointer-events:none;opacity:0;visibility:hidden}html[data-crt-transition=return-out] .crt-transition-surface,html[data-crt-transition=return-in] .crt-transition-surface,html[data-crt-transition=return-reveal] .crt-transition-surface{display:block}html[data-crt-transition=return-out] .work-page{animation:.34s cubic-bezier(.32,0,.67,0) both crt-project-return-out}html[data-crt-transition=return-out] .crt-transition-surface__wash{animation:.34s cubic-bezier(.32,0,.67,0) both crt-return-wash-out}html[data-crt-transition=return-out] .crt-transition-surface__gloom{opacity:.52}html[data-crt-transition=return-out] .crt-transition-surface__raster{animation:.34s linear both crt-return-raster-out}html[data-crt-transition=return-out] .crt-transition-surface__frame{opacity:var(--crt-glass-opacity)}html[data-crt-transition=return-out] .crt-transition-surface__sync,html[data-crt-transition=return-in] .crt-transition-surface__sync{animation:.92s linear infinite crt-return-sync-wait}html[data-crt-transition=return-in] .crt-transition-surface__wash,html[data-crt-transition=return-reveal] .crt-transition-surface__wash{opacity:1}html[data-crt-transition=return-in] .crt-transition-surface__gloom,html[data-crt-transition=return-reveal] .crt-transition-surface__gloom{opacity:.52}html[data-crt-transition=return-in] .crt-transition-surface__raster,html[data-crt-transition=return-reveal] .crt-transition-surface__raster{opacity:var(--crt-raster-opacity)}html[data-crt-transition=return-in] .crt-transition-surface__frame,html[data-crt-transition=return-reveal] .crt-transition-surface__frame{opacity:var(--crt-glass-opacity)}html[data-crt-transition=return-reveal] .crt-transition-surface{animation:.28s cubic-bezier(.22,1,.36,1) both crt-return-surface-reveal}html[data-crt-transition=return-reveal] .crt-transition-surface__sync{opacity:0}@keyframes crt-project-return-out{0%{opacity:1}54%{opacity:.82}to{opacity:.06}}@keyframes crt-return-wash-out{0%,18%{opacity:0}58%{opacity:.16}to{opacity:1}}@keyframes crt-return-raster-out{0%{opacity:var(--crt-raster-opacity)}to{opacity:.68}}@keyframes crt-return-sync-wait{0%{opacity:0;transform:translateY(0)}18%{opacity:.14}74%{opacity:.08}to{opacity:0;transform:translateY(122vh)}}@keyframes crt-return-surface-reveal{0%,20%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){html[data-crt-transition=return-out] .work-page,html[data-crt-transition=return-out] .crt-transition-surface__wash,html[data-crt-transition=return-out] .crt-transition-surface__raster,html[data-crt-transition=return-reveal] .crt-transition-surface{animation-duration:1ms}html[data-crt-transition=return-out] .crt-transition-surface__sync,html[data-crt-transition=return-in] .crt-transition-surface__sync{display:none}}:root{--homelab-route-duration:.72s;--homelab-route-reveal-duration:.68s;--homelab-route-blue:#175cff;--homelab-route-ink:#17304d;--homelab-route-paper:#f7fbff}.homelab-route-surface{z-index:1100;pointer-events:none;background:var(--homelab-route-paper);color:var(--homelab-route-ink);opacity:1;isolation:isolate;contain:strict;will-change:clip-path;display:none;position:fixed;inset:0;overflow:hidden;transform:translateZ(0)}.homelab-route-surface__wash,.homelab-route-surface__grid,.homelab-route-surface__sweep{position:absolute;inset:0}.homelab-route-surface__wash{z-index:1;background:radial-gradient(circle at 77% 22%,#c3e4ff47,#0000 31rem),radial-gradient(circle at 12% 72%,#daefff38,#0000 34rem),linear-gradient(#f7fbff 0%,#f2f8fe 54%,#edf4fd 100%)}.homelab-route-surface__wash:after{content:"";background:linear-gradient(90deg,#f7fbff57,#0000 45%),linear-gradient(#0000 82%,#ddeffd33);position:absolute;inset:0}.homelab-route-surface__grid{z-index:2;opacity:.34;will-change:background-position, opacity;background-image:linear-gradient(#0598d813 1px,#0000 1px),linear-gradient(90deg,#0598d813 1px,#0000 1px);background-position:50%;background-size:54px 54px;-webkit-mask-image:radial-gradient(circle at 58% 46%,#000 0,#000000c2 42%,#0000 88%);mask-image:radial-gradient(circle at 58% 46%,#000 0,#000000c2 42%,#0000 88%)}.homelab-route-surface__signal{z-index:3;transform-origin:100%;will-change:transform, opacity;background:linear-gradient(90deg,#175cff00,#175cff29 18%,#175cff47 72%,#175cff00);height:1px;position:absolute;top:50%;left:clamp(38px,4.8vw,72px);right:clamp(38px,4.8vw,72px);transform:scaleX(0)}.homelab-route-surface__meta{z-index:3;color:#17304d94;font-variant-numeric:tabular-nums;letter-spacing:.075em;text-transform:uppercase;justify-content:space-between;gap:2rem;font-family:Commit Mono,ui-monospace,monospace;font-size:clamp(10.5px,.68vw,11px);display:flex;position:absolute;bottom:clamp(1.25rem,3vw,2.75rem);left:clamp(1.5rem,3.2vw,3.25rem);right:clamp(1.5rem,3.2vw,3.25rem)}.homelab-route-surface__sweep{z-index:4;opacity:0;will-change:transform, opacity;background:linear-gradient(90deg,#0000,#175cff03 26%,#175cff17 49%,#ffffff8f 50%,#175cff0a 52%,#0000);width:clamp(7rem,12vw,13rem);right:auto;transform:translate(calc(100vw + 20%))}html[data-homelab-transition] .homelab-route-surface{view-transition-name:homelab-route-surface;display:block}html[data-homelab-transition=out],html[data-homelab-transition=return-out]{overflow:hidden}::view-transition-group(homelab-route-surface),::view-transition-old(homelab-route-surface),::view-transition-new(homelab-route-surface){z-index:2147483646;mix-blend-mode:normal;animation-duration:.12s;animation-timing-function:linear}html[data-homelab-transition=out] .homelab-route-surface{animation:homelab-route-cover-forward var(--homelab-route-duration) cubic-bezier(.76, 0, .24, 1) both}html[data-homelab-transition=return-out] .homelab-route-surface{animation:homelab-route-cover-reverse var(--homelab-route-duration) cubic-bezier(.76, 0, .24, 1) both}html[data-homelab-transition=in] .homelab-route-surface,html[data-homelab-transition=return-in] .homelab-route-surface{clip-path:inset(0)}html[data-homelab-transition=in-reveal] .homelab-route-surface{animation:homelab-route-reveal-forward var(--homelab-route-reveal-duration) cubic-bezier(.76, 0, .24, 1) both}html[data-homelab-transition=return-reveal] .homelab-route-surface{animation:homelab-route-reveal-reverse var(--homelab-route-reveal-duration) cubic-bezier(.76, 0, .24, 1) both}html[data-homelab-transition=out] .homelab-route-surface__sweep{animation:homelab-route-sweep-forward var(--homelab-route-duration) cubic-bezier(.76, 0, .24, 1) both}html[data-homelab-transition=in-reveal] .homelab-route-surface__sweep{animation:homelab-route-sweep-forward var(--homelab-route-reveal-duration) cubic-bezier(.76, 0, .24, 1) both}html[data-homelab-transition=return-out] .homelab-route-surface__sweep{animation:homelab-route-sweep-reverse var(--homelab-route-duration) cubic-bezier(.76, 0, .24, 1) both}html[data-homelab-transition=return-reveal] .homelab-route-surface__sweep{animation:homelab-route-sweep-reverse var(--homelab-route-reveal-duration) cubic-bezier(.76, 0, .24, 1) both}html[data-homelab-transition] .homelab-route-surface__grid{animation:1.1s ease-out both homelab-route-grid-drift}html[data-homelab-transition] .homelab-route-surface__signal{animation:.52s cubic-bezier(.22,1,.36,1) .11s both homelab-route-signal}html[data-homelab-return=pending] .loading-screen{pointer-events:none;opacity:0;visibility:hidden}html[data-homelab-transition=out] .homelab__canvas{filter:saturate(.72)contrast(1.06)brightness(1.04);transform-origin:68%;transition:filter var(--homelab-route-duration) cubic-bezier(.22, 1, .36, 1), transform var(--homelab-route-duration) cubic-bezier(.22, 1, .36, 1);transform:translate(3.6vw,-.4vh)scale(1.055)}html[data-homelab-transition=out] .homelab__copy{opacity:0;transition:opacity .22s ease-out,transform .36s cubic-bezier(.22,1,.36,1);transform:translate(-12px)}html[data-homelab-transition=out] .homelab__grid,html[data-homelab-transition=out] .homelab__scan{opacity:.12;transition:opacity .32s ease-out}html[data-homelab-transition=in] .homelab-page__rack-art{opacity:.76;transform:translate(2.2vw)scale(1.04)}html[data-homelab-transition=in-reveal] .homelab-page__rack-art{animation:homelab-page-rack-in var(--homelab-route-reveal-duration) cubic-bezier(.22, 1, .36, 1) both}html[data-homelab-transition=return-out] .homelab-page__header,html[data-homelab-transition=return-out] .homelab-page__marker,html[data-homelab-transition=return-out] .homelab-page__copy-deck,html[data-homelab-transition=return-out] .homelab-page__scroll-cue,html[data-homelab-transition=return-out] .homelab-page__progress,html[data-homelab-transition=return-out] .homelab-page__footer{opacity:0;transition:opacity .2s ease-out,transform .32s cubic-bezier(.22,1,.36,1);transform:translate(10px)}html[data-homelab-transition=return-out] .homelab-page__rack-art{animation:homelab-page-rack-out var(--homelab-route-duration) cubic-bezier(.32, 0, .67, 0) both}html[data-homelab-transition=return-in] .homelab__copy{opacity:0;transform:translate(-12px)}html[data-homelab-transition=return-in] .homelab__grid,html[data-homelab-transition=return-in] .homelab__scan{opacity:0}html[data-homelab-transition=return-in] .homelab__canvas{filter:saturate(.72)contrast(1.06)brightness(1.04);transform-origin:68%;transform:translate(3.6vw,-.4vh)scale(1.055)}html[data-homelab-transition=return-reveal] .homelab__canvas{animation:homelab-home-rack-return var(--homelab-route-reveal-duration) cubic-bezier(.22, 1, .36, 1) both}html[data-homelab-transition=return-reveal] .homelab__copy{transition:opacity .36s ease-out .12s,transform .52s cubic-bezier(.22,1,.36,1) 80ms}html[data-homelab-transition=return-reveal] .homelab__grid,html[data-homelab-transition=return-reveal] .homelab__scan{transition:opacity .42s ease-out 80ms}@keyframes homelab-route-cover-forward{0%,12%{clip-path:inset(0 0 0 100%)}to{clip-path:inset(0)}}@keyframes homelab-route-cover-reverse{0%,12%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}@keyframes homelab-route-reveal-forward{0%,10%{clip-path:inset(0)}to{clip-path:inset(0 100% 0 0)}}@keyframes homelab-route-reveal-reverse{0%,10%{clip-path:inset(0)}to{clip-path:inset(0 0 0 100%)}}@keyframes homelab-route-sweep-forward{0%,8%{opacity:0;transform:translate(calc(100vw + 20%))}18%,82%{opacity:.82}to{opacity:0;transform:translate(-55%)}}@keyframes homelab-route-sweep-reverse{0%,8%{opacity:0;transform:translate(-55%)}18%,82%{opacity:.82}to{opacity:0;transform:translate(calc(100vw + 20%))}}@keyframes homelab-route-grid-drift{0%{background-position:36px 0}to{background-position:0 0}}@keyframes homelab-route-signal{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}@keyframes homelab-page-rack-in{0%{opacity:.76;transform:translate(2.2vw)scale(1.04)}to{opacity:var(--rack-opacity,1);transform:none}}@keyframes homelab-page-rack-out{0%{opacity:var(--rack-opacity,1);transform:none}to{opacity:.76;transform:translate(2.2vw)scale(1.04)}}@keyframes homelab-home-rack-return{0%{filter:saturate(.72)contrast(1.06)brightness(1.04);transform:translate(3.6vw,-.4vh)scale(1.055)}to{filter:none;transform:none}}@media (width<=900px){.homelab-route-surface__wash{background:radial-gradient(circle at 74% 24%,#c3e4ff47,#0000 22rem),radial-gradient(circle at 14% 78%,#daefff38,#0000 24rem),linear-gradient(#f7fbff 0%,#f2f8fe 54%,#edf4fd 100%)}.homelab-route-surface__grid{-webkit-mask-image:radial-gradient(circle at 50% 52%,#000 0,#000000b3 42%,#0000 88%);mask-image:radial-gradient(circle at 50% 52%,#000 0,#000000b3 42%,#0000 88%)}.homelab-route-surface__signal{display:none}.homelab-route-surface__meta{align-items:flex-end}.homelab-route-surface__meta span:last-child{text-align:right;max-width:15ch}.homelab-route-surface__sweep{background:linear-gradient(#0000,#175cff03 26%,#175cff17 49%,#ffffff94 50%,#175cff0a 52%,#0000);width:100%;height:clamp(6rem,15vh,9rem);bottom:auto;right:0;transform:translateY(calc(100vh + 20%))}html[data-homelab-transition=out] .homelab-route-surface{animation-name:homelab-route-cover-forward-mobile}html[data-homelab-transition=return-out] .homelab-route-surface{animation-name:homelab-route-cover-reverse-mobile}html[data-homelab-transition=in-reveal] .homelab-route-surface{animation-name:homelab-route-reveal-forward-mobile}html[data-homelab-transition=return-reveal] .homelab-route-surface{animation-name:homelab-route-reveal-reverse-mobile}html[data-homelab-transition=out] .homelab-route-surface__sweep,html[data-homelab-transition=in-reveal] .homelab-route-surface__sweep{animation-name:homelab-route-sweep-forward-mobile}html[data-homelab-transition=return-out] .homelab-route-surface__sweep,html[data-homelab-transition=return-reveal] .homelab-route-surface__sweep{animation-name:homelab-route-sweep-reverse-mobile}html[data-homelab-transition=out] .homelab__canvas,html[data-homelab-transition=return-in] .homelab__canvas{transform-origin:50% 68%;transform:translateY(1.4vh)scale(1.035)}html[data-homelab-transition=out] .homelab__copy,html[data-homelab-transition=return-in] .homelab__copy{transform:translateY(10px)}html[data-homelab-transition=in] .homelab-page__rack-art{transform:translateY(1.2vh)scale(1.025)}html[data-homelab-transition=in-reveal] .homelab-page__rack-art{animation-name:homelab-page-rack-in-mobile}html[data-homelab-transition=return-out] .homelab-page__rack-art{animation-name:homelab-page-rack-out-mobile}html[data-homelab-transition=return-reveal] .homelab__canvas{animation-name:homelab-home-rack-return-mobile}@keyframes homelab-route-cover-forward-mobile{0%,12%{clip-path:inset(100% 0 0)}to{clip-path:inset(0)}}@keyframes homelab-route-cover-reverse-mobile{0%,12%{clip-path:inset(0 0 100%)}to{clip-path:inset(0)}}@keyframes homelab-route-reveal-forward-mobile{0%,10%{clip-path:inset(0)}to{clip-path:inset(0 0 100%)}}@keyframes homelab-route-reveal-reverse-mobile{0%,10%{clip-path:inset(0)}to{clip-path:inset(100% 0 0)}}@keyframes homelab-route-sweep-forward-mobile{0%,8%{opacity:0;transform:translateY(calc(100vh + 20%))}18%,82%{opacity:.82}to{opacity:0;transform:translateY(-55%)}}@keyframes homelab-route-sweep-reverse-mobile{0%,8%{opacity:0;transform:translateY(-55%)}18%,82%{opacity:.82}to{opacity:0;transform:translateY(calc(100vh + 20%))}}@keyframes homelab-page-rack-in-mobile{0%{opacity:.76;transform:translateY(1.2vh)scale(1.025)}to{opacity:var(--rack-opacity,1);transform:none}}@keyframes homelab-page-rack-out-mobile{0%{opacity:var(--rack-opacity,1);transform:none}to{opacity:.76;transform:translateY(1.2vh)scale(1.025)}}@keyframes homelab-home-rack-return-mobile{0%{filter:saturate(.72)contrast(1.06)brightness(1.04);transform:translateY(1.4vh)scale(1.035)}to{filter:none;transform:none}}}@media (prefers-reduced-motion:reduce){:root{--homelab-route-duration:1ms;--homelab-route-reveal-duration:.14s}html[data-homelab-transition=out] .homelab-route-surface,html[data-homelab-transition=return-out] .homelab-route-surface{animation:1ms both homelab-route-reduced-cover}html[data-homelab-transition=in-reveal] .homelab-route-surface,html[data-homelab-transition=return-reveal] .homelab-route-surface{animation:.14s ease-out both homelab-route-reduced-reveal}html[data-homelab-transition=out] .homelab__canvas,html[data-homelab-transition=return-in] .homelab__canvas,html[data-homelab-transition=in] .homelab-page__rack-art,html[data-homelab-transition=return-out] .homelab-page__rack-art{filter:none;transition:none;animation:none;transform:none}html[data-homelab-transition=out] .homelab__copy,html[data-homelab-transition=return-out] .homelab-page__header,html[data-homelab-transition=return-out] .homelab-page__marker,html[data-homelab-transition=return-out] .homelab-page__copy-deck,html[data-homelab-transition=return-out] .homelab-page__scroll-cue,html[data-homelab-transition=return-out] .homelab-page__progress,html[data-homelab-transition=return-out] .homelab-page__footer{transition:none;transform:none}.homelab-route-surface__sweep,.homelab-route-surface__signal{display:none}.homelab-route-surface__grid{animation:none!important}@keyframes homelab-route-reduced-cover{0%{opacity:0;clip-path:none}to{opacity:1;clip-path:none}}@keyframes homelab-route-reduced-reveal{0%{opacity:1;clip-path:none}to{opacity:0;clip-path:none}}}
