@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/a440747434783fbe-s.bbfb9501.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/3aa4d934eba90e8b-s.a10958ad.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1ce0dcbf49a4d2fc-s.21be8408.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2edaebbda2e96a79-s.b5a15055.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/704a14dc8309e245-s.012a2a26.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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/c88e89b5552bf96c-s.6338e88e.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/234d9015b631dab9-s.p.22219991.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:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_8b4d72df-module__1HxC_G__className{font-family:Inter,Inter Fallback;font-style:normal}.inter_8b4d72df-module__1HxC_G__variable{--font-inter:"Inter","Inter Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/13bf9871fe164e7f-s.f2220059.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/cc545e633e20c56d-s.f6f1950f.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/71b036adf157cdcf-s.bd5f4d11.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/89b21bb081cb7469-s.51c18f09.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:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/3fe682a82f50d426-s.23358719.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.15008bfb.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:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_6b11738f-module__c5tpUG__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_6b11738f-module__c5tpUG__variable{--font-jetbrains-mono:"JetBrains Mono","JetBrains Mono 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-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--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-outline-style:solid;--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-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-content:""}}}@layer theme{:root,:host{--font-sans:var(--font-inter),system-ui,-apple-system,sans-serif;--font-mono:var(--font-jetbrains-mono),ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;--color-red-400:#ff6568;--color-emerald-500:#00bb7f;--color-gray-100:#f3f4f6;--color-zinc-600:#52525c;--color-zinc-800:#27272a;--color-neutral-300:#d4d4d4;--color-neutral-600:#525252;--color-neutral-800:#262626;--color-neutral-950:#0a0a0a;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25/1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--text-7xl:4.5rem;--text-7xl--line-height:1;--text-8xl:6rem;--text-8xl--line-height:1;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--tracking-tight:-.025em;--tracking-wider:.05em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--blur-sm:8px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-inter),system-ui,-apple-system,sans-serif;--default-mono-font-family:var(--font-jetbrains-mono),ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace}@supports (color:lab(0% 0 0)){:root,:host{--color-red-400:lab(63.7053% 60.745 31.3109);--color-emerald-500:lab(66.9756% -58.27 19.5419);--color-gray-100:lab(96.1596% -.0823438 -1.13575);--color-zinc-600:lab(35.1166% 1.78212 -6.1173);--color-zinc-800:lab(15.7305% .613764 -2.16959);--color-neutral-300:lab(84.92% 0 -.0000119209);--color-neutral-600:lab(34.924% 0 0);--color-neutral-800:lab(15.204% 0 -.00000596046);--color-neutral-950:lab(2.75381% 0 0)}}}@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,ui-sans-serif,system-ui,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{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}*{border-color:var(--border)}html{scroll-behavior:smooth}body{background-color:var(--background);color:var(--foreground);font-family:var(--font-sans);font-optical-sizing:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}a{color:inherit;text-decoration:none}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.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}.static{position:static}.inset-0{inset:calc(var(--spacing)*0)}.inset-x-0{inset-inline:calc(var(--spacing)*0)}.inset-x-2\.5{inset-inline:calc(var(--spacing)*2.5)}.inset-y-0{inset-block:calc(var(--spacing)*0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-0{top:calc(var(--spacing)*0)}.top-3{top:calc(var(--spacing)*3)}.top-4{top:calc(var(--spacing)*4)}.top-5{top:calc(var(--spacing)*5)}.top-16{top:calc(var(--spacing)*16)}.right-4{right:calc(var(--spacing)*4)}.bottom-3{bottom:calc(var(--spacing)*3)}.-left-8{left:calc(var(--spacing)*-8)}.left-5{left:calc(var(--spacing)*5)}.left-\[11px\]{left:11px}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.z-\[1\]{z-index:1}.z-\[2\]{z-index:2}.z-\[60\]{z-index:60}.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}}.-m-2{margin:calc(var(--spacing)*-2)}.m-0{margin:calc(var(--spacing)*0)}.mx-auto{margin-inline:auto}.my-3{margin-block:calc(var(--spacing)*3)}.my-4{margin-block:calc(var(--spacing)*4)}.my-auto{margin-block:auto}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-1\.5{margin-top:calc(var(--spacing)*1.5)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-2\.5{margin-top:calc(var(--spacing)*2.5)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-7{margin-top:calc(var(--spacing)*7)}.mt-8{margin-top:calc(var(--spacing)*8)}.mt-11{margin-top:calc(var(--spacing)*11)}.mt-16{margin-top:calc(var(--spacing)*16)}.mt-20{margin-top:calc(var(--spacing)*20)}.mt-24{margin-top:calc(var(--spacing)*24)}.mr-1{margin-right:calc(var(--spacing)*1)}.mr-4{margin-right:calc(var(--spacing)*4)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-5{margin-bottom:calc(var(--spacing)*5)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-4{margin-left:calc(var(--spacing)*4)}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.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}.aspect-square{aspect-ratio:1}.size-1\.5{width:calc(var(--spacing)*1.5);height:calc(var(--spacing)*1.5)}.size-3{width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.size-3\.5{width:calc(var(--spacing)*3.5);height:calc(var(--spacing)*3.5)}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-5{width:calc(var(--spacing)*5);height:calc(var(--spacing)*5)}.size-6{width:calc(var(--spacing)*6);height:calc(var(--spacing)*6)}.size-16{width:calc(var(--spacing)*16);height:calc(var(--spacing)*16)}.size-full{width:100%;height:100%}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-28{height:calc(var(--spacing)*28)}.h-32{height:calc(var(--spacing)*32)}.h-36{height:calc(var(--spacing)*36)}.h-40{height:calc(var(--spacing)*40)}.h-44{height:calc(var(--spacing)*44)}.h-48{height:calc(var(--spacing)*48)}.h-52{height:calc(var(--spacing)*52)}.h-\[2px\]{height:2px}.h-full{height:100%}.h-px{height:1px}.max-h-\[420px\]{max-height:420px}.min-h-screen{min-height:100vh}.w-\[1ch\]{width:1ch}.w-\[70px\]{width:70px}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-\[calc\(100vw-2rem\)\]{max-width:calc(100vw - 2rem)}.max-w-md{max-width:var(--container-md)}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-\[160px\]{min-width:160px}.flex-1{flex:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.scale-90{--tw-scale-x:90%;--tw-scale-y:90%;--tw-scale-z:90%;scale:var(--tw-scale-x)var(--tw-scale-y)}.-rotate-90{rotate:-90deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.resize{resize:both}.scroll-mt-24{scroll-margin-top:calc(var(--spacing)*24)}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-start{justify-content:flex-start}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}.gap-x-3{column-gap:calc(var(--spacing)*3)}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}.gap-y-1{row-gap:calc(var(--spacing)*1)}.self-center{align-self:center}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\[3px\]{border-radius:3px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-b-full{border-bottom-right-radius:3.40282e38px;border-bottom-left-radius:3.40282e38px}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-none{--tw-border-style:none;border-style:none}.border-border{border-color:var(--border)}.border-foreground\/40{border-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.border-foreground\/40{border-color:color-mix(in oklab,var(--foreground)40%,transparent)}}.bg-\[\#28c840\]{background-color:#28c840}.bg-\[\#febc2e\]{background-color:#febc2e}.bg-\[\#ff5f57\]{background-color:#ff5f57}.bg-background,.bg-background\/50{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/50{background-color:color-mix(in oklab,var(--background)50%,transparent)}}.bg-border{background-color:var(--border)}.bg-card,.bg-card\/80{background-color:var(--card)}@supports (color:color-mix(in lab, red, red)){.bg-card\/80{background-color:color-mix(in oklab,var(--card)80%,transparent)}}.bg-current{background-color:currentColor}.bg-foreground\/25{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.bg-foreground\/25{background-color:color-mix(in oklab,var(--foreground)25%,transparent)}}.bg-foreground\/80{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.bg-foreground\/80{background-color:color-mix(in oklab,var(--foreground)80%,transparent)}}.bg-gray-100{background-color:var(--color-gray-100)}.bg-muted,.bg-muted\/50{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/50{background-color:color-mix(in oklab,var(--muted)50%,transparent)}}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\/80{background-color:#fffc}@supports (color:color-mix(in lab, red, red)){.bg-white\/80{background-color:color-mix(in oklab,var(--color-white)80%,transparent)}}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-t{--tw-gradient-position:to top in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-black\/30{--tw-gradient-from:#0000004d}@supports (color:color-mix(in lab, red, red)){.from-black\/30{--tw-gradient-from:color-mix(in oklab,var(--color-black)30%,transparent)}}.from-black\/30{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-black\/40{--tw-gradient-from:#0006}@supports (color:color-mix(in lab, red, red)){.from-black\/40{--tw-gradient-from:color-mix(in oklab,var(--color-black)40%,transparent)}}.from-black\/40{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.stroke-border{stroke:var(--border)}.stroke-foreground{stroke:var(--foreground)}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-1\.5{padding:calc(var(--spacing)*1.5)}.p-2{padding:calc(var(--spacing)*2)}.p-3\.5{padding:calc(var(--spacing)*3.5)}.p-4{padding:calc(var(--spacing)*4)}.p-5{padding:calc(var(--spacing)*5)}.px-1\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-3\.5{padding-inline:calc(var(--spacing)*3.5)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-5{padding-inline:calc(var(--spacing)*5)}.py-0{padding-block:calc(var(--spacing)*0)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-8{padding-block:calc(var(--spacing)*8)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-8{padding-top:calc(var(--spacing)*8)}.pt-10{padding-top:calc(var(--spacing)*10)}.pt-16{padding-top:calc(var(--spacing)*16)}.pr-\[1ch\]{padding-right:1ch}.pb-16{padding-bottom:calc(var(--spacing)*16)}.pl-0{padding-left:calc(var(--spacing)*0)}.pl-8{padding-left:calc(var(--spacing)*8)}.text-center{text-align:center}.text-left{text-align:left}.align-\[-0\.2em\]{vertical-align:-.2em}.font-mono{font-family:var(--font-jetbrains-mono),ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-7xl{font-size:var(--text-7xl);line-height:var(--tw-leading,var(--text-7xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.85em\]{font-size:.85em}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.2em\]{--tw-tracking:.2em;letter-spacing:.2em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.text-black{color:var(--color-black)}.text-border{color:var(--border)}.text-emerald-500{color:var(--color-emerald-500)}.text-foreground{color:var(--foreground)}.text-neutral-600{color:var(--color-neutral-600)}.text-red-400{color:var(--color-red-400)}.text-secondary-ink{color:var(--secondary-ink)}.text-zinc-600{color:var(--color-zinc-600)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.opacity-0{opacity:0}.opacity-15{opacity:.15}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_24px_rgba\(34\,_42\,_53\,_0\.06\)\,_0_1px_1px_rgba\(0\,_0\,_0\,_0\.05\)\,_0_0_0_1px_rgba\(34\,_42\,_53\,_0\.04\)\,_0_0_4px_rgba\(34\,_42\,_53\,_0\.08\)\,_0_16px_68px_rgba\(47\,_48\,_55\,_0\.05\)\,_0_1px_0_rgba\(255\,_255\,_255\,_0\.1\)_inset\]{--tw-shadow:0 0 24px var(--tw-shadow-color,#222a350f),0 1px 1px var(--tw-shadow-color,#0000000d),0 0 0 1px var(--tw-shadow-color,#222a350a),0 0 4px var(--tw-shadow-color,#222a3514),0 16px 68px var(--tw-shadow-color,#2f30370d),0 1px 0 var(--tw-shadow-color,#ffffff1a)inset;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.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)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,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-\[background\,box-shadow\]{transition-property:background,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,background-color\,border-color\]{transition-property:color,background-color,border-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[transform\,background-color\,opacity\,filter\]{transition-property:transform,background-color,opacity,filter;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))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.will-change-transform{will-change:transform}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.ring-inset{--tw-ring-inset:inset}@media (hover:hover){.group-hover\:translate-x-0\.5:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:scale-105:is(:where(.group):hover *){--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\:text-foreground:is(:where(.group):hover *){color:var(--foreground)}.group-hover\/card\:scale-110:is(:where(.group\/card):hover *){--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\/card\:text-foreground:is(:where(.group\/card):hover *){color:var(--foreground)}.group-hover\/card\:opacity-100:is(:where(.group\/card):hover *){opacity:1}}.after\:inline-block:after{content:var(--tw-content);display:inline-block}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}@media (hover:hover){.hover\:-translate-y-0\.5:hover{--tw-translate-y:calc(var(--spacing)*-.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:border-foreground\/20:hover{border-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.hover\:border-foreground\/20:hover{border-color:color-mix(in oklab,var(--foreground)20%,transparent)}}.hover\:border-foreground\/30:hover{border-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.hover\:border-foreground\/30:hover{border-color:color-mix(in oklab,var(--foreground)30%,transparent)}}.hover\:bg-foreground\/\[0\.03\]:hover{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-foreground\/\[0\.03\]:hover{background-color:color-mix(in oklab,var(--foreground)3%,transparent)}}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-muted:hover{background-color:var(--muted)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-zinc-800:hover{color:var(--color-zinc-800)}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + 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)}.focus-visible\:ring-foreground\/70:focus-visible{--tw-ring-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-foreground\/70:focus-visible{--tw-ring-color:color-mix(in oklab,var(--foreground)70%,transparent)}}.focus-visible\:ring-inset:focus-visible{--tw-ring-inset:inset}@media (min-width:40rem){.sm\:size-7{width:calc(var(--spacing)*7);height:calc(var(--spacing)*7)}.sm\:h-56{height:calc(var(--spacing)*56)}.sm\:w-\[78px\]{width:78px}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:gap-2{gap:calc(var(--spacing)*2)}.sm\:p-6{padding:calc(var(--spacing)*6)}.sm\:px-6{padding-inline:calc(var(--spacing)*6)}.sm\:px-8{padding-inline:calc(var(--spacing)*8)}.sm\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.sm\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.sm\:text-8xl{font-size:var(--text-8xl);line-height:var(--tw-leading,var(--text-8xl--line-height))}.sm\:text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}}@media (min-width:48rem){.md\:h-72{height:calc(var(--spacing)*72)}.md\:px-12{padding-inline:calc(var(--spacing)*12)}.md\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}}@media (min-width:64rem){.lg\:block{display:block}.lg\:flex{display:flex}.lg\:hidden{display:none}:where(.lg\:space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}}.dark\:bg-neutral-800:is(.dark *){background-color:var(--color-neutral-800)}.dark\:bg-neutral-950:is(.dark *){background-color:var(--color-neutral-950)}.dark\:bg-neutral-950\/80:is(.dark *){background-color:#0a0a0acc}@supports (color:color-mix(in lab, red, red)){.dark\:bg-neutral-950\/80:is(.dark *){background-color:color-mix(in oklab,var(--color-neutral-950)80%,transparent)}}.dark\:bg-transparent:is(.dark *){background-color:#0000}.dark\:text-neutral-300:is(.dark *){color:var(--color-neutral-300)}.dark\:text-white:is(.dark *){color:var(--color-white)}@media (hover:hover){.dark\:hover\:bg-neutral-800:is(.dark *):hover{background-color:var(--color-neutral-800)}}}:root{--background:#fff;--foreground:#0a0a0a;--card:#fff;--card-foreground:#0a0a0a;--primary:#171717;--primary-foreground:#fafafa;--muted:#f5f5f5;--muted-foreground:#737373;--border:#e5e5e5;--accent:#f5f5f5;--accent-foreground:#171717;--lab-dim:#6e6e70;--lab-2:#5f5f61;--ok:#16a34a;--ok-ink:#15803d;--err:#dc2626;--dotgrid:#0001;--ph:#6e6e70;--secondary-ink:#6e6e70}.dark{--background:#0a0a0a;--foreground:#fafafa;--card:#171717;--card-foreground:#fafafa;--primary:#e5e5e5;--primary-foreground:#171717;--muted:#262626;--muted-foreground:#a3a3a3;--border:#ffffff1a;--accent:#262626;--accent-foreground:#fafafa;--lab-dim:#8b8b8d;--lab-2:#a5a5a7;--ok:#4ade80;--ok-ink:#4ade80;--err:#f87171;--dotgrid:#ffffff12;--ph:#8b8b8d;--secondary-ink:#909092}.text-secondary{color:var(--secondary-ink)}.mono{font-family:var(--font-mono)}@keyframes fadeInBlur{0%{opacity:0;filter:blur(8px);transform:translateY(8px)}to{opacity:1;filter:blur();transform:translateY(0)}}.animate-fade-in-blur{opacity:0;animation:.6s ease-out forwards fadeInBlur}.animate-delay-1{animation-delay:.1s}.animate-delay-2{animation-delay:.2s}.animate-delay-3{animation-delay:.3s}.animate-delay-4{animation-delay:.4s}.animate-delay-5{animation-delay:.5s}.animate-delay-6{animation-delay:.6s}.cv-auto,#skills,#experience,#projects,#blogs,#contact{content-visibility:auto;contain-intrinsic-size:auto 600px}#contact{contain-intrinsic-size:auto 1480px}.skill-inner-shadow{box-shadow:inset 0 1px 2px #00000014,inset 0 1px 4px #0000000a}.dark .skill-inner-shadow{box-shadow:inset 0 1px 2px #ffffff0f,inset 0 1px 4px #ffffff08}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#d4d4d4;border-radius:3px}.dark ::-webkit-scrollbar-thumb{background:#404040}@keyframes gradientShift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.title-gradient{-webkit-text-fill-color:transparent;background:linear-gradient(90deg,#1e293b,#0f172a,#334155,#1e293b) 0 0/200%;-webkit-background-clip:text;background-clip:text;animation:3s linear infinite gradientShift}.dark .title-gradient{-webkit-text-fill-color:transparent;background:linear-gradient(90deg,#e2e8f0,#94a3b8,#cbd5e1,#e2e8f0) 0 0/200%;-webkit-background-clip:text;background-clip:text;animation:3s linear infinite gradientShift}@keyframes pawWiggle{0%,to{transform:rotate(0)scale(1)}20%{transform:rotate(-16deg)scale(1.08)}50%{transform:rotate(12deg)scale(1.1)}80%{transform:rotate(-6deg)scale(1.04)}}@keyframes pawPounce{0%{transform:scale(1)}40%{transform:scale(1.4)rotate(-10deg)}70%{transform:scale(.92)rotate(4deg)}to{transform:scale(1)}}@keyframes pawGlow{0%,to{filter:drop-shadow(0 0 1px #f59e0b40)}50%{filter:drop-shadow(0 0 7px #f59e0bcc)}}.paw{will-change:transform;transition:transform .25s,color .3s;display:inline-flex}.paw-btn:hover .paw{animation:.55s pawWiggle}.paw-btn:active .paw{animation:.32s pawPounce}.paw-btn.on .paw{color:#f59e0b;animation:2.4s ease-in-out infinite pawGlow}.paw-btn.on:hover .paw{animation:.55s pawWiggle}.hero{flex-direction:column;min-height:82svh;display:flex;position:relative;overflow:hidden}.hero .hcontainer{flex-direction:column;flex:1;justify-content:center;width:100%;max-width:48rem;margin:0 auto;padding:6.5rem 1rem 2rem;display:flex;position:relative}@media (min-width:640px){.hero .hcontainer{padding-left:1.5rem;padding-right:1.5rem}}.toprow{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.topright{flex-direction:column;align-items:flex-end;gap:.55rem;display:flex}@media (max-width:640px){.topright{align-items:flex-start}}.loc-line{letter-spacing:.18em;text-transform:uppercase;color:var(--secondary-ink);align-items:center;gap:5px;font-size:11px;display:inline-flex}.loc-line svg{flex:none;width:12px;height:12px}.avail{letter-spacing:.22em;text-transform:uppercase;color:var(--secondary-ink);align-items:center;gap:.65rem;font-size:11px;display:inline-flex}.avail i{background:var(--avail-dot,var(--foreground));border-radius:9999px;flex:none;width:7px;height:7px;position:relative}.avail.still i:after{display:none}.avail i:after{content:"";border-radius:inherit;background:inherit;animation:2.6s cubic-bezier(0,0,.2,1) infinite heroPing;position:absolute;inset:0}@keyframes heroPing{0%{opacity:.6;transform:scale(1)}70%,to{opacity:0;transform:scale(3.2)}}.socs{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.soc{border:1px solid var(--border);background:var(--background);border-radius:9999px;align-items:center;height:36px;padding:0 10px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.soc{background:color-mix(in srgb,var(--background)60%,transparent)}}.soc{color:var(--secondary-ink);transition:color .45s cubic-bezier(.4,0,.2,1),border-color .45s cubic-bezier(.4,0,.2,1)}.soc:hover{color:var(--foreground);border-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.soc:hover{border-color:color-mix(in srgb,var(--foreground)25%,transparent)}}.soc svg{width:16px;height:16px}.soc .lbl{white-space:nowrap;text-transform:lowercase;opacity:0;max-width:0;font-size:11px;transition:max-width .8s cubic-bezier(.4,0,.2,1),padding .8s cubic-bezier(.4,0,.2,1),opacity .2s;overflow:hidden}.soc:hover .lbl{opacity:1;max-width:6rem;padding-left:6px;transition:max-width .8s cubic-bezier(.4,0,.2,1),padding .8s cubic-bezier(.4,0,.2,1),opacity .45s .15s}.namewrap{margin-top:2.75rem;position:relative}.hero h1{text-transform:uppercase;letter-spacing:-.035em;cursor:default;-webkit-user-select:none;user-select:none;margin:0;font-size:clamp(2.9rem,12.5vw,6.4rem);font-weight:900;line-height:.98}.hero h1 .dot{color:var(--secondary-ink)}.peek{aspect-ratio:4/5;object-fit:cover;border:1px solid var(--border);opacity:0;pointer-events:none;z-index:5;will-change:transform,opacity;background:var(--muted);border-radius:14px;width:clamp(120px,15vw,164px);height:auto;transition:opacity .28s;position:absolute;top:0;left:0;box-shadow:0 18px 44px -14px #0006}.peek.on{opacity:1}.peek-hint{display:none}@media (hover:hover) and (pointer:fine){.peek-hint{color:var(--secondary-ink);letter-spacing:.08em;margin-left:.75rem;font-size:11px;display:inline}}.peek-stack{height:114px;margin:2rem 0 -.5rem;display:none;position:relative}.peek-stack img{object-fit:cover;border:1px solid var(--border);background:var(--muted);border-radius:12px;width:86px;height:104px;position:absolute;top:0;box-shadow:0 10px 24px -10px #00000059}.peek-stack img:first-child{z-index:1;left:0;transform:rotate(-6deg)}.peek-stack img:nth-child(2){z-index:3;left:62px;transform:rotate(3deg)translateY(-4px)}.peek-stack img:nth-child(3){z-index:2;left:124px;transform:rotate(-2deg)}html.no-peek .peek,html.no-peek .peek-hint{display:none}html.no-peek .peek-stack{display:block}@media (hover:none),(pointer:coarse){.peek-stack{display:block}.peek{display:none}}.roleline{align-items:center;gap:.75rem;margin:1.5rem 0 0;font-size:1.05rem;font-weight:500;display:flex}.roleline .slash{-webkit-user-select:none;user-select:none;color:var(--secondary-ink)}@media (max-width:640px){.roleline{font-size:1rem}}.caret{background:var(--foreground);opacity:.85;width:.52em;height:1.05em;animation:1.1s step-end infinite heroCaret;display:inline-block;transform:translateY(.12em)}@keyframes heroCaret{50%{opacity:0}}.roleword{transition:opacity .4s ease-in-out,filter .4s ease-in-out,transform .4s ease-in-out;display:inline-block}.roleword.is-out{opacity:0;filter:blur(6px);transform:translateY(-.5rem)}.intro{max-width:42rem;color:var(--secondary-ink);margin:1.75rem 0 0;font-size:1.06rem;line-height:2}.chip{border:1px dashed var(--border);background:var(--muted);height:28px;color:var(--foreground);vertical-align:middle;cursor:default;border-radius:.5rem;align-items:center;gap:6px;padding:0 10px;font-size:.875rem;font-weight:500;transition:transform .2s,border-color .2s;display:inline-flex}.chip:hover{border-color:var(--foreground);transform:translateY(-2px)}@supports (color:color-mix(in lab, red, red)){.chip:hover{border-color:color-mix(in srgb,var(--foreground)30%,transparent)}}.chip .ci{flex-shrink:0;width:16px;height:16px;display:inline-flex}.chip .ci svg{width:100%;height:100%}.voice{max-width:42rem;color:var(--secondary-ink);margin:.9rem 0 0;font-size:.95rem;font-style:italic}.heropills{flex-wrap:wrap;gap:.55rem;margin-top:1.5rem;display:flex}.heropills .chip{font-family:var(--font-mono);font-size:.8rem}.chip-more{color:var(--secondary-ink);cursor:pointer;background:0 0;border-style:solid}.chip-more:hover{color:var(--foreground)}.actions{flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.btn{cursor:pointer;border-radius:.5rem;align-items:center;gap:.5rem;padding:.625rem 1.25rem;font-size:.875rem;font-weight:500;transition:background-color .2s,transform .2s,border-color .2s,opacity .2s;display:inline-flex}.btn:hover{transform:translateY(-2px)}.btn:active{transform:translateY(0)}.btn svg{width:16px;height:16px;transition:transform .28s cubic-bezier(.34,1.4,.44,1)}.btn-ghost{border:1px solid var(--border);background:var(--background)}.btn-ghost:hover{background:var(--muted)}.btn-ghost:hover svg{transform:rotate(-6deg)}.btn-solid{background:var(--foreground);color:var(--background);border:none}.btn-solid:hover{opacity:.9}.btn-solid:hover svg{transform:translate(4px)}.cue{color:var(--secondary-ink);flex-direction:column;align-self:center;align-items:center;gap:7px;padding:0 14px 1.35rem;transition:color .25s;display:flex}.cue:hover{color:var(--foreground)}.cue i{opacity:var(--o);line-height:0;display:block}.cue svg{width:13px;height:13px;display:block}.cue i:first-child{--o:.3;transform:translate(-6px)rotate(-14deg)}.cue i:nth-child(2){--o:.55;transform:translate(6px)rotate(12deg)}.cue i:nth-child(3){--o:.85;transform:translate(-4px)rotate(-8deg)}@keyframes pawStep{0%,55%,to{opacity:var(--o)}18%{opacity:1}}.cue i{animation:2.6s ease-in-out infinite pawStep}.cue i:nth-child(2){animation-delay:.35s}.cue i:nth-child(3){animation-delay:.7s}#bridge{margin-top:2.5rem}.cw{color:var(--secondary-ink);align-items:center;gap:1rem;display:flex}.cw:before,.cw:after{content:"";border-top:1px solid var(--border);flex:1}.cw .cat,.cw .dot{letter-spacing:.05em;-webkit-user-select:none;user-select:none;font-size:13px;line-height:1;transform:translateY(-1px)}.cw .cat{display:none}body.cat-on .cw .cat{display:inline-block}body.cat-on .cw .dot{display:none}@media (hover:hover){.cw:hover .cat{animation:.55s pawWiggle}}.xp-list{flex-direction:column;gap:2.25rem;margin-top:1.5rem;padding-left:1.75rem;display:flex;position:relative}.xp-rail{background:var(--border);width:1px;position:absolute;top:10px;bottom:10px;left:5px}.xp-card{position:relative}.xp-card:before{content:"";pointer-events:none;background:radial-gradient(480px circle at var(--mx,50%)var(--my,50%),var(--foreground),transparent 45%);border-radius:16px;position:absolute;inset:-.7rem -1rem}@supports (color:color-mix(in lab, red, red)){.xp-card:before{background:radial-gradient(480px circle at var(--mx,50%)var(--my,50%),color-mix(in srgb,var(--foreground)3.5%,transparent),transparent 45%)}}.xp-card:before{opacity:0;transition:opacity .35s}@media (hover:hover){.xp-card{transition:opacity .3s}.xp-card:hover:before{opacity:1}.xp-list:has(.xp-card:hover) .xp-card:not(:hover){opacity:.5}.xp-node{transition:transform .25s}.xp-card:hover .xp-node{transform:scale(1.35)}}.xp-node{background:var(--background);border:1.5px solid var(--foreground);border-radius:9999px;width:9px;height:9px;position:absolute;top:7px;left:calc(1px - 1.75rem)}@supports (color:color-mix(in lab, red, red)){.xp-node{border:1.5px solid color-mix(in srgb,var(--foreground)55%,transparent)}}.xp-node.live{border-color:#22c55e}.xp-node.live:after{content:"";border-radius:inherit;border:1.5px solid #22c55e;animation:2.2s cubic-bezier(0,0,.2,1) infinite xpPing;position:absolute;inset:-1.5px}@keyframes xpPing{0%{opacity:.9;transform:scale(1)}75%,to{opacity:0;transform:scale(2.4)}}.xp-top{flex-direction:column;gap:.5rem;display:flex}@media (min-width:640px){.xp-top{flex-direction:row;justify-content:space-between}}.xp-co{align-items:center;gap:.5rem;display:flex}.xp-co img{object-fit:contain;border-radius:4px;flex-shrink:0;width:24px;height:24px}.xp-co a,.xp-co .xp-name{font-size:1.125rem;font-weight:700}.xp-co .xp-name{margin:0}.xp-co a:hover{text-underline-offset:4px;text-decoration:underline}.xp-cur{color:#16a34a;background:#22c55e1a;border-radius:6px;align-items:center;gap:4px;padding:2px 8px;font-size:.75rem;display:inline-flex}.dark .xp-cur{color:#4ade80}.xp-cur i{background:#22c55e;border-radius:9999px;width:6px;height:6px;animation:2s cubic-bezier(.4,0,.6,1) infinite pingPulse}@keyframes pingPulse{0%,to{opacity:1}50%{opacity:.4}}.xp-pos{color:var(--secondary-ink);margin:2px 0 0;font-size:.875rem}.xp-when{color:var(--secondary-ink);flex-direction:column;flex-shrink:0;gap:4px;font-size:.875rem;display:flex}@media (min-width:640px){.xp-when{text-align:right;align-items:flex-end}}.xp-when .dates{font-family:var(--font-mono);letter-spacing:.01em;align-items:center;gap:.5rem;font-size:.72rem;display:inline-flex}.xp-dur{letter-spacing:.04em;border:1px dashed var(--border);color:var(--secondary-ink);white-space:nowrap;border-radius:9999px;padding:2px 8px;font-size:.7rem}.xp-when .loc{align-items:center;gap:4px;display:inline-flex}.xp-when svg{width:12px;height:12px}.xp-log{flex-direction:column;gap:.75rem;margin:1rem 0 0;padding:0;font-size:.875rem;line-height:1.65;list-style:none;display:flex}.xp-log li{grid-template-columns:24px 1fr;column-gap:.7rem;display:grid}.xp-ln{-webkit-user-select:none;user-select:none;justify-content:flex-end;align-items:center;height:1.65em;line-height:1;display:flex}.xp-ln:after{content:"—";font-family:var(--font-mono);color:var(--secondary-ink);font-size:.72rem;line-height:1;display:inline-block}@supports (color:color-mix(in lab, red, red)){.xp-ln:after{color:color-mix(in srgb,var(--secondary-ink)62%,transparent)}}.xp-ln:after{transition:color .2s}.xp-log li>span:last-child{color:var(--secondary-ink);transition:transform .2s}.xp-log b{color:var(--foreground);font-weight:500}@media (hover:hover){.xp-log li:hover .xp-ln:after{color:var(--foreground)}.xp-log li:hover>span:last-child{transform:translate(2px)}}.xp-metric{font-style:normal;font-weight:500;font-family:var(--font-mono);color:var(--foreground);letter-spacing:-.01em;font-size:.94em}.xp-card .xp-log li{opacity:0;filter:blur(4px);transform:translateY(6px)}@media (scripting:none){.js-reveal,.xp-card .xp-log li,.xp-fold .xp-log li{opacity:1!important;filter:none!important;transform:none!important}.xp-fold{grid-template-rows:1fr}.xp-veil,.xp-more{display:none!important}#contact .scope,#contact .car-wave,#contact .ct-now{display:none}#contact .car-btn{cursor:text}#contact .tx-btn{display:none!important}}.xp-card.in .xp-log li{opacity:1;filter:blur();transition:opacity .45s,transform .45s,filter .45s;transition-delay:calc(var(--i)*60ms);transform:none}.xp-fold{grid-template-rows:0fr;transition:grid-template-rows .45s cubic-bezier(.4,0,.2,1);display:grid}.xp-fold>div{min-height:0;overflow:hidden}.xp-fold .xp-log{margin-top:.75rem}.xp-card.open .xp-fold{grid-template-rows:1fr}.xp-fold .xp-log li{opacity:0;filter:blur(4px);transition:none;transform:translateY(6px)}.xp-card.open .xp-fold .xp-log li{opacity:1;filter:blur();transition:opacity .4s,transform .4s,filter .4s;transition-delay:calc(.12s + var(--i)*50ms);transform:none}.xp-veil{pointer-events:none;background:linear-gradient(to bottom,transparent 0%,var(--background)62%,var(--background)100%);height:30px;margin-top:-30px;position:relative}@supports (color:color-mix(in lab, red, red)){.xp-veil{background:linear-gradient(to bottom,transparent 0%,color-mix(in srgb,var(--background)82%,transparent)62%,var(--background)100%)}}.xp-veil{opacity:1;transition:opacity .3s}.xp-card.open .xp-veil{opacity:0}.xp-more{width:100%;font-family:var(--font-mono);letter-spacing:.12em;color:var(--secondary-ink);cursor:pointer;background:0 0;border:0;align-items:center;gap:.9rem;margin:.55rem 0 0;padding:8px 0;font-size:.7rem;transition:color .25s;display:flex}.xp-more:before,.xp-more:after{content:"";background:var(--border);flex:1;height:1px;transition:background .25s}.xp-more .lbl{align-items:center;gap:.55ch;display:inline-flex}.xp-more svg{width:12px;height:12px;transition:transform .3s}.xp-more:hover{color:var(--foreground)}.xp-more:hover:before,.xp-more:hover:after{background:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.xp-more:hover:before,.xp-more:hover:after{background:color-mix(in srgb,var(--foreground)25%,transparent)}}.xp-more:focus-visible{outline:2px solid var(--foreground)}@supports (color:color-mix(in lab, red, red)){.xp-more:focus-visible{outline:2px solid color-mix(in srgb,var(--foreground)70%,transparent)}}.xp-more:focus-visible{outline-offset:2px;border-radius:4px}.xp-card.open .xp-more svg{transform:rotate(180deg)}.bullets{flex-direction:column;gap:.75rem;margin:1rem 0 0;padding:0;font-size:.875rem;line-height:1.65;list-style:none;display:flex}.bullets li{gap:.75rem;display:flex}.bullets li i{background:var(--foreground);border-radius:9999px;flex-shrink:0;width:6px;height:6px;margin-top:8px}@supports (color:color-mix(in lab, red, red)){.bullets li i{background:color-mix(in srgb,var(--foreground)40%,transparent)}}.bullets li span{color:var(--secondary-ink)}.bullets li b{color:var(--foreground);font-weight:500}.xp-badges{flex-wrap:wrap;gap:.35rem;margin-top:.8rem;display:flex}.xp-badges .badge{gap:5px;padding:2px 9px;font-size:.72rem}.xp-badges .badge .bi{width:12px;height:12px}.badge{border:1px solid var(--border);background:var(--muted);border-radius:9999px;align-items:center;gap:6px;padding:3px 10px;font-size:.78rem;transition:transform .2s;display:inline-flex}.badge:hover{transform:scale(1.05)}.badge .bi{flex-shrink:0;width:13px;height:13px;display:inline-flex}.badge .bi svg{width:100%;height:100%}.pj-note{color:var(--secondary-ink);margin:.6rem 0 0}#projects.pj-v1 .pj-note{max-width:52ch;font-size:.875rem;line-height:1.6}#projects.pj-v2 .pj-note{margin-top:.7rem;font-size:.78rem}#projects.pj-v2 .pj-note .mono{font-size:.72rem}.pj-dot{background:var(--ok);border-radius:50%;flex-shrink:0;width:6px;height:6px;position:relative}.pj-dot:after{content:"";border:1px solid var(--ok);opacity:0;border-radius:50%;animation:2.2s cubic-bezier(0,0,.2,1) infinite pjPing;position:absolute;inset:-3px}@keyframes pjPing{0%{opacity:.7;transform:scale(.6)}70%,to{opacity:0;transform:scale(1.6)}}.pj-fold{grid-template-rows:0fr;min-height:0;transition:grid-template-rows .525s cubic-bezier(.22,1,.36,1);display:grid}.pj-fold>div{min-height:0;overflow:hidden}.pj-fold.open{grid-template-rows:1fr}.pj-more svg{transition:transform .3s}.pj-more.open svg{transform:rotate(180deg)}#projects.pj-v2 .pj-more{margin-top:1.6rem}.pj-div{font-family:var(--font-mono);color:var(--secondary-ink);letter-spacing:.25em;text-transform:uppercase;align-items:center;gap:1rem;font-size:10px;display:flex}.pj-div:after{content:"";background:var(--border);flex:1;height:1px}#projects.pj-v1 .pj-div{padding:1.5rem 0 .5rem}#projects.pj-v2 .pj-div{margin:.4rem 0 1.4rem}#projects.pj-v2 .pj-div:before{content:"";background:var(--border);flex:1;height:1px}.rv-stagger li{opacity:0;transition:opacity .4s,transform .4s;transform:translateY(6px)}@media (scripting:none){.pj-more{display:none!important}#projects.pj-v2 .pjb-entry{opacity:1;filter:none;transform:none}}#projects.pj-v1 .pj-list{border-bottom:1px solid var(--border);flex-direction:column;margin-top:2.4rem;display:flex}#projects.pj-v1 .pj-row{border-top:1px solid var(--border);grid-template-columns:3.4rem minmax(0,252px) minmax(0,1fr);align-items:start;gap:1.4rem;padding:2rem .25rem 2rem 1rem;transition:opacity .35s;display:grid;position:relative}#projects.pj-v1 .pj-row.expand{cursor:pointer}#projects.pj-v1 .pj-row:before{content:"";background:var(--foreground);transform-origin:top;width:2px;transition:transform .5s cubic-bezier(.22,1,.36,1);position:absolute;top:1.9rem;bottom:1.9rem;left:0;transform:scaleY(0)}#projects.pj-v1 .pj-row.open:before,#projects.pj-v1 .pj-row.expand:focus-within:before{transform:scaleY(1)}@media (hover:hover){#projects.pj-v1 .pj-row:hover:before{transform:scaleY(1)}#projects.pj-v1:has(.pj-row:hover) .pj-row:not(:hover){opacity:.38}}#projects.pj-v1 .pj-fold-list{border-bottom:1px solid var(--border)}#projects.pj-v1 .pj-idx{font-family:var(--font-mono);color:var(--secondary-ink);letter-spacing:.05em;padding-top:.35rem;font-size:.8rem;transition:color .3s}#projects.pj-v1 .pj-row:hover .pj-idx,#projects.pj-v1 .pj-row.open .pj-idx{color:var(--foreground)}#projects.pj-v1 .pj-media{aspect-ratio:16/10;background:var(--muted);border-radius:.6rem;display:block;position:relative;overflow:hidden}#projects.pj-v1 .pj-media:after{content:"";border:1px solid var(--border);border-radius:inherit;pointer-events:none;transition:border-color .35s;position:absolute;inset:0}#projects.pj-v1 .pj-media img{object-fit:cover;object-position:top;filter:saturate(.9)brightness(.96);width:100%;height:100%;transition:transform .65s cubic-bezier(.25,.46,.45,.94),filter .5s;display:block}#projects.pj-v1 .pj-row:hover .pj-media img,#projects.pj-v1 .pj-row:focus-within .pj-media img{filter:none;transform:scale(1.045)}#projects.pj-v1 .pj-row:hover .pj-media:after{border-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){#projects.pj-v1 .pj-row:hover .pj-media:after{border-color:color-mix(in srgb,var(--foreground)26%,transparent)}}#projects.pj-v1 .pj-head{align-items:center;gap:.55rem;min-width:0;display:flex}#projects.pj-v1 .pj-head .pl{object-fit:contain;border-radius:4px;flex-shrink:0;width:auto;max-width:40px;height:20px}#projects.pj-v1 .pj-title{letter-spacing:-.02em;align-items:center;gap:.45rem;font-size:1.3rem;font-weight:680;line-height:1.2;display:inline-flex;position:relative}#projects.pj-v1 .pj-title:after{content:"";transform-origin:0;background:currentColor;height:1px;transition:transform .45s cubic-bezier(.22,1,.36,1);position:absolute;bottom:-4px;left:0;right:1.35rem;transform:scaleX(0)}#projects.pj-v1 .pj-row:hover .pj-title:after,#projects.pj-v1 .pj-title:focus-visible:after{transform:scaleX(1)}#projects.pj-v1 .pj-title svg{width:15px;height:15px;color:var(--secondary-ink);flex-shrink:0;transition:transform .25s,color .25s}#projects.pj-v1 .pj-row:hover .pj-title svg{color:var(--foreground);transform:translate(3px,-3px)}#projects.pj-v1 .pj-hint{letter-spacing:.18em;text-transform:uppercase;color:var(--secondary-ink);opacity:0;pointer-events:none;white-space:nowrap;margin-left:auto;font-size:10px;transition:opacity .3s}@media (hover:hover){#projects.pj-v1 .pj-row:hover .pj-hint{opacity:.9}}#projects.pj-v1 .pj-row.open .pj-hint{opacity:0!important}#projects.pj-v1 .pj-sum{color:var(--secondary-ink);max-width:58ch;margin:.55rem 0 0;font-size:.885rem;line-height:1.65}#projects.pj-v1 .pj-x{grid-template-rows:0fr;transition:grid-template-rows .525s cubic-bezier(.22,1,.36,1);display:grid}#projects.pj-v1 .pj-xin{opacity:0;min-height:0;transition:opacity .37s,transform .37s;overflow:hidden;transform:translateY(-4px)}#projects.pj-v1 .pj-row.open .pj-x,#projects.pj-v1 .pj-row.expand:focus-within .pj-x{grid-template-rows:1fr}#projects.pj-v1 .pj-row.open .pj-xin,#projects.pj-v1 .pj-row.expand:focus-within .pj-xin{opacity:1;transition-delay:90ms;transform:none}@media (hover:hover){#projects.pj-v1 .pj-row.expand:hover .pj-x{grid-template-rows:1fr}#projects.pj-v1 .pj-row.expand:hover .pj-xin{opacity:1;transition-delay:90ms;transform:none}}#projects.pj-v1 .bullets{gap:.6rem;margin:.95rem 0 0;font-size:.835rem;line-height:1.66}#projects.pj-v1 .bullets li{color:var(--secondary-ink);grid-template-columns:14px 1fr;gap:.5rem;display:grid}#projects.pj-v1 .bullets li i{width:auto;height:auto;font-style:normal;font-family:var(--font-mono);color:var(--secondary-ink);background:0 0;border-radius:0;margin:0;padding-top:.1rem;font-size:.75rem}#projects.pj-v1 .bullets li i:before{content:"+"}#projects.pj-v1 .bullets b{color:var(--foreground);font-weight:620}#projects.pj-v1 .pj-row.open .rv-stagger li,#projects.pj-v1 .pj-row.expand:focus-within .rv-stagger li{opacity:1;transition-delay:calc(90ms + var(--i)*.12s);transform:none}@media (hover:hover){#projects.pj-v1 .pj-row.expand:hover .rv-stagger li{opacity:1;transition-delay:calc(90ms + var(--i)*.12s);transform:none}}#projects.pj-v1 .pj-stack{font-family:var(--font-mono);letter-spacing:.03em;color:var(--secondary-ink);margin:1rem 0 0;font-size:.72rem;line-height:1.9}#projects.pj-v1 .pj-stack em{opacity:.55;padding:0 .1rem;font-style:normal}#projects.pj-v1 .pj-links{font-family:var(--font-mono);letter-spacing:.02em;gap:1.35rem;margin-top:.75rem;font-size:.75rem;display:flex}#projects.pj-v1 .pj-links a{color:var(--secondary-ink);align-items:center;gap:.45rem;transition:color .2s;display:inline-flex}#projects.pj-v1 .pj-links a:hover{color:var(--foreground)}#projects.pj-v1 .pj-links svg{width:13px;height:13px}@media (max-width:768px){#projects.pj-v1 .pj-row{grid-template-columns:2.4rem minmax(0,208px) minmax(0,1fr);gap:1.1rem}}@media (max-width:720px){#projects.pj-v1 .pj-row{grid-template-columns:minmax(0,1fr);gap:1rem;padding-left:.9rem}#projects.pj-v1 .pj-idx{display:none}#projects.pj-v1 .pj-media{max-width:420px}#projects.pj-v1 .pj-hint{display:none}}#projects.pj-v2 .pjb-log{margin-top:2.1rem}#projects.pj-v2 .pjb-dep{font-family:var(--font-mono);letter-spacing:.16em;color:var(--lab-dim);align-items:center;gap:.85rem;min-width:0;font-size:10.5px;display:flex}#projects.pj-v2 .pjb-n{flex-shrink:0;transition:color .25s}#projects.pj-v2 .pjb-d{text-overflow:ellipsis;white-space:nowrap;max-width:52%;transition:color .25s;overflow:hidden}#projects.pj-v2 .pjb-caret{width:.55em;animation:1s step-end infinite pjbBlink;display:inline-block}@keyframes pjbBlink{50%{opacity:0}}#projects.pj-v2 .pjb-dep i{background:var(--border);flex:1;min-width:1.5rem;height:1px;position:relative;overflow:hidden}#projects.pj-v2 .pjb-dep i:after{content:"";background:linear-gradient(90deg,transparent,var(--foreground),transparent);opacity:.55;width:26px;height:1px;animation:6.5s linear infinite pjbFlow;animation-delay:var(--fd,0s);position:absolute;top:0;left:-28px}@keyframes pjbFlow{0%{left:-28px}to{left:100%}}#projects.pj-v2 .pjb-s{color:var(--lab-dim);flex-shrink:0;align-items:center;gap:.45rem;display:inline-flex}#projects.pj-v2 .pjb-s:has(.pj-dot){color:var(--ok-ink)}#projects.pj-v2 .pjb-entry{cursor:pointer;opacity:0;filter:blur(5px);padding:.95rem 0 1.9rem;transition:opacity .7s,filter .7s,transform .7s;position:relative;transform:translateY(14px)}#projects.pj-v2 .pjb-entry.in{opacity:1;filter:none;transform:none}#projects.pj-v2 .pjb-entry:hover .pjb-n,#projects.pj-v2 .pjb-entry:hover .pjb-d,#projects.pj-v2 .pjb-entry.open .pjb-n,#projects.pj-v2 .pjb-entry.open .pjb-d{color:var(--foreground)}#projects.pj-v2 .pjb-grid{grid-template-columns:292px minmax(0,1fr);align-items:start;gap:1.35rem;margin-top:.95rem;display:grid}#projects.pj-v2 .pjb-pad{border:1px solid var(--border);background-image:radial-gradient(var(--dotgrid)1px,transparent 1px);background-size:12px 12px;border-radius:.65rem;padding:.6rem;transition:border-color .25s,transform .25s;position:relative}#projects.pj-v2 .pjb-entry:hover .pjb-pad{border-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){#projects.pj-v2 .pjb-entry:hover .pjb-pad{border-color:color-mix(in srgb,var(--foreground)26%,transparent)}}#projects.pj-v2 .pjb-entry:hover .pjb-pad{transform:translateY(-2px)}#projects.pj-v2 .pjb-prod{background:var(--background);letter-spacing:.16em;color:var(--secondary-ink);align-items:center;gap:.3rem;padding:0 .4rem;font-size:9px;transition:color .25s;display:flex;position:absolute;top:-.55rem;right:.7rem}#projects.pj-v2 .pjb-entry:hover .pjb-prod{color:var(--foreground)}#projects.pj-v2 .pjb-thumb{background:var(--muted);aspect-ratio:16/10;border-radius:.45rem;display:block;overflow:hidden}#projects.pj-v2 .pjb-thumb img{object-fit:cover;object-position:top;width:100%;height:100%;transition:transform .6s cubic-bezier(.25,.46,.45,.94);display:block}#projects.pj-v2 .pjb-entry:hover .pjb-thumb img{transform:scale(1.05)}#projects.pj-v2 .pjb-title{flex-wrap:wrap;align-items:center;gap:.5rem;min-width:0;display:flex}#projects.pj-v2 .pjb-title .pl{object-fit:contain;border-radius:4px;flex-shrink:0;width:auto;max-width:40px;height:20px}#projects.pj-v2 .pjb-title a,#projects.pj-v2 .pjb-title .pj-name{letter-spacing:-.01em;align-items:center;gap:.4rem;font-size:1.22rem;font-weight:700;display:inline-flex}#projects.pj-v2 .pjb-title svg{width:14px;height:14px;color:var(--secondary-ink);flex-shrink:0;transition:transform .22s,color .22s}#projects.pj-v2 .pjb-entry:hover .pjb-title svg{color:var(--foreground);transform:translate(3px,-3px)}#projects.pj-v2 .pjb-hint{letter-spacing:.18em;text-transform:uppercase;color:var(--secondary-ink);opacity:0;pointer-events:none;margin-left:auto;font-size:10px;transition:opacity .25s}@media (hover:hover){#projects.pj-v2 .pjb-entry:hover .pjb-hint{opacity:.9}}#projects.pj-v2 .pjb-entry.open .pjb-hint{opacity:0!important}#projects.pj-v2 .pjb-sum{color:var(--secondary-ink);margin:.4rem 0 0;font-size:.875rem;line-height:1.65}#projects.pj-v2 .pjb-x{grid-template-rows:0fr;transition:grid-template-rows .525s cubic-bezier(.22,1,.36,1);display:grid}#projects.pj-v2 .pjb-xin{opacity:0;min-height:0;transition:opacity .37s,transform .37s;overflow:hidden;transform:translateY(-4px)}#projects.pj-v2 .pjb-entry.open .pjb-x,#projects.pj-v2 .pjb-entry:focus-within .pjb-x{grid-template-rows:1fr}#projects.pj-v2 .pjb-entry.open .pjb-xin,#projects.pj-v2 .pjb-entry:focus-within .pjb-xin{opacity:1;transition-delay:90ms;transform:none}@media (hover:hover){#projects.pj-v2 .pjb-entry:hover .pjb-x{grid-template-rows:1fr}#projects.pj-v2 .pjb-entry:hover .pjb-xin{opacity:1;transition-delay:90ms;transform:none}}#projects.pj-v2 .bullets{gap:.55rem;margin:.8rem 0 0;font-size:.83rem;line-height:1.65}#projects.pj-v2 .bullets li{color:var(--secondary-ink);grid-template-columns:13px 1fr;gap:.45rem;display:grid}#projects.pj-v2 .bullets li i{width:auto;height:auto;font-style:normal;font-family:var(--font-mono);background:0 0;border-radius:0;margin:0;padding-top:.12rem;font-size:.72rem}#projects.pj-v2 .bullets li i:before{content:"▸"}#projects.pj-v2 .bullets b{color:var(--foreground);font-weight:620}#projects.pj-v2 .pjb-entry.open .rv-stagger li,#projects.pj-v2 .pjb-entry:focus-within .rv-stagger li{opacity:1;transition-delay:calc(90ms + var(--i)*.12s);transform:none}@media (hover:hover){#projects.pj-v2 .pjb-entry:hover .rv-stagger li{opacity:1;transition-delay:calc(90ms + var(--i)*.12s);transform:none}}#projects.pj-v2 .pjb-chips{flex-wrap:wrap;gap:.35rem;margin-top:.85rem;display:flex}#projects.pj-v2 .pjb-chips .badge{gap:5px;padding:2px 9px;font-size:.72rem}#projects.pj-v2 .pjb-chips .badge .bi{width:12px;height:12px}#projects.pj-v2 .pjb-links{font-family:var(--font-mono);letter-spacing:.02em;gap:1.1rem;margin-top:.7rem;font-size:.75rem;display:flex}#projects.pj-v2 .pjb-links a{color:var(--secondary-ink);align-items:center;gap:.4rem;transition:color .2s;display:inline-flex}#projects.pj-v2 .pjb-links a:hover{color:var(--foreground)}#projects.pj-v2 .pjb-links svg{width:13px;height:13px}#projects.pj-v2 .pjb-eol{font-family:var(--font-mono);letter-spacing:.2em;color:var(--lab-dim);align-items:center;gap:1rem;margin-top:2.6rem;font-size:10px;display:flex}#projects.pj-v2 .pjb-eol:before,#projects.pj-v2 .pjb-eol:after{content:"";background:var(--border);flex:1;height:1px}@media (max-width:600px){#projects.pj-v2 .pjb-grid{grid-template-columns:1fr;gap:.85rem}#projects.pj-v2 .pjb-thumb{max-width:230px}#projects.pj-v2 .pjb-d{max-width:44%}#projects.pj-v2 .pjb-hint{display:none}}.show-more{border:1px solid var(--border);color:var(--secondary-ink);cursor:pointer;background:0 0;border-radius:.5rem;align-items:center;gap:.5rem;margin:2rem auto 0;padding:10px 20px;font-size:.875rem;font-weight:500;transition:border-color .2s,color .2s;display:flex}.show-more:hover{border-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.show-more:hover{border-color:color-mix(in srgb,var(--foreground)30%,transparent)}}.show-more:hover{color:var(--foreground)}.show-more svg{width:16px;height:16px}.lab{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--lab-dim);align-items:center;gap:12px;font-size:11px;font-weight:500;line-height:16px;display:flex}.lab i{border-top:1px solid var(--border);flex:1}.lab>span:first-child{margin-right:-.18em}.lab .hint{letter-spacing:0;text-transform:none;color:var(--lab-2);font-weight:400}#contact{padding:50px 0 110px;position:relative;overflow-x:clip}#contact:before{content:"";pointer-events:none;background-image:radial-gradient(var(--dotgrid)1px,transparent 1.4px);background-size:26px 26px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(78% 62% at 50% 42%,#000 30%,#0000 100%);mask-image:radial-gradient(78% 62% at 50% 42%,#000 30%,#0000 100%)}#contact .ct{position:relative}#contact .ct-head{flex-wrap:wrap;align-items:center;gap:14px;display:flex}#contact .ct-title{letter-spacing:-.03em;font-variation-settings:"opsz" 32;margin:14px 0 0;font-size:clamp(30px,5.6vw,42px);font-weight:650;line-height:1.08}#contact .ct-now{letter-spacing:.04em;color:var(--lab-2);white-space:nowrap;align-items:center;gap:10px;margin-left:auto;font-size:11px;display:inline-flex}#contact .ct-clock{font-variant-numeric:tabular-nums;color:var(--foreground)}#contact .sig-dot{background:var(--ok);border-radius:9999px;flex:none;width:6px;height:6px;position:relative}#contact .sig-dot:after{content:"";border-radius:inherit;border:1px solid var(--ok);animation:2.4s cubic-bezier(0,0,.2,1) infinite ctPing;position:absolute;inset:-3px}@keyframes ctPing{0%{opacity:.8;transform:scale(.6)}70%,to{opacity:0;transform:scale(1.9)}}#contact .scope{border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin-top:34px;position:relative}#contact .scope canvas{width:100%;height:118px;display:block}#contact .scope-hud{pointer-events:none;font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--lab-dim);justify-content:space-between;font-size:9.5px;display:flex;position:absolute;inset:8px 2px auto}#contact .scope-hud b{color:var(--lab-2);letter-spacing:.1em;font-weight:500}#contact .scope-hud .tx{color:var(--ok-ink);opacity:0;transition:opacity .25s}#contact .scope.txing .scope-hud .tx{opacity:1}#contact .scope-cap{pointer-events:none;font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--lab-dim);justify-content:space-between;font-size:9.5px;display:flex;position:absolute;inset:auto 2px 8px}#contact .sent-form{margin-top:44px}#contact .sentence{letter-spacing:-.014em;font-variation-settings:"opsz" 26;color:var(--muted-foreground);max-width:60ch;font-size:clamp(19px,3.4vw,26px);font-weight:350;line-height:2.05}#contact .sentence b{color:var(--foreground);font-weight:520}#contact .blank{vertical-align:baseline;margin:0 .12em;display:inline-block;position:relative}#contact .blank input{font:inherit;color:var(--foreground);text-align:center;border:0;border-bottom:2px solid var(--foreground);background:0 0;outline:0;min-width:2ch;padding:0 .1em 2px}@supports (color:color-mix(in lab, red, red)){#contact .blank input{border-bottom:2px solid color-mix(in srgb,var(--foreground)30%,transparent)}}#contact .blank input{caret-color:var(--foreground);font-weight:480;transition:border-color .25s}#contact .blank input::placeholder{color:var(--ph);font-weight:350}#contact .blank input:focus{border-bottom-color:var(--foreground)}#contact .blank.err input{border-bottom-color:var(--err);animation:.3s nudge}@keyframes nudge{25%{transform:translate(-3px)}75%{transform:translate(3px)}}#contact .blank .mirror{visibility:hidden;white-space:pre;font:inherit;padding:0 .1em;font-weight:480;position:absolute;top:0;left:-9999px}#contact .pk{font:inherit;color:var(--foreground);cursor:pointer;border:0;border-bottom:2px dashed var(--foreground);background:0 0;padding:0 .1em 2px;font-weight:480}@supports (color:color-mix(in lab, red, red)){#contact .pk{border-bottom:2px dashed color-mix(in srgb,var(--foreground)34%,transparent)}}#contact .pk{transition:border-color .25s}#contact .pk:hover,#contact .pk[aria-expanded=true]{border-bottom-color:var(--foreground)}#contact .pk .car{color:var(--lab-dim);margin-left:.35em;font-size:.6em;transition:transform .25s;display:inline-block;transform:translateY(-.15em)}#contact .pk[aria-expanded=true] .car{transform:translateY(-.15em)rotate(180deg)}#contact .chip-rail{grid-template-rows:0fr;transition:grid-template-rows .35s cubic-bezier(.22,1,.36,1);display:grid}#contact .chip-rail.open{grid-template-rows:1fr}#contact .chip-rail>div{flex-wrap:wrap;gap:8px;padding-top:14px;display:flex;overflow:hidden}#contact .chip{font-family:var(--font-mono);letter-spacing:.02em;color:var(--muted-foreground);background:var(--background);border:1px solid var(--border);cursor:pointer;border-radius:9999px;padding:6px 13px;font-size:12px;transition:color .2s,border-color .2s,background-color .2s,transform .15s}#contact .chip:hover{color:var(--foreground);border-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){#contact .chip:hover{border-color:color-mix(in srgb,var(--foreground)28%,transparent)}}#contact .chip:active{transform:scale(.96)}#contact .chip[aria-pressed=true]{color:var(--background);background:var(--foreground);border-color:var(--foreground)}#contact .msg-line{margin-top:6px;display:block}#contact .msg-line textarea{width:100%;font:inherit;color:var(--foreground);resize:none;border:0;border-bottom:2px solid var(--foreground);background:0 0;outline:0;min-height:1.6em;padding:2px 0 8px;font-weight:480;line-height:1.6;display:block;overflow:hidden}@supports (color:color-mix(in lab, red, red)){#contact .msg-line textarea{border-bottom:2px solid color-mix(in srgb,var(--foreground)30%,transparent)}}#contact .msg-line textarea{caret-color:var(--foreground);transition:border-color .25s}#contact .msg-line textarea::placeholder{color:var(--ph);font-weight:350}#contact .msg-line textarea:focus{border-bottom-color:var(--foreground)}#contact .msg-line.err textarea{border-bottom-color:var(--err);animation:.3s nudge}#contact .tx-row{flex-wrap:wrap;align-items:center;gap:16px;margin-top:34px;display:flex}#contact .f-count{font-family:var(--font-mono);color:var(--lab-dim);font-variant-numeric:tabular-nums;font-size:11px}#contact .f-count.near{color:var(--err)}#contact .tx-note{color:var(--muted-foreground);font-size:12px}#contact .tx-spacer{flex:1}#contact .tx-btn{font:inherit;letter-spacing:.02em;color:var(--background);background:var(--foreground);border:1px solid var(--foreground);cursor:pointer;border-radius:9999px;align-items:center;gap:10px;padding:12px 24px;font-size:13.5px;font-weight:520;transition:transform .2s cubic-bezier(.22,1,.36,1),opacity .2s;display:inline-flex;position:relative;overflow:hidden}#contact .tx-btn:hover{transform:translateY(-2px)}#contact .tx-btn:active{transform:translateY(0)scale(.98)}#contact .tx-btn[aria-disabled=true]{opacity:.55;cursor:wait;transform:none}#contact .tx-btn .up{transition:transform .3s cubic-bezier(.22,1,.36,1);display:inline-flex}#contact .tx-btn:hover .up{transform:translateY(-3px)}#contact .tx-btn svg{width:15px;height:15px}#contact .tx-btn .btnwave{align-items:center;gap:2.5px;height:14px;display:inline-flex}#contact .tx-btn .btnwave i{opacity:.85;background:currentColor;border-radius:1px;width:2px;height:4px}#contact .tx-btn:hover .btnwave i{animation:.7s ease-in-out infinite alternate eq}#contact .tx-btn .btnwave i:first-child{animation-delay:0s}#contact .tx-btn .btnwave i:nth-child(2){animation-delay:.12s}#contact .tx-btn .btnwave i:nth-child(3){animation-delay:.24s}#contact .tx-btn .btnwave i:nth-child(4){animation-delay:.36s}@keyframes eq{0%{height:3px}to{height:13px}}#contact .spin{border:2px solid var(--background);border-radius:9999px;flex:none;width:14px;height:14px}@supports (color:color-mix(in lab, red, red)){#contact .spin{border:2px solid color-mix(in srgb,var(--background)35%,transparent)}}#contact .spin{border-top-color:var(--background);animation:.7s linear infinite rot}@keyframes rot{to{transform:rotate(360deg)}}#contact .ack{min-height:22px;font-family:var(--font-mono);letter-spacing:.02em;color:var(--lab-2);white-space:pre-wrap;margin-top:26px;font-size:12.5px}#contact .ack .ok{color:var(--ok-ink)}#contact .ack .caret{vertical-align:-.18em;opacity:1;background:var(--foreground);width:.55em;height:1.05em;animation:1s step-end infinite blink;display:inline-block;transform:none}@keyframes blink{50%{opacity:0}}#contact .ack .again{font:inherit;color:var(--foreground);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:0;text-decoration:underline}#contact .carrier{margin-top:76px}#contact .car-copied{letter-spacing:0;text-transform:none;color:var(--ok-ink);opacity:0;font-weight:400;transition:opacity .3s,transform .3s;transform:translateY(3px)}#contact .car-copied.on{opacity:1;transform:none}#contact .car-btn{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;margin-top:18px;padding:6px 2px 0;display:block}#contact .car-btn:focus-visible{outline:1px dashed var(--lab-dim);outline-offset:8px}#contact .car-top{align-items:center;gap:16px;display:flex}#contact .car-addr{letter-spacing:-.018em;font-variation-settings:"opsz" 30;flex-wrap:wrap;min-width:0;font-size:clamp(17px,4.6vw,30px);line-height:1.25;display:flex}#contact .car-addr .cc{white-space:pre;font-variation-settings:"wght" var(--cw,480),"opsz" 30;transform:translateY(calc(var(--cy,0)*1px));will-change:font-variation-settings,transform;display:inline-block}#contact .car-addr .cc.at{font-variation-settings:"wght" calc(var(--cw,480) + 220),"opsz" 30}#contact .car-ic{border:1px solid var(--border);width:38px;height:38px;color:var(--muted-foreground);background:var(--background);border-radius:10px;flex:none;place-items:center;margin-left:auto;transition:color .25s,border-color .25s,background-color .25s,transform .25s;display:grid}#contact .car-btn:hover .car-ic{color:var(--foreground);background:var(--muted);border-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){#contact .car-btn:hover .car-ic{border-color:color-mix(in srgb,var(--foreground)30%,transparent)}}#contact .car-btn:hover .car-ic{transform:translateY(-2px)}#contact .car-ic svg{width:15px;height:15px}#contact .car-ic .ic-check{color:var(--ok-ink);display:none}#contact .car-btn.copied .car-ic{border-color:var(--ok)}@supports (color:color-mix(in lab, red, red)){#contact .car-btn.copied .car-ic{border-color:color-mix(in srgb,var(--ok)45%,transparent)}}#contact .car-btn.copied .car-ic .ic-copy{display:none}#contact .car-btn.copied .car-ic .ic-check{display:block}#contact .car-wave{width:100%;height:30px;margin-top:2px;display:block}#contact .car-sub{align-items:center;gap:16px;margin-top:8px;display:flex}#contact .car-open{font-family:var(--font-mono);color:var(--lab-dim);margin-left:auto;font-size:11.5px;text-decoration:none;transition:color .2s}#contact .car-open:hover{color:var(--foreground)}#contact .freqs{margin-top:56px}#contact .fq-list{margin-top:6px}#contact .fq{border-bottom:1px solid var(--border);color:inherit;align-items:center;gap:14px;padding:15px 2px;text-decoration:none;display:flex}#contact .fq-band{font-family:var(--font-mono);color:var(--lab-dim);letter-spacing:.08em;flex:none;width:44px;font-size:10px}#contact .fq-name{letter-spacing:-.01em;font-size:14px;font-weight:480}#contact .fq-line{border-top:1px dashed var(--border);flex:1}@supports (color:color-mix(in lab, red, red)){#contact .fq-line{border-top:1px dashed color-mix(in srgb,var(--border)92%,transparent)}}#contact .fq-h{font-family:var(--font-mono);color:var(--muted-foreground);font-size:11px}#contact .bars{flex:none;align-items:flex-end;gap:2.5px;height:13px;display:inline-flex}#contact .bars i{background:var(--foreground);border-radius:1px;width:2.5px}@supports (color:color-mix(in lab, red, red)){#contact .bars i{background:color-mix(in srgb,var(--foreground)40%,transparent)}}#contact .bars i{transition:background-color .25s}#contact .bars i:first-child{height:4px}#contact .bars i:nth-child(2){height:7px}#contact .bars i:nth-child(3){height:10px}#contact .bars i:nth-child(4){height:13px}#contact .fq-arr{color:var(--lab-dim);flex:none;font-size:12px;transition:transform .3s cubic-bezier(.22,1,.36,1),color .3s}@media (hover:hover){#contact .fq:hover .fq-name{font-weight:620}#contact .fq:hover .bars i{background:var(--foreground);animation:.6s ease-in-out infinite alternate eqB}#contact .fq:hover .bars i:nth-child(2){animation-delay:.1s}#contact .fq:hover .bars i:nth-child(3){animation-delay:.2s}#contact .fq:hover .bars i:nth-child(4){animation-delay:.3s}#contact .fq:hover .fq-arr{color:var(--foreground);transform:translate(3px,-3px)}}@keyframes eqB{0%{transform:scaleY(.45)}to{transform:scaleY(1)}}#contact .fq:focus-visible{outline:1px dashed var(--lab-dim);outline-offset:-1px}#contact .ct-close{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--lab-dim);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:70px;font-size:10.5px;display:flex}#contact .ct-close .coord{letter-spacing:.06em;text-transform:none;color:var(--lab-2)}#contact .ct.in .rv{animation:rise .65s cubic-bezier(.22,1,.36,1)var(--d,0s)backwards}@keyframes rise{0%{opacity:0;transform:translateY(14px)}}@media (max-width:560px){#contact .ct-now .awk,#contact .fq-h{display:none}#contact .sentence{line-height:1.95}}#contact .fqx{position:relative}#contact .ghv{font-family:var(--font-mono);color:var(--lab-dim);margin:0 -4px 0 -6px;font-size:9px;transition:transform .3s,color .2s}#contact .fqx:hover .ghv{color:var(--foreground);transform:rotate(180deg)}#contact .fqx:has(.fq:focus-visible) .ghv{color:var(--foreground);transform:rotate(180deg)}#contact .ghln{grid-template-rows:0fr;transition:grid-template-rows .3s cubic-bezier(.4,0,.2,1);display:grid}#contact .ghln-in{opacity:0;min-height:0;transition:opacity .3s,transform .3s;overflow:hidden;transform:translateY(-4px)}#contact .ghln-body{border-bottom:1px solid var(--border);padding:22px 2px 16px;position:relative}#contact .fqx:hover .ghln{grid-template-rows:1fr;transition:grid-template-rows .5s cubic-bezier(.22,1,.36,1)}#contact .fqx:has(.fq:focus-visible) .ghln{grid-template-rows:1fr;transition:grid-template-rows .5s cubic-bezier(.22,1,.36,1)}#contact .fqx:hover .ghln-in{opacity:1;transition-delay:80ms;transform:none}#contact .fqx:has(.fq:focus-visible) .ghln-in{opacity:1;transition-delay:80ms;transform:none}#contact .ghln-stage{cursor:crosshair;touch-action:pan-y;position:relative}#contact .ghln-stage svg{width:100%;height:60px;display:block;overflow:visible}#contact .ghln stop{stop-color:currentColor}#contact .ghln .stroke{fill:none;stroke:url(#ghlnInk);stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}#contact .ghln .under{fill:url(#ghlnFade);opacity:0}#contact .ghln .base{stroke:var(--border);stroke-width:1px;stroke-dasharray:1 5;vector-effect:non-scaling-stroke}#contact .ghln .pkdot{fill:currentColor}#contact .ghln-pk{pointer-events:none;font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--lab-dim);white-space:nowrap;opacity:0;font-size:8.5px;line-height:12px;position:absolute;transform:translate(-50%,-100%)}#contact .ghln-dot{background:var(--ok);pointer-events:none;opacity:0;border-radius:9999px;width:5px;height:5px;margin:-2.5px 0 0 -2.5px;position:absolute}#contact .ghln-dot:after{content:"";border-radius:inherit;border:1px solid var(--ok);animation:2.4s cubic-bezier(0,0,.2,1) infinite ghlnPing;position:absolute;inset:-3px}@keyframes ghlnPing{0%{opacity:.8;transform:scale(.6)}70%,to{opacity:0;transform:scale(1.9)}}#contact .ghln .cur{stroke:var(--foreground)}@supports (color:color-mix(in lab, red, red)){#contact .ghln .cur{stroke:color-mix(in srgb,var(--foreground)45%,transparent)}}#contact .ghln .cur{stroke-width:1px;vector-effect:non-scaling-stroke;opacity:0;transition:opacity .15s}#contact .ghln .curdot{fill:var(--background);stroke:var(--foreground);stroke-width:1.2px;vector-effect:non-scaling-stroke;opacity:0;transition:opacity .15s}#contact .ghln-stage:hover .cur,#contact .ghln-stage:hover .curdot,#contact .ghln-stage:active .cur,#contact .ghln-stage:active .curdot{opacity:1}#contact .ghln-ro{pointer-events:none;font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--foreground);white-space:nowrap;opacity:0;font-variant-numeric:tabular-nums;font-size:9px;line-height:12px;transition:opacity .15s;position:absolute;top:-17px;right:2px}#contact .ghln-stage:hover .ghln-ro,#contact .ghln-stage:active .ghln-ro{opacity:1}#contact .ghln .stroke{stroke-dasharray:var(--draw,3.2);stroke-dashoffset:var(--draw,3.2)}#contact .fqx:hover .stroke{stroke-dashoffset:0;transition:stroke-dashoffset 1.4s cubic-bezier(.4,0,.2,1) .25s}#contact .fqx:has(.fq:focus-visible) .stroke{stroke-dashoffset:0;transition:stroke-dashoffset 1.4s cubic-bezier(.4,0,.2,1) .25s}#contact .fqx:hover .under{opacity:1;transition:opacity .7s 1.1s}#contact .fqx:has(.fq:focus-visible) .under{opacity:1;transition:opacity .7s 1.1s}#contact .fqx:hover .ghln-dot{opacity:1;transition:opacity .3s 1.45s}#contact .fqx:has(.fq:focus-visible) .ghln-dot{opacity:1;transition:opacity .3s 1.45s}#contact .fqx:hover .ghln-pk{opacity:1;transition:opacity .5s 1.55s}#contact .fqx:has(.fq:focus-visible) .ghln-pk{opacity:1;transition:opacity .5s 1.55s}@media (hover:none){#contact .ghv{display:none}#contact .ghln{grid-template-rows:1fr}#contact .ghln-in{opacity:1;transform:none}#contact .ghln.in .stroke{stroke-dashoffset:0;transition:stroke-dashoffset 1.5s cubic-bezier(.4,0,.2,1) .1s}#contact .ghln.in .under{opacity:1;transition:opacity .8s 1.2s}#contact .ghln.in .ghln-dot{opacity:1;transition:opacity .3s 1.55s}#contact .ghln.in .ghln-pk{opacity:1;transition:opacity .5s 1.7s}}#contact .ghln-cap{font-family:var(--font-mono);letter-spacing:.02em;color:var(--lab-dim);margin:10px 0 0;font-size:10.5px;line-height:16px}#contact .ghln-cap b{color:var(--lab-2);font-weight:500}.thought{padding:0 0 8px}.thought .th-wrap{--q-size:clamp(30px,6.4vw,52px);--q-cap:19ch;position:relative}.thought .th-wrap[data-len=long]{--q-size:clamp(24px,4.4vw,38px);--q-cap:26ch}.thought .th-quote{max-width:var(--q-cap);font-size:var(--q-size);letter-spacing:-.028em;cursor:default;margin:34px 0 0;font-weight:250;line-height:1.14}.thought .th-quote p{text-wrap:balance;margin:0}.thought .th-quote .w{white-space:pre-wrap;overflow-wrap:anywhere;font-variation-settings:"wght" var(--w,250),"opsz" 32;will-change:font-variation-settings;display:inline-block}.thought .th-quote .w.w-pin{white-space:pre;text-align:center}.thought .th-wrap.in .th-quote .w{animation:wIn .7s cubic-bezier(.22,1,.36,1)var(--d,0s)backwards}@keyframes wIn{0%{opacity:0;filter:blur(6px);transform:translateY(.35em)}}.thought .th-hintline{color:var(--lab-dim);letter-spacing:.05em;opacity:0;margin-top:8px;font-size:10.5px;transition:opacity .5s .2s}.thought .th-wrap.in .th-hintline{opacity:.75}@media (hover:none){.thought .th-hintline{display:none}}.thought .th-foot{flex-wrap:wrap;align-items:center;gap:12px;max-width:560px;margin-top:30px;display:flex}.thought .th-wrap.in .th-foot{animation:.6s .55s backwards footIn}@keyframes footIn{0%{opacity:0;transform:translateY(8px)}}.thought .th-foot i{border-top:1px solid var(--border);flex:1;min-width:24px}.thought .th-author{color:var(--lab-2);overflow-wrap:anywhere;font-size:13px;line-height:20px}@media (prefers-reduced-motion:reduce){.paw-btn:hover .paw,.paw-btn:active .paw,.paw-btn.on .paw{animation:none}.animate-fade-in-blur{opacity:1;animation:none}.animate-delay-1,.animate-delay-2,.animate-delay-3,.animate-delay-4,.animate-delay-5,.animate-delay-6{animation-delay:0s}.title-gradient,.dark .title-gradient{animation:none}.bg-beams{display:none}html{scroll-behavior:auto}.avail i:after,.caret,.cue i,.cw .cat,.xp-cur i,.xp-node.live:after{animation:none!important}.xp-card,.xp-node,.xp-log li>span:last-child,.xp-more svg{transition:none!important}.xp-card:before{display:none}.xp-list:has(.xp-card:hover) .xp-card:not(:hover){opacity:1}.xp-fold{transition:none}.xp-card .xp-log li,.xp-fold .xp-log li{opacity:1!important;filter:none!important;transition:none!important;transform:none!important}.peek{display:none!important}.peek-stack{display:block}.roleword,.chip,.btn:hover,.btn svg,.soc,.soc .lbl,.badge,.pj-x,.pj-xin,.pjb-x,.pjb-xin{transition:none!important}.btn{translate:none!important}.rv-stagger li{opacity:1!important;transition:none!important;transform:none!important}.pj-fold,.pj-more svg{transition:none}#projects.pj-v2 .pjb-entry{opacity:1;filter:none;transform:none;transition:none!important}#projects.pj-v2 .pjb-dep i:after{display:none}#projects.pj-v2 .pjb-caret,.pj-dot:after{animation:none!important}#projects.pj-v1 .pj-media img,#projects.pj-v2 .pjb-thumb img{transition:none!important;transform:none!important}#projects.pj-v1 .pj-row,#projects.pj-v1 .pj-row:before,#projects.pj-v1 .pj-title:after{transition:none!important}#projects.pj-v1:has(.pj-row:hover) .pj-row:not(:hover){opacity:1}#contact .ct.in .rv,.thought .th-wrap.in .th-quote .w,.thought .th-wrap.in .th-foot,#contact .sig-dot:after,#contact .tx-btn:hover .btnwave i,#contact .fq:hover .bars i{animation:none!important}#contact .ghln-dot:after{opacity:0;animation:none}#contact .blank.err input,#contact .msg-line.err textarea,#contact .spin{animation:none!important}#contact .tx-btn:hover,#contact .tx-btn:hover .up,#contact .car-btn:hover .car-ic,#contact .fq:hover .fq-arr{transform:none}#contact .chip-rail,#contact .ghln,#contact .ghln-in{transition-duration:.01ms!important}.thought .th-hintline{transition:none}#contact .ghln .stroke{stroke-dasharray:none;stroke-dashoffset:0;transition:none!important}#contact .ghln .under,#contact .ghln-pk,#contact .ghln-dot{opacity:1!important;transition:none!important}#contact .ghv{transition:none}}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@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-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@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-outline-style{syntax:"*";inherits:false;initial-value:solid}@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-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@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-content{syntax:"*";inherits:false;initial-value:""}
