@font-face{font-family:Doto;src:url(https://fonts.gstatic.com/s/doto/v3/t5t6IRMbNJ6TQG7Il_EKPqP9zTnvqouBWhoxrW5O.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}:root{--font-display: "Doto", ui-monospace, monospace;--font-body: "Doto", ui-monospace, monospace;--text-size: 1.25rem;--pixel: calc(var(--text-size) / 10);--cell: calc(var(--pixel) * 4);--space-3xs: var(--cell);--space-2xs: calc(var(--cell) * 2);--space-xs: calc(var(--cell) * 3);--space-sm: calc(var(--cell) * 4);--space-md: calc(var(--cell) * 6);--space-lg: calc(var(--cell) * 8);--space-xl: calc(var(--cell) * 12);--space-2xl: calc(var(--cell) * 16);--text-xs: var(--text-size);--text-sm: var(--text-size);--text-base: var(--text-size);--text-md: var(--text-size);--text-lg: var(--text-size);--text-display: var(--text-size);--line-body: calc(var(--cell) * 4);--line-display: var(--line-body);--color-paper: oklch(87% .009 92);--color-panel: oklch(88% .009 92);--color-panel-alpha: oklch(88% .009 92 / .96);--color-ink: oklch(17% .01 80);--color-muted: oklch(30% .01 82);--color-rule: oklch(28% .011 82 / .58);--color-pixel-gap: oklch(21% .01 82 / .11);--color-cell-gap: oklch(21% .01 82 / .18);--color-cell-idle: oklch(28% .011 82 / .065);--color-mask-dot: oklch(28% .011 82 / .08);--color-backlight-core: oklch(31% .025 82 / .14);--color-image-scan: oklch(24% .025 82 / .38);--color-transparent: transparent;--color-glow: var(--color-transparent);--color-focus: oklch(25% .035 58);--color-selection: oklch(72% .018 88);--color-success: oklch(43% .09 145);--color-error: oklch(43% .12 28);--rule-hair: 1px;--rule-step: var(--pixel);--rule-dot-radius: calc(var(--pixel) * .25);--rule-dot-edge: calc(var(--pixel) * .3);--surface-step: calc(var(--pixel) * 2);--surface-dot-radius: calc(var(--pixel) * .45);--surface-dot-edge: calc(var(--pixel) * .55);--trail-pixel-step: var(--pixel);--trail-square-size: calc(var(--pixel) * .5);--rule-dot: radial-gradient( circle at center, var(--color-rule) 0 var(--rule-dot-radius), var(--color-transparent) var(--rule-dot-edge) );--surface-dot: radial-gradient( circle at center, var(--color-mask-dot) 0 var(--surface-dot-radius), var(--color-transparent) var(--surface-dot-edge) );--page-gutter: calc(var(--cell) * 3);--content-width: 80rem;--read-width: 66ch;--dur-micro: .12s;--dur-short: .21s;--dur-page-backlight: .64s;--dur-page-row: .5s;--dur-image-acquire: 1.8s;--dur-page-blackout: 60ms;--dur-page-stagger: 60ms;--ease-board: steps(1, end);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in: cubic-bezier(.7, 0, .84, 0);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--backlight-rest-opacity: .08}[data-theme=dark]{--color-paper: oklch(12.5% .018 72);--color-panel: oklch(15.5% .022 72);--color-panel-alpha: oklch(15.5% .022 72 / .94);--color-ink: oklch(83% .145 78);--color-muted: oklch(72% .105 78);--color-rule: oklch(76% .12 78 / .78);--color-pixel-gap: oklch(5% .01 72 / .34);--color-cell-gap: oklch(5% .01 72 / .56);--color-cell-idle: oklch(74% .12 78 / .07);--color-mask-dot: oklch(74% .12 78 / .09);--color-backlight-core: oklch(80% .15 78 / .28);--color-image-scan: oklch(88% .17 82 / .72);--color-glow: var(--color-transparent);--color-focus: oklch(90% .13 87);--color-selection: oklch(40% .1 74);--color-success: oklch(73% .13 145);--color-error: oklch(71% .16 28);--backlight-rest-opacity: .16}*,*:before,*:after{box-sizing:border-box}html,body,#root{min-width:0;min-height:100%}html,body{overflow-x:clip}html[data-mobile-scroll-lock],html[data-mobile-scroll-lock] body{height:100%;overflow:hidden;overscroll-behavior:none}html{background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);font-feature-settings:"liga" 0,"calt" 0;font-synthesis:none;font-variant-ligatures:none;font-variation-settings:"wght" 400;text-rendering:geometricPrecision}body{margin:0;background:var(--color-paper);color:var(--color-ink);font-size:var(--text-base);line-height:var(--line-body)}.static-crawl-content{display:flex;width:min(100%,52rem);min-height:100dvh;margin-inline:auto;padding:var(--space-lg) var(--page-gutter);flex-direction:column;justify-content:center;gap:var(--space-sm)}.static-crawl-content h1,.static-crawl-content p{max-width:var(--read-width);margin:0;font:inherit}.static-crawl-content nav{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}h1,h2,h3,p,a,button,time{font-size:inherit}button,a{color:inherit;font:inherit}a{text-decoration:none}button{border:0}::selection{background:var(--color-selection);color:var(--color-ink)}.station-display{position:relative;min-height:100dvh;isolation:isolate;background-color:var(--color-paper);color:var(--color-ink)}.station-display:before{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background-image:var(--surface-dot);background-position:0 0;background-size:var(--surface-step) var(--surface-step);content:"";pointer-events:none}.station-cursor-trail{position:fixed;inset-block-start:0;inset-inline-start:0;z-index:4;display:block;background-color:var(--color-transparent);color:var(--color-ink);mix-blend-mode:screen;opacity:.88;pointer-events:none}[data-game-effects-suspended] .station-cursor-trail{display:none}.page-shell{display:flex;height:100dvh;min-height:0;align-items:center;padding-inline:var(--page-gutter);overflow:hidden}.content-panel{position:relative;display:flex;width:min(100%,var(--content-width));min-width:0;height:var(--panel-viewport-height, calc(100dvh - (var(--cell) * 4)));min-height:0;margin-inline:auto;flex-direction:column;background-color:var(--color-paper)}[data-route="/"]{height:var(--panel-viewport-height, calc(100dvh - (var(--cell) * 4)));min-height:0;overflow:hidden}[data-route="/"] .page-main--home{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}[data-route="/"] .page-main--home::-webkit-scrollbar{display:none}.content-panel:before,.content-panel:after{position:absolute;inset-block:0;z-index:2;width:var(--rule-step);background-image:var(--rule-dot);background-position:center top;background-repeat:repeat-y;background-size:var(--rule-step) var(--rule-step);content:"";pointer-events:none}.content-panel:before{inset-inline-start:0}.content-panel:after{inset-inline-end:0}.site-header,.site-footer{position:relative;z-index:5;flex:0 0 auto;padding-inline:var(--page-gutter);background-color:var(--color-paper)}.site-header{padding-inline:calc(var(--cell) * 2);padding-block:var(--space-xs);background-image:var(--rule-dot);background-position:left bottom;background-repeat:repeat-x;background-size:var(--rule-step) var(--rule-step)}[data-game-transitioning=true] .site-header a,[data-game-transitioning=true] .site-footer a{pointer-events:none}.site-nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--space-3xs) 0;font-size:var(--text-xs);line-height:var(--line-body)}.footer-socials{display:inline-flex;flex:0 0 auto;flex-wrap:wrap;align-items:center;gap:0}.site-nav a,.site-footer a,.external-title,.about-copy a,.work-meta a{white-space:nowrap}.site-nav a:not(:last-child):after,.footer-socials a:not(:last-child):after{display:inline-block;margin-inline:var(--space-3xs);color:var(--color-muted);content:"-" / ""}.footer-socials a:not(:last-child):after{margin-inline:var(--space-3xs)}.nav-home-link{display:inline-flex;align-items:center;justify-content:center}.nav-spiral{display:block;width:calc(var(--cell) * 3);height:calc(var(--cell) * 3);color:currentColor;overflow:visible;transform-origin:center}@keyframes nav-spiral-spin{to{transform:rotate(1turn)}}.nav-spiral .home-logo__trace{stroke-dashoffset:0;animation:none}.page-main{position:relative;z-index:5;width:min(100%,52rem);min-width:0;max-width:100%;margin-inline:auto;flex:1 1 auto;min-height:0;padding:var(--space-sm) var(--page-gutter) var(--space-lg);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}.page-main::-webkit-scrollbar{display:none}.page-main--home{display:flex;min-height:0;align-items:center;justify-content:center}.page-main--about{width:min(100%,68rem);z-index:auto}.page-main--media{width:min(100%,80rem);z-index:auto;padding:0;overflow:hidden}.media-viewer{position:relative;display:block;height:100%;min-height:0}.media-viewer__controls{position:absolute;inset-block-start:7%;inset-inline-start:7%;z-index:1004;display:block;width:86%;height:86%;min-width:0;padding:0;pointer-events:none}.media-viewer__controls p{margin:0}.media-viewer__stage{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;min-width:0;min-height:0;margin:0;place-items:center;overflow:hidden;cursor:grab;touch-action:pan-y}.media-viewer__stage:active{cursor:grabbing}.media-viewer__image{position:absolute;inset:auto;z-index:1001;display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;opacity:0;user-select:none;-webkit-user-select:none}.media-viewer__image--current{inset-block-start:7%;inset-inline-start:7%;z-index:1002;width:86%;height:86%;object-fit:fill}.media-viewer__acquire{position:absolute;inset-block-start:7%;inset-inline-start:7%;z-index:1003;display:block;width:86%;height:86%;overflow:hidden}.media-viewer__acquire .station-image-acquire,.media-viewer__acquire .station-image-acquire img,.media-viewer__acquire .station-image-acquire__canvas{display:block;width:100%;height:100%}.media-viewer__acquire .station-image-acquire{background-color:transparent}.media-viewer__acquire .station-image-acquire img{object-fit:fill}.media-viewer__image--preview{position:absolute;inset-block-start:16%;z-index:1001;width:35%;height:68%;object-fit:cover;opacity:.28}.media-viewer[data-transition=bridging] .media-viewer__image--preview{opacity:.46}.media-viewer__preview-acquire{display:block;width:100%;height:100%;overflow:hidden}.media-viewer__preview-button{margin:0;padding:0;overflow:hidden;border:0;background:transparent;color:inherit;cursor:pointer}.media-viewer__preview-acquire .station-image-acquire,.media-viewer__preview-acquire .station-image-acquire img,.media-viewer__preview-acquire .station-image-acquire__canvas{display:block;width:100%;height:100%}.media-viewer__preview-acquire .station-image-acquire{background-color:transparent}.media-viewer__preview-acquire .station-image-acquire img{object-fit:cover}.media-viewer__preview-photo{display:block;width:100%;height:100%;object-fit:cover;animation:media-preview-refresh .18s ease-out both}.media-preview-bridge,.media-preview-bridge__photo,.media-preview-bridge__pixels,.media-preview-bridge__shutter{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%}.media-preview-bridge{overflow:hidden;contain:layout paint style;pointer-events:none}.media-preview-bridge__photo{object-fit:cover;transform:translateZ(0);backface-visibility:hidden;will-change:opacity}.media-preview-bridge__photo--outgoing{z-index:1;animation:media-bridge-photo-out .7s linear both}.media-preview-bridge__photo--incoming{z-index:2;animation:media-bridge-photo-in .7s linear both}.media-preview-bridge__shutter{z-index:3;background:var(--color-paper);animation:media-bridge-shutter .7s linear both}.media-preview-bridge__pixels{z-index:4;image-rendering:pixelated;opacity:0;-webkit-mask-image:radial-gradient(circle at center,#000 0 var(--rule-dot-radius),transparent var(--rule-dot-edge));mask-image:radial-gradient(circle at center,#000 0 var(--rule-dot-radius),transparent var(--rule-dot-edge));-webkit-mask-size:var(--trail-pixel-step) var(--trail-pixel-step);mask-size:var(--trail-pixel-step) var(--trail-pixel-step);animation:media-bridge-pixel-pulse .18s linear var(--pixel-delay) both}.media-preview-bridge__pixels--incoming{z-index:5}@keyframes media-preview-refresh{0%{opacity:.62}to{opacity:1}}.media-pixel-bridge{--media-shift: var(--pixel);position:absolute;top:0;right:0;bottom:0;left:0;z-index:1003;display:block;overflow:hidden;contain:layout paint style;pointer-events:none}.media-pixel-bridge.is-previous{--media-shift: calc(var(--pixel) * -1)}.media-pixel-bridge__photo,.media-pixel-bridge__pixels{position:absolute;display:block;transform:translateZ(0);backface-visibility:hidden;will-change:opacity,transform}.media-pixel-bridge__photo{object-fit:fill}.media-pixel-bridge__photo--outgoing{z-index:1;animation:media-bridge-photo-out .7s linear both}.media-pixel-bridge__photo--incoming{z-index:2;animation:media-bridge-photo-in .7s linear both}.media-pixel-bridge__shutter{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;display:block;background:var(--color-paper);opacity:0;animation:media-bridge-shutter .7s linear both}.media-pixel-bridge__pixels{image-rendering:pixelated;background:transparent;opacity:0;-webkit-mask-image:radial-gradient(circle at center,#000 0 var(--rule-dot-radius),transparent var(--rule-dot-edge));mask-image:radial-gradient(circle at center,#000 0 var(--rule-dot-radius),transparent var(--rule-dot-edge));-webkit-mask-position:0 0;mask-position:0 0;-webkit-mask-size:var(--trail-pixel-step) var(--trail-pixel-step);mask-size:var(--trail-pixel-step) var(--trail-pixel-step);animation:media-bridge-pixel-pulse .18s linear var(--pixel-delay) both}.media-pixel-bridge__pixels--outgoing{z-index:4}.media-pixel-bridge__pixels--incoming{z-index:5}@keyframes media-bridge-photo-out{0%,12%{opacity:1;transform:translateZ(0) scale(1)}40%{opacity:.52}54%,to{opacity:0;transform:translate3d(calc(var(--media-shift) * -1),0,0) scale(1.002)}}@keyframes media-bridge-photo-in{0%,42%{opacity:0;transform:translate3d(var(--media-shift),0,0) scale(1.002)}62%{opacity:.54}88%,to{opacity:1;transform:translateZ(0) scale(1)}}@keyframes media-bridge-shutter{0%,4%{opacity:0}14%,80%{opacity:1}96%,to{opacity:0}}@keyframes media-bridge-pixel-pulse{0%{opacity:0}32%{opacity:1}68%{opacity:1}to{opacity:0}}.media-viewer__image--previous{inset-inline-start:-5%}.media-viewer__image--next{inset-inline-end:-5%}.media-viewer__image.is-loaded{opacity:1}.media-viewer__counter{position:absolute;inset-block-start:0;inset-inline-start:0;display:flex;min-width:9ch;min-height:44px;align-items:center;padding:0 var(--space-3xs);padding-inline-start:var(--space-2xs);background:transparent;font-variant-numeric:tabular-nums}.media-viewer__buttons{position:absolute;inset-inline-end:0;inset-block-end:0;display:flex;width:max-content;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-3xs);pointer-events:auto}.media-viewer__buttons button{min-width:44px;min-height:44px;padding:0 var(--space-3xs);background:transparent;color:var(--color-ink);cursor:pointer;white-space:nowrap}.media-viewer__buttons button:active{opacity:.62}.media-viewer__buttons button:focus-visible,.media-viewer__preview-button:focus-visible{outline:none;filter:drop-shadow(0 0 var(--pixel) var(--color-ink))}.media-viewer__buttons button:disabled{cursor:not-allowed;opacity:.5}[data-route="/media"] .page-main>*{opacity:1;transform:none;animation:none}.home-intro{display:flex;min-width:0;flex-direction:column;align-items:center;width:min(100%,42rem);gap:var(--space-sm);padding-block:var(--space-sm);text-align:center}.home-intro>*{--route-step: 1;opacity:0;transform:translate3d(0,var(--cell),0);animation:station-content-lock var(--dur-page-row) var(--ease-board) both;animation-delay:calc(var(--dur-page-blackout) + (var(--route-step) * var(--dur-page-stagger)))}.home-intro>:nth-child(2){--route-step: 2}.home-intro>:nth-child(3){--route-step: 3}.home-intro>:nth-child(4){--route-step: 4}.home-intro>:nth-child(5){--route-step: 5}.home-intro h1,.home-intro p,.content-section h1,.content-section h2,.work-intro h1,.work-intro p,.about-copy p{margin:0}.home-intro h1{min-width:0;overflow-wrap:anywhere;font-family:var(--font-display);font-size:var(--text-base);font-weight:400;letter-spacing:0;line-height:var(--line-body)}.home-logo{display:block;width:calc(var(--cell) * 20);height:calc(var(--cell) * 20);flex:0 0 auto;color:var(--color-ink);overflow:visible}.home-logo-button{display:block;width:calc(var(--cell) * 20);height:calc(var(--cell) * 20);padding:0;flex:0 0 auto;background:none;color:var(--color-ink);cursor:pointer}.home-logo-button .home-logo{width:100%;height:100%}.home-logo__trace{stroke-dasharray:1;stroke-dashoffset:-1;animation:station-spiral-in 1.48s steps(96,end) .18s both}@keyframes station-spiral-in{0%{stroke-dashoffset:-1}to{stroke-dashoffset:0}}.home-logo.is-exiting .home-logo__trace{animation:station-spiral-out .9s steps(96,end) both}@keyframes station-spiral-out{0%{stroke-dashoffset:0}to{stroke-dashoffset:-1}}.snake-modal{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;min-width:0;min-height:0;padding:0;background-color:var(--color-transparent)}@keyframes snake-ui-fade-in{0%{opacity:0}to{opacity:1}}.snake-game{position:relative;display:flex;width:100%;min-width:0;min-height:0;flex-direction:column;background-color:var(--color-transparent)}.snake-game__header,.snake-game__footer{position:relative;z-index:5;display:flex;flex:0 0 auto;align-items:center;gap:var(--space-xs);padding:var(--space-xs) calc(var(--cell) * 2);background-color:var(--color-paper)}.snake-game__header>*,.snake-game__stage,.snake-game__footer>*{opacity:0;animation:snake-ui-fade-in .46s var(--ease-out) both}.snake-game__header{background-image:var(--rule-dot);background-position:left bottom;background-repeat:repeat-x;background-size:var(--rule-step) var(--rule-step)}.snake-game__header h2,.snake-game__header p,.snake-game__footer p{margin:0;font:inherit}.snake-game__header h2{margin-inline-end:auto}.snake-game__header button,.snake-game__controls button,.snake-game__gamepad-pause,.snake-game__restart{min-width:42px;min-height:42px;padding:var(--space-3xs) var(--space-2xs);background:none;color:var(--color-ink);cursor:pointer}.snake-game__header button{padding-block:0}.snake-game__countdown{position:absolute;inset-block-start:calc(50% - var(--snake-countdown-offset, var(--space-lg)));inset-inline-start:50%;z-index:2;min-width:calc(var(--cell) * 6);padding:var(--space-2xs);background-color:var(--color-paper);color:var(--color-ink);text-align:center;transform:translate(-50%,-50%)}.snake-game__stage{position:relative;min-height:calc(var(--cell) * 22);flex:1 1 auto;overflow:hidden;background-color:var(--color-transparent)}.snake-game__canvas{position:absolute;top:0;right:0;bottom:0;left:0;display:block;color:var(--color-ink);image-rendering:pixelated}.snake-game__restart{position:absolute;inset-block-start:50%;inset-inline-start:50%;z-index:2;white-space:nowrap;transform:translate(-50%,-50%)}.snake-game__footer{justify-content:space-between;background-image:var(--rule-dot);background-position:left top;background-repeat:repeat-x;background-size:var(--rule-step) var(--rule-step)}.snake-game__controls{display:inline-flex;flex:0 0 auto;gap:var(--space-3xs)}.snake-game__gamepad{display:none}[data-theme=dark] .home-logo{filter:drop-shadow(0 0 var(--pixel) var(--color-ink))}.station-typewriter,.station-scramble{white-space:pre-wrap}.station-scramble--cycling{display:inline-block;min-width:var(--cycle-width);text-align:center}.station-typewriter__cursor{display:inline-block;width:var(--pixel);height:calc(var(--text-size) * .72);margin-inline-start:var(--pixel);background-color:currentColor;vertical-align:-.08em;will-change:opacity}@keyframes station-backlight{0%{opacity:var(--station-pulse-opacity-0);transform:var(--station-pulse-transform-0)}12%{opacity:var(--station-pulse-opacity-12);transform:var(--station-pulse-transform-12)}26%{opacity:var(--station-pulse-opacity-26);transform:var(--station-pulse-transform-26)}38%{opacity:var(--station-pulse-opacity-38);transform:var(--station-pulse-transform-38)}52%{opacity:var(--station-pulse-opacity-52);transform:var(--station-pulse-transform-52)}68%{opacity:var(--station-pulse-opacity-68);transform:var(--station-pulse-transform-68)}82%{opacity:var(--station-pulse-opacity-82);transform:var(--station-pulse-transform-82)}to{opacity:var(--station-pulse-opacity-100);transform:var(--station-pulse-transform-100)}}@keyframes station-content-lock{0%{opacity:0;transform:translate3d(0,var(--cell),0)}16%{opacity:.18;transform:translate3d(0,var(--cell),0)}34%{opacity:.42;transform:translate3d(0,calc(var(--cell) * .5),0)}48%{opacity:.36;transform:translate3d(0,calc(var(--cell) * .5),0)}64%{opacity:.68;transform:translate3d(0,calc(var(--cell) * .5),0)}82%{opacity:.9;transform:none}to{opacity:1;transform:none}}.page-main>*{--route-step: 0;opacity:0;transform:translate3d(0,var(--cell),0);animation:station-content-lock var(--dur-page-row) var(--ease-board) both;animation-delay:calc(var(--dur-page-blackout) + (var(--route-step) * var(--dur-page-stagger)))}.site-header,.site-footer{--station-pulse-opacity-0: 1;--station-pulse-opacity-12: 1;--station-pulse-opacity-26: .9;--station-pulse-opacity-38: .9;--station-pulse-opacity-52: 1;--station-pulse-opacity-68: 1;--station-pulse-opacity-82: 1;--station-pulse-opacity-100: 1;--station-pulse-transform-0: none;--station-pulse-transform-12: none;--station-pulse-transform-26: none;--station-pulse-transform-38: none;--station-pulse-transform-52: none;--station-pulse-transform-68: none;--station-pulse-transform-82: none;--station-pulse-transform-100: none;opacity:1;transform:none;animation:station-backlight calc(var(--dur-page-backlight) * 1.25) var(--ease-board) both}.page-main>:nth-child(1){--route-step: 1}.page-main>:nth-child(2){--route-step: 2}.page-main>:nth-child(3){--route-step: 3}.page-main>:nth-child(4){--route-step: 4}.page-main>:nth-child(5){--route-step: 5}.page-main--home>.home-intro{opacity:1;transform:none;animation:none}@keyframes station-home-power{0%,14%{opacity:0;transform:translate3d(0,var(--cell),0)}22%{opacity:.24;transform:translate3d(0,calc(var(--cell) * .5),0)}30%{opacity:.06;transform:translate3d(0,calc(var(--cell) * .5),0)}48%{opacity:.72;transform:none}58%{opacity:.38;transform:none}76%{opacity:.92;transform:none}to{opacity:1;transform:none}}@keyframes station-about-scan{0%,12%{clip-path:inset(0 0 100% 0);opacity:0}28%{clip-path:inset(0 0 68% 0);opacity:.28}48%{clip-path:inset(0 0 38% 0);opacity:.64}62%{clip-path:inset(0 0 38% 0);opacity:.34}82%{clip-path:inset(0 0 0 0);opacity:.88}to{clip-path:inset(0 0 0 0);opacity:1}}@keyframes station-work-register{0%,16%{clip-path:inset(0 100% 0 0);opacity:0}34%{clip-path:inset(0 62% 0 0);opacity:.44}54%{clip-path:inset(0 18% 0 0);opacity:.84}66%{clip-path:inset(0 18% 0 0);opacity:.46}84%,to{clip-path:inset(0 0 0 0);opacity:1}}@keyframes station-project-sector{0%,18%{clip-path:inset(48% 46% 48% 46%);opacity:0;transform:translate3d(var(--sector-shift),0,0)}34%{clip-path:inset(30% 28% 30% 28%);opacity:.5;transform:translate3d(var(--sector-shift),0,0)}48%{clip-path:inset(12% 8% 12% 8%);opacity:.84;transform:none}58%{clip-path:inset(22% 0 22% 0);opacity:.3;transform:none}78%,to{clip-path:inset(0 0 0 0);opacity:1;transform:none}}@keyframes station-skills-memory{0%,20%{clip-path:inset(48% 0 48% 0);opacity:0}38%{clip-path:inset(34% 0 34% 0);opacity:.36}52%{clip-path:inset(18% 0 18% 0);opacity:.82}64%{clip-path:inset(26% 0 26% 0);opacity:.28}82%,to{clip-path:inset(0 0 0 0);opacity:1}}[data-route="/"] .home-intro>*{animation-name:station-home-power;animation-duration:.76s}[data-route="/"] .home-logo{animation-duration:.98s}[data-route="/about"] .page-main>*,[data-route="/work"] .page-main>*,[data-route="/projects"] .page-main>*,[data-route="/skills"] .page-main>*{opacity:1;transform:none;animation:none}[data-route="/about"] .about-copy>*{--boot-step: 0;clip-path:inset(0 0 100% 0);opacity:0;animation:station-about-scan .52s steps(6,end) both;animation-delay:calc(.1s + (var(--boot-step) * 54ms))}[data-route="/about"] .about-copy>:nth-child(2){--boot-step: 1}[data-route="/about"] .about-copy>:nth-child(3){--boot-step: 2}[data-route="/about"] .about-copy>:nth-child(4){--boot-step: 3}[data-route="/about"] .about-copy>:nth-child(5){--boot-step: 4}[data-route="/about"] .about-copy>:nth-child(6){--boot-step: 5}[data-route="/about"] .about-copy>:nth-child(7){--boot-step: 6}[data-route="/about"] .about-copy>:nth-child(8){--boot-step: 7}[data-route="/about"] .about-copy>:nth-child(9){--boot-step: 8}[data-route="/about"] .about-copy>:nth-child(10){--boot-step: 9}[data-route="/about"] .about-copy>:nth-child(11){--boot-step: 10}[data-route="/about"] .about-copy>:nth-child(12){--boot-step: 11}[data-route="/about"] .about-copy>:nth-child(13){--boot-step: 12}[data-route="/about"] .about-copy>:nth-child(14){--boot-step: 13}[data-route="/about"] .about-copy>:nth-child(15){--boot-step: 14}[data-route="/work"] .work-intro,[data-route="/work"] .content-section h2,[data-route="/work"] .record{--boot-step: 0;clip-path:inset(0 100% 0 0);opacity:0;animation:station-work-register .62s steps(5,end) both;animation-delay:calc(80ms + (var(--boot-step) * 76ms))}[data-route="/work"] .content-section:nth-child(2) h2{--boot-step: 1}[data-route="/work"] .record-list .record:nth-child(1){--boot-step: 2}[data-route="/work"] .record-list .record:nth-child(2){--boot-step: 3}[data-route="/work"] .record-list .record:nth-child(3){--boot-step: 4}[data-route="/work"] .record-list .record:nth-child(4){--boot-step: 5}[data-route="/work"] .record-list .record:nth-child(5){--boot-step: 6}[data-route="/work"] .content-section:nth-child(3) h2{--boot-step: 7}[data-route="/work"] .content-section:nth-child(3) .record{--boot-step: 8}[data-route="/projects"] .projects-section h1,[data-route="/projects"] .project-record{--boot-bank: 0;--sector-shift: var(--cell);clip-path:inset(48% 46% 48% 46%);opacity:0;animation:station-project-sector .72s steps(6,end) both;animation-delay:calc(.1s + (var(--boot-bank) * .13s))}[data-route="/projects"] .project-record:nth-child(2n){--sector-shift: calc(var(--cell) * -1);animation-duration:.86s}[data-route="/projects"] .project-record:nth-child(3n+2){--boot-bank: 1}[data-route="/projects"] .project-record:nth-child(3n){--boot-bank: 2}[data-route="/skills"] .skills>*{clip-path:inset(48% 0 48% 0);opacity:0;animation:station-skills-memory .76s steps(6,end) both}[data-route="/skills"] .skills p{animation-delay:.18s;animation-duration:.98s}.portrait{position:relative;z-index:1001;width:100%;min-width:0;max-width:100%;margin:0 0 var(--space-sm)}.station-media{position:relative;min-width:0;max-width:100%;overflow:hidden;padding:0;background:var(--color-paper)}.station-image-acquire{position:relative;z-index:1001;display:block;overflow:hidden;background-color:var(--color-paper);isolation:isolate}.station-image-acquire img{position:relative;z-index:0;opacity:0}.station-image-acquire[data-state=acquiring] img,.station-image-acquire[data-state=departing] img,.station-image-acquire[data-state=complete] img{opacity:1}.station-image-acquire__canvas{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:block;background-color:var(--color-paper);color:var(--color-ink);opacity:1;pointer-events:none}.station-image-acquire[data-state=complete] .station-image-acquire__canvas{opacity:0;transition:opacity var(--dur-micro) var(--ease-out)}.portrait img{display:block;width:100%;height:auto}.content-section,.work-intro{margin-block-end:var(--space-lg)}.page-main>:last-child{margin-block-end:0}.content-section h1,.content-section h2,.work-intro h1{min-width:0;margin-block-end:var(--space-sm);overflow-wrap:anywhere;font-family:var(--font-display);font-size:var(--text-base);font-weight:400;letter-spacing:0;line-height:var(--line-body)}.about-copy{position:relative;z-index:5;display:flex;flex-direction:column;gap:var(--space-sm);font-size:var(--text-sm);line-height:var(--line-body)}.about-copy h1{margin-block-end:0;font-size:var(--text-md)}.about-copy h2{margin-block:var(--space-2xs) calc(var(--space-2xs) * -1);font-size:var(--text-sm)}.about-copy p{max-width:var(--read-width);color:var(--color-muted)}.about-copy a,.work-meta a{color:var(--color-ink);text-decoration:underline;text-decoration-style:dotted;text-decoration-thickness:var(--rule-hair);text-underline-offset:2px}.work-intro{display:flex;flex-direction:column;gap:var(--space-3xs);padding-block-end:var(--space-sm);background-image:var(--rule-dot);background-position:left bottom;background-repeat:repeat-x;background-size:var(--rule-step) var(--rule-step)}.work-intro h1{margin-block-end:0;font-size:var(--text-md)}.work-tagline,.work-meta,.record,.skills{font-size:var(--text-sm)}.work-tagline{line-height:var(--line-body)}.work-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3xs);color:var(--color-muted);line-height:var(--line-body)}.record-list{display:flex;flex-direction:column;background-image:var(--rule-dot);background-position:left top;background-repeat:repeat-x;background-size:var(--rule-step) var(--rule-step)}.record{display:flex;flex-direction:column;gap:var(--space-3xs);padding-block:var(--space-2xs);background-image:var(--rule-dot);background-position:left bottom;background-repeat:repeat-x;background-size:var(--rule-step) var(--rule-step);line-height:var(--line-body)}.content-section>.record{background-image:var(--rule-dot),var(--rule-dot);background-position:left top,left bottom;background-repeat:repeat-x,repeat-x;background-size:var(--rule-step) var(--rule-step)}.record__top{display:flex;width:100%;min-width:0;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:var(--space-3xs)}.record__top time{flex:0 0 auto;color:var(--color-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.external-title{display:inline-flex;min-width:0;align-items:center;gap:var(--space-3xs);font-weight:700;letter-spacing:0}.external-title span{min-width:0;overflow-wrap:anywhere}.external-title svg{flex:0 0 auto}.record p,.skills p{margin:0;color:var(--color-muted)}.skills{line-height:var(--line-body)}.project-record{gap:var(--space-3xs);padding-block:var(--space-xs)}.project-record__type{font-size:var(--text-sm)}.project-record__description{max-width:var(--read-width);font-size:var(--text-xs);line-height:var(--line-body)}.site-footer{display:flex;align-items:center;justify-content:center;gap:var(--space-2xs);padding-inline:calc(var(--cell) * 2);padding-block:var(--space-xs);background-image:var(--rule-dot);background-position:left top;background-repeat:repeat-x;background-size:var(--rule-step) var(--rule-step)}.site-nav a:active,.site-footer a:active,.external-title:active,.about-copy a:active,.work-meta a:active{opacity:.62}.site-nav a[aria-disabled=true],.site-footer a[aria-disabled=true],.external-title[aria-disabled=true]{cursor:not-allowed;opacity:.5;pointer-events:none}:focus-visible{outline:var(--pixel) dotted var(--color-focus);outline-offset:2px}@media(hover:hover)and (pointer:fine){.station-cursor-trail{display:block}.site-nav a:hover,.site-footer a:hover,.external-title:hover,.about-copy a:hover,.work-meta a:hover{text-decoration:underline;text-decoration-style:dotted;text-decoration-thickness:var(--rule-hair);text-underline-offset:2px}.site-nav .nav-home-link:hover{text-decoration:none}.nav-home-link:hover .nav-spiral,.nav-home-link:focus-visible .nav-spiral{animation:nav-spiral-spin .72s steps(12,end)}.home-logo-button:hover,.snake-game__header button:hover,.snake-game__controls button:hover,.snake-game__restart:hover{filter:drop-shadow(0 0 var(--pixel) var(--color-ink))}}@media(min-width:40rem){:root{--page-gutter: calc(var(--cell) * 4)}.site-header,.site-footer,.snake-game__header,.snake-game__footer{padding-inline:var(--page-gutter)}.site-nav{display:flex;flex-wrap:wrap;gap-inline:0;font-size:var(--text-sm)}.page-main{padding:var(--space-lg) var(--page-gutter) var(--space-xl)}.page-main--media{padding:0}.portrait{margin-block-end:var(--space-lg)}.content-section,.work-intro{margin-block-end:var(--space-xl)}.record__top{flex-direction:row;align-items:flex-start;justify-content:space-between;gap:var(--space-sm)}.footer-socials{gap:0}.project-record__description{font-size:var(--text-sm)}}@media(min-width:56rem){.page-main--about{display:grid;align-items:start;grid-template-columns:minmax(18rem,.9fr) minmax(24rem,1.1fr);gap:var(--space-lg)}.portrait{position:sticky;inset-block-start:var(--space-lg);margin-block-end:0}}@media(max-width:40rem){.page-shell{padding-inline:calc(var(--cell) * 3)}.content-panel{border-inline:0}.record__top{align-items:flex-start;text-align:start}.media-viewer__buttons{display:flex;width:max-content;gap:0}.media-viewer__buttons button{min-width:0;padding-inline:0}.media-viewer__counter{padding-inline:0;padding-inline-start:var(--space-2xs);transform:translateY(calc(-100% - var(--space-3xs)))}.media-viewer__buttons{transform:translateY(calc(100% + var(--space-3xs)))}.media-viewer__image--current,.media-viewer__controls,.media-viewer__acquire{inset-block-start:7%;inset-inline-start:11%;width:78%;height:86%}.media-viewer__image--preview{inset-block-start:19%;width:42%;height:62%}.snake-modal{padding:0}.snake-game{display:grid;grid-template-rows:auto minmax(0,1fr) minmax(0,1fr)}.snake-game__footer{min-height:0;justify-content:center;padding:var(--space-xs)}.snake-game__footer>p{display:none}.snake-game__controls--desktop{display:none}.snake-game__gamepad{display:flex;width:100%;height:100%;min-height:0;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-sm)}.snake-game__dpad{display:grid;grid-template-columns:repeat(3,calc(var(--cell) * 7));grid-template-rows:repeat(3,calc(var(--cell) * 7));gap:0;touch-action:none;user-select:none;-webkit-user-select:none}.snake-game__dpad button{width:100%;height:100%;min-width:0;min-height:0;padding:0;background-color:var(--color-paper);background-image:var(--rule-dot),var(--rule-dot),var(--rule-dot),var(--rule-dot),var(--rule-dot);background-position:left top,left bottom,left top,right top,center;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y,repeat;background-size:var(--rule-step) var(--rule-step),var(--rule-step) var(--rule-step),var(--rule-step) var(--rule-step),var(--rule-step) var(--rule-step),var(--cell) var(--cell);color:var(--color-ink);touch-action:none}.snake-game__dpad[data-active-direction=up] .snake-game__dpad-up,.snake-game__dpad[data-active-direction=right] .snake-game__dpad-right,.snake-game__dpad[data-active-direction=down] .snake-game__dpad-down,.snake-game__dpad[data-active-direction=left] .snake-game__dpad-left{color:var(--color-focus);filter:drop-shadow(0 0 var(--pixel) var(--color-ink))}.snake-game__dpad-up{grid-column:2;grid-row:1}.snake-game__dpad-left{grid-column:1;grid-row:2}.snake-game__dpad-center{grid-column:2;grid-row:2;background-color:var(--color-paper);background-image:var(--rule-dot),var(--rule-dot),var(--rule-dot),var(--rule-dot),var(--rule-dot);background-position:left top,left bottom,left top,right top,center;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y,repeat;background-size:var(--rule-step) var(--rule-step),var(--rule-step) var(--rule-step),var(--rule-step) var(--rule-step),var(--rule-step) var(--rule-step),var(--cell) var(--cell)}.snake-game__dpad-right{grid-column:3;grid-row:2}.snake-game__dpad-down{grid-column:2;grid-row:3}.snake-game__gamepad-pause{min-width:calc(var(--cell) * 12)}html[data-mobile-scroll-lock] .page-main--home,html[data-mobile-scroll-lock] .snake-modal{overflow:hidden;overscroll-behavior:none;touch-action:none}}@media(max-width:22.99rem){.snake-game__header{min-height:140px}}@media(pointer:coarse){.site-nav a,.footer-socials a,.external-title{display:inline-flex;min-height:42px;align-items:center}}@media(hover:hover)and (pointer:fine){.snake-game__header button,.snake-game__controls button{min-width:var(--line-body);min-height:var(--line-body);padding:0}}@media(prefers-reduced-motion:reduce){.nav-home-link:hover .nav-spiral,.nav-home-link:focus-visible .nav-spiral{animation:none}.station-cursor-trail{display:none}.site-header,.site-footer,.page-main>*,.home-intro,.home-intro>*,[data-route="/about"] .about-copy>*,[data-route="/work"] .work-intro,[data-route="/work"] .content-section h2,[data-route="/work"] .record,[data-route="/projects"] .projects-section h1,[data-route="/projects"] .project-record,[data-route="/skills"] .skills>*,[data-route="/media"] .media-viewer>*{opacity:1;clip-path:none;transform:none;animation:none}.station-image-acquire img{opacity:1}.station-image-acquire__canvas{display:none}.media-viewer__image,.media-viewer__image.is-loaded{opacity:1;filter:none;transform:none;animation:none;transition:none}.media-viewer__preview-photo{animation:none}.home-logo__trace{stroke-dashoffset:0;animation:none}.home-logo.is-exiting .home-logo__trace{stroke-dashoffset:-1}.snake-modal{opacity:1;animation:none}}
