@font-face{font-family:DM Sans;font-style:italic;font-weight:100 1000;font-display:swap;src:url(../media/2d83c8cc73e87753-s.15oml0qinnvd7.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:italic;font-weight:100 1000;font-display:swap;src:url(../media/9afbc43d791fd113-s.p.21e8wbgw2nbyt.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(../media/027df52a710ea511-s.3gdmg5dv0jxuw.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(../media/5e3a2858f2997077-s.p.43rtu0ww1zafj.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans Fallback;src:local(Arial);ascent-override:94.9%;descent-override:29.66%;line-gap-override:0.0%;size-adjust:104.53%}.dm_sans_77b8a4c3-module__BVUxHG__className{font-family:DM Sans,DM Sans Fallback}.dm_sans_77b8a4c3-module__BVUxHG__variable{--nf-dm-sans:"DM Sans", "DM Sans Fallback"}
@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/32687112bd2dd8db-s.0v2ipp7s07_p9.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/28868e710e86be81-s.44ks8kcggj012.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/0c89a48fa5027cee-s.p.1ii7211jqpzi_.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk Fallback;src:local(Arial);ascent-override:89.71%;descent-override:26.62%;line-gap-override:0.0%;size-adjust:109.69%}.space_grotesk_7d637a04-module__o8WCxa__className{font-family:Space Grotesk,Space Grotesk Fallback;font-style:normal}.space_grotesk_7d637a04-module__o8WCxa__variable{--nf-space-grotesk:"Space Grotesk", "Space Grotesk Fallback"}
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--container-4xl:56rem;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-body);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}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;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.top-0{top:0}.right-0{right:0}.left-0{left:0}.z-\[9999\]{z-index:9999}.z-\[10000\]{z-index:10000}.z-\[99998\]{z-index:99998}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-full{height:100%}.w-full{width:100%}.w-max{width:max-content}.max-w-4xl{max-width:var(--container-4xl)}.-translate-x-2{--tw-translate-x:calc(var(--spacing) * -2);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-2{--tw-translate-x:calc(var(--spacing) * 2);translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.overflow-hidden{overflow:hidden}.border{border-style:var(--tw-border-style);border-width:1px}.pt-1{padding-top:var(--spacing)}.pl-4{padding-left:calc(var(--spacing) * 4)}.text-\[var\(--accent\)\]{color:var(--accent)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.overline{text-decoration-line:overline}.opacity-0{opacity:0}.opacity-100{opacity:1}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-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,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}@media (min-width:40rem){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:48rem){.md\:gap-5{gap:calc(var(--spacing) * 5)}.md\:pl-12{padding-left:calc(var(--spacing) * 12)}}@media (min-width:64rem){.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:gap-2{gap:calc(var(--spacing) * 2)}.lg\:gap-5{gap:calc(var(--spacing) * 5)}}@media (min-width:96rem){.\32 xl\:gap-2\.5{gap:calc(var(--spacing) * 2.5)}}}:root{--font-space-grotesk:var(--nf-space-grotesk), "Space Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-dm-sans:var(--nf-dm-sans), "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--bg:#f8f6f1;--black:#242424;--white:#fff;--accent:#fb4e04;--accent-purple:#9747ff;--accent-hover:#fb4e041f;--focus-ring:#fb4e04;--accent-ink:#c93a00;--accent-purple-deep:#7b2ff7;--black-deep:#0a0a0a;--ink-rgb:36 36 36;--on-ink-rgb:244 244 239;--surface:var(--white);--contact-bg:#0b0b0d;--paper-grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.025'/%3E%3C/svg%3E");--font-display:"Space Grotesk", var(--font-space-grotesk), sans-serif;--font-body:"DM Sans", var(--font-dm-sans), sans-serif;--container-hero:1350px;--stage:1128px;--container-prose:795px;--container-pad:clamp(1.25rem, 5vw, 4rem);--panel-top:clamp(7rem, 14vh, 10rem);--section-header-gap:.85rem;--section-header-margin:2.75rem;--lead-h:3.75rem;--radius-pill-full:100px;--ease-bubble:cubic-bezier(.645, .045, .355, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--dur-fast:.3s;--dur-med:.6s;--dur-slow:.8s}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}html{scroll-behavior:smooth}@media screen and (min-width:1800px){html{font-size:17px}:root{--stage:1300px;--container-hero:1680px}}@media screen and (min-width:2400px){html{font-size:20px}:root{--stage:1560px;--container-hero:2000px}}body{background-color:var(--bg);background-image:var(--paper-grain);color:var(--black);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-repeat:repeat;line-height:1.6;overflow-x:hidden}html,body{-ms-overflow-style:none;scrollbar-width:none}html::-webkit-scrollbar{width:0;height:0;display:none}body::-webkit-scrollbar{width:0;height:0;display:none}.no-scrollbar{-ms-overflow-style:none!important;scrollbar-width:none!important}.no-scrollbar::-webkit-scrollbar{width:0!important;height:0!important;display:none!important}img,picture,video,canvas,svg{max-width:100%;display:block}a{color:inherit;transition:color var(--dur-fast) ease-in;text-decoration:none}ul,ol,li{margin:0;padding:0;list-style:none}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px;border-radius:2px}.font-display{font-family:var(--font-display)}.font-body{font-family:var(--font-body)}.hero-title{font-family:var(--font-display);letter-spacing:-.03em;text-transform:uppercase;color:var(--black);cursor:pointer;transition:color var(--dur-fast) var(--ease-out);flex-direction:column;align-items:flex-start;gap:.05em;font-size:clamp(1.8rem,3.6vw,3.2rem);font-weight:800;line-height:1.05;display:flex}.hero-title:hover,.hero-title:hover .hero-title__line{color:var(--accent)}.hero-title__line{white-space:nowrap;transition:opacity .45s cubic-bezier(.16, 1, .3, 1), transform .45s cubic-bezier(.16, 1, .3, 1), filter .45s cubic-bezier(.16, 1, .3, 1), color var(--dur-fast) var(--ease-out);will-change:transform, opacity, filter;display:block}.hero-title--visible .hero-title__line{opacity:1;filter:blur();transform:translateY(0)scale(1)}.hero-title--exiting .hero-title__line{opacity:0;filter:blur(4px);transition:opacity .35s cubic-bezier(.4,0,.2,1),transform .35s cubic-bezier(.4,0,.2,1),filter .35s cubic-bezier(.4,0,.2,1);transform:translateY(-14px)scale(.98)}.hero-title--exiting .hero-title__line:nth-child(2){transition-delay:40ms}.hero-title--entering .hero-title__line{opacity:0;filter:blur(3px);transform:translateY(16px)scale(1.01);transition:none!important}.section-headline{font-family:var(--font-display);text-transform:uppercase;letter-spacing:-.02em;font-size:clamp(2rem,5vw,4.5rem);font-weight:700;line-height:1}.section-header{align-items:flex-start;gap:var(--section-header-gap);margin-bottom:var(--section-header-margin);flex-direction:column;width:100%;display:flex}.section-header__row{justify-content:space-between;align-items:center;gap:1.5rem;width:100%;display:flex}.projects-track{padding-top:var(--lead-h)}@media screen and (max-height:760px){.projects-track{padding-top:var(--lead-h)}}@media screen and (max-width:762px){.projects-track,.skills-grid-container{padding-top:.5rem}.section-header{margin-bottom:1.75rem}.section-header__row{align-items:flex-start}}#about .section-header{margin-bottom:calc(var(--section-header-margin) + var(--lead-h))}.about-body{max-width:var(--container-prose);font-family:var(--font-body);letter-spacing:-.01em;font-size:clamp(1.02rem,1.3vw,1.1875rem);font-weight:400;line-height:1.7}.overline{font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;opacity:.68;font-size:.7rem;font-weight:600;text-decoration:none}.btn{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;border-radius:var(--radius-pill-full);cursor:pointer;white-space:nowrap;transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);justify-content:center;align-items:center;gap:.5rem;font-size:.8rem;font-weight:700;text-decoration:none;display:inline-flex}.btn--primary{background-color:var(--black);color:var(--white);border:1.5px solid var(--black);padding:.78rem 1.5rem;box-shadow:0 4px 14px #0000001f}.btn--primary:hover{background-color:var(--accent);border-color:var(--accent);color:var(--black);transform:translateY(-2px);box-shadow:0 8px 22px #fb4e044d}.btn--secondary{border:1.5px solid rgb(var(--ink-rgb) / .2);color:var(--black);background-color:#0000;padding:.78rem 1.4rem}.btn--secondary:hover{background-color:var(--accent-hover);border-color:var(--black);transform:translateY(-2px)}.icon-btn{border:1.5px solid var(--black);background-color:var(--black);width:38px;height:38px;color:var(--bg);cursor:pointer;transition:background-color var(--dur-fast), color var(--dur-fast), transform var(--dur-fast);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover:not(:disabled){background-color:var(--accent);border-color:var(--accent);color:var(--black);transform:scale(1.05)}.icon-btn:disabled{opacity:.35;cursor:not-allowed}.social-link{font-family:var(--font-body);border-radius:var(--radius-pill-full);transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);align-items:center;gap:.65rem;font-size:.875rem;font-weight:500;text-decoration:none;display:inline-flex}.social-link__icon{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.social-link--light{background-color:var(--surface);width:140px;height:42px;color:var(--black);border:1px solid #0000001f;justify-content:center;padding:0 1rem;box-shadow:0 2px 8px #0000000a}.social-link--light:hover{color:var(--white);border-color:#0000;transform:translateY(-2px)scale(1.04);box-shadow:0 6px 20px #0000001f}.social-link--light.social-link--github:hover{background-color:#181717}.social-link--light.social-link--linkedin:hover{background-color:#0a66c2}.social-link--light.social-link--leetcode:hover{color:#111;background-color:#ffa116}.social-link--light.social-link--twitter:hover,.social-link--dark.social-link--twitter:hover{color:var(--white);background-color:#1da1f2}.social-link--light.social-link--discord:hover,.social-link--dark.social-link--discord:hover{color:var(--white);background-color:#5865f2}.social-link--light.social-link--email:hover,.social-link--dark.social-link--email:hover{background-color:var(--accent);color:var(--black)}.social-link--dark{border:1.5px solid rgb(var(--on-ink-rgb) / .18);height:44px;color:rgb(var(--on-ink-rgb) / .85);background-color:#ffffff0a;padding:0 1.1rem 0 .9rem}.social-link--dark:hover{color:var(--white);border-color:#0000;transform:translateY(-3px)}.social-link--dark.social-link--github:hover{background-color:#24292e}.social-link--dark.social-link--linkedin:hover{background-color:#0a66c2}.social-link--dark.social-link--leetcode:hover{color:#111;background-color:#ffa116}.social-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin:0;padding:0;list-style:none;display:grid}@media screen and (max-width:380px){.social-grid{grid-template-columns:minmax(0,1fr)}}.contact-surface{background-color:var(--contact-bg);color:rgb(var(--on-ink-rgb));overflow:hidden}.contact-surface :focus-visible{outline-color:var(--accent);outline-offset:2px}.ct-map{pointer-events:none;z-index:0;opacity:.42;width:100%;height:100%;position:absolute;inset:0;-webkit-mask-image:radial-gradient(90% 85% at 50% 52%,#000 45%,#0000 100%);mask-image:radial-gradient(90% 85% at 50% 52%,#000 45%,#0000 100%)}.ct-stage{z-index:1;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:end;gap:clamp(2rem,5vw,4.5rem);display:grid;position:relative}.ct-left{flex-direction:column;min-width:0;display:flex}.ct-left .section-header{margin-bottom:1.1rem}.ct-status{border:1.5px solid rgb(var(--on-ink-rgb) / .22);border-radius:var(--radius-pill-full);background:rgb(var(--on-ink-rgb) / .05);font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;color:rgb(var(--on-ink-rgb) / .9);align-self:flex-start;align-items:center;gap:.6rem;margin-bottom:clamp(1rem,2.4vh,1.6rem);padding:.4rem .95rem;font-size:.7rem;font-weight:600;display:inline-flex}.ct-status__dot{background:var(--accent);border-radius:50%;width:7px;height:7px;animation:2.2s ease-out infinite ct-pulse;box-shadow:0 0 #fb4e048c}@keyframes ct-pulse{70%{box-shadow:0 0 0 8px #fb4e0400}to{box-shadow:0 0 #fb4e0400}}.ct-channels{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.ct-channel{min-width:0;position:relative}.ct-channel__link{border:1.5px solid rgb(var(--on-ink-rgb) / .16);height:100%;transition:background-color .2s, border-color .2s, color .2s, transform .25s var(--ease-out);background:#242424c7;border-radius:14px;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"icon.arrow""label label label""handle handle handle";align-items:center;row-gap:.15rem;padding:clamp(.85rem,2vh,1.2rem);display:grid}.ct-channel__link:hover{background:var(--accent);border-color:var(--accent);color:var(--black);transform:translateY(-4px)}.ct-channel__icon{border:1.5px solid rgb(var(--on-ink-rgb) / .25);width:2.1rem;height:2.1rem;color:var(--accent);border-radius:50%;grid-area:icon;justify-content:center;align-items:center;margin-bottom:.7rem;transition:color .2s,border-color .2s;display:inline-flex}.ct-channel__link:hover .ct-channel__icon{color:var(--black);border-color:#24242466}.ct-channel__arrow{font-family:var(--font-display);color:rgb(var(--on-ink-rgb) / .45);transition:transform .25s var(--ease-out), color .2s;grid-area:arrow;align-self:start;font-size:1rem}.ct-channel__link:hover .ct-channel__arrow{color:var(--black);transform:translate(3px,-3px)}.ct-channel__label{font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;grid-area:label;font-size:.74rem;font-weight:700}.ct-channel__handle{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--font-body);color:rgb(var(--on-ink-rgb) / .65);grid-area:handle;font-size:.88rem;transition:color .2s;overflow:hidden}.ct-channel__link:hover .ct-channel__handle{color:#242424d9}.ct-channel__copy{border:1.5px solid rgb(var(--on-ink-rgb) / .25);border-radius:var(--radius-pill-full);color:rgb(var(--on-ink-rgb) / .85);font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:0 0;padding:.18rem .6rem;font-size:.6rem;font-weight:700;transition:background .2s,color .2s,border-color .2s;position:absolute;top:clamp(.85rem,2vh,1.2rem);right:2.6rem}.ct-channel__copy:hover,.ct-channel__copy[data-copied=true]{background:var(--bg);border-color:var(--bg);color:var(--black)}.ct-right{min-width:0}.ct-card{border:1.5px solid rgb(var(--on-ink-rgb) / .18);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#242424db;border-radius:14px;padding:clamp(1.25rem,2.6vh,1.9rem);transition:border-color .2s}.ct-card:hover,.ct-card:focus-within{border-color:rgb(var(--on-ink-rgb) / .4)}.ct-card__head{color:var(--accent);align-items:center;gap:1rem;margin-bottom:clamp(.9rem,2vh,1.3rem);display:flex}.ct-card__head .overline{opacity:1}.ct-card__rule{background:rgb(var(--on-ink-rgb) / .16);flex:1;height:1px}.ct-form{flex-direction:column;gap:clamp(.75rem,1.7vh,1.05rem);display:flex}.ct-field{flex-direction:column;gap:.4rem;display:flex}.ct-field__label{font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:rgb(var(--on-ink-rgb) / .7);align-items:center;gap:.4rem;font-size:.66rem;font-weight:700;display:flex}.ct-field__count{letter-spacing:.04em;color:rgb(var(--on-ink-rgb) / .45);margin-left:auto;font-weight:500}.ct-field__control{border:1.5px solid rgb(var(--on-ink-rgb) / .18);background:rgb(var(--on-ink-rgb) / .04);width:100%;font-family:var(--font-body);color:rgb(var(--on-ink-rgb));border-radius:10px;outline:none;padding:.7rem .95rem;font-size:.98rem;transition:border-color .2s,background-color .2s,box-shadow .2s}.ct-field__control::placeholder{color:rgb(var(--on-ink-rgb) / .4)}.ct-field__control:hover{border-color:rgb(var(--on-ink-rgb) / .34)}.ct-field__control:focus{border-color:var(--accent);background:rgb(var(--on-ink-rgb) / .07);box-shadow:0 0 0 3px #fb4e0438}.ct-field__control--area{resize:none;min-height:5.5rem;line-height:1.5}.ct-field__control:disabled{opacity:.6}.ct-btn{border:1.5px solid var(--accent);border-radius:var(--radius-pill-full);background:var(--accent);color:var(--black);font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:background .2s, border-color .2s, color .2s, transform .2s var(--ease-out);justify-content:center;align-items:center;gap:.5rem;padding:.85rem 1.6rem;font-size:.78rem;font-weight:700;display:inline-flex}.ct-btn:hover{background:var(--bg);border-color:var(--bg);transform:translateY(-2px)}.ct-btn--ghost{border-color:rgb(var(--on-ink-rgb) / .3);color:rgb(var(--on-ink-rgb));background:0 0}.ct-btn--ghost:hover{background:rgb(var(--on-ink-rgb) / .1);border-color:rgb(var(--on-ink-rgb) / .6);color:rgb(var(--on-ink-rgb))}.ct-btn--submit{width:100%;margin-top:.2rem}.ct-btn:disabled{opacity:.7;transform:none}.ct-result{flex-direction:column;align-items:flex-start;gap:.75rem;padding:.5rem 0 .25rem;display:flex}.ct-result__check{background:var(--accent);width:2.25rem;height:2.25rem;color:var(--black);border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.ct-result__title{font-family:var(--font-display);letter-spacing:-.02em;font-size:clamp(1.2rem,1.6vw,1.5rem);font-weight:700}.ct-result__body{font-family:var(--font-body);color:rgb(var(--on-ink-rgb) / .75);overflow-wrap:anywhere;font-size:.95rem;line-height:1.55}.ct-result__actions{flex-wrap:wrap;gap:.6rem;margin-top:.4rem;display:flex}.ct-footnote{z-index:1;text-align:center;font-family:var(--font-body);letter-spacing:.02em;color:rgb(var(--on-ink-rgb) / .55);font-size:.75rem;position:absolute;bottom:1rem;left:0;right:0}@media screen and (max-height:900px){.contact-surface .ct-stage{margin-top:1.5rem}}@media screen and (max-height:800px){.ct-footnote{display:none}.ct-left .section-header,.ct-status{margin-bottom:.7rem}.ct-field__control--area{min-height:4rem}.ct-field__control{padding:.55rem .9rem}}@media screen and (max-width:900px){.ct-stage{grid-template-columns:minmax(0,1fr);align-items:start}}@media screen and (max-width:520px){.ct-channels{grid-template-columns:minmax(0,1fr)}}@media screen and (max-width:762px){.ct-footnote{margin-top:2rem;position:static}}@media (prefers-reduced-motion:reduce){.ct-status__dot{animation:none}}.tl-track{margin-left:calc(var(--container-pad) * -1);margin-right:calc(var(--container-pad) * -1);padding-top:8px;padding-bottom:clamp(.75rem,1.8vh,1.5rem);padding-left:var(--container-pad);padding-right:var(--container-pad);-webkit-overflow-scrolling:touch;align-items:stretch;gap:1.5rem;display:flex;position:relative;overflow:hidden}.tl-item{flex-direction:column;flex-shrink:0;display:flex;position:relative}.tl-item__data{flex-shrink:0;justify-content:space-between;align-items:center;gap:.75rem;min-height:1.5rem;margin-bottom:.4rem;display:flex}.tl-item__rail{flex-shrink:0;align-items:center;height:1rem;margin-bottom:clamp(.7rem,1.7vh,1.15rem);display:flex;position:relative}.tl-item__meta{align-items:center;min-width:0;display:flex}.tl-item__data .overline{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.tl-item__dot{z-index:1;border:2px solid var(--tl-accent,var(--accent));width:13px;height:13px;box-shadow:0 0 0 5px var(--bg);transition:background-color .25s var(--ease-out), transform .25s var(--ease-out);background:0 0;border-radius:50%;flex-shrink:0;position:relative}.tl-item__dot--reached{background:var(--tl-accent,var(--accent));transform:scale(1.2)}.tl-item__spine,.tl-item__fill{background:var(--tl-accent,var(--accent));height:2px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.tl-item__spine{opacity:.22;right:-1.5rem}.tl-item__fill{width:clamp(0px, calc(var(--tl-fill,0px) - (var(--tl-i,0) * var(--tl-seg,0px))), var(--tl-seg,0px));opacity:.9}.tl-item:last-child .tl-item__spine,.tl-item:last-child .tl-item__fill{display:none}.edu-item{flex-direction:column;flex-shrink:0;display:flex;position:relative}.edu-item__rail{box-sizing:border-box;height:calc(var(--lead-h) - 8px);flex-direction:column;flex-shrink:0;justify-content:space-between;padding-bottom:.6rem;display:flex}.edu-item__meta-row{align-items:center;gap:.55rem;min-height:1.2rem;display:flex}.edu-item__num{font-family:var(--font-display);letter-spacing:.04em;color:var(--accent);flex-shrink:0;font-size:.72rem;font-weight:800}.edu-item__period{white-space:nowrap;text-overflow:ellipsis;min-width:0;color:var(--black);opacity:.75;font-weight:700;overflow:hidden}.edu-item__spine-row{align-items:center;height:1rem;display:flex;position:relative}.edu-item__line{background:var(--tl-accent,var(--accent-purple));opacity:.18;height:2px;position:absolute;top:50%;left:0;right:-1.5rem;transform:translateY(-50%)}.edu-item__line-fill{background:var(--tl-accent,var(--accent-purple));opacity:.85;height:2px;width:clamp(0px, calc(var(--tl-fill,0px) - (var(--tl-i,0) * var(--tl-seg,0px))), var(--tl-seg,0px));position:absolute;top:50%;left:0;transform:translateY(-50%)}.edu-item__spine-row:after{content:"";background:var(--tl-accent,var(--accent-purple));opacity:.35;width:2px;height:1.1rem;position:absolute;top:50%;left:5.5px}.edu-item__dot{z-index:1;border:2px solid var(--tl-accent,var(--accent-purple));width:13px;height:13px;box-shadow:0 0 0 5px var(--bg);transition:background-color .25s var(--ease-out), transform .25s var(--ease-out);background:0 0;border-radius:50%;flex-shrink:0;position:relative}.edu-item__dot--reached{background:var(--tl-accent,var(--accent-purple));transform:scale(1.25)}.edu-item:last-child .edu-item__line,.edu-item:last-child .edu-item__line-fill{display:none}.edu-item__line-right{background:var(--tl-accent,var(--accent-purple));opacity:.18;height:2px;position:absolute;top:50%;left:13px;right:-1.5rem;transform:translateY(-50%)}.jc-item{width:var(--tl-card-w)}.jc-card{height:var(--jc-h);border:1.5px solid rgb(var(--ink-rgb) / .18);background:var(--bg);color:var(--black);will-change:transform;backface-visibility:hidden;border-radius:14px;flex-direction:column;flex:none;padding:clamp(1rem,2vh,1.4rem);transition:transform .2s cubic-bezier(.16,1,.3,1),background .15s cubic-bezier(.16,1,.3,1),color .15s cubic-bezier(.16,1,.3,1),border-color .15s cubic-bezier(.16,1,.3,1),box-shadow .16s cubic-bezier(.16,1,.3,1);display:flex;overflow:hidden}.jc-card:hover{background:var(--black);color:var(--bg);border-color:var(--black);transform:translateY(-8px)scale(1.01);box-shadow:0 20px 40px -15px #0003}.jc-card:hover .jc-card__eyebrow{color:var(--tl-accent,var(--accent))}.jc-card:hover .jc-card__title{color:var(--bg)}.jc-card:hover .jc-card__subtitle{color:rgb(var(--on-ink-rgb) / .7)}.jc-card:hover .jc-card__desc{color:rgb(var(--on-ink-rgb) / .8)}.jc-card:hover .jc-card__rule{background:rgb(var(--on-ink-rgb) / .18)}.jc-card:hover .jc-card__footer{border-top-color:rgb(var(--on-ink-rgb) / .18)}.jc-card:hover .jc-card__tags .project-card__tag{border-color:rgb(var(--on-ink-rgb) / .3);color:rgb(var(--on-ink-rgb) / .85)}.jc-card:hover .jc-card__meta-label{color:rgb(var(--on-ink-rgb) / .55)}.jc-card:hover .jc-card__meta-value{color:var(--tl-accent,var(--accent))}.jc-card:hover .jc-card__link{color:var(--bg)}.jc-card__eyebrow{font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:var(--tl-ink,var(--accent-ink));white-space:nowrap;text-overflow:ellipsis;margin-bottom:.6rem;font-size:.66rem;font-weight:700;overflow:hidden}.jc-card__title{min-height:2.5em;font-family:var(--font-display);letter-spacing:-.02em;color:var(--black);overflow-wrap:anywhere;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-size:clamp(1.02rem,1.2vw,1.18rem);font-weight:700;line-height:1.25;display:-webkit-box;overflow:hidden}.jc-card__subtitle{min-height:2.8em;font-family:var(--font-body);color:rgb(var(--ink-rgb) / .6);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin-top:.3rem;font-size:.86rem;font-weight:600;line-height:1.4;display:-webkit-box;overflow:hidden}.jc-card__rule{background:rgb(var(--ink-rgb) / .1);flex:none;height:1px;margin:.7rem 0;transition:background .15s}.jc-card__desc{min-height:0;font-family:var(--font-body);color:rgb(var(--ink-rgb) / .78);-webkit-line-clamp:5;line-clamp:5;-webkit-box-orient:vertical;flex:1;font-size:.86rem;line-height:1.55;display:-webkit-box;overflow:hidden}.jc-card__tags{flex-wrap:wrap;flex:none;gap:.35rem;max-height:3.55rem;margin-top:.6rem;display:flex;overflow:hidden}.jc-card__footer{border-top:1px solid rgb(var(--ink-rgb) / .1);font-family:var(--font-display);flex:none;justify-content:space-between;align-items:baseline;gap:.75rem;margin-top:.7rem;padding-top:.7rem;display:flex}.jc-card__meta{align-items:baseline;gap:.6rem;min-width:0;display:flex}.jc-card__meta-label{letter-spacing:.12em;text-transform:uppercase;color:rgb(var(--ink-rgb) / .5);white-space:nowrap;font-size:.62rem;font-weight:700}.jc-card__meta-value{color:var(--tl-ink,var(--accent-ink));white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;font-weight:700;overflow:hidden}.jc-card__link{letter-spacing:.04em;color:var(--black);white-space:nowrap;flex-shrink:0;align-items:center;gap:.3rem;font-size:.72rem;font-weight:700;transition:color .2s;display:inline-flex}.jc-card__link:hover{color:var(--tl-ink,var(--accent-ink))}.tl-track--three{--tl-card-w:clamp(250px, calc((100% - 3rem) / 3), 520px);--jc-h:clamp(380px, 48vh, 420px);clip-path:inset(-30px var(--container-pad) -30px calc(var(--container-pad) - 10px))}@media screen and (max-height:760px){.tl-track--three{--jc-h:360px}.jc-card{padding:1rem 1.1rem}.jc-card__desc{-webkit-line-clamp:4;line-clamp:4}}@media screen and (max-height:680px){.tl-track--three{--jc-h:320px}.jc-card__tags{max-height:1.6rem}}.tl-card{border-radius:12px;flex-direction:column;flex:1;gap:clamp(.55rem,1.2vh,1rem);padding:clamp(1.1rem,2.3vh,1.75rem);display:flex}.tl-card__eyebrow{align-items:center;gap:.5rem;min-width:0;display:flex}.tl-card__badge{background:var(--tl-wash);width:1.75rem;height:1.75rem;color:var(--tl-ink);transition:background-color var(--dur-fast), color var(--dur-fast);border-radius:7px;flex-shrink:0;place-items:center;display:grid}.tl-card__eyebrow .overline{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.tl-card__title{font-family:var(--font-display);letter-spacing:-.02em;color:var(--black);transition:color var(--dur-fast);font-size:clamp(1.05rem,min(1.4vw,2.4vh),1.3rem);font-weight:700;line-height:1.2}.project-card:hover li{color:rgb(var(--on-ink-rgb) / .78)!important}.project-card:hover ul{border-top-color:rgb(var(--on-ink-rgb) / .12)!important}.project-card:hover .tl-card__eyebrow .overline{opacity:.75}.project-card:hover .tl-card__badge{background:rgb(var(--on-ink-rgb) / .16);color:var(--bg)}.bubble-btn{--bubble-dim:3.125rem;font-family:var(--font-display);color:var(--black);cursor:pointer;z-index:1;background:0 0;border:none;flex-direction:row;align-items:center;gap:.5rem;width:max-content;font-size:1rem;font-weight:600;text-decoration:none;display:inline-flex;position:relative}.bubble-btn__pill{width:var(--bubble-dim);height:var(--bubble-dim);border-radius:calc(var(--bubble-dim) / 2);background-color:var(--accent);z-index:-1;transition:width var(--dur-slow) var(--ease-bubble);position:absolute;top:50%;left:0;transform:translateY(-50%)}.bubble-btn__icon{width:var(--bubble-dim);height:var(--bubble-dim);z-index:1;flex-shrink:0;justify-content:center;align-items:center;display:flex}.bubble-btn--contact{color:#fff}@media (hover:hover){.bubble-btn:hover,.bubble-btn--contact:hover{color:var(--black)}.bubble-btn:hover .bubble-btn__pill{width:14rem}.bubble-btn--sm:hover .bubble-btn__pill{width:10rem}.bubble-btn--contact:hover .bubble-btn__pill{width:12rem}}.logo{font-family:var(--font-display);letter-spacing:-.03em;color:var(--accent-purple);transition:opacity var(--dur-fast) ease-in-out, color var(--dur-fast) ease-in-out;-webkit-user-select:none;user-select:none;align-items:baseline;font-size:clamp(1.4rem,2vw,1.85rem);font-weight:800;line-height:1.1;display:inline-flex}.logo:hover{opacity:.85}.site-header__ctl{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--black);cursor:pointer;transition:color .35s var(--ease-out), opacity var(--dur-fast);background:0 0;border:none;padding:.25rem 0;font-size:.85rem;font-weight:700}.site-header__ctl:hover{opacity:.7}.site-header__ctl--lens{align-items:center;gap:.4rem;display:inline-flex}.site-header__ctl--lens svg{transition:transform .45s var(--ease-out);flex-shrink:0}.site-header__ctl--lens:hover svg,.site-header__ctl--lens[data-active=true] svg{transform:rotate(180deg)}.lens-hint{background:var(--black);color:var(--bg);font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;cursor:pointer;animation:lens-hint-in .5s var(--ease-out) backwards;border:none;border-radius:8px;padding:.5rem .8rem;font-size:.7rem;font-weight:700;position:absolute;top:calc(100% + .65rem);left:-.4rem;box-shadow:0 10px 24px -10px #00000073}.lens-hint:before{content:"";border:6px solid #0000;border-bottom-color:var(--black);position:absolute;bottom:100%;left:.9rem}@keyframes lens-hint-in{0%{opacity:0;translate:0 -6px}}.site-header__ctl[data-active=true]{color:var(--accent)}html[data-header-tone=dark] .site-header__ctl{color:var(--bg)}html[data-header-tone=dark] .site-header__ctl[data-active=true]{color:var(--accent)}html[data-header-tone=dark] .site-header--menu-open .site-header__ctl{color:var(--black)}.panel{width:100vw;min-width:100vw;height:100vh;padding:var(--panel-top) var(--container-pad) 2rem;flex-direction:column;flex-shrink:0;justify-content:flex-start;align-items:center;display:flex;position:relative}.container{width:100%;margin:0 auto}.container--prose{max-width:var(--container-prose)}.container--stage{max-width:var(--stage)}@media screen and (max-height:760px){:root{--panel-top:6.25rem;--section-header-gap:.4rem;--section-header-margin:1.5rem}.panel{padding-bottom:1rem}.section-headline{font-size:clamp(1.9rem,3.4vw,2.6rem)}.project-card{min-height:360px!important}:root{--lead-h:3.5rem}}@media screen and (max-height:680px){.project-card{min-height:0!important}}.hero{justify-content:space-between;align-items:center;padding-top:4.25rem;padding-bottom:0;overflow:hidden}.hero__stage{width:100%;max-width:var(--container-hero);z-index:20;justify-content:space-between;align-items:flex-end;gap:2rem;height:100%;padding-bottom:2.5rem;display:flex;position:relative}.hero__intro{text-align:left;z-index:30;flex-direction:column;gap:.85rem;max-width:min(34rem,46vw);margin-bottom:.5rem;display:flex}.hero__intro--right{text-align:right;align-self:flex-end;align-items:flex-end;margin-bottom:.5rem}.hero__skills-block{z-index:30;flex-direction:column;justify-content:space-between;align-items:flex-end;display:flex}.hero__skills-list{flex-direction:column;justify-content:space-between;align-items:flex-end;gap:clamp(1.2rem,2.4vh,1.85rem);display:flex}.hero__skill-line{font-family:var(--font-display);letter-spacing:-.03em;text-transform:uppercase;white-space:nowrap;cursor:pointer;color:var(--black);opacity:.42;will-change:transform, opacity, color;font-size:clamp(1.1rem,1.7vw,1.55rem);font-weight:800;line-height:1.15;transition:opacity .45s cubic-bezier(.16,1,.3,1),transform .45s cubic-bezier(.16,1,.3,1),color .45s cubic-bezier(.16,1,.3,1),filter .45s cubic-bezier(.16,1,.3,1);transform:translate(0)}.hero__skill-line--active{opacity:1!important;color:var(--black)!important;transform:translate(-4px)!important}@media (hover:hover){.hero__skill-line:hover{opacity:1!important;color:var(--accent)!important;filter:drop-shadow(0 6px 14px #fb4e0440)!important;transform:translate(-6px)!important}}@media screen and (max-width:1100px){.hero__intro--right{display:none}.hero__portrait-frame{max-width:54vw}.hero__intro{max-width:34vw}}.hero__lede{font-family:var(--font-body);color:var(--black);opacity:.75;max-width:340px;font-size:clamp(.85rem,.98vw,.95rem);line-height:1.55}.hero__ctas{flex-wrap:wrap;align-items:center;gap:1rem;padding-top:.25rem;display:flex}.hero__portrait{z-index:20;pointer-events:none;perspective:1200px;justify-content:center;align-items:flex-end;width:100%;height:98vh;max-height:1020px;display:flex;position:absolute;bottom:0;left:0;right:0}.hero__portrait-frame{pointer-events:auto;cursor:crosshair;justify-content:center;align-items:flex-end;width:100%;max-width:1180px;height:100%;display:flex;position:relative}.hero__portrait-tilt{will-change:transform;justify-content:center;align-items:flex-end;width:100%;height:100%;display:flex;position:relative}.hero__portrait-img{z-index:10;object-fit:contain;object-position:bottom center;-webkit-user-select:none;user-select:none;pointer-events:none;width:auto;max-width:100%;height:100%;max-height:100%;position:relative}.hero__portrait-color{z-index:15;pointer-events:none;justify-content:center;align-items:flex-end;transition:-webkit-mask-image .4s,mask-image .4s;display:flex;position:absolute;inset:0}.hero__glow{filter:blur(75px);z-index:-1;pointer-events:none;background:radial-gradient(circle,#fb4e0438 0%,#9747ff1a 50%,#0000 75%);border-radius:50%;width:540px;height:540px;position:absolute}.hero__bg-text{font-family:var(--font-display);letter-spacing:-.04em;text-transform:uppercase;color:rgb(var(--ink-rgb) / .05);-webkit-text-stroke:1.5px rgb(var(--ink-rgb) / .09);-webkit-user-select:none;user-select:none;pointer-events:none;white-space:nowrap;z-index:0;opacity:0;filter:blur(8px);will-change:transform, opacity, filter;transition:opacity 1.1s var(--ease-out) .2s, transform 1.1s var(--ease-out) .2s, filter 1.1s var(--ease-out) .2s;font-size:clamp(3.8rem,13vw,14.5rem);font-weight:900;line-height:.9;position:absolute;top:20%;left:50%;transform:translate(-50%,35px)scale(.97)}.hero__bg-text--loaded{opacity:.85;filter:blur();transform:translate(-50%)scale(1)}.hero__bg-text--visible.hero__bg-text--loaded{opacity:.85;filter:blur();transition:opacity .45s cubic-bezier(.16,1,.3,1),transform .45s cubic-bezier(.16,1,.3,1),filter .45s cubic-bezier(.16,1,.3,1);transform:translate(-50%)scale(1)}.hero__bg-text--exiting{opacity:0!important;filter:blur(4px)!important;transition:opacity .35s cubic-bezier(.4,0,.2,1),transform .35s cubic-bezier(.4,0,.2,1),filter .35s cubic-bezier(.4,0,.2,1)!important;transform:translate(-50%,-18px)scale(.98)!important}.hero__bg-text--entering{opacity:0!important;filter:blur(3px)!important;transition:none!important;transform:translate(-50%,18px)scale(1.01)!important}.hero__ticker{z-index:5;pointer-events:none;opacity:.28;position:absolute;bottom:.65rem;left:0;right:0;overflow:hidden}.hero__ticker-text{font-family:var(--font-display);letter-spacing:.15em;text-transform:uppercase;color:var(--black);text-align:center;white-space:nowrap;font-size:.72rem;font-weight:700}.project-card{border:1.5px solid rgb(var(--ink-rgb) / .18);background:var(--bg);will-change:transform;backface-visibility:hidden;touch-action:manipulation;transition:background .15s cubic-bezier(.16,1,.3,1),color .15s cubic-bezier(.16,1,.3,1),border-color .15s cubic-bezier(.16,1,.3,1),box-shadow .16s cubic-bezier(.16,1,.3,1);transform:translateZ(0)}.project-card:hover{transition:transform .2s cubic-bezier(.16,1,.3,1),background .15s cubic-bezier(.16,1,.3,1),color .15s cubic-bezier(.16,1,.3,1),border-color .15s cubic-bezier(.16,1,.3,1),box-shadow .16s cubic-bezier(.16,1,.3,1);transform:translateY(-8px)scale(1.01);box-shadow:0 20px 40px -15px #0003;background:var(--black)!important;color:var(--bg)!important;border-color:var(--black)!important}.project-card:hover h3{color:var(--bg)!important}.project-card:hover p{color:rgb(var(--on-ink-rgb) / .8)!important}.project-card:hover .project-card__tag{border-color:rgb(var(--on-ink-rgb) / .3);color:rgb(var(--on-ink-rgb) / .85)}.project-card:hover .card-link{color:var(--bg)!important;opacity:1!important}.project-card__tag{border:1px solid rgb(var(--ink-rgb) / .25);border-radius:var(--radius-pill-full);font-size:.75rem;font-family:var(--font-display);letter-spacing:.04em;transition:border-color var(--dur-fast), color var(--dur-fast);padding:.2rem .75rem;font-weight:500;display:inline-block}.project-card__tag--sm{padding:.15rem .55rem;font-size:.7rem}.project-card--interactive{cursor:pointer;position:relative}.po-backdrop{background:rgb(var(--ink-rgb) / .45);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:99998;position:fixed;inset:0}.po{z-index:99999;color:var(--black);padding:clamp(.75rem,2.5vh,1.5rem) clamp(.75rem,3vw,2rem);display:flex;position:fixed;inset:0}.po__panel{border:1.5px solid rgb(var(--ink-rgb) / .18);background:var(--bg);border-radius:20px;flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.po__bar{border-bottom:1px solid rgb(var(--ink-rgb) / .12);flex-shrink:0;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem clamp(1.25rem,4vw,3rem);display:flex}.po__back{cursor:pointer;font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--black);transition:color var(--dur-fast), transform var(--dur-fast);background:0 0;border:none;align-items:center;gap:.45rem;padding:0;font-size:.75rem;font-weight:700;display:inline-flex}.po__back:hover{color:var(--accent-ink);transform:translate(-3px)}.po__icon-btn{border:1.5px solid rgb(var(--ink-rgb) / .3);width:38px;height:38px;color:var(--black);cursor:pointer;transition:background-color var(--dur-fast), color var(--dur-fast), border-color var(--dur-fast), transform var(--dur-fast);background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.po__icon-btn:hover:not(:disabled){background:var(--black);border-color:var(--black);color:var(--bg);transform:scale(1.05)}.po__icon-btn:disabled{opacity:.3;cursor:not-allowed}.po__scroll{scrollbar-width:none;-ms-overflow-style:none;flex:1;min-height:0;padding:clamp(1.5rem,4vh,3rem) clamp(1.25rem,4vw,3rem) 2.5rem;overflow-y:auto}.po__scroll::-webkit-scrollbar{display:none}.po__body{flex-direction:column;gap:clamp(1.5rem,3.5vh,2.25rem);width:100%;max-width:1180px;margin:0 auto;display:flex}.po__hero{border-bottom:1px solid rgb(var(--ink-rgb) / .12);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem 2rem;padding-bottom:clamp(1.1rem,2.5vh,1.6rem);display:flex}.po__headline{min-width:0;font-family:var(--font-display);letter-spacing:-.02em;text-transform:uppercase;overflow-wrap:anywhere;flex:18rem;font-size:clamp(1.9rem,4vw,3.4rem);font-weight:700;line-height:1.02}.po__grid{grid-template-columns:minmax(0,1.9fr) minmax(0,1fr);align-items:start;gap:clamp(1.5rem,4vw,4rem);display:grid}.po__main{flex-direction:column;gap:clamp(1.25rem,3vh,1.9rem);min-width:0;display:flex}.po__heading{font-family:var(--font-display);letter-spacing:.14em;text-transform:uppercase;color:rgb(var(--ink-rgb) / .6);margin-bottom:.7rem;font-size:.7rem;font-weight:700}.po__lede{max-width:62ch;font-family:var(--font-body);color:rgb(var(--ink-rgb) / .86);font-size:clamp(.95rem,1.15vw,1.05rem);line-height:1.65}.po__tags{flex-wrap:wrap;gap:.4rem;display:flex}.po__tag{border:1px solid rgb(var(--ink-rgb) / .22);border-radius:var(--radius-pill-full);font-family:var(--font-display);letter-spacing:.03em;color:var(--black);transition:background-color var(--dur-fast), border-color var(--dur-fast), color var(--dur-fast);padding:.25rem .7rem;font-size:.75rem;font-weight:600;display:inline-block}.po__tag:hover{background:var(--black);border-color:var(--black);color:var(--bg)}.po__facts{min-width:0}.po__facts-list{border-top:1px solid rgb(var(--ink-rgb) / .12);flex-direction:column;margin:0;display:flex}.po__facts-list>div{border-bottom:1px solid rgb(var(--ink-rgb) / .12);justify-content:space-between;align-items:baseline;gap:1rem;padding:.6rem 0;display:flex}.po__facts-list dt{font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:rgb(var(--ink-rgb) / .6);flex-shrink:0;font-size:.68rem;font-weight:600}.po__facts-list dd{text-align:right;font-family:var(--font-body);color:var(--black);align-items:center;gap:.45rem;margin:0;font-size:.9rem;font-weight:500;display:inline-flex}.po__status-dot{background:rgb(var(--ink-rgb) / .35);border-radius:50%;width:7px;height:7px}.po__status-dot[data-live=true]{background:var(--po-accent,var(--accent))}.po__actions{flex-wrap:wrap;gap:.5rem;display:flex}.po__btn{border:1.5px solid var(--black);border-radius:var(--radius-pill-full);background:var(--black);color:var(--bg);font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;transition:background-color var(--dur-fast), color var(--dur-fast), border-color var(--dur-fast), transform var(--dur-fast);justify-content:center;align-items:center;gap:.45rem;padding:.6rem 1.15rem;font-size:.72rem;font-weight:700;display:inline-flex}.po__btn:hover{background:var(--po-accent,var(--accent));border-color:var(--po-accent,var(--accent));color:var(--black);transform:translateY(-2px)}.po-gallery{--gallery-h:clamp(220px, calc(100dvh - 19.5rem), 640px);width:min(100%, calc(var(--gallery-h) * 16 / 9));flex-direction:column;gap:1rem;margin-inline:auto;display:flex}.po-gallery__frame{border:1.5px solid rgb(var(--ink-rgb) / .18);background:var(--bg);border-radius:14px;position:relative;overflow:hidden}.po-gallery__chrome{border-bottom:1px solid rgb(var(--ink-rgb) / .12);align-items:center;gap:.85rem;padding:.65rem 1rem;display:flex}.po-gallery__dots{flex-shrink:0;gap:.35rem;display:flex}.po-gallery__dots i{background:rgb(var(--ink-rgb) / .2);border-radius:50%;width:9px;height:9px}.po-gallery__url{text-overflow:ellipsis;white-space:nowrap;border-radius:var(--radius-pill-full);background:rgb(var(--ink-rgb) / .06);min-width:0;font-family:var(--font-display);color:rgb(var(--ink-rgb) / .72);flex:1;padding:.2rem .85rem;font-size:.72rem;overflow:hidden}.po-gallery__count{font-family:var(--font-display);letter-spacing:.08em;color:rgb(var(--ink-rgb) / .75);flex-shrink:0;font-size:.72rem;font-weight:700}.po-gallery__viewport{aspect-ratio:16/9;background:rgb(var(--ink-rgb) / .03);width:100%;position:relative}.po-gallery__slide{position:absolute;inset:0}.po-gallery__img{object-fit:contain}.po-gallery__placeholder{text-align:center;color:rgb(var(--ink-rgb) / .5);background-image:radial-gradient(circle,#fb4e0438 1px,#0000 1.5px);background-size:18px 18px;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;display:flex;position:absolute;inset:0}.po-gallery__placeholder strong{font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;color:rgb(var(--ink-rgb) / .7);font-size:clamp(.8rem,1.1vw,.95rem);font-weight:700}.po-gallery__nav{align-items:center;gap:.75rem;display:flex}.po-gallery__thumbs{scrollbar-width:none;flex:1;gap:.6rem;min-width:0;padding:.25rem;display:flex;overflow-x:auto}.po-gallery__thumbs::-webkit-scrollbar{display:none}.po-gallery__thumb{aspect-ratio:16/10;border:1.5px solid rgb(var(--ink-rgb) / .18);background:rgb(var(--ink-rgb) / .03);cursor:pointer;opacity:.65;transition:opacity var(--dur-fast), border-color var(--dur-fast);border-radius:10px;flex:0 0 clamp(96px,12vw,148px);padding:0;position:relative;overflow:hidden}.po-gallery__thumb:hover{opacity:1}.po-gallery__thumb[aria-current=true]{opacity:1;border-color:var(--po-accent,var(--accent))}@media screen and (max-width:900px){.po__grid{grid-template-columns:minmax(0,1fr)}}@media screen and (max-width:762px){.po{padding:0}.po__panel{border:none;border-radius:0}.po__bar{padding:.7rem 1rem}.po__actions{width:100%}.po__btn{flex:1 1 0}.po-gallery{width:100%}.po-gallery__viewport{aspect-ratio:4/3}}@media screen and (max-height:760px){.po-gallery{--gallery-h:clamp(220px, calc(100dvh - 17.5rem), 640px)}.po-gallery__thumb{flex-basis:clamp(72px,9vw,104px)}}.h-track{margin-left:calc(var(--container-pad) * -1);margin-right:calc(var(--container-pad) * -1);padding-top:.5rem;padding-bottom:1.5rem;padding-left:var(--container-pad);padding-right:var(--container-pad);-webkit-overflow-scrolling:touch;align-items:stretch;gap:1.5rem;display:flex;overflow:hidden}.projects-track{--card-w:clamp(210px, calc((100% - 3rem) / 3), 520px);padding-top:var(--lead-h)}@media screen and (max-width:762px){.projects-track{--card-w:clamp(240px, 72vw, 300px)}}.card-link{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--black);align-items:center;gap:.35rem;font-size:.8rem;font-weight:700;transition:color .25s,transform .25s,opacity .25s;display:inline-flex}.card-link:hover{color:var(--card-accent,var(--black));transform:translate(2px)}.card-link[aria-disabled=true]{opacity:.45;cursor:default;pointer-events:none}.card-link--dev{opacity:.55;cursor:default;pointer-events:none;color:var(--black);transition:color var(--dur-fast), opacity var(--dur-fast)}.project-card:hover .card-link--dev{color:rgb(var(--on-ink-rgb) / .6)!important;opacity:1!important}.fade-up{opacity:0;transition:opacity var(--dur-med) var(--ease-out), transform var(--dur-med) var(--ease-out);transform:translateY(40px)}.fade-up.in-view{opacity:1;transform:translateY(0)}.fade-up--delay-1{transition-delay:.1s}.fade-up--delay-2{transition-delay:.2s}.fade-up--delay-3{transition-delay:.3s}.fade-up--delay-4{transition-delay:.45s}.ca-grid{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:clamp(1rem,1.6vw,1.5rem);width:100%;display:grid}.ca-col{flex-direction:column;min-width:0;display:flex}.ca-head{box-sizing:border-box;height:calc(var(--lead-h) - 2px - .6rem);border-bottom:1.5px solid rgb(var(--ink-rgb) / .12);font-family:var(--font-display);align-items:flex-end;gap:.45rem;margin-bottom:.6rem;padding-bottom:.25rem;line-height:1.15;display:flex}.ca-head__num{color:var(--accent);letter-spacing:.08em;font-size:clamp(.75rem,.4vw + .42rem,.88rem);font-weight:800}.ca-head__name{letter-spacing:.1em;text-transform:uppercase;font-size:clamp(.7rem,.38vw + .4rem,.84rem);font-weight:700}.ca-head__link{letter-spacing:.02em;color:var(--black);opacity:.7;transition:opacity var(--dur-fast), color var(--dur-fast);align-items:center;gap:.2rem;margin-left:auto;font-size:.78rem;font-weight:600;display:inline-flex}.ca-head__link:hover{opacity:1;color:var(--accent-ink)}.ca-card{background:var(--surface);border:1.5px solid rgb(var(--ink-rgb) / .09);border-radius:14px;flex-direction:column;flex:auto;justify-content:space-between;gap:.9rem;min-width:0;padding:clamp(.9rem,1.9vh,1.25rem) clamp(1rem,1.4vw,1.35rem);display:flex;box-shadow:0 2px 8px #00000005}.ca-card__lead{opacity:.8;font-size:.88rem}.ca-card__lead strong{font-family:var(--font-display);opacity:1;font-size:1.05rem;font-weight:700}.ca-card__foot{justify-content:space-between;align-items:center;gap:.75rem;font-size:.74rem;display:flex}.ca-readout{font-family:var(--font-display);opacity:.7;white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.ca-legend{opacity:.7;flex-shrink:0;align-items:center;gap:3px;display:inline-flex}.ca-legend .ca-cell{width:10px;height:10px}.ca-legend .ca-cell:first-child{margin-left:.3rem}.ca-legend .ca-cell:last-of-type{margin-right:.3rem}.ca-card--empty{justify-content:center;align-items:flex-start;gap:.75rem;font-size:.9rem}.ca-card--empty p{opacity:.75}.ca-heatmap-scroll{overflow:auto hidden}.ca-heatmap{--gap:3px;flex-direction:column;gap:.35rem;min-width:0;display:flex}.ca-heatmap__months,.ca-heatmap__grid{grid-template-columns:repeat(var(--weeks), minmax(0, 1fr));column-gap:var(--gap);display:grid}.ca-heatmap__months{font-family:var(--font-display);letter-spacing:.04em;opacity:.6;font-size:.66rem;font-weight:600;line-height:1}.ca-heatmap__months span{white-space:nowrap;grid-row:1}.ca-heatmap__grid{row-gap:var(--gap);grid-template-rows:repeat(7,auto);grid-auto-flow:column}.ca-cell{aspect-ratio:1;background:rgb(var(--ink-rgb) / .07);transition:transform .15s var(--ease-out), box-shadow .15s var(--ease-out);border-radius:2px;display:block}.ca-cell[data-level="1"]{background:#9747ff47}.ca-cell[data-level="2"]{background:#9747ff85}.ca-cell[data-level="3"]{background:#9747ffc2}.ca-cell[data-level="4"]{background:var(--accent-purple)}.ca-cell--pad{background:0 0}.ca-heatmap__grid .ca-cell[data-date]{cursor:crosshair}.ca-cell[data-active]{box-shadow:0 0 0 1.5px var(--black);z-index:1;position:relative;transform:scale(1.35)}.ca-solved{align-items:flex-end;gap:.6rem;display:flex}.ca-solved__value{font-family:var(--font-display);letter-spacing:-.03em;color:var(--accent);font-size:clamp(2.2rem,3.2vw,2.9rem);font-weight:800;line-height:.9}.ca-solved__label{font-family:var(--font-display);font-size:.82rem;font-weight:700;line-height:1.2}.ca-bars{flex-direction:column;gap:.6rem;list-style:none;display:flex}.ca-bar__row{font-family:var(--font-display);justify-content:space-between;align-items:baseline;margin-bottom:.3rem;font-size:.76rem;display:flex}.ca-bar__name{letter-spacing:.08em;text-transform:uppercase;font-weight:700}.ca-bar__count{opacity:.65}.ca-bar__count strong{font-weight:700}.ca-bar__track{border-radius:var(--radius-pill-full);background:rgb(var(--ink-rgb) / .07);height:6px;overflow:hidden}.ca-bar__fill{border-radius:inherit;height:100%;transition:width 1.1s var(--ease-out) .35s}.ca-langs{flex-wrap:wrap;gap:.35rem;display:flex}.ca-tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin-top:.5rem;display:grid}.ca-tile{background:var(--surface);border:1.5px solid rgb(var(--ink-rgb) / .09);min-width:0;transition:transform .22s var(--ease-out), border-color .22s ease;border-radius:12px;flex-direction:column;gap:.2rem;padding:.7rem .85rem;display:flex;box-shadow:0 2px 8px #00000005}.ca-tile:hover{border-color:rgb(var(--ink-rgb) / .22);transform:translateY(-2px)}.ca-tile__value{font-family:var(--font-display);white-space:nowrap;text-overflow:ellipsis;font-size:clamp(1.05rem,1.2vw,1.3rem);font-weight:700;line-height:1.1;overflow:hidden}.ca-tile__label{font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;opacity:.6;white-space:nowrap;text-overflow:ellipsis;font-size:.66rem;font-weight:700;overflow:hidden}@media screen and (max-height:760px){.ca-card{gap:.6rem}.ca-tile{padding:.5rem .75rem}}@media screen and (max-width:1100px){.ca-heatmap{min-width:calc(var(--weeks) * 11px)}}@media screen and (max-width:762px){.ca-grid{grid-template-columns:minmax(0,1fr);gap:2rem}.ca-heatmap{min-width:calc(var(--weeks) * 13px)}.ca-tile{padding:.6rem .65rem}.ca-tile__label{white-space:normal;line-height:1.3}.ca-card__foot{flex-direction:column;align-items:flex-start;gap:.4rem}}.no-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.no-scrollbar::-webkit-scrollbar{display:none}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.divider{background:var(--black);opacity:.15;width:100%;height:1px}@keyframes hero-portrait-rise{0%{opacity:0;transform:translateY(260px)scale(.92)}65%{opacity:1;transform:translateY(-10px)scale(1.01)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes hero-portrait-float{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-12px)rotate(.4deg)}}.animate-portrait-rise{animation:1.35s cubic-bezier(.16,1,.3,1) forwards hero-portrait-rise}.select-text-hover{cursor:pointer;background-image:linear-gradient(to right, var(--accent-purple), var(--accent-purple));-webkit-box-decoration-break:clone;box-decoration-break:clone;background-position:0;background-repeat:no-repeat;background-size:0% 100%;border-radius:2px;margin:-.04em -.12em;padding:.04em .12em;transition:background-size .35s cubic-bezier(.16,1,.3,1),color .35s cubic-bezier(.16,1,.3,1);display:inline-block;position:relative}.select-text-hover:hover{background-size:100% 100%;color:#fff!important}.select-text-hover:hover span{transition:color .35s cubic-bezier(.16,1,.3,1);color:#fff!important}.select-text-hover::selection,.select-text-hover ::selection{background-color:var(--accent-purple)!important;color:#fff!important}.lens{--lens-hit:12px;--lens-corner:22px;z-index:100000;pointer-events:none;position:fixed;inset:0}.lens[data-state=closing]{animation:lens-out .24s var(--ease-in-out) forwards}.lens[data-state=closing] *{pointer-events:none!important}@keyframes lens-out{to{opacity:0}}.lens__view{position:absolute;inset:0}.lens__mirror{background-color:var(--bg);background-image:var(--paper-grain);color:var(--black);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-repeat:repeat;line-height:1.6;position:absolute;inset:0;overflow:hidden}.lens__box{position:absolute;top:0;left:0}.lens__frame{box-shadow:inset 0 0 0 1.5px var(--accent), 0 24px 60px -28px #0a0a0a80;border-radius:10px;position:absolute;inset:0}.lens__hit{pointer-events:auto;touch-action:none;place-items:center;display:grid;position:absolute}.lens__hit--n,.lens__hit--s{left:var(--lens-hit);right:var(--lens-hit);height:var(--lens-hit);cursor:ns-resize}.lens__hit--n{top:calc(var(--lens-hit) / -2)}.lens__hit--s{bottom:calc(var(--lens-hit) / -2)}.lens__hit--e,.lens__hit--w{top:var(--lens-hit);bottom:var(--lens-hit);width:var(--lens-hit);cursor:ew-resize}.lens__hit--e{right:calc(var(--lens-hit) / -2)}.lens__hit--w{left:calc(var(--lens-hit) / -2)}.lens__hit--nw,.lens__hit--ne,.lens__hit--sw,.lens__hit--se{width:var(--lens-corner);height:var(--lens-corner)}.lens__hit--nw,.lens__hit--ne{top:calc(var(--lens-corner) / -2)}.lens__hit--sw,.lens__hit--se{bottom:calc(var(--lens-corner) / -2)}.lens__hit--nw,.lens__hit--sw{left:calc(var(--lens-corner) / -2)}.lens__hit--ne,.lens__hit--se{right:calc(var(--lens-corner) / -2)}.lens__hit--nw,.lens__hit--se{cursor:nwse-resize}.lens__hit--ne,.lens__hit--sw{cursor:nesw-resize}.lens__handle{background:var(--white);border:1.5px solid var(--accent);width:9px;height:9px;transition:transform var(--dur-fast) var(--ease-out);border-radius:2px;box-shadow:0 1px 4px #0a0a0a4d}.lens__hit:hover>.lens__handle,.lens[data-dragging=nw] .lens__hit--nw>.lens__handle,.lens[data-dragging=se] .lens__hit--se>.lens__handle{transform:scale(1.35)}.lens__tag{background:var(--accent-ink);height:28px;color:var(--white);font-family:var(--font-display);letter-spacing:.06em;font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:auto;animation:lens-tag-in .35s var(--ease-out) .3s backwards;border-radius:6px;align-items:stretch;font-size:.7rem;font-weight:700;display:flex;position:absolute;overflow:hidden;box-shadow:0 10px 24px -10px #0a0a0a80}.lens__tag[data-placement=below]{top:calc(100% + 10px)}.lens__tag[data-placement=above]{bottom:calc(100% + 10px)}.lens__tag[data-placement=inside]{bottom:10px}.lens__tag[data-align=start]{left:0}.lens__tag[data-align=end]{right:0}.lens__tag[data-placement=inside][data-align=start]{left:10px}.lens__tag[data-placement=inside][data-align=end]{right:10px}@keyframes lens-tag-in{0%{opacity:0;translate:0 4px}}.lens__grip,.lens__expand,.lens__close{color:inherit;font:inherit;letter-spacing:inherit;transition:background-color var(--dur-fast) var(--ease-out);background:0 0;border:none;align-items:center;display:inline-flex}.lens__grip{cursor:grab;touch-action:none;gap:.45rem;padding:0 .65rem}.lens__expand,.lens__close{cursor:pointer;border-left:1px solid #ffffff3d;padding:0 .55rem}.lens__grip:hover,.lens__expand:hover,.lens__close:hover,.lens[data-dragging=move] .lens__grip{background-color:#ffffff24}.lens__tag :focus-visible{outline:2px solid var(--white);outline-offset:-4px;border-radius:4px}html[data-lens-hover]{cursor:grab}html[data-lens-drag=move],html[data-lens-drag=move] *{cursor:grabbing!important}html[data-lens-drag],html[data-lens-drag] *{-webkit-user-select:none!important;user-select:none!important}@media (pointer:coarse){.lens{--lens-hit:24px;--lens-corner:44px}.lens__tag{height:36px}.lens__grip{padding:0 .85rem}.lens__expand,.lens__close{padding:0 .75rem}}.scroll-guide{top:50%;right:var(--container-pad);z-index:40;color:var(--black);cursor:pointer;transition:opacity .7s var(--ease-out), translate .7s var(--ease-out);animation:scroll-guide-in .9s var(--ease-out) backwards;background:0 0;border:none;align-items:center;gap:.7rem;padding:.5rem 0;display:flex;position:fixed;translate:0 -50%}.scroll-guide[data-hidden=true]{opacity:0;pointer-events:none;translate:14px -50%}.scroll-guide__label{font-family:var(--font-display);letter-spacing:.15em;text-transform:uppercase;opacity:.68;transition:opacity var(--dur-fast) var(--ease-out);font-size:.7rem;font-weight:700}.scroll-guide__touch{display:none}.scroll-guide__rule{background:rgb(var(--ink-rgb) / .2);width:3.5rem;height:1px;position:relative;overflow:hidden}.scroll-guide__runner{background:var(--accent);width:40%;animation:scroll-guide-run 1.9s var(--ease-in-out) infinite;position:absolute;inset:0 auto 0 0}.scroll-guide__head{border-top:1.5px solid var(--black);border-right:1.5px solid var(--black);opacity:.68;width:.4rem;height:.4rem;transition:opacity var(--dur-fast) var(--ease-out), translate var(--dur-fast) var(--ease-out);margin-left:-.85rem;rotate:45deg}@media (hover:hover){.scroll-guide:hover .scroll-guide__label,.scroll-guide:hover .scroll-guide__head{opacity:1}.scroll-guide:hover .scroll-guide__head{translate:3px -3px}}@keyframes scroll-guide-run{0%{transform:translate(-100%)}to{transform:translate(250%)}}@keyframes scroll-guide-in{0%{opacity:0;translate:-10px -50%}}@media (pointer:coarse){.scroll-guide__wheel{display:none}.scroll-guide__touch{display:inline}}@media (prefers-reduced-motion:reduce){.scroll-guide{animation:none}.scroll-guide__runner{opacity:.35;width:100%;animation:none}}@media screen and (max-width:762px){.panel{height:auto;min-height:0;padding:4rem var(--container-pad) 1.5rem;justify-content:flex-start;align-items:flex-start}main{overflow-x:clip}.site-header{background:linear-gradient(to bottom, var(--bg) 62%, #f8f6f100);transition:background-color .35s var(--ease-out);padding:.85rem var(--container-pad) .7rem!important}html[data-header-tone=dark] .site-header{background:linear-gradient(to bottom, var(--black-deep) 62%, #0a0a0a00)}.site-header.site-header--menu-open,html[data-header-tone=dark] .site-header.site-header--menu-open{background:0 0}.site-header__ctl{padding:.55rem .2rem}.site-header__ctl--lens{margin-inline:-.35rem;padding-inline:.55rem}.site-header__label{display:none}nav[aria-label=Primary\ navigation]{overflow-y:auto;padding:5rem 1.5rem 2rem!important}nav[aria-label=Primary\ navigation]>div{padding-left:0!important}.nav-list a{padding:.35rem 0}.section-headline{font-size:clamp(1.9rem,9.2vw,2.6rem)}#about .section-header{margin-bottom:1.75rem}.about-body{font-size:1.02rem;line-height:1.7}.hero{--hero-portrait-h:max(250px, min(calc((100vw - 2 * var(--container-pad)) * 1.02), calc(100svh - 20.5rem)));min-height:100svh;padding:5rem var(--container-pad) 0;justify-content:flex-start}.hero__stage{flex-direction:column;flex:auto;justify-content:flex-start;align-items:stretch;gap:1.5rem;height:auto;padding-bottom:0}.hero__intro{order:1;gap:1rem;max-width:100%;margin-top:auto;margin-bottom:auto}.hero-title{font-size:clamp(2.3rem,11.5vw,3.2rem)}.hero__lede{max-width:30rem;font-size:1rem}.hero__ctas{gap:.75rem;padding-top:.5rem}.hero__portrait{height:var(--hero-portrait-h);width:auto;max-height:none;margin-left:calc(var(--container-pad) * -1);margin-right:calc(var(--container-pad) * -1);perspective:none;order:2;position:relative}.hero__portrait-frame{cursor:default;max-width:100%;height:100%}.hero__portrait-tilt{height:100%}.hero__portrait-img{height:var(--hero-portrait-h);flex:none;width:auto;max-width:none;max-height:none}.hero__portrait-color{-webkit-mask-image:none!important;mask-image:none!important}.hero__glow{filter:blur(48px);width:280px;height:280px}.hero__bg-text{top:auto;bottom:calc(var(--hero-portrait-h) * .6);-webkit-text-stroke:1px rgb(var(--ink-rgb) / .09);font-size:clamp(3rem,14.5vw,5.5rem)}.hero__ticker{display:none}.social-link--light{width:auto;height:40px}.bubble-btn{font-size:1.05rem}.panel>.container{overflow:visible!important}.h-track,.tl-track{overscroll-behavior-x:contain;scroll-snap-type:x proximity;scroll-padding-inline:var(--container-pad);align-self:stretch;gap:1rem;overflow:auto hidden;margin-left:calc(var(--container-pad) * -1)!important;margin-right:calc(var(--container-pad) * -1)!important;padding-left:var(--container-pad)!important;padding-right:var(--container-pad)!important;width:auto!important;max-width:none!important}.h-track>*,.tl-track>*{scroll-snap-align:start}.tl-track--three{clip-path:none;--tl-card-w:clamp(250px, 78vw, 320px);--jc-h:auto}.jc-card{min-height:21rem}.jc-card__desc{-webkit-line-clamp:6;line-clamp:6}.projects-track{--card-w:clamp(250px, 78vw, 320px);padding-top:.5rem}.project-card p{font-size:.88rem!important}.project-filters{scrollbar-width:none;width:auto;margin-left:calc(var(--container-pad) * -1);margin-right:calc(var(--container-pad) * -1);padding:.15rem var(--container-pad);flex-wrap:nowrap;justify-content:flex-start;align-self:stretch;overflow-x:auto}.project-filters::-webkit-scrollbar{display:none}.project-filters button{white-space:nowrap;flex-shrink:0}.carousel-arrows{display:none!important}}@media screen and (max-width:762px),(prefers-reduced-motion:reduce){.preloader{display:none}}@media screen and (min-width:763px) and (pointer:coarse){.panel{overscroll-behavior:contain;touch-action:pan-y;scrollbar-width:none;overflow-y:auto!important}.panel::-webkit-scrollbar{display:none}}@media screen and (max-width:360px){.section-header__row{flex-wrap:wrap}}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#141310;--surface:#1d1c18;--black:#ece8df;--ink-rgb:236 232 223;--on-ink-rgb:20 19 16;--accent-ink:#ff7a3d;--accent-purple:#a872ff;--accent-hover:#fb4e0429;--contact-bg:#f8f6f1;--on-accent:#242424}:where([data-theme=dark]) .btn--primary:hover,:where([data-theme=dark]) .icon-btn:hover:not(:disabled),:where([data-theme=dark]) .ct-channel__link:hover,:where([data-theme=dark]) .ct-channel__link:hover .ct-channel__icon,:where([data-theme=dark]) .ct-channel__link:hover .ct-channel__arrow,:where([data-theme=dark]) .ct-result__check,:where([data-theme=dark]) .po__btn:hover,:where([data-theme=dark]) .social-link--light.social-link--email:hover,:where([data-theme=dark]) .social-link--dark.social-link--email:hover,:where([data-theme=dark]) .ct-btn:not(.ct-btn--ghost){color:var(--on-accent)}:where([data-theme=dark]) .ct-btn:not(.ct-btn--ghost):hover{color:var(--black)}@media (hover:hover){:where([data-theme=dark]) .bubble-btn:hover,:where([data-theme=dark]) .bubble-btn--contact:hover{color:var(--on-accent)}}:where([data-theme=dark]) .btn--primary{color:var(--bg)}:where([data-theme=dark]) .ct-channel__link{background:#ffffff9e}:where([data-theme=dark]) .ct-card{background:#ffffffb8}:where([data-theme=dark]) .bubble-btn--contact{color:rgb(var(--on-ink-rgb))}:where([data-theme=dark]) .social-link--light{border-color:rgb(var(--ink-rgb) / .14)}:where([data-theme=dark]) .social-link--light.social-link--github:hover{background-color:var(--black);color:var(--bg)}:where([data-theme=dark]) .po-backdrop{background:#0009}@media screen and (max-width:762px){:where([data-theme=dark]) .site-header{background:linear-gradient(to bottom, var(--bg) 62%, #14131000)}html[data-header-tone=dark] :where([data-theme=dark]) .site-header{background:linear-gradient(to bottom, var(--contact-bg) 62%, #f8f6f100)}}:where([data-theme=dark]) img[src="/icons/opencode.svg"]{filter:invert(.9)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.fade-up{opacity:1;transform:none}.animate-portrait-rise,.animate-portrait-float{opacity:1;transform:none;animation:none!important}}.nav-list{gap:clamp(.35rem,1.6vh,1.25rem)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
