@font-face{font-family:__geistSans_1e4310;src:url(/_next/static/media/4473ecc91f70f139-s.p.woff) format("woff");font-display:swap;font-weight:100 900}@font-face{font-family:__geistSans_Fallback_1e4310;src:local("Arial");ascent-override:85.83%;descent-override:20.52%;line-gap-override:9.33%;size-adjust:107.19%}.__className_1e4310{font-family:__geistSans_1e4310,__geistSans_Fallback_1e4310}.__variable_1e4310{--font-geist-sans:"__geistSans_1e4310","__geistSans_Fallback_1e4310"}@font-face{font-family:__geistMono_c3aa02;src:url(/_next/static/media/463dafcda517f24f-s.p.woff) format("woff");font-display:swap;font-weight:100 900}@font-face{font-family:__geistMono_Fallback_c3aa02;src:local("Arial");ascent-override:69.97%;descent-override:16.73%;line-gap-override:7.61%;size-adjust:131.49%}.__className_c3aa02{font-family:__geistMono_c3aa02,__geistMono_Fallback_c3aa02}.__variable_c3aa02{--font-geist-mono:"__geistMono_c3aa02","__geistMono_Fallback_c3aa02"}html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent-horizontal],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-property:overflow;transition-duration:1ms;transition-behavior:allow-discrete}*,: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.19 | 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;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]){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::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}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mr-4{margin-right:1rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.grid{display:grid}.h-12{height:3rem}.h-4{height:1rem}.h-6{height:1.5rem}.h-full{height:100%}.w-12{width:3rem}.w-4{width:1rem}.w-6{width:1.5rem}.w-full{width:100%}.max-w-2xl{max-width:42rem}.max-w-xl{max-width:36rem}.grid-cols-2{grid-template-columns:repeat(2,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-between{justify-content:space-between}.gap-6{gap:1.5rem}.gap-x-6{column-gap:1.5rem}.gap-x-8{column-gap:2rem}.gap-y-3{row-gap:.75rem}.space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(2rem * var(--tw-space-x-reverse));margin-left:calc(2rem * calc(1 - var(--tw-space-x-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-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * 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))}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-gray-100{--tw-border-opacity:1;border-color:rgb(243 244 246/var(--tw-border-opacity,1))}.border-gray-400{--tw-border-opacity:1;border-color:rgb(156 163 175/var(--tw-border-opacity,1))}.border-transparent{border-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.object-contain{object-fit:contain}.px-1{padding-left:.25rem;padding-right:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.pb-0\.5{padding-bottom:.125rem}.pb-2{padding-bottom:.5rem}.pb-24{padding-bottom:6rem}.pt-16{padding-top:4rem}.text-left{text-align:left}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.font-medium{font-weight:500}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-widest{letter-spacing:.1em}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.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-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}:root{--background:#fff;--foreground:#111;--muted:#4b5563;--subtle:#6b7280;--faint:#9ca3af;--line:#f3f4f6;--line-strong:#e5e7eb;--panel:#fff;--accent:#49de80;--accent-soft:rgba(73,222,128,.5)}:root.theme-dark{--background:#080808;--foreground:#f5f5f5;--muted:#c7c7c7;--subtle:#9b9b9b;--faint:#737373;--line:#242424;--line-strong:#3a3a3a;--panel:#101010;--accent-soft:rgba(73,222,128,.42)}html{scroll-behavior:smooth}body{color:var(--foreground);background:var(--background);font-family:var(--font-geist-sans),Inter,sans-serif;line-height:1.625;overflow-x:hidden;-webkit-font-smoothing:antialiased}body.has-contact-drawer{overflow:hidden}.opening-loader{position:fixed;inset:0;z-index:100;display:grid;pointer-events:none;background:var(--background);opacity:1;place-items:center;transition:opacity .42s ease,visibility 0s linear .42s}.opening-loader.is-leaving{visibility:hidden;opacity:0}.opening-loader-mark{position:relative;display:grid;width:6.35rem;height:6.35rem;place-items:center}.opening-loader-logo{position:relative;z-index:1;display:block;width:4.75rem;height:4.75rem;opacity:0;transform:translate(.28rem,.35rem) scale(.96);animation:loader-logo-rise .95s cubic-bezier(.22,1,.36,1) .12s forwards}.opening-loader-logo img{width:100%;height:100%;object-fit:contain}.opening-loader-glow{position:absolute;inset:-1.05rem;background:radial-gradient(circle,rgba(73,222,128,.18) 0,rgba(73,222,128,.07) 42%,transparent 70%);opacity:0;transform:scale(.9);animation:loader-glow 1.8s ease forwards}.theme-dark .opening-loader-glow{background:radial-gradient(circle,rgba(73,222,128,.1) 0,rgba(73,222,128,.04) 42%,transparent 70%)}.opening-loader-line{position:absolute;right:auto;top:calc(50% + 3.875rem);left:50%;width:4.75rem;height:1px;overflow:hidden;background:var(--line-strong);opacity:0;transform:translateX(-50%);animation:loader-line-base 1.5s ease .26s forwards}.opening-loader-line:before{position:absolute;inset:0;content:"";background:var(--accent);transform:translateX(-102%);animation:loader-line-pass 1.3s cubic-bezier(.22,1,.36,1) .38s forwards}.opening-loader.is-leaving .opening-loader-mark{transform:translateY(-.25rem);transition:transform .42s cubic-bezier(.22,1,.36,1)}@keyframes loader-logo-rise{0%{opacity:0;transform:translate(.28rem,.35rem) scale(.96)}to{opacity:1;transform:translate(.28rem) scale(1)}}@keyframes loader-glow{0%{opacity:0;transform:scale(.9)}42%{opacity:1}to{opacity:.55;transform:scale(1)}}@keyframes loader-line-base{0%{opacity:0}to{opacity:1}}@keyframes loader-line-pass{0%{transform:translateX(-102%)}to{transform:translateX(102%)}}.bg-white{background:var(--background)}.group:hover .group-hover\:text-gray-900,.hover\:text-gray-900:hover,.text-gray-900{color:var(--foreground)}.theme-dark .group:hover .group-hover\:text-gray-900{color:#d4d4d4}.text-gray-700{color:var(--muted)}.text-gray-500{color:var(--subtle)}.text-gray-400{color:var(--faint)}.border-gray-100{border-color:var(--line)}.border-gray-200,.group:hover .group-hover\:border-gray-200{border-color:var(--line-strong)}.theme-dark .group:hover .group-hover\:border-gray-200{border-color:hsla(0,0%,100%,.16)}.border-gray-400{border-color:var(--faint)}.hover\:border-gray-900:hover{border-color:var(--foreground)}.content-wrapper{max-width:680px;margin:0 auto;padding:0 24px}.site-shell{position:relative;min-height:100vh}.site-sections{display:grid;gap:6rem}.logo-header{margin-bottom:4rem}.footer-bar{margin-top:6rem;padding-top:1.75rem}.theme-logo{position:relative;isolation:isolate}.logo-glow:before{position:absolute;inset:-1.55rem;z-index:0;pointer-events:none;content:"";background:radial-gradient(circle,rgba(73,222,128,.2) 0,rgba(73,222,128,.09) 42%,transparent 74%)}.theme-dark .logo-glow:before{background:radial-gradient(circle,rgba(73,222,128,.08) 0,rgba(73,222,128,.035) 42%,transparent 72%)}.theme-logo-dark,.theme-logo-light{position:relative;z-index:1;transition:opacity .18s ease}.theme-logo-dark{position:absolute;inset:0;opacity:0}.theme-dark .theme-logo-light{opacity:0}.theme-dark .theme-logo-dark{opacity:1}.theme-settings{position:relative}.settings-button{display:grid;width:2.25rem;height:2.25rem;color:var(--subtle);cursor:pointer;background:transparent;border:1px solid transparent;place-items:center;transition:border-color .18s ease,color .18s ease,background .18s ease}.settings-button:hover,.settings-button[aria-expanded=true]{color:var(--foreground);background:var(--panel);border-color:var(--line-strong)}.settings-button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.settings-menu{position:absolute;top:calc(100% + .75rem);right:0;z-index:10;display:grid;gap:.75rem;width:13rem;padding:.85rem;pointer-events:none;background:var(--panel);border:1px solid var(--line-strong);opacity:0;transform:translateY(-.35rem);transition:opacity .18s ease,transform .22s cubic-bezier(.22,1,.36,1)}.settings-menu.is-open{pointer-events:auto;opacity:1;transform:translateY(0)}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}.settings-label{color:var(--muted);font-size:.82rem;line-height:1}.theme-switch{position:relative;width:2.35rem;height:1.25rem;cursor:pointer;background:var(--line-strong);border:1px solid var(--line-strong);transition:background .18s ease,border-color .18s ease}.theme-switch span{position:absolute;top:.16rem;left:.16rem;width:.82rem;height:.82rem;background:var(--background);border:1px solid var(--faint);transition:background .18s ease,border-color .18s ease,transform .22s cubic-bezier(.22,1,.36,1)}.theme-switch[aria-checked=true]{background:var(--foreground);border-color:var(--foreground)}.theme-switch[aria-checked=true] span{background:var(--background);border-color:var(--background);transform:translateX(1.08rem)}.theme-switch:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.language-switch{display:inline-flex;overflow:hidden;border:1px solid var(--line-strong)}.language-option{display:grid;width:2rem;height:1.55rem;color:var(--subtle);cursor:pointer;background:transparent;border:0;place-items:center;transition:background .18s ease,color .18s ease,opacity .18s ease}.language-option+.language-option{border-left:1px solid var(--line-strong)}.language-option span{font-size:.95rem;line-height:1}.language-option[aria-pressed=true]{color:var(--foreground);background:var(--line)}.language-option:hover{opacity:.78}.language-option:focus-visible{position:relative;z-index:1;outline:2px solid var(--accent);outline-offset:-2px}.work-trigger{cursor:pointer;background:transparent;text-align:left;touch-action:manipulation}.work-trigger:focus-visible{outline:2px solid var(--foreground);outline-offset:3px}.work-arrow{flex:0 0 auto;margin-left:.9rem;transform-origin:center;transition:color .18s ease,transform .26s cubic-bezier(.22,1,.36,1)}.work-trigger[aria-expanded=true] .work-arrow{transform:rotate(90deg)}.work-panel{position:relative;display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .32s cubic-bezier(.22,1,.36,1),opacity .22s ease}.work-panel:after{position:absolute;right:0;bottom:0;left:0;height:1px;content:"";background:var(--line);opacity:0;transform:scaleX(.96);transform-origin:left;transition:opacity .22s ease,transform .32s cubic-bezier(.22,1,.36,1)}.work-panel.is-open{grid-template-rows:1fr;opacity:1}.work-panel.is-open:after{opacity:1;transform:scaleX(1)}.work-panel-inner{overflow:hidden}.work-content{padding:1rem 0 1.35rem 5rem}.work-content p{margin:0;color:var(--muted);font-size:.95rem;line-height:1.7;overflow-wrap:anywhere}.work-stack{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.work-stack span{padding:.25rem .45rem;border:1px solid var(--line);color:var(--subtle);font-size:.72rem;line-height:1}.work-links{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem}.work-links a{border-bottom:1px solid var(--line-strong);color:var(--foreground);font-size:.82rem;line-height:1.4;transition:border-color .18s ease,color .18s ease}.work-links a:focus-visible,.work-links a:hover{border-color:var(--foreground)}.work-links a:focus-visible{outline:2px solid var(--foreground);outline-offset:3px}.stack-groups{display:grid;gap:2rem}.stack-group{display:grid;gap:1rem}.stack-group h3{margin:0;color:var(--foreground);font-size:.85rem;font-weight:500}.stack-item{position:relative;display:inline-flex;align-items:center;gap:.55rem;width:100%;cursor:pointer;min-height:2rem;transition:border-color .18s ease,color .18s ease}.stack-item span{overflow-wrap:anywhere}.stack-item:after{position:absolute;right:0;bottom:-1px;left:0;height:1px;content:"";background:var(--foreground);transform:scaleX(0);transform-origin:left;transition:transform .3s cubic-bezier(.22,1,.36,1)}.stack-item:hover{color:var(--foreground);border-color:var(--line-strong)}.theme-dark .stack-item:hover{border-color:hsla(0,0%,100%,.16)}.stack-item:hover:after{transform:scaleX(1)}.theme-dark .stack-item:after{background:hsla(0,0%,100%,.55)}.stack-item:focus-visible{outline:2px solid var(--foreground);outline-offset:3px}.stack-icon{width:1.05rem;height:1.05rem;object-fit:contain;flex:0 0 auto;transition:filter .18s ease,opacity .18s ease}.theme-dark .stack-icon[src$="/express.svg"],.theme-dark .stack-icon[src$="/fastify.svg"],.theme-dark .stack-icon[src$="/framer-motion.svg"],.theme-dark .stack-icon[src$="/mongodb.svg"],.theme-dark .stack-icon[src$="/prisma.svg"],.theme-dark .stack-icon[src$="/radix-ui.svg"],.theme-dark .stack-icon[src$="/rust.svg"],.theme-dark .stack-icon[src$="/socketio.svg"]{filter:invert(1) brightness(1.12);opacity:.9}.link-swipe{position:relative;isolation:isolate}.link-swipe:before{position:absolute;inset:0;z-index:-1;content:"";background:var(--accent-soft);transform:scaleX(0);transform-origin:left;transition:transform .36s cubic-bezier(.22,1,.36,1)}.link-swipe:focus-visible:before,.link-swipe:hover:before{transform:scaleX(1)}.link-swipe:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.discord-widget,.language-option,.link-swipe,.quick-message-footer button,.settings-button,.stack-item,.theme-switch,.work-trigger{-webkit-tap-highlight-color:transparent}.contact-direct{width:100%;margin-top:1.5rem}.contact-or{display:flex;align-items:center;gap:.85rem;width:min(12rem,100%);margin:1.35rem auto;color:var(--faint);font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}.contact-or:after,.contact-or:before{flex:1;height:1px;content:"";background:var(--line)}.discord-widget{display:grid;gap:1rem;width:100%;box-sizing:border-box;padding:1rem;color:inherit;cursor:pointer;background:rgba(88,101,242,.06);border:1px solid rgba(88,101,242,.2);text-align:left;transition:background .18s ease,border-color .18s ease,transform .18s ease}.theme-dark .discord-widget{background:rgba(88,101,242,.1);border-color:rgba(88,101,242,.32)}.discord-widget:hover{background:rgba(88,101,242,.09);border-color:rgba(88,101,242,.34);transform:translateY(-1px)}.theme-dark .discord-widget:hover{background:rgba(88,101,242,.14);border-color:rgba(88,101,242,.42)}.discord-widget:focus-visible{outline:2px solid #5865f2;outline-offset:3px}.discord-status{display:flex;align-items:center;justify-content:space-between;gap:1rem}.discord-identity{display:flex;align-items:center;gap:.7rem;min-width:0}.discord-identity>div{display:grid;gap:.15rem;min-width:0}.discord-logo{width:1.28rem;height:1.28rem;flex:0 0 auto;object-fit:contain}.discord-title,.quick-message-title{color:var(--foreground);font-size:.9rem;font-weight:500;line-height:1.3}.discord-subtitle{color:var(--subtle);font-size:.78rem;line-height:1.4}.discord-chip{display:inline-flex;align-items:center;gap:.4rem;min-width:max-content;padding:.38rem .65rem;color:var(--muted);font-size:.76rem;line-height:1}.discord-chip span{width:.45rem;height:.45rem;background:currentColor}.discord-chip.is-online{color:#22c55e;background:rgba(34,197,94,.1)}.discord-chip.is-online span{background:currentColor}.discord-chip.is-away,.discord-chip.is-idle{color:#f5a524;background:rgba(245,165,36,.1)}.discord-chip.is-away span,.discord-chip.is-idle span{background:currentColor}.discord-chip.is-dnd,.discord-chip.is-offline{color:#f31260;background:rgba(243,18,96,.1)}.discord-chip.is-dnd span,.discord-chip.is-offline span{background:currentColor}.discord-hint{margin:.55rem 0 0;color:var(--subtle);font-size:.76rem;line-height:1.4;text-align:right}.contact-drawer-layer{position:fixed;inset:0;z-index:50;display:flex;align-items:flex-end;justify-content:center;padding:0 1rem max(2.5rem,env(safe-area-inset-bottom));pointer-events:none;visibility:hidden;transition:visibility 0s linear .36s}.contact-drawer-layer.is-open{pointer-events:auto;visibility:visible;transition-delay:0s}.contact-drawer-backdrop{position:absolute;inset:0;cursor:default;background:hsla(0,0%,100%,.68);border:0;opacity:0;transition:opacity .22s ease}.theme-dark .contact-drawer-backdrop{background:rgba(0,0,0,.62)}.contact-drawer-layer.is-open .contact-drawer-backdrop{opacity:1}.quick-message.contact-drawer{position:relative;z-index:1;display:grid;gap:.75rem;width:min(36rem,100%);max-height:min(31rem,calc(100dvh - 2rem));padding:1.1rem 1rem 1rem;margin:0;overflow-y:auto;overscroll-behavior:contain;background:linear-gradient(rgba(88,101,242,.055),rgba(88,101,242,.02)),var(--panel);border:1px solid rgba(88,101,242,.24);opacity:0;transform:translate3d(0,calc(100% + 1.25rem),0);transition:opacity .18s ease,transform .36s cubic-bezier(.22,1,.36,1);will-change:transform}.theme-dark .quick-message.contact-drawer{background:linear-gradient(rgba(88,101,242,.14),rgba(88,101,242,.04)),var(--panel);border-color:rgba(88,101,242,.36)}.contact-drawer-layer.is-open .contact-drawer{opacity:1;transform:translateZ(0)}.contact-drawer-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding-bottom:.25rem}.drawer-discord-title{display:flex;align-items:flex-start;gap:.7rem;min-width:0}.drawer-discord-title>div{display:grid;gap:.35rem;min-width:0}.contact-drawer-header p{max-width:30rem;margin:0;color:var(--subtle);font-size:.82rem;line-height:1.55}.contact-drawer-close{width:1.75rem;height:1.75rem;color:var(--subtle);cursor:pointer;background:transparent;border:1px solid var(--line);line-height:1;transition:border-color .18s ease,color .18s ease}.contact-drawer-close:hover{color:var(--foreground);border-color:var(--line-strong)}.contact-drawer-close:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.quick-message input,.quick-message textarea{width:100%;padding:.72rem 0;color:var(--foreground);font-size:1rem;resize:vertical;background:transparent;border:0;border-bottom:1px solid rgba(88,101,242,.18);border-radius:0;outline:0;transition:border-color .18s ease,color .18s ease}.quick-message textarea{min-height:5.5rem}.quick-message input::placeholder,.quick-message textarea::placeholder{color:var(--faint)}.quick-message input:focus,.quick-message textarea:focus{border-color:#5865f2}.theme-dark .quick-message input:focus,.theme-dark .quick-message textarea:focus{border-color:#aeb7ff}.quick-message-footer{display:flex;align-items:center;gap:.85rem;margin-top:.35rem}.quick-message-footer button{min-height:2.75rem;padding:.48rem .75rem;color:#fff;cursor:pointer;background:#5865f2;border:1px solid #5865f2;transition:background .18s ease,border-color .18s ease,opacity .18s ease,transform .18s ease}.quick-message-footer button:hover{background:#4752c4;border-color:#4752c4;transform:translateY(-1px)}.quick-message-footer button:disabled{cursor:wait;opacity:.58;transform:none}.quick-message-footer button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.message-state{color:var(--subtle);font-size:.78rem;line-height:1.45}.message-state.is-sent{color:#16a34a}.theme-dark .message-state.is-sent{color:#86efac}.message-state.is-error{color:#dc2626}.theme-dark .message-state.is-error{color:#fca5a5}.message-honeypot{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.opening-loader,.opening-loader-glow,.opening-loader-line,.opening-loader-line:before,.opening-loader-logo,.opening-loader-mark{animation-duration:1ms;transition-duration:1ms}.contact-drawer,.contact-drawer-backdrop,.discord-widget,.link-swipe:before,.quick-message-footer button,.work-arrow,.work-panel{transition-duration:1ms}}@media (max-width:640px){.site-shell{padding-top:2.5rem;padding-bottom:4rem}.content-wrapper{max-width:none;padding-right:max(1.15rem,env(safe-area-inset-right));padding-left:max(1.15rem,env(safe-area-inset-left))}.site-sections{gap:4.25rem}.logo-header{margin-bottom:3.25rem}.theme-logo.logo-glow{width:2.75rem;height:2.75rem}.logo-glow:before{inset:-1.15rem}.settings-button{width:2.5rem;height:2.5rem}.settings-menu{top:calc(100% + .6rem);width:min(13rem,calc(100vw - 2.3rem));padding:.8rem}.settings-row{gap:.8rem}.hero-title{margin-bottom:1.35rem;font-size:clamp(2rem,9vw,2.65rem);line-height:1.05}.section-title{margin-bottom:1.4rem;font-size:1.05rem}.body-copy{font-size:1rem;line-height:1.72}.body-copy.space-y-6>:not([hidden])~:not([hidden]){margin-top:1.15rem}.body-copy.space-y-5>:not([hidden])~:not([hidden]){margin-top:1rem}.work-trigger{align-items:flex-start;min-height:3.25rem;padding:.75rem 0}.work-trigger-copy{min-width:0;align-items:flex-start;gap:1rem}.work-trigger-copy.space-x-8>:not([hidden])~:not([hidden]){margin-left:0}.work-year{width:2.65rem;padding-top:.12rem;font-size:.78rem}.work-title{min-width:0;font-size:.98rem;line-height:1.35;overflow-wrap:anywhere}.work-arrow{width:1rem;height:1rem;margin-top:.18rem;margin-left:.8rem}.work-content{padding-left:0;padding-top:.85rem;padding-bottom:1.15rem}.work-content p{font-size:.9rem;line-height:1.68}.work-stack{gap:.42rem;margin-top:.85rem}.work-stack span{padding:.24rem .4rem;font-size:.68rem}.stack-groups{gap:1.8rem}.stack-group{gap:.85rem}.stack-list{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1rem;row-gap:.55rem}.stack-item{min-height:2.35rem;padding-bottom:.55rem;font-size:.86rem}.stack-icon{width:1rem;height:1rem}.contact-direct{margin-top:1.25rem}.contact-or{width:min(9rem,100%);margin:1.15rem auto}.discord-widget{padding:.9rem}.quick-message-footer{align-items:flex-start;flex-direction:column;gap:.8rem}.discord-status{align-items:center;flex-direction:row;gap:.75rem}.discord-identity{min-width:0;flex:1 1 auto}.discord-identity>div,.discord-subtitle,.discord-title{overflow:hidden}.discord-subtitle,.discord-title{display:block;text-overflow:ellipsis;white-space:nowrap}.discord-chip{flex:0 0 auto;padding:.34rem .5rem;font-size:.7rem}.discord-hint{text-align:left}.contact-drawer-layer{padding-right:0;padding-bottom:0;padding-left:0}.quick-message.contact-drawer{width:100%;max-height:min(34rem,calc(100dvh - 4rem));padding:1rem 1rem max(1rem,env(safe-area-inset-bottom));border-right:0;border-bottom:0;border-left:0}.contact-drawer-header{gap:.8rem}.drawer-discord-title{gap:.6rem}.contact-drawer-header p{font-size:.78rem;line-height:1.5}.quick-message input,.quick-message textarea{padding:.78rem 0}.quick-message textarea{min-height:6rem}.quick-message-footer button{width:100%}.message-state{font-size:.76rem}.footer-bar{align-items:center;flex-direction:row;justify-content:space-between;margin-top:4.25rem;padding-top:1.45rem;padding-bottom:max(.5rem,env(safe-area-inset-bottom));gap:.8rem;font-size:.72rem;letter-spacing:.08em}.footer-socials{width:auto;flex:0 1 auto;flex-wrap:nowrap;justify-content:flex-end;gap:.5rem;min-width:0}.footer-socials a{padding:.18rem .1rem;white-space:nowrap}}@media (max-width:380px){.content-wrapper{padding-right:1rem;padding-left:1rem}.site-sections{gap:3.75rem}.logo-header{margin-bottom:2.75rem}.hero-title{font-size:1.85rem}.work-trigger-copy{gap:.75rem}.work-year{width:2.35rem}.quick-message.contact-drawer{max-height:calc(100dvh - 2.75rem)}}.hover\:border-gray-900:hover{--tw-border-opacity:1;border-color:rgb(17 24 39/var(--tw-border-opacity,1))}.hover\:text-gray-900:hover{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.group:hover .group-hover\:border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.group:hover .group-hover\:text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}@media (min-width:640px){.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}}@media (min-width:768px){.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}}