/*! tailwindcss v4.1.4 | MIT License | https://tailwindcss.com */@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-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-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-duration:initial;--tw-ease:initial;--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-pan-x:initial;--tw-pan-y:initial;--tw-pinch-zoom:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-x-reverse:0;--tw-border-style:solid;--tw-divide-y-reverse:0;--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-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-font-weight:initial;--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-leading:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--sweep:0deg}}}@layer theme{:root,:host{--font-sans:"Inter",ui-sans-serif,system-ui,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-600:oklch(57.7% .245 27.325);--color-emerald-400:oklch(76.5% .177 163.223);--color-cyan-500:oklch(71.5% .143 215.221);--color-sky-400:oklch(74.6% .16 232.661);--color-blue-500:oklch(62.3% .214 259.815);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--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: 1.5 ;--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: 1.2 ;--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-7xl:4.5rem;--text-7xl--line-height:1;--text-8xl:6rem;--text-8xl--line-height:1;--text-9xl:8rem;--text-9xl--line-height:1;--font-weight-light:300;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-black:900;--tracking-tighter:-.05em;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-widest:.1em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--ease-in:cubic-bezier(.4,0,1,1);--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--animate-bounce:bounce 1s infinite;--blur-sm:8px;--blur-md:12px;--blur-lg:16px;--blur-xl:24px;--blur-3xl:64px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-border:hsl(var(--border));--color-background:hsl(var(--background));--color-foreground:hsl(var(--foreground));--color-primary:hsl(var(--primary));--color-primary-foreground:hsl(var(--primary-foreground));--color-secondary:hsl(var(--secondary));--color-muted:hsl(var(--muted));--color-muted-foreground:hsl(var(--muted-foreground));--color-card:hsl(var(--card));--color-accent:hsl(var(--accent));--color-gradient-1:hsl(var(--gradient-1));--color-gradient-2:hsl(var(--gradient-2));--font-display:"Space Grotesk",ui-sans-serif,system-ui,sans-serif;--font-body:"Inter",ui-sans-serif,system-ui,sans-serif;--ease-spring:cubic-bezier(.34,1.56,.64,1);--animate-float:float 6s ease-in-out infinite;--animate-pulse-subtle:pulse-subtle 4s ease-in-out infinite;--animate-fade-in:fade-in .7s ease-out forwards;--animate-fade-in-delay-1:fade-in .7s ease-out .2s forwards;--animate-fade-in-delay-2:fade-in .7s ease-out .4s forwards;--animate-fade-in-delay-3:fade-in .7s ease-out .6s forwards;--animate-fade-in-delay-4:fade-in .7s ease-out .8s forwards;--animate-fade-in-delay-5:fade-in .7s ease-out 1s forwards;--animate-wave:wave 2.5s ease-in-out infinite;--animate-meteor:meteor 5s linear infinite;--animate-gradient-shift:gradient-shift 8s ease infinite}}@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%;-moz-tab-size:4;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;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}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:root{--background:210 20% 97%;--foreground:222 47% 11%;--card:0 0% 100%;--primary:217 91% 50%;--primary-foreground:210 20% 98%;--secondary:214 32% 94%;--secondary-foreground:222 47% 20%;--muted:214 32% 93%;--muted-foreground:215 16% 40%;--border:214 32% 91%;--accent:14 75% 43%;--accent-foreground:210 20% 98%;--gradient-1:217 91% 50%;--gradient-2:14 75% 45%}.dark{--background:222 47% 11%;--foreground:210 20% 98%;--card:222 47% 14%;--primary:217 91% 60%;--primary-foreground:222 47% 11%;--secondary:222 40% 18%;--secondary-foreground:210 20% 90%;--muted:222 35% 16%;--muted-foreground:215 16% 65%;--border:222 30% 22%;--accent:14 85% 62%;--accent-foreground:222 47% 11%;--gradient-1:217 91% 60%;--gradient-2:14 85% 62%}*{border-color:var(--color-border)}html{scroll-behavior:smooth}body{background-color:var(--color-background);color:var(--color-foreground);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));--tw-duration:.3s;font-feature-settings:"rlig" 1,"calt" 1;font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition-duration:.3s}h1,h2,h3{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold);font-family:var(--font-display);letter-spacing:-.02em}h4,h5,h6{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold);letter-spacing:-.01em}section{position:relative}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.not-sr-only{clip:auto;white-space:normal;width:auto;height:auto;margin:0;padding:0;position:static;overflow:visible}.star{background-color:var(--color-white);border-radius:3.40282e38px;position:absolute;box-shadow:0 0 10px 2px #fff6}.meteor{--tw-gradient-position:to right;background-image:linear-gradient(var(--tw-gradient-stops));--tw-gradient-from:var(--color-white);--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));--tw-gradient-via:var(--color-white);--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-to:transparent;border-radius:3.40282e38px;position:absolute;box-shadow:0 0 10px 5px #ffffff4d}@supports (background-image:linear-gradient(in lab,red,red)){.meteor{--tw-gradient-position:to right in oklab}}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.inset-x-0{inset-inline:calc(var(--spacing)*0)}.-top-12{top:calc(var(--spacing)*-12)}.-top-24{top:calc(var(--spacing)*-24)}.top-0{top:calc(var(--spacing)*0)}.top-1\/2{top:50%}.top-1\/3{top:33.3333%}.top-1\/4{top:25%}.top-2{top:calc(var(--spacing)*2)}.top-\[72px\]{top:72px}.-right-20{right:calc(var(--spacing)*-20)}.-right-24{right:calc(var(--spacing)*-24)}.right-0{right:calc(var(--spacing)*0)}.right-1\/4{right:25%}.right-2{right:calc(var(--spacing)*2)}.right-6{right:calc(var(--spacing)*6)}.-bottom-1{bottom:calc(var(--spacing)*-1)}.-bottom-24{bottom:calc(var(--spacing)*-24)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-1\/4{bottom:25%}.bottom-6{bottom:calc(var(--spacing)*6)}.-left-20{left:calc(var(--spacing)*-20)}.-left-24{left:calc(var(--spacing)*-24)}.left-0{left:calc(var(--spacing)*0)}.left-1\/3{left:33.3333%}.left-4{left:calc(var(--spacing)*4)}.isolate{isolation:isolate}.isolation-auto{isolation:auto}.z-0{z-index:0}.z-10{z-index:10}.z-50{z-index:50}.z-100{z-index:100}.z-\[55\]{z-index:55}.z-\[60\]{z-index:60}.order-1{order:1}.order-2{order:2}.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}}.container{margin-inline:auto;padding-inline:1rem}@media (min-width:640px){.container{max-width:640px;padding-inline:2rem}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1400px){.container{max-width:1400px}}.mx-auto{margin-inline:auto}.my-8{margin-block:calc(var(--spacing)*8)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-5{margin-top:calc(var(--spacing)*5)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-5{margin-bottom:calc(var(--spacing)*5)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.mb-10{margin-bottom:calc(var(--spacing)*10)}.mb-12{margin-bottom:calc(var(--spacing)*12)}.mb-14{margin-bottom:calc(var(--spacing)*14)}.mb-16{margin-bottom:calc(var(--spacing)*16)}.ml-0\.5{margin-left:calc(var(--spacing)*.5)}.ml-4{margin-left:calc(var(--spacing)*4)}.line-clamp-4{-webkit-line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.flow-root{display:flow-root}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.inline-table{display:inline-table}.list-item{display:list-item}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-column{display:table-column}.table-column-group{display:table-column-group}.table-footer-group{display:table-footer-group}.table-header-group{display:table-header-group}.table-row{display:table-row}.table-row-group{display:table-row-group}.h-0\.5{height:calc(var(--spacing)*.5)}.h-1{height:calc(var(--spacing)*1)}.h-2{height:calc(var(--spacing)*2)}.h-3{height:calc(var(--spacing)*3)}.h-3\.5{height:calc(var(--spacing)*3.5)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-11{height:calc(var(--spacing)*11)}.h-40{height:calc(var(--spacing)*40)}.h-64{height:calc(var(--spacing)*64)}.h-72{height:calc(var(--spacing)*72)}.h-80{height:calc(var(--spacing)*80)}.h-96{height:calc(var(--spacing)*96)}.h-\[3px\]{height:3px}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.max-h-\[80vh\]{max-height:80vh}.max-h-screen{max-height:100vh}.min-h-11{min-height:calc(var(--spacing)*11)}.min-h-\[320px\]{min-height:320px}.min-h-screen{min-height:100vh}.w-0{width:calc(var(--spacing)*0)}.w-0\.5{width:calc(var(--spacing)*.5)}.w-1{width:calc(var(--spacing)*1)}.w-2{width:calc(var(--spacing)*2)}.w-3{width:calc(var(--spacing)*3)}.w-3\.5{width:calc(var(--spacing)*3.5)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-8{width:calc(var(--spacing)*8)}.w-9{width:calc(var(--spacing)*9)}.w-11{width:calc(var(--spacing)*11)}.w-12{width:calc(var(--spacing)*12)}.w-16{width:calc(var(--spacing)*16)}.w-64{width:calc(var(--spacing)*64)}.w-72{width:calc(var(--spacing)*72)}.w-80{width:calc(var(--spacing)*80)}.w-96{width:calc(var(--spacing)*96)}.w-fit{width:fit-content}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-lg{max-width:var(--container-lg)}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:calc(var(--spacing)*0)}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.origin-center{transform-origin:50%}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.card-hover{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.3s;--tw-ease:var(--ease-spring);transition-duration:.3s;transition-timing-function:var(--ease-spring)}@media (hover:hover){.card-hover:hover{--tw-translate-y:-1px;translate:var(--tw-translate-x)var(--tw-translate-y);border-color:color-mix(in srgb,hsl(var(--primary))40%,transparent)}@supports (color:color-mix(in lab,red,red)){.card-hover:hover{border-color:color-mix(in oklab,var(--color-primary)40%,transparent)}}.card-hover:hover{background-color:color-mix(in srgb,hsl(var(--primary))10%,transparent)}@supports (color:color-mix(in lab,red,red)){.card-hover:hover{background-color:color-mix(in oklab,var(--color-primary)10%,transparent)}}.card-hover:hover{color:var(--color-primary)}}.translate-y-0{--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-4{--tw-translate-y:calc(var(--spacing)*4);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-none{translate:none}.scale-x-0{--tw-scale-x:0%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-x-100{--tw-scale-x:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-3d{scale:var(--tw-scale-x)var(--tw-scale-y)var(--tw-scale-z)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-fade-in{animation:var(--animate-fade-in)}.animate-fade-in-delay-1{animation:var(--animate-fade-in-delay-1)}.animate-fade-in-delay-2{animation:var(--animate-fade-in-delay-2)}.animate-fade-in-delay-3{animation:var(--animate-fade-in-delay-3)}.animate-fade-in-delay-4{animation:var(--animate-fade-in-delay-4)}.animate-fade-in-delay-5{animation:var(--animate-fade-in-delay-5)}.animate-float{animation:var(--animate-float)}.animate-meteor{animation:var(--animate-meteor)}.animate-pulse{animation:var(--animate-pulse)}.animate-pulse-subtle{animation:var(--animate-pulse-subtle)}.animate-wave{animation:var(--animate-wave)}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-pinch-zoom{--tw-pinch-zoom:pinch-zoom;touch-action:var(--tw-pan-x,)var(--tw-pan-y,)var(--tw-pinch-zoom,)}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-2\.5{gap:calc(var(--spacing)*2.5)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}.gap-10{gap:calc(var(--spacing)*10)}.gap-12{gap:calc(var(--spacing)*12)}: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)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*8)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*8)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-12>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*12)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*12)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-reverse>:not(:last-child)){--tw-space-y-reverse:1}.gap-x-6{column-gap:calc(var(--spacing)*6)}:where(.space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*4)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-5>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*5)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*5)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-8>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*8)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*8)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-reverse>:not(:last-child)){--tw-space-x-reverse:1}.gap-y-5{row-gap:calc(var(--spacing)*5)}:where(.divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px*var(--tw-divide-x-reverse));border-inline-end-width:calc(1px*calc(1 - var(--tw-divide-x-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse));border-bottom-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-y-reverse>:not(:last-child)){--tw-divide-y-reverse:1}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-clip{overflow-x:clip}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.glass-card{border-radius:var(--radius-xl);border-style:var(--tw-border-style);border-width:1px;border-color:color-mix(in srgb,hsl(var(--border))50%,transparent);background-color:color-mix(in srgb,hsl(var(--card))80%,transparent);--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px 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);--tw-backdrop-blur:blur(var(--blur-md));-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,)}@supports (color:color-mix(in lab,red,red)){.glass-card{border-color:color-mix(in oklab,var(--color-border)50%,transparent);background-color:color-mix(in oklab,var(--color-card)80%,transparent)}}.cosmic-button{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops));--tw-gradient-from:var(--color-gradient-1);--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));--tw-gradient-to:var(--color-gradient-2);padding-inline:calc(var(--spacing)*8);padding-block:calc(var(--spacing)*3);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--color-primary-foreground);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.3s;border-radius:3.40282e38px;transition-duration:.3s}@media (hover:hover){.cosmic-button:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y);--tw-shadow:0 0 30px var(--tw-shadow-color,hsl(var(--primary)/.6));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-brightness:brightness(110%);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,)}}.cosmic-button:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x)var(--tw-scale-y)}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-s{border-start-start-radius:.25rem;border-end-start-radius:.25rem}.rounded-ss{border-start-start-radius:.25rem}.rounded-e{border-start-end-radius:.25rem;border-end-end-radius:.25rem}.rounded-se{border-start-end-radius:.25rem}.rounded-ee{border-end-end-radius:.25rem}.rounded-es{border-end-start-radius:.25rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-tl{border-top-left-radius:.25rem}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-tr{border-top-right-radius:.25rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-br{border-bottom-right-radius:.25rem}.rounded-bl{border-bottom-left-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-s{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-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-\[\#2d3748\]{border-color:#2d3748}.border-\[\#4a5568\]{border-color:#4a5568}.border-border{border-color:var(--color-border)}.border-border\/50{border-color:color-mix(in srgb,hsl(var(--border))50%,transparent)}@supports (color:color-mix(in lab,red,red)){.border-border\/50{border-color:color-mix(in oklab,var(--color-border)50%,transparent)}}.border-border\/60{border-color:color-mix(in srgb,hsl(var(--border))60%,transparent)}@supports (color:color-mix(in lab,red,red)){.border-border\/60{border-color:color-mix(in oklab,var(--color-border)60%,transparent)}}.border-border\/70{border-color:color-mix(in srgb,hsl(var(--border))70%,transparent)}@supports (color:color-mix(in lab,red,red)){.border-border\/70{border-color:color-mix(in oklab,var(--color-border)70%,transparent)}}.border-primary{border-color:var(--color-primary)}.border-primary\/40{border-color:color-mix(in srgb,hsl(var(--primary))40%,transparent)}@supports (color:color-mix(in lab,red,red)){.border-primary\/40{border-color:color-mix(in oklab,var(--color-primary)40%,transparent)}}.border-primary\/50{border-color:color-mix(in srgb,hsl(var(--primary))50%,transparent)}@supports (color:color-mix(in lab,red,red)){.border-primary\/50{border-color:color-mix(in oklab,var(--color-primary)50%,transparent)}}.border-transparent{border-color:#0000}.bg-\[\#27c93f\]{background-color:#27c93f}.bg-\[\#ff5f56\]{background-color:#ff5f56}.bg-\[\#ffbd2e\]{background-color:#ffbd2e}.bg-accent\/10{background-color:color-mix(in srgb,hsl(var(--accent))10%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-accent\/10{background-color:color-mix(in oklab,var(--color-accent)10%,transparent)}}.bg-background{background-color:var(--color-background)}.bg-background\/98{background-color:color-mix(in srgb,hsl(var(--background))98%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-background\/98{background-color:color-mix(in oklab,var(--color-background)98%,transparent)}}.bg-black{background-color:var(--color-black)}.bg-black\/90{background-color:#000000e6}@supports (color:color-mix(in lab,red,red)){.bg-black\/90{background-color:color-mix(in oklab,var(--color-black)90%,transparent)}}.bg-border{background-color:var(--color-border)}.bg-card{background-color:var(--color-card)}.bg-card\/80{background-color:color-mix(in srgb,hsl(var(--card))80%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-card\/80{background-color:color-mix(in oklab,var(--color-card)80%,transparent)}}.bg-card\/90{background-color:color-mix(in srgb,hsl(var(--card))90%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-card\/90{background-color:color-mix(in oklab,var(--color-card)90%,transparent)}}.bg-card\/95{background-color:color-mix(in srgb,hsl(var(--card))95%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-card\/95{background-color:color-mix(in oklab,var(--color-card)95%,transparent)}}.bg-card\/98{background-color:color-mix(in srgb,hsl(var(--card))98%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-card\/98{background-color:color-mix(in oklab,var(--color-card)98%,transparent)}}.bg-muted{background-color:var(--color-muted)}.bg-muted-foreground\/30{background-color:color-mix(in srgb,hsl(var(--muted-foreground))30%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-muted-foreground\/30{background-color:color-mix(in oklab,var(--color-muted-foreground)30%,transparent)}}.bg-muted\/60{background-color:color-mix(in srgb,hsl(var(--muted))60%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/60{background-color:color-mix(in oklab,var(--color-muted)60%,transparent)}}.bg-primary{background-color:var(--color-primary)}.bg-primary\/5{background-color:color-mix(in srgb,hsl(var(--primary))5%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/5{background-color:color-mix(in oklab,var(--color-primary)5%,transparent)}}.bg-primary\/10{background-color:color-mix(in srgb,hsl(var(--primary))10%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/10{background-color:color-mix(in oklab,var(--color-primary)10%,transparent)}}.bg-primary\/30{background-color:color-mix(in srgb,hsl(var(--primary))30%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/30{background-color:color-mix(in oklab,var(--color-primary)30%,transparent)}}.bg-secondary{background-color:var(--color-secondary)}.bg-secondary\/30{background-color:color-mix(in srgb,hsl(var(--secondary))30%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-secondary\/30{background-color:color-mix(in oklab,var(--color-secondary)30%,transparent)}}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.gradient-text{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops));--tw-gradient-from:var(--color-gradient-1);--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));--tw-gradient-to:var(--color-gradient-2);color:#0000;-webkit-background-clip:text;background-clip:text}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-\[\#0f1419\]{--tw-gradient-from:#0f1419;--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-\[\#1e2837\]{--tw-gradient-from:#1e2837;--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-background{--tw-gradient-from:var(--color-background);--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-muted\/40{--tw-gradient-from:color-mix(in srgb,hsl(var(--muted))40%,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))}@supports (color:color-mix(in lab,red,red)){.from-muted\/40{--tw-gradient-from:color-mix(in oklab,var(--color-muted)40%,transparent)}}.from-primary{--tw-gradient-from:var(--color-primary);--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-primary\/10{--tw-gradient-from:color-mix(in srgb,hsl(var(--primary))10%,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))}@supports (color:color-mix(in lab,red,red)){.from-primary\/10{--tw-gradient-from:color-mix(in oklab,var(--color-primary)10%,transparent)}}.from-primary\/20{--tw-gradient-from:color-mix(in srgb,hsl(var(--primary))20%,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))}@supports (color:color-mix(in lab,red,red)){.from-primary\/20{--tw-gradient-from:color-mix(in oklab,var(--color-primary)20%,transparent)}}.via-\[\#1a1f2e\]{--tw-gradient-via:#1a1f2e;--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-blue-500{--tw-gradient-via:var(--color-blue-500);--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-card{--tw-gradient-via:var(--color-card);--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-\[\#1a1f2e\]{--tw-gradient-to:#1a1f2e;--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-\[\#2d3748\]{--tw-gradient-to:#2d3748;--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-\[\#151b28\]{--tw-gradient-to:#151b28;--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-background{--tw-gradient-to:var(--color-background);--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-cyan-500{--tw-gradient-to:var(--color-cyan-500);--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-muted\/20{--tw-gradient-to:color-mix(in srgb,hsl(var(--muted))20%,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))}@supports (color:color-mix(in lab,red,red)){.to-muted\/20{--tw-gradient-to:color-mix(in oklab,var(--color-muted)20%,transparent)}}.to-primary\/5{--tw-gradient-to:color-mix(in srgb,hsl(var(--primary))5%,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))}@supports (color:color-mix(in lab,red,red)){.to-primary\/5{--tw-gradient-to:color-mix(in oklab,var(--color-primary)5%,transparent)}}.bg-repeat{background-repeat:repeat}.mask-no-clip{-webkit-mask-clip:no-clip;mask-clip:no-clip}.mask-repeat{-webkit-mask-repeat:repeat;mask-repeat:repeat}.object-contain{object-fit:contain}.p-1{padding:calc(var(--spacing)*1)}.p-1\.5{padding:calc(var(--spacing)*1.5)}.p-2{padding:calc(var(--spacing)*2)}.p-2\.5{padding:calc(var(--spacing)*2.5)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-5{padding:calc(var(--spacing)*5)}.p-6{padding:calc(var(--spacing)*6)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-5{padding-inline:calc(var(--spacing)*5)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-8{padding-inline:calc(var(--spacing)*8)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2\.5{padding-block:calc(var(--spacing)*2.5)}.py-3\.5{padding-block:calc(var(--spacing)*3.5)}.py-4{padding-block:calc(var(--spacing)*4)}.py-5{padding-block:calc(var(--spacing)*5)}.py-6{padding-block:calc(var(--spacing)*6)}.py-10{padding-block:calc(var(--spacing)*10)}.py-16{padding-block:calc(var(--spacing)*16)}.py-20{padding-block:calc(var(--spacing)*20)}.py-24{padding-block:calc(var(--spacing)*24)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-2{padding-top:calc(var(--spacing)*2)}.pt-3{padding-top:calc(var(--spacing)*3)}.pt-4{padding-top:calc(var(--spacing)*4)}.pt-5{padding-top:calc(var(--spacing)*5)}.pt-6{padding-top:calc(var(--spacing)*6)}.pt-24{padding-top:calc(var(--spacing)*24)}.pr-8{padding-right:calc(var(--spacing)*8)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-8{padding-bottom:calc(var(--spacing)*8)}.pl-12{padding-left:calc(var(--spacing)*12)}.text-center{text-align:center}.text-left{text-align:left}.font-display{font-family:var(--font-display)}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--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-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.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-\[0\.08em\]{--tw-tracking:.08em;letter-spacing:.08em}.tracking-\[0\.15em\]{--tw-tracking:.15em;letter-spacing:.15em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-tighter{--tw-tracking:var(--tracking-tighter);letter-spacing:var(--tracking-tighter)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-wrap{text-wrap:wrap}.break-all{word-break:break-all}.text-clip{text-overflow:clip}.text-ellipsis{text-overflow:ellipsis}.text-accent{color:var(--color-accent)}.text-emerald-400{color:var(--color-emerald-400)}.text-foreground{color:var(--color-foreground)}.text-foreground\/50{color:color-mix(in srgb,hsl(var(--foreground))50%,transparent)}@supports (color:color-mix(in lab,red,red)){.text-foreground\/50{color:color-mix(in oklab,var(--color-foreground)50%,transparent)}}.text-foreground\/80{color:color-mix(in srgb,hsl(var(--foreground))80%,transparent)}@supports (color:color-mix(in lab,red,red)){.text-foreground\/80{color:color-mix(in oklab,var(--color-foreground)80%,transparent)}}.text-foreground\/90{color:color-mix(in srgb,hsl(var(--foreground))90%,transparent)}@supports (color:color-mix(in lab,red,red)){.text-foreground\/90{color:color-mix(in oklab,var(--color-foreground)90%,transparent)}}.text-muted-foreground{color:var(--color-muted-foreground)}.text-muted-foreground\/40{color:color-mix(in srgb,hsl(var(--muted-foreground))40%,transparent)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/40{color:color-mix(in oklab,var(--color-muted-foreground)40%,transparent)}}.text-primary{color:var(--color-primary)}.text-primary\/90{color:color-mix(in srgb,hsl(var(--primary))90%,transparent)}@supports (color:color-mix(in lab,red,red)){.text-primary\/90{color:color-mix(in oklab,var(--color-primary)90%,transparent)}}.text-sky-400{color:var(--color-sky-400)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.diagonal-fractions{--tw-numeric-fraction:diagonal-fractions;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.lining-nums{--tw-numeric-figure:lining-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.oldstyle-nums{--tw-numeric-figure:oldstyle-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.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,)}.proportional-nums{--tw-numeric-spacing:proportional-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.slashed-zero{--tw-slashed-zero:slashed-zero;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.stacked-fractions{--tw-numeric-fraction:stacked-fractions;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.normal-nums{font-variant-numeric:normal}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.overline{text-decoration-line:overline}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-35{opacity:.35}.opacity-40{opacity:.4}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.opacity-100{opacity:1}.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-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--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)}.shadow-sm{--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)}.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)}.inset-ring{--tw-inset-ring-shadow:inset 0 0 0 1px var(--tw-inset-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)}.ring-offset-background{--tw-ring-offset-color:var(--color-background)}.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,)}.blur-3xl{--tw-blur:blur(var(--blur-3xl));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,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a))drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a)drop-shadow(0 1px 1px #0000000f);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{--tw-backdrop-blur:blur(8px);-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,)}.backdrop-blur-lg{--tw-backdrop-blur:blur(var(--blur-lg));-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,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-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,)}.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,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));-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,)}.backdrop-grayscale{--tw-backdrop-grayscale:grayscale(100%);-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,)}.backdrop-invert{--tw-backdrop-invert:invert(100%);-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,)}.backdrop-sepia{--tw-backdrop-sepia:sepia(100%);-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,)}.backdrop-filter{-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;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.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!important;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))!important;transition-duration:var(--tw-duration,var(--default-transition-duration))!important}.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-shadow{transition-property:box-shadow;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-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.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)}.ease-spring{--tw-ease:var(--ease-spring);transition-timing-function:var(--ease-spring)}.select-none{-webkit-user-select:none;user-select:none}:where(.divide-x-reverse>:not(:last-child)){--tw-divide-x-reverse:1}.ring-inset{--tw-ring-inset:inset}@media (hover:hover){.group-hover\:line-clamp-none:is(:where(.group):hover *){-webkit-line-clamp:unset;-webkit-box-orient:horizontal;display:block;overflow:visible}.group-hover\:w-2:is(:where(.group):hover *){width:calc(var(--spacing)*2)}.group-hover\:w-full:is(:where(.group):hover *){width:100%}.group-hover\:-translate-x-1:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:translate-x-1:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:-translate-y-0\.5:is(:where(.group):hover *){--tw-translate-y:calc(var(--spacing)*-.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:scale-110:is(:where(.group):hover *){--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\:scale-x-100:is(:where(.group):hover *){--tw-scale-x:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\:animate-bounce:is(:where(.group):hover *){animation:var(--animate-bounce)}.group-hover\:bg-primary\/20:is(:where(.group):hover *){background-color:color-mix(in srgb,hsl(var(--primary))20%,transparent)}@supports (color:color-mix(in lab,red,red)){.group-hover\:bg-primary\/20:is(:where(.group):hover *){background-color:color-mix(in oklab,var(--color-primary)20%,transparent)}}.group-hover\:text-primary:is(:where(.group):hover *){color:var(--color-primary)}.group-hover\:text-primary-foreground:is(:where(.group):hover *){color:var(--color-primary-foreground)}.group-hover\:text-primary\/60:is(:where(.group):hover *){color:color-mix(in srgb,hsl(var(--primary))60%,transparent)}@supports (color:color-mix(in lab,red,red)){.group-hover\:text-primary\/60:is(:where(.group):hover *){color:color-mix(in oklab,var(--color-primary)60%,transparent)}}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.group-focus-visible\:scale-x-100:is(:where(.group):focus-visible *){--tw-scale-x:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-\[\.destructive\]\:border-muted\/40:is(:where(.group).destructive *){border-color:color-mix(in srgb,hsl(var(--muted))40%,transparent)}@supports (color:color-mix(in lab,red,red)){.group-\[\.destructive\]\:border-muted\/40:is(:where(.group).destructive *){border-color:color-mix(in oklab,var(--color-muted)40%,transparent)}}.group-\[\.destructive\]\:text-red-300:is(:where(.group).destructive *){color:var(--color-red-300)}@media (hover:hover){.hover\:translate-x-1:hover{--tw-translate-x:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:-translate-y-1:hover{--tw-translate-y:calc(var(--spacing)*-1);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\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:border-primary:hover{border-color:var(--color-primary)}.hover\:border-primary\/30:hover{border-color:color-mix(in srgb,hsl(var(--primary))30%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/30:hover{border-color:color-mix(in oklab,var(--color-primary)30%,transparent)}}.hover\:border-primary\/50:hover{border-color:color-mix(in srgb,hsl(var(--primary))50%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/50:hover{border-color:color-mix(in oklab,var(--color-primary)50%,transparent)}}.hover\:border-primary\/60:hover{border-color:color-mix(in srgb,hsl(var(--primary))60%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/60:hover{border-color:color-mix(in oklab,var(--color-primary)60%,transparent)}}.hover\:bg-\[\#32d44a\]:hover{background-color:#32d44a}.hover\:bg-\[\#ff6b62\]:hover{background-color:#ff6b62}.hover\:bg-\[\#ffc540\]:hover{background-color:#ffc540}.hover\:bg-primary:hover{background-color:var(--color-primary)}.hover\:bg-primary\/5:hover{background-color:color-mix(in srgb,hsl(var(--primary))5%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/5:hover{background-color:color-mix(in oklab,var(--color-primary)5%,transparent)}}.hover\:bg-primary\/10:hover{background-color:color-mix(in srgb,hsl(var(--primary))10%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/10:hover{background-color:color-mix(in oklab,var(--color-primary)10%,transparent)}}.hover\:bg-secondary:hover{background-color:var(--color-secondary)}.hover\:bg-secondary\/50:hover{background-color:color-mix(in srgb,hsl(var(--secondary))50%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-secondary\/50:hover{background-color:color-mix(in oklab,var(--color-secondary)50%,transparent)}}.hover\:from-primary:hover{--tw-gradient-from:var(--color-primary);--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))}.hover\:from-primary\/20:hover{--tw-gradient-from:color-mix(in srgb,hsl(var(--primary))20%,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))}@supports (color:color-mix(in lab,red,red)){.hover\:from-primary\/20:hover{--tw-gradient-from:color-mix(in oklab,var(--color-primary)20%,transparent)}}.hover\:to-primary\/10:hover{--tw-gradient-to:color-mix(in srgb,hsl(var(--primary))10%,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))}@supports (color:color-mix(in lab,red,red)){.hover\:to-primary\/10:hover{--tw-gradient-to:color-mix(in oklab,var(--color-primary)10%,transparent)}}.hover\:to-primary\/90:hover{--tw-gradient-to:color-mix(in srgb,hsl(var(--primary))90%,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))}@supports (color:color-mix(in lab,red,red)){.hover\:to-primary\/90:hover{--tw-gradient-to:color-mix(in oklab,var(--color-primary)90%,transparent)}}.hover\:text-foreground:hover{color:var(--color-foreground)}.hover\:text-primary:hover{color:var(--color-primary)}.hover\:text-primary-foreground:hover{color:var(--color-primary-foreground)}.hover\:text-primary\/80:hover{color:color-mix(in srgb,hsl(var(--primary))80%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:text-primary\/80:hover{color:color-mix(in oklab,var(--color-primary)80%,transparent)}}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-2xl:hover{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.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)}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px 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)}.hover\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px 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)}.hover\:shadow-primary\/10:hover{--tw-shadow-color:color-mix(in srgb,hsl(var(--primary))10%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:shadow-primary\/10:hover{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-primary)10%,transparent)var(--tw-shadow-alpha),transparent)}}.hover\:shadow-primary\/20:hover{--tw-shadow-color:color-mix(in srgb,hsl(var(--primary))20%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:shadow-primary\/20:hover{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-primary)20%,transparent)var(--tw-shadow-alpha),transparent)}}.hover\:shadow-primary\/30:hover{--tw-shadow-color:color-mix(in srgb,hsl(var(--primary))30%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:shadow-primary\/30:hover{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-primary)30%,transparent)var(--tw-shadow-alpha),transparent)}}.hover\:group-\[\.destructive\]\:text-red-50:hover:is(:where(.group).destructive *){color:var(--color-red-50)}}.focus\:opacity-100:focus{opacity:1}.focus\:ring-2:focus{--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\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus\:group-\[\.destructive\]\:ring-red-400:focus:is(:where(.group).destructive *){--tw-ring-color:var(--color-red-400)}.focus\:group-\[\.destructive\]\:ring-offset-red-600:focus:is(:where(.group).destructive *){--tw-ring-offset-color:var(--color-red-600)}.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-primary:focus-visible{--tw-ring-color:var(--color-primary)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\:scale-\[0\.99\]:active{scale:.99}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}.data-\[swipe\=cancel\]\:translate-x-0[data-swipe=cancel]{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end]{--tw-translate-x:var(--radix-toast-swipe-end-x);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x:var(--radix-toast-swipe-move-x);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[swipe\=move\]\:transition-none[data-swipe=move]{transition-property:none}@media (min-width:40rem){.sm\:top-auto{top:auto}.sm\:right-0{right:calc(var(--spacing)*0)}.sm\:bottom-0{bottom:calc(var(--spacing)*0)}.sm\:h-9{height:calc(var(--spacing)*9)}.sm\:min-h-0{min-height:calc(var(--spacing)*0)}.sm\:w-9{width:calc(var(--spacing)*9)}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-col{flex-direction:column}.sm\:py-1\.5{padding-block:calc(var(--spacing)*1.5)}.sm\:tracking-\[0\.15em\]{--tw-tracking:.15em;letter-spacing:.15em}}@media (min-width:48rem){.md\:left-4{left:calc(var(--spacing)*4)}.md\:left-8{left:calc(var(--spacing)*8)}.md\:col-span-2{grid-column:span 2/span 2}.md\:col-start-2{grid-column-start:2}.md\:col-start-3{grid-column-start:3}.md\:mb-10{margin-bottom:calc(var(--spacing)*10)}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-7{height:calc(var(--spacing)*7)}.md\:h-76{height:calc(var(--spacing)*76)}.md\:w-7{width:calc(var(--spacing)*7)}.md\:w-76{width:calc(var(--spacing)*76)}.md\:max-w-\[420px\]{max-width:420px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.md\:grid-cols-\[1fr_2fr\]{grid-template-columns:1fr 2fr}.md\:grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,2\.4fr\)\]{grid-template-columns:minmax(0,1fr) minmax(0,2.4fr)}.md\:flex-col{flex-direction:column}.md\:flex-row{flex-direction:row}.md\:items-start{align-items:flex-start}.md\:gap-3{gap:calc(var(--spacing)*3)}.md\:gap-10{gap:calc(var(--spacing)*10)}.md\:p-8{padding:calc(var(--spacing)*8)}.md\:pl-20{padding-left:calc(var(--spacing)*20)}.md\:text-left{text-align:left}.md\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.md\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.md\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.md\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.md\:text-7xl{font-size:var(--text-7xl);line-height:var(--tw-leading,var(--text-7xl--line-height))}.md\:text-9xl{font-size:var(--text-9xl);line-height:var(--tw-leading,var(--text-9xl--line-height))}.md\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.md\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}}@media (min-width:64rem){.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:justify-end{justify-content:flex-end}.lg\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.lg\:text-8xl{font-size:var(--text-8xl);line-height:var(--tw-leading,var(--text-8xl--line-height))}.lg\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}}@media (min-width:80rem){:where(.xl\:space-x-8>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*8)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*8)*calc(1 - var(--tw-space-x-reverse)))}}}#root{text-align:center;max-width:100%;margin:0 auto;padding:0}.terminal-window{--background:222 47% 11%;--foreground:210 20% 98%;--card:222 47% 14%;--primary:217 91% 60%;--primary-foreground:222 47% 11%;--muted-foreground:215 16% 65%;--accent:14 85% 62%;--accent-foreground:222 47% 11%;--border:222 30% 22%}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}::view-transition-old(root){z-index:0}::view-transition-new(root){z-index:1}@media (prefers-reduced-motion:reduce){::view-transition-group(*){animation:none!important}::view-transition-old(*){animation:none!important}::view-transition-new(*){animation:none!important}}.spotlight-text{--spot-x:50%;--spot-y:50%;background-image:radial-gradient(circle at var(--spot-x)var(--spot-y),hsl(var(--accent))0%,hsl(var(--primary))35%,hsl(var(--foreground))75%);color:#0000;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.scroll-progress,.scroll-progress-js{transform-origin:0;background:linear-gradient(90deg,hsl(var(--primary)),hsl(var(--accent)));width:100%;height:100%;transform:scaleX(0)}.scroll-progress-js{transition:transform .1s linear}@supports (animation-timeline:scroll()){.scroll-progress{animation:linear both scroll-progress-grow;animation-timeline:scroll(root)}@keyframes scroll-progress-grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}}.section-reveal{opacity:0;transition:opacity .6s,transform .6s;transform:translateY(24px)}.section-reveal.is-visible{opacity:1;filter:none;transform:none}.section-reveal .reveal-item{opacity:0;transition:opacity .5s,transform .5s;transition-delay:var(--reveal-delay,0s);transform:translateY(16px)}.section-reveal.is-visible .reveal-item{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.section-reveal,.section-reveal .reveal-item{opacity:1!important;filter:none!important;transition:none!important;transform:none!important}}.tilt-photo{--tilt-x:0deg;--tilt-y:0deg;--tilt-nx:0;--tilt-ny:0;--glare-x:50%;--glare-y:50%;--tilt-active:0;--tilt-shadow:hsl(var(--foreground)/.23);--tilt-edge:hsl(var(--primary)/.08);--tilt-glow-base:.3;--tilt-glow-lift:.25;perspective:900px;box-sizing:content-box;padding:1.25rem}.dark .tilt-photo{--tilt-shadow:hsl(var(--background)/.85);--tilt-edge:hsl(var(--primary)/.3);--tilt-glow-base:.65;--tilt-glow-lift:.3}.tilt-photo-plane{width:100%;height:100%;transform:rotateX(var(--tilt-x))rotateY(var(--tilt-y))scale(calc(1 + .05*var(--tilt-active)));transform-style:preserve-3d;will-change:transform;position:relative}.tilt-photo-glow{background:radial-gradient(ellipse at calc(42% - (var(--tilt-nx)*30%))calc(50% - (var(--tilt-ny)*30%)),hsl(var(--primary)),transparent 68%),radial-gradient(ellipse at 76% 78%,hsl(var(--accent)),transparent 55%);filter:blur(24px);opacity:calc(var(--tilt-glow-base) + var(--tilt-glow-lift)*var(--tilt-active));pointer-events:none;position:absolute;top:8%;right:-9%;bottom:-5%;left:-9%;transform:translateZ(-60px)}@supports (color:color-mix(in lab,red,red)){.tilt-photo-glow{background:radial-gradient(ellipse at calc(42% - (var(--tilt-nx)*30%))calc(50% - (var(--tilt-ny)*30%)),color-mix(in oklab,hsl(var(--primary))55%,transparent),transparent 68%),radial-gradient(ellipse at 76% 78%,color-mix(in oklab,hsl(var(--accent))42%,transparent),transparent 55%)}}.tilt-photo-img,.tilt-photo-fallback{filter:drop-shadow(0 0 3px var(--tilt-edge))drop-shadow(calc(var(--tilt-nx)*-14px)calc(14px + (var(--tilt-ny)*-18px))calc(12px + 8px*var(--tilt-active))var(--tilt-shadow));position:relative;transform:translateZ(18px)}.tilt-photo-img{object-fit:contain;width:100%;height:100%;display:block}.tilt-photo-fallback{background:hsl(var(--card));width:100%;height:100%;color:hsl(var(--primary));-webkit-user-select:none;user-select:none;border-radius:1.5rem;justify-content:center;align-items:center;font-size:clamp(2.75rem,6vw,3.75rem);font-weight:700;display:flex}@media (pointer:coarse){.tilt-photo{--tilt-active:.4}.tilt-photo-plane{animation:9s ease-in-out infinite tilt-photo-sway}}@keyframes tilt-photo-sway{0%,to{transform:rotateX(3deg)rotateY(-5deg)scale(1.01)}50%{transform:rotateX(-3deg)rotateY(5deg)scale(1.01)}}@media (prefers-reduced-motion:reduce){.tilt-photo-plane{animation:none!important;transform:none!important}.tilt-photo{--tilt-active:0}}.about-section{overflow:clip}.about-composition{align-items:center;gap:2.75rem;display:grid}.about-portrait{width:100%;min-width:0;max-width:32rem;margin-inline:auto}.about-portrait-stage{isolation:isolate;position:relative}.about-portrait-stage:before{content:"";z-index:-1;background:radial-gradient(ellipse at 25% 42%,hsl(var(--primary)/.3),hsl(var(--primary)/0)65%),radial-gradient(ellipse at 85% 70%,hsl(var(--accent)/.23),hsl(var(--accent)/0)60%);filter:blur(28px);pointer-events:none;position:absolute;top:4%;right:-8%;bottom:-3%;left:-8%}.about-portrait-stage:after{content:"";border-top:1px solid hsl(var(--accent)/.8);border-right:1px solid hsl(var(--accent)/.8);pointer-events:none;width:2.5rem;height:2.5rem;position:absolute;top:7%;right:1%}.about-photo.tilt-photo{box-sizing:border-box;aspect-ratio:1/1.08;perspective:1400px;--tilt-glow-base:.7;--tilt-glow-lift:.2;width:100%;padding:.75rem}.about-photo .tilt-photo-plane{transform:rotateX(var(--tilt-x))rotateY(var(--tilt-y))scale(calc(1 + .006*var(--tilt-active)));transform-style:flat}.about-photo .tilt-photo-plane:before{content:"";border:1px solid hsl(var(--primary)/.3);background:radial-gradient(ellipse at var(--glare-x)var(--glare-y),hsl(var(--primary)/.2),hsl(var(--primary)/0)72%),linear-gradient(145deg,hsl(var(--card)),hsl(var(--secondary)));box-shadow:inset 0 1px hsl(var(--foreground)/.08),0 24px 48px -30px hsl(var(--primary)/.4);pointer-events:none;border-radius:5rem 1.5rem 1.5rem;position:absolute;top:0;right:0;bottom:0;left:0;transform:translateZ(-25px)}.about-photo .tilt-photo-glow{top:4%;right:-5%;bottom:0;left:-5%;transform:none}.portrait-media{border:1px solid hsl(var(--primary)/.3);opacity:0;border-radius:5rem 1.5rem 1.5rem;width:100%;height:100%;position:relative;overflow:hidden;transform:translateY(12px)}.about-portrait.is-revealed .portrait-media{opacity:1;transition:opacity .6s,transform .6s cubic-bezier(.22,1,.36,1);transform:none}.portrait-photo,.portrait-video,.portrait-initials{width:100%;height:100%;position:absolute;top:0;right:0;bottom:0;left:0}.portrait-photo{object-fit:cover;object-position:center}.portrait-video{object-fit:cover;opacity:0;pointer-events:none;display:block}.about-portrait.is-revealed .portrait-video.is-ready{opacity:1}.portrait-play-fallback{z-index:1;border:1px solid hsl(var(--border));background:hsl(var(--card));min-height:44px;color:hsl(var(--foreground));font-family:var(--font-body);cursor:pointer;border-radius:.625rem;align-items:center;gap:.375rem;padding:.5rem .75rem;font-size:.8125rem;display:inline-flex;position:absolute;bottom:.75rem;right:.75rem}.portrait-play-fallback:focus-visible{outline:2px solid hsl(var(--primary));outline-offset:3px}.portrait-media[role=button]:focus-visible{outline:2px solid hsl(var(--accent));outline-offset:3px}@media (hover:hover) and (pointer:fine){.portrait-media[role=button]{cursor:pointer}}.portrait-initials{font-family:var(--font-display);color:hsl(var(--primary));background:hsl(var(--card));place-items:center;font-size:clamp(4rem,12vw,8rem);font-weight:700;display:grid}.about-portrait.is-revealed .about-portrait-stage:after{animation:.8s .25s both portrait-bracket-reveal}@keyframes portrait-bracket-reveal{0%{opacity:0;transform:translate(-6px,6px)}to{opacity:1;transform:none}}.about-photo .tilt-photo-img{object-position:center bottom;border-radius:0 0 1.5rem 1.5rem}.about-photo .tilt-photo-fallback{font-family:var(--font-display);border:1px solid hsl(var(--primary)/.3);border-radius:5rem 1.5rem 1.5rem;font-size:clamp(4rem,12vw,8rem)}.about-portrait-caption{border-top:1px solid hsl(var(--primary)/.3);text-align:left;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;margin:1rem .75rem 0;padding-top:1rem;font-size:.8125rem;display:flex}.about-copy{min-width:0;max-width:34rem;margin-inline:auto}.about-eyebrow{letter-spacing:.12em;text-transform:uppercase;margin-bottom:1.25rem;font-size:.75rem}@media (min-width:1024px){.about-composition{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(3rem,6vw,6rem)}}@media (pointer:coarse){.about-photo .tilt-photo-plane{animation:none;transform:none}}@media (prefers-reduced-motion:reduce){.about-portrait .portrait-media{opacity:1;transition:none;transform:none}.about-portrait .about-portrait-stage:after{animation:none}.portrait-video{display:none}.about-photo{--tilt-nx:0!important;--tilt-ny:0!important;--tilt-active:0!important;--glare-x:50%!important;--glare-y:50%!important}}.contrib-cell{transition:transform .2s var(--ease-spring);cursor:default;border-radius:2px}.contrib-cell[data-level="0"]{background:hsl(var(--muted))}.contrib-cell[data-level="1"]{background:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.contrib-cell[data-level="1"]{background:color-mix(in oklab,hsl(var(--primary))28%,hsl(var(--muted)))}}.contrib-cell[data-level="2"]{background:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.contrib-cell[data-level="2"]{background:color-mix(in oklab,hsl(var(--primary))55%,hsl(var(--muted)))}}.contrib-cell[data-level="3"]{background:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.contrib-cell[data-level="3"]{background:color-mix(in oklab,hsl(var(--primary))80%,hsl(var(--muted)))}}.contrib-cell[data-level="4"]{background:hsl(var(--primary))}.contrib-cell-wrap{position:relative}.contrib-cell-wrap:hover .contrib-cell,.contrib-cell-wrap:focus-within .contrib-cell{z-index:1;position:relative;transform:scale(1.4)}.contrib-tooltip{white-space:nowrap;border:1px solid hsl(var(--border));background:hsl(var(--card));color:hsl(var(--foreground));font-family:var(--font-mono);box-shadow:0 8px 20px -8px hsl(var(--background)/.6);opacity:0;pointer-events:none;z-index:2;border-radius:.375rem;padding:.25rem .5rem;font-size:.6875rem;transition:opacity .15s,transform .15s;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)translateY(2px)}.contrib-cell-wrap:hover .contrib-tooltip,.contrib-cell-wrap:focus-within .contrib-tooltip{opacity:1;transform:translate(-50%)translateY(0)}.section-reveal .contrib-week.reveal-item{transform:translateY(10px)scale(.9)}.section-reveal.is-visible .contrib-week.reveal-item{transform:none}.contrib-skeleton{background:linear-gradient(90deg,hsl(var(--muted))25%,hsl(var(--muted)),hsl(var(--muted))75%);background-size:200% 100%;animation:1.6s ease-in-out infinite contrib-shimmer}@supports (color:color-mix(in lab,red,red)){.contrib-skeleton{background:linear-gradient(90deg,hsl(var(--muted))25%,color-mix(in oklab,hsl(var(--muted))50%,transparent),hsl(var(--muted))75%)}}@keyframes contrib-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.contrib-skeleton{animation:none}.contrib-cell,.contrib-tooltip{transition:none}.contrib-cell-wrap:hover .contrib-cell{transform:none}}.portfolio-page{text-align:left}.portfolio-container{width:100%;max-width:72rem;margin-inline:auto}.portfolio-section{background:hsl(var(--background));padding:clamp(4.5rem,7vw,7rem) 1rem}.portfolio-page section{scroll-margin-top:7rem}.portfolio-section>.portfolio-container{z-index:1;position:relative}.portfolio-section:is(#skills,#github){background:linear-gradient(180deg,hsl(var(--secondary)/0),hsl(var(--secondary)/.55)35%,hsl(var(--secondary)/0))}.portfolio-section:is(#projects,#github,#contact):before{content:"";pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0}#projects:before{background:radial-gradient(ellipse 55% 30% at 5% 6%,hsl(var(--primary)/.07),hsl(var(--primary)/0)),radial-gradient(ellipse 60% 22% at 100% 100%,hsl(var(--accent)/.06),hsl(var(--accent)/0));-webkit-mask-image:linear-gradient(transparent,hsl(var(--foreground))8rem);mask-image:linear-gradient(transparent,hsl(var(--foreground))8rem)}#github:before{background:radial-gradient(ellipse 60% 22% at 100% 0%,hsl(var(--accent)/.06),hsl(var(--accent)/0)),radial-gradient(ellipse 60% 22% at 0% 100%,hsl(var(--primary)/.06),hsl(var(--primary)/0))}#contact:before{background:radial-gradient(ellipse 60% 22% at 0% 0%,hsl(var(--primary)/.06),hsl(var(--primary)/0)),radial-gradient(ellipse at 100% 80%,hsl(var(--accent)/.05),hsl(var(--accent)/0)55%)}.nav-container{padding-inline:1rem}.section-heading{text-align:left;margin-bottom:clamp(2.5rem,5vw,4rem)}.section-heading-label{align-items:center;gap:1.5rem;margin-bottom:1.5rem;display:flex}.section-heading-label>span:first-child,.eyebrow{font-family:var(--font-mono);letter-spacing:.13em;text-transform:uppercase;color:hsl(var(--accent));font-size:.6875rem}.section-heading-rule{border-top:1px solid hsl(var(--primary)/.3);border-right:1px solid hsl(var(--accent)/.65);flex:1;min-width:1rem;height:.6rem}.section-heading h2{text-wrap:balance;max-width:20ch;font-size:clamp(2.25rem,4vw,3.5rem);line-height:1.12}.section-heading-description{max-width:40rem;color:hsl(var(--muted-foreground));margin-top:1rem;line-height:1.7}.portfolio-page :is(a,button,summary,[tabindex]):focus-visible{outline:2px solid hsl(var(--primary));outline-offset:5px}.action-link,.text-link{justify-content:flex-start;align-items:center;gap:.5rem;min-height:2.75rem;display:inline-flex}.action-link{border:1px solid hsl(var(--border));background:hsl(var(--card));border-radius:.5rem;padding:.5rem .75rem;font-size:.75rem;font-weight:500}.action-link,.text-link,.chip-button,.repo-link,.contact-email,.content-disclosure summary{transition:color .18s ease,background-color .18s ease,border-color .18s ease,opacity .12s ease,transform .22s var(--ease-spring);touch-action:manipulation}.action-link:is(:hover,:focus-visible){border-color:hsl(var(--primary)/.5);background:hsl(var(--primary)/.06);color:hsl(var(--primary));transform:translateY(-1px)}.text-link:is(:hover,:focus-visible){color:hsl(var(--primary));text-underline-offset:5px;text-decoration:underline}.action-arrow{transition:transform .22s var(--ease-spring);flex-shrink:0}:is(a,button):is(:hover,:focus-visible)>.action-arrow{transform:translate(2px,-2px)}.action-link:active,.chip-button:active{background:hsl(var(--primary)/.12);transform:translateY(0)}:is(.text-link,.contact-email,.content-disclosure summary):active{opacity:.72}.content-disclosure summary:hover{text-underline-offset:5px;text-decoration:underline}.chip-button{border:1px solid hsl(var(--border));background:hsl(var(--card));min-height:2.75rem;font:.75rem/1 var(--font-mono);color:hsl(var(--muted-foreground));cursor:pointer;border-radius:.375rem;align-items:center;padding-inline:.75rem;display:inline-flex}.chip-button:is(:hover,:focus-visible){border-color:hsl(var(--primary)/.5);background:hsl(var(--primary)/.06);color:hsl(var(--primary));transform:translateY(-1px)}.chip-button[aria-pressed=true]{border-color:hsl(var(--primary));background:hsl(var(--primary)/.1);color:hsl(var(--primary))}.project-description{max-width:75ch;color:hsl(var(--muted-foreground));font-size:.9375rem;line-height:1.8}.project-results{border:1px solid hsl(var(--primary)/.25);background:linear-gradient(135deg,hsl(var(--primary)/.07),hsl(var(--primary)/.02));border-radius:.75rem;margin-top:1.25rem;padding:1rem 1.125rem}.project-results-title{font:500 .6875rem/1 var(--font-mono);letter-spacing:.13em;text-transform:uppercase;color:hsl(var(--accent));margin-bottom:.875rem}.project-results-list{gap:1rem;display:grid}.project-result{flex-direction:column;gap:.5rem;min-width:0;display:flex}.project-result+.project-result{border-top:1px solid hsl(var(--primary)/.15);padding-top:1rem}.project-result-value{min-height:2rem;font:600 1.75rem/1 var(--font-mono);letter-spacing:-.02em;color:hsl(var(--primary));font-variant-numeric:tabular-nums;align-items:center;display:flex}.project-result-value svg{width:1.625rem;height:1.625rem;color:hsl(var(--accent))}.project-result-digits{text-align:right;display:inline-block}.project-result-label{font:.75rem/1.6 var(--font-mono);color:hsl(var(--foreground)/.8)}.content-disclosure{margin-top:.5rem}.content-disclosure summary{cursor:pointer;width:fit-content;min-height:2.75rem;color:hsl(var(--primary));align-items:center;gap:.5rem;font-size:.8125rem;font-weight:500;list-style:none;display:flex}.content-disclosure summary::-webkit-details-marker{display:none}.content-disclosure summary svg{transition:transform .2s var(--ease-spring)}.content-disclosure[open]>summary svg{transform:rotate(180deg)}.project-tags{flex-wrap:wrap;gap:.5rem;margin-block:1.25rem;display:flex}.tech-tag{border:1px solid hsl(var(--border));background:hsl(var(--muted)/.5);font:.6875rem/1.5 var(--font-mono);color:hsl(var(--muted-foreground));border-radius:.375rem;align-items:center;gap:.4rem;padding:.375rem .5rem;display:inline-flex}.tech-tag-image{object-fit:contain;width:1rem;height:1rem}.project-evidence{border-top:1px solid hsl(var(--border));flex-wrap:wrap;gap:.5rem;padding-top:1rem;display:flex}.project-tags-title{font:500 .6875rem/1.4 var(--font-mono);letter-spacing:.13em;text-transform:uppercase;color:hsl(var(--muted-foreground));margin-top:1.75rem}.project-tags-title+.project-tags{margin-top:.75rem}.case-facts{border-top:1px solid hsl(var(--primary)/.3);gap:.875rem 2rem;margin-top:1.25rem;padding-top:1rem;display:grid;position:relative}.case-facts:after{content:"";background:hsl(var(--accent)/.65);width:1px;height:.6rem;position:absolute;top:-1px;right:0}.case-facts>div{min-width:0}.case-facts dt{font:500 .625rem/1.4 var(--font-mono);letter-spacing:.13em;text-transform:uppercase;color:hsl(var(--muted-foreground));margin-bottom:.375rem}.case-facts dd{font:.8125rem/1.55 var(--font-mono);color:hsl(var(--foreground))}.case-facts dd.case-facts-figure{font:600 1.375rem/1 var(--font-display);color:hsl(var(--primary));font-variant-numeric:tabular-nums}.elif-rows{margin-top:1.5rem}.elif-row{border-top:1px solid hsl(var(--primary)/.15);border-radius:.125rem;gap:.75rem;padding-block:1.25rem;scroll-margin-top:7rem;display:grid;position:relative}.elif-row-meta{flex-wrap:wrap;align-items:center;gap:.5rem .75rem;display:flex}.elif-row-index{font:500 1.25rem/1 var(--font-mono);color:hsl(var(--muted-foreground));transition:color .3s}.elif-row:hover .elif-row-index{color:hsl(var(--primary))}.role-badge{border:1px solid hsl(var(--border));font:500 .6875rem/1.4 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:hsl(var(--muted-foreground));white-space:nowrap;border-radius:9999px;align-items:center;padding:.1875rem .5rem;display:inline-flex}.role-badge[data-role=solo]{border-color:hsl(var(--accent)/.55);background:hsl(var(--accent)/.08);color:hsl(var(--accent))}.elif-row-body{min-width:0}.elif-row-title{font:600 1.125rem/1.35 var(--font-display);letter-spacing:-.01em}.elif-row-label{font:.75rem/1.6 var(--font-mono);color:hsl(var(--foreground)/.8);margin-top:.25rem}.elif-row-tech{flex-wrap:wrap;gap:.5rem .875rem;margin-top:.875rem;display:flex}.tech-chip{font:.6875rem/1.5 var(--font-mono);color:hsl(var(--muted-foreground));align-items:center;gap:.45rem;display:inline-flex}.tech-chip-icon{border-radius:.375rem;flex-shrink:0;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;display:flex}.tech-chip-icon img{object-fit:contain;width:.875rem;height:.875rem}.elif-row-summary{max-width:68ch;color:hsl(var(--muted-foreground));margin-top:.875rem;font-size:.875rem;line-height:1.75}.elif-row-highlights{font:.6875rem/1.7 var(--font-mono);color:hsl(var(--foreground)/.75);flex-wrap:wrap;gap:.25rem .5rem;margin-top:.625rem;display:flex}.elif-row-highlights li:not(:last-child):after{content:"·";color:hsl(var(--accent));margin-left:.5rem}.repo-link{max-width:100%;min-height:2.75rem;font:500 .6875rem/1.4 var(--font-mono);color:hsl(var(--foreground));border-radius:.5rem;align-items:center;margin:.5rem 0 0 -.375rem;padding-inline:.375rem .5rem;display:inline-flex}.repo-prompt{color:hsl(var(--accent))}.repo-path{white-space:nowrap;position:relative}.repo-link .action-arrow{color:hsl(var(--primary));margin-left:.25rem}.repo-link:is(:hover,:focus-visible){color:hsl(var(--primary));background:hsl(var(--primary)/.06);transform:translateY(-1px)}.repo-link:active{background:hsl(var(--primary)/.12);transform:translateY(0)}@media not all and (min-width:400px){.repo-prompt{display:none}}.case-facts{grid-auto-flow:column;justify-content:start;column-gap:2.5rem}@media (min-width:640px){.elif-row{grid-template-columns:8.5rem minmax(0,1fr);gap:1.5rem;padding-block:1.75rem}.elif-row-meta{flex-direction:column;align-items:flex-start;gap:.625rem}.repo-link{font-size:.75rem}}.availability-line{max-width:36ch;color:hsl(var(--foreground)/.72);text-align:left;text-wrap:balance;margin-top:2rem;font-size:clamp(1rem,.92rem + .25vw,1.125rem);font-weight:400;line-height:1.6}.availability-line:lang(fr){max-width:100%}@media not all and (min-width:640px){.availability-line,.contact-content .availability-line{max-width:100%}}.availability-key{color:hsl(var(--accent));font-weight:500}.hero-copy .availability-line{opacity:0;transform:translateY(8px)}.hero-copy.is-typed .availability-line{opacity:1;transition:opacity .6s ease-out,transform .6s cubic-bezier(.22,1,.36,1);transform:none}.contact-content .availability-line{max-width:40ch;margin-top:1rem;font-size:1.125rem}@media (prefers-reduced-motion:reduce){.hero-copy .availability-line{opacity:1!important;transition:none!important;transform:none!important}}.contact-section .section-heading{margin-bottom:1.5rem}.contact-email{border-bottom:1px solid hsl(var(--primary)/.4);width:fit-content;max-width:100%;font:500 clamp(1.1rem,3.1vw,2.5rem)/1.4 var(--font-display);letter-spacing:-.03em;color:hsl(var(--primary));justify-content:space-between;align-items:center;gap:.5rem;margin-block:2rem;padding-block:.75rem;display:flex}html:not(.dark) .contact-email{color:#0950c3}.contact-email span{overflow-wrap:anywhere}.contact-email svg{width:1em;height:1em}.contact-meta{color:hsl(var(--muted-foreground));font-family:var(--font-mono);flex-direction:column;gap:.5rem 2rem;font-size:.8125rem;display:flex}.contact-meta>span{align-items:center;gap:.5rem;min-height:2.75rem;display:inline-flex}.skills-panels{gap:1rem;display:grid}.skill-panel{border:1px solid hsl(var(--border));background:hsl(var(--card));border-radius:1rem;padding:1.25rem}.skill-panel-primary{border-color:hsl(var(--primary)/.35);background:radial-gradient(ellipse at 100% 0,hsl(var(--primary)/.1),hsl(var(--primary)/0)70%),hsl(var(--card));grid-column:1/-1}.skill-panel-heading{border-bottom:1px solid hsl(var(--primary)/.2);align-items:center;gap:.75rem;margin-bottom:1rem;padding-bottom:1rem;display:flex}.skill-panel-heading>span{font:.6875rem var(--font-mono);color:hsl(var(--accent))}.skill-panel-heading h3{font-size:1.125rem}.skill-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem 1rem;display:grid}.skill-list li{align-items:center;gap:.65rem;min-width:0;min-height:2.75rem;font-size:.8125rem;line-height:1.5;display:flex}.skill-list li>span:last-child{overflow-wrap:anywhere;min-width:0}.skill-icon{flex-shrink:0;justify-content:center;align-items:center;width:1.5rem;display:flex}.skill-icon img{object-fit:contain;width:1.5rem;height:1.5rem}.skill-icon:has(img),.tech-tag-image{background:hsl(var(--card));border-radius:.25rem;padding:2px}.dark .skill-icon:has(img),.dark .tech-tag-image{background:hsl(var(--foreground))}.experience-timeline{gap:2rem;display:grid}.experience-entry{padding-left:1rem;position:relative}.experience-entry:before{content:"";background:linear-gradient(hsl(var(--primary)/.5),hsl(var(--border)));transform-origin:top;width:1px;transition:transform .6s;position:absolute;top:.6rem;bottom:-2rem;left:3px;transform:scaleY(0)}.experience-entry:last-child:before{bottom:0}.experience-entry.is-visible:before{transform:scaleY(1)}.experience-node{background:hsl(var(--primary));border-radius:50%;width:7px;height:7px;position:absolute;top:.3rem;left:0}.experience-entry.is-visible .experience-node{animation:.9s ease-out both experience-arrival}@keyframes experience-arrival{0%{box-shadow:0 0 0 6px hsl(var(--accent)/.25);background:hsl(var(--accent))}to{box-shadow:0 0 hsl(var(--accent)/0);background:hsl(var(--primary))}}.experience-card{border-bottom:1px solid hsl(var(--border));padding:0 0 2rem .5rem}.experience-date{font:.75rem/1.7 var(--font-mono);color:hsl(var(--foreground)/.82);margin-bottom:1.25rem}.experience-company{align-items:center;gap:.75rem;display:flex}.experience-company>div:last-child{min-width:0}.experience-location{color:hsl(var(--foreground)/.82);align-items:center;gap:.4rem;margin-top:.5rem;font-size:.875rem;display:flex}.experience-highlight{font:700 1.1875rem/1.45 var(--font-display);color:hsl(var(--primary));margin-block:1.5rem 1rem}.experience-description{max-width:78ch;color:hsl(var(--foreground)/.82);font-size:.9375rem;line-height:1.8}.experience-technologies{font:.8125rem/1.8 var(--font-mono);color:hsl(var(--foreground)/.84);margin-top:1.25rem}.experience-card .text-muted-foreground{color:hsl(var(--foreground)/.82)}.experience-details{margin-block:.75rem 1rem}.experience-environment{border:1px solid hsl(var(--border));background:hsl(var(--card));border-radius:.75rem;gap:1.5rem;padding:1rem;display:grid}.experience-environment .tech-tag{max-width:100%;color:hsl(var(--foreground)/.86);font-size:.75rem}.experience-environment .eyebrow{color:hsl(var(--foreground)/.82)}.experience-details>summary{color:hsl(var(--foreground)/.88)}.experience-environment .tech-tag>span{overflow-wrap:anywhere}.experience-environment .tech-tag :is(img,svg){width:1rem;height:1rem}.portfolio-footer{border-top:1px solid hsl(var(--primary)/.2);background:hsl(var(--card)/.5);padding:3rem 1rem 2rem}.footer-main{flex-direction:column;justify-content:space-between;gap:1.5rem;display:flex}.footer-navigation{font:.75rem var(--font-mono);flex-wrap:wrap;align-items:flex-start;gap:.5rem 1.5rem;display:flex}.footer-links{color:hsl(var(--muted-foreground));flex-wrap:wrap;align-items:center;gap:.5rem 1.5rem;margin-block:1.5rem 2rem;font-size:.8125rem;display:flex}.footer-copyright{border-top:1px solid hsl(var(--border));color:hsl(var(--muted-foreground));padding-top:1.5rem;padding-right:3.5rem;font-size:.75rem}.activity-panel{border:1px solid hsl(var(--border));background:hsl(var(--card));border-radius:1rem;padding:1.25rem}.activity-header{flex-direction:column;justify-content:space-between;gap:1.5rem;margin-bottom:1.5rem;display:flex}.activity-total{flex-direction:column;gap:.4rem;display:flex}.activity-total strong{font:600 2.5rem/1 var(--font-display);color:hsl(var(--primary));font-variant-numeric:tabular-nums}.activity-total span{font:.75rem var(--font-mono);color:hsl(var(--muted-foreground))}.activity-years{flex-wrap:wrap;gap:.5rem;display:flex}.contrib-scroll{padding-top:.5rem}.contrib-scroll-cue{font:.6875rem/1.7 var(--font-mono);color:hsl(var(--muted-foreground));margin-bottom:.75rem}.contrib-cell[data-selected=true]{outline:2px solid hsl(var(--accent));outline-offset:1px}.contrib-detail{min-height:2.75rem;font:.6875rem/1.7 var(--font-mono);color:hsl(var(--muted-foreground));margin-top:1rem}@media (min-width:640px){.skills-panels{grid-template-columns:repeat(2,minmax(0,1fr))}.skill-panel-primary .skill-list{grid-template-columns:repeat(3,minmax(0,1fr))}.experience-entry{padding-left:2.5rem}.experience-date{font-size:.75rem}.experience-environment{grid-template-columns:repeat(2,minmax(0,1fr));padding:1.5rem}.portfolio-footer{padding-inline:2rem}.activity-header{flex-direction:row;align-items:center}.activity-panel{padding:2rem}}@media (min-width:1024px){.skills-panels{grid-template-columns:repeat(3,minmax(0,1fr))}.skill-panel-primary .skill-list{grid-template-columns:repeat(4,minmax(0,1fr))}.skill-panel{padding:1.5rem}.footer-main{flex-direction:row}.contrib-scroll-cue{display:none}}.hero-section{background:linear-gradient(145deg,hsl(var(--background)),hsl(var(--card)),hsl(var(--background)));align-items:center;min-height:100svh;padding:8rem 1rem 4.5rem;display:flex;overflow:clip}.hero-layout{align-items:center;gap:3rem;display:grid;position:relative}.hero-copy{text-align:left;min-width:0}.hero-copy h1{letter-spacing:-.05em;flex-direction:column;align-items:flex-start;font-size:clamp(3.5rem,6.6vw,6rem);line-height:1.06;display:flex}.hero-copy h1>span:first-child{color:hsl(var(--foreground)/.8);font-weight:500}.hero-role{font:600 clamp(1.125rem,2vw,1.5rem)/1.5 var(--font-display);margin-top:1.75rem}.hero-description{max-width:36ch;color:hsl(var(--muted-foreground));margin-top:1rem;font-size:1.0625rem;line-height:1.8}.hero-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-top:2rem;display:grid}.hero-button{border:1px solid hsl(var(--primary)/.4);background:hsl(var(--card));min-height:3.25rem;transition:transform .22s var(--ease-spring),box-shadow .22s ease;border-radius:.65rem;justify-content:center;align-items:center;gap:.5rem;padding:.75rem;font-size:.875rem;font-weight:600;display:inline-flex}.hero-button-primary{color:hsl(var(--primary-foreground));border-color:hsl(var(--primary));background:hsl(var(--primary))}.hero-button:is(:hover,:focus-visible){box-shadow:0 8px 20px -12px hsl(var(--primary)/.5);transform:translateY(-2px)}.hero-button:active{transform:translateY(0)}.hero-discover{font:.75rem var(--font-mono);color:hsl(var(--primary));margin-top:1.25rem}.hero-portrait{z-index:1;aspect-ratio:1254/1096;pointer-events:none;width:min(100%,22rem);margin:.5rem auto 0;position:relative}.hero-portrait-glow{pointer-events:none;background:radial-gradient(ellipse 44% 48% at 50% 30%,hsl(var(--accent)/.46),hsl(var(--accent)/0)72%),radial-gradient(ellipse 70% 62% at 50% 64%,hsl(var(--primary)/.3),hsl(var(--primary)/0)76%);position:absolute;top:-6%;right:-16%;bottom:0;left:-16%;-webkit-mask-image:linear-gradient(#0000 0,#000 16% 46%,#0000 80%);mask-image:linear-gradient(#0000 0,#000 16%,#000 46%,#0000 80%)}.hero-portrait-figure{transform:translate3d(var(--par-x,0px),var(--par-y,0px),0);position:absolute;top:0;right:0;bottom:0;left:0}.hero-portrait-figure img{object-fit:contain;object-position:50% 100%;width:100%;height:100%;filter:drop-shadow(0 0 1px hsl(var(--accent)/.6))drop-shadow(0 0 24px hsl(var(--accent)/.34));display:block;-webkit-mask-image:radial-gradient(68% 130% at 50% 34%,#000 62%,#0000 100%),linear-gradient(#000 74%,#0000 100%);mask-image:radial-gradient(68% 130% at 50% 34%,#000 62%,#0000),linear-gradient(#000 74%,#0000);-webkit-mask-composite:source-in;mask-composite:intersect}.hero-portrait-fade{pointer-events:none;background:linear-gradient(to bottom,hsl(var(--background)/0)0,hsl(var(--background))50%,hsl(var(--background))80%,hsl(var(--background)/0));height:62%;position:absolute;bottom:-14%;left:-14%;right:-14%;-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 16% 84%,#0000 100%);mask-image:linear-gradient(90deg,#0000 0,#000 16%,#000 84%,#0000)}html:not(.dark) .hero-portrait-glow{background:radial-gradient(ellipse 40% 44% at 50% 30%,hsl(var(--accent)/.5),hsl(var(--accent)/0)),radial-gradient(ellipse 50% 60% at 50% 52%,#172340ed,#172340db 52%,#17234000);top:-6%;right:-10%;bottom:0;left:-10%}.hero-portrait.is-3d-pending .hero-portrait-figure img{animation:1.4s cubic-bezier(.25,.6,.3,1) 5s both hero-emerge-late}.hero-portrait:not(.is-3d-pending) .hero-portrait-figure img{transition:filter .6s ease-out}@keyframes hero-emerge{0%{filter:blur(8px)drop-shadow(0 0 1px hsl(var(--accent)/0))drop-shadow(0 0 24px hsl(var(--accent)/0));transform:translateY(24px)}to{filter:blur(0)drop-shadow(0 0 1px hsl(var(--accent)/.6))drop-shadow(0 0 24px hsl(var(--accent)/.34));transform:none}}@keyframes hero-emerge-late{0%{filter:blur(8px)drop-shadow(0 0 1px hsl(var(--accent)/0))drop-shadow(0 0 24px hsl(var(--accent)/0));transform:translateY(24px)}to{filter:blur(0)drop-shadow(0 0 1px hsl(var(--accent)/.6))drop-shadow(0 0 24px hsl(var(--accent)/.34));transform:none}}.hero-portrait.is-3d-pending .hero-portrait-figure img{filter:blur(8px);transform:translateY(24px)}.infrastructure-terminal{border:1px solid hsl(var(--primary)/.35);background:hsl(var(--background));color:hsl(var(--foreground));box-shadow:0 24px 64px -36px hsl(var(--primary)/.5);border-radius:1.25rem;min-width:0}.flow-toolbar{border-bottom:1px solid hsl(var(--border));font:.625rem/1.6 var(--font-mono);color:hsl(var(--muted-foreground));align-items:center;gap:.6rem;padding:1rem 1.25rem;display:flex}.flow-toolbar svg{color:hsl(var(--primary));flex-shrink:0}.flow-body{background:radial-gradient(ellipse at 100% 0%,hsl(var(--primary)/.1),hsl(var(--primary)/0)60%);border-radius:inherit;padding:1.5rem}.flow-body>h2{margin-top:1rem;font-size:clamp(1.625rem,2.5vw,2.125rem);line-height:1.25}.flow-intro{color:hsl(var(--muted-foreground));margin-top:.75rem;font-size:.8125rem;line-height:1.6}.infrastructure-flow{gap:1.5rem;margin-top:2rem;display:grid}.infrastructure-flow li{min-width:0;position:relative}.infrastructure-flow li:not(:last-child):after{content:"";background:hsl(var(--primary)/.55);transform-origin:top;width:1px;animation:infrastructure-trace-y .55s ease-out calc(var(--stage-index)*.45s + .2s)both;pointer-events:none;position:absolute;top:2rem;bottom:-1.5rem;left:.9375rem}.infrastructure-flow a{border-radius:.5rem;align-items:flex-start;gap:1rem;min-height:2.75rem;display:flex;position:relative}.flow-node{z-index:1;border:1px solid hsl(var(--primary)/.65);background:hsl(var(--background));width:2rem;height:2rem;color:hsl(var(--primary));font:.625rem var(--font-mono);animation:infrastructure-node .7s ease-out calc(var(--stage-index)*.45s)both;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative}.flow-stage-content{flex:1;min-width:0;padding-top:.3rem}.flow-stage-title{font:600 1.0625rem var(--font-display);justify-content:space-between;align-items:center;gap:.25rem;display:flex}.flow-stage-title svg{color:hsl(var(--primary))}.flow-technologies{font:.625rem/1.7 var(--font-mono);color:hsl(var(--accent));margin-top:.65rem;display:block}.flow-detail{color:hsl(var(--muted-foreground));margin-top:.5rem;font-size:.75rem;line-height:1.7;display:block}.infrastructure-flow a:is(:hover,:focus-visible) .flow-node{border-color:hsl(var(--accent));color:hsl(var(--accent))}.infrastructure-flow a:is(:hover,:focus-visible) .action-arrow{transform:translate(2px,-2px)}.flow-footnote{border-top:1px solid hsl(var(--border));font:.625rem/1.7 var(--font-mono);color:hsl(var(--muted-foreground));margin-top:2rem;padding-top:1rem}@keyframes infrastructure-trace-y{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes infrastructure-trace-x{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes infrastructure-node{0%{box-shadow:0 0 0 5px hsl(var(--accent)/.2)}to{box-shadow:0 0 hsl(var(--accent)/0)}}@media (min-width:640px){.hero-section{padding-inline:2rem}.hero-actions{flex-wrap:wrap;display:flex}.hero-button{padding-inline:1.5rem}.flow-body{padding:2rem}.infrastructure-flow{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}.infrastructure-flow a{flex-direction:column}.infrastructure-flow li:not(:last-child):after{transform-origin:0;width:auto;height:1px;animation-name:infrastructure-trace-x;inset:1rem -1.25rem auto 2rem}.flow-stage-content{width:100%}}@media (min-width:1024px){.hero-layout{grid-template:"copy portrait"minmax(calc(100svh - 8rem),auto)"card card"/minmax(0,.9fr) minmax(0,1.1fr);gap:3rem}.hero-copy{z-index:2;grid-area:copy;position:relative}.hero-layout>.infrastructure-terminal{z-index:2;grid-area:card;position:relative}.hero-portrait{--ph:min(85svh,58rem);--pw:calc(var(--ph)*1.1442);z-index:1;width:var(--pw);height:var(--ph);aspect-ratio:auto;top:calc(100svh - 8rem - var(--ph));left:calc(75% - .485*var(--pw));margin:0;position:absolute}.hero-portrait-glow{top:-8%;right:-22%;bottom:0;left:-22%}.hero-section{padding-bottom:2rem}}@media (min-width:640px){.portfolio-section{padding-inline:2rem}.nav-container{width:calc(100% - 4rem);padding-inline:0}.project-results-list{grid-template-columns:auto minmax(0,1fr);gap:1.5rem}.project-result+.project-result{border-top:0;border-left:1px solid hsl(var(--primary)/.15);padding-top:0;padding-left:1.5rem}.project-result:first-child{padding-right:.5rem}.contact-meta{flex-direction:row;align-items:center}}.typed-char{visibility:hidden;position:relative}.typed-char.is-shown,.typed-line.is-static .typed-char{visibility:visible}.typed-char.is-caret:after{content:"";visibility:visible;background:hsl(var(--accent));border-radius:1px;width:max(2px,.09em);position:absolute;top:.14em;bottom:.14em;left:calc(100% + .06em)}.typed-line.is-waiting .typed-char.is-caret:after{animation:1s step-end infinite typed-caret-blink;left:0}.typed-line.is-done .typed-char.is-caret:after{animation:1s step-end 2 typed-caret-blink,.45s ease-out 2s forwards typed-caret-out}@keyframes typed-caret-blink{0%{opacity:1}50%,to{opacity:0}}@keyframes typed-caret-out{to{opacity:0}}.typed-word{opacity:0;display:inline-block;transform:translateY(.45em)}.typed-words.is-revealed .typed-word{opacity:1;transition:opacity .38s ease-out,transform .52s cubic-bezier(.22,1,.36,1);transition-delay:calc(var(--word-index)*var(--word-step,40ms));transform:none}.typed-words.is-static .typed-word{opacity:1;transform:none}.lang-switcher{--lang-size:2.75rem;--lang-option:2.75rem;--lang-trail:.625rem;z-index:61;width:var(--lang-size);height:var(--lang-size);flex-shrink:0;position:relative}@media (min-width:640px){.lang-switcher{--lang-option:2rem;--lang-trail:.25rem}}@media (min-width:640px) and (hover:hover) and (pointer:fine){.lang-switcher{--lang-size:2.25rem}}.lang-pill{width:var(--lang-size);border-radius:9999px;align-items:center;height:100%;transition:width .2s cubic-bezier(.4,0,.2,1),background-color .2s,box-shadow .2s;display:flex;position:absolute;top:0;left:0;overflow:hidden}.lang-switcher[data-open=true] .lang-pill{width:calc(var(--lang-size) + 2*var(--lang-option) + var(--lang-trail));background:hsl(var(--card));box-shadow:inset 0 0 0 1px hsl(var(--border)),0 10px 28px -14px hsl(var(--primary)/.45);transition:width .42s var(--ease-spring),background-color .15s ease,box-shadow .2s ease}.lang-globe{width:var(--lang-size);height:100%;color:hsl(var(--foreground));cursor:pointer;touch-action:manipulation;border-radius:9999px;flex-shrink:0;justify-content:center;align-items:center;transition:background-color .3s,color .2s;display:inline-flex}.lang-switcher[data-open=false] .lang-globe:hover{background:hsl(var(--secondary)/.5)}.lang-switcher[data-open=true] .lang-globe{color:hsl(var(--primary))}.lang-globe svg{transition:transform .42s var(--ease-spring)}.lang-switcher[data-open=true] .lang-globe svg{transform:rotate(-18deg)}.lang-options{flex-shrink:0;height:100%;display:flex;position:relative}.lang-indicator{width:var(--lang-option);opacity:0;transform:translate(calc(var(--lang-active)*100%));transition:opacity .12s ease,transform .36s var(--ease-spring);position:absolute;top:.25rem;bottom:.25rem;left:0}.lang-indicator:before{content:"";inset:0 max(0px,calc((var(--lang-option) - var(--lang-size) + .5rem)/2));background:hsl(var(--primary));border-radius:9999px;position:absolute}.lang-switcher[data-open=true] .lang-indicator{opacity:1;transition:opacity .2s ease-out 90ms,transform .36s var(--ease-spring)}.lang-option{z-index:1;width:var(--lang-option);height:100%;font:600 .6875rem/1 var(--font-mono);letter-spacing:.06em;color:hsl(var(--muted-foreground));cursor:pointer;touch-action:manipulation;opacity:0;border-radius:9999px;justify-content:center;align-items:center;transition:opacity .12s,transform .12s,color .2s;display:inline-flex;position:relative;transform:translate(-.375rem)}.lang-switcher[data-open=true] .lang-option{opacity:1;transition:opacity .22s ease-out calc(90ms + var(--lang-index)*45ms),transform .32s var(--ease-spring)calc(90ms + var(--lang-index)*45ms),color .2s ease;transform:none}.lang-option:hover{color:hsl(var(--primary))}.lang-option[aria-pressed=true]{color:hsl(var(--primary-foreground))}.portfolio-page .lang-switcher :is(.lang-globe,.lang-option):focus-visible{outline:2px solid hsl(var(--primary));outline-offset:-2px}@media not all and (min-width:640px){.hero-actions:lang(fr){grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}}.portfolio-page>:is(main,footer){transition:opacity .22s ease-out}.lang-fading .portfolio-page>:is(main,footer){opacity:0;transition:opacity .14s ease-in}@media (prefers-reduced-motion:reduce){.typed-char{visibility:visible!important}.typed-char:after{display:none!important}.typed-word{opacity:1!important;transform:none!important}.lang-pill,.lang-option,.lang-indicator,.lang-globe,.lang-globe svg{transition:none!important}.lang-fading .portfolio-page>:is(main,footer){opacity:1!important}html{scroll-behavior:auto}.portfolio-page :not(.scroll-progress),.portfolio-page :before,.portfolio-page :after{transition:none!important;animation:none!important}#hero [class*=animate-fade-in]{opacity:1!important;transform:none!important}.portfolio-page :is(a,button):hover,.portfolio-page .action-arrow,.portfolio-page :is(a,button,summary):is(:focus-visible,:active){transform:none!important}}.scroll-narrative{isolation:isolate;position:relative}.scroll-narrative>section{z-index:1;background:0 0}.scroll-narrative>:is(#projects,#github,#contact):before{content:none}.scroll-narrative:before{content:"";z-index:0;pointer-events:none;background:radial-gradient(ellipse at 30% 35%,hsl(var(--primary)/.1),hsl(var(--primary)/0)65%),radial-gradient(ellipse at 75% 65%,hsl(var(--accent)/.07),hsl(var(--accent)/0)65%);opacity:.8;width:min(80vw,64rem);height:85vh;position:fixed;top:8vh;left:-15vw}.scroll-narrative[data-motion=observer]:before{transition:transform .9s,opacity .9s}.scroll-narrative[data-chapter=about]:before,.scroll-narrative[data-chapter=experience]:before,.scroll-narrative[data-chapter=github]:before{transform:translate(35vw,5vh)}.scroll-narrative[data-chapter=skills]:before,.scroll-narrative[data-chapter=projects]:before,.scroll-narrative[data-chapter=contact]:before{transform:translate(5vw,-4vh)}.depth-entry{perspective:1400px}.depth-entry:before{transform:scaleY(1)}.depth-entry .experience-card{transform-origin:50% 30%}.depth-entry .experience-node{animation:none}.depth-entry .experience-node:after{content:"";border-radius:inherit;border:1px solid hsl(var(--accent));opacity:0;transition:opacity .3s,transform .3s;position:absolute;top:-5px;right:-5px;bottom:-5px;left:-5px;transform:scale(.7)}.depth-entry[data-depth=current] .experience-node:after{opacity:1;transform:scale(1)}@media (min-width:1024px) and (min-height:640px){.scroll-narrative[data-motion=observer] .experience-card{transition:transform .65s cubic-bezier(.22,1,.36,1),opacity .45s}.scroll-narrative[data-motion=observer] [data-depth=before]>.experience-card{opacity:.88;transform:translateY(24px)translateZ(-55px)rotateX(3deg)}.scroll-narrative[data-motion=observer] [data-depth=past]>.experience-card{transform:translateZ(-35px)rotateX(-1.5deg)}}@supports (animation-timeline:view()){.scroll-narrative[data-motion=native]:before{animation:linear both narrative-light;animation-timeline:scroll(root)}@media (min-width:1024px) and (min-height:640px){.depth-entry{view-timeline-name:--experience-depth}.scroll-narrative[data-motion=native] .experience-card{animation:linear both experience-depth;animation-timeline:--experience-depth;animation-range:entry exit 0%}}}@keyframes narrative-light{0%{opacity:.7;transform:translate(0)}35%{opacity:1;transform:translate(35vw,5vh)}65%{opacity:.8;transform:translate(8vw,-4vh)}to{opacity:.7;transform:translate(25vw,3vh)}}@keyframes experience-depth{0%{opacity:.88;transform:translateY(28px)translateZ(-60px)rotateX(4deg)}25%,70%{opacity:1;transform:translateY(0)translateZ(0)rotateX(0)}to{opacity:1;transform:translateY(-8px)translateZ(-40px)rotateX(-2deg)}}.scroll-narrative .depth-entry:focus-within>.experience-card{opacity:1;animation:none;transform:none}.scroll-narrative:is([data-motion=lite],[data-motion=still]):before{opacity:.65;transform:none}@media not all and (min-width:1024px),(pointer:coarse){.scroll-narrative .section-reveal{transform:none}}@media (prefers-reduced-motion:reduce){.scroll-narrative:before{transform:none!important}.experience-card{opacity:1!important;animation:none!important;transform:none!important}}.project-cover{--cv-t:.6;--cv-l:.38;--cv-r:.22;--cv-glare:hsl(var(--foreground)/.1);aspect-ratio:16/9;perspective:900px;border-bottom:1px solid hsl(var(--border));background:radial-gradient(ellipse 55% 65% at 50% 60%,hsl(var(--primary)/.26),hsl(var(--primary)/0)72%),radial-gradient(ellipse 35% 45% at 80% 20%,hsl(var(--accent)/.14),hsl(var(--accent)/0)70%),linear-gradient(160deg,hsl(var(--card)),hsl(var(--background)));border-radius:calc(1rem - 1px) calc(1rem - 1px) 0 0;position:relative;overflow:hidden;container-type:inline-size}html:not(.dark) .project-cover{--cv-t:.16;--cv-l:.34;--cv-r:.52;--cv-glare:hsl(var(--card)/.75);background:radial-gradient(ellipse 55% 65% at 50% 60%,hsl(var(--primary)/.14),hsl(var(--primary)/0)72%),radial-gradient(ellipse 35% 45% at 80% 20%,hsl(var(--accent)/.1),hsl(var(--accent)/0)70%),linear-gradient(160deg,hsl(var(--secondary)),hsl(var(--card)))}.cv-stage{transform-style:preserve-3d;transform:rotateX(calc((var(--cy,50) - 50)*-.06deg))rotateY(calc((var(--cx,50) - 50)*.08deg));position:absolute;top:0;right:0;bottom:0;left:0}.cv-layer{width:100%;height:100%;transform:translate3d(calc((var(--cx,50) - 50)*var(--d)*-.12px),calc((var(--cy,50) - 50)*var(--d)*-.08px),calc(var(--d)*8px));position:absolute;top:0;right:0;bottom:0;left:0;overflow:visible}.cv-sweep{pointer-events:none;background:linear-gradient(100deg,transparent 32%,var(--cv-glare)50%,transparent 68%);transition:transform .9s cubic-bezier(.22,1,.36,1);position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-120%)}.project-dialog-cover:hover .cv-sweep{transform:translate(120%)}.cv-grid{fill:none;stroke:hsl(var(--primary)/.16);stroke-width:.6px}.cv-box polygon{stroke:hsl(var(--primary)/.9);stroke-width:.7px;stroke-linejoin:round}.cv-t{fill:hsl(var(--primary)/var(--cv-t))}.cv-l{fill:hsl(var(--primary)/var(--cv-l))}.cv-r{fill:hsl(var(--primary)/var(--cv-r))}.cv-glass .cv-t{fill:hsl(var(--primary)/calc(var(--cv-t)*.3))}.cv-glass .cv-l{fill:hsl(var(--primary)/calc(var(--cv-l)*.3))}.cv-glass .cv-r{fill:hsl(var(--primary)/calc(var(--cv-r)*.3))}.cv-glass polygon{stroke:hsl(var(--primary)/.55)}.cv-dim .cv-t{fill:hsl(var(--primary)/calc(var(--cv-t)*.7))}.cv-dim .cv-l{fill:hsl(var(--primary)/calc(var(--cv-l)*.7))}.cv-dim .cv-r{fill:hsl(var(--primary)/calc(var(--cv-r)*.7))}.cv-hot polygon{stroke:hsl(var(--accent))}.cv-hot .cv-t{fill:hsl(var(--accent)/calc(var(--cv-t) + .25))}.cv-hot .cv-l{fill:hsl(var(--accent)/calc(var(--cv-l) + .25))}.cv-hot .cv-r{fill:hsl(var(--accent)/calc(var(--cv-r) + .25))}.cv-device .cv-t{fill:hsl(var(--primary)/.45)}.cv-device .cv-l{fill:hsl(var(--primary)/.65)}.cv-device .cv-r{fill:hsl(var(--primary)/.8)}.cv-screen{fill:hsl(var(--background)/.94);stroke:hsl(var(--primary)/.6);stroke-width:.7px}.cv-card{fill:hsl(var(--card)/.92);stroke:hsl(var(--primary)/.55);stroke-width:.7px}.cv-card-hot{stroke:hsl(var(--accent))}.cv-bar{fill:hsl(var(--primary)/.55)}.cv-bar-soft{fill:hsl(var(--primary)/.28)}.cv-cell{fill:hsl(var(--primary)/.3)}.cv-cell-hot{fill:hsl(var(--accent)/.9)}.cv-pin{fill:hsl(var(--primary));stroke:hsl(var(--card));stroke-width:1px}.cv-pin-hot{fill:hsl(var(--accent))}.cv-pin-ring{fill:hsl(var(--card));stroke:hsl(var(--primary));stroke-width:2px}.cv-shadow{fill:hsl(var(--primary)/.14)}.cv-pitch{fill:hsl(var(--primary)/.1)}.cv-pane{fill:hsl(var(--primary)/.08);stroke:hsl(var(--primary)/.4);stroke-width:.6px}.cv-line{fill:none;stroke:hsl(var(--primary)/.75);stroke-width:.9px}.cv-street{fill:none;stroke:hsl(var(--primary)/.32);stroke-width:1.4px}.cv-route-glow{fill:none;stroke:hsl(var(--primary)/.22);stroke-width:7px;stroke-linecap:round;stroke-linejoin:round}.cv-route{fill:none;stroke:hsl(var(--primary));stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:7 5}.cv-route.cv-hot-stroke{stroke:hsl(var(--accent))}.cv-route-glow.cv-hot-stroke{stroke:hsl(var(--accent)/.22)}.cv-arc{fill:none;stroke:hsl(var(--primary));stroke-width:1.5px;stroke-linecap:round;stroke-dasharray:5 6}.cv-arc-hot{stroke:hsl(var(--accent))}.cv-beam{stroke:hsl(var(--accent));stroke-width:1.4px;stroke-linecap:round;stroke-dasharray:3 4}.cv-stem,.cv-tether{fill:none;stroke:hsl(var(--primary)/.45);stroke-width:.8px;stroke-dasharray:2 3}.cv-ping{fill:hsl(var(--primary)/.18);stroke:hsl(var(--primary)/.5);stroke-width:.6px}.cv-ring{fill:none;stroke:hsl(var(--accent)/.75);stroke-width:1px;stroke-dasharray:3 4}.cv-spark{fill:hsl(var(--accent))}.cv-leader{fill:none;stroke:hsl(var(--primary)/.5);stroke-width:.7px}.cv-text{font:500 8.5px var(--font-mono);letter-spacing:.08em;text-transform:uppercase;fill:hsl(var(--foreground)/.78)}@container not (min-width:440px){.cv-text{display:none}}@media (prefers-reduced-motion:no-preference) and (pointer:fine){.cv-flow{animation:2.8s linear infinite cv-flow}.cv-float{transform-box:fill-box;animation:7s ease-in-out infinite cv-float}.cv-pulse{animation:3.2s ease-in-out infinite cv-pulse}.project-cover:not([data-live=true]) :is(.cv-flow,.cv-float,.cv-pulse){animation-play-state:paused}}@keyframes cv-flow{to{stroke-dashoffset:-44px}}@keyframes cv-float{50%{transform:translateY(-4px)}}@keyframes cv-pulse{50%{opacity:.4}}.project-dialog{overscroll-behavior:contain;border:1px solid hsl(var(--border));background:hsl(var(--card));width:min(58rem,100% - 2rem);max-height:calc(100dvh - 2rem);color:hsl(var(--foreground));text-align:left;border-radius:1rem;margin:auto;padding:0;overflow:auto}.project-dialog::backdrop{background:hsl(var(--background)/.86);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.project-dialog-header{z-index:3;border-bottom:1px solid hsl(var(--border));background:hsl(var(--card));justify-content:space-between;align-items:flex-start;gap:1rem;padding:1rem 1.25rem;display:flex;position:sticky;top:0}.project-dialog-title{text-wrap:balance;margin-top:.5rem;font-size:clamp(1.375rem,3vw,1.875rem);line-height:1.2}.project-dialog-close{flex-shrink:0}.project-dialog-close:is(:hover,:focus-visible){color:hsl(var(--foreground))}.project-dialog-cover{border:1px solid hsl(var(--border));border-radius:.875rem;margin:1.25rem 1.25rem 0;overflow:hidden}.project-cover-dialog{aspect-ratio:21/9;border-bottom:0;border-radius:0}.project-dialog-body{padding:.25rem 1.25rem 1.5rem}.project-dialog-description{margin-top:1.25rem}.project-dialog-section{margin-top:2rem}.project-dialog-h{font:500 .6875rem/1.4 var(--font-mono);letter-spacing:.13em;text-transform:uppercase;color:hsl(var(--accent))}.project-dialog .project-tags{margin-block:.75rem 0}.project-dialog .project-evidence{margin-top:1.75rem}@media not all and (min-width:640px){.project-cover-dialog{aspect-ratio:16/9}}@media (min-width:640px){.project-dialog-header{padding:1.25rem 1.75rem}.project-dialog-cover{margin-inline:1.75rem}.project-dialog-body{padding:.25rem 1.75rem 1.75rem}}@media (prefers-reduced-motion:no-preference){.project-dialog[open]{animation:.28s cubic-bezier(.22,1,.36,1) project-dialog-in}.project-dialog[open]::backdrop{animation:.28s project-backdrop-in}}@keyframes project-dialog-in{0%{opacity:0;transform:translateY(16px)scale(.98)}}@keyframes project-backdrop-in{0%{opacity:0}}.reel:not([data-reel=cinema]) .reel-track{width:100%;max-width:72rem;margin-inline:auto}.reel-stage{gap:2rem;display:grid;position:relative}.reel-key,.reel-bleed,.reel-rail,.reel-fx,.reel-bokeh,.reel-title-sweep{display:none}.reel-key,.reel-bleed,.reel-fx,.reel-bokeh,.reel-title-sweep,.reel-index{pointer-events:none}.reel-skip{border:1px solid hsl(var(--border));background:hsl(var(--card)/.9);min-height:2.75rem;font:500 .75rem/1 var(--font-mono);color:hsl(var(--foreground));border-radius:9999px;justify-self:start;align-items:center;gap:.5rem;padding:0 1rem;transition:border-color .2s,color .2s;display:inline-flex}.reel-skip:is(:hover,:focus-visible){border-color:hsl(var(--primary)/.6);color:hsl(var(--primary))}.reel-title-card{max-width:46rem;position:relative}.reel-eyebrow{font:500 .6875rem/1.4 var(--font-mono);letter-spacing:.13em;text-transform:uppercase;color:hsl(var(--muted-foreground));gap:.6rem;display:flex}.reel-eyebrow>span:first-child{color:hsl(var(--foreground))}.reel-heading{font:700 clamp(3rem,9vw,7.5rem)/.92 var(--font-display);letter-spacing:-.055em;align-items:flex-start;gap:.6rem;margin-top:.75rem;display:flex}.reel-heading-word>span{display:inline-block}.reel-count{font:500 clamp(.875rem,1.4vw,1.125rem)/1 var(--font-mono);letter-spacing:0;color:hsl(var(--foreground));padding-top:.55em}.reel-lede{max-width:34rem;color:hsl(var(--muted-foreground));margin-top:1.25rem;line-height:1.7}.reel-scene{border:1px solid hsl(var(--border));background:radial-gradient(ellipse 60% 40% at 60% 20%,hsl(var(--primary)/.12),hsl(var(--primary)/0)70%),hsl(var(--card));border-radius:1.25rem;max-width:56rem;scroll-margin-top:6rem;position:relative;overflow:hidden}.reel-scene:focus-visible{outline:2px solid hsl(var(--primary));outline-offset:4px}.reel-visual{position:relative}.reel-index{z-index:1;font:700 clamp(3.5rem,12vw,6rem)/1 var(--font-display);letter-spacing:-.06em;color:#0000;-webkit-text-stroke:1px hsl(var(--primary)/.55);position:absolute;top:.5rem;left:1rem}.reel-info{flex-direction:column;padding:1.25rem;display:flex;position:relative}@media (min-width:640px){.reel-info{padding:1.5rem 1.75rem 1.75rem}}.reel-meta{font:500 .6875rem/1.5 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:hsl(var(--muted-foreground));flex-wrap:wrap;gap:.25rem 1rem;display:flex}.reel-meta-index{color:hsl(var(--foreground))}.reel-head{align-items:center;gap:.875rem;margin-top:.75rem;display:flex}.reel-head-text{min-width:0}.reel-title{margin:0}.reel-name{font:700 clamp(2.25rem,5vw,3.5rem)/.98 var(--font-display);letter-spacing:-.05em;overflow-wrap:anywhere;display:block}.reel-subtitle{font:.75rem/1.5 var(--font-mono);color:hsl(var(--accent));margin-top:.25rem}.reel-pitch{font:500 clamp(1rem,1.5vw,1.25rem)/1.35 var(--font-display);letter-spacing:-.01em;color:hsl(var(--foreground)/.88);margin-top:.75rem}.reel-highlight{margin-top:1.25rem}.reel-highlight-title{font:500 .6875rem/1 var(--font-mono);letter-spacing:.13em;text-transform:uppercase;color:hsl(var(--accent));margin-bottom:.75rem}.reel-features{gap:.5rem;display:grid}.reel-features li{font:.8125rem/1.5 var(--font-mono);color:hsl(var(--foreground)/.85);padding-left:1.125rem;position:relative}.reel-features li:before{content:"";background:hsl(var(--accent));border-radius:1px;width:.4rem;height:.4rem;position:absolute;top:.5em;left:.125rem;transform:rotate(45deg)}.reel-info .project-tags{margin-block:1.25rem 1rem}.reel-actions{border-top:1px solid hsl(var(--border));grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;padding-top:1rem;display:grid}@media not all and (min-width:480px){.reel-actions{grid-template-columns:minmax(0,1fr)}}.reel-actions>.action-link:last-child:nth-child(2n){grid-column:1/-1}.reel-actions .action-link{text-align:center;justify-content:center;width:100%;min-width:0;padding-block:.25rem;line-height:1.25}.reel-actions .action-link>span{min-width:0}.reel-cta{border:1px solid hsl(var(--primary));background:hsl(var(--primary));width:100%;min-height:2.75rem;font:600 .8125rem/1 var(--font-body);color:hsl(var(--primary-foreground));cursor:pointer;transition:transform .22s var(--ease-spring),box-shadow .22s ease;border-radius:.5rem;grid-column:1/-1;justify-content:center;align-items:center;gap:.45rem;padding:0 1.1rem;display:flex}.reel-cta:is(:hover,:focus-visible){box-shadow:0 10px 24px -14px hsl(var(--primary)/.8);transform:translateY(-1px)}.reel-cta:active{transform:translateY(0)}.reel-scene:is(:hover,:focus-within) .cv-sweep{transform:translate(120%)}.tech-tag-more{color:hsl(var(--foreground));border-style:dashed}.project-subtitle{font:.75rem/1.6 var(--font-mono);color:hsl(var(--accent));margin-top:.5rem}.phase-list{gap:.25rem;margin-top:1.1rem;display:grid}.phase-item{border:1px solid hsl(var(--primary)/.18);background:hsl(var(--primary)/.05);border-radius:.5rem;grid-template-columns:2.5rem minmax(0,1fr);align-items:start;gap:.75rem;padding:.4rem .5rem;scroll-margin-top:8rem;transition:background-color .4s,border-color .4s;display:grid}.phase-index{border:1px solid hsl(var(--accent));background:hsl(var(--accent));height:1.75rem;font:600 .75rem/1 var(--font-mono);color:hsl(var(--accent-foreground));border-radius:.375rem;place-items:center;transition:background-color .4s,border-color .4s,color .4s;display:grid}.phase-body{min-width:0;padding-top:.2rem}.phase-title{font:600 .9375rem/1.4 var(--font-display);display:block}.phase-detail{font:.75rem/1.5 var(--font-mono);color:hsl(var(--accent));margin-top:.125rem;display:block}.phase-tech{font:.75rem/1.5 var(--font-mono);color:hsl(var(--muted-foreground));margin-top:.125rem;display:block}.phase-list-detailed{margin-top:.75rem}.phase-chips{grid-template-columns:minmax(0,1fr);gap:.5rem;display:grid}@media (min-width:640px){.phase-chips{grid-template-columns:repeat(2,minmax(0,1fr))}}.phase-chip{grid-template-columns:2rem minmax(0,1fr);align-items:center;gap:.5rem;min-height:2.75rem;padding:.3rem .5rem}.phase-chip .phase-index{height:1.5rem;font-size:.6875rem}.phase-chip-short{font:600 .8125rem/1.25 var(--font-display);display:none}.phase-chip-full{font:600 .875rem/1.35 var(--font-display)}.reel-scene[data-step="0"] .phase-item,.reel-scene[data-step="1"] .phase-item:not([data-phase="1"]),.reel-scene[data-step="2"] .phase-item:is([data-phase="3"],[data-phase="4"]),.reel-scene[data-step="3"] .phase-item[data-phase="4"]{border-color:hsl(var(--border));background:0 0}.reel-scene[data-step="0"] .phase-index,.reel-scene[data-step="1"] .phase-item:not([data-phase="1"]) .phase-index,.reel-scene[data-step="2"] .phase-item:is([data-phase="3"],[data-phase="4"]) .phase-index,.reel-scene[data-step="3"] .phase-item[data-phase="4"] .phase-index{border-color:hsl(var(--border));color:hsl(var(--muted-foreground));background:0 0}.repo-private{min-height:2.75rem;font:500 .75rem/1.4 var(--font-mono);color:hsl(var(--foreground));flex-wrap:wrap;align-items:center;gap:.4rem .5rem;margin-top:.5rem;display:inline-flex}.repo-private svg{color:hsl(var(--accent))}.repo-private-label{border:1px solid hsl(var(--accent)/.55);letter-spacing:.06em;text-transform:uppercase;color:hsl(var(--accent));border-radius:9999px;padding:.15rem .5rem;font-size:.6875rem}.app-icon{--h:3rem;--glow:var(--primary);--r:calc(var(--h)*.3);height:var(--h);width:calc(var(--h)*var(--ar,1));perspective:700px;flex:none;display:inline-block;position:relative}.app-icon[data-logo="2"]{--glow:var(--accent)}.app-icon-body{transform-style:preserve-3d;position:absolute;top:0;right:0;bottom:0;left:0}.app-icon-face,.app-icon-edge{border-radius:var(--r);position:absolute;top:0;right:0;bottom:0;left:0}.app-icon-face{background:linear-gradient(150deg,#fff,#e6ecf4);border:1px solid #8095b373;place-items:center;padding:15%;display:grid;overflow:hidden;box-shadow:inset 0 1px #fff,inset 0 -3px 6px #506d9524}.app-icon-face:after{content:"";border-radius:inherit;pointer-events:none;background:radial-gradient(120% 85% at 10% 0,#ffffffd9,#fff0 48%);position:absolute;top:0;right:0;bottom:0;left:0}.app-icon-face img{object-fit:contain;width:100%;height:100%;display:block}.app-icon-edge{background:hsl(var(--primary)/.7);border:1px solid hsl(var(--primary)/.9);display:none}.app-icon-shadow{display:none}.app-icon-flat .app-icon-face{border-radius:.75rem;box-shadow:inset 0 1px #fff,0 4px 10px -6px #192f4d8c}.app-icon-flat{--r:.75rem}.project-dialog-heading{align-items:center;gap:1rem;min-width:0;display:flex}.app-icon-stage{--h:6.5rem;z-index:2;pointer-events:none;position:absolute;top:.75rem;right:.75rem}.app-icon-stage .app-icon-body{transform:rotateX(8deg)rotateY(-16deg)}.app-icon-stage .app-icon-edge{display:block}.app-icon-stage .app-icon-edge-1{background:hsl(var(--primary)/.75);transform:translateZ(-4px)}.app-icon-stage .app-icon-edge-2{background:hsl(var(--primary)/.55);transform:translateZ(-8px)}.app-icon-stage .app-icon-edge-3{background:hsl(var(--primary)/.4);box-shadow:0 0 2rem hsl(var(--glow)/.4);transform:translateZ(-12px)}.app-icon-stage .app-icon-face{transform:translateZ(0)}.app-icon-stage .app-icon-shadow{background:radial-gradient(closest-side,#0006,#0000);border-radius:50%;height:16%;display:block;position:absolute;bottom:-22%;left:8%;right:8%;transform:translateZ(-14px)}@media not all and (min-width:640px){.app-icon-stage{--h:4.5rem}}[data-reel=cinema].reel{padding:0}[data-reel=cinema] .reel-track{height:calc((var(--reel-len,6.55) + 1)*100vh)}[data-reel=cinema] .reel-stage{--gx:max(1.5rem, calc(50% - 36rem) );--bar-top:calc(var(--nav-h,4.8rem) + .75rem);--panel-top:calc(var(--bar-top) + 2.75rem + 1rem);--panel-h:min(37rem,calc(100vh - var(--panel-top) - 1.5rem));--panel-w:min(28rem,38vw);contain:layout paint;background:radial-gradient(ellipse 80% 75% at 60% 52%,hsl(var(--background)/0)62%,hsl(var(--background)/.75));height:100vh;display:block;position:sticky;top:0;overflow:hidden}[data-reel=cinema] .reel-key{will-change:transform;background:radial-gradient(circle at 56% 44%,hsl(var(--accent)/.2),hsl(var(--accent)/0)30%),radial-gradient(circle at 44% 56%,hsl(var(--primary)/.24),hsl(var(--primary)/0)42%);width:80vmax;height:80vmax;display:block;position:absolute;top:0;left:0;transform:translate(calc(64vw - 50%),calc(40vh - 50%))}[data-reel=cinema] .reel-bleed{z-index:1;opacity:0;background:linear-gradient(100deg,transparent 22%,hsl(var(--accent)/.22)42%,hsl(var(--primary)/.2)58%,transparent 78%);display:block;position:absolute;top:0;right:-30%;bottom:0;left:-30%}[data-reel=cinema] .reel-skip{z-index:6;top:var(--bar-top);right:var(--gx);position:absolute}[data-reel=cinema] .reel-rail{z-index:5;top:var(--bar-top);left:var(--gx);right:calc(var(--gx) + 12rem);align-items:center;gap:1.25rem;display:flex;position:absolute}.reel-counter{font:500 .8125rem/1 var(--font-mono);color:hsl(var(--muted-foreground));font-variant-numeric:tabular-nums;flex-shrink:0}.reel-counter span{color:hsl(var(--foreground))}.reel-rail-track{flex:1;min-width:0;position:relative}.reel-rail-track:before,.reel-rail-fill{content:"";height:1px;position:absolute;bottom:0;left:0;right:0}.reel-rail-track:before{background:hsl(var(--border))}.reel-rail-fill{background:linear-gradient(90deg,hsl(var(--primary)),hsl(var(--accent)));transform-origin:0;transform:scaleX(0)}.reel-rail ol{gap:.25rem;display:flex}.reel-rail-item{min-height:2.75rem;font:500 .75rem/1 var(--font-mono);color:hsl(var(--muted-foreground));cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:.5rem;align-items:center;gap:.5rem;padding:0 .75rem;transition:color .2s,background-color .2s;display:inline-flex}.reel-rail-index{color:hsl(var(--muted-foreground))}.reel-rail-item:is(:hover,:focus-visible){color:hsl(var(--foreground));background:hsl(var(--primary)/.08)}.reel-rail-item[aria-current=true]{color:hsl(var(--foreground))}.reel-rail-item[aria-current=true] .reel-rail-index{color:hsl(var(--accent))}[data-reel=cinema] .reel-title-card{z-index:3;top:52%;left:var(--gx);transform-origin:0;will-change:transform,opacity;pointer-events:none;max-width:52rem;position:absolute;transform:translateY(-50%)}[data-reel=cinema] .reel-heading{font-size:clamp(5rem,13vw,11rem)}[data-reel=cinema] .reel-title-sweep{background:linear-gradient(100deg,transparent 38%,hsl(var(--accent)/.16)48%,hsl(var(--primary)/.12)54%,transparent 62%);display:block;position:absolute;top:-10%;right:-20%;bottom:-10%;left:-20%;transform:translate(-120%)}[data-reel=cinema]:not([data-entered]) :is(.reel-eyebrow,.reel-lede,.reel-count,.reel-heading-word>span){opacity:0}[data-reel=cinema][data-entered] .reel-heading-word>span{animation:reel-letter .9s cubic-bezier(.2,.9,.2,1)calc(var(--i)*45ms + .15s)both}[data-reel=cinema][data-entered] .reel-eyebrow{animation:.7s ease-out both reel-rise}[data-reel=cinema][data-entered] :is(.reel-lede,.reel-count){animation:.8s ease-out .65s both reel-rise}[data-reel=cinema][data-entered] .reel-title-sweep{animation:1.6s cubic-bezier(.3,.6,.2,1) .35s both reel-sweep}@keyframes reel-letter{0%{opacity:0;transform:translateY(.5em)skewY(6deg)}}@keyframes reel-rise{0%{opacity:0;transform:translateY(.75rem)}}@keyframes reel-sweep{0%{transform:translate(-120%)}to{transform:translate(120%)}}[data-reel=cinema] .reel-scene{z-index:2;opacity:0;pointer-events:none;background:0 0;border:0;border-radius:0;max-width:none;position:absolute;top:0;right:0;bottom:0;left:0;overflow:visible}[data-reel=cinema] .reel-scene[data-active]{pointer-events:auto}[data-reel=cinema] .reel-scene:focus-visible{outline:none}[data-reel=cinema] .reel-visual{top:var(--panel-top);height:var(--panel-h);left:calc(var(--gx) + var(--panel-w) - 2rem);right:calc(var(--gx) - 1rem);background:radial-gradient(ellipse 50% 50% at 50% 50%,hsl(var(--primary)/.16),hsl(var(--primary)/0)70%);place-items:center;display:grid;position:absolute}[data-reel=cinema] .reel-visual .project-cover{width:100%}[data-reel=cinema] .reel-index{z-index:0;-webkit-text-stroke:1.5px hsl(var(--primary)/.3);font-size:30vh;top:-1rem;left:auto;right:4%}[data-reel=cinema] .reel-fx{z-index:3;display:block;position:absolute;top:0;right:0;bottom:0;left:0}.reel-fx i{background:linear-gradient(hsl(var(--accent)/0),hsl(var(--accent)/.55),hsl(var(--accent)/0));border-radius:2px;width:2px;height:5rem;position:absolute;transform:rotate(28deg)}.reel-fx i:first-child{top:18%;left:52%}.reel-fx i:nth-child(2){background:linear-gradient(hsl(var(--primary)/0),hsl(var(--primary)/.6),hsl(var(--primary)/0));height:7rem;top:64%;left:88%}.reel-fx i:nth-child(3){height:3rem;top:80%;left:44%}[data-reel=cinema] .reel-info{z-index:4;top:var(--panel-top);left:var(--gx);width:var(--panel-w);height:var(--panel-h);border:1px solid hsl(var(--border));background:linear-gradient(160deg,hsl(var(--card)/.94),hsl(var(--card)/.9)),radial-gradient(ellipse at 0 0,hsl(var(--primary)/.08),transparent 60%);box-shadow:inset 0 1px hsl(var(--foreground)/.06),0 30px 60px -40px hsl(var(--primary)/.5);transform-origin:30%;border-radius:1.25rem;padding:1.25rem 1.5rem 1.5rem;position:absolute;container-type:inline-size}[data-reel=cinema] .reel-scene[data-near] :is(.reel-visual,.reel-info,.reel-fx,.reel-bokeh){will-change:transform}[data-reel=cinema] .reel-head{min-height:3.95rem;margin-top:.625rem}[data-reel=cinema] .reel-name{font-size:2.5rem;line-height:1}[data-reel=cinema] .reel-pitch{-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:2.7em;margin-top:.625rem;font-size:1.0625rem;display:-webkit-box;overflow:hidden}[data-reel=cinema] .reel-highlight{flex:1 1 0;min-height:0;margin-top:.875rem}[data-reel=cinema] .reel-info .project-tags{flex:none;align-content:flex-end;gap:.375rem .5rem;min-height:4.125rem;margin:.625rem 0 .75rem}[data-reel=cinema] .reel-actions{flex:none;grid-template-rows:2.75rem repeat(2,2.75rem);padding-top:.875rem}[data-reel=cinema] .phase-chips{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}[data-reel=cinema] .phase-chip-short{display:block}[data-reel=cinema] .phase-chip-full{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}[data-reel=cinema] .phase-chip{position:relative}[data-reel=cinema] .reel-info .project-results{margin:0;padding:.625rem .875rem}[data-reel=cinema] .reel-info .project-results-title{margin-bottom:.5rem}[data-reel=cinema] .reel-info .project-results-list{grid-template-columns:minmax(0,1fr);gap:.375rem}[data-reel=cinema] .reel-info .project-result{border:0;flex-direction:row;align-items:center;gap:.75rem;padding:0}[data-reel=cinema] .reel-info .project-result+.project-result{border-top:1px solid hsl(var(--primary)/.15);padding:.375rem 0 0}[data-reel=cinema] .reel-info .project-result-value{flex-shrink:0;min-height:0;font-size:1.375rem}[data-reel=cinema] .reel-info .project-result-value svg{width:1.375rem;height:1.375rem}[data-reel=cinema] .reel-info .project-result-label{font-size:.75rem;line-height:1.45}[data-reel=cinema] .reel-bokeh{z-index:3;display:block;position:absolute;top:0;right:0;bottom:0;left:0}.reel-bokeh b{background:radial-gradient(circle,hsl(var(--accent)/.3),hsl(var(--accent)/0)68%);border-radius:50%;position:absolute}.reel-bokeh b:first-child{width:6rem;height:6rem;top:14%;left:47%}.reel-bokeh b:nth-child(2){background:radial-gradient(circle,hsl(var(--primary)/.28),hsl(var(--primary)/0)68%);width:9rem;height:9rem;top:70%;left:90%}.reel-bokeh b:nth-child(3){width:4rem;height:4rem;top:84%;left:48%}@property --sweep{syntax:"<angle>";inherits:false;initial-value:0deg}[data-reel=cinema] .reel-info:after{content:"";border-radius:inherit;pointer-events:none;opacity:0;background:conic-gradient(from var(--sweep),transparent 0 62%,hsl(var(--accent))80%,hsl(var(--primary))92%,transparent 100%);padding:1px;position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}[data-reel=cinema] .reel-scene[data-settled] .reel-info:after{animation:1.5s cubic-bezier(.3,.6,.2,1) both panel-sweep}@keyframes panel-sweep{0%{--sweep:0deg;opacity:1}80%{opacity:1}to{--sweep:360deg;opacity:0}}[data-reel=cinema] .app-icon-stage{--h:5.75rem;top:5%;left:7%;right:auto}[data-reel=cinema] .app-icon-stage .app-icon-body{transform:rotateX(calc(8deg + (var(--cy,50) - 50)*-.12deg))rotateY(calc(-16deg + (var(--cx,50) - 50)*.16deg))}[data-reel=cinema] .reel-scene[data-active] .app-icon-stage{animation:.9s cubic-bezier(.2,.9,.2,1) both icon-in}[data-reel=cinema] .reel-scene[data-settled] .app-icon-stage{animation:.9s cubic-bezier(.2,.9,.2,1) both icon-in,7s ease-in-out .9s infinite icon-float}[data-reel=cinema] .reel-stage[data-scrolling] .app-icon-stage{animation-play-state:paused}@keyframes icon-in{0%{opacity:0;transform:translate3d(0,1rem,-80px)scale(.86)}to{opacity:1;transform:none}}@keyframes icon-float{0%,to{transform:translate(0)}50%{transform:translateY(-.5rem)}}[data-reel=cinema] .reel-scene .cv-sweep{transition:none}[data-reel=cinema] .reel-scene:not([data-settled]) :is(.cv-flow,.cv-float,.cv-pulse,.cv-comet,.cv-wave),[data-reel=cinema] .reel-stage[data-scrolling] :is(.cv-flow,.cv-float,.cv-pulse,.cv-comet,.cv-wave){animation-play-state:paused}html [data-reel=cinema] .project-cover-stage{background:0 0;border:0;overflow:visible}@media not all and (min-height:820px){[data-reel=cinema] .reel-info{padding:1rem 1.25rem 1.25rem}[data-reel=cinema] .reel-name{font-size:2.25rem}[data-reel=cinema] .reel-head{margin-top:.5rem}[data-reel=cinema] .reel-pitch{margin-top:.375rem;font-size:1rem}[data-reel=cinema] .reel-highlight{margin-top:.625rem}[data-reel=cinema] .reel-highlight-title,[data-reel=cinema] .reel-info .project-results-title{margin-bottom:.4rem}[data-reel=cinema] .reel-features{gap:.3rem}[data-reel=cinema] .reel-info .project-tags{margin-block:.5rem}[data-reel=cinema] .reel-actions{padding-top:.625rem}[data-reel=cinema] .reel-info .project-results{padding:.5rem .75rem}}.cv-phase>*{transition:opacity .5s}.reel-scene[data-step="0"] .cv-phase>:not(text),.reel-scene[data-step="1"] .cv-phase:not([data-phase="1"])>:not(text),.reel-scene[data-step="2"] .cv-phase:is([data-phase="3"],[data-phase="4"])>:not(text),.reel-scene[data-step="3"] .cv-phase[data-phase="4"]>:not(text){opacity:.22}.cv-cloud{fill:hsl(var(--card)/.9);stroke:hsl(var(--primary)/.75);stroke-width:.9px}.cv-badge-bg{fill:hsl(var(--card));stroke:hsl(var(--primary));stroke-width:1.6px}.cv-badge-hot .cv-badge-bg{stroke:hsl(var(--accent))}.cv-glyph{fill:hsl(var(--primary))}.cv-badge-hot .cv-glyph{fill:hsl(var(--accent))}.cv-glyph-line{fill:none;stroke:hsl(var(--primary));stroke-width:1.4px}.cv-glyph-hole{fill:hsl(var(--card))}.cv-comet{fill:none;stroke:hsl(var(--primary));stroke-width:2.6px;stroke-linecap:round;stroke-dasharray:9 91;stroke-dashoffset:100px;opacity:0}.cv-comet-hot{stroke:hsl(var(--accent))}.cv-wave{opacity:0;transform-box:fill-box;transform-origin:50%}@media (prefers-reduced-motion:no-preference) and (pointer:fine){.cv-comet{opacity:1;animation:2.6s linear infinite cv-comet}.cv-wave{animation:2.6s ease-out infinite cv-wave}.project-cover:not([data-live=true]) :is(.cv-comet,.cv-wave){animation-play-state:paused}}@keyframes cv-comet{to{stroke-dashoffset:0}}@keyframes cv-wave{0%{opacity:.9;transform:scale(.5)}to{opacity:0;transform:scale(1.6)}}.resume-button{border:1.5px solid hsl(var(--primary));min-height:2.75rem;font:600 .8125rem/1 var(--font-mono);color:hsl(var(--primary));white-space:nowrap;cursor:pointer;transition:background-color .2s ease,transform .22s var(--ease-spring);background:0 0;border-radius:.65rem;justify-content:center;align-items:center;gap:.5rem;padding:0 1rem;display:inline-flex}.resume-button:is(:hover,:focus-visible){background:hsl(var(--primary)/.1);transform:translateY(-1px)}.resume-button:active{background:hsl(var(--primary)/.16);transform:translateY(0)}.resume-button-menu{width:100%;min-height:3.25rem;font-size:1.0625rem}.contact-resume{margin-bottom:1.5rem}.contact-resume .hero-button{padding-inline:1.5rem}.resume-dialog{overscroll-behavior:contain;border:1px solid hsl(var(--border));background:hsl(var(--card));width:min(56rem,100% - 2rem);max-height:calc(100dvh - 2rem);color:hsl(var(--foreground));text-align:left;border-radius:1rem;margin:auto;padding:0;overflow:auto}.resume-dialog::backdrop{background:hsl(var(--background)/.86);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.resume-dialog :is(a,button):focus-visible,.resume-dialog label:has(input:focus-visible){outline:2px solid hsl(var(--primary));outline-offset:3px}.resume-header{z-index:3;border-bottom:1px solid hsl(var(--border));background:hsl(var(--card));justify-content:space-between;align-items:flex-start;gap:1rem;padding:1rem 1.25rem;display:flex;position:sticky;top:0}.resume-title{font-size:clamp(1.375rem,3vw,1.875rem);line-height:1.2}.resume-description{max-width:38rem;color:hsl(var(--muted-foreground));margin-top:.375rem;font-size:.875rem;line-height:1.6}.resume-close{flex-shrink:0}.resume-body{gap:1.5rem;padding:1.25rem;display:grid}@media (min-width:768px){.resume-header{padding:1.25rem 1.75rem}.resume-body{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:center;gap:2rem;padding:1.75rem}}.resume-stage{--rx:0deg;--ry:0deg;perspective:1400px;place-items:center;min-height:21rem;display:grid;position:relative}@media (min-width:768px){.resume-stage{min-height:30rem}}.resume-stack{aspect-ratio:900/1273;width:min(15rem,62vw);transform-style:preserve-3d;transform:rotateX(var(--rx))rotateY(calc(var(--ry) - 6deg))rotate(-.5deg);transition:transform .3s cubic-bezier(.22,1,.36,1);position:relative}@media (min-width:768px){.resume-stack{width:min(21rem,100%)}}.resume-sheet{background:#fff;border-radius:.3rem;margin:0;transition:transform .8s cubic-bezier(.22,1,.36,1),opacity .5s;position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;box-shadow:0 24px 40px -22px #070a13b3,0 0 0 1px #8095b359}.resume-sheet img{object-fit:contain;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.resume-sheet[data-pos=front]{z-index:2;transform:translateZ(40px)}.resume-sheet[data-pos=back]{z-index:1;transform:translate3d(16%,-3.5%,-70px)rotate(3.5deg)scale(.96)}.resume-sheet:before{content:"";z-index:1;background:hsl(var(--background));opacity:0;pointer-events:none;transition:opacity .5s;position:absolute;top:0;right:0;bottom:0;left:0}.resume-sheet[data-pos=back]:before{opacity:.38}.resume-sweep{z-index:2;pointer-events:none;background:linear-gradient(100deg,#0000 32%,#ffffffbf 48%,#fff3 56%,#0000 68%);animation:1.1s cubic-bezier(.3,.6,.2,1) .12s both resume-sweep;position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-120%)}@keyframes resume-sweep{0%{transform:translate(-120%)}to{transform:translate(120%)}}.resume-dialog[open] .resume-stack{animation:.7s cubic-bezier(.22,1,.36,1) both resume-stack-in}@keyframes resume-stack-in{0%{opacity:0;transform:translate3d(0,1.5rem,-120px)rotateY(-30deg)}}.resume-controls{align-content:start;gap:1.25rem;display:grid}.resume-language{border:0;min-width:0;margin:0;padding:0}.resume-language legend{font:500 .6875rem/1.4 var(--font-mono);letter-spacing:.13em;text-transform:uppercase;color:hsl(var(--accent));margin-bottom:.625rem;padding:0}.resume-segments{border:1px solid hsl(var(--border));background:hsl(var(--muted)/.5);border-radius:.75rem;grid-template-columns:1fr 1fr;gap:.25rem;padding:.25rem;display:grid}.resume-segment{cursor:pointer;border-radius:.5rem;justify-items:center;gap:.125rem;min-height:3.25rem;padding:.5rem .75rem;transition:background-color .2s,color .2s,box-shadow .2s;display:grid;position:relative}.resume-segment input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;top:0;right:0;bottom:0;left:0}.resume-segment-code{font:700 1rem/1.2 var(--font-mono);letter-spacing:.06em}.resume-segment-name{font:.75rem/1.2 var(--font-body);color:hsl(var(--foreground)/.8)}.resume-segment:hover{background:hsl(var(--primary)/.08)}.resume-segment:has(input:checked){background:hsl(var(--primary));color:hsl(var(--primary-foreground));box-shadow:0 6px 16px -10px hsl(var(--primary)/.9)}.resume-segment:has(input:checked) .resume-segment-name{color:hsl(var(--primary-foreground)/.92)}.resume-facts{border:1px solid hsl(var(--border));border-radius:.75rem;grid-template-columns:repeat(2,minmax(0,1fr));gap:.875rem 1.25rem;padding:1rem;display:grid}.resume-facts dt{font:500 .6875rem/1.4 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:hsl(var(--foreground)/.78);margin-bottom:.25rem}.resume-facts dd{font:.875rem/1.4 var(--font-mono);color:hsl(var(--foreground))}.resume-actions{gap:.625rem;display:grid}.resume-action{border:1px solid hsl(var(--primary)/.5);background:hsl(var(--card));min-height:2.75rem;color:hsl(var(--foreground));font:600 .875rem/1.2 var(--font-body);transition:transform .22s var(--ease-spring),background-color .2s ease,box-shadow .22s ease;border-radius:.65rem;justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1rem;display:inline-flex}.resume-action:is(:hover,:focus-visible){background:hsl(var(--primary)/.08);transform:translateY(-1px)}.resume-action-primary{border-color:hsl(var(--primary));background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.resume-action-primary:is(:hover,:focus-visible){background:hsl(var(--primary));box-shadow:0 10px 24px -14px hsl(var(--primary)/.9)}@media not all and (min-width:768px){.resume-stage{min-height:17rem}.resume-stack{width:min(11.5rem,52vw)}.resume-actions{order:2}.resume-facts{order:3}.resume-description{font-size:.8125rem}}@media (min-width:480px) and (not (min-width:768px)){.resume-actions{grid-template-columns:1fr 1fr}}@media (prefers-reduced-motion:no-preference){.resume-dialog[open]{animation:.28s cubic-bezier(.22,1,.36,1) project-dialog-in}.resume-dialog[open]::backdrop{animation:.28s project-backdrop-in}}@media (prefers-reduced-motion:reduce){.resume-stack{transition:none;transform:rotate(0)!important}.resume-sheet,.resume-sheet[data-pos=front],.resume-sheet[data-pos=back]{transition:opacity .25s;transform:none;box-shadow:0 16px 30px -20px #070a13b3,0 0 0 1px #8095b359}.resume-sheet[data-pos=back]{opacity:0}.resume-sweep{display:none}.resume-dialog[open] .resume-stack{animation:none}.resume-button,.resume-action{transition:none;transform:none!important}}html[data-theater] .portfolio-page>main{transform-origin:50% var(--theater-oy,50vh);transform:scale(.985)}html[data-theater] .scene3d-layer{opacity:.4}@media (prefers-reduced-motion:no-preference){.portfolio-page>main{transition:transform .52s cubic-bezier(.22,1,.36,1)}}@media (prefers-reduced-motion:reduce){html[data-theater] .portfolio-page>main{transform:none}}.demo-theater{width:100vw;max-width:none;height:100dvh;max-height:none;color:hsl(var(--foreground));text-align:left;background:0 0;border:0;margin:0;padding:0;position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden}.demo-theater::backdrop{background:hsl(var(--background)/.995)}.demo-theater :is(a,button,input):focus-visible{outline:2px solid hsl(var(--primary));outline-offset:3px}.demo-shell{--glow-a:hsl(var(--primary));--glow-b:hsl(var(--accent));grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr);height:100%;padding:1rem 1.5rem 1.25rem;display:grid;position:relative;overflow:hidden}.demo-ambient{pointer-events:none;background:radial-gradient(ellipse 62% 55% at 50% 46%,var(--glow-a),transparent 72%),radial-gradient(ellipse 46% 42% at 82% 72%,var(--glow-b),transparent 72%);position:absolute;top:0;right:0;bottom:0;left:0}@supports (color:color-mix(in lab,red,red)){.demo-ambient{background:radial-gradient(ellipse 62% 55% at 50% 46%,color-mix(in srgb,var(--glow-a)34%,transparent),transparent 72%),radial-gradient(ellipse 46% 42% at 82% 72%,color-mix(in srgb,var(--glow-b)26%,transparent),transparent 72%)}}html:not(.dark) .demo-ambient{background:radial-gradient(ellipse 62% 55% at 50% 46%,var(--glow-a),transparent 72%),radial-gradient(ellipse 46% 42% at 82% 72%,var(--glow-b),transparent 72%)}@supports (color:color-mix(in lab,red,red)){html:not(.dark) .demo-ambient{background:radial-gradient(ellipse 62% 55% at 50% 46%,color-mix(in srgb,var(--glow-a)16%,transparent),transparent 72%),radial-gradient(ellipse 46% 42% at 82% 72%,color-mix(in srgb,var(--glow-b)12%,transparent),transparent 72%)}}.demo-ambient-canvas{opacity:0;width:108%;height:108%;transition:opacity .7s;position:absolute;top:-4%;right:-4%;bottom:-4%;left:-4%;-webkit-mask-image:radial-gradient(at 50% 46%,#000 18%,#0000 74%);mask-image:radial-gradient(at 50% 46%,#000 18%,#0000 74%)}.demo-ambient-canvas[data-live=true]{opacity:.38}.demo-top{z-index:2;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex;position:relative}.demo-heading{min-width:0}.demo-tag{font:500 .6875rem/1.4 var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:hsl(var(--accent))}.demo-name{font:700 clamp(1.125rem,2.2vw,1.5rem)/1.25 var(--font-display);letter-spacing:-.02em;margin-top:.125rem}.demo-context{font:.75rem/1.5 var(--font-mono);color:hsl(var(--foreground)/.82);margin-top:.125rem}.demo-top-actions{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.demo-pill{border:1px solid hsl(var(--border));background:hsl(var(--card)/.85);min-height:2.75rem;color:hsl(var(--foreground));font:500 .75rem/1 var(--font-mono);cursor:pointer;transition:background-color .2s ease,border-color .2s ease,transform .22s var(--ease-spring);border-radius:9999px;justify-content:center;align-items:center;gap:.5rem;padding:0 1rem;display:inline-flex}.demo-pill:is(:hover,:focus-visible){border-color:hsl(var(--primary)/.6);background:hsl(var(--primary)/.1);transform:translateY(-1px)}.demo-pill-primary{border-color:hsl(var(--primary));background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.demo-pill-primary:is(:hover,:focus-visible){background:hsl(var(--primary))}.demo-main{z-index:1;flex-direction:column;justify-content:center;align-items:center;min-width:0;min-height:0;padding-top:.5rem;display:flex;position:relative}.demo-frame{aspect-ratio:16/9;background:linear-gradient(135deg,hsl(var(--foreground)/.3),hsl(var(--foreground)/.08)32%,hsl(var(--foreground)/.14));width:min(100%,max(20rem,177.778dvh - 28.4444rem));box-shadow:inset 0 1px hsl(var(--foreground)/.35),0 0 0 1px hsl(var(--foreground)/.16),0 36px 70px -34px #000000bf;border-radius:1.125rem;padding:.375rem;position:relative}.demo-frame:before{content:"";border-radius:inherit;pointer-events:none;background:radial-gradient(60% 40% at 6% 0,#ffffff4d,#0000 70%);position:absolute;top:0;right:0;bottom:0;left:0}.demo-shadow{pointer-events:none;background:radial-gradient(closest-side,#00000073,#0000);border-radius:50%;height:1.25rem;position:absolute;bottom:-1.5rem;left:8%;right:8%}.demo-screen{background:#000;border-radius:.8rem;width:100%;height:100%;position:relative;overflow:hidden}.demo-video{object-fit:contain;background:#000;border:0;width:100%;height:100%;display:block}.demo-shell[data-idle=true] .demo-video{cursor:none}.demo-lower{border-left:3px solid hsl(var(--accent));background:hsl(var(--background)/.92);opacity:0;pointer-events:none;border-radius:.25rem .75rem .75rem .25rem;gap:.125rem;max-width:min(24rem,100% - 2rem);padding:.625rem 1rem .7rem;transition:opacity .4s,transform .4s cubic-bezier(.22,1,.36,1);display:grid;position:absolute;bottom:4.5rem;left:1rem;transform:translate(-.75rem)}.demo-lower[data-show=true],.demo-frame[data-playing=false] .demo-lower{opacity:1;transform:none}.demo-lower-tag{font:500 .625rem/1.4 var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:hsl(var(--accent))}.demo-lower-name{font:700 1.125rem/1.25 var(--font-display)}.demo-lower-context{font:.75rem/1.4 var(--font-mono);color:hsl(var(--foreground)/.85)}.demo-controls{z-index:3;background:hsl(var(--card)/.92);color:hsl(var(--foreground));border-radius:0 0 .8rem .8rem;align-items:center;gap:.375rem;padding:.25rem .75rem;transition:opacity .3s;display:flex;position:absolute;bottom:.375rem;left:.375rem;right:.375rem}.demo-controls[data-idle=true]:not(:has(:focus-visible)){opacity:0;pointer-events:none}.demo-btn{width:2.75rem;height:2.75rem;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:.625rem;flex-shrink:0;place-items:center;transition:background-color .2s;display:inline-grid}.demo-btn:is(:hover,:focus-visible){background:hsl(var(--primary)/.14)}.demo-time{font:.75rem/1 var(--font-mono);font-variant-numeric:tabular-nums;color:hsl(var(--foreground)/.88);flex-shrink:0;margin-left:.375rem}.demo-scrub{flex:1;min-width:4rem;height:2.75rem;position:relative}.demo-scrub-track{background:hsl(var(--foreground)/.2);border-radius:9999px;height:.375rem;margin-top:-.1875rem;position:absolute;top:50%;left:0;right:0;overflow:hidden}.demo-scrub-buffer,.demo-scrub-fill{border-radius:inherit;position:absolute;inset:0 auto 0 0}.demo-scrub-buffer{background:hsl(var(--foreground)/.32)}.demo-scrub-fill{background:linear-gradient(90deg,hsl(var(--primary)),hsl(var(--accent)))}.demo-scrub input,.demo-volume{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;background:0 0;margin:0}.demo-scrub input{width:100%;height:100%;position:absolute;top:0;right:0;bottom:0;left:0}.demo-volume{background:linear-gradient(90deg,hsl(var(--primary))var(--v,100%),hsl(var(--foreground)/.2)var(--v,100%))center/100% .375rem no-repeat;border-radius:9999px;flex-shrink:0;width:5rem;height:2.75rem}.demo-scrub input::-webkit-slider-runnable-track{background:0 0;height:2.75rem}.demo-volume::-webkit-slider-runnable-track{background:0 0;height:2.75rem}.demo-scrub input::-moz-range-track{background:0 0;height:2.75rem}.demo-volume::-moz-range-track{background:0 0;height:2.75rem}.demo-scrub input::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:2px solid hsl(var(--card));background:hsl(var(--primary));width:.875rem;height:.875rem;box-shadow:0 0 0 1px hsl(var(--primary));border-radius:50%;margin-top:.9375rem}.demo-volume::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:2px solid hsl(var(--card));background:hsl(var(--primary));width:.875rem;height:.875rem;box-shadow:0 0 0 1px hsl(var(--primary));border-radius:50%;margin-top:.9375rem}.demo-scrub input::-moz-range-thumb{border:2px solid hsl(var(--card));background:hsl(var(--primary));border-radius:50%;width:.875rem;height:.875rem}.demo-volume::-moz-range-thumb{border:2px solid hsl(var(--card));background:hsl(var(--primary));border-radius:50%;width:.875rem;height:.875rem}@media not all and (min-width:900px){.demo-volume{display:none}}.demo-keys{font:.6875rem/1.5 var(--font-mono);text-align:center;color:hsl(var(--foreground)/.8);margin-top:1.75rem}.demo-skeleton{pointer-events:none;background:hsl(var(--background)/.3);place-items:center;display:grid;position:absolute;top:0;right:0;bottom:0;left:0}.demo-skeleton-bar{background:hsl(var(--foreground)/.16);border-radius:3px;width:38%;height:3px;position:relative;overflow:hidden}.demo-skeleton-bar:after{content:"";background:linear-gradient(90deg,transparent,hsl(var(--primary)),transparent);width:40%;animation:1.2s ease-in-out infinite demo-shimmer;position:absolute;top:0;right:0;bottom:0;left:0}@keyframes demo-shimmer{0%{transform:translate(-100%)}to{transform:translate(260%)}}.demo-error,.demo-card{text-align:center;background:hsl(var(--card));color:hsl(var(--foreground));place-content:center;justify-items:center;gap:.625rem;padding:1.5rem;display:grid;position:absolute;top:0;right:0;bottom:0;left:0}.demo-error{z-index:4}.demo-error svg{color:hsl(var(--accent))}.demo-card>svg{color:hsl(var(--primary))}.demo-card-title{font:600 1.125rem/1.35 var(--font-display)}.demo-card-body{max-width:30rem;color:hsl(var(--foreground)/.85);font-size:.875rem;line-height:1.6}.demo-facade{place-items:center;display:grid;position:absolute;top:0;right:0;bottom:0;left:0}.demo-facade img{object-fit:cover;width:100%;height:100%;position:absolute;top:0;right:0;bottom:0;left:0}.demo-bigplay{background:hsl(var(--primary));min-height:3.25rem;color:hsl(var(--primary-foreground));font:600 .9375rem/1 var(--font-body);cursor:pointer;border:0;border-radius:9999px;align-items:center;gap:.625rem;padding:0 1.5rem;display:inline-flex;position:relative}.demo-consent{background:hsl(var(--background)/.92);font:.75rem/1.4 var(--font-mono);text-align:center;color:hsl(var(--foreground));border-radius:.5rem;padding:.375rem .75rem;position:absolute;bottom:1rem;left:1rem;right:1rem}.demo-strip{width:min(100%,52rem);min-width:0;margin-top:1.25rem}.demo-strip-title{font:500 .6875rem/1.4 var(--font-mono);letter-spacing:.13em;text-transform:uppercase;color:hsl(var(--foreground)/.88);margin-bottom:.5rem}.demo-strip ul{gap:.625rem;max-width:100%;padding-bottom:.25rem;display:flex;overflow-x:auto}.demo-chapter{border:1px solid hsl(var(--border));background:hsl(var(--card)/.85);min-height:3.25rem;color:hsl(var(--foreground));font:500 .8125rem/1.3 var(--font-body);text-align:left;white-space:nowrap;cursor:pointer;transition:border-color .2s ease,background-color .2s ease,transform .22s var(--ease-spring);border-radius:.75rem;align-items:center;gap:.625rem;padding:.3rem .875rem .3rem .3rem;display:flex}.demo-chapter:is(:hover,:focus-visible){border-color:hsl(var(--primary)/.6);background:hsl(var(--primary)/.08);transform:translateY(-1px)}.demo-chapter-thumb{aspect-ratio:16/9;background:hsl(var(--muted));border-radius:.5rem;flex-shrink:0;place-items:center;width:4.75rem;display:grid;overflow:hidden}.demo-chapter-thumb img{object-fit:cover;width:100%;height:100%;display:block}@media not all and (min-width:640px),(pointer:coarse){.demo-shell{padding:.75rem .75rem 1rem;overflow-y:auto}.demo-top{flex-wrap:wrap}.demo-main{justify-content:flex-start;overflow:visible}.demo-frame{border-radius:.875rem;width:100%;padding:.25rem}.demo-screen{border-radius:.65rem}.demo-shadow{display:none}.demo-strip{margin-top:1.5rem}.demo-chapter{min-height:2.75rem}}@media (prefers-reduced-motion:no-preference){.demo-theater[open]::backdrop{animation:.36s both demo-fade-in}.demo-theater[open] :is(.demo-top,.demo-strip,.demo-keys){animation:.52s cubic-bezier(.22,1,.36,1) .18s both demo-rise}.demo-theater[open] .demo-ambient{animation:.9s .12s both demo-fade-in}.demo-theater.is-closing{opacity:0;transition:opacity .3s}}@keyframes demo-fade-in{0%{opacity:0}}@keyframes demo-rise{0%{opacity:0;transform:translateY(.75rem)}}@media (prefers-reduced-motion:reduce){.demo-theater[open]{animation:.2s both demo-fade-in}.demo-skeleton-bar:after{opacity:.5;width:100%;animation:none}.demo-pill,.demo-chapter,.demo-lower{transition:none;transform:none!important}.demo-ambient-canvas{display:none}}@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-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-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@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-pan-x{syntax:"*";inherits:false}@property --tw-pan-y{syntax:"*";inherits:false}@property --tw-pinch-zoom{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-divide-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@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-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-font-weight{syntax:"*";inherits:false}@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-leading{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}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes pulse-subtle{0%,to{opacity:1}50%{opacity:.8}}@keyframes fade-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes wave{0%,to{transform:rotate(0)}10%,30%{transform:rotate(14deg)}20%,40%{transform:rotate(-8deg)}50%{transform:rotate(14deg)}60%{transform:rotate(0)}}@keyframes meteor{0%{opacity:1;transform:rotate(215deg)translate(0)}70%{opacity:1}to{opacity:0;transform:rotate(215deg)translate(-500px)}}@keyframes gradient-shift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}html:is([data-intro=pending],[data-intro=playing]) #hero :is(*,*:before,*:after){animation-play-state:paused!important}html[data-intro-handover] .hero-portrait.is-3d-pending .hero-portrait-figure img{animation:hero-emerge 1.4s cubic-bezier(.25,.6,.3,1) both}.intro{--bp-h: min(60vh, 560px);--bp-top: 41%;position:fixed;top:0;bottom:0;left:0;width:100vw;z-index:100;overflow:hidden;color:hsl(var(--foreground));contain:layout paint style}@media (width < 640px){.intro{--bp-h: min(44vh, 380px);--bp-top: 37%}}.intro-art{position:absolute;top:0;right:0;bottom:0;left:0}.intro-panel{position:absolute;top:0;bottom:0;width:50.5%;background:hsl(var(--background))}.intro-panel-left{left:0}.intro-panel-right{right:0}.intro-floor{position:absolute;left:-40%;right:-40%;bottom:0;height:48%;perspective:360px;perspective-origin:50% 0;opacity:0;transition:opacity var(--i-floor-in) ease-out}.intro-floor-grid{position:absolute;left:0;right:0;top:0;height:240%;transform-origin:50% 0;transform:rotateX(74deg);background-image:linear-gradient(hsl(var(--primary) / .32) 1px,transparent 1px),linear-gradient(90deg,hsl(var(--primary) / .32) 1px,transparent 1px);background-size:56px 56px;background-position:center top;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 18%,#000 55%,transparent 85%);mask-image:linear-gradient(to bottom,transparent 0,#000 18%,#000 55%,transparent 85%)}.intro-horizon{position:absolute;top:-1px;left:6%;right:6%;height:1px;transform:scaleX(0);transform-origin:50% 50%;background:linear-gradient(90deg,transparent,hsl(var(--primary) / .9) 18%,hsl(var(--accent) / .9) 50%,hsl(var(--primary) / .9) 82%,transparent);box-shadow:0 0 36px 10px hsl(var(--primary) / .22)}.intro.is-on .intro-horizon{transform:none;transition:transform var(--i-horizon-draw) cubic-bezier(.22,1,.36,1)}@media (width < 640px){.intro-floor-grid{background-size:40px 40px}.intro-floor{height:38%}}.intro-portrait{position:absolute;left:50%;top:var(--bp-top);width:calc(var(--bp-h) * .8);height:var(--bp-h);margin:calc(var(--bp-h) * -.5) 0 0 calc(var(--bp-h) * -.4);transform-origin:0 0;perspective:900px}.intro-tilt{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;transform:rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));transition:transform .5s cubic-bezier(.22,1,.36,1)}@media (pointer: coarse){.intro-tilt{animation:intro-drift 3.2s ease-in-out infinite alternate}}@keyframes intro-drift{0%{transform:rotateX(2deg) rotateY(-4deg)}to{transform:rotateX(-2deg) rotateY(4deg)}}.intro-window{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;transform:translateY(-100%)}.intro-window-inner{position:absolute;top:0;right:0;bottom:0;left:0;transform:translateY(100%)}.intro.is-building .intro-window-vertices{will-change:transform;animation:intro-window var(--i-vertices-ms) cubic-bezier(.45,.05,.35,1) forwards}.intro.is-lines .intro-window-lines{will-change:transform;animation:intro-window var(--i-lines-ms) cubic-bezier(.45,.05,.35,1) forwards}.intro.is-building .intro-window-vertices .intro-window-inner{will-change:transform;animation:intro-window-inner var(--i-vertices-ms) cubic-bezier(.45,.05,.35,1) forwards}.intro.is-lines .intro-window-lines .intro-window-inner{will-change:transform;animation:intro-window-inner var(--i-lines-ms) cubic-bezier(.45,.05,.35,1) forwards}@keyframes intro-window{to{transform:none}}@keyframes intro-window-inner{to{transform:none}}.intro-lines{position:absolute;top:0;right:0;bottom:0;left:0;background:hsl(var(--primary));-webkit-mask:var(--bp) center / 100% 100% no-repeat;mask:var(--bp) center / 100% 100% no-repeat;mask-mode:luminance}html:not(.dark) .intro-lines{background:color-mix(in srgb,hsl(var(--primary)) 60%,hsl(var(--foreground)))}.intro.no-lines .intro-window-lines{display:none}@supports not (mask-mode: luminance){.intro-window-lines{display:none}}.intro-scan{position:absolute;left:0;right:0;top:0;height:2px;opacity:0;background:linear-gradient(90deg,transparent,hsl(var(--primary)) 18%,hsl(var(--accent)) 50%,hsl(var(--primary)) 82%,transparent);box-shadow:0 0 18px 4px hsl(var(--primary) / .45)}.intro.is-lines .intro-scan{will-change:transform,opacity;animation:intro-scan var(--i-lines-ms) cubic-bezier(.45,.05,.35,1) both}@keyframes intro-scan{0%{opacity:0;transform:translateY(0)}12%{opacity:1}88%{opacity:1}to{opacity:0;transform:translateY(var(--bp-h))}}.intro-vertices{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;color:hsl(var(--primary));opacity:.75}.intro-vertices circle{fill:currentColor}.intro-vertices circle.is-accent{fill:hsl(var(--accent));transform-box:fill-box;transform-origin:center}.intro-sweep{position:absolute;left:0;right:0;top:14%;height:52%;overflow:hidden;opacity:0;pointer-events:none;-webkit-mask-image:linear-gradient(90deg,transparent,#000 22%,#000 78%,transparent),linear-gradient(180deg,transparent,#000 30%,#000 70%,transparent);mask-image:linear-gradient(90deg,transparent,#000 22%,#000 78%,transparent),linear-gradient(180deg,transparent,#000 30%,#000 70%,transparent);-webkit-mask-composite:source-in;mask-composite:intersect}.intro-sweep:before{content:"";position:absolute;top:0;bottom:0;left:0;width:46%;transform:translate(-110%);background:linear-gradient(90deg,transparent,hsl(var(--primary) / .3) 40%,hsl(var(--accent) / .26) 60%,transparent)}.intro.is-hold .intro-sweep{opacity:1}.intro.is-hold .intro-sweep:before{will-change:transform;animation:intro-light var(--i-sweep-ms) cubic-bezier(.4,0,.2,1) both}@keyframes intro-light{0%{transform:translate(-110%)}to{transform:translate(240%)}}.intro.is-hold .intro-vertices circle.is-accent{animation:intro-pulse calc(var(--i-pulse-ms) / 2) ease-in-out 2 both}@keyframes intro-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.9);opacity:.75}}.intro-copy{position:absolute;left:50%;top:calc(var(--bp-top) + var(--bp-h) * .5 + 1.25rem);width:min(90vw,28rem);display:grid;justify-items:center;gap:.375rem;text-align:center;transform:translate(-50%)}.intro-name,.intro-role,.intro-progress,.intro-statusbox{opacity:0;transform:translateY(.5rem)}.intro-name{font:700 clamp(1.75rem,3.2vw,2.5rem)/1.05 var(--font-display);letter-spacing:-.04em}.intro-role{font:500 .75rem/1.4 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:hsl(var(--foreground) / .82)}.intro.is-on .intro-floor{opacity:1}.intro-name,.intro-role{visibility:hidden}.intro.has-fonts.show-name .intro-name,.intro.has-fonts.show-role .intro-role{visibility:visible;opacity:1;transform:none;transition:opacity .45s ease-out,transform .6s cubic-bezier(.22,1,.36,1)}.intro.show-progress .intro-progress,.intro.show-status .intro-statusbox{opacity:1;transform:none;transition:opacity .4s ease-out,transform .5s cubic-bezier(.22,1,.36,1)}.intro-progress{position:relative;width:12rem;height:2px;margin-top:.875rem;border-radius:2px;background:hsl(var(--foreground) / .14)}.intro-progress-bar{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:hsl(var(--primary));transform:scaleX(0);transform-origin:left;transition:transform .32s cubic-bezier(.22,1,.36,1)}.intro-progress-dot{position:absolute;left:-3px;top:-2px;width:6px;height:6px;border-radius:50%;background:hsl(var(--accent));box-shadow:0 0 10px hsl(var(--accent) / .8);transition:transform .32s cubic-bezier(.22,1,.36,1)}.intro-statusbox{width:11rem;margin-top:.625rem;text-align:left;font:.6875rem/1.6 var(--font-mono);color:hsl(var(--foreground) / .85)}.intro-status-title{margin-bottom:.25rem;font:500 .625rem/1.4 var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:hsl(var(--foreground) / .82)}.intro-status{display:grid;gap:.125rem}.intro-status li{display:flex;align-items:center;gap:.5rem;opacity:0;transform:translate(-.375rem)}.intro-status li.is-shown{opacity:1;transform:none;transition:opacity .3s ease-out,transform .36s cubic-bezier(.22,1,.36,1)}.intro-status-mark{display:inline-block;width:1rem;text-align:center}.intro-status [data-state=wait] .intro-status-mark:before{content:"·"}.intro-status [data-state=ok] .intro-status-mark:before{content:"✓";color:hsl(var(--primary))}.intro-status [data-state=fail] .intro-status-mark:before{content:"–";color:hsl(var(--foreground) / .7)}.intro-skip{position:absolute;right:2.25rem;bottom:1.25rem;z-index:2;width:10rem;min-height:2.75rem;padding:0 1.125rem;text-align:left;border:1px solid hsl(var(--border));border-radius:9999px;background:hsl(var(--card) / .9);color:hsl(var(--foreground));font:500 .75rem/1 var(--font-mono);cursor:pointer}.intro-skip:is(:hover,:focus-visible){border-color:hsl(var(--primary) / .6)}.intro-skip:focus-visible{outline:2px solid hsl(var(--primary));outline-offset:3px}.intro.is-handover .intro-panel{will-change:transform;transition:transform var(--i-handover-ms) cubic-bezier(.65,0,.35,1)}.intro.is-handover .intro-panel-left{transform:translate(-101%)}.intro.is-handover .intro-panel-right{transform:translate(101%)}.intro.is-handover :is(.intro-floor,.intro-copy,.intro-skip){opacity:0;transition:opacity calc(var(--i-handover-ms) * .5) ease-out}.intro.is-skipping{opacity:0;transition:opacity var(--i-skip-ms) ease-out}
