@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-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-tracking: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-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}}}:root{--font-display:"Rye", serif;--bg:0 0% 5%;--fg:0 0% 95%;--primary:0 72% 45%;--primary-glow:0 85% 55%;--card:0 0% 8%;--card-hover:0 0% 11%;--border:0 0% 18%;--muted:0 0% 65%;--muted-grey:0 0% 8%;--muted-red:0 60% 55%;--shadow-red:0 0 25px #ee2b2b26}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-zinc-100:oklch(96.7% .001 286.375);--color-zinc-300:oklch(87.1% .006 286.286);--color-zinc-400:oklch(70.5% .015 286.067);--color-zinc-500:oklch(55.2% .016 285.938);--color-zinc-700:oklch(37% .013 285.805);--color-zinc-800:oklch(27.4% .006 286.033);--color-white:#fff;--spacing:.25rem;--container-3xl:48rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--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;--tracking-wide:.025em;--leading-tight:1.25;--blur-md:12px;--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)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.relative{position:relative}.static{position:static}.sticky{position:sticky}.top-0{top:calc(var(--spacing) * 0)}.z-10{z-index:10}.z-50{z-index:50}.m-130{margin:calc(var(--spacing) * 130)}.m-156{margin:calc(var(--spacing) * 156)}.m-160{margin:calc(var(--spacing) * 160)}.m-176{margin:calc(var(--spacing) * 176)}.m-184{margin:calc(var(--spacing) * 184)}.m-199{margin:calc(var(--spacing) * 199)}.m-202{margin:calc(var(--spacing) * 202)}.m-218{margin:calc(var(--spacing) * 218)}.m-230{margin:calc(var(--spacing) * 230)}.m-239{margin:calc(var(--spacing) * 239)}.m-263{margin:calc(var(--spacing) * 263)}.m-266{margin:calc(var(--spacing) * 266)}.m-285{margin:calc(var(--spacing) * 285)}.m-289{margin:calc(var(--spacing) * 289)}.m-336{margin:calc(var(--spacing) * 336)}.m-354{margin:calc(var(--spacing) * 354)}.m-380{margin:calc(var(--spacing) * 380)}.m-472{margin:calc(var(--spacing) * 472)}.m-491{margin:calc(var(--spacing) * 491)}.m-493{margin:calc(var(--spacing) * 493)}.m-500{margin:calc(var(--spacing) * 500)}.m-503{margin:calc(var(--spacing) * 503)}.m-504{margin:calc(var(--spacing) * 504)}.m-525{margin:calc(var(--spacing) * 525)}.m-529{margin:calc(var(--spacing) * 529)}.m-551{margin:calc(var(--spacing) * 551)}.m-554{margin:calc(var(--spacing) * 554)}.m-565{margin:calc(var(--spacing) * 565)}.m-567{margin:calc(var(--spacing) * 567)}.m-607{margin:calc(var(--spacing) * 607)}.m-646{margin:calc(var(--spacing) * 646)}.m-654{margin:calc(var(--spacing) * 654)}.m-666{margin:calc(var(--spacing) * 666)}.m-679{margin:calc(var(--spacing) * 679)}.m-688{margin:calc(var(--spacing) * 688)}.m-709{margin:calc(var(--spacing) * 709)}.m-762{margin:calc(var(--spacing) * 762)}.m-773{margin:calc(var(--spacing) * 773)}.m-777{margin:calc(var(--spacing) * 777)}.m-809{margin:calc(var(--spacing) * 809)}.m-859{margin:calc(var(--spacing) * 859)}.m-866{margin:calc(var(--spacing) * 866)}.m-952{margin:calc(var(--spacing) * 952)}.m-988{margin:calc(var(--spacing) * 988)}.m-1006{margin:calc(var(--spacing) * 1006)}.m-1046{margin:calc(var(--spacing) * 1046)}.m-1059{margin:calc(var(--spacing) * 1059)}.m-1081{margin:calc(var(--spacing) * 1081)}.m-1109{margin:calc(var(--spacing) * 1109)}.m-1230{margin:calc(var(--spacing) * 1230)}.m-1322{margin:calc(var(--spacing) * 1322)}.m-1392{margin:calc(var(--spacing) * 1392)}.m-1544{margin:calc(var(--spacing) * 1544)}.m-1548{margin:calc(var(--spacing) * 1548)}.m-1550{margin:calc(var(--spacing) * 1550)}.m-1567{margin:calc(var(--spacing) * 1567)}.m-1581{margin:calc(var(--spacing) * 1581)}.m-1661{margin:calc(var(--spacing) * 1661)}.m-1703{margin:calc(var(--spacing) * 1703)}.m-2007{margin:calc(var(--spacing) * 2007)}.m-2044{margin:calc(var(--spacing) * 2044)}.m-2087{margin:calc(var(--spacing) * 2087)}.m-2112{margin:calc(var(--spacing) * 2112)}.m-2244{margin:calc(var(--spacing) * 2244)}.m-2343{margin:calc(var(--spacing) * 2343)}.m-2535{margin:calc(var(--spacing) * 2535)}.m-2610{margin:calc(var(--spacing) * 2610)}.m-2727{margin:calc(var(--spacing) * 2727)}.m-2768{margin:calc(var(--spacing) * 2768)}.m-2811{margin:calc(var(--spacing) * 2811)}.m-2935{margin:calc(var(--spacing) * 2935)}.m-2967{margin:calc(var(--spacing) * 2967)}.m-3007{margin:calc(var(--spacing) * 3007)}.m-3021{margin:calc(var(--spacing) * 3021)}.m-3207{margin:calc(var(--spacing) * 3207)}.m-3285{margin:calc(var(--spacing) * 3285)}.m-3610{margin:calc(var(--spacing) * 3610)}.m-3631{margin:calc(var(--spacing) * 3631)}.m-3738{margin:calc(var(--spacing) * 3738)}.m-4985{margin:calc(var(--spacing) * 4985)}.m-6163{margin:calc(var(--spacing) * 6163)}.m-6834{margin:calc(var(--spacing) * 6834)}.mx-auto{margin-inline:auto}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-16{margin-top:calc(var(--spacing) * 16)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.min-h-\[70vh\]{min-height:70vh}.w-full{width:100%}.max-w-3xl{max-width:var(--container-3xl)}.max-w-full{max-width:100%}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing) * 2)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.overflow-hidden{overflow:hidden}.rounded-full{border-radius:3.40282e38px}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-\[hsl\(var\(--border\)\)\]{border-color:hsl(var(--border))}.border-zinc-700{border-color:var(--color-zinc-700)}.bg-\[hsl\(var\(--bg\)\)\]\/80{background-color:hsl(var(--bg))}@supports (color:color-mix(in lab,red,red)){.bg-\[hsl\(var\(--bg\)\)\]\/80{background-color:color-mix(in oklab,hsl(var(--bg)) 80%,transparent)}}.bg-zinc-800{background-color:var(--color-zinc-800)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-10{padding-block:calc(var(--spacing) * 10)}.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-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.tracking-\[0\.3em\]{--tw-tracking:.3em;letter-spacing:.3em}.tracking-\[0\.25em\]{--tw-tracking:.25em;letter-spacing:.25em}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.text-\[hsl\(var\(--primary\)\)\]{color:hsl(var(--primary))}.text-white{color:var(--color-white)}.text-zinc-100{color:var(--color-zinc-100)}.text-zinc-400{color:var(--color-zinc-400)}.text-zinc-500{color:var(--color-zinc-500)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.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-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,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media(hover:hover){.hover\:bg-zinc-800:hover{background-color:var(--color-zinc-800)}.hover\:text-white:hover{color:var(--color-white)}.hover\:text-zinc-300:hover{color:var(--color-zinc-300)}}@media(min-width:40rem){.sm\:flex-row{flex-direction:row}.sm\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}}@media(min-width:48rem){.md\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}}}.nav-link{color:hsl(var(--muted));font-size:.875rem;transition:color .2s,text-shadow .2s;display:inline-block;position:relative}.nav-link:hover{color:hsl(var(--fg));text-shadow:var(--shadow-red)}.nav-link--line:after{content:"";background:hsl(var(--primary));transform-origin:0;width:100%;height:2px;transition:transform .25s;position:absolute;bottom:-4px;left:0;transform:scaleX(0)}.nav-link--line:hover:after{transform:scaleX(1)}.nav-link--diamond:after{content:"";background:hsl(var(--primary));width:6px;height:6px;box-shadow:var(--shadow-red);transition:transform .25s;position:absolute;bottom:-7px;left:50%;transform:translate(-50%)rotate(45deg)scale(0)}.nav-link--diamond:hover:after{transform:translate(-50%)rotate(45deg)scale(1)}.nav-link--star:after{content:"✦";color:hsl(var(--primary));text-shadow:var(--shadow-red);font-size:10px;transition:transform .2s;position:absolute;bottom:-10px;left:50%;transform:translate(-50%)scale(0)}.nav-link--star:hover:after{transform:translate(-50%)scale(1)}.social-link{opacity:.75;justify-content:center;align-items:center;transition:all .25s;display:inline-flex}.social-link:hover{opacity:1;transform:translateY(-2px)}.social-icon{width:18px;height:18px}.btn{cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid hsl(var(--border));color:hsl(var(--fg));background:hsl(var(--card));border-radius:10px;justify-content:center;align-items:center;padding:.6rem 1.2rem;font-size:.875rem;font-weight:500;transition:all .2s;display:inline-flex}.btn:hover{background:hsl(var(--card-hover));box-shadow:var(--shadow-red);transform:translateY(-2px)}.btn:active{transform:translateY(0)scale(.98)}.btn-primary{position:relative;overflow:hidden}.btn-primary:after{content:"";background:linear-gradient(120deg,#0000,#ffffff26,#0000);width:100%;height:100%;transition:left .5s;position:absolute;top:0;left:-100%}.btn-primary:hover:after{left:100%}.btn-ghost{border:1px solid hsl(var(--border));color:hsl(var(--muted));background:0 0}.btn-ghost:hover{color:hsl(var(--fg));border-color:hsl(var(--primary));box-shadow:var(--shadow-red)}.btn-border-wipe{float:left;width:160px;height:auto;padding:5 px;text-align:center;background:hsl(var(--muted-grey));border:1px solid #ffffff26;border-radius:5px;margin:0 5px;transition:all .5s linear;display:block;position:relative;overflow:hidden}.btn-border-wipe:before{content:"";box-sizing:border-box;border-bottom:4px solid #0000;border-left:4px solid #0000;width:100%;height:4px;position:absolute;bottom:0;left:0;transform:translate(100%)}.btn-border-wipe:after{content:"";box-sizing:border-box;border-top:2px solid #0000;border-right:2px solid #0000;width:100%;height:4px;position:absolute;top:0;left:0;transform:translate(-100%)}.btn-border-wipe:hover{color:hsl(var(--fg));box-shadow:var(--shadow-red)}.btn-border-wipe:hover:before{border-color:hsl(var(--primary));height:100%;transition:transform .2s linear,height .3s linear .3s;transform:translate(0)}.btn-border-wipe:hover:after{border-color:hsl(var(--primary));height:100%;transition:transform .2s linear,height .3s linear .4s;transform:translate(0)}.btn-border-wipe .icon{opacity:0;transition:opacity .3s,transform .3s;position:absolute;left:20px;transform:translate(-8px)}.btn-border-wipe .label{transition:padding-left .3s}.btn-border-wipe:hover .icon{opacity:1;transform:translate(0)}.btn-border-wipe:hover .label{padding-left:18px}.timeline-section{max-width:850px;margin:0 auto;padding:4rem 1.5rem}.timeline-title{color:hsl(var(--fg));letter-spacing:.5px;margin-bottom:2.5rem;font-size:2.2rem}.timeline{border-left:2px dotted hsl(var(--border));padding-left:2rem;position:relative}.timeline-item{opacity:0;margin-bottom:2.5rem;transition:opacity .7s,transform .7s;position:relative;transform:translateY(30px)}.timeline-item.is-visible{opacity:1;transform:translateY(0)}.timeline-dot{color:hsl(var(--primary));justify-content:center;align-items:center;font-size:1rem;transition:transform .2s,text-shadow .2s;display:flex;position:absolute;top:.15rem;left:-2.95rem}.timeline-item:hover .timeline-dot{text-shadow:0 0 20px #ee2b2b73;transform:scale(1.5)}.timeline-card{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:14px;padding:1.2rem 1.4rem;transition:all .2s}.timeline-card:hover{background:hsl(var(--card-hover));box-shadow:var(--shadow-red);transform:translateY(-4px)}.timeline-year{color:hsl(var(--primary));letter-spacing:.5px;font-size:.8rem;font-weight:600}.timeline-main{color:hsl(var(--fg));margin-top:.3rem;font-size:1.2rem}.timeline-sub{color:hsl(var(--muted));margin-top:.2rem;font-size:.95rem}.timeline-details{color:#ffffffbf;flex-direction:column;gap:.4rem;margin-top:.75rem;padding-left:1.1rem;font-size:.9rem;line-height:1.6;display:flex}.timeline-details li{padding-left:.6rem;position:relative}.timeline-details li:before{content:"•";color:var(--primary);position:absolute;left:-.6rem}.timeline-icon{justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.timeline-icon-img{object-fit:contain}.timeline-icon-text{font-size:14px;line-height:1}.corner-overlay{pointer-events:none;z-index:10;position:absolute;inset:0}.corner-overlay__corner{width:var(--corner-overlay-size);height:var(--corner-overlay-size);background-color:var(--corner-overlay-color);opacity:var(--corner-overlay-opacity);-webkit-mask-image:var(--corner-overlay-mask);mask-image:var(--corner-overlay-mask);transform:rotate(var(--r,0deg)) scale(.6);transform-origin:50%;transition:transform .35s,background-color .3s,opacity .3s;position:absolute;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.project-card:hover .corner-overlay__corner,.timeline-item:hover .corner-overlay__corner{transform:rotate(var(--r)) scale(1);background-color:var(--corner-overlay-hover);opacity:1}.corner-overlay__tl{--r:0deg;top:0;left:0}.corner-overlay__tr{--r:90deg;top:0;right:0}.corner-overlay__bl{--r:-90deg;bottom:0;left:0}.corner-overlay__br{--r:180deg;bottom:0;right:0}.corner-overlay__corner{opacity:0;pointer-events:none;display:none}.corner-overlay__corner[data-active=true]{display:block}.project-card{background:hsl(var(--card));border:1px solid hsl(var(--border));box-sizing:border-box;border-radius:16px;width:100%;max-width:100%;padding:2rem;transition:transform .2s,border-color .2s,box-shadow .2s,background .2s;position:relative}.project-card:hover{border-color:hsl(var(--primary));background:hsl(var(--card-hover));box-shadow:var(--shadow-red);transform:translateY(-4px)}.project-card-title{color:hsl(var(--fg));font-size:1.25rem;font-weight:600;transition:color .2s}.project-card:hover .project-card-title{color:hsl(var(--primary))}.project-card-description{color:hsl(var(--muted));margin-top:.75rem;font-size:.95rem;line-height:1.7}.project-card-tags{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.project-card-tag{border:1px solid hsl(var(--border));color:hsl(var(--muted));background:#ffffff05;border-radius:999px;padding:.35rem .65rem;font-size:.75rem;transition:border-color .2s,color .2s,background .2s}.project-card-tag:hover{border-color:hsl(var(--primary));color:hsl(var(--fg));background:#ee2b2b14}.project-card-link-wrapper{margin-top:1.25rem}.project-card-actions{align-items:center;display:flex}.project-card-link+.project-card-link{border-left:1px solid hsl(var(--border));margin-left:1rem;padding-left:1rem}.project-card-link{align-items:center;gap:.4rem;display:inline-flex}.icon{opacity:.85;width:16px;height:16px;transition:opacity .2s}.project-card-link:hover .icon{opacity:1}.project-card-link:hover{color:#fff}.project-card-link.secondary{color:#a1a1aa}.project-card-link.secondary:hover{color:#f4f4f5}.project-card-main{justify-content:space-between;align-items:flex-start;gap:1.5rem;display:flex}.project-card-content{flex:1;min-width:0}.project-card-image{border:1px solid hsl(var(--border));background:hsl(var(--card-hover));border-radius:14px;flex-shrink:0;width:160px;height:110px;transition:transform .25s,box-shadow .25s;position:relative;overflow:hidden;box-shadow:0 8px 20px #00000040}.project-card-image img{object-fit:cover;width:100%;height:100%;transition:transform .4s;display:block}.project-card:hover .project-card-image{border-color:hsl(var(--primary));transform:translateY(-4px);box-shadow:0 14px 30px #00000059}.project-card:hover .project-card-image img{transform:scale(1.1)}@media(max-width:640px){.project-card-main{flex-direction:column}.project-card-image{width:100%;height:180px}}.project-item{opacity:0;transition:all .35s;transform:translateY(14px)}.project-item.is-visible{opacity:1;transform:translateY(0)}.carousel{scroll-snap-type:x mandatory;scrollbar-width:none;width:100%;max-width:100%;padding-top:.5rem;padding-bottom:1.5rem;overflow:auto visible}.carousel::-webkit-scrollbar{display:none}.carousel-track{gap:1.25rem;padding-inline:.5rem;display:flex}.carousel-track>*{opacity:0;flex:0 0 340px;max-width:340px;transition:opacity .6s,transform .6s;transform:translateY(20px)}.carousel-track>.is-visible{opacity:1;transform:translateY(0)}@media(max-width:768px){.carousel-track>*{flex:0 0 85%}}.carousel-wrapper{align-items:center;width:100%;max-width:100%;display:flex;position:relative}.carousel-btn{z-index:10;color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background:0 0;border:1px solid #ffffff1a;border-radius:999px;justify-content:center;align-items:center;width:42px;height:42px;transition:all .2s;display:flex;position:absolute}.carousel-btn:hover{background:#4e0000d9}.carousel-btn.left{left:-1rem}.carousel-btn.right{right:-1rem}.carousel-btn img{object-fit:contain;width:20px;height:20px}.carousel-btn:hover img{filter:invert()}.tech-grid{grid-template-columns:repeat(3,1fr);gap:1.25rem;display:grid}.tech-item{cursor:default;opacity:0;background:#ffffff05;border:1px solid #ffffff12;border-radius:16px;align-items:center;gap:.9rem;padding:1rem 1.1rem;transition:transform .6s,opacity .6s,border-color .3s;display:flex;position:relative;overflow:hidden;transform:translateY(20px)}.tech-item:before{content:"";background:radial-gradient(circle at var(--x,20%) var(--y,20%),rgba(var(--primary-rgb,255, 90, 90),.18),transparent 60%);opacity:0;transition:opacity .3s;position:absolute;inset:0}.tech-item:hover:before{opacity:1}.tech-item:hover{border-color:rgba(var(--primary-rgb,255, 90, 90),.5);transform:translateY(-4px)scale(1.02)}.tech-icon{flex-shrink:0;width:26px;height:26px;transition:transform .3s}.tech-item:hover .tech-icon{transform:scale(1.15)}.tech-item span{color:#ffffffd9;letter-spacing:.02em;font-size:.95rem}.tech-fallback{width:26px;height:26px;color:var(--primary);justify-content:center;align-items:center;font-size:16px;display:inline-flex}.tech-item:nth-child(odd){transform:translate(-20px)translateY(20px)}.tech-item:nth-child(2n){transform:translate(20px)translateY(20px)}.tech-item.is-visible{opacity:1;transform:translate(0)translateY(0)}.publications-section{margin-top:4rem}.publications-grid{grid-template-columns:1fr;gap:1.5rem;display:grid}.publication-card{background:hsl(var(--card) / .55);-webkit-backdrop-filter:blur(14px);border:1px solid hsl(var(--border) / .35);opacity:0;border-radius:16px;padding:1.75rem;transition:transform .7s cubic-bezier(.2,.8,.2,1),opacity .7s cubic-bezier(.2,.8,.2,1),box-shadow .22s,border-color .22s;position:relative;overflow:hidden;transform:translateY(24px);box-shadow:0 10px 26px #0000000f,inset 0 1px #ffffff0d}.publication-card.is-visible{opacity:1;transform:translateY(0)}.publication-card:before{content:"";background:radial-gradient(600px circle at var(--x,50%) var(--y,50%),hsl(var(--primary) / .14),transparent 45%);opacity:0;pointer-events:none;transition:opacity .25s;position:absolute;inset:0}.publication-card:hover:before{opacity:1}.publication-card:after{content:"";border-radius:inherit;background:linear-gradient(135deg,transparent,hsl(var(--primary) / .16),transparent);opacity:0;pointer-events:none;padding:1px;transition:opacity .25s;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;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}.publication-card:hover:after{opacity:1}.publication-card:hover{border-color:hsl(var(--primary) / .45);transform:translateY(-6px);box-shadow:0 18px 42px #0000001a,inset 0 1px #ffffff0f}.publication-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.publication-title{color:hsl(var(--fg));line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:1.1rem;font-weight:650;line-height:1.4;display:-webkit-box;overflow:hidden}.publication-meta{color:hsl(var(--muted));white-space:nowrap;align-items:center;gap:.4rem;font-size:.8rem;display:flex}.publication-type{color:hsl(var(--primary));font-weight:600}.publication-journal{color:hsl(var(--muted));margin-top:.6rem;font-size:.9rem;font-style:italic}.publication-authors{color:hsl(var(--muted));margin-top:.4rem;font-size:.85rem;line-height:1.5}.publication-link{color:hsl(var(--primary));align-items:center;gap:.4rem;margin-top:1rem;font-size:.9rem;text-decoration:none;transition:transform .16s,opacity .16s;display:inline-flex}.publication-link:after{content:"→";transition:transform .16s}.publication-link:hover{transform:translate(3px)}.publication-link:hover:after{transform:translate(4px)}.publication-card:focus-within{outline:2px solid hsl(var(--primary));outline-offset:3px}.font-display{font-family:var(--font-display,serif)}.text-primary{color:hsl(var(--primary))}body{background-color:hsl(var(--bg));color:hsl(var(--fg));font-family:var(--font-mono);outline:2px solid hsl(var(--primary));margin:5px;overflow-x:hidden}.site{min-height:100vh;position:relative}.bg-grid{pointer-events:none;z-index:0;opacity:.2;background-image:repeating-linear-gradient(45deg,#ff000080,#0000 10px 50px),repeating-linear-gradient(-45deg,#ff000080,#0000 10px 50px);margin:10px;position:fixed;inset:0}.site>:not(.bg-grid){z-index:2;position:relative}.bg-grid{z-index:0}.bg-glow{z-index:999}footer{background:hsl(var(--bg));border-top:2px solid hsl(var(--muted-grey))}header{background:hsl(var(--bg));border-top:2px solid hsl(var(--primary));border-bottom:2px solid hsl(var(--muted-grey))}.default-icon{width:50px;height:50px}.text-deco-underline{display:inline-block;position:relative}.text-deco-underline:after{content:"";transform-origin:0;background:#fff;width:100%;height:2px;animation:1.8s ease-in-out infinite underlineMove;position:absolute;bottom:-4px;left:0;transform:scaleX(0)}@keyframes underlineMove{0%{transform-origin:0;transform:scaleX(0)}50%{transform-origin:0;transform:scaleX(1)}51%{transform-origin:100%}to{transform-origin:100%;transform:scaleX(0)}}.section-divider{opacity:1;filter:invert();justify-content:center;margin:1rem 0;display:flex}.section-divider img{object-fit:contain;width:250px;height:auto}.tags-section{margin-bottom:2rem}.tags-list{flex-wrap:wrap;gap:.75rem;transition:max-height .3s;display:flex;overflow:hidden}.tags-list.collapsed{max-height:48px}.tags-list:not(.collapsed){max-height:500px}.tags-footer{min-height:28px;margin-top:.75rem;position:relative}.tags-divider{background:#ffffff14;height:1px;position:absolute;top:50%;left:0;right:0}.show-more-btn{color:#a1a1aa;cursor:pointer;background:#0a0a0a;border:none;padding-left:.75rem;font-size:.875rem;position:absolute;top:50%;right:0;transform:translateY(-50%)}.show-more-btn:hover{color:#fff}.tag-count{color:#a1a1aa;background:#ffffff14;border-radius:999px;padding:2px 6px;font-size:.75rem}.filter-btn.bg-zinc-800 .tag-count{color:#fff;background:#ffffff26}.hero-item{opacity:0;animation:.9s cubic-bezier(.2,.8,.2,1) forwards heroIn;transform:translateY(18px)}.hero-item:first-child{animation-delay:0s}.hero-item:nth-child(2){animation-delay:.12s}.hero-item:nth-child(3){animation-delay:.24s}.hero-item:nth-child(4){animation-delay:.36s}@keyframes heroIn{to{opacity:1;transform:translateY(0)}}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.hero-name{background:linear-gradient(90deg,hsl(var(--primary)),#fff,hsl(var(--primary)));-webkit-text-fill-color:transparent;background-size:200% 100%;-webkit-background-clip:text;background-clip:text;animation:5s linear infinite shimmer}@keyframes shimmer{0%{background-position:0%}to{background-position:200%}}.hero-glow{pointer-events:none;background:radial-gradient(700px circle at var(--x,50%) var(--y,50%),hsl(var(--primary) / .18),transparent 45%);opacity:.7;position:absolute;inset:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-tracking{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-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}
