@font-face{font-family:"Fusion Pixel 12";src:url(../fonts/fusion-pixel/fusion-pixel-12px-proportional-zh_hans.otf.woff2) format("woff2");font-display:swap;font-style:normal;font-weight:400}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 60 6% 81%;--foreground: 0 0% 12%;--card: 60 6% 81%;--card-foreground: 0 0% 12%;--popover: 60 6% 81%;--popover-foreground: 0 0% 12%;--primary: 14 100% 50%;--primary-foreground: 0 0% 100%;--secondary: 60 4% 75%;--secondary-foreground: 0 0% 12%;--muted: 60 4% 70%;--muted-foreground: 0 0% 35%;--accent: 14 100% 50%;--accent-foreground: 0 0% 100%;--destructive: 0 84.2% 60.2%;--destructive-foreground: 0 0% 98%;--border: 60 4% 70%;--input: 60 4% 70%;--ring: 14 100% 50%;--radius: .25rem;--valiente-bg: var(--site-bg, #0b0d0c);--valiente-red: var(--site-active, #f4f7f2);--valiente-dark: var(--site-ink, #e9ece7);--valiente-gray: var(--site-muted, #8a938c);--valiente-light: var(--site-veil-color, #0e100f)}*{border-color:hsl(var(--border))}body{background-color:var(--site-bg, #0b0d0c);color:var(--site-ink, #e9ece7);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;overflow-x:hidden}::-moz-selection{background:var(--valiente-red);color:#fff}::selection{background:var(--valiente-red);color:#fff}.section-label{font-family:JetBrains Mono,monospace;font-weight:400;font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;color:var(--valiente-gray)}.work-index{font-family:JetBrains Mono,monospace;font-weight:200;font-size:.875rem;letter-spacing:.05em;color:var(--valiente-gray)}@media(pointer:coarse){button,a{touch-action:manipulation}}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--valiente-bg)}::-webkit-scrollbar-thumb{background:var(--valiente-gray);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--valiente-red)}.\!visible{visibility:visible!important}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.bottom-0{bottom:0}.left-0{left:0}.right-0{right:0}.top-0{top:0}.col-span-1{grid-column:span 1 / span 1}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mt-1{margin-top:.25rem}.mt-4{margin-top:1rem}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.aspect-\[16\/9\]{aspect-ratio:16/9}.h-10{height:2.5rem}.h-6{height:1.5rem}.h-full{height:100%}.h-px{height:1px}.w-10{width:2.5rem}.w-4{width:1rem}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.scroll-mt-28{scroll-margin-top:7rem}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-16{gap:4rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.gap-y-12{row-gap:3rem}.overflow-hidden{overflow:hidden}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l-2{border-left-width:2px}.border-r-2{border-right-width:2px}.border-t-2{border-top-width:2px}.border-\[\#8A8A85\]\/20{border-color:#8a8a8533}.border-\[\#FF3D00\]{--tw-border-opacity: 1;border-color:rgb(255 61 0 / var(--tw-border-opacity, 1))}.border-\[\#FF3D00\]\/60{border-color:#ff3d0099}.bg-\[\#1A1A1A\]\/10{background-color:#1a1a1a1a}.bg-\[\#8A8A85\]\/30{background-color:#8a8a854d}.bg-\[\#FF3D00\]{--tw-bg-opacity: 1;background-color:rgb(255 61 0 / var(--tw-bg-opacity, 1))}.object-cover{-o-object-fit:cover;object-fit:cover}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.pb-3{padding-bottom:.75rem}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-\[10px\]{font-size:10px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-\[\#1A1A1A\]{--tw-text-opacity: 1;color:rgb(26 26 26 / var(--tw-text-opacity, 1))}.text-\[\#8A8A85\]{--tw-text-opacity: 1;color:rgb(138 138 133 / var(--tw-text-opacity, 1))}.text-\[\#8A8A85\]\/40{color:#8a8a8566}.text-\[\#8A8A85\]\/50{color:#8a8a8580}.text-\[\#8A8A85\]\/60{color:#8a8a8599}.text-\[\#FF3D00\]\/80{color:#ff3d00cc}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.opacity-0{opacity:0}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.duration-300{animation-duration:.3s}.duration-500{animation-duration:.5s}.paused{animation-play-state:paused}html{scrollbar-width:none}html::-webkit-scrollbar{display:none}:root{--site-bg: #0b0d0c;--site-ink: #e9ece7;--site-primary: #b7c2ba;--site-deep: #67716a;--site-active: #f4f7f2;--crt-plastic-base: #1e221f;--site-title: #f4f7f2;--site-muted: #8a938c;--site-veil: .6;--site-veil-color: #0e100f}.portfolio-shell,.archive-shell,.crt-boot{text-shadow:0 0 calc(var(--crt-text-bloom-radius, 5) * .25px) rgb(from var(--crt-text-bloom-color, currentColor) r g b / min(1,var(--crt-text-bloom-alpha, .32) * 2.2)),0 0 calc(var(--crt-text-bloom-radius, 5) * 1px) rgb(from var(--crt-text-bloom-color, currentColor) r g b / var(--crt-text-bloom-alpha, .32)),0 0 calc(var(--crt-text-bloom-radius, 5) * 3px) rgb(from var(--crt-text-bloom-color, currentColor) r g b / calc(var(--crt-text-bloom-alpha, .32) * .45))}.group:hover .group-hover\:text-\[\#FF3D00\]{--tw-text-opacity: 1;color:rgb(255 61 0 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:opacity-0{opacity:0}.group:hover .group-hover\:opacity-100{opacity:1}@media(min-width:768px){.md\:col-span-2{grid-column:span 2 / span 2}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:gap-20{gap:5rem}.md\:text-xl{font-size:1.25rem;line-height:1.75rem}}.portfolio-dither-background{position:fixed;inset:var(--crt-bezel, 0px);z-index:0;width:100%;height:100%;display:block;border-radius:var(--crt-screen-radius, 0px);pointer-events:none;opacity:.8}@media(max-width:720px){.portfolio-dither-background{opacity:.8}}@media(prefers-reduced-motion:reduce){.portfolio-dither-background{opacity:.8}}.crt-boot{position:fixed;inset:var(--crt-bezel, 0px);z-index:2900;overflow:hidden;border-radius:var(--crt-screen-radius, 0px);background:#101211;cursor:pointer;font-family:"Fusion Pixel 12",monospace}.crt-boot-screen{position:absolute;inset:0;display:grid;place-items:center;background:var(--site-bg, #f3f5f3);opacity:0;transform:scale(.001);transform-origin:50% 50%;transition:background-color .16s linear}.crt-boot-screen .portfolio-dither-background{position:absolute;inset:0;transition:opacity .14s linear}.crt-boot-screen:after{position:absolute;inset:0;background:rgb(from var(--site-veil-color) r g b / var(--site-veil, .74));content:"";transition:opacity .14s linear}.crt-boot-text{position:relative;z-index:1;padding:0 24px;text-align:left}.crt-boot[data-phase=power] .crt-boot-screen{animation:crt-power-on .5s ease-in-out forwards}.crt-boot[data-phase=typing] .crt-boot-screen,.crt-boot[data-phase=blink] .crt-boot-screen{opacity:1;transform:none}.crt-boot[data-phase=shutdown] .crt-boot-screen{background:var(--site-veil-color, #f5f7f5);box-shadow:0 0 28px #ffffffd9;animation:crt-power-off .56s cubic-bezier(.55,.06,.35,1) .28s both}.crt-boot[data-phase=shutdown] .crt-boot-screen .portfolio-dither-background{opacity:0}.crt-boot[data-phase=shutdown] .crt-boot-screen:after{opacity:0}.crt-boot[data-phase=shutdown]{background:transparent}.crt-boot[data-phase=shutdown] .crt-boot-text{animation:crt-glitch .28s steps(1,end) both,crt-text-fade .16s ease-out .26s forwards}.crt-boot-title,.crt-boot-subtitle{margin:0;white-space:nowrap}.crt-boot-title{color:var(--site-ink, #172125);font-size:clamp(20px,3.2vw,34px);line-height:1.4;letter-spacing:.04em}.crt-boot-subtitle{margin-top:14px;color:var(--site-deep, #2d929b);font-size:clamp(12px,1.6vw,16px);line-height:1.5;letter-spacing:.08em}.crt-boot-cursor{display:inline-block;width:.58em;height:.96em;margin-left:.12em;background:currentcolor;vertical-align:-.1em;animation:crt-cursor-blink .42s steps(1,end) infinite}.crt-boot-skip{position:absolute;right:18px;bottom:12px;margin:0;color:rgb(from var(--site-ink) r g b / .38);font-size:10px;letter-spacing:.1em;opacity:0;pointer-events:none}.crt-boot[data-phase=typing] .crt-boot-skip,.crt-boot[data-phase=blink] .crt-boot-skip{opacity:1}@keyframes crt-power-on{0%{opacity:.4;transform:scale(.001)}18%{opacity:1;transform:scale(.04,.02)}55%{transform:scaleY(.006)}to{opacity:1;transform:scale(1)}}@keyframes crt-power-off{0%{opacity:1;transform:scale(1);background-color:var(--site-veil-color, #f5f7f5)}45%{opacity:1;transform:scaleY(.008);background-color:#fff}78%{opacity:1;transform:scale(.035,.018);background-color:#fff}to{opacity:0;transform:scale(.001);background-color:#fff}}@keyframes crt-text-fade{to{opacity:0}}@keyframes crt-glitch{0%,to{transform:translate(0)}18%{transform:translate(-9px)}36%{transform:translate(0)}58%{transform:translate(7px)}76%{transform:translate(-3px)}88%{transform:translate(0)}}@keyframes crt-cursor-blink{0%,49%{opacity:1}50%,to{opacity:0}}.crt-boot-cursor--idle{visibility:hidden;animation:none}@media(max-width:720px){.crt-boot-skip{display:none}}.color-tuner{position:fixed;bottom:calc(var(--crt-bezel, 0px) + 16px);left:calc(var(--crt-bezel, 0px) + 16px);z-index:4000;width:248px;padding:12px 14px;border:1px solid rgb(from var(--site-ink) r g b / .3);border-radius:6px;background:rgb(from var(--site-veil-color) r g b / .96);box-shadow:0 8px 24px rgb(from var(--site-ink) r g b / .18);color:var(--site-ink, #172125);font-family:"Fusion Pixel 12",monospace;font-size:11px}.color-tuner header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.color-tuner header strong{font-size:12px;font-weight:400}.color-tuner button{padding:2px 8px;border:1px solid rgb(from var(--site-ink) r g b / .35);border-radius:4px;background:transparent;color:inherit;font:inherit;cursor:pointer}.color-tuner button:hover{border-color:var(--site-active, #169eae);color:var(--site-active, #169eae)}.color-tuner-presets{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.color-tuner-presets button.is-active{border-color:var(--site-active, #169eae);background:rgb(from var(--site-primary) r g b / .12);color:var(--site-active, #169eae)}.color-tuner-groups{display:grid;gap:6px}.color-tuner-color{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:8px}.color-tuner-color input[type=color]{width:40px;height:22px;padding:0;border:1px solid rgb(from var(--site-ink) r g b / .3);border-radius:4px;background:transparent;cursor:pointer}.color-tuner-color output{color:var(--site-deep, #2d929b);font-size:10px}.color-tuner-range{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:8px}.color-tuner-range input[type=range]{width:72px;accent-color:var(--site-active, #169eae);cursor:pointer}.color-tuner-range output{color:var(--site-deep, #2d929b);font-size:10px}.color-tuner footer{display:flex;gap:8px;justify-content:flex-end;margin-top:10px}.color-tuner-shell{margin-top:10px}.color-tuner-shell-toggle{width:100%;text-align:left}.color-tuner-shell-groups{margin-top:8px;max-height:320px;overflow-y:auto;scrollbar-width:thin}.color-tuner-shell-groups details{border-top:1px dashed rgb(from var(--site-ink, #172125) r g b / .25);padding:4px 0}.color-tuner-shell-groups summary{cursor:pointer;color:var(--site-deep, #2d929b);-webkit-user-select:none;-moz-user-select:none;user-select:none}.color-tuner-shell-groups details>label{margin-top:4px}.color-tuner-number{width:58px;padding:1px 4px;border:1px solid rgb(from var(--site-ink, #172125) r g b / .3);border-radius:4px;background:transparent;color:var(--site-deep, #2d929b);font:inherit;font-size:10px;text-align:right}.color-tuner-follow{max-width:84px;overflow:hidden;text-overflow:ellipsis;font-size:10px}:root{--crt-bezel: clamp(55px, 6.5vw, 95px);--crt-screen-radius: 10px;--crt-plastic-angle: 160deg;--crt-cut-dx: 0px;--crt-cut-dy: 0px;--crt-cut-dw: 0px;--crt-cut-dh: 0px;--crt-cut-radius: 10px;--crt-plastic: linear-gradient(155deg, rgba(255, 255, 255, .34), rgba(255, 255, 255, 0) 32%), linear-gradient(335deg, rgba(74, 68, 58, .2), rgba(74, 68, 58, 0) 42%), linear-gradient( var(--crt-plastic-angle), color-mix(in srgb, var(--crt-plastic-base, #d6d1c5), #ffffff 13%) 0%, var(--crt-plastic-base, #d6d1c5) 46%, color-mix(in srgb, var(--crt-plastic-base, #d6d1c5), #000000 9%) 100% );--crt-shadow-top: .71;--crt-shadow-bottom: .535;--crt-shadow-left: .715;--crt-shadow-right: .695;--crt-corner-dark-tl: .2;--crt-corner-dark-tr: .195;--crt-corner-dark-bl: .17;--crt-corner-dark-br: .18;--crt-fold-tl-dark: 1;--crt-fold-tl-light: .4;--crt-fold-tl-angle: 225deg;--crt-fold-tl-scale: 15;--crt-fold-tl-pos: 51;--crt-fold-tl-band: 2;--crt-fold-tr-dark: 1;--crt-fold-tr-light: .4;--crt-fold-tr-angle: 135deg;--crt-fold-tr-scale: 14;--crt-fold-tr-pos: 49;--crt-fold-tr-band: 4;--crt-fold-bl-dark: .115;--crt-fold-bl-light: .245;--crt-fold-bl-angle: 135deg;--crt-fold-bl-scale: 18.4;--crt-fold-bl-pos: 50;--crt-fold-bl-band: 2.5;--crt-fold-br-dark: .685;--crt-fold-br-light: .42;--crt-fold-br-angle: 225deg;--crt-fold-br-scale: 19.1;--crt-fold-br-pos: 50;--crt-fold-br-band: 2.5;--crt-reflection: .1;--crt-reflection-soft: .005;--crt-glare-x: 83;--crt-glare-y: 22;--crt-glare-rx: 57;--crt-glare-ry: 66;--crt-glare-angle: 1deg;--crt-glare-pos: 22;--crt-glare-band: 15;--crt-glare-strength: .1;--crt-text-bloom-radius: 20;--crt-text-bloom-alpha: .15}@media(max-width:720px){:root{--crt-bezel: 10px;--crt-screen-radius: 10px}}.crt-shell{position:fixed;inset:0;z-index:3000;pointer-events:none}.crt-shell-bezel{position:absolute;inset:0;padding:var(--crt-bezel);border-radius:0;background:var(--crt-plastic);background-attachment:fixed;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude}.crt-shell-bezel:after{position:absolute;inset:0;border-radius:inherit;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");content:"";opacity:.05;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude}.crt-shell-corner{position:absolute;width:18px;height:18px;background:var(--crt-plastic);background-attachment:fixed}.crt-corner-tl{top:calc(var(--crt-bezel) - 1px);left:calc(var(--crt-bezel) - 1px);-webkit-mask:radial-gradient(circle 10px at 11px 11px,transparent 9.5px,#000 10.5px);mask:radial-gradient(circle 10px at 11px 11px,transparent 9.5px,#000 10.5px)}.crt-corner-tr{top:calc(var(--crt-bezel) - 1px);right:calc(var(--crt-bezel) - 1px);-webkit-mask:radial-gradient(circle 10px at 7px 11px,transparent 9.5px,#000 10.5px);mask:radial-gradient(circle 10px at 7px 11px,transparent 9.5px,#000 10.5px)}.crt-corner-bl{bottom:calc(var(--crt-bezel) - 1px);left:calc(var(--crt-bezel) - 1px);-webkit-mask:radial-gradient(circle 10px at 11px 7px,transparent 9.5px,#000 10.5px);mask:radial-gradient(circle 10px at 11px 7px,transparent 9.5px,#000 10.5px)}.crt-corner-br{right:calc(var(--crt-bezel) - 1px);bottom:calc(var(--crt-bezel) - 1px);-webkit-mask:radial-gradient(circle 10px at 7px 7px,transparent 9.5px,#000 10.5px);mask:radial-gradient(circle 10px at 7px 7px,transparent 9.5px,#000 10.5px)}.crt-shell-folds{position:absolute;inset:0;--cut-x: calc(var(--crt-bezel) + var(--crt-cut-dx));--cut-y: calc(var(--crt-bezel) + var(--crt-cut-dy));--cut-w: calc(100% - var(--crt-bezel) * 2 + var(--crt-cut-dw));--cut-h: calc(100% - var(--crt-bezel) * 2 + var(--crt-cut-dh));--cut-r: var(--crt-cut-radius);--cut-tl-cx: calc(var(--cut-x) + var(--cut-r));--cut-tl-cy: calc(var(--cut-y) + var(--cut-r));--cut-br-cx: calc(var(--cut-x) + var(--cut-w) - var(--cut-r));--cut-br-cy: calc(var(--cut-y) + var(--cut-h) - var(--cut-r));-webkit-mask-composite:source-in,source-over,source-in,source-over,source-in,source-over,source-in,source-over,source-out,source-over;-webkit-mask:radial-gradient(circle var(--cut-r) at var(--cut-br-cx) var(--cut-br-cy),transparent calc(var(--cut-r) - .5px),#000 calc(var(--cut-r) + .5px)),conic-gradient(from 90deg at var(--cut-br-cx) var(--cut-br-cy),#fff 0deg 90deg,transparent 90deg 360deg),radial-gradient(circle var(--cut-r) at var(--cut-tl-cx) var(--cut-br-cy),transparent calc(var(--cut-r) - .5px),#000 calc(var(--cut-r) + .5px)),conic-gradient(from 180deg at var(--cut-tl-cx) var(--cut-br-cy),#fff 0deg 90deg,transparent 90deg 360deg),radial-gradient(circle var(--cut-r) at var(--cut-br-cx) var(--cut-tl-cy),transparent calc(var(--cut-r) - .5px),#000 calc(var(--cut-r) + .5px)),conic-gradient(from 0deg at var(--cut-br-cx) var(--cut-tl-cy),#fff 0deg 90deg,transparent 90deg 360deg),radial-gradient(circle var(--cut-r) at var(--cut-tl-cx) var(--cut-tl-cy),transparent calc(var(--cut-r) - .5px),#000 calc(var(--cut-r) + .5px)),conic-gradient(from 270deg at var(--cut-tl-cx) var(--cut-tl-cy),#fff 0deg 90deg,transparent 90deg 360deg),linear-gradient(#fff 0 0),linear-gradient(#fff 0 0) var(--cut-x) var(--cut-y) / var(--cut-w) var(--cut-h) no-repeat;mask:radial-gradient(circle var(--cut-r) at var(--cut-br-cx) var(--cut-br-cy),transparent calc(var(--cut-r) - .5px),#000 calc(var(--cut-r) + .5px)),conic-gradient(from 90deg at var(--cut-br-cx) var(--cut-br-cy),#fff 0deg 90deg,transparent 90deg 360deg),radial-gradient(circle var(--cut-r) at var(--cut-tl-cx) var(--cut-br-cy),transparent calc(var(--cut-r) - .5px),#000 calc(var(--cut-r) + .5px)),conic-gradient(from 180deg at var(--cut-tl-cx) var(--cut-br-cy),#fff 0deg 90deg,transparent 90deg 360deg),radial-gradient(circle var(--cut-r) at var(--cut-br-cx) var(--cut-tl-cy),transparent calc(var(--cut-r) - .5px),#000 calc(var(--cut-r) + .5px)),conic-gradient(from 0deg at var(--cut-br-cx) var(--cut-tl-cy),#fff 0deg 90deg,transparent 90deg 360deg),radial-gradient(circle var(--cut-r) at var(--cut-tl-cx) var(--cut-tl-cy),transparent calc(var(--cut-r) - .5px),#000 calc(var(--cut-r) + .5px)),conic-gradient(from 270deg at var(--cut-tl-cx) var(--cut-tl-cy),#fff 0deg 90deg,transparent 90deg 360deg),linear-gradient(#fff 0 0),linear-gradient(#fff 0 0) var(--cut-x) var(--cut-y) / var(--cut-w) var(--cut-h) no-repeat;-webkit-mask-composite:source-in,source-over,source-in,source-over,source-in,source-over,source-in,source-over,source-out,source-over,xor;mask-composite:intersect,add,intersect,add,intersect,add,intersect,add,subtract,add}.crt-shell-fold{position:absolute;width:calc(var(--crt-bezel) * var(--crt-fold-scale));height:calc(var(--crt-bezel) * var(--crt-fold-scale));-webkit-mask:radial-gradient(circle calc(var(--crt-bezel) * var(--crt-fold-scale)) at var(--crt-fold-origin, 0 0),#000 30%,transparent 92%);mask:radial-gradient(circle calc(var(--crt-bezel) * var(--crt-fold-scale)) at var(--crt-fold-origin, 0 0),#000 30%,transparent 92%)}.crt-fold-tl{top:0;left:0;--crt-fold-origin: 0 0;--crt-fold-scale: var(--crt-fold-tl-scale);background:linear-gradient(var(--crt-fold-tl-angle),rgba(56,51,44,var(--crt-fold-tl-dark)) 0%,rgba(56,51,44,calc(var(--crt-fold-tl-dark) * .46)) calc((var(--crt-fold-tl-pos) - var(--crt-fold-tl-band) / 2) * 1%),rgba(255,255,255,.02) calc(var(--crt-fold-tl-pos) * 1%),rgba(255,255,255,calc(var(--crt-fold-tl-light) * .73)) calc((var(--crt-fold-tl-pos) + var(--crt-fold-tl-band) / 2) * 1%),rgba(255,255,255,var(--crt-fold-tl-light)) 100%)}.crt-fold-tr{top:0;right:0;--crt-fold-origin: 100% 0;--crt-fold-scale: var(--crt-fold-tr-scale);background:linear-gradient(var(--crt-fold-tr-angle),rgba(56,51,44,var(--crt-fold-tr-dark)) 0%,rgba(56,51,44,calc(var(--crt-fold-tr-dark) * .46)) calc((var(--crt-fold-tr-pos) - var(--crt-fold-tr-band) / 2) * 1%),rgba(255,255,255,.02) calc(var(--crt-fold-tr-pos) * 1%),rgba(255,255,255,calc(var(--crt-fold-tr-light) * .73)) calc((var(--crt-fold-tr-pos) + var(--crt-fold-tr-band) / 2) * 1%),rgba(255,255,255,var(--crt-fold-tr-light)) 100%)}.crt-fold-bl{bottom:0;left:0;--crt-fold-origin: 0 100%;--crt-fold-scale: var(--crt-fold-bl-scale);background:linear-gradient(var(--crt-fold-bl-angle),rgba(56,51,44,var(--crt-fold-bl-dark)) 0%,rgba(56,51,44,calc(var(--crt-fold-bl-dark) * .46)) calc((var(--crt-fold-bl-pos) - var(--crt-fold-bl-band) / 2) * 1%),rgba(255,255,255,.02) calc(var(--crt-fold-bl-pos) * 1%),rgba(255,255,255,calc(var(--crt-fold-bl-light) * .73)) calc((var(--crt-fold-bl-pos) + var(--crt-fold-bl-band) / 2) * 1%),rgba(255,255,255,var(--crt-fold-bl-light)) 100%)}.crt-fold-br{right:0;bottom:0;--crt-fold-origin: 100% 100%;--crt-fold-scale: var(--crt-fold-br-scale);background:linear-gradient(var(--crt-fold-br-angle),rgba(56,51,44,var(--crt-fold-br-dark)) 0%,rgba(56,51,44,calc(var(--crt-fold-br-dark) * .46)) calc((var(--crt-fold-br-pos) - var(--crt-fold-br-band) / 2) * 1%),rgba(255,255,255,.02) calc(var(--crt-fold-br-pos) * 1%),rgba(255,255,255,calc(var(--crt-fold-br-light) * .73)) calc((var(--crt-fold-br-pos) + var(--crt-fold-br-band) / 2) * 1%),rgba(255,255,255,var(--crt-fold-br-light)) 100%)}.crt-shell-glass{position:absolute;inset:var(--crt-bezel);border-radius:var(--crt-screen-radius);background:radial-gradient(170px 120px at 0 0,rgba(48,45,40,var(--crt-corner-dark-tl)),transparent 74%),radial-gradient(170px 120px at 100% 0,rgba(48,45,40,var(--crt-corner-dark-tr)),transparent 74%),radial-gradient(190px 130px at 0 100%,rgba(48,45,40,var(--crt-corner-dark-bl)),transparent 74%),radial-gradient(190px 130px at 100% 100%,rgba(48,45,40,var(--crt-corner-dark-br)),transparent 74%);box-shadow:inset 0 2px 4px rgba(43,40,36,var(--crt-shadow-top)),inset 0 -16px 30px -10px rgba(43,40,36,var(--crt-shadow-bottom)),inset 20px 0 36px -20px rgba(43,40,36,var(--crt-shadow-left)),inset -20px 0 36px -20px rgba(43,40,36,var(--crt-shadow-right))}.crt-shell-glass:after{position:absolute;inset:0;border-radius:inherit;background:radial-gradient(130% 55% at 50% -12%,rgba(255,255,255,var(--crt-reflection)) 0%,rgba(255,255,255,calc(var(--crt-reflection) * .35)) 38%,transparent 62%),linear-gradient(115deg,transparent 52%,rgba(255,255,255,var(--crt-reflection-soft)) 64%,transparent 78%);content:"";transform:translate(var(--crt-reflect-x, 0px),var(--crt-reflect-y, 0px));transition:transform .55s ease-out}.crt-shell-glare{position:absolute;inset:var(--crt-bezel);border-radius:var(--crt-screen-radius);overflow:hidden}.crt-shell-glare:before{position:absolute;inset:0;background:radial-gradient(ellipse calc(var(--crt-glare-rx) * 1%) calc(var(--crt-glare-ry) * 1%) at calc(var(--crt-glare-x) * 1%) calc(var(--crt-glare-y) * 1%),rgba(255,255,255,var(--crt-glare-strength)),rgba(255,255,255,calc(var(--crt-glare-strength) * .5)) calc((var(--crt-glare-pos) - var(--crt-glare-band) / 2) * 1%),#fff0 calc((var(--crt-glare-pos) + var(--crt-glare-band) / 2) * 1%));content:"";transform:rotate(var(--crt-glare-angle));transform-origin:calc(var(--crt-glare-x) * 1%) calc(var(--crt-glare-y) * 1%)}.crt-shell-power{position:absolute;right:calc(var(--crt-bezel) + 64px);bottom:calc(var(--crt-bezel) / 2 - 5px);display:flex;align-items:center;gap:18px}.crt-shell-power:before{width:44px;height:9px;border-radius:4px;background:linear-gradient(180deg,#2b282433,#ffffff1f);box-shadow:inset 0 1px 2px #2b282459,inset 0 -1px 1px #ffffff38,0 1px #ffffff24;content:""}.crt-shell-power:after{color:rgb(from var(--site-ink) r g b / .42);content:"ZHUYIJIA";font-family:"Fusion Pixel 12",monospace;font-size:9px;letter-spacing:2px;line-height:1}@media(max-width:720px){.crt-shell-power{display:none}}@media(prefers-reduced-motion:reduce){.crt-shell-glass:after{transform:none;transition:none}}.retro-wm{position:fixed;inset:var(--crt-bezel, 0px);z-index:2500;border-radius:var(--crt-screen-radius, 0px);overflow:hidden;font-family:"Fusion Pixel 12",monospace}.retro-wm-backdrop{position:absolute;inset:0;padding:0;border:0;background:rgb(from var(--site-bg, #0b0d0c) r g b / .45);cursor:default}.retro-window-slot{position:absolute;inset:0;pointer-events:none}.retro-window-offset{width:100%;height:100%;display:grid;place-items:center;pointer-events:none}.retro-window{pointer-events:auto;display:flex;flex-direction:column;width:min(1400px,90%);height:min(880px,85%);border:2px solid var(--site-veil-color, #0e100f);border-radius:0;background:var(--site-veil-color, #0e100f);box-shadow:inset 1px 1px color-mix(in srgb,var(--site-veil-color, #0e100f),#ffffff 32%),inset -1px -1px color-mix(in srgb,var(--site-veil-color, #0e100f),#000000 55%),8px 8px rgb(from var(--site-deep, #67716a) r g b / .28);animation:retro-window-open .16s steps(3,end) both}@keyframes retro-window-open{0%{transform:scale(.96)}to{transform:scale(1)}}.retro-window-titlebar{display:flex;align-items:center;gap:6px;height:30px;padding:0 4px 0 10px;flex:0 0 auto;border-bottom:2px solid var(--site-veil-color, #0e100f);background:var(--site-bg, #0b0d0c);color:var(--site-muted, #8a938c)}.retro-window[data-focused] .retro-window-titlebar{color:var(--site-active, #f4f7f2)}.retro-window-title{overflow:hidden;flex:1;min-width:0;font-size:13px;letter-spacing:.06em;line-height:1;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.retro-window-max,.retro-window-close{display:grid;place-items:center;width:22px;height:22px;padding:0;border:0;border-radius:0;flex:0 0 auto;background:var(--site-veil-color, #0e100f);box-shadow:inset 1px 1px color-mix(in srgb,var(--site-veil-color, #0e100f),#ffffff 32%),inset -1px -1px color-mix(in srgb,var(--site-veil-color, #0e100f),#000000 55%);color:var(--site-ink, #e9ece7);cursor:pointer}.retro-window-max:active,.retro-window-close:active{box-shadow:inset 1px 1px color-mix(in srgb,var(--site-veil-color, #0e100f),#000000 55%),inset -1px -1px color-mix(in srgb,var(--site-veil-color, #0e100f),#ffffff 32%)}.retro-icon{position:relative;display:block;width:12px;height:12px}.retro-icon-max{border:2px solid currentcolor;border-top-width:3px}.retro-icon-restore:before,.retro-icon-restore:after{position:absolute;content:"";border:2px solid currentcolor}.retro-icon-restore:before{top:0;right:0;width:7px;height:7px;border-top-width:3px}.retro-icon-restore:after{bottom:0;left:0;width:7px;height:7px;background:var(--site-veil-color, #0e100f);border-top-width:3px}.retro-icon-close:before,.retro-icon-close:after{position:absolute;top:5px;left:0;width:12px;height:2px;content:"";background:currentcolor}.retro-icon-close:before{transform:rotate(45deg)}.retro-icon-close:after{transform:rotate(-45deg)}.retro-window.is-maximized{width:100%;height:100%}.retro-window-slot:has(.retro-window.is-maximized) .retro-window-offset{transform:none!important}.retro-window-body{position:relative;flex:1;min-height:0;margin:2px;background:var(--site-bg, #0b0d0c)}.retro-window-body iframe,.retro-window-body video{width:100%;height:100%;border:0;display:block;-o-object-fit:contain;object-fit:contain;background:var(--site-bg, #0b0d0c)}.retro-window-loading{position:absolute;inset:0;z-index:1;display:flex;align-items:center;justify-content:center;gap:8px;background:var(--site-bg, #0b0d0c);color:var(--site-muted, #8a938c);font-size:12px;letter-spacing:.14em}.retro-window-cursor{display:inline-block;width:8px;height:14px;background:currentcolor;animation:retro-window-blink .42s steps(1,end) infinite}@keyframes retro-window-blink{0%,49%{opacity:1}50%,to{opacity:0}}@media(max-width:720px){.retro-window{width:calc(100% - 16px);height:calc(100% - 16px)}.retro-window-offset{transform:none!important}}@media(prefers-reduced-motion:reduce){.retro-window,.retro-window-cursor{animation:none}}.scroll-rail{position:fixed;top:var(--crt-bezel, 0px);right:var(--crt-bezel, 0px);left:var(--crt-bezel, 0px);z-index:101;height:10px;cursor:pointer;touch-action:none;font-family:var(--portfolio-pixel-font)}.scroll-rail:focus-visible{outline:2px solid var(--site-active, #169eae);outline-offset:-2px}.scroll-rail-track{position:absolute;top:0;right:0;left:0;height:2px;background:rgb(from var(--site-ink) r g b / .16)}.scroll-rail-progress{position:absolute;top:0;left:0;height:2px;background:var(--site-active, #169eae)}.scroll-rail-thumb{position:absolute;top:0;height:8px;min-width:14px;border:1px solid rgb(from var(--site-ink) r g b / .55);background:var(--site-active, #169eae)}.scroll-rail-mark{position:absolute;top:0;width:2px;height:5px;padding:5px 4px;background:rgb(from var(--site-ink) r g b / .35);background-clip:content-box;transform:translate(-50%)}.scroll-rail-mark.is-active{height:10px;background:var(--site-active, #169eae);background-clip:content-box}.scroll-rail-tooltip{position:absolute;top:calc(100% + 4px);padding:3px 8px;border:1px solid rgb(from var(--site-active) r g b / .52);background:rgb(from var(--site-veil-color) r g b / .96);color:var(--site-ink, #172125);font-size:10px;white-space:nowrap;transform:translate(-50%);pointer-events:none}@media(max-width:720px){.scroll-rail{height:8px}}.asset-lab-shell{--lab-bg: #d1d1cb;--lab-ink: #1a1a1a;--lab-panel: #171918;--lab-panel-soft: #202221;--lab-line: rgba(232, 232, 229, .25);--lab-muted: #9c9d98;--lab-accent: #ff3d00;width:100%;min-height:100vh;display:grid;grid-template-columns:minmax(250px,23vw) minmax(480px,1fr) minmax(260px,21vw);grid-template-rows:64px minmax(0,calc(100vh - 64px));overflow:hidden;background:var(--lab-panel);color:#f2f2ee;font-family:Inter,sans-serif}.asset-lab-shell button,.asset-lab-shell input{font:inherit}.asset-lab-header{grid-column:1 / -1;display:grid;grid-template-columns:minmax(250px,23vw) 1fr auto;align-items:center;color:var(--lab-ink);background:var(--lab-bg);border-bottom:1px solid var(--lab-ink)}.asset-lab-header a{height:100%;display:flex;align-items:center;padding:0 1.25rem;color:inherit;text-decoration:none;border-right:1px solid rgba(26,26,26,.5)}.asset-lab-header .asset-lab-brand{font-size:clamp(1.25rem,2vw,2rem);font-weight:800;letter-spacing:-.04em}.asset-lab-header a:not(.asset-lab-brand){font-family:JetBrains Mono,monospace;font-size:.72rem}.asset-lab-header button{min-height:40px;display:flex;align-items:center;gap:.6rem;margin-right:1rem;padding:0 1rem;color:var(--lab-ink);background:transparent;border:1px solid var(--lab-ink);cursor:pointer;font-family:JetBrains Mono,monospace;font-size:.68rem}.asset-lab-header svg,.asset-lab-workspace-footer svg,.asset-lab-inspector-actions svg{width:1rem;height:1rem}.asset-lab-assets,.asset-lab-inspector{min-height:0;display:flex;flex-direction:column;background:var(--lab-panel)}.asset-lab-assets{border-right:1px solid var(--lab-line)}.asset-lab-inspector{border-left:1px solid var(--lab-line);overflow-y:auto}.asset-lab-panel-heading{min-height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 1rem;border-bottom:1px solid var(--lab-line)}.asset-lab-panel-heading h1,.asset-lab-panel-heading h2{margin:0;font-size:1rem;font-weight:500}.asset-lab-panel-heading span{color:var(--lab-muted);font-family:JetBrains Mono,monospace;font-size:.6rem}.asset-lab-filters{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--lab-line)}.asset-lab-filters button,.asset-lab-ratios button{min-height:42px;padding:.5rem;color:var(--lab-muted);background:transparent;border:0;border-right:1px solid var(--lab-line);cursor:pointer;font-family:JetBrains Mono,monospace;font-size:.56rem}.asset-lab-filters button:last-child,.asset-lab-ratios button:last-child{border-right:0}.asset-lab-filters button.is-active,.asset-lab-ratios button.is-active{color:#fff;background:var(--lab-accent)}.asset-lab-list{min-height:0;overflow-y:auto}.asset-lab-row{position:relative;width:100%;min-height:112px;display:grid;grid-template-columns:82px minmax(0,1fr) 20px;gap:.85rem;align-items:center;padding:.85rem 1rem;color:#f2f2ee;background:transparent;border:0;border-bottom:1px solid var(--lab-line);text-align:left;cursor:pointer}.asset-lab-row:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:transparent}.asset-lab-row:hover,.asset-lab-row.is-active{background:var(--lab-panel-soft)}.asset-lab-row.is-active:before{background:var(--lab-accent)}.asset-lab-thumb{position:relative;aspect-ratio:16 / 10;overflow:hidden;border:1px solid rgba(232,232,229,.55);background:#0d0e0e}.asset-lab-thumb img,.asset-lab-thumb video{width:100%;height:100%;display:block;-o-object-fit:cover;object-fit:cover}.asset-lab-thumb>span{position:absolute;top:.3rem;left:.3rem;width:18px;height:18px;display:grid;place-items:center;color:var(--lab-ink);background:#e8e8e5e6}.asset-lab-thumb svg,.asset-lab-approved-icon{width:11px;height:11px}.asset-lab-row-copy{min-width:0;display:flex;flex-direction:column;gap:.25rem}.asset-lab-row-copy strong,.asset-lab-row-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.asset-lab-row-copy strong{font-size:.8rem;font-weight:500}.asset-lab-row-copy small,.asset-lab-row-copy em{color:var(--lab-muted);font-family:JetBrains Mono,monospace;font-size:.52rem;font-style:normal}.asset-lab-row-copy em{color:var(--lab-accent)}.asset-lab-workspace{min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;background:#101111}.asset-lab-titlebar{min-height:104px;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem 1.25rem;border-bottom:1px solid var(--lab-line)}.asset-lab-titlebar h2{margin:0 0 .4rem;font-family:JetBrains Mono,monospace;font-size:1.15rem;font-weight:400}.asset-lab-titlebar p,.asset-lab-source-meta,.asset-lab-canvas>p,.asset-lab-image-note,.asset-lab-status,.asset-lab-safety-note{color:var(--lab-muted);font-family:JetBrains Mono,monospace;font-size:.56rem}.asset-lab-titlebar p{max-width:32vw;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.asset-lab-source-meta{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.75rem}.asset-lab-source-meta span+span:before{content:"|";margin-right:.75rem;color:var(--lab-line)}.asset-lab-canvas{min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:clamp(1rem,2vw,2rem);overflow:hidden;background:#0a0b0b}.asset-lab-crop-frame{position:relative;width:min(100%,980px);max-height:62vh;overflow:hidden;border:2px solid var(--lab-accent);background:#202322;cursor:grab;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.asset-lab-crop-frame:active{cursor:grabbing}.asset-lab-crop-frame>img,.asset-lab-crop-frame>video{width:100%;height:100%;position:absolute;inset:0;display:block;-o-object-fit:cover;object-fit:cover;pointer-events:none;transform-origin:center;will-change:transform}.asset-lab-thirds{position:absolute;inset:0;pointer-events:none}.asset-lab-thirds i{position:absolute;background:#ffffffb8}.asset-lab-thirds i:nth-child(1),.asset-lab-thirds i:nth-child(2){top:0;bottom:0;width:1px}.asset-lab-thirds i:nth-child(1){left:33.333%}.asset-lab-thirds i:nth-child(2){left:66.666%}.asset-lab-thirds i:nth-child(3),.asset-lab-thirds i:nth-child(4){right:0;left:0;height:1px}.asset-lab-thirds i:nth-child(3){top:33.333%}.asset-lab-thirds i:nth-child(4){top:66.666%}.asset-lab-crop-corners{position:absolute;inset:0;pointer-events:none;background:linear-gradient(var(--lab-accent),var(--lab-accent)) 0 0 / 18px 4px no-repeat,linear-gradient(var(--lab-accent),var(--lab-accent)) 0 0 / 4px 18px no-repeat,linear-gradient(var(--lab-accent),var(--lab-accent)) 100% 0 / 18px 4px no-repeat,linear-gradient(var(--lab-accent),var(--lab-accent)) 100% 0 / 4px 18px no-repeat,linear-gradient(var(--lab-accent),var(--lab-accent)) 0 100% / 18px 4px no-repeat,linear-gradient(var(--lab-accent),var(--lab-accent)) 0 100% / 4px 18px no-repeat,linear-gradient(var(--lab-accent),var(--lab-accent)) 100% 100% / 18px 4px no-repeat,linear-gradient(var(--lab-accent),var(--lab-accent)) 100% 100% / 4px 18px no-repeat}.asset-lab-canvas>p{margin:0}.asset-lab-timeline,.asset-lab-image-note{min-height:66px;padding:0 1.25rem;border-top:1px solid var(--lab-line);border-bottom:1px solid var(--lab-line)}.asset-lab-timeline{display:grid;gap:.75rem;padding-top:.8rem;padding-bottom:.8rem}.asset-lab-image-note,.asset-lab-playback-row{display:flex;align-items:center;gap:1rem}.asset-lab-playback-row button{width:36px;height:36px;display:grid;place-items:center;color:#fff;background:transparent;border:1px solid var(--lab-line);cursor:pointer}.asset-lab-playback-row svg{width:14px;height:14px}.asset-lab-playback-row time{flex:none;color:var(--lab-muted);font-family:JetBrains Mono,monospace;font-size:.62rem}.asset-lab-playback-row input,.asset-lab-control input{width:100%;accent-color:var(--lab-accent)}.asset-lab-trim-editor{display:grid;gap:.35rem}.asset-lab-trim-track{position:relative;height:22px;background:#e8e8e51f;border:1px solid var(--lab-line)}.asset-lab-trim-selection{position:absolute;top:3px;bottom:3px;background:#ff3d0047;border-right:2px solid var(--lab-accent);border-left:2px solid var(--lab-accent)}.asset-lab-trim-track input{position:absolute;inset:0;width:100%;height:100%;margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;pointer-events:none}.asset-lab-trim-track input::-webkit-slider-thumb{width:12px;height:28px;-webkit-appearance:none;appearance:none;background:var(--lab-accent);border:1px solid white;cursor:ew-resize;pointer-events:auto}.asset-lab-trim-labels{display:flex;justify-content:space-between;color:var(--lab-muted);font-family:JetBrains Mono,monospace;font-size:.5rem}.asset-lab-workspace-footer{min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0 1.25rem}.asset-lab-workspace-footer button,.asset-lab-inspector-actions button{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:0 1rem;color:#f2f2ee;background:transparent;border:1px solid var(--lab-line);cursor:pointer;font-family:JetBrains Mono,monospace;font-size:.6rem}.asset-lab-workspace-footer button:disabled{opacity:.35;cursor:not-allowed}.asset-lab-workspace-footer span{color:var(--lab-muted);font-family:JetBrains Mono,monospace;font-size:.58rem}.asset-lab-ratios{display:grid;grid-template-columns:repeat(3,1fr);margin:1rem;border:1px solid var(--lab-line)}.asset-lab-output-size{display:flex;flex-direction:column;gap:.55rem;margin:0 1rem;padding-bottom:1rem;border-bottom:1px solid var(--lab-line)}.asset-lab-output-size span,.asset-lab-control>span,.asset-lab-video-fields label>span{color:var(--lab-muted);font-family:JetBrains Mono,monospace;font-size:.56rem}.asset-lab-output-size strong{min-height:42px;display:grid;place-items:center;border:1px solid var(--lab-line);font-family:JetBrains Mono,monospace;font-size:.72rem;font-weight:400}.asset-lab-control{display:flex;flex-direction:column;gap:.75rem;margin:0 1rem;padding:1rem 0;border-bottom:1px solid var(--lab-line)}.asset-lab-control>span{display:flex;justify-content:space-between}.asset-lab-control output{color:#f2f2ee}.asset-lab-video-fields{display:grid;gap:.8rem;padding:1rem}.asset-lab-video-fields label{display:grid;grid-template-columns:1fr 92px;gap:.75rem;align-items:center}.asset-lab-video-fields input{width:100%;min-height:36px;padding:0 .5rem;color:#f2f2ee;background:transparent;border:1px solid var(--lab-line);font-family:JetBrains Mono,monospace;font-size:.6rem}.asset-lab-inspector-actions{display:grid;gap:.65rem;margin-top:auto;padding:1rem}.asset-lab-inspector-actions button.is-primary{color:#fff;background:var(--lab-accent);border-color:var(--lab-accent)}.asset-lab-safety-note{margin:0;padding:0 1rem 1rem}.asset-lab-status{display:flex;justify-content:space-between;padding:.85rem 1rem;border-top:1px solid var(--lab-line)}.asset-lab-shell button:focus-visible,.asset-lab-shell a:focus-visible,.asset-lab-shell input:focus-visible{outline:2px solid var(--lab-accent);outline-offset:2px}.asset-lab-empty{min-height:100vh;display:grid;place-items:center;background:#171918;color:#fff}@media(max-width:980px){.asset-lab-shell{min-height:100vh;grid-template-columns:minmax(210px,30vw) 1fr;grid-template-rows:64px minmax(620px,auto) auto;overflow:auto}.asset-lab-header{grid-template-columns:minmax(210px,30vw) 1fr auto}.asset-lab-inspector{grid-column:1 / -1;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--lab-line);border-left:0}.asset-lab-inspector>*{margin-right:1rem;margin-left:1rem}.asset-lab-inspector .asset-lab-panel-heading,.asset-lab-inspector .asset-lab-status,.asset-lab-inspector .asset-lab-safety-note{grid-column:1 / -1}.asset-lab-inspector-actions{margin-top:0}}@media(max-width:680px){.asset-lab-shell{display:block;overflow:visible}.asset-lab-header{position:sticky;top:0;z-index:20;height:56px;display:grid;grid-template-columns:1fr auto}.asset-lab-header a:not(.asset-lab-brand){display:none}.asset-lab-header button{margin-right:.5rem}.asset-lab-assets{max-height:320px;border-right:0;border-bottom:1px solid var(--lab-line)}.asset-lab-list{display:flex;overflow-x:auto}.asset-lab-row{min-width:270px;border-right:1px solid var(--lab-line)}.asset-lab-workspace{min-height:680px}.asset-lab-titlebar{align-items:flex-start;flex-direction:column}.asset-lab-titlebar p{max-width:80vw}.asset-lab-canvas{min-height:360px}.asset-lab-inspector{display:block}.asset-lab-inspector>*{margin-right:1rem;margin-left:1rem}}@media(prefers-reduced-motion:reduce){.asset-lab-shell *,.asset-lab-shell *:before,.asset-lab-shell *:after{scroll-behavior:auto;transition:none}}.motion-study-01{--study-paper: #fafbf8;position:relative;width:100%;height:100svh;min-height:100vh;overflow:hidden;background:var(--study-paper)}.motion-study-01 canvas{width:100%;height:100%;display:block}@media(hover:hover)and (pointer:fine){.motion-study-01 canvas{cursor:crosshair}}.motion-study-controls{position:fixed;inset:14px auto auto 14px;z-index:2;width:min(286px,calc(100vw - 28px));color:#151515;font-family:Inter,Microsoft YaHei,sans-serif}.motion-study-controls details{border:1px solid rgba(15,15,15,.28);background:color-mix(in srgb,var(--study-paper) 90%,transparent);box-shadow:0 10px 36px #14141414;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.motion-study-controls summary{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:9px 12px;cursor:pointer;list-style:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.motion-study-controls summary::-webkit-details-marker{display:none}.motion-study-controls summary span{font-size:11px;font-weight:760;letter-spacing:-.015em}.motion-study-controls summary small{color:#0f0f0f8c;font-size:10px}.motion-study-controls details[open] summary{border-bottom:1px solid rgba(15,15,15,.16)}.motion-study-controls-body{display:grid;gap:12px;padding:12px}.motion-study-controls-body>label{display:grid;grid-template-columns:76px minmax(0,1fr);align-items:center;gap:10px;font-size:10px;font-weight:650}.motion-study-controls select,.motion-study-controls input[type=range],.motion-study-event-trigger{width:100%}.motion-study-event-trigger{min-height:42px;padding:9px 12px;color:var(--study-paper);border:1px solid #151515;border-radius:0;background:#151515;font:700 11px Inter,Microsoft YaHei,sans-serif;text-align:left;cursor:pointer;transition:background-color .15s ease,color .15s ease}.motion-study-event-trigger:hover{color:#151515;background:var(--study-paper)}.motion-study-event-trigger:active{transform:scale(.985)}.motion-study-controls select{min-height:34px;padding:5px 8px;color:#151515;border:1px solid rgba(15,15,15,.22);border-radius:0;background:color-mix(in srgb,var(--study-paper) 94%,white);font:11px inherit}.motion-study-density{grid-template-columns:1fr!important;gap:7px!important}.motion-study-density>span{display:flex;justify-content:space-between}.motion-study-density output{font-variant-numeric:tabular-nums;font-weight:500}.motion-study-controls input[type=range]{accent-color:#151515}.motion-study-colors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.motion-study-colors label{min-height:34px;display:grid;grid-template-columns:1fr 28px;align-items:center;gap:6px;padding:4px 5px 4px 8px;border:1px solid rgba(15,15,15,.18);font-size:10px}.motion-study-colors input[type=color]{width:28px;height:24px;padding:0;border:0;background:transparent;cursor:pointer}.motion-study-controls :is(summary,select,input):focus-visible{outline:2px solid #151515;outline-offset:2px}@media(max-width:720px){.motion-study-controls{inset:8px auto auto 8px;width:min(270px,calc(100vw - 16px))}.motion-study-controls select,.motion-study-colors label,.motion-study-event-trigger{min-height:44px}}@media(prefers-reduced-motion:reduce){.motion-study-01 canvas{animation:none}}.pixel-material-lab{--pixel-lab-void: #090a09;--pixel-lab-surface: #111510;--pixel-lab-raised: #171c15;--pixel-lab-white: #f1f2ed;--pixel-lab-muted: #949c90;--pixel-lab-acid: #d8ff32;--pixel-lab-moss: #48540f;--pixel-lab-line: rgba(241, 242, 237, .2);min-height:100vh;background:linear-gradient(rgba(241,242,237,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(241,242,237,.025) 1px,transparent 1px),var(--pixel-lab-void);background-size:48px 48px;color:var(--pixel-lab-white);font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif}.pixel-material-lab button,.pixel-material-lab a,.pixel-material-lab input{touch-action:manipulation}.pixel-material-lab-nav{min-height:72px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;padding:0 clamp(20px,4vw,72px);border-bottom:1px solid var(--pixel-lab-line);color:var(--pixel-lab-muted);font-family:"Fusion Pixel 12",JetBrains Mono,monospace;font-size:12px}.pixel-material-lab-nav a{color:inherit;text-decoration:none}.pixel-material-lab-nav a:first-child{color:var(--pixel-lab-acid)}.pixel-material-lab-nav a:last-child{justify-self:end}.pixel-material-intro{max-width:1600px;display:grid;grid-template-columns:minmax(60px,.18fr) minmax(0,1.4fr) minmax(280px,.65fr);gap:clamp(24px,4vw,72px);align-items:end;margin:0 auto;padding:clamp(72px,9vw,144px) clamp(20px,4vw,72px) clamp(60px,7vw,108px)}.pixel-material-intro-index,.pixel-material-intro>div>p,.pixel-material-intro-copy,.pixel-material-study-card header,.pixel-material-study-card dl,.pixel-material-controls,.pixel-material-pipeline,.pixel-material-lab-footer{font-family:"Fusion Pixel 12",JetBrains Mono,monospace}.pixel-material-intro-index{align-self:start;color:var(--pixel-lab-acid);font-size:18px}.pixel-material-intro>div>p{margin:0 0 28px;color:var(--pixel-lab-acid);font-size:12px}.pixel-material-intro h1{max-width:920px;margin:0;font-size:clamp(40px,4.8vw,78px);font-weight:600;letter-spacing:-.045em;line-height:1.02}.pixel-material-intro h1 span{display:block;white-space:nowrap}.pixel-material-intro-copy{max-width:420px;margin:0;padding-left:24px;border-left:6px solid var(--pixel-lab-moss);color:var(--pixel-lab-muted);font-size:14px;line-height:1.8}.pixel-material-controls{max-width:1600px;display:grid;grid-template-columns:1.35fr .8fr .8fr .75fr 1.25fr;margin:0 auto;border:1px solid var(--pixel-lab-line);background:#111510e0}.pixel-material-control-group,.pixel-material-playback{min-width:0;min-height:108px;display:flex;flex-direction:column;justify-content:space-between;gap:16px;padding:20px 22px;border-right:1px solid var(--pixel-lab-line)}.pixel-material-control-group>span,.pixel-material-playback>span{color:var(--pixel-lab-muted);font-size:11px}.pixel-material-control-group output{float:right;color:var(--pixel-lab-acid)}.pixel-material-control-group>div,.pixel-material-playback{flex-direction:row;flex-wrap:wrap;align-items:center}.pixel-material-control-group>div{display:flex;gap:6px}.pixel-material-control-group button,.pixel-material-playback button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 12px;border:1px solid var(--pixel-lab-line);background:transparent;color:var(--pixel-lab-muted);font:inherit;font-size:11px;cursor:pointer;transition:color .14s ease,border-color .14s ease,background-color .14s ease}.pixel-material-control-group button.is-active{border-color:var(--pixel-lab-acid);background:var(--pixel-lab-acid);color:var(--pixel-lab-void)}.pixel-material-playback{min-height:108px;border-right:0}.pixel-material-playback>span{flex-basis:100%;color:var(--pixel-lab-acid)}.pixel-material-playback button svg{width:14px;height:14px}.pixel-material-playback button:disabled{cursor:not-allowed;opacity:.45}.pixel-material-control-group input[type=range]{width:100%;height:18px;margin:0;accent-color:var(--pixel-lab-acid);cursor:pointer}.pixel-material-studies{max-width:1600px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin:clamp(32px,4vw,64px) auto 0;padding:1px;background:var(--pixel-lab-line)}.pixel-material-study-card{min-width:0;padding:clamp(18px,2vw,30px);background:var(--pixel-lab-void)}.pixel-material-study-card header{min-height:82px;display:grid;grid-template-columns:48px 1fr;gap:16px;align-items:start}.pixel-material-study-card header>span{color:var(--pixel-lab-acid);font-size:16px}.pixel-material-study-card header p{margin:0 0 10px;color:var(--pixel-lab-muted);font-size:10px}.pixel-material-study-card h2{margin:0;font-size:clamp(24px,2vw,34px);font-weight:400}.pixel-material-frame{position:relative;overflow:hidden;aspect-ratio:16 / 9;border:1px solid var(--pixel-lab-line);background:var(--pixel-lab-void)}.pixel-material-frame:after{position:absolute;inset:0;pointer-events:none;content:"";background:repeating-linear-gradient(180deg,rgba(241,242,237,.025) 0,rgba(241,242,237,.025) 1px,transparent 1px,transparent 4px)}.pixel-material-canvas{width:100%;height:100%;display:block;image-rendering:crisp-edges;image-rendering:pixelated}.pixel-material-vector-stage{position:absolute;inset:0;overflow:hidden;background:var(--pixel-lab-void)}.pixel-material-vector-orb{position:absolute;border-radius:50%;background:radial-gradient(circle at 30% 24%,#f1f2ed 0 4%,#d8ff32 13%,#48540f 58%,#090a09 72%)}.pixel-material-vector-orb.is-one{width:38%;aspect-ratio:1;top:16%;left:13%;transform:rotate(-14deg) scaleY(.78)}.pixel-material-vector-orb.is-two{width:31%;aspect-ratio:1;right:12%;bottom:12%;transform:rotate(21deg) scaleY(.66)}.pixel-material-vector-cells{position:absolute;inset:0}.pixel-material-vector-cells i{position:absolute;background:var(--pixel-lab-acid);box-shadow:6px 6px #48540f9e;opacity:0;animation:pixel-material-vector-pulse .56s steps(4,end) var(--cell-delay) both}@keyframes pixel-material-vector-pulse{0%{opacity:0;transform:translate(0)}34%{opacity:.94;transform:translate(var(--cell-x),var(--cell-y))}72%{opacity:.72;transform:translate(var(--cell-return-x),var(--cell-return-y))}to{opacity:0;transform:translate(0)}}.pixel-material-card-description{min-height:86px;margin:22px 0;color:var(--pixel-lab-muted);font-size:14px;line-height:1.75}.pixel-material-study-card dl{margin:0;border-top:1px solid var(--pixel-lab-line)}.pixel-material-study-card dl>div{display:grid;grid-template-columns:92px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--pixel-lab-line);font-size:10px}.pixel-material-study-card dt{color:var(--pixel-lab-muted)}.pixel-material-study-card dd{margin:0;color:var(--pixel-lab-white)}.pixel-material-pipeline{max-width:1600px;display:grid;grid-template-columns:repeat(5,1fr);margin:1px auto 0;border:1px solid var(--pixel-lab-line)}.pixel-material-pipeline>div{min-height:96px;display:flex;flex-direction:column;justify-content:space-between;padding:18px 20px;border-right:1px solid var(--pixel-lab-line)}.pixel-material-pipeline>div:last-child{border-right:0}.pixel-material-pipeline span{color:var(--pixel-lab-acid);font-size:10px}.pixel-material-pipeline strong{font-size:12px;font-weight:400}.pixel-material-transition-intro{max-width:1600px;display:grid;grid-template-columns:minmax(150px,.35fr) minmax(320px,.8fr) minmax(300px,.85fr);gap:clamp(24px,4vw,72px);align-items:end;margin:clamp(88px,10vw,160px) auto 0;padding:0 clamp(20px,4vw,72px) clamp(32px,4vw,64px);border-bottom:1px solid var(--pixel-lab-line)}.pixel-material-transition-intro>div:first-child,.pixel-material-transition-intro>p,.pixel-material-transition-actions,.pixel-material-transition-card header,.pixel-material-transition-card dl,.pixel-material-transition-timeline,.pixel-material-transition-readout,.pixel-material-transition-projects,.pixel-material-transition-loading,.pixel-material-transition-review{font-family:"Fusion Pixel 12",JetBrains Mono,monospace}.pixel-material-transition-intro>div:first-child{align-self:start}.pixel-material-transition-intro>div:first-child span{display:block;margin-bottom:16px;color:var(--pixel-lab-acid);font-size:16px}.pixel-material-transition-intro>div:first-child p{max-width:180px;margin:0;color:var(--pixel-lab-muted);font-size:10px;line-height:1.6}.pixel-material-transition-intro h2{margin:0;font-size:clamp(32px,4vw,64px);font-weight:500;letter-spacing:-.04em;line-height:1}.pixel-material-transition-intro>p{max-width:500px;margin:0;color:var(--pixel-lab-muted);font-size:13px;line-height:1.8}.pixel-material-transition-actions{grid-column:2 / -1;display:flex;flex-wrap:wrap;gap:8px;padding-top:4px}.pixel-material-transition-actions button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:0 15px;border:1px solid var(--pixel-lab-line);background:transparent;color:var(--pixel-lab-white);font:inherit;font-size:11px;cursor:pointer;transition:color .14s ease,border-color .14s ease,background-color .14s ease}.pixel-material-transition-actions button:first-child{border-color:var(--pixel-lab-acid);background:var(--pixel-lab-acid);color:var(--pixel-lab-void)}.pixel-material-transition-actions button.is-active{border-color:var(--pixel-lab-acid);color:var(--pixel-lab-acid)}.pixel-material-transition-actions svg{width:14px;height:14px}.pixel-material-transition-grid{max-width:1600px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:1px auto 0;padding:1px;background:var(--pixel-lab-line)}.pixel-material-transition-card{min-width:0;padding:clamp(20px,2.5vw,38px);background:var(--pixel-lab-void)}.pixel-material-transition-card header{min-height:92px;display:grid;grid-template-columns:52px 1fr;gap:16px;align-items:start}.pixel-material-transition-card header>span{color:var(--pixel-lab-acid);font-size:22px}.pixel-material-transition-card header p{margin:0 0 11px;color:var(--pixel-lab-muted);font-size:10px}.pixel-material-transition-card h3{margin:0;font-size:clamp(25px,2.5vw,40px);font-weight:400}.pixel-material-transition-stage{position:relative;overflow:hidden;aspect-ratio:16 / 9;border:1px solid var(--pixel-lab-line);background:var(--pixel-lab-void);isolation:isolate}.pixel-material-transition-image,.pixel-material-transition-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;-o-object-fit:cover;object-fit:cover}.pixel-material-transition-image.is-target{z-index:0}.pixel-material-transition-image.is-source{z-index:1}.pixel-material-transition-canvas{z-index:2;opacity:0;image-rendering:crisp-edges;image-rendering:pixelated}.pixel-material-transition-readout,.pixel-material-transition-projects{position:absolute;z-index:3;display:flex;align-items:center;border:1px solid rgba(241,242,237,.34);background:#090a09e0;color:var(--pixel-lab-white);font-size:10px;pointer-events:none}.pixel-material-transition-readout{top:12px;left:12px}.pixel-material-transition-readout span,.pixel-material-transition-readout output{min-height:30px;display:flex;align-items:center;padding:0 10px}.pixel-material-transition-readout span{background:var(--pixel-lab-acid);color:var(--pixel-lab-void)}.pixel-material-transition-readout output{border-left:1px solid rgba(241,242,237,.34)}.pixel-material-transition-projects{right:12px;bottom:12px;gap:9px;min-height:30px;padding:0 10px}.pixel-material-transition-projects i{color:var(--pixel-lab-acid);font-style:normal}.pixel-material-transition-loading{position:absolute;inset:0;z-index:4;display:grid;place-items:center;background:var(--pixel-lab-void);color:var(--pixel-lab-muted);font-size:11px}.pixel-material-transition-timeline{display:grid;grid-template-columns:18fr 28fr 36fr 18fr;margin-top:1px;gap:1px;background:var(--pixel-lab-line)}.pixel-material-transition-timeline>div{min-width:0;min-height:58px;display:flex;flex-direction:column;justify-content:space-between;padding:10px;background:var(--pixel-lab-surface)}.pixel-material-transition-timeline span{color:var(--pixel-lab-white);font-size:10px}.pixel-material-transition-timeline small{color:var(--pixel-lab-muted);font-size:8px}.pixel-material-transition-card>p{min-height:74px;margin:24px 0;color:var(--pixel-lab-muted);font-size:14px;line-height:1.75}.pixel-material-transition-card dl{margin:0;border-top:1px solid var(--pixel-lab-line)}.pixel-material-transition-card dl>div{display:grid;grid-template-columns:96px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--pixel-lab-line);font-size:10px}.pixel-material-transition-card dt{color:var(--pixel-lab-muted)}.pixel-material-transition-card dd{margin:0;color:var(--pixel-lab-white)}.pixel-material-transition-review{max-width:1600px;display:grid;grid-template-columns:.35fr .65fr 1fr;gap:clamp(24px,4vw,72px);margin:1px auto 0;padding:clamp(32px,4vw,64px) clamp(20px,4vw,72px);border:1px solid var(--pixel-lab-line)}.pixel-material-transition-review>span{color:var(--pixel-lab-acid);font-size:11px}.pixel-material-transition-review h2{margin:0;font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif;font-size:clamp(26px,3vw,44px);font-weight:500;letter-spacing:-.03em}.pixel-material-transition-review ol{margin:0;padding-left:1.5em;color:var(--pixel-lab-muted);font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif;font-size:14px;line-height:1.85}.pixel-material-lab-footer{max-width:1600px;min-height:180px;display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 auto;padding:48px 0;color:var(--pixel-lab-muted);font-size:12px}.pixel-material-lab-footer a{color:var(--pixel-lab-acid);text-decoration:none}@media(hover:hover)and (pointer:fine){.pixel-material-control-group button:hover,.pixel-material-playback button:hover,.pixel-material-transition-actions button:hover,.pixel-material-lab-nav a:hover,.pixel-material-lab-footer a:hover{color:var(--pixel-lab-acid);border-color:var(--pixel-lab-acid)}.pixel-material-control-group button.is-active:hover,.pixel-material-transition-actions button:first-child:hover{color:var(--pixel-lab-void)}}@media(max-width:1180px){.pixel-material-controls{grid-template-columns:repeat(2,minmax(0,1fr));margin-inline:20px}.pixel-material-control-group,.pixel-material-playback{border-bottom:1px solid var(--pixel-lab-line)}.pixel-material-playback{grid-column:1 / -1}.pixel-material-studies,.pixel-material-pipeline,.pixel-material-transition-grid,.pixel-material-transition-review,.pixel-material-lab-footer{margin-inline:20px}.pixel-material-studies{grid-template-columns:1fr}.pixel-material-study-card{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr);-moz-column-gap:28px;column-gap:28px}.pixel-material-study-card header,.pixel-material-frame{grid-column:1}.pixel-material-card-description,.pixel-material-study-card dl{grid-column:2}.pixel-material-card-description{grid-row:1;margin-top:0}.pixel-material-study-card dl{grid-row:2;align-self:end}.pixel-material-transition-intro{grid-template-columns:.4fr 1fr;margin-inline:20px;padding-inline:20px}.pixel-material-transition-intro>p{grid-column:2}.pixel-material-transition-actions{grid-column:2}.pixel-material-transition-grid{grid-template-columns:1fr}.pixel-material-transition-review{grid-template-columns:.4fr 1fr}.pixel-material-transition-review ol{grid-column:2}}@media(max-width:760px){.pixel-material-lab-nav{min-height:64px;grid-template-columns:1fr auto;padding-inline:16px}.pixel-material-lab-nav>span{display:none}.pixel-material-intro{grid-template-columns:1fr;gap:20px;padding:64px 20px 48px}.pixel-material-intro-index{font-size:14px}.pixel-material-intro>div>p{margin-bottom:18px}.pixel-material-intro h1{font-size:clamp(28px,9vw,38px)}.pixel-material-intro h1 span{white-space:nowrap}.pixel-material-intro-copy{padding-left:18px;font-size:13px}.pixel-material-controls{grid-template-columns:1fr}.pixel-material-control-group,.pixel-material-playback{min-height:96px;border-right:0}.pixel-material-playback{grid-column:auto}.pixel-material-study-card{display:block;padding:18px}.pixel-material-study-card header{grid-template-columns:40px 1fr}.pixel-material-card-description{min-height:0}.pixel-material-pipeline{grid-template-columns:1fr}.pixel-material-pipeline>div{min-height:64px;flex-direction:row;align-items:center;border-right:0;border-bottom:1px solid var(--pixel-lab-line)}.pixel-material-pipeline>div:last-child{border-bottom:0}.pixel-material-transition-intro{grid-template-columns:1fr;gap:20px;margin-top:80px;padding:0 0 32px}.pixel-material-transition-intro>div:first-child p{max-width:none}.pixel-material-transition-intro>p,.pixel-material-transition-actions{grid-column:auto}.pixel-material-transition-intro h2{font-size:clamp(30px,10vw,40px)}.pixel-material-transition-card{padding:18px}.pixel-material-transition-card header{min-height:82px;grid-template-columns:40px 1fr}.pixel-material-transition-readout{top:8px;left:8px}.pixel-material-transition-projects{right:8px;bottom:8px}.pixel-material-transition-projects span:first-child,.pixel-material-transition-projects i{display:none}.pixel-material-transition-timeline>div{min-height:52px;padding:8px 5px}.pixel-material-transition-timeline span{font-size:9px}.pixel-material-transition-timeline small{font-size:7px}.pixel-material-transition-card>p{min-height:0}.pixel-material-transition-review{grid-template-columns:1fr;gap:18px;padding:28px 20px}.pixel-material-transition-review ol{grid-column:auto}.pixel-material-lab-footer{min-height:160px;align-items:flex-start;flex-direction:column;justify-content:center}}@media(prefers-reduced-motion:reduce){.pixel-material-lab *,.pixel-material-lab *:before,.pixel-material-lab *:after{animation:none;transition:none}.pixel-material-vector-cells,.pixel-material-transition-canvas{display:none}}.archive-shell{--portfolio-pixel-font: "Fusion Pixel 12", "JetBrains Mono", monospace;--portfolio-signal-acid: var(--site-active, #169eae);--portfolio-signal-void: var(--site-bg, #f3f5f3);--portfolio-signal-surface: rgb(from var(--site-veil-color, #f5f7f5) r g b / .92);--portfolio-signal-white: var(--site-ink, #172125);--portfolio-signal-muted: var(--site-muted, #69777a);--portfolio-signal-line: rgb(from var(--site-ink) r g b / .18);--portfolio-signal-line-strong: rgb(from var(--site-ink) r g b / .3);--portfolio-signal-cyan: var(--site-primary, #28b6c3);--portfolio-signal-teal: var(--site-deep, #2d929b);--valiente-bg: var(--portfolio-signal-void);--valiente-red: var(--portfolio-signal-acid);--valiente-dark: var(--portfolio-signal-white);--valiente-gray: var(--portfolio-signal-muted);min-height:100vh;padding-top:calc(64px + var(--crt-bezel, 0px));padding-right:var(--crt-bezel, 0px);padding-bottom:var(--crt-bezel, 0px);padding-left:var(--crt-bezel, 0px);position:relative;isolation:isolate;background:rgb(from var(--site-bg, #f3f5f3) r g b / .88);color:var(--valiente-dark)}.archive-shell>:not(.portfolio-dither-background):not(.archive-navigation){position:relative;z-index:1}.archive-shell button,.archive-shell a{font:inherit}.archive-navigation{position:fixed;top:var(--crt-bezel, 0px);right:var(--crt-bezel, 0px);left:var(--crt-bezel, 0px);z-index:100;display:flex;min-height:64px;align-items:center;justify-content:space-between;padding:0 clamp(1.5rem,5vw,6rem);background:rgb(from var(--site-veil-color) r g b / .94);border-bottom:1px solid var(--portfolio-signal-line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.archive-brand,.archive-back{display:inline-flex;align-items:center;color:var(--valiente-dark);text-decoration:none}.archive-brand{gap:.75rem;font-family:var(--portfolio-pixel-font);font-size:16px;font-weight:400}.archive-brand small,.archive-back{color:var(--valiente-gray);font-family:var(--portfolio-pixel-font);font-size:12px;font-weight:400;letter-spacing:0;line-height:24px;text-transform:uppercase}.archive-back{gap:.5rem}.archive-back svg{width:14px;height:14px}.archive-brand:hover small,.archive-brand:focus-visible small,.archive-back:hover,.archive-back:focus-visible{color:var(--valiente-red)}.archive-main,.archive-footer{width:min(100%,1800px);margin:0 auto;padding-right:clamp(1.5rem,5vw,6rem);padding-left:clamp(1.5rem,5vw,6rem)}.archive-intro{padding:clamp(3rem,7vw,7rem) 0 clamp(2.5rem,5vw,5rem)}.archive-intro-meta,.archive-preview-meta,.archive-footer{display:flex;align-items:center;justify-content:space-between;color:var(--valiente-gray);font-family:var(--portfolio-pixel-font);font-size:12px;letter-spacing:0;line-height:24px;text-transform:uppercase}.archive-intro h1{margin:clamp(1.5rem,3vw,3rem) 0 0;color:var(--valiente-red);font-family:var(--portfolio-pixel-font);font-size:clamp(72px,12vw,144px);font-weight:400;letter-spacing:0;line-height:.84;font-synthesis:none}.archive-intro>p{max-width:720px;margin:clamp(2.5rem,5vw,5rem) 0 0 auto;font-family:var(--portfolio-pixel-font);font-size:clamp(.75rem,1vw,.95rem);font-weight:300;line-height:1.85}.archive-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--portfolio-signal-line-strong);border-bottom:1px solid var(--portfolio-signal-line-strong)}.archive-filters button{display:flex;min-width:0;min-height:64px;align-items:center;justify-content:space-between;gap:1rem;padding:0 1.25rem;border:0;border-right:1px solid var(--portfolio-signal-line);background:var(--portfolio-signal-surface);color:var(--valiente-gray);font-family:var(--portfolio-pixel-font);font-size:12px;letter-spacing:0;line-height:24px;text-align:left;text-transform:uppercase;cursor:pointer}.archive-filters button:last-child{border-right:0}.archive-filters button:hover,.archive-filters button:focus-visible{background:rgb(from var(--site-primary) r g b / .08);color:var(--valiente-red)}.archive-filters button.is-active{background:rgb(from var(--site-primary) r g b / .1);box-shadow:inset 0 0 0 1px rgb(from var(--site-active) r g b / .52);color:var(--valiente-red)}.archive-filter-short{display:none}.archive-browser{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);gap:clamp(2rem,5vw,6rem);align-items:start;padding:clamp(3rem,6vw,6rem) 0 clamp(5rem,9vw,9rem)}.archive-list-labels,.archive-project-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(110px,.3fr) 54px 18px;gap:1rem;align-items:center}.archive-list-labels{padding:.65rem 1rem;color:var(--valiente-gray);font-family:var(--portfolio-pixel-font);font-size:12px;letter-spacing:0;line-height:24px}.archive-list-labels span:nth-child(2){grid-column:2}.archive-list-labels span:nth-child(3){grid-column:3}.archive-list-rows{border-top:1px solid var(--portfolio-signal-line-strong)}.archive-project-row{width:100%;min-height:74px;padding:.75rem 1rem;border:0;border-bottom:1px solid var(--portfolio-signal-line);background:transparent;color:var(--valiente-dark);text-align:left;cursor:pointer;transition:color .12s ease-out,background-color .12s ease-out}.archive-project-name{display:grid;grid-template-columns:32px minmax(0,1fr);gap:.75rem;align-items:baseline;min-width:0}.archive-project-name small,.archive-project-track,.archive-project-year{color:var(--valiente-gray);font-family:var(--portfolio-pixel-font);font-size:12px;font-weight:400;letter-spacing:0;line-height:24px;text-transform:uppercase}.archive-project-name strong{min-width:0;font-family:var(--portfolio-pixel-font);font-size:clamp(1rem,1.35vw,1.4rem);font-weight:400;letter-spacing:-.035em;line-height:1.08;overflow-wrap:anywhere}.archive-project-row>svg{width:16px;height:16px;color:var(--valiente-gray)}.archive-project-row:hover,.archive-project-row:focus-visible,.archive-project-row.is-selected{color:var(--valiente-red);background:rgb(from var(--site-primary) r g b / .08)}.archive-project-row:hover .archive-project-name small,.archive-project-row:hover .archive-project-track,.archive-project-row:hover .archive-project-year,.archive-project-row:hover>svg,.archive-project-row:focus-visible .archive-project-name small,.archive-project-row:focus-visible .archive-project-track,.archive-project-row:focus-visible .archive-project-year,.archive-project-row:focus-visible>svg,.archive-project-row.is-selected .archive-project-name small,.archive-project-row.is-selected .archive-project-track,.archive-project-row.is-selected .archive-project-year,.archive-project-row.is-selected>svg{color:currentColor}.archive-desktop-preview{position:sticky;top:calc(96px + var(--crt-bezel, 0px));min-width:0}.archive-preview{padding:0 1.5rem 1.5rem}.archive-preview-media{width:auto;margin:0 -1.5rem;overflow:hidden;aspect-ratio:16 / 9;background:var(--valiente-dark);border:1px solid var(--portfolio-signal-line-strong)}.archive-preview-media>video,.archive-preview-media>img,.archive-preview-media>iframe,.archive-video-stage,.archive-texture-grid{display:block;width:100%;height:100%;border:0;-o-object-fit:cover;object-fit:cover}.archive-video-stage{position:relative}.archive-video-stage img,.archive-video-stage video{position:absolute;inset:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.archive-video-stage video{opacity:0}.archive-video-stage video.is-ready{opacity:1}.archive-texture-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.archive-texture-grid img{width:100%;height:100%;min-height:0;-o-object-fit:cover;object-fit:cover}.archive-media-empty{display:grid;height:100%;place-items:center;color:#e8e8e59e;font-family:var(--portfolio-pixel-font);font-size:12px;letter-spacing:0;line-height:24px}.archive-preview-meta{margin-top:1rem}.archive-preview h2{max-width:18ch;margin:1.4rem 0 0;font-size:clamp(2rem,4.3vw,4.5rem);font-weight:400;letter-spacing:-.06em;line-height:.95;text-wrap:balance;word-break:keep-all;overflow-wrap:anywhere}.archive-preview>p{max-width:58ch;margin:1.25rem 0 0;color:var(--valiente-gray);font-family:var(--portfolio-pixel-font);font-size:.72rem;font-weight:300;line-height:1.75}.archive-preview-footer{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;margin-top:1.75rem;padding-top:1rem;border-top:1px solid var(--portfolio-signal-line-strong)}.archive-preview-footer ul{display:flex;flex-wrap:wrap;gap:.35rem;margin:0;padding:0;list-style:none}.archive-preview-footer li{padding:.45rem .6rem;border:1px solid var(--portfolio-signal-line);color:var(--valiente-gray);font-family:var(--portfolio-pixel-font);font-size:12px;letter-spacing:0;line-height:18px;text-transform:uppercase}.archive-preview-footer a,.archive-preview-footer button{display:inline-flex;flex:0 0 auto;align-items:center;gap:.5rem;min-height:40px;padding:.65rem .8rem;border:1px solid var(--portfolio-signal-cyan);background:var(--portfolio-signal-cyan);color:var(--site-veil-color, #f5f7f5);font-family:var(--portfolio-pixel-font);font-size:12px;letter-spacing:0;line-height:24px;text-decoration:none;cursor:pointer}.archive-preview-footer a svg,.archive-preview-footer button svg{width:14px;height:14px}.archive-mobile-preview{display:none}.archive-footer{min-height:88px;border-top:1px solid var(--portfolio-signal-line-strong)}.archive-footer a{color:inherit;text-decoration:none}.archive-footer a:hover,.archive-footer a:focus-visible{color:var(--valiente-red)}@media(max-width:980px){.archive-browser{grid-template-columns:minmax(0,1fr) minmax(300px,.8fr);gap:2rem}.archive-list-labels,.archive-project-row{grid-template-columns:minmax(0,1fr) 42px 18px}.archive-list-labels span:nth-child(2),.archive-project-track{display:none}.archive-list-labels span:nth-child(3){grid-column:2}}@media(max-width:760px){.archive-brand small,.archive-back{font-size:.56rem}.archive-brand small{display:none}.archive-intro{padding-top:3rem}.archive-intro h1{font-size:clamp(60px,18vw,84px)}.archive-intro>p{margin-top:2.5rem}.archive-filters button{min-height:56px;padding:0 .75rem}.archive-filter-label{display:none}.archive-filter-short{display:inline}.archive-browser{display:block;padding-top:2.5rem}.archive-desktop-preview{display:none}.archive-mobile-preview{display:block;padding:1.25rem 0 2rem;border-bottom:1px solid var(--portfolio-signal-line-strong)}.archive-project-row.is-selected{border-bottom-color:transparent}.archive-preview h2{max-width:100%;font-size:clamp(2rem,10vw,3.4rem)}.archive-preview-footer{align-items:stretch;flex-direction:column}.archive-preview-footer a,.archive-preview-footer button{justify-content:space-between}}@media(max-width:440px){.archive-navigation,.archive-main,.archive-footer{padding-right:1rem;padding-left:1rem}.archive-intro-meta span:first-child{display:none}.archive-intro-meta{justify-content:flex-end}.archive-filters{grid-template-columns:repeat(4,minmax(0,1fr))}.archive-filters button{gap:.3rem;padding:0 .4rem}.archive-list-labels,.archive-project-row{grid-template-columns:minmax(0,1fr) 18px;gap:.65rem}.archive-list-labels span:nth-child(3),.archive-project-year{display:none}.archive-project-name{grid-template-columns:25px minmax(0,1fr);gap:.5rem}.archive-footer span{display:none}.archive-footer{justify-content:flex-end}}.archive-intro{position:relative}.archive-intro:after{position:absolute;right:0;bottom:0;width:min(288px,54vw);height:6px;content:"";background:repeating-linear-gradient(90deg,var(--portfolio-signal-acid) 0 12px,transparent 12px 24px);transform-origin:right center;animation:archive-signal-in .18s ease-out both}@keyframes archive-signal-in{0%{opacity:.32;transform:scaleX(.34)}to{opacity:1;transform:scaleX(1)}}.archive-preview{animation:archive-preview-in .18s ease-out both}@keyframes archive-preview-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.archive-preview-footer a,.archive-preview-footer button,.archive-back,.archive-brand,.archive-filters button{transition:color .12s ease-out,background-color .12s ease-out,border-color .12s ease-out,transform .12s ease-out}.archive-preview-footer a:active,.archive-preview-footer button:active,.archive-back:active,.archive-brand:active,.archive-filters button:active{transform:scale(.985)}.archive-shell{background:rgb(from var(--site-bg, #f3f5f3) r g b / .86)}.archive-navigation{background:rgb(from var(--site-veil-color) r g b / .94);border-bottom-color:rgb(from var(--site-deep) r g b / .42);box-shadow:0 1px rgb(from var(--site-veil-color) r g b / .72)}.archive-intro,.archive-browser,.archive-footer{background:rgb(from var(--site-veil-color) r g b / var(--site-veil, .74));box-shadow:0 0 0 100vmax rgb(from var(--site-veil-color) r g b / var(--site-veil, .74));clip-path:inset(0 -100vmax)}.archive-project-row.is-selected,.archive-filters button.is-active{background:rgb(from var(--site-primary) r g b / .1)}.archive-preview,.archive-list{background:rgb(from var(--site-veil-color) r g b / .9)}.archive-filters{background:rgb(from var(--site-veil-color) r g b / var(--site-veil, .74));box-shadow:0 0 0 100vmax rgb(from var(--site-veil-color) r g b / var(--site-veil, .74));clip-path:inset(0 -100vmax)}.archive-preview-media,.archive-video-stage,.archive-media-empty{background:var(--site-ink, #172125)}@media(prefers-reduced-motion:reduce){.archive-shell *,.archive-shell *:before,.archive-shell *:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.archive-preview-footer a:active,.archive-preview-footer button:active,.archive-back:active,.archive-brand:active,.archive-filters button:active{transform:none}}.archive-shell,.archive-shell *{font-family:var(--portfolio-pixel-font)!important}.resume-download-with-switch{display:flex;flex-direction:column;gap:.5rem}.resume-download-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.resume-download-options{display:inline-flex;border:1px solid var(--site-deep, #67716a);border-radius:2px;overflow:hidden}.resume-download-options button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;color:var(--site-ink, #e9ece7);font-family:inherit;font-size:.75rem;line-height:1;padding:.35rem .6rem;border:none;border-right:1px solid var(--site-deep, #67716a);cursor:pointer;transition:background-color .12s ease,color .12s ease}.resume-download-options button:last-child{border-right:none}.resume-download-options button.is-active,.resume-download-options button:hover{background:var(--site-active, #f4f7f2);color:var(--site-bg, #0b0d0c)}.resume-download-link{display:inline-flex;align-items:center;justify-content:center;color:var(--site-ink, #e9ece7);text-decoration:none;border:1px solid var(--site-deep, #67716a);border-radius:2px;padding:.35rem .5rem;transition:background-color .12s ease,color .12s ease}.resume-download-link:hover{background:var(--site-active, #f4f7f2);color:var(--site-bg, #0b0d0c)}.resume-download-hero{display:inline-flex;align-items:center;gap:.5rem;padding:0;overflow:hidden}.resume-download-hero .resume-download-options button{padding:.55rem .75rem;font-size:.8rem}.resume-download-hero .resume-download-link{align-self:stretch;padding:.55rem .9rem;border:none;border-left:1px solid var(--site-deep, #67716a);border-radius:0}@font-face{font-family:"Fusion Pixel 12";src:url(../fonts/fusion-pixel/fusion-pixel-12px-proportional-zh_hans.otf.woff2) format("woff2");font-display:swap;font-style:normal;font-weight:400}.portfolio-shell{--portfolio-pixel-font: "Fusion Pixel 12", "JetBrains Mono", monospace;--portfolio-signal-acid: var(--site-active, #169eae);--portfolio-signal-void: var(--site-bg, #f3f5f3);--portfolio-signal-surface: rgb(from var(--site-veil-color, #f5f7f5) r g b / .9);--portfolio-signal-surface-raised: rgb(from var(--site-veil-color, #f5f7f5) r g b / .96);--portfolio-signal-white: var(--site-ink, #172125);--portfolio-signal-muted: var(--site-muted, #69777a);--portfolio-signal-line: rgb(from var(--site-ink) r g b / .18);--portfolio-signal-line-strong: rgb(from var(--site-ink) r g b / .3);--portfolio-signal-cyan: var(--site-primary, #28b6c3);--portfolio-signal-teal: var(--site-deep, #2d929b);--valiente-bg: var(--portfolio-signal-void);--valiente-red: var(--portfolio-signal-acid);--valiente-dark: var(--portfolio-signal-white);--valiente-gray: var(--portfolio-signal-muted);--valiente-light: var(--portfolio-signal-surface-raised);min-height:100vh;padding-top:calc(64px + var(--crt-bezel, 0px));padding-right:var(--crt-bezel, 0px);padding-bottom:var(--crt-bezel, 0px);padding-left:var(--crt-bezel, 0px);position:relative;isolation:isolate;background:rgb(from var(--site-bg, #f3f5f3) r g b / .88);color:var(--valiente-dark)}.portfolio-shell>:not(.portfolio-dither-background):not(.portfolio-navigation){position:relative;z-index:1}.portfolio-shell button,.portfolio-shell a{font:inherit}.portfolio-archive-entry{--portfolio-archive-inline-padding: clamp(1rem, 1.5vw, 1.5rem);display:block;color:inherit;text-decoration:none}.portfolio-archive-entry:hover,.portfolio-archive-entry:focus-visible{color:var(--valiente-red);background-color:rgb(from var(--site-active) r g b / .1)}.portfolio-archive-open{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:58px;padding:0 var(--portfolio-archive-inline-padding);border-bottom:1px solid rgb(from var(--site-ink) r g b / .35);color:currentColor;font-family:var(--portfolio-pixel-font);font-size:12px;letter-spacing:0;line-height:24px}.portfolio-archive-open svg{width:16px;height:16px}.portfolio-navigation{position:fixed;top:var(--crt-bezel, 0px);right:var(--crt-bezel, 0px);left:var(--crt-bezel, 0px);z-index:100;display:flex;align-items:center;justify-content:space-between;min-height:64px;padding:0 3rem;background:rgb(from var(--site-veil-color) r g b / .94);border-bottom:1px solid var(--portfolio-signal-line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.portfolio-navigation-brand{display:flex;align-items:baseline;gap:.75rem;color:var(--valiente-dark);min-height:36px;padding:0 12px;border:1px solid transparent;font-family:var(--portfolio-pixel-font);font-size:16px;font-weight:400;letter-spacing:0;text-decoration:none;transition:color .12s steps(1,start),background-color .12s steps(1,start),border-color .12s steps(1,start)}.portfolio-navigation-brand small,.portfolio-navigation-links a{color:var(--valiente-gray);font-family:var(--portfolio-pixel-font);font-size:12px;font-weight:400;letter-spacing:0;line-height:24px;text-transform:uppercase}.portfolio-navigation-links{display:flex;align-items:center;gap:clamp(1rem,2.4vw,2.5rem)}.portfolio-navigation-toggle,.portfolio-navigation-mobile-menu{display:none}.portfolio-navigation-links a{min-height:36px;display:inline-flex;align-items:center;gap:6px;padding:0 12px;border:1px solid transparent;text-decoration:none;transition:color .12s steps(1,start),background-color .12s steps(1,start),border-color .12s steps(1,start)}.portfolio-navigation-links a:before{width:6px;height:6px;content:"";background:currentColor;opacity:0;transition:opacity .12s steps(1,start)}.portfolio-navigation-links a:hover,.portfolio-navigation-links a:focus-visible{color:var(--valiente-red)}.portfolio-navigation-brand.is-current{border-color:transparent;background:transparent;color:var(--portfolio-signal-acid)}.portfolio-navigation-links a.is-current{border-color:rgb(from var(--site-active) r g b / .52);background:rgb(from var(--site-active) r g b / .08);color:var(--portfolio-signal-acid)}.portfolio-navigation-brand.is-current small,.portfolio-navigation-links a.is-current:hover,.portfolio-navigation-links a.is-current:focus-visible{color:var(--portfolio-signal-acid)}.portfolio-navigation-brand.is-current:focus-visible,.portfolio-navigation-links a.is-current:focus-visible{outline-color:var(--portfolio-signal-acid)}.portfolio-navigation-links a.is-current:before{opacity:1}.portfolio-hero,.portfolio-section{width:min(100%,1800px);margin:0 auto;padding-right:clamp(1.5rem,5vw,6rem);padding-left:clamp(1.5rem,5vw,6rem)}.portfolio-hero,.portfolio-section[id]{scroll-margin-top:calc(80px + var(--crt-bezel, 0px))}.portfolio-hero{min-height:calc(100svh - 64px - var(--crt-bezel, 0px) * 2);display:grid;grid-template-rows:1fr auto;padding-top:2rem;padding-bottom:2rem}.portfolio-hero>*,.portfolio-hero-main>*,.portfolio-hero-identity>*,.portfolio-hero-statement>*,.portfolio-hero-capabilities>*{min-width:0}.portfolio-hero-meta,.portfolio-project-meta,.portfolio-footer{display:flex;align-items:center;justify-content:space-between;color:var(--valiente-gray);font-family:var(--portfolio-pixel-font);font-size:12px;letter-spacing:0;line-height:24px;text-transform:uppercase}.portfolio-project-meta{width:100%}.portfolio-hero-identity{display:grid;justify-items:start}.portfolio-hero-identity .portfolio-hero-meta{display:block;margin:0 0 clamp(1.25rem,2.5vw,2rem)}.portfolio-hero-identity .section-label{margin:0;color:var(--valiente-dark)}.portfolio-hero-main{align-self:center;padding:clamp(2.5rem,4.5vw,4.5rem) 0}.portfolio-hero-main h1{margin:1.25rem 0 0;color:var(--valiente-red);font-family:var(--portfolio-pixel-font);font-size:clamp(60px,8vw,96px);font-weight:400;letter-spacing:0;line-height:.9;text-transform:uppercase;font-synthesis:none}.portfolio-hero-main h1 span{display:block}.portfolio-hero-statement{display:grid;grid-template-columns:minmax(0,1fr);gap:2rem;align-items:end;margin-top:clamp(1.75rem,3vw,3rem);padding-top:1.5rem;border-top:1px solid rgb(from var(--site-ink) r g b / .35)}.portfolio-hero-statement>p{max-width:760px;margin:0;font-family:JetBrains Mono,monospace;font-size:clamp(.8rem,1.2vw,1rem);font-weight:300;line-height:1.9}.portfolio-hero-actions{display:flex;justify-content:flex-start;gap:.75rem;flex-wrap:wrap}.portfolio-primary-action,.portfolio-secondary-action,.portfolio-project-action{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:.75rem 1rem;border:1px solid var(--valiente-dark);color:var(--valiente-dark);background:transparent;font-family:var(--portfolio-pixel-font);font-size:12px;letter-spacing:0;line-height:24px;text-decoration:none;text-transform:uppercase}.portfolio-primary-action{border-color:var(--valiente-red);background:var(--valiente-red);color:var(--portfolio-signal-void)}.portfolio-secondary-action{border-color:rgb(from var(--site-ink) r g b / .5);color:var(--valiente-gray)}.portfolio-hero-capabilities{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgb(from var(--site-ink) r g b / .35);border-bottom:1px solid rgb(from var(--site-ink) r g b / .35)}.portfolio-hero-capabilities span{padding:1rem .75rem;color:var(--valiente-gray);font-family:var(--portfolio-pixel-font);font-size:12px;letter-spacing:0;line-height:24px;text-align:center;text-transform:uppercase;border-right:1px solid rgb(from var(--site-ink) r g b / .25)}.portfolio-hero-capabilities span:last-child{border-right:0}.portfolio-section{padding-top:clamp(6rem,10vw,11rem);padding-bottom:clamp(6rem,10vw,11rem);border-bottom:1px solid rgb(from var(--site-ink) r g b / .35)}.portfolio-section-heading{display:grid;grid-template-columns:minmax(0,1fr);gap:1.25rem;margin-bottom:clamp(3rem,7vw,6rem)}.portfolio-section-marker{display:flex;align-items:center;gap:1rem;align-self:start;padding-top:.35rem;color:var(--valiente-red);font-family:var(--portfolio-pixel-font);font-size:12px;line-height:24px}.portfolio-marker-line{width:min(12vw,96px);height:12px;opacity:.38;transform:scaleX(.34);transform-origin:left center;background:repeating-linear-gradient(90deg,var(--valiente-red) 0 12px,transparent 12px 24px);transition:opacity .12s ease-out,transform .18s ease-out}.portfolio-section-heading-copy h2{margin:.75rem 0 0;font-family:var(--portfolio-pixel-font);font-size:clamp(48px,6vw,84px);font-weight:400;letter-spacing:0;line-height:1;font-synthesis:none}.portfolio-shell .section-label{font-family:var(--portfolio-pixel-font);font-size:12px;font-weight:400;letter-spacing:.04em;line-height:24px}.portfolio-section-heading-copy{max-width:1100px}.portfolio-section-description{max-width:680px;margin:1.75rem 0 0;color:var(--valiente-gray);font-family:JetBrains Mono,monospace;font-size:.75rem;font-weight:300;line-height:1.8}.portfolio-game-section{--signal-void: var(--site-bg, #f3f5f3);--signal-surface: rgb(from var(--site-veil-color, #f5f7f5) r g b / .94);--signal-white: var(--site-ink, #172125);--signal-acid: var(--site-active, #169eae);--signal-moss: var(--site-deep, #2d929b);--signal-gray: var(--site-muted, #69777a);--signal-line: rgb(from var(--site-ink) r g b / .22);--signal-pixel-font: "Fusion Pixel 12", "JetBrains Mono", monospace;--signal-pixel-unit: 12px;width:100%;max-width:none;overflow:clip;color:var(--signal-white)}.portfolio-game-inner{width:min(100%,1680px);margin:0 auto}.portfolio-game-section .portfolio-section-heading{position:relative;grid-template-columns:84px minmax(0,1fr);gap:24px;padding:24px 0 36px;border-top:1px solid var(--signal-line);border-bottom:1px solid var(--signal-line)}.portfolio-game-section .portfolio-section-heading:after{position:absolute;top:-1px;right:0;width:144px;height:12px;content:"";background:repeating-linear-gradient(90deg,var(--signal-acid) 0 12px,transparent 12px 24px)}.portfolio-game-section .portfolio-section-heading-copy{max-width:1040px}.portfolio-game-section .portfolio-section-marker{min-height:36px;justify-content:space-between;gap:12px;padding:0 0 0 12px;color:var(--signal-acid);font-family:var(--signal-pixel-font);font-size:24px;line-height:36px}.portfolio-game-section .portfolio-section-marker:before{position:absolute;top:24px;left:0;width:6px;height:36px;content:"";background:var(--signal-acid)}.portfolio-game-section .portfolio-marker-line{width:24px;height:12px;background:linear-gradient(90deg,var(--signal-moss) 0 12px,var(--signal-acid) 12px)}.portfolio-game-section .section-label,.portfolio-game-section .portfolio-section-description{color:var(--signal-gray)}.portfolio-game-section .section-label{margin:0;font-family:var(--signal-pixel-font);font-size:12px;letter-spacing:.04em;line-height:24px;text-transform:uppercase}.portfolio-game-section .portfolio-section-heading-copy h2{margin-top:12px;font-family:var(--signal-pixel-font);font-size:96px;font-weight:400;letter-spacing:0;line-height:.875;text-transform:uppercase;font-synthesis:none}.portfolio-game-section .portfolio-section-description{margin-top:24px}.portfolio-runtime-layout,.portfolio-featured-grid{display:grid;grid-template-columns:minmax(0,1fr)}.portfolio-featured-grid{gap:clamp(2rem,5vw,4.5rem)}.portfolio-featured-card{position:relative;min-width:0;display:grid;grid-template-rows:auto 1fr;background:var(--signal-surface);border:1px solid var(--signal-line);clip-path:polygon(0 0,calc(100% - 12px) 0,calc(100% - 12px) 12px,100% 12px,100% 100%,12px 100%,12px calc(100% - 12px),0 calc(100% - 12px))}.portfolio-featured-card.is-reserved{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr;min-height:0}.portfolio-featured-media{position:relative;min-height:0;aspect-ratio:16 / 9;overflow:hidden;background:#070807}.portfolio-featured-media img{width:100%;height:100%;display:block;-o-object-fit:cover;object-fit:cover}.portfolio-system-media video,.portfolio-relevant-media>video{width:100%;height:100%;display:block;-o-object-fit:contain;object-fit:contain}.portfolio-reserved-field{width:100%;height:100%;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;color:var(--signal-acid);background-image:linear-gradient(rgb(from var(--site-active) r g b / .1) 1px,transparent 1px),linear-gradient(90deg,rgb(from var(--site-active) r g b / .1) 1px,transparent 1px);background-size:32px 32px;font-family:var(--signal-pixel-font)}.portfolio-reserved-field span{font-size:72px;font-weight:400;letter-spacing:0;line-height:1}.portfolio-reserved-field small{padding:6px 12px;background:var(--signal-void);color:var(--signal-white);font-family:var(--signal-pixel-font);font-size:12px;letter-spacing:0;line-height:24px}.portfolio-card-pixel-layer,.portfolio-runtime-pixels{position:absolute;inset:0;z-index:4;overflow:hidden;pointer-events:none}.portfolio-card-pixel-layer span,.portfolio-runtime-pixels span{position:absolute;display:block;background:var(--signal-acid);box-shadow:6px 6px rgb(from var(--site-deep) r g b / .58);opacity:0}.portfolio-featured-copy{min-width:0;display:flex;flex-direction:column;align-items:flex-start;padding:clamp(1.5rem,3vw,3rem);border-top:1px solid var(--signal-line)}.portfolio-game-section .portfolio-project-meta{color:var(--signal-gray);font-family:var(--signal-pixel-font);font-size:12px;letter-spacing:0;line-height:24px}.portfolio-game-section .portfolio-project-meta span:last-child{min-width:48px;padding:0 6px;border-right:6px solid var(--signal-moss);background:rgb(from var(--site-active) r g b / .08);color:var(--signal-acid);text-align:center}.portfolio-game-section .portfolio-featured-copy h3{margin:24px 0 0;color:var(--signal-white);font-family:var(--signal-pixel-font);font-size:36px;font-weight:400;letter-spacing:0;line-height:1.25;text-wrap:balance;word-break:keep-all;overflow-wrap:anywhere;font-synthesis:none}.portfolio-game-section .portfolio-featured-copy>p{max-width:820px;color:var(--signal-gray)}.portfolio-game-section .portfolio-tags li{min-height:30px;display:inline-flex;align-items:center;padding:5px 10px 5px 8px;border-color:#777b748c;color:var(--signal-gray);font-family:var(--signal-pixel-font);font-size:12px;letter-spacing:0;line-height:18px;transition:color .12s steps(1,start)}.portfolio-game-section .portfolio-project-action{min-height:48px;gap:12px;margin-top:auto;padding:0 14px 0 12px;border:1px solid var(--signal-acid);color:var(--signal-acid);font-family:var(--signal-pixel-font);font-size:12px;letter-spacing:0;line-height:24px;transition:color .12s steps(1,start),background-color .12s steps(1,start)}.portfolio-game-section .portfolio-project-status{min-height:48px;display:inline-flex;align-items:center;margin-top:auto;padding:0 12px;border-left:6px solid var(--signal-acid);background:rgb(from var(--site-active) r g b / .08);color:var(--signal-acid);font-family:var(--signal-pixel-font);font-size:12px;letter-spacing:0;line-height:24px}.portfolio-runtime-viewport{display:none}.portfolio-runtime-chrome,.portfolio-runtime-rail,.portfolio-runtime-diagnostic-label,.portfolio-runtime-diagnostic-panel{font-family:var(--signal-pixel-font);letter-spacing:0;text-transform:uppercase;font-synthesis:none}.portfolio-runtime-chrome{min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0 12px 0 0;border-bottom:1px solid var(--signal-line);color:var(--signal-white);background:#101310;font-size:12px;line-height:24px}.portfolio-runtime-chrome span:first-child{align-self:stretch;display:inline-flex;align-items:center;padding:0 18px 0 12px;background:var(--signal-acid);color:var(--signal-void)}.portfolio-runtime-chrome span:last-child{color:var(--signal-gray)}.portfolio-runtime-stage{position:relative;aspect-ratio:16 / 9;overflow:hidden;background:linear-gradient(135deg,rgb(from var(--site-deep) r g b / .2),transparent 42%),#050605}.portfolio-runtime-media-layer{position:absolute;inset:0;overflow:hidden;visibility:hidden}.portfolio-runtime-media-layer:first-child{visibility:visible}.portfolio-runtime-media-layer img{width:100%;height:100%;display:block;-o-object-fit:cover;object-fit:cover}.portfolio-runtime-dither-canvas{position:absolute;inset:0;z-index:4;width:100%;height:100%;display:block;opacity:0;visibility:hidden;pointer-events:none;image-rendering:crisp-edges;image-rendering:pixelated}.portfolio-runtime-reserved{width:100%;height:100%;display:grid;place-content:center;justify-items:center;gap:.9rem;background-image:linear-gradient(rgb(from var(--site-active) r g b / .1) 1px,transparent 1px),linear-gradient(90deg,rgb(from var(--site-active) r g b / .1) 1px,transparent 1px);background-size:24px 24px;font-family:var(--signal-pixel-font);text-align:center}.portfolio-runtime-reserved-mark{width:clamp(88px,11vw,156px);aspect-ratio:1;background:linear-gradient(90deg,transparent 25%,var(--signal-acid) 25% 50%,transparent 50% 75%,var(--signal-moss) 75%),linear-gradient(transparent 25%,rgb(from var(--site-active) r g b / .45) 25% 50%,transparent 50% 75%,rgb(from var(--site-deep) r g b / .7) 75%);background-blend-mode:screen;background-size:24px 24px;clip-path:polygon(15% 0,78% 0,78% 12%,100% 12%,100% 76%,84% 76%,84% 100%,18% 100%,18% 86%,0 86%,0 22%,15% 22%)}.portfolio-runtime-reserved p{margin:0;color:var(--signal-acid);font-size:12px;letter-spacing:0;line-height:24px}.portfolio-runtime-reserved>span{color:var(--signal-gray);font-size:12px;letter-spacing:0;line-height:24px}.portfolio-runtime-crt{position:absolute;inset:0;z-index:5;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(241,242,237,.035) 0 1px,transparent 1px 4px),repeating-linear-gradient(90deg,rgb(from var(--site-active) r g b / .018) 0 1px,transparent 1px 5px)}.portfolio-runtime-corner{position:absolute;z-index:6;width:30px;height:30px;pointer-events:none}.portfolio-runtime-corner.is-top-left{top:12px;left:12px;border-top:2px solid var(--signal-acid);border-left:2px solid var(--signal-acid)}.portfolio-runtime-corner.is-bottom-right{right:12px;bottom:12px;border-right:2px solid var(--signal-acid);border-bottom:2px solid var(--signal-acid)}.portfolio-runtime-diagnostics{min-height:120px;display:grid;grid-template-columns:minmax(130px,.3fr) minmax(0,1fr);border-top:1px solid var(--signal-line)}.portfolio-runtime-diagnostic-label{display:flex;flex-direction:column;justify-content:space-between;gap:1rem;padding:12px;border-right:1px solid var(--signal-line);color:var(--signal-acid);font-size:12px;line-height:18px;background:linear-gradient(90deg,transparent 0 calc(100% - 12px),rgb(from var(--site-active) r g b / .08) calc(100% - 12px)),var(--signal-surface)}.portfolio-runtime-diagnostic-label small{color:var(--signal-gray);font-size:12px;line-height:18px}.portfolio-runtime-diagnostic-panels{position:relative;min-width:0}.portfolio-runtime-diagnostic-panel{position:absolute;inset:0;display:grid;grid-template-columns:auto minmax(0,1fr);align-content:center;gap:6px 12px;padding:12px;visibility:hidden;color:var(--signal-gray);font-size:12px;line-height:18px}.portfolio-runtime-diagnostic-panel:first-child{visibility:visible}.portfolio-runtime-diagnostic-panel strong{min-width:0;overflow:hidden;color:var(--signal-white);font-weight:400;text-overflow:ellipsis;white-space:nowrap}.portfolio-runtime-rail{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--signal-line)}.portfolio-runtime-rail span{min-height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;border-right:1px solid var(--signal-line);color:var(--signal-gray);font-size:12px;line-height:24px;transition:color .15s steps(1),background-color .15s steps(1)}.portfolio-runtime-rail span:after{width:6px;height:6px;content:"";background:currentColor}.portfolio-runtime-rail span:last-child{border-right:0}.portfolio-runtime-rail span[data-active]{color:var(--signal-void);background:var(--signal-acid)}.portfolio-featured-copy h3,.portfolio-system-copy h3,.portfolio-experience-layout h3,.portfolio-relevant-copy h3{margin:1.75rem 0 0;font-family:Inter,sans-serif;font-size:clamp(1.75rem,3vw,3.5rem);font-weight:400;letter-spacing:-.045em;line-height:.98}.portfolio-featured-copy>p,.portfolio-system-copy>p,.portfolio-experience-secondary>p,.portfolio-relevant-copy>p{margin:1.25rem 0 0;color:var(--valiente-gray);font-family:JetBrains Mono,monospace;font-size:.72rem;font-weight:300;line-height:1.75}.portfolio-tags{display:flex;flex-wrap:wrap;gap:.45rem;margin:1.5rem 0 0;padding:0;list-style:none}.portfolio-tags li,.portfolio-profile-skills li{padding:.35rem .55rem;border:1px solid rgb(from var(--site-ink) r g b / .42);color:var(--valiente-gray);font-family:var(--portfolio-pixel-font);font-size:12px;letter-spacing:0;line-height:18px;text-transform:uppercase}.portfolio-project-action{gap:.6rem;margin-top:auto;padding-top:1rem;padding-bottom:1rem;border:0;border-bottom:1px solid var(--valiente-dark);cursor:pointer}.portfolio-project-action svg,.portfolio-system-media svg,.portfolio-contact-email svg{width:1rem;height:1rem}.portfolio-project-status{margin-top:auto;padding-top:2rem;color:var(--valiente-red);font-family:var(--portfolio-pixel-font);font-size:12px;letter-spacing:0;line-height:24px}.portfolio-systems-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(2.5rem,6vw,6rem)}.portfolio-system-card{display:grid;grid-template-columns:minmax(0,1fr);background:var(--valiente-bg);border:1px solid rgb(from var(--site-ink) r g b / .35)}.portfolio-system-media{position:relative;width:100%;aspect-ratio:16 / 9;display:block;padding:0;overflow:hidden;border:0;background:#1a1a1a14;cursor:pointer}.portfolio-system-media span{position:absolute;right:1rem;bottom:1rem;display:inline-flex;align-items:center;gap:.4rem;padding:.55rem .7rem;background:var(--valiente-bg);color:var(--valiente-dark);font-family:JetBrains Mono,monospace;font-size:.56rem;letter-spacing:.07em}.portfolio-system-copy{padding:1.5rem;border-top:1px solid rgb(from var(--site-ink) r g b / .28)}.portfolio-system-copy h3{margin-top:1rem;font-size:clamp(1.4rem,2vw,2.2rem)}.portfolio-systems-capabilities{display:grid;grid-template-columns:repeat(4,1fr);margin-top:1px;border:1px solid rgb(from var(--site-ink) r g b / .35)}.portfolio-systems-capabilities span{padding:1rem;color:var(--valiente-gray);font-family:var(--portfolio-pixel-font);font-size:12px;line-height:24px;text-align:center;text-transform:uppercase;border-right:1px solid rgb(from var(--site-ink) r g b / .3)}.portfolio-systems-capabilities span:last-child{border-right:0}.portfolio-interactive-index{position:relative;border-top:1px solid var(--valiente-dark)}.portfolio-index-labels,.portfolio-index-row{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(180px,.7fr) 72px 24px;gap:1.25rem;align-items:center}.portfolio-index-labels{padding:.75rem 1rem;color:var(--valiente-gray);font-family:var(--portfolio-pixel-font);font-size:12px;letter-spacing:0;line-height:24px;text-transform:uppercase;border-bottom:1px solid rgb(from var(--site-ink) r g b / .35)}.portfolio-index-labels span:nth-child(2){grid-column:2}.portfolio-index-labels span:nth-child(3){grid-column:3}.portfolio-index-row{width:100%;min-height:88px;padding:1rem;border:0;border-bottom:1px solid rgb(from var(--site-ink) r g b / .35);background:transparent;color:var(--valiente-dark);text-align:left;cursor:pointer;transition:color .12s steps(1,start),background-color .12s steps(1,start)}.portfolio-index-project{min-width:0;display:flex;align-items:baseline;gap:clamp(.8rem,2vw,2rem)}.portfolio-index-project small,.portfolio-index-focus,.portfolio-index-year{color:var(--valiente-gray);font-family:var(--portfolio-pixel-font);font-size:12px;font-weight:400;letter-spacing:0;line-height:24px;text-transform:uppercase}.portfolio-index-project strong{min-width:0;overflow-wrap:anywhere;font-family:var(--portfolio-pixel-font);font-size:clamp(24px,2.2vw,36px);font-weight:400;letter-spacing:0;line-height:1.2;font-synthesis:none}.portfolio-index-row>svg{width:1rem;height:1rem;color:var(--valiente-gray);transition:transform .18s cubic-bezier(.215,.61,.355,1),color .12s steps(1,start)}.portfolio-index-row.is-expanded>svg{transform:rotate(180deg)}@media(hover:hover)and (pointer:fine){.portfolio-index-row:hover,.portfolio-index-row.is-active{background:rgb(from var(--site-active) r g b / .065);color:var(--valiente-red)}.portfolio-index-row:hover .portfolio-index-project small,.portfolio-index-row:hover .portfolio-index-focus,.portfolio-index-row:hover .portfolio-index-year,.portfolio-index-row:hover>svg,.portfolio-index-row.is-active .portfolio-index-project small,.portfolio-index-row.is-active .portfolio-index-focus,.portfolio-index-row.is-active .portfolio-index-year,.portfolio-index-row.is-active>svg{color:var(--valiente-red)}}.portfolio-floating-preview{position:fixed;top:0;left:0;z-index:150;width:min(400px,calc(100vw - 48px));overflow:hidden;border:1px solid var(--valiente-dark);background:var(--valiente-bg);opacity:0;pointer-events:none;transform:translate3d(-100vw,-100vh,0);transition:opacity .12s steps(1,start)}.portfolio-floating-preview.is-visible{opacity:1}.portfolio-floating-media,.portfolio-touch-preview-media{aspect-ratio:16 / 9;overflow:hidden;background:#1a1a1a14}.portfolio-floating-media video,.portfolio-floating-media>img,.portfolio-touch-preview-media video,.portfolio-touch-preview-media>img{width:100%;height:100%;display:block;-o-object-fit:contain;object-fit:contain}.portfolio-floating-textures{width:100%;height:100%;display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:rgb(from var(--site-ink) r g b / .35)}.portfolio-floating-textures img{width:100%;height:100%;min-height:0;-o-object-fit:contain;object-fit:contain;background:#1a1a1a0f}.portfolio-floating-empty{height:100%;display:grid;place-items:center;color:var(--valiente-gray);font-family:JetBrains Mono,monospace;font-size:.62rem}.portfolio-floating-caption{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 1rem;font-family:var(--portfolio-pixel-font);font-size:12px;line-height:24px;border-top:1px solid rgb(from var(--site-ink) r g b / .35)}.portfolio-floating-caption small{color:var(--valiente-red);font-size:.54rem;letter-spacing:.08em}.portfolio-expanded-project{overflow:hidden;border-bottom:1px solid rgb(from var(--site-ink) r g b / .35);animation:portfolio-disclosure-in .18s cubic-bezier(.215,.61,.355,1) both}@keyframes portfolio-disclosure-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.portfolio-expanded-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,.7fr);gap:clamp(1.5rem,4vw,4rem);padding:clamp(1rem,2vw,2rem);background:var(--portfolio-signal-surface)}.portfolio-expanded-layout video{width:100%;aspect-ratio:16 / 9;display:block;-o-object-fit:contain;object-fit:contain;background:#1a1a1a14}.portfolio-expanded-copy{align-self:end;padding-bottom:.25rem}.portfolio-expanded-copy h3{margin:.75rem 0;font-family:var(--portfolio-pixel-font);font-size:clamp(24px,2.35vw,36px);font-weight:400;letter-spacing:0;line-height:1.02;text-wrap:balance;word-break:keep-all;overflow-wrap:anywhere}.portfolio-expanded-copy>p:not(.section-label){max-width:34rem;margin:0;color:var(--valiente-gray);line-height:1.65}.portfolio-expanded-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1.5rem}.portfolio-expanded-tags span{padding:.4rem .55rem;color:var(--valiente-gray);font-family:var(--portfolio-pixel-font);font-size:12px;line-height:18px;text-transform:uppercase;border:1px solid rgb(from var(--site-ink) r g b / .4)}.portfolio-tajima-stage{position:relative;width:100%;aspect-ratio:16 / 9;min-height:0;overflow:hidden;background:#1a1a1a14}.portfolio-tajima-stage iframe{width:100%;height:100%;display:block;border:0}.portfolio-tajima-textures{position:absolute;right:1rem;bottom:1rem;z-index:2;display:grid;grid-template-columns:repeat(4,minmax(64px,88px));gap:.4rem;padding:.5rem;background:#090a09f0;border:1px solid var(--portfolio-signal-line-strong)}.portfolio-tajima-textures figure{min-width:0;margin:0;background:var(--valiente-bg);border:1px solid rgb(from var(--site-ink) r g b / .35)}.portfolio-tajima-textures img{width:100%;aspect-ratio:1;display:block;-o-object-fit:cover;object-fit:cover}.portfolio-tajima-textures figcaption{padding:.25rem;color:var(--valiente-dark);font-family:JetBrains Mono,monospace;font-size:.5rem;text-align:center}.portfolio-experience-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(2rem,4vw,4rem)}.portfolio-experience-primary,.portfolio-experience-secondary{padding:clamp(1.75rem,4vw,4rem);background:var(--valiente-bg);border:1px solid rgb(from var(--site-ink) r g b / .35)}.portfolio-experience-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:2rem}.portfolio-experience-title-row strong{color:var(--valiente-red);font-family:Inter,sans-serif;font-size:clamp(3rem,6vw,6rem);font-weight:400;letter-spacing:-.07em;line-height:.8}.portfolio-experience-role{margin:.8rem 0 0;color:var(--valiente-red);font-family:JetBrains Mono,monospace;font-size:.68rem}.portfolio-evidence-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:3rem 0 0;background:rgb(from var(--site-ink) r g b / .3);border:1px solid rgb(from var(--site-ink) r g b / .3)}.portfolio-evidence-grid>div{padding:1.5rem;background:var(--valiente-bg)}.portfolio-evidence-grid dt,.portfolio-contact-secondary span{color:var(--valiente-red);font-family:var(--portfolio-pixel-font);font-size:12px;letter-spacing:0;line-height:24px;text-transform:uppercase}.portfolio-evidence-grid dd{margin:.9rem 0 0;color:var(--valiente-gray);font-family:JetBrains Mono,monospace;font-size:.68rem;font-weight:300;line-height:1.7}.portfolio-experience-secondary h3{font-size:clamp(1.8rem,3vw,3rem)}.portfolio-relevant-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(3rem,7vw,7rem)}.portfolio-relevant-card{border-top:1px solid var(--valiente-dark)}.portfolio-relevant-media{height:auto;aspect-ratio:16 / 9;margin-top:1rem;overflow:hidden;background:#1a1a1a0f}.portfolio-texture-grid{height:100%;display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:rgb(from var(--site-ink) r g b / .35)}.portfolio-texture-grid img{width:100%;height:100%;min-height:0;-o-object-fit:contain;object-fit:contain;background:#1a1a1a0f}.portfolio-relevant-copy{padding:1.5rem 0 0}.portfolio-relevant-copy h3{margin-top:.8rem}.portfolio-archive-index{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--valiente-dark)}.portfolio-archive-index>div{display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:center;padding:clamp(1.1rem,2vw,1.75rem) var(--portfolio-archive-inline-padding);border-right:1px solid rgb(from var(--site-ink) r g b / .35);border-bottom:1px solid rgb(from var(--site-ink) r g b / .35)}.portfolio-archive-index>div:last-child{border-right:0}.portfolio-archive-index span{font-family:var(--portfolio-pixel-font);font-size:clamp(12px,1.4vw,24px);font-weight:400;letter-spacing:0;line-height:24px}.portfolio-archive-index strong{color:var(--valiente-red);font-family:var(--portfolio-pixel-font);font-size:clamp(24px,2vw,36px);font-weight:400}.portfolio-archive-note{max-width:680px;margin:2rem 0 0 auto;color:var(--valiente-gray);font-family:JetBrains Mono,monospace;font-size:.68rem;line-height:1.8}.portfolio-profile-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:1.5rem}.portfolio-profile-block{padding:clamp(1.5rem,3vw,3rem);background:var(--valiente-bg);border:1px solid rgb(from var(--site-ink) r g b / .35)}.portfolio-profile-list{margin:2rem 0 0}.portfolio-profile-list>div{display:grid;grid-template-columns:110px 1fr;gap:1rem;padding:1rem 0;border-top:1px solid rgb(from var(--site-ink) r g b / .3)}.portfolio-profile-list dt,.portfolio-profile-list dd,.portfolio-profile-awards li{font-family:JetBrains Mono,monospace;font-size:.68rem;line-height:1.6}.portfolio-profile-list dt{color:var(--valiente-gray)}.portfolio-profile-list dd{margin:0}.portfolio-profile-skills,.portfolio-profile-awards{margin:2rem 0 0;padding:0;list-style:none}.portfolio-profile-skills{display:flex;flex-wrap:wrap;gap:.5rem}.portfolio-profile-awards li{padding:.85rem 0;border-top:1px solid rgb(from var(--site-ink) r g b / .3)}.portfolio-contact-panel{border-top:1px solid var(--valiente-dark);border-bottom:1px solid var(--valiente-dark)}.portfolio-contact-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.portfolio-contact-card{position:relative;display:flex;min-width:0;min-height:112px;flex-direction:column;justify-content:center;gap:.75rem;padding:1.5rem;border-right:1px solid rgb(from var(--site-ink) r g b / .3);color:var(--valiente-dark)}.portfolio-contact-card:last-child{border-right:0}.portfolio-contact-link{text-decoration:none}.portfolio-contact-label{display:flex;align-items:center;gap:.5rem;color:var(--valiente-red);font-family:var(--portfolio-pixel-font);font-size:12px;letter-spacing:0;line-height:24px}.portfolio-contact-label svg{width:1rem;height:1rem;flex:0 0 auto}.portfolio-contact-card strong{overflow-wrap:anywhere;font-family:var(--portfolio-pixel-font);font-size:.875rem;font-weight:400;letter-spacing:0;line-height:1.5}.portfolio-contact-arrow{position:absolute;top:1rem;right:1rem;width:1rem;height:1rem}.portfolio-footer{margin-top:5rem}.portfolio-footer a{color:var(--valiente-gray);text-decoration:none}@media(min-width:1100px){.portfolio-game-section[data-runtime-signal=ready] .portfolio-runtime-layout{grid-template-columns:minmax(0,1.86fr) minmax(320px,1fr);gap:clamp(1.5rem,2.5vw,3rem);align-items:start}.portfolio-game-section[data-runtime-signal=ready] .portfolio-runtime-viewport{position:sticky;display:block}.portfolio-game-section[data-runtime-signal=ready] .portfolio-runtime-viewport-box{width:100%;overflow:hidden;border:1px solid var(--signal-line);background:var(--signal-surface)}.portfolio-game-section[data-runtime-signal=ready] .portfolio-featured-grid{gap:0;border-top:1px solid var(--signal-line)}.portfolio-game-section[data-runtime-signal=ready] .portfolio-featured-card{min-height:clamp(360px,52svh,560px);display:block;background:transparent;border:0;border-bottom:1px solid var(--signal-line);clip-path:none;transition:border-color .12s steps(1,start),background-color .12s steps(1,start)}.portfolio-game-section[data-runtime-signal=ready] .portfolio-featured-card:before{position:absolute;top:-1px;left:0;width:0;height:6px;content:"";background:var(--signal-acid);transition:width .15s steps(4)}.portfolio-game-section[data-runtime-signal=ready] .portfolio-featured-card[aria-current=true]{border-bottom-color:rgb(from var(--site-active) r g b / .72);background:rgb(from var(--site-active) r g b / .025)}.portfolio-game-section[data-runtime-signal=ready] .portfolio-featured-card[aria-current=true]:before{width:100%}.portfolio-game-section[data-runtime-signal=ready] .portfolio-featured-media{display:none}.portfolio-game-section[data-runtime-signal=ready] .portfolio-featured-copy{min-height:inherit;padding:clamp(1.5rem,2.25vw,2.5rem) clamp(1.1rem,2vw,2.25rem);border-top:0}.portfolio-game-section[data-runtime-signal=ready] .portfolio-featured-copy h3{color:#f1f2edb8;font-size:36px;transition:color .12s steps(1,start)}.portfolio-game-section[data-runtime-signal=ready] .portfolio-featured-card[aria-current=true] .portfolio-featured-copy h3{color:var(--signal-white)}.portfolio-game-section[data-runtime-signal=ready] .portfolio-featured-copy>p{font-size:clamp(.66rem,.72vw,.76rem)}}@media(min-width:721px)and (max-width:1099px){.portfolio-game-section .portfolio-featured-grid{gap:clamp(2.5rem,7vw,5rem)}.portfolio-game-section .portfolio-featured-card{width:100%;max-width:960px;margin:0 auto}}@media(hover:hover)and (pointer:fine){.portfolio-game-section .portfolio-project-action:hover,.portfolio-game-section .portfolio-project-action:focus-visible{background:var(--signal-acid);color:var(--signal-void)}.portfolio-game-section[data-runtime-signal=ready] .portfolio-featured-card:hover,.portfolio-game-section[data-runtime-signal=ready] .portfolio-featured-card:focus-within{border-bottom-color:var(--signal-acid)}.portfolio-game-section[data-runtime-signal=ready] .portfolio-featured-card:hover .portfolio-featured-copy h3,.portfolio-game-section[data-runtime-signal=ready] .portfolio-featured-card:hover .portfolio-tags li,.portfolio-game-section[data-runtime-signal=ready] .portfolio-featured-card:focus-within .portfolio-featured-copy h3,.portfolio-game-section[data-runtime-signal=ready] .portfolio-featured-card:focus-within .portfolio-tags li{color:var(--signal-acid)}}@media(max-width:960px){.portfolio-navigation{padding:0 1.5rem}.portfolio-navigation-links{gap:1rem}.portfolio-hero-statement,.portfolio-featured-card.is-reserved,.portfolio-experience-layout,.portfolio-systems-grid,.portfolio-system-card{grid-template-columns:1fr}}@media(max-width:720px){.portfolio-shell{padding-top:58px}.portfolio-navigation{min-height:58px;padding-right:1.5rem;padding-left:1.5rem}.portfolio-navigation-links{display:none}.portfolio-navigation-toggle{display:inline-flex;min-width:44px;min-height:44px;align-items:center;justify-content:flex-end;gap:.55rem;padding:0;border:0;background:transparent;color:var(--valiente-dark);font-family:var(--portfolio-pixel-font);font-size:12px;letter-spacing:0;line-height:24px;cursor:pointer}.portfolio-navigation-toggle:hover,.portfolio-navigation-toggle:focus-visible,.portfolio-navigation-toggle[aria-expanded=true]{color:var(--valiente-red)}.portfolio-navigation-toggle svg{width:18px;height:18px}.portfolio-navigation-mobile-menu{position:fixed;top:58px;right:0;left:0;display:grid;max-height:calc(100svh - 58px);overflow-y:auto;overflow-anchor:none;padding:0 1.5rem 1rem;background:#090a09fc;border-bottom:1px solid rgb(from var(--site-ink) r g b / .5)}.portfolio-navigation-mobile-menu[hidden]{display:none}.portfolio-navigation-mobile-menu a{display:grid;grid-template-columns:2rem minmax(0,1fr);min-height:54px;align-items:center;gap:.75rem;border-top:1px solid rgb(from var(--site-ink) r g b / .32);color:var(--valiente-dark);font-family:var(--portfolio-pixel-font);font-size:24px;font-weight:400;letter-spacing:0;text-decoration:none;text-transform:uppercase}.portfolio-navigation-mobile-menu a:hover,.portfolio-navigation-mobile-menu a:focus-visible,.portfolio-navigation-mobile-menu a.is-current{color:var(--valiente-red)}.portfolio-navigation-mobile-menu a.is-current{padding-right:12px;padding-left:12px;background:var(--portfolio-signal-void);color:var(--portfolio-signal-acid)}.portfolio-navigation-mobile-menu a.is-current small,.portfolio-navigation-mobile-menu a.is-current:hover,.portfolio-navigation-mobile-menu a.is-current:focus-visible{color:var(--portfolio-signal-acid)}.portfolio-navigation-mobile-menu a.is-current:focus-visible{outline-color:var(--portfolio-signal-acid)}.portfolio-navigation-mobile-menu small{color:var(--valiente-gray);font-family:var(--portfolio-pixel-font);font-size:12px;font-weight:400;letter-spacing:0}.portfolio-hero{min-height:calc(100svh - 58px - var(--crt-bezel, 0px))}.portfolio-hero-main h1{font-size:clamp(48px,14vw,72px);line-height:1}.portfolio-section-heading-copy h2{font-size:clamp(42px,12vw,60px);line-height:1}.portfolio-hero-actions{justify-content:flex-start}.portfolio-hero-capabilities,.portfolio-systems-capabilities{grid-template-columns:repeat(2,1fr)}.portfolio-hero-capabilities span:nth-child(2),.portfolio-systems-capabilities span:nth-child(2){border-right:0}.portfolio-hero-capabilities span:nth-child(-n+2),.portfolio-systems-capabilities span:nth-child(-n+2){border-bottom:1px solid rgb(from var(--site-ink) r g b / .25)}.portfolio-featured-grid,.portfolio-relevant-grid,.portfolio-profile-grid{grid-template-columns:1fr}.portfolio-featured-card.is-reserved{grid-column:auto}.portfolio-featured-media{min-height:260px}.portfolio-game-section .portfolio-featured-media{min-height:0;box-shadow:inset 0 0 0 1px rgb(from var(--site-active) r g b / .12)}.portfolio-game-section .portfolio-card-pixel-layer{display:none}.portfolio-game-section .portfolio-featured-copy{padding:1.25rem}.portfolio-game-section .portfolio-featured-copy h3{font-size:24px;line-height:1.5}.portfolio-game-section .portfolio-section-heading{grid-template-columns:minmax(0,1fr);gap:24px;padding:24px 0}.portfolio-game-section .portfolio-section-heading:after{width:96px}.portfolio-game-section .portfolio-section-marker{width:72px;font-size:24px}.portfolio-game-section .portfolio-section-heading-copy h2{margin-top:12px;font-size:48px;line-height:1}.portfolio-game-section .portfolio-section-description{margin-top:24px}.portfolio-game-section .portfolio-project-action,.portfolio-game-section .portfolio-project-status{min-height:44px;margin-top:12px}.portfolio-system-card{grid-template-columns:1fr}.portfolio-experience-title-row{flex-direction:column-reverse}.portfolio-evidence-grid{grid-template-columns:1fr}.portfolio-profile-list>div{grid-template-columns:90px 1fr}.portfolio-contact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portfolio-contact-card:nth-child(-n+2){border-bottom:1px solid rgb(from var(--site-ink) r g b / .3)}.portfolio-contact-card:nth-child(2){border-right:0}.portfolio-index-labels{display:none}.portfolio-index-row{grid-template-columns:minmax(0,1fr) auto;gap:.75rem}.portfolio-index-focus,.portfolio-index-year{display:none}.portfolio-expanded-layout{grid-template-columns:1fr;padding:1rem}.portfolio-tajima-stage{min-height:0;aspect-ratio:auto}.portfolio-tajima-stage iframe{aspect-ratio:16 / 9}.portfolio-tajima-textures{position:static;grid-template-columns:repeat(4,minmax(0,1fr));border-right:0;border-bottom:0;border-left:0}}@media(hover:none),(pointer:coarse){.portfolio-floating-preview{display:none}}.portfolio-preview-cursor{position:fixed;top:0;left:0;z-index:2147483001;width:32px;height:32px;margin-top:-16px;margin-left:-16px;display:none;pointer-events:none;color:var(--site-active, #169eae)}.portfolio-preview-cursor.is-visible{display:block}.portfolio-preview-cursor svg{width:100%;height:100%;display:block;overflow:visible;transform:rotate(-90deg)}.portfolio-preview-cursor circle{fill:rgb(from var(--site-bg, #f3f5f3) r g b / .82);stroke-width:2}.portfolio-preview-cursor-track{stroke:rgb(from var(--site-ink) r g b / .22)}.portfolio-preview-cursor-progress{stroke:currentColor;stroke-linecap:square;stroke-dasharray:75.4;stroke-dashoffset:75.4;animation:portfolio-preview-charge 1s linear forwards}.portfolio-preview-cursor.is-complete .portfolio-preview-cursor-progress{stroke-dashoffset:0}.portfolio-floating-preview{z-index:2147483000;border-color:rgb(from var(--site-ink) r g b / .72);background:rgb(from var(--site-veil-color) r g b / .98);box-shadow:10px 10px rgb(from var(--site-deep) r g b / .16);contain:paint;will-change:transform,opacity,clip-path}.portfolio-floating-preview:after{position:absolute;inset:0;content:"";pointer-events:none;background-image:linear-gradient(rgb(from var(--site-primary) r g b / .28) 1px,transparent 1px),linear-gradient(90deg,rgb(from var(--site-primary) r g b / .28) 1px,transparent 1px);background-size:8px 8px;mix-blend-mode:multiply;opacity:0}.portfolio-floating-preview.is-visible{animation:portfolio-preview-pixel-open .28s steps(6,end) both}.portfolio-floating-preview.is-visible:after{animation:portfolio-preview-grid-release .32s steps(5,end) both}@keyframes portfolio-preview-charge{to{stroke-dashoffset:0}}@keyframes portfolio-preview-pixel-open{0%{clip-path:polygon(0 0,16% 0,16% 16%,0 16%);opacity:0}34%{clip-path:polygon(0 0,58% 0,58% 35%,34% 35%,34% 58%,0 58%);opacity:.76}68%{clip-path:polygon(0 0,84% 0,84% 58%,66% 58%,66% 82%,0 82%);opacity:.92}to{clip-path:inset(0);opacity:1}}@keyframes portfolio-preview-grid-release{0%,48%{opacity:.82}to{opacity:0}}.portfolio-shell,.portfolio-shell *,.portfolio-floating-preview,.portfolio-floating-preview *{font-family:var(--portfolio-pixel-font, "Fusion Pixel 12", "JetBrains Mono", monospace)!important}@media(hover:hover)and (pointer:fine){.portfolio-index-row{cursor:none}}@media(prefers-reduced-motion:reduce){.portfolio-preview-cursor-progress,.portfolio-floating-preview.is-visible,.portfolio-floating-preview.is-visible:after{animation:none}.portfolio-preview-cursor-progress{stroke-dashoffset:0}}.portfolio-navigation{background:rgb(from var(--site-veil-color) r g b / .94);border-bottom-color:rgb(from var(--site-deep) r g b / .42);box-shadow:0 1px rgb(from var(--site-veil-color) r g b / .72)}.portfolio-hero,.portfolio-section{background:rgb(from var(--site-veil-color) r g b / var(--site-veil, .74))}.portfolio-hero-main h1{color:var(--site-title, #f4f7f2);text-shadow:1px 0 0 rgb(from var(--site-veil-color) r g b / .78),0 0 calc(var(--crt-text-bloom-radius, 5) * .25px) rgb(from var(--crt-text-bloom-color, currentColor) r g b / min(1,var(--crt-text-bloom-alpha, .32) * 2.2)),0 0 calc(var(--crt-text-bloom-radius, 5) * 1px) rgb(from var(--crt-text-bloom-color, currentColor) r g b / var(--crt-text-bloom-alpha, .32)),0 0 calc(var(--crt-text-bloom-radius, 5) * 3px) rgb(from var(--crt-text-bloom-color, currentColor) r g b / calc(var(--crt-text-bloom-alpha, .32) * .45))}.portfolio-primary-action{border-color:var(--portfolio-signal-cyan);background:var(--portfolio-signal-cyan);color:var(--site-veil-color, #f5f7f5)}.portfolio-secondary-action{border-color:rgb(from var(--site-ink) r g b / .36);color:var(--portfolio-signal-white);background:rgb(from var(--site-veil-color) r g b / .44)}.portfolio-hero-statement,.portfolio-hero-capabilities,.portfolio-section,.portfolio-hero-capabilities span,.portfolio-contact-card,.portfolio-archive-index>div,.portfolio-index-row,.portfolio-evidence-grid>div,.portfolio-profile-list>div,.portfolio-profile-awards li{border-color:rgb(from var(--site-ink) r g b / .2)}.portfolio-game-section .portfolio-section-heading-copy h2,.portfolio-game-section .portfolio-featured-copy h3,.portfolio-runtime-diagnostic-panel strong{color:var(--signal-white)}.portfolio-featured-card{clip-path:none;box-shadow:8px 8px rgb(from var(--site-deep) r g b / .08)}.portfolio-reserved-field,.portfolio-runtime-reserved{background-image:linear-gradient(rgb(from var(--site-primary) r g b / .14) 1px,transparent 1px),linear-gradient(90deg,rgb(from var(--site-primary) r g b / .14) 1px,transparent 1px)}.portfolio-card-pixel-layer span,.portfolio-runtime-pixels span{box-shadow:6px 6px rgb(from var(--site-deep) r g b / .42)}.portfolio-game-section .portfolio-project-meta span:last-child,.portfolio-game-section .portfolio-project-status,.portfolio-index-row:hover,.portfolio-index-row.is-active{background:rgb(from var(--site-primary) r g b / .1)}.portfolio-runtime-chrome{background:var(--portfolio-signal-teal);color:var(--site-veil-color, #f5f7f5)}.portfolio-runtime-chrome span:first-child{background:var(--portfolio-signal-cyan);color:var(--site-veil-color, #f5f7f5)}.portfolio-runtime-chrome span:last-child{color:rgb(from var(--site-veil-color) r g b / .72)}.portfolio-runtime-reserved-mark{background:linear-gradient(90deg,transparent 25%,var(--signal-acid) 25% 50%,transparent 50% 75%,var(--signal-moss) 75%),linear-gradient(transparent 25%,rgb(from var(--site-primary) r g b / .46) 25% 50%,transparent 50% 75%,rgb(from var(--site-deep) r g b / .72) 75%);background-blend-mode:multiply;background-size:24px 24px}.portfolio-runtime-crt{display:none}.portfolio-runtime-diagnostic-label{background:linear-gradient(90deg,transparent 0 calc(100% - 12px),rgb(from var(--site-primary) r g b / .1) calc(100% - 12px)),var(--signal-surface)}.portfolio-section:not(.portfolio-game-section) .portfolio-section-heading-copy h2,.portfolio-shell[data-active-section=systems] #systems .portfolio-section-heading-copy h2,.portfolio-shell[data-active-section=experience] #experience .portfolio-section-heading-copy h2,.portfolio-shell[data-active-section=relevant-work] #relevant-work .portfolio-section-heading-copy h2,.portfolio-shell[data-active-section=archive] #archive .portfolio-section-heading-copy h2,.portfolio-shell[data-active-section=profile] #profile .portfolio-section-heading-copy h2,.portfolio-shell[data-active-section=contact] #contact .portfolio-section-heading-copy h2{color:var(--portfolio-signal-white)}.portfolio-floating-preview{background:rgb(from var(--site-veil-color) r g b / .94)}.portfolio-system-card,.portfolio-experience-primary,.portfolio-experience-secondary,.portfolio-profile-block,.portfolio-expanded-layout,.portfolio-contact-panel,.portfolio-archive-index,.portfolio-relevant-card,.portfolio-interactive-index{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}@media(hover:hover)and (pointer:fine){.portfolio-primary-action:hover,.portfolio-primary-action:focus-visible{border-color:var(--portfolio-signal-teal);background:var(--portfolio-signal-teal);color:var(--site-veil-color, #f5f7f5)}}@media(prefers-reduced-motion:reduce){.portfolio-index-row,.portfolio-index-row>svg,.portfolio-floating-preview,.portfolio-expanded-project{transition:none;animation:none}.portfolio-game-section *,.portfolio-game-section *:before,.portfolio-game-section *:after{scroll-behavior:auto;transition:none;animation:none}.portfolio-card-pixel-layer,.portfolio-runtime-pixels,.portfolio-runtime-dither-canvas{display:none}}@media(max-width:440px){.portfolio-navigation,.portfolio-navigation-mobile-menu{padding-right:1rem;padding-left:1rem}.portfolio-primary-action,.portfolio-secondary-action{width:100%}.portfolio-section-heading-copy h2{font-size:clamp(2.25rem,11.5vw,3.25rem);overflow-wrap:anywhere}.portfolio-contact-card{padding:1.25rem 1rem}}.portfolio-shell{background:#090a09f0}.portfolio-section:not(.portfolio-game-section){padding-top:clamp(4.5rem,6.5vw,7rem);padding-bottom:clamp(2.5rem,4vw,4.5rem)}.portfolio-game-section .portfolio-marker-line{opacity:1;transform:none}.portfolio-section:not(.portfolio-game-section) .portfolio-section-heading{position:relative;grid-template-columns:84px minmax(0,1fr);gap:24px;padding:24px 0 36px;margin-bottom:clamp(2rem,3vw,3rem);border-top:1px solid var(--portfolio-signal-line);border-bottom:1px solid var(--portfolio-signal-line);transition:background-color .15s ease-out,border-color .15s ease-out}.portfolio-section:not(.portfolio-game-section) .portfolio-section-heading-copy h2{color:#f1f3ebb3;transition:color .15s ease-out}.portfolio-section:not(.portfolio-game-section) .portfolio-section-description{font-size:clamp(.82rem,1vw,.95rem)}.portfolio-section:not(.portfolio-game-section) .portfolio-section-heading:after{position:absolute;top:-1px;right:0;width:144px;height:6px;content:"";background:repeating-linear-gradient(90deg,var(--portfolio-signal-acid) 0 12px,transparent 12px 24px);opacity:.32;transform:scaleX(.42);transform-origin:right center;transition:opacity .12s ease-out,transform .18s ease-out}.portfolio-section:not(.portfolio-game-section) .portfolio-section-marker{min-height:36px;justify-content:space-between;gap:12px;padding:0 0 0 12px;font-size:24px;line-height:36px}.portfolio-section:not(.portfolio-game-section) .portfolio-section-marker:before{position:absolute;top:24px;left:0;width:6px;height:36px;content:"";background:var(--portfolio-signal-acid);opacity:.38;transition:opacity .12s ease-out}.portfolio-section:not(.portfolio-game-section) .portfolio-marker-line{width:24px;background:linear-gradient(90deg,#48540f 0 12px,var(--portfolio-signal-acid) 12px)}.portfolio-hero-main h1{position:relative;display:grid;gap:clamp(8px,.9vw,14px);padding-bottom:24px}@media(min-width:721px){.portfolio-systems-section .portfolio-section-heading,.portfolio-relevant-section .portfolio-section-heading{grid-template-columns:72px minmax(0,1fr);gap:20px;padding:18px 0 24px;margin-bottom:clamp(1.75rem,2.5vw,2.5rem)}.portfolio-systems-section .portfolio-section-heading-copy,.portfolio-relevant-section .portfolio-section-heading-copy{max-width:none;display:grid;grid-template-columns:minmax(360px,.75fr) minmax(260px,1fr);grid-template-rows:auto auto;-moz-column-gap:clamp(2rem,4vw,4.5rem);column-gap:clamp(2rem,4vw,4.5rem);align-items:end}.portfolio-systems-section .portfolio-section-heading-copy .section-label,.portfolio-relevant-section .portfolio-section-heading-copy .section-label{grid-column:1;grid-row:1}.portfolio-systems-section .portfolio-section-heading-copy h2,.portfolio-relevant-section .portfolio-section-heading-copy h2{grid-column:1;grid-row:2;font-size:clamp(42px,4.4vw,64px)}.portfolio-systems-section .portfolio-section-description,.portfolio-relevant-section .portfolio-section-description{grid-column:2;grid-row:1 / 3;align-self:end;margin:0}.portfolio-systems-section .portfolio-section-marker,.portfolio-relevant-section .portfolio-section-marker{min-height:30px;padding-left:8px;font-size:18px;line-height:30px}.portfolio-systems-section .portfolio-section-marker:before,.portfolio-relevant-section .portfolio-section-marker:before{top:18px;width:4px;height:30px}.portfolio-systems-section .portfolio-section-heading:after,.portfolio-relevant-section .portfolio-section-heading:after{width:96px}.portfolio-shell[data-active-section=systems] #systems .portfolio-section-heading,.portfolio-shell[data-active-section=relevant-work] #relevant-work .portfolio-section-heading{background:rgb(from var(--site-active) r g b / .1)}}.portfolio-hero-main h1:after{position:absolute;bottom:0;left:0;width:min(288px,52vw);height:6px;content:"";background:repeating-linear-gradient(90deg,var(--portfolio-signal-acid) 0 12px,transparent 12px 24px);opacity:.46;transform:scaleX(.36);transform-origin:left center;transition:opacity .12s ease-out,transform .18s ease-out}.portfolio-shell[data-active-section=top] .portfolio-hero-main h1:after,.portfolio-shell[data-active-section=systems] #systems .portfolio-section-heading:after,.portfolio-shell[data-active-section=experience] #experience .portfolio-section-heading:after,.portfolio-shell[data-active-section=relevant-work] #relevant-work .portfolio-section-heading:after,.portfolio-shell[data-active-section=archive] #archive .portfolio-section-heading:after,.portfolio-shell[data-active-section=profile] #profile .portfolio-section-heading:after,.portfolio-shell[data-active-section=contact] #contact .portfolio-section-heading:after{opacity:1;transform:scaleX(1)}.portfolio-shell[data-active-section=systems] #systems .portfolio-section-heading,.portfolio-shell[data-active-section=experience] #experience .portfolio-section-heading,.portfolio-shell[data-active-section=relevant-work] #relevant-work .portfolio-section-heading,.portfolio-shell[data-active-section=archive] #archive .portfolio-section-heading,.portfolio-shell[data-active-section=profile] #profile .portfolio-section-heading,.portfolio-shell[data-active-section=contact] #contact .portfolio-section-heading{border-color:rgb(from var(--site-active) r g b / .48);background:rgb(from var(--site-active) r g b / .045)}.portfolio-shell[data-active-section=systems] #systems .portfolio-section-heading-copy h2,.portfolio-shell[data-active-section=experience] #experience .portfolio-section-heading-copy h2,.portfolio-shell[data-active-section=relevant-work] #relevant-work .portfolio-section-heading-copy h2,.portfolio-shell[data-active-section=archive] #archive .portfolio-section-heading-copy h2,.portfolio-shell[data-active-section=profile] #profile .portfolio-section-heading-copy h2,.portfolio-shell[data-active-section=contact] #contact .portfolio-section-heading-copy h2{color:var(--portfolio-signal-white)}.portfolio-shell[data-active-section=systems] #systems .portfolio-section-marker:before,.portfolio-shell[data-active-section=experience] #experience .portfolio-section-marker:before,.portfolio-shell[data-active-section=relevant-work] #relevant-work .portfolio-section-marker:before,.portfolio-shell[data-active-section=archive] #archive .portfolio-section-marker:before,.portfolio-shell[data-active-section=profile] #profile .portfolio-section-marker:before,.portfolio-shell[data-active-section=contact] #contact .portfolio-section-marker:before{opacity:1}.portfolio-shell[data-active-section=systems] #systems .portfolio-marker-line,.portfolio-shell[data-active-section=experience] #experience .portfolio-marker-line,.portfolio-shell[data-active-section=relevant-work] #relevant-work .portfolio-marker-line,.portfolio-shell[data-active-section=archive] #archive .portfolio-marker-line,.portfolio-shell[data-active-section=profile] #profile .portfolio-marker-line,.portfolio-shell[data-active-section=contact] #contact .portfolio-marker-line{opacity:1;transform:scaleX(1)}.portfolio-system-card,.portfolio-experience-primary,.portfolio-experience-secondary,.portfolio-profile-block,.portfolio-expanded-layout,.portfolio-floating-preview{background:var(--portfolio-signal-surface)}.portfolio-evidence-grid>div,.portfolio-tajima-textures figure,.portfolio-system-media span{background:var(--portfolio-signal-surface-raised)}.portfolio-featured-copy>p,.portfolio-system-copy>p,.portfolio-experience-secondary>p,.portfolio-relevant-copy>p{font-size:.875rem}.portfolio-evidence-grid dd,.portfolio-profile-list dt,.portfolio-profile-list dd,.portfolio-profile-awards li{font-size:.875rem}.portfolio-game-section .portfolio-featured-copy>p{color:#f1f2eda8;font-size:.875rem;line-height:1.7}.portfolio-footer{margin-top:clamp(2.5rem,4vw,4rem)}@media(min-width:1100px){.portfolio-hero-main{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:clamp(4rem,8vw,9rem);align-items:end;padding:clamp(2.5rem,4vw,4rem) 0}.portfolio-hero-statement{align-self:end;margin-top:0}.portfolio-game-section[data-runtime-signal=ready] .portfolio-featured-copy>p{color:#f1f2eda8;font-size:.875rem;line-height:1.7}.portfolio-experience-layout{grid-template-columns:minmax(0,1.65fr) minmax(280px,.7fr);gap:24px;align-items:start}.portfolio-experience-title-row strong{font-size:clamp(2.5rem,3.75vw,3.75rem)}.portfolio-profile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.portfolio-system-media,.portfolio-floating-media,.portfolio-touch-preview-media,.portfolio-relevant-media,.portfolio-expanded-layout video,.portfolio-tajima-stage{background:#060706}.portfolio-archive-index,.portfolio-contact-panel,.portfolio-relevant-card,.portfolio-interactive-index{border-color:var(--portfolio-signal-line-strong)}.portfolio-primary-action,.portfolio-secondary-action,.portfolio-project-action,.portfolio-contact-link,.portfolio-archive-entry{transition:color .12s ease-out,background-color .12s ease-out,border-color .12s ease-out,transform .12s ease-out}@media(hover:hover)and (pointer:fine){.portfolio-primary-action:hover,.portfolio-primary-action:focus-visible{background:var(--portfolio-signal-white);border-color:var(--portfolio-signal-white)}.portfolio-secondary-action:hover,.portfolio-project-action:hover,.portfolio-contact-link:hover,.portfolio-contact-link:focus-visible,.portfolio-archive-entry:hover{color:var(--portfolio-signal-acid);background-color:rgb(from var(--site-active) r g b / .12)}}.portfolio-primary-action:active,.portfolio-project-action:active,.portfolio-contact-link:active,.portfolio-archive-entry:active{transform:scale(.985)}@media(min-width:721px){.portfolio-experience-section .portfolio-section-heading.is-record{grid-template-columns:72px minmax(0,1fr) minmax(140px,180px);gap:20px;padding:20px 0 28px;margin-bottom:clamp(2rem,3vw,3rem)}.portfolio-experience-section .portfolio-section-heading.is-record:after{width:72px}.portfolio-experience-section .portfolio-section-heading.is-record .portfolio-section-marker{min-height:30px;padding-left:8px;font-size:18px;line-height:30px}.portfolio-experience-section .portfolio-section-heading.is-record .portfolio-section-marker:before{top:20px;width:4px;height:30px}.portfolio-experience-section .portfolio-section-heading.is-record h2{font-size:clamp(48px,5.2vw,72px)}.portfolio-shell[data-active-section=experience] #experience .portfolio-section-heading.is-record{background:rgb(from var(--site-active) r g b / .1)}}.portfolio-section-heading-meta{align-self:stretch;display:flex;flex-direction:column;justify-content:space-between;gap:24px;padding-left:24px;border-left:1px solid var(--portfolio-signal-line);font-family:var(--portfolio-pixel-font);font-weight:400;font-synthesis:none}.portfolio-section-heading-meta span{color:var(--portfolio-signal-muted);font-size:12px;line-height:24px}.portfolio-section-heading-meta strong{color:var(--portfolio-signal-white);font-size:clamp(18px,1.6vw,24px);font-weight:400;line-height:1}.portfolio-shell[data-active-section=experience] #experience .portfolio-section-heading-meta strong{color:var(--portfolio-signal-acid)}@media(min-width:721px){.portfolio-archive-section .portfolio-section-heading.is-catalog{grid-template-columns:64px minmax(0,1fr) 160px;gap:0;min-height:136px;padding:0;margin-bottom:0}.portfolio-archive-section .portfolio-section-heading.is-catalog:after{width:72px}.portfolio-archive-section .portfolio-section-heading.is-catalog .portfolio-section-marker{min-height:100%;align-items:center;padding:0 16px 0 8px;border-right:1px solid var(--portfolio-signal-line);font-size:16px;line-height:1}.portfolio-archive-section .portfolio-section-heading.is-catalog .portfolio-section-marker:before{top:50%;width:4px;height:40px;transform:translateY(-50%)}.portfolio-archive-section .portfolio-section-heading.is-catalog .portfolio-section-heading-copy{max-width:none;display:grid;grid-template-columns:minmax(290px,.8fr) minmax(320px,1.2fr);grid-template-rows:auto auto;align-content:center;-moz-column-gap:clamp(2rem,4vw,4rem);column-gap:clamp(2rem,4vw,4rem);padding:22px 32px}.portfolio-archive-section .portfolio-section-heading.is-catalog .section-label{grid-column:1;grid-row:1}.portfolio-archive-section .portfolio-section-heading.is-catalog h2{grid-column:1;grid-row:2;margin-top:4px;font-size:clamp(36px,3.6vw,52px);line-height:1}.portfolio-archive-section .portfolio-section-heading.is-catalog .portfolio-section-description{grid-column:2;grid-row:1 / span 2;align-self:center;max-width:560px;margin:0;padding-left:clamp(1.5rem,3vw,3rem);border-left:1px solid var(--portfolio-signal-line);line-height:1.75}.portfolio-archive-section .portfolio-section-heading.is-catalog .portfolio-section-heading-meta{justify-content:center;gap:8px;padding:22px 0 22px 24px}.portfolio-archive-section .portfolio-section-heading.is-catalog .portfolio-section-heading-meta strong{color:var(--portfolio-signal-acid);font-size:clamp(42px,4vw,56px);line-height:.9}.portfolio-archive-section .portfolio-archive-index{border-top:0}.portfolio-shell[data-active-section=archive] #archive .portfolio-section-heading.is-catalog{background:rgb(from var(--site-active) r g b / .1)}}@media(min-width:721px)and (max-width:959px){.portfolio-archive-section .portfolio-section-heading.is-catalog{grid-template-columns:56px minmax(0,1fr) 112px;min-height:156px}.portfolio-archive-section .portfolio-section-heading.is-catalog .portfolio-section-marker{padding-right:12px}.portfolio-archive-section .portfolio-section-heading.is-catalog .portfolio-section-heading-copy{display:block;min-width:0;padding:18px 20px}.portfolio-archive-section .portfolio-section-heading.is-catalog h2{font-size:clamp(34px,5vw,42px)}.portfolio-archive-section .portfolio-section-heading.is-catalog .portfolio-section-description{max-width:500px;margin-top:12px;padding-left:0;border-left:0;line-height:1.6}.portfolio-archive-section .portfolio-section-heading.is-catalog .portfolio-section-heading-meta{padding:18px 0 18px 16px}.portfolio-archive-section .portfolio-section-heading.is-catalog .portfolio-section-heading-meta strong{font-size:40px}}@media(min-width:721px){.portfolio-profile-section .portfolio-section-heading.is-resume{grid-template-columns:72px minmax(0,1fr) 160px;gap:20px;min-height:168px;padding:20px 0 24px;margin-bottom:24px}.portfolio-profile-section .portfolio-section-heading.is-resume:after{width:72px}.portfolio-profile-section .portfolio-section-heading.is-resume .portfolio-section-marker{min-height:30px;padding-left:8px;font-size:18px;line-height:30px}.portfolio-profile-section .portfolio-section-heading.is-resume .portfolio-section-marker:before{top:20px;width:4px;height:30px}.portfolio-profile-section .portfolio-section-heading.is-resume .portfolio-section-heading-copy{max-width:none;display:grid;grid-template-columns:minmax(300px,.8fr) minmax(320px,1.2fr);grid-template-rows:auto auto;-moz-column-gap:clamp(2rem,4vw,4rem);column-gap:clamp(2rem,4vw,4rem);align-content:center}.portfolio-profile-section .portfolio-section-heading.is-resume .section-label{grid-column:1;grid-row:1}.portfolio-profile-section .portfolio-section-heading.is-resume h2{grid-column:1;grid-row:2;margin-top:6px;font-size:clamp(44px,4.6vw,64px);line-height:1}.portfolio-profile-section .portfolio-section-heading.is-resume .portfolio-section-description{grid-column:2;grid-row:1 / span 2;align-self:center;max-width:540px;margin:0;padding-left:clamp(1.5rem,3vw,3rem);border-left:1px solid var(--portfolio-signal-line);line-height:1.75}.portfolio-profile-section .portfolio-section-heading.is-resume .portfolio-section-heading-meta{justify-content:center;gap:10px;padding:20px 0 20px 24px}.portfolio-profile-section .portfolio-section-heading.is-resume .portfolio-section-heading-meta strong{color:var(--portfolio-signal-white);font-size:32px;line-height:1}.portfolio-shell[data-active-section=profile] #profile .portfolio-section-heading.is-resume{background:rgb(from var(--site-active) r g b / .1)}.portfolio-shell[data-active-section=profile] #profile .portfolio-section-heading.is-resume .portfolio-section-heading-meta strong{color:var(--portfolio-signal-acid)}.portfolio-profile-section .portfolio-profile-grid{gap:12px}.portfolio-profile-section .portfolio-profile-block{padding:clamp(1.5rem,2.25vw,2rem)}.portfolio-profile-section .portfolio-profile-list,.portfolio-profile-section .portfolio-profile-skills,.portfolio-profile-section .portfolio-profile-awards{margin-top:1.5rem}.portfolio-profile-section .portfolio-profile-list>div{padding:.75rem 0}.portfolio-profile-section .portfolio-profile-awards li{padding:.7rem 0}.portfolio-contact-section .portfolio-section-heading.is-closing{grid-template-columns:64px minmax(0,1fr);gap:20px;min-height:120px;padding:18px 0 22px;margin-bottom:0}.portfolio-contact-section .portfolio-section-heading.is-closing:after{width:48px}.portfolio-contact-section .portfolio-section-heading.is-closing .portfolio-section-marker{min-height:28px;padding-left:8px;font-size:16px;line-height:28px}.portfolio-contact-section .portfolio-section-heading.is-closing .portfolio-section-marker:before{top:18px;width:4px;height:28px}.portfolio-contact-section .portfolio-section-heading.is-closing .portfolio-section-heading-copy{max-width:none;display:grid;grid-template-columns:minmax(280px,.7fr) minmax(360px,1.3fr);grid-template-rows:auto auto;-moz-column-gap:clamp(2rem,5vw,5rem);column-gap:clamp(2rem,5vw,5rem);align-content:center}.portfolio-contact-section .portfolio-section-heading.is-closing .section-label{grid-column:1;grid-row:1}.portfolio-contact-section .portfolio-section-heading.is-closing h2{grid-column:1;grid-row:2;margin-top:4px;font-size:clamp(36px,3.8vw,52px);line-height:1}.portfolio-contact-section .portfolio-section-heading.is-closing .portfolio-section-description{grid-column:2;grid-row:1 / span 2;align-self:center;max-width:640px;margin:0;padding-left:clamp(1.5rem,3vw,3rem);border-left:1px solid var(--portfolio-signal-line);line-height:1.75}.portfolio-shell[data-active-section=contact] #contact .portfolio-section-heading.is-closing{background:rgb(from var(--site-active) r g b / .1)}.portfolio-contact-section .portfolio-contact-card{min-height:112px;padding:18px 20px}.portfolio-contact-section .portfolio-footer{margin-top:32px}}@media(min-width:721px)and (max-width:959px){.portfolio-systems-section .portfolio-section-heading-copy,.portfolio-relevant-section .portfolio-section-heading-copy{grid-template-columns:minmax(300px,.9fr) minmax(0,1.1fr);-moz-column-gap:24px;column-gap:24px}.portfolio-profile-section .portfolio-section-heading.is-resume{grid-template-columns:56px minmax(0,1fr) 112px;min-height:184px}.portfolio-profile-section .portfolio-section-heading.is-resume .portfolio-section-marker{padding-right:12px}.portfolio-profile-section .portfolio-section-heading.is-resume .portfolio-section-heading-copy{display:block;min-width:0}.portfolio-profile-section .portfolio-section-heading.is-resume h2{font-size:clamp(38px,5.2vw,44px)}.portfolio-profile-section .portfolio-section-heading.is-resume .portfolio-section-description{max-width:520px;margin-top:12px;padding-left:0;border-left:0;line-height:1.6}.portfolio-profile-section .portfolio-section-heading.is-resume .portfolio-section-heading-meta{padding:18px 0 18px 16px}.portfolio-contact-section .portfolio-section-heading.is-closing{grid-template-columns:56px minmax(0,1fr)}.portfolio-contact-section .portfolio-section-heading.is-closing .portfolio-section-heading-copy{grid-template-columns:minmax(220px,.75fr) minmax(0,1.25fr);-moz-column-gap:32px;column-gap:32px}.portfolio-contact-section .portfolio-section-heading.is-closing h2{font-size:clamp(36px,5vw,42px)}.portfolio-contact-section .portfolio-section-heading.is-closing .portfolio-section-description{padding-left:24px}.portfolio-contact-section .portfolio-contact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portfolio-contact-section .portfolio-contact-card:nth-child(-n+2){border-bottom:1px solid rgb(from var(--site-ink) r g b / .3)}.portfolio-contact-section .portfolio-contact-card:nth-child(2){border-right:0}.portfolio-archive-section,.portfolio-profile-section,.portfolio-contact-section{padding-top:4.5rem;padding-bottom:3rem}}@media(max-width:720px){.portfolio-section:not(.portfolio-game-section){padding-top:4rem;padding-bottom:2.5rem}.portfolio-section:not(.portfolio-game-section) .portfolio-section-heading{grid-template-columns:minmax(0,1fr);gap:24px;padding:24px 0;margin-bottom:2rem}.portfolio-section:not(.portfolio-game-section) .portfolio-section-heading:after{width:96px}.portfolio-section:not(.portfolio-game-section) .portfolio-section-marker{width:72px}.portfolio-section-heading-meta{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:16px 0 0;border-top:1px solid var(--portfolio-signal-line);border-left:0}.portfolio-section-heading-meta strong{font-size:18px}.portfolio-archive-section .portfolio-section-heading.is-catalog{gap:18px;padding:20px 0;margin-bottom:0}.portfolio-archive-section .portfolio-section-heading.is-catalog h2{margin-top:4px;font-size:clamp(36px,10vw,44px)}.portfolio-archive-section .portfolio-section-heading.is-catalog .portfolio-section-description{margin-top:16px}.portfolio-archive-section .portfolio-section-heading.is-catalog .portfolio-section-heading-meta{padding-top:12px}.portfolio-archive-section .portfolio-archive-index{border-top:0}.portfolio-archive-section .portfolio-archive-index>div{grid-template-columns:minmax(0,1fr);gap:4px;align-content:center;padding:12px}.portfolio-archive-section .portfolio-archive-index span{white-space:nowrap}.portfolio-archive-section .portfolio-archive-index strong{font-size:24px;line-height:1}.portfolio-profile-section .portfolio-section-heading.is-resume{gap:18px;padding:20px 0;margin-bottom:20px}.portfolio-profile-section .portfolio-section-heading.is-resume h2{margin-top:4px;font-size:clamp(38px,10.5vw,46px)}.portfolio-profile-section .portfolio-section-heading.is-resume .portfolio-section-description{margin-top:16px}.portfolio-profile-section .portfolio-section-heading.is-resume .portfolio-section-heading-meta{padding-top:12px}.portfolio-profile-section .portfolio-profile-grid{gap:12px}.portfolio-profile-section .portfolio-profile-block{padding:1.5rem}.portfolio-profile-section .portfolio-profile-list,.portfolio-profile-section .portfolio-profile-skills,.portfolio-profile-section .portfolio-profile-awards{margin-top:1.5rem}.portfolio-contact-section .portfolio-section-heading.is-closing{gap:18px;padding:20px 0;margin-bottom:0}.portfolio-contact-section .portfolio-section-heading.is-closing h2{margin-top:4px;font-size:clamp(36px,10vw,44px)}.portfolio-contact-section .portfolio-section-heading.is-closing .portfolio-section-description{margin-top:16px}.portfolio-contact-section .portfolio-contact-card{min-height:112px;padding:18px 16px}.portfolio-contact-section .portfolio-footer{margin-top:24px}.portfolio-archive-section,.portfolio-profile-section,.portfolio-contact-section{padding-top:3.5rem;padding-bottom:2rem}}@media(prefers-reduced-motion:reduce){.portfolio-shell *,.portfolio-shell *:before,.portfolio-shell *:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.portfolio-primary-action:active,.portfolio-project-action:active,.portfolio-contact-link:active,.portfolio-archive-entry:active{transform:none}}.portfolio-shell{background:rgb(from var(--site-bg, #f3f5f3) r g b / .86)}.portfolio-navigation{background:rgb(from var(--site-veil-color) r g b / .94);border-bottom-color:rgb(from var(--site-deep) r g b / .42)}.portfolio-navigation-links a.is-current{border-color:rgb(from var(--site-active) r g b / .52);background:rgb(from var(--site-primary) r g b / .1)}.portfolio-hero,.portfolio-section{background:rgb(from var(--site-veil-color) r g b / var(--site-veil, .74));box-shadow:0 0 0 100vmax rgb(from var(--site-veil-color) r g b / var(--site-veil, .74));clip-path:inset(0 -100vmax)}.portfolio-section:not(.portfolio-game-section) .portfolio-section-heading-copy h2{color:var(--portfolio-signal-white)}.portfolio-shell[data-active-section=systems] #systems .portfolio-section-heading-copy h2,.portfolio-shell[data-active-section=experience] #experience .portfolio-section-heading-copy h2,.portfolio-shell[data-active-section=relevant-work] #relevant-work .portfolio-section-heading-copy h2,.portfolio-shell[data-active-section=archive] #archive .portfolio-section-heading-copy h2,.portfolio-shell[data-active-section=profile] #profile .portfolio-section-heading-copy h2,.portfolio-shell[data-active-section=contact] #contact .portfolio-section-heading-copy h2{color:var(--site-active, #169eae)}.portfolio-shell[data-active-section=systems] #systems .portfolio-section-heading,.portfolio-shell[data-active-section=experience] #experience .portfolio-section-heading,.portfolio-shell[data-active-section=relevant-work] #relevant-work .portfolio-section-heading,.portfolio-shell[data-active-section=archive] #archive .portfolio-section-heading,.portfolio-shell[data-active-section=profile] #profile .portfolio-section-heading,.portfolio-shell[data-active-section=contact] #contact .portfolio-section-heading{border-color:rgb(from var(--site-active) r g b / .48);background:rgb(from var(--site-primary) r g b / .07)}.portfolio-game-section[data-runtime-signal=ready] .portfolio-featured-copy h3{color:rgb(from var(--site-ink) r g b / .58)}.portfolio-game-section[data-runtime-signal=ready] .portfolio-featured-card[aria-current=true] .portfolio-featured-copy h3,.portfolio-game-section .portfolio-featured-copy h3,.portfolio-runtime-diagnostic-panel strong{color:var(--signal-white)}.portfolio-game-section .portfolio-featured-copy>p,.portfolio-game-section[data-runtime-signal=ready] .portfolio-featured-copy>p{color:var(--signal-gray)}.portfolio-game-section[data-runtime-signal=ready] .portfolio-featured-card[aria-current=true]{border-bottom-color:rgb(from var(--site-active) r g b / .72);background:rgb(from var(--site-primary) r g b / .08)}.portfolio-section:not(.portfolio-game-section) .portfolio-marker-line{background:linear-gradient(180deg,var(--portfolio-signal-teal),var(--portfolio-signal-cyan))}@media(max-width:720px){.portfolio-navigation-mobile-menu{background:rgb(from var(--site-veil-color) r g b / .98)}.portfolio-hero,.portfolio-section{background:rgb(from var(--site-veil-color) r g b / .84);box-shadow:0 0 0 100vmax rgb(from var(--site-veil-color) r g b / .84)}}.portfolio-navigation-brand{align-items:center;transform:translateY(3px)}.portfolio-shell,.portfolio-shell *,.portfolio-floating-preview,.portfolio-floating-preview *{font-family:var(--portfolio-pixel-font, "Fusion Pixel 12", "JetBrains Mono", monospace)}.portfolio-floating-preview{z-index:2147483000;border-color:rgb(from var(--site-ink) r g b / .72);background:rgb(from var(--site-veil-color) r g b / .98);box-shadow:10px 10px rgb(from var(--site-deep) r g b / .16)}@media(max-width:720px){.portfolio-navigation-brand,.portfolio-navigation-toggle{transform:translateY(2px)}}.site-main:focus{outline:none}html{scroll-behavior:smooth}.cursor-pointer{cursor:pointer}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}button:focus-visible,a:focus-visible{outline:2px solid var(--site-active, #169eae);outline-offset:2px}::-moz-selection{background:var(--site-primary, #28b6c3);color:#fff}::selection{background:var(--site-primary, #28b6c3);color:#fff}
