@import url("https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght,FILL@100..700,0..1&display=swap");*,:after,:before{--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:rgba(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:rgba(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: }

/*
! tailwindcss v3.4.14 | MIT License | https://tailwindcss.com
*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{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,pre,samp{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,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{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}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.left-0{left:0}.left-7{left:1.75rem}.top-0{top:0}.top-1\.5{top:.375rem}.z-\[100\]{z-index:100}.mx-auto{margin-left:auto;margin-right:auto}.mb-12{margin-bottom:3rem}.mb-14{margin-bottom:3.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.h-2{height:.5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-full{height:100%}.max-h-\[320px\]{max-height:320px}.min-h-\[44px\]{min-height:44px}.min-h-screen{min-height:100vh}.w-16{width:4rem}.w-2{width:.5rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-\[2px\]{width:2px}.w-full{width:100%}.max-w-3xl{max-width:48rem}.max-w-xl{max-width:36rem}.shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,.-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes ping{75%,to{transform:scale(2);opacity:0}}.animate-ping{animation:ping 1s cubic-bezier(0,0,.2,1) infinite}.resize{resize:both}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-5{gap:1.25rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-x-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.gap-y-2{row-gap:.5rem}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-7>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.75rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.self-start{align-self:flex-start}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded-full{border-radius:.75rem}.rounded-lg{border-radius:.25rem}.rounded-xl{border-radius:.5rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-outline-variant\/15{border-color:rgba(52,70,80,.15)}.border-outline-variant\/30{border-color:rgba(52,70,80,.3)}.border-outline-variant\/40{border-color:rgba(52,70,80,.4)}.border-primary-fixed-dim\/40{border-color:hsla(84,76%,73%,.4)}.bg-\[\#101b23\]{--tw-bg-opacity:1;background-color:rgb(16 27 35/var(--tw-bg-opacity))}.bg-\[\#c5f277\]{--tw-bg-opacity:1;background-color:rgb(197 242 119/var(--tw-bg-opacity))}.bg-black\/60{background-color:rgba(0,0,0,.6)}.bg-primary-fixed-dim\/10{background-color:hsla(84,76%,73%,.1)}.bg-transparent{background-color:transparent}.p-5{padding:1.25rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.pb-14{padding-bottom:3.5rem}.pb-20{padding-bottom:5rem}.pb-24{padding-bottom:6rem}.pb-3{padding-bottom:.75rem}.pl-16{padding-left:4rem}.pl-5{padding-left:1.25rem}.pt-12{padding-top:3rem}.pt-\[14vh\]{padding-top:14vh}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-body-lg,.font-body-md{font-family:var(--font-hanken-grotesk)}.font-headline-lg,.font-headline-md{font-family:var(--font-eb-garamond)}.font-label-caps,.font-technical-sm{font-family:var(--font-jetbrains-mono)}.text-\[10px\]{font-size:10px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[16px\]{font-size:16px}.text-\[17px\]{font-size:17px}.text-\[18px\]{font-size:18px}.text-\[20px\]{font-size:20px}.text-\[22px\]{font-size:22px}.text-\[24px\]{font-size:24px}.text-body-md{font-size:16px;line-height:1.6;font-weight:400}.text-headline-lg-mobile{font-size:32px;line-height:1.2;font-weight:500}.text-label-caps{font-size:12px;line-height:1.5;letter-spacing:.04em;font-weight:600}.text-technical-sm{font-size:13px;line-height:1.4;letter-spacing:.05em;font-weight:450}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.text-on-surface{--tw-text-opacity:1;color:rgb(236 240 233/var(--tw-text-opacity))}.text-on-surface-variant{--tw-text-opacity:1;color:rgb(164 179 189/var(--tw-text-opacity))}.text-on-surface-variant\/50{color:rgba(164,179,189,.5)}.text-on-surface-variant\/60{color:rgba(164,179,189,.6)}.text-on-surface-variant\/70{color:rgba(164,179,189,.7)}.text-on-surface-variant\/80{color:rgba(164,179,189,.8)}.text-primary{--tw-text-opacity:1;color:rgb(210 237 175/var(--tw-text-opacity))}.text-primary-fixed-dim{--tw-text-opacity:1;color:rgb(198 239 135/var(--tw-text-opacity))}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-75{opacity:.75}.shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.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)}.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)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.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}.duration-500{transition-duration:.5s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}html{scroll-behavior:smooth;scroll-padding-top:5rem}body{background-color:#241a0d;color:#e5e1e4;overflow-x:hidden}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:hidden}.starfield{position:fixed;inset:0;z-index:0;width:100%;height:100%;pointer-events:none}.vt-ua-parking{view-transition-name:work-ua-parking}.vt-iris{view-transition-name:work-iris}.vt-nexus{view-transition-name:work-nexus}::view-transition-new(root),::view-transition-old(root){animation-duration:.45s}@media (prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-new(*),::view-transition-old(*){animation:none!important}}.material-symbols-outlined{direction:ltr;display:inline-block;font-family:Material Symbols Outlined;font-feature-settings:"liga";font-size:24px;font-style:normal;font-weight:400;letter-spacing:normal;line-height:1;text-rendering:optimizeLegibility;text-transform:none;white-space:nowrap;word-wrap:normal}.glass-card{background-color:#322316;border:1px solid hsla(0,0%,100%,.06)}.glow-hover{transition:border-color .18s ease,filter .18s ease}.glow-hover:hover{border-color:hsla(0,0%,100%,.22);filter:drop-shadow(0 0 14px rgb(255 186 32/40%))}.chip-hot-cold{color:#ffb59a;background-color:rgba(44,0,80,.6);border:1px solid rgba(255,181,154,.2)}.pixel-companion-stage{display:none}@media (min-width:768px){.pixel-companion-stage{display:block;height:114px;margin:44px auto 0;pointer-events:none;position:relative;width:min(560px,calc(100vw - 180px));z-index:30}.pixel-companion-lane{background:repeating-linear-gradient(90deg,rgba(255,184,0,.38) 0 8px,transparent 8px 18px),linear-gradient(90deg,transparent,rgba(255,184,0,.2),transparent);bottom:34px;height:2px;left:0;opacity:0;overflow:visible;position:absolute;right:0;transform:scaleX(.75);transition:opacity .18s ease,transform .22s steps(5)}.pixel-companion-stage.is-hit .pixel-companion-lane,.pixel-companion-stage.is-playing .pixel-companion-lane{opacity:1;transform:scaleX(1)}.pixel-companion-score{color:hsla(36,33%,75%,.78);display:flex;font-family:var(--font-jetbrains-mono);font-size:10px;font-weight:700;gap:18px;justify-content:flex-end;letter-spacing:.08em;opacity:0;pointer-events:none;position:absolute;right:0;text-shadow:0 0 10px rgba(255,184,0,.22);top:6px;transform:translateY(3px);transition:opacity .16s ease,transform .16s ease}.pixel-companion-stage.is-hit .pixel-companion-score,.pixel-companion-stage.is-playing .pixel-companion-score{opacity:1;transform:translateY(0)}.pixel-companion-hint{bottom:0;color:hsla(315,7%,89%,.74);font-family:var(--font-jetbrains-mono);font-size:12px;font-weight:800;left:0;letter-spacing:.14em;line-height:1;pointer-events:none;position:absolute;right:0;text-align:center;text-shadow:0 0 10px hsla(315,7%,89%,.2);transform:none;white-space:nowrap;z-index:35}.pixel-companion-hint span{display:block;opacity:0}.pixel-companion-stage.is-idle .pixel-companion-hint__idle{animation:pixel-companion-click-hint 1.45s steps(2) infinite;font-size:14px;opacity:1}.pixel-companion-stage.is-playing .pixel-companion-hint{bottom:0;left:0;transform:none}.pixel-companion-stage.is-playing .pixel-companion-hint__playing{animation:pixel-companion-play-hint 5s step-end forwards;opacity:1}.pixel-companion{--jump-y:0px;background:transparent;border:0;bottom:34px;cursor:pointer;height:56px;isolation:isolate;left:50%;padding:0;pointer-events:auto;position:absolute;transform:translate(-50%,var(--jump-y));transition:filter .16s ease,left .36s steps(7);width:74px}.pixel-companion:before{background:radial-gradient(ellipse at center,rgba(255,184,0,.46) 0,rgba(255,184,0,.24) 34%,transparent 70%);content:"";inset:2px 6px 4px;opacity:.52;pointer-events:none;position:absolute;transform:scale(1.08);z-index:0}.pixel-companion-stage.is-hit .pixel-companion,.pixel-companion-stage.is-playing .pixel-companion{left:72px}.pixel-companion:focus-visible{filter:drop-shadow(0 0 16px rgb(255 184 0/70%));outline:none}.pixel-companion:hover{filter:drop-shadow(0 0 14px rgb(255 184 0/55%))}.pixel-companion__sprite{--companion-fill:#e5e1e4;--companion-ink:#080706;--companion-scale:0.7;--companion-shade:#bdb5bb;animation:pixel-companion-idle 2.8s steps(4) infinite;display:block;filter:drop-shadow(0 0 10px rgb(229 225 228/18%));height:54px;image-rendering:pixelated;left:1px;position:absolute;top:0;transform-origin:50% 100%;width:72px;z-index:1}.pixel-companion__sprite span{box-sizing:border-box;image-rendering:pixelated;position:absolute}.pixel-companion.is-playing .pixel-companion__sprite{animation:pixel-companion-run .36s steps(2) infinite}.pixel-companion.is-jumping .pixel-companion__sprite{animation:pixel-companion-jump .42s steps(3) infinite}.pixel-companion.is-hit .pixel-companion__sprite{animation:pixel-companion-hit .12s steps(2) 6}.pixel-companion__body{background:var(--companion-fill);border-radius:1px;box-shadow:inset -3px 0 0 rgba(8,7,6,.12),0 0 0 1px hsla(315,7%,89%,.1);height:30px;left:10px;top:8px;width:52px;z-index:3}.pixel-companion__ear{background:var(--companion-fill);height:14px;top:19px;width:12px;z-index:2}.pixel-companion__ear--left{left:0}.pixel-companion__ear--right{right:0}.pixel-companion__stripe{background:var(--companion-shade);height:30px;top:0;width:2px}.pixel-companion__stripe--one{left:11px}.pixel-companion__stripe--two{left:22px}.pixel-companion__stripe--three{left:33px}.pixel-companion__stripe--four{left:44px}.pixel-companion__eye{animation:pixel-companion-blink 5s step-end infinite;background:var(--companion-ink);height:6px;top:10px;width:6px}.pixel-companion.is-idle .pixel-companion__eye{animation:pixel-companion-blink 5s step-end infinite,pixel-companion-glance 8.5s step-end infinite}.pixel-companion__eye--left{left:12px}.pixel-companion__eye--right{right:10px}.pixel-companion__arm{background:var(--companion-fill);height:8px;opacity:0;right:3px;top:31px;transform-origin:0 50%;width:9px;z-index:4}.pixel-companion.is-idle .pixel-companion__arm{animation:pixel-companion-arm-wave 7.5s step-end infinite}.pixel-companion__leg{background:var(--companion-fill);height:18px;top:36px;transform-origin:50% 0;width:8px;z-index:1}.pixel-companion__leg--one{left:10px}.pixel-companion__leg--two{left:24px}.pixel-companion__leg--three{left:40px}.pixel-companion__leg--four{left:54px}.pixel-companion__jump-pixel{background:var(--companion-fill);height:3px;opacity:0;width:3px;z-index:0}.pixel-companion__jump-pixel--one{left:0;top:41px}.pixel-companion__jump-pixel--two{left:6px;top:47px}.pixel-companion__impact{background:var(--companion-fill);box-shadow:0 0 8px hsla(315,7%,89%,.55);height:4px;opacity:0;width:4px;z-index:5}.pixel-companion__impact--one{--impact-x:9px;--impact-y:-5px;right:4px;top:9px}.pixel-companion__impact--two{--impact-x:3px;--impact-y:-11px;right:20px;top:0}.pixel-companion__impact--three{--impact-x:-9px;--impact-y:4px;left:8px;top:34px}.pixel-companion.is-hit .pixel-companion__impact{animation:pixel-companion-impact-spark .36s steps(3) 2}.pixel-companion.is-playing .pixel-companion__leg--one,.pixel-companion.is-playing .pixel-companion__leg--three{animation:pixel-companion-leg-forward .36s steps(2) infinite}.pixel-companion.is-playing .pixel-companion__leg--four,.pixel-companion.is-playing .pixel-companion__leg--two{animation:pixel-companion-leg-back .36s steps(2) infinite}.pixel-companion.is-jumping .pixel-companion__leg{animation:none;height:10px;top:35px;transform:translateY(-4px)}.pixel-companion.is-jumping .pixel-companion__leg--one,.pixel-companion.is-jumping .pixel-companion__leg--three{transform:translate(3px,-6px)}.pixel-companion.is-jumping .pixel-companion__leg--four,.pixel-companion.is-jumping .pixel-companion__leg--two{transform:translate(-3px,-6px)}.pixel-companion.is-jumping .pixel-companion__jump-pixel{animation:pixel-companion-jump-trail .18s steps(2) infinite}.pixel-companion-obstacle{bottom:3px;display:block;image-rendering:pixelated;position:absolute}.pixel-companion-obstacle--cube{background:#2a2118;border:2px solid #ffb800;box-shadow:inset -4px -4px 0 rgba(0,0,0,.34),0 0 9px rgba(255,184,0,.24)}.pixel-companion-obstacle--asteroid{background:linear-gradient(135deg,rgba(255,222,168,.28),transparent 42%),#2a2118;border:2px solid rgba(255,181,154,.76);border-radius:4px;box-shadow:inset -5px -4px 0 rgba(0,0,0,.28),0 0 8px rgba(255,181,154,.2);transform:rotate(10deg)}.pixel-companion-obstacle--spike{background:transparent}.pixel-companion-obstacle--spike:after,.pixel-companion-obstacle--spike:before{background:#ffb800;bottom:0;content:"";height:22px;position:absolute;width:8px}.pixel-companion-obstacle--spike:before{left:0;transform:skewX(-18deg)}.pixel-companion-obstacle--spike:after{right:0;transform:skewX(18deg)}}@keyframes pixel-companion-idle{0%,to{transform:translateY(0) scale(var(--companion-scale))}50%{transform:translateY(-2px) scale(var(--companion-scale))}}@keyframes pixel-companion-run{0%,to{transform:translateY(0) scale(var(--companion-scale)) scaleX(1)}50%{transform:translateY(-1px) scale(var(--companion-scale)) scaleX(.98)}}@keyframes pixel-companion-jump{0%,to{transform:translateY(0) rotate(0) scale(var(--companion-scale))}50%{transform:translateY(-3px) rotate(-2deg) scale(var(--companion-scale))}}@keyframes pixel-companion-hit{0%{filter:drop-shadow(0 0 10px rgb(229 225 228/18%));transform:translateX(0) rotate(0) scale(var(--companion-scale))}50%{filter:drop-shadow(0 0 16px rgb(229 225 228/58%));transform:translateX(5px) rotate(2deg) scale(var(--companion-scale)) scaleX(1.03)}to{filter:drop-shadow(0 0 10px rgb(229 225 228/18%));transform:translateX(-3px) rotate(-2deg) scale(var(--companion-scale))}}@keyframes pixel-companion-click-hint{0%,to{opacity:.35;transform:translateY(0)}50%{opacity:1;transform:translateY(-1px)}}@keyframes pixel-companion-play-hint{0%,72%{opacity:1;transform:translateY(0)}84%{opacity:.55}to{opacity:0;transform:translateY(-3px)}}@keyframes pixel-companion-blink{0%,88%,to{height:6px;top:10px}92%{height:2px;top:12px}}@keyframes pixel-companion-glance{0%,20%,43%,68%,to{transform:translateY(0)}27%,35%{transform:translateY(7px)}76%,84%{transform:translateY(-5px)}}@keyframes pixel-companion-arm-wave{0%,58%,91%,to{opacity:0;transform:translate(0)}64%,72%,84%{opacity:1;transform:translate(2px,-4px) rotate(-35deg)}68%,78%{opacity:1;transform:translate(4px,-8px) rotate(-70deg)}}@keyframes pixel-companion-leg-forward{0%,to{height:18px;transform:translate(0)}50%{height:13px;transform:translate(4px,-1px)}}@keyframes pixel-companion-leg-back{0%,to{height:13px;transform:translate(-4px,-1px)}50%{height:18px;transform:translate(0)}}@keyframes pixel-companion-jump-trail{0%,to{opacity:0;transform:translate(0) scale(1)}50%{opacity:.75;transform:translate(-5px,3px) scale(1.2)}}@keyframes pixel-companion-impact-spark{0%,to{opacity:0;transform:translate(0)}45%{opacity:1;transform:translate(var(--impact-x),var(--impact-y))}}@media (prefers-reduced-motion:reduce){.pixel-companion-stage{display:none}.pixel-companion-stage *,.pixel-companion-stage :after,.pixel-companion-stage :before{animation:none!important;transition:none!important}}.marker\:text-primary-fixed-dim ::marker{color:#c6ef87}.marker\:text-primary-fixed-dim::marker{color:#c6ef87}.placeholder\:text-on-surface-variant\/50::-moz-placeholder{color:rgba(164,179,189,.5)}.placeholder\:text-on-surface-variant\/50::placeholder{color:rgba(164,179,189,.5)}.last\:pb-0:last-child{padding-bottom:0}.hover\:bg-primary-fixed-dim\/20:hover{background-color:hsla(84,76%,73%,.2)}.hover\:text-primary-fixed:hover{--tw-text-opacity:1;color:rgb(224 246 194/var(--tw-text-opacity))}.hover\:text-primary-fixed-dim:hover{--tw-text-opacity:1;color:rgb(198 239 135/var(--tw-text-opacity))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}@media (min-width:640px){.sm\:mt-1{margin-top:.25rem}.sm\:grid-cols-\[150px_1fr\]{grid-template-columns:150px 1fr}.sm\:flex-row{flex-direction:row}.sm\:items-start{align-items:flex-start}.sm\:items-baseline{align-items:baseline}.sm\:justify-between{justify-content:space-between}.sm\:gap-5{gap:1.25rem}}@media (min-width:768px){.md\:left-24{left:6rem}.md\:mb-14{margin-bottom:3.5rem}.md\:mb-16{margin-bottom:4rem}.md\:mb-20{margin-bottom:5rem}.md\:block{display:block}.md\:hidden{display:none}.md\:p-6{padding:1.5rem}.md\:px-8{padding-left:2rem;padding-right:2rem}.md\:pb-20{padding-bottom:5rem}.md\:pb-28{padding-bottom:7rem}.md\:pb-32{padding-bottom:8rem}.md\:pl-36{padding-left:9rem}.md\:pt-16{padding-top:4rem}.md\:text-\[26px\]{font-size:26px}.md\:text-\[28px\]{font-size:28px}.md\:text-\[44px\]{font-size:44px}.md\:text-body-lg{font-size:18px;line-height:1.6;font-weight:400}.md\:leading-\[1\.1\]{line-height:1.1}}@font-face{font-family:__Hanken_Grotesk_67a390;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/a6c19694cd327cd4-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__Hanken_Grotesk_67a390;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/851c4691abdf3def-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Hanken_Grotesk_67a390;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/a8a8dd7277bab4cf-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Hanken_Grotesk_67a390;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/313510e2713fb214-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Hanken_Grotesk_Fallback_67a390;src:local("Arial");ascent-override:99.07%;descent-override:30.02%;line-gap-override:0.00%;size-adjust:100.94%}.__className_67a390{font-family:__Hanken_Grotesk_67a390,__Hanken_Grotesk_Fallback_67a390;font-style:normal}.__variable_67a390{--font-hanken-grotesk:"__Hanken_Grotesk_67a390","__Hanken_Grotesk_Fallback_67a390"}@font-face{font-family:__EB_Garamond_431c15;font-style:normal;font-weight:400 800;font-display:swap;src:url(/_next/static/media/062340a5902d57de-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__EB_Garamond_431c15;font-style:normal;font-weight:400 800;font-display:swap;src:url(/_next/static/media/d63e13930677f53f-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__EB_Garamond_431c15;font-style:normal;font-weight:400 800;font-display:swap;src:url(/_next/static/media/69e44c27a0558172-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:__EB_Garamond_431c15;font-style:normal;font-weight:400 800;font-display:swap;src:url(/_next/static/media/2913b528b2922316-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:__EB_Garamond_431c15;font-style:normal;font-weight:400 800;font-display:swap;src:url(/_next/static/media/548b5aa0a10194aa-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__EB_Garamond_431c15;font-style:normal;font-weight:400 800;font-display:swap;src:url(/_next/static/media/af2852512783d6fe-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__EB_Garamond_431c15;font-style:normal;font-weight:400 800;font-display:swap;src:url(/_next/static/media/c679f70df756412c-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__EB_Garamond_Fallback_431c15;src:local("Times New Roman");ascent-override:106.26%;descent-override:31.44%;line-gap-override:0.00%;size-adjust:94.77%}.__className_431c15{font-family:__EB_Garamond_431c15,__EB_Garamond_Fallback_431c15;font-style:normal}.__variable_431c15{--font-eb-garamond:"__EB_Garamond_431c15","__EB_Garamond_Fallback_431c15"}@font-face{font-family:__JetBrains_Mono_4dc837;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/886030b0b59bc5a7-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__JetBrains_Mono_4dc837;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/0aa834ed78bf6d07-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__JetBrains_Mono_4dc837;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/67957d42bae0796d-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:__JetBrains_Mono_4dc837;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/f911b923c6adde36-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__JetBrains_Mono_4dc837;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/939c4f875ee75fbb-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__JetBrains_Mono_4dc837;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/bb3ef058b751a6ad-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__JetBrains_Mono_Fallback_4dc837;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_4dc837{font-family:__JetBrains_Mono_4dc837,__JetBrains_Mono_Fallback_4dc837;font-style:normal}.__variable_4dc837{--font-jetbrains-mono:"__JetBrains_Mono_4dc837","__JetBrains_Mono_Fallback_4dc837"}:root{--folio-bg:#0b1218;--folio-surface:#101b23;--folio-text:#ecf0e9;--folio-muted:#aab7bf;--folio-line:#2c3b44;--folio-accent:#c6ef87}html{scroll-behavior:auto;scroll-padding-top:0}body{background:var(--folio-bg);color:var(--folio-text)}body:before{content:"";z-index:-1;background:radial-gradient(ellipse at 0 25%,#172a3138,transparent 55%)}.radial-atmosphere,body:before{position:fixed;inset:0;pointer-events:none}.radial-atmosphere{z-index:0;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-mask-image:linear-gradient(90deg,#000,transparent 240px,transparent calc(100% - 240px),#000);mask-image:linear-gradient(90deg,#000,transparent 240px,transparent calc(100% - 240px),#000)}.radial-wheel{position:absolute;width:640px;aspect-ratio:1;color:#728e9a;opacity:.42}.radial-wheel svg{width:100%;height:100%;animation:radial-orbit 160s linear infinite}.radial-wheel-left{left:-420px;top:38vh}.radial-wheel-right{right:-380px;top:-190px}.radial-wheel-right svg{animation-duration:200s;animation-direction:reverse}.radial-lensing{stroke-opacity:.65}.radial-highlights{stroke:var(--folio-accent);fill:var(--folio-accent)}.radial-highlights circle[stroke-dasharray]{fill:none}@keyframes radial-orbit{to{transform:rotate(1turn)}}::-moz-selection{background:var(--folio-accent);color:var(--folio-bg)}::selection{background:var(--folio-accent);color:var(--folio-bg)}a,button{-webkit-tap-highlight-color:transparent}[tabindex="0"]:focus-visible,a:focus-visible,button:focus-visible{outline:2px solid var(--folio-accent);outline-offset:5px;border-radius:3px}.skip-link{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link:focus{position:fixed;width:auto;height:auto;clip-path:none;left:16px;top:12px;background:var(--folio-accent);color:var(--folio-bg);padding:10px 20px;z-index:500}.portfolio-shell{position:relative;z-index:1;width:100%;max-width:1360px;margin:0 auto;display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:72px;padding:56px 48px;flex:1}.identity-column{position:sticky;top:32px;align-self:start}.eyebrow,.project-meta,.section-eyebrow{font-family:var(--font-jetbrains-mono),monospace;font-size:12px;line-height:1.6;letter-spacing:.04em}.eyebrow{display:flex;align-items:center;gap:9px;color:var(--folio-accent)}.status-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:currentColor;box-shadow:0 0 12px #c6ef8740}.identity-copy h1{font-family:var(--font-hanken-grotesk),sans-serif;font-size:clamp(64px,6.1vw,88px);font-weight:600;line-height:.97;letter-spacing:-.055em;margin:22px 0}.name-period{color:var(--folio-accent)}.identity-description{font-size:18px;line-height:1.55;color:var(--folio-text);letter-spacing:-.01em}.identity-education{color:var(--folio-muted);font-size:14px;line-height:1.6;margin-top:14px}.identity-education span{display:block}.identity-bottom{margin-top:18px}.social-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px}.social-row a{display:inline-flex;align-items:center;gap:5px;min-height:44px;font-size:14px;font-weight:500;color:var(--folio-text)}.social-row .resume-action{color:var(--folio-bg);background:var(--folio-accent);padding:8px 12px;border-radius:5px}.social-row .resume-action:hover{background:#daf8b4;color:var(--folio-bg)}.arrow-icon{width:17px;height:17px;flex:0 0 auto}.social-row .arrow-icon{width:13px;height:13px}.project-links a:hover,.publication-links a:hover,.social-row a:hover,.text-link:hover{color:var(--folio-accent)}.section-dial{width:100%;max-width:450px;aspect-ratio:450/330;position:relative;margin:18px 0 0 -10px}.dial-art{width:100%;height:100%;color:var(--folio-muted);overflow:visible;-webkit-user-select:none;-moz-user-select:none;user-select:none}.dial-drag-target{cursor:grab;touch-action:none}.section-dial.is-dragging,.section-dial.is-dragging .dial-drag-target,.section-dial.is-dragging .dial-tab{cursor:grabbing;-webkit-user-select:none;-moz-user-select:none;user-select:none}.dial-hint{display:none}.dial-instructions{position:absolute;bottom:0;left:12px;color:var(--folio-muted);font-size:12px;pointer-events:none}.is-dragging .dial-instructions{color:var(--folio-accent)}.dial-index-label{fill:var(--folio-muted);font-size:10px;letter-spacing:1px}.dial-index-label,.dial-index-number{font-family:var(--font-jetbrains-mono)}.dial-index-number{fill:var(--folio-text);font-size:23px}.dial-index-total{fill:var(--folio-muted);font-size:13px}.dial-tab{position:absolute;left:var(--tab-x);top:var(--tab-y);transform:translateY(-50%);display:inline-flex;align-items:center;gap:10px;min-height:44px;white-space:nowrap;color:var(--folio-muted);font-size:16px;line-height:1.35;padding:10px 0;transition:color .15s}.dial-tab-number{font-family:var(--font-jetbrains-mono);font-size:12px}.dial-tab.is-active,.dial-tab:hover{color:var(--folio-accent)}.dial-tab.is-active{font-weight:600}.dial-tab-arrow{opacity:0}.dial-tab.is-active .dial-tab-arrow,.dial-tab:hover .dial-tab-arrow{opacity:1}.section-dial.is-dragging .dial-tab.is-active{color:var(--folio-muted);font-weight:400}.section-dial.is-dragging .dial-tab.is-preview{color:var(--folio-accent);font-weight:600}.section-dial.is-dragging .dial-tab:not(.is-preview) .dial-tab-arrow{opacity:0}.section-dial.is-dragging .dial-tab.is-preview .dial-tab-arrow{opacity:1}.content-column{min-width:0}.portfolio-panel:focus-visible{outline-offset:12px}.section-eyebrow{color:var(--folio-accent);text-transform:uppercase;margin-bottom:18px}.about-heading,.section-heading{font-size:clamp(36px,3.7vw,52px);font-weight:500;line-height:1.1;letter-spacing:-.035em}.about-heading em,.section-heading em{font-family:var(--font-eb-garamond),Georgia,serif;font-weight:400;font-size:1.08em;color:var(--folio-accent)}.about-copy{margin-top:24px;font-size:17px;line-height:1.75;color:var(--folio-muted)}.about-copy p+p{margin-top:15px}.about-copy strong{color:var(--folio-text);font-weight:500}.selected-work{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:30px}.proof-card{padding:22px;background:linear-gradient(135deg,#132229,#101a20);border:1px solid var(--folio-line);border-radius:10px;min-width:0}.proof-heading{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:17px}.status-label{display:inline-flex;align-items:center;padding:4px 8px;border:1px solid #41563b;border-radius:4px;font-size:12px;line-height:1.4;color:var(--folio-accent);background:#c6ef8708}.proof-card h3{font-size:24px;line-height:1.2;letter-spacing:-.025em;font-weight:500}.proof-card p{font-size:15px;line-height:1.7;color:var(--folio-muted);margin-top:13px}.proof-card strong{color:var(--folio-text);font-weight:500}.proof-card .proof-context{font-size:14px;color:#b9cbb3}.text-link{display:inline-flex;align-items:center;gap:10px;min-height:44px;font-size:15px;font-weight:500;color:var(--folio-text)}.proof-card .text-link{margin-top:16px}.text-link .arrow-icon{color:var(--folio-accent)}.about-note{font-size:15px;line-height:1.75;color:var(--folio-muted);margin-top:24px}.section-intro{font-size:17px;color:var(--folio-muted);line-height:1.7;margin:22px 0 30px}.experience-entry{display:grid;grid-template-columns:115px 1fr;gap:22px;padding:28px 0;border-top:1px solid var(--folio-line)}.entry-period{font-family:var(--font-jetbrains-mono);font-size:12px;line-height:1.8;color:var(--folio-muted);padding-top:3px}.experience-entry h3{font-size:22px;line-height:1.3;letter-spacing:-.02em;font-weight:600}.entry-org{font-size:16px;line-height:1.5;color:var(--folio-accent);margin-top:6px}.entry-description,.entry-highlights{font-size:15px;line-height:1.75;color:var(--folio-muted);margin-top:14px}.entry-highlights{list-style:disc;padding-left:18px}.entry-highlights li+li{margin-top:8px}.entry-highlights li::marker{color:var(--folio-accent)}.tag-row{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}.tag-row>span{color:#bfd0b5;background:#c6ef8708;border:1px solid #c6ef8725;border-radius:4px;padding:4px 8px;font-size:12px;line-height:1.5}.project-list{display:flex;flex-direction:column;gap:34px}.project-entry{border-top:1px solid var(--folio-line);padding-top:27px}.project-meta{color:var(--folio-muted);margin-bottom:10px}.project-entry h3{font-size:28px;line-height:1.2;font-weight:600;letter-spacing:-.025em}.project-entry h3 a{display:inline-flex;align-items:center;gap:14px}.project-entry h3 a:hover{color:var(--folio-accent)}.project-entry-body>p{font-size:16px;color:var(--folio-muted);line-height:1.75;margin-top:15px}.project-entry-body>.project-subtitle{font-size:18px;color:var(--folio-text);margin-top:8px}.project-entry-body>.project-detail{font-size:15px;color:#c2d0c9;border-left:2px solid #7ca25e;padding-left:14px}.case-actions,.project-links,.publication-links{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:14px}.case-actions a,.project-links a,.publication-links a{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:15px;font-weight:500;color:var(--folio-text)}.project-links .arrow-icon,.publication-links .arrow-icon{color:var(--folio-accent)}.project-screenshot{margin:22px 0}.project-screenshot img{display:block;width:100%;height:auto;border:1px solid var(--folio-line);border-radius:8px}.case-figure figcaption,.project-screenshot figcaption{margin-top:10px;font-size:13px;line-height:1.6;color:var(--folio-muted)}.publication-feature{border:1px solid #3c503d;background:linear-gradient(130deg,#142329,#101c20);border-radius:10px;margin-top:26px}.publication-copy{padding:28px}.publication-copy .eyebrow{margin-top:20px}.publication-copy h3{font-size:28px;line-height:1.3;font-weight:500;letter-spacing:-.02em;margin-top:14px}.publication-authors{font-size:15px;line-height:1.8;color:var(--folio-muted);margin-top:18px}.publication-authors strong{color:var(--folio-text);font-weight:600}.publication-venue{font-size:15px;line-height:1.8;color:#c3d0d0;margin-top:18px}.publication-venue span{color:var(--folio-muted)}.publication-links{margin-top:20px}.research-progress-heading{margin-top:36px;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center;padding-bottom:16px}.research-progress-heading h3{font-size:22px;font-weight:500}.research-progress-heading>span{color:var(--folio-muted);font-family:var(--font-jetbrains-mono);font-size:12px}.research-progress-list{margin-bottom:24px}.research-progress-list article{display:flex;gap:16px;border-top:1px solid var(--folio-line);padding:23px 0}.research-progress-marker{color:var(--folio-accent)}.research-progress-list h4{font-size:18px;line-height:1.4;font-weight:500}.research-progress-list p{margin-top:7px;font-size:15px;color:var(--folio-muted);line-height:1.6}.panel-bottom{margin-top:36px;padding-top:20px;border-top:1px solid var(--folio-line);display:flex;align-items:center;justify-content:space-between;gap:20px}.panel-bottom>span{font-family:var(--font-jetbrains-mono);font-size:12px;color:var(--folio-muted)}.panel-bottom button{display:flex;align-items:center;gap:12px;min-height:44px;font-size:15px;color:var(--folio-accent)}.site-footer{position:relative;z-index:1;width:calc(100% - 96px);max-width:1264px;margin:0 auto;padding:22px 0;border-top:1px solid var(--folio-line);display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;color:var(--folio-muted);font-size:12px;letter-spacing:.03em}.glass-card{background:var(--folio-surface);border-color:var(--folio-line)}.glow-hover:hover{border-color:#526a46;filter:none}.case-study{width:100%;max-width:960px;margin:0 auto;padding:48px 32px 72px;flex:1}.case-study h1{font-size:clamp(36px,5vw,54px);font-weight:600;line-height:1.1;letter-spacing:-.035em;margin-top:14px}.case-study .case-tagline{font-size:21px;color:var(--folio-muted);line-height:1.6;margin-top:18px;max-width:760px}.case-kicker{margin-top:28px;font-family:var(--font-jetbrains-mono);font-size:13px;color:var(--folio-accent)}.case-actions .primary-action{padding:8px 16px;border:1px solid #536d46;border-radius:5px;background:#c6ef8708}.case-actions a:hover{color:var(--folio-accent)}.case-overview{font-size:18px;line-height:1.8;margin-top:30px;max-width:780px}.case-figure{margin:30px 0}.case-figure img{display:block;width:100%;height:auto;border-radius:10px}.case-facts,.case-figure img{border:1px solid var(--folio-line)}.case-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:28px 0;padding:24px;background:var(--folio-surface);border-radius:8px}.case-facts dt{font-size:13px;line-height:1.5;color:var(--folio-muted)}.case-facts dd{margin-top:6px;font-size:21px;font-weight:500;color:var(--folio-accent)}.case-section{margin-top:36px;max-width:800px}.case-section h2{font-size:27px;font-weight:500;line-height:1.3;margin-bottom:14px}.case-section p{font-size:17px;color:var(--folio-muted);line-height:1.8}.case-pipeline{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:0}.case-pipeline li{border-top:2px solid #83a866;padding:14px 12px 10px 0}.case-pipeline strong{display:block;font-size:16px;margin-bottom:8px}.case-pipeline span{font-size:14px;color:var(--folio-muted);line-height:1.6}.case-section pre{max-width:100%;overflow-x:auto;margin:20px 0;padding:20px;background:var(--folio-surface);border:1px solid var(--folio-line);border-radius:8px;font-size:13px;line-height:1.8}.case-section .text-link{margin-top:12px}@media (max-width:1100px){.portfolio-shell{padding:40px 32px;gap:40px;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}.identity-copy h1{font-size:64px}.identity-description{font-size:17px}.dial-tab{font-size:15px;gap:7px}.dial-tab-arrow{display:none}.experience-entry,.selected-work{grid-template-columns:1fr}.experience-entry{gap:9px}.site-footer{width:calc(100% - 64px)}}@media (max-width:760px){.radial-atmosphere{-webkit-mask-image:linear-gradient(270deg,#000,transparent 130px);mask-image:linear-gradient(270deg,#000,transparent 130px)}.radial-wheel-left{display:none}.radial-wheel-right{width:400px;right:-285px;top:-70px;opacity:.3}.portfolio-shell{display:block;padding:24px 20px 40px}.identity-column{display:contents}.identity-copy>.eyebrow{display:none}.identity-copy h1{font-size:48px;line-height:1.05;margin:0 0 14px}.identity-copy h1 br{display:none}.identity-description{font-size:16px;line-height:1.5}.identity-education{font-size:13px;line-height:1.6;margin-top:10px}.identity-bottom{margin-top:12px}.social-row{gap:6px 13px}.social-row a{font-size:14px;min-height:44px}.social-row .resume-action{padding:8px 10px}.social-row .arrow-icon{display:none}.section-dial{position:sticky;top:0;z-index:30;max-width:none;width:calc(100% + 40px);aspect-ratio:auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin:18px -20px 24px;padding:6px 20px;background:var(--folio-bg);border-top:1px solid var(--folio-line);border-bottom:1px solid var(--folio-line)}.dial-art,.dial-instructions{display:none}.dial-tab{position:static;transform:none;justify-content:center;white-space:normal;padding:8px 0;font-size:13px;min-height:44px;border-bottom:2px solid transparent}.dial-tab-arrow,.dial-tab-number{display:none}.dial-tab.is-active{border-bottom-color:var(--folio-accent)}.section-eyebrow{margin-bottom:12px}.about-heading,.section-heading{font-size:38px}.about-copy{font-size:16px;line-height:1.7;margin-top:20px}.selected-work{margin-top:24px;gap:14px}.proof-card{padding:20px}.proof-heading{margin-bottom:12px}.proof-card h3{font-size:23px}.proof-card .text-link{margin-top:12px}.section-intro{font-size:16px;margin:18px 0 26px}.experience-entry h3{font-size:21px}.entry-org{font-size:15px}.project-entry h3{font-size:26px}.project-entry-body>.project-subtitle{font-size:17px}.publication-copy{padding:22px}.publication-copy h3{font-size:26px}.project-links,.publication-links{gap:4px 18px}.site-footer{width:calc(100% - 40px);font-size:12px}.case-study{padding:28px 20px 48px}.case-study .case-tagline{font-size:19px}.case-overview{font-size:17px}.case-facts{grid-template-columns:1fr;gap:18px;padding:20px}.case-facts>div{display:flex;gap:14px;align-items:baseline;justify-content:space-between}.case-facts dd{margin:0;text-align:right}.case-pipeline{grid-template-columns:1fr 1fr}.case-section h2{font-size:25px}.case-section p{font-size:16px}}@media (max-width:360px){.identity-copy h1{font-size:42px}.social-row{gap:4px 11px}.social-row a{font-size:13px}.section-dial{grid-template-columns:1fr 1fr}.about-heading,.section-heading{font-size:34px}.publication-copy{padding:18px}.publication-copy h3{font-size:24px}}@media (prefers-reduced-motion:reduce){.radial-wheel svg{animation:none}.dial-tab{transition:none}}:root{--motion-ease:cubic-bezier(0.22,1,0.36,1)}.signature-intro{position:fixed;inset:0;z-index:150;display:grid;place-items:center;pointer-events:none;background:var(--folio-bg);animation:signature-depart 3s cubic-bezier(.4,0,.2,1) both}.signature-emblem{width:min(720px,92vw,86svh);text-align:center}body:has(:focus-visible) .signature-intro{display:none}.maze-mark{display:block;width:100%;height:auto;color:#7c9695}.maze-monogram{fill:var(--folio-accent);font-family:Arial,Helvetica,sans-serif;font-size:50px;font-weight:400;letter-spacing:.02em}.maze-base{color:#8ba2a7;opacity:.3}.maze-mark:not(.maze-mark-pulse) .maze-base{opacity:.7}.maze-illumination{color:#d8f5ae}.maze-mark-pulse .maze-ripple-mask{transform-origin:320px 320px;animation:maze-ripple 1.9s cubic-bezier(.2,.45,.4,1) .12s both}.maze-mark-pulse .maze-monogram{animation:signature-ink .95s ease-out .12s both}@keyframes maze-ripple{0%{transform:scale(.04);opacity:0}12%,85%{opacity:1}to{transform:scale(1.1);opacity:0}}.portfolio-shell{--opening-delay:0ms}.signature-intro~.portfolio-shell{--opening-delay:1700ms}.identity-bottom,.identity-copy>*,.section-dial{animation:identity-arrive 1.15s cubic-bezier(.22,.61,.36,1) both;animation-delay:calc(var(--opening-delay) + var(--identity-step, 0ms))}.identity-copy h1{--identity-step:100ms}.identity-description{--identity-step:220ms}.identity-education{--identity-step:340ms}.identity-bottom{--identity-step:420ms}.section-dial{--identity-step:550ms;animation-name:content-arrive}.content-column{animation:content-arrive 1.3s cubic-bezier(.22,.61,.36,1) both;animation-delay:calc(var(--opening-delay) + .18s)}body:has(:focus-visible) :is(.identity-copy>*,.identity-bottom,.section-dial,.content-column){animation:none}@keyframes identity-arrive{0%{opacity:0;translate:0 18px}to{opacity:1;translate:0 0}}@keyframes content-arrive{0%{opacity:0}to{opacity:1}}@keyframes signature-ink{0%{opacity:0}to{opacity:1}}@keyframes signature-depart{0%,55%{opacity:1}to{opacity:0;visibility:hidden}}.proof-card,.publication-feature{transition:transform .45s var(--motion-ease),border-color .35s ease,box-shadow .45s ease}.experience-entry,.project-entry,.research-progress-list article{transition:border-color .35s ease}.case-actions a,.panel-bottom button,.project-links a,.publication-links a,.social-row a,.text-link{transition:color .18s ease,background-color .18s ease,border-color .18s ease,scale .18s var(--motion-ease)}.arrow-icon{transition:transform .24s var(--motion-ease)}.proof-card:focus-within,.publication-feature:focus-within{border-color:#75905e}.case-actions a:active,.panel-bottom button:active,.resume-action:active,.text-link:active{scale:.98}@media (hover:hover) and (pointer:fine){.proof-card:hover,.publication-feature:hover{transform:translateY(-3px);border-color:#59704c;box-shadow:0 14px 34px #03090d38}.experience-entry:hover,.project-entry:hover,.research-progress-list article:hover{border-color:#53694d}a:hover>.arrow-icon,button:hover>.arrow-icon{transform:translateX(3px)}.case-figure a:hover img,.project-screenshot a:hover img{transform:scale(1.025)}}.image-frame{position:relative;display:block;overflow:hidden;isolation:isolate;border-radius:8px;background:var(--folio-surface)}.image-frame img{position:relative;z-index:1;transition:transform .55s var(--motion-ease)}.image-placeholder{position:absolute;inset:0;background:#17252c;overflow:hidden}.image-placeholder:after,.loading-skeleton:after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 15%,#c6ef8710 50%,transparent 85%);animation:loading-shimmer 1.8s ease-in-out infinite}.image-frame[data-loaded=true] .image-placeholder{visibility:hidden}.image-frame[data-loaded=true] .image-placeholder:after{animation:none}.route-loading{flex:1;width:100%;max-width:960px;margin:0 auto;padding:56px 32px 80px}.loading-label{display:flex;align-items:center;gap:16px;color:var(--folio-muted);font-size:15px;margin-bottom:40px}.loading-label .maze-mark{width:52px}.loading-skeleton{position:relative;overflow:hidden;background:var(--folio-surface);border-radius:5px}.loading-heading{width:70%;height:48px;margin-bottom:28px}.loading-line{width:100%;height:16px;margin-bottom:14px}.loading-line-short{width:72%}.loading-card{height:260px;margin-top:36px;border:1px solid var(--folio-line)}@keyframes loading-shimmer{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}::view-transition-old(root){animation:page-leave .38s ease-in-out both}::view-transition-new(root){animation:page-arrive .75s cubic-bezier(.22,.61,.36,1) both}@keyframes page-leave{to{opacity:0}}@keyframes page-arrive{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.content-column,.identity-bottom,.identity-copy>*,.maze-mark-pulse *,.section-dial{animation:none}.signature-intro{display:none}.image-placeholder:after,.loading-skeleton:after{animation:none}.arrow-icon,.case-actions a,.experience-entry,.image-frame img,.panel-bottom button,.project-entry,.project-links a,.proof-card,.publication-feature,.publication-links a,.research-progress-list article,.social-row a,.text-link{transition:none}.case-figure a:hover img,.project-screenshot a:hover img,.proof-card:hover,.publication-feature:hover,a:hover>.arrow-icon,button:hover>.arrow-icon{transform:none}.case-actions a:active,.panel-bottom button:active,.resume-action:active,.text-link:active{scale:1}::view-transition-new(root),::view-transition-old(root){animation:none}}@media print{.radial-atmosphere,.signature-intro{display:none}}