@import"https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wdth,wght@12..96,75..100,200..800&family=Inter:opsz,wght@14..32,100..900&display=swap";@layer components;@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-duration:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--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%}}}@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-red-600:oklch(57.7% .245 27.325);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-white:#fff;--spacing:.25rem;--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);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-black:900;--tracking-tight:-.025em;--radius-sm:.25rem;--radius-lg:.5rem;--radius-xl:.75rem;--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);--font-heading:"Bricolage Grotesque",sans-serif;--font-text:"Inter",sans-serif;--color-primary:#161616;--color-secondary:#737373;--color-accent:var(--color-red-600);--color-background:#fafafa;--color-layout:var(--color-white);--color-contrast-50:var(--color-gray-50);--color-contrast-100:var(--color-gray-100);--color-contrast-200:var(--color-gray-200);--color-contrast-300:var(--color-gray-300);--color-contrast-500:var(--color-gray-500);--color-contrast-600:var(--color-gray-600);--color-contrast-700:var(--color-gray-700);--color-contrast-800:var(--color-gray-800);--color-borderColor:var(--color-contrast-200)}}@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 utilities{.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.top-0{top:calc(var(--spacing)*0)}.top-8{top:calc(var(--spacing)*8)}.right-0{right:calc(var(--spacing)*0)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-7{bottom:calc(var(--spacing)*7)}.bottom-8{bottom:calc(var(--spacing)*8)}.left-0{left:calc(var(--spacing)*0)}.left-1\/2{left:50%}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.z-99{z-index:99}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-0{margin-inline:calc(var(--spacing)*0)}.my-5{margin-block:calc(var(--spacing)*5)}.my-20{margin-block:calc(var(--spacing)*20)}.my-auto{margin-block:auto}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-5{margin-top:calc(var(--spacing)*5)}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-10{margin-top:calc(var(--spacing)*10)}.mb-0{margin-bottom:calc(var(--spacing)*0)}.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-5{margin-bottom:calc(var(--spacing)*5)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.mb-10{margin-bottom:calc(var(--spacing)*10)}.ml-5{margin-left:calc(var(--spacing)*5)}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-3{height:calc(var(--spacing)*3)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.h-50{height:calc(var(--spacing)*50)}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.w-3{width:calc(var(--spacing)*3)}.w-10{width:calc(var(--spacing)*10)}.w-12{width:calc(var(--spacing)*12)}.w-50{width:calc(var(--spacing)*50)}.w-fit{width:fit-content}.w-full{width:100%}.w-screen{width:100vw}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing)*1)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-5{gap:calc(var(--spacing)*5)}.gap-8{gap:calc(var(--spacing)*8)}.overflow-hidden{overflow:hidden}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-borderColor{border-color:var(--color-borderColor)}.border-contrast-50{border-color:var(--color-contrast-50)}.border-contrast-100{border-color:var(--color-contrast-100)}.border-primary{border-color:var(--color-primary)}.bg-background{background-color:var(--color-background)}.bg-contrast-50{background-color:var(--color-contrast-50)}.bg-contrast-100{background-color:var(--color-contrast-100)}.bg-contrast-200{background-color:var(--color-contrast-200)}.bg-contrast-300{background-color:var(--color-contrast-300)}.bg-layout{background-color:var(--color-layout)}.bg-layout\!{background-color:var(--color-layout)!important}.bg-primary{background-color:var(--color-primary)}.bg-transparent{background-color:#0000}.bg-\[url\(\'\/images\/bg\.png\'\)\]{background-image:url(bg.png)}.bg-cover{background-size:cover}.bg-center{background-position:50%}.bg-no-repeat{background-repeat:no-repeat}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-5{padding:calc(var(--spacing)*5)}.p-10{padding:calc(var(--spacing)*10)}.px-0\!{padding-inline:calc(var(--spacing)*0)!important}.px-3{padding-inline:calc(var(--spacing)*3)}.px-3\!{padding-inline:calc(var(--spacing)*3)!important}.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-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-5{padding-block:calc(var(--spacing)*5)}.py-6{padding-block:calc(var(--spacing)*6)}.py-10{padding-block:calc(var(--spacing)*10)}.pt-2{padding-top:calc(var(--spacing)*2)}.pt-7{padding-top:calc(var(--spacing)*7)}.pt-10{padding-top:calc(var(--spacing)*10)}.pb-5{padding-bottom:calc(var(--spacing)*5)}.text-center{text-align:center}.text-left{text-align:left}.font-heading{font-family:var(--font-heading)}.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-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-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[26px\]{font-size:26px}.leading-7{--tw-leading:calc(var(--spacing)*7);line-height:calc(var(--spacing)*7)}.leading-8{--tw-leading:calc(var(--spacing)*8);line-height:calc(var(--spacing)*8)}.leading-10{--tw-leading:calc(var(--spacing)*10);line-height:calc(var(--spacing)*10)}.leading-14{--tw-leading:calc(var(--spacing)*14);line-height:calc(var(--spacing)*14)}.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-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.text-accent{color:var(--color-accent)}.text-contrast-500{color:var(--color-contrast-500)}.text-contrast-600{color:var(--color-contrast-600)}.text-contrast-700{color:var(--color-contrast-700)}.text-contrast-800{color:var(--color-contrast-800)}.text-layout{color:var(--color-layout)}.text-primary{color:var(--color-primary)}.text-secondary{color:var(--color-secondary)}.capitalize{text-transform:capitalize}.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)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.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))}.delay-200{transition-delay:.2s}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.outline-none{--tw-outline-style:none;outline-style:none}@media(hover:hover){.group-hover\:scale-120:is(:where(.group):hover *){--tw-scale-x:120%;--tw-scale-y:120%;--tw-scale-z:120%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\:opacity-70:is(:where(.group):hover *){opacity:.7}.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\:rotate-90:hover{rotate:90deg}.hover\:bg-contrast-50:hover{background-color:var(--color-contrast-50)}.hover\:text-primary:hover{color:var(--color-primary)}.hover\:shadow:hover{--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)}.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-sm:hover{--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)}}.focus\:scale-105:focus{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}@media(min-width:40rem){.sm\:flex{display:flex}.sm\:w-2\/4{width:50%}.sm\:w-\[500px\]{width:500px}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:border-none{--tw-border-style:none;border-style:none}.sm\:bg-layout{background-color:var(--color-layout)}.sm\:p-5{padding:calc(var(--spacing)*5)}.sm\:p-10{padding:calc(var(--spacing)*10)}}@media(min-width:48rem){.md\:mb-0{margin-bottom:calc(var(--spacing)*0)}.md\:w-1\/2{width:50%}.md\:w-60{width:calc(var(--spacing)*60)}.md\:w-\[45\%\]{width:45%}.md\:w-\[55\%\]{width:55%}.md\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:px-3{padding-inline:calc(var(--spacing)*3)}.md\:px-7{padding-inline:calc(var(--spacing)*7)}.md\:py-5{padding-block:calc(var(--spacing)*5)}}@media(min-width:64rem){.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:gap-2{gap:calc(var(--spacing)*2)}}.flex-center{justify-content:center;align-items:center;display:flex}.flex-center-col{flex-direction:column;justify-content:center;align-items:center;display:flex}.section-padding{padding-top:calc(var(--spacing)*35)}.section-width{width:100%;padding-inline:calc(var(--spacing)*5)}@media(min-width:48rem){.section-width{width:769px;padding-inline:calc(var(--spacing)*5)}}@media(min-width:64rem){.section-width{padding-inline:calc(var(--spacing)*0)}}.pagination-link{height:calc(var(--spacing)*10);width:calc(var(--spacing)*10);cursor:pointer;border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-contrast-200);background-color:var(--color-contrast-100);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold);color:var(--color-contrast-600);border-radius:3.40282e38px;flex-direction:column;justify-content:center;align-items:center;display:flex}@media(hover:hover){.pagination-link:hover{background-color:var(--color-layout);color:var(--color-primary);--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)}}}.dark{--color-primary:#fff;--color-secondary:#cdcdcd;--color-accent:var(--color-red-600);--color-background:#161616;--color-layout:#232323;--color-contrast-50:#000;--color-contrast-100:#333;--color-contrast-200:#494949;--color-contrast-300:#606060;--color-contrast-400:#777;--color-contrast-500:#8e8e8e;--color-contrast-600:#a4a4a4;--color-contrast-700:#bbb;--color-contrast-800:#d2d2d2;--color-contrast-900:#e9e9e9;--color-borderColor:var(--color-contrast-200)}html,body{font-family:var(--font-text);background-color:var(--color-background);scroll-behavior:smooth;font-weight:400;position:relative;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading)}p{font-family:var(--font-text);font-weight:400}.down{animation:2s cubic-bezier(.9,.01,.3,.99) infinite topBottom}@keyframes topBottom{0%{transform:translateY(0)}to{transform:translateY(10px)}}.container ul:after{content:" ";--tw-gradient-position:to bottom;width:2px;height:100%;position:absolute;top:0;left:50%;transform:translate(-50%)}@supports (background-image:linear-gradient(in lab,red,red)){.container ul:after{--tw-gradient-position:to bottom in oklab}}.container ul:after{background-image:linear-gradient(var(--tw-gradient-stops));--tw-gradient-from:var(--color-contrast-300);--tw-gradient-to:var(--color-contrast-300);--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))}.container ul li:last-child{margin-bottom:0}ul li:nth-child(odd) .circle{right:-30px;transform:translate(50%,-50%)}ul li:nth-child(2n) .circle{left:-30px;transform:translate(-50%,-50%)}.container ul li:nth-child(odd){float:left;clear:right;text-align:left;transform:translate(-30px)}.container ul li:nth-child(2n){float:right;clear:left;transform:translate(30px)}@media only screen and (max-width:767px){.container{width:90%;transform:translate(0)}.container ul:after{left:-18px}.container ul li .circle{left:-18px;transform:translate(-50%,-50%)}.container ul li:nth-child(odd){text-align:left;transform:translate(0)}.container ul li:nth-child(2n){transform:translate(0)}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-duration{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-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%}



/* Extracted from _layout.php */
.vcard-root { background: var(--color-background); min-height: 100vh; overflow-x: clip; }
        .vcard-mobile-open {
            transform: translateX(0) !important;
            translate: none !important;
        }
        .vcard-no-scroll { overflow: hidden; }
        .vcard-mobile-overlay {
            position: fixed;
            inset: 0;
            background: rgba(9, 12, 18, 0.52);
            backdrop-filter: blur(4px);
            opacity: 0;
            pointer-events: none;
            transition: opacity 220ms ease;
            z-index: 95;
        }
        .vcard-mobile-overlay.vcard-overlay-open {
            opacity: 1;
            pointer-events: auto;
        }
        .vcard-mobile-menu {
            position: fixed;
            top: 0;
            right: 0;
            width: min(88vw, 360px);
            max-width: calc(100vw - 8px);
            height: 100dvh;
            border-radius: 24px 0 0 24px;
            background: color-mix(in oklab, var(--color-layout) 92%, transparent);
            border: 1px solid color-mix(in oklab, var(--color-borderColor) 72%, transparent);
            box-shadow: 0 20px 52px rgba(0, 0, 0, 0.22);
            backdrop-filter: blur(14px);
            z-index: 99;
            overflow: hidden;
            transform: translateX(calc(100% + 24px));
            translate: none !important;
            transition: transform 420ms cubic-bezier(0.22, 1, 0.36, 1);
        }
        .vcard-mobile-shell {
            display: flex;
            flex-direction: column;
            justify-content: space-between;
            height: 100%;
            width: 100%;
            padding: 18px 18px 20px;
        }
        .vcard-mobile-profile {
            display: flex;
            align-items: center;
            gap: 12px;
            margin-top: 8px;
            margin-bottom: 16px;
            padding: 10px 12px;
            border-radius: 14px;
            background: color-mix(in oklab, var(--color-contrast-100) 76%, transparent);
            border: 1px solid var(--color-borderColor);
        }
        .vcard-mobile-avatar {
            width: 46px;
            height: 46px;
            border-radius: 999px;
            object-fit: cover;
            border: 1px solid var(--color-borderColor);
            background: var(--color-layout);
        }
        .vcard-mobile-name {
            color: var(--color-primary);
            font-weight: 800;
            line-height: 1.2;
            font-size: 16px;
        }
        .vcard-mobile-tagline {
            color: var(--color-contrast-600);
            font-size: 12px;
            line-height: 1.35;
            margin-top: 2px;
            display: -webkit-box;
            -webkit-line-clamp: 2;
            line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden;
        }
        .vcard-mobile-quick {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            margin-bottom: 14px;
        }
        .vcard-mobile-quick a {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            padding: 8px 11px;
            border-radius: 999px;
            font-size: 12px;
            color: var(--color-primary);
            background: color-mix(in oklab, var(--color-contrast-100) 78%, transparent);
            border: 1px solid var(--color-borderColor);
            text-decoration: none;
        }
        .vcard-mobile-quick a:hover {
            box-shadow: 0 8px 16px rgba(0, 0, 0, 0.08);
        }
        .vcard-mobile-links {
            display: flex;
            flex-direction: column;
            gap: 8px;
            padding-right: 3px;
            max-height: calc(100vh - 280px);
            overflow-y: auto;
        }
        .vcard-mobile-link {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 12px;
            padding: 11px 12px;
            border-radius: 12px;
            border: 1px solid var(--color-borderColor);
            background: color-mix(in oklab, var(--color-layout) 84%, transparent);
            color: var(--color-primary);
            text-decoration: none;
        }
        .vcard-mobile-link:hover {
            background: color-mix(in oklab, var(--color-contrast-100) 84%, transparent);
        }
        .vcard-mobile-link-main {
            display: inline-flex;
            align-items: center;
            gap: 9px;
            font-size: 14px;
            font-weight: 700;
        }
        .vcard-mobile-link-main i {
            width: 16px;
            text-align: center;
            color: var(--color-contrast-600);
        }
        .vcard-mobile-link-note {
            font-size: 11px;
            color: var(--color-contrast-600);
        }
        .dark {
            --color-primary: #fff;
            --color-secondary: #cdcdcd;
            --color-accent: var(--color-red-600);
            --color-background: #161616;
            --color-layout: #232323;
            --color-contrast-50: #000;
            --color-contrast-100: #333;
            --color-contrast-200: #494949;
            --color-contrast-300: #606060;
            --color-contrast-400: #777;
            --color-contrast-500: #8e8e8e;
            --color-contrast-600: #a4a4a4;
            --color-contrast-700: #bbb;
            --color-contrast-800: #d2d2d2;
            --color-contrast-900: #e9e9e9;
            --color-borderColor: var(--color-contrast-200);
        }
        .vcard-word { word-break: break-word; overflow-wrap: anywhere; }
        body, input, textarea, button { font-family: "Inter", sans-serif; }
        h1, h2, h3, h4, h5, h6 { font-family: "Bricolage Grotesque", sans-serif; }
        .vcard-icon-btn {
            cursor: pointer;
            color: var(--color-primary);
            border: 1px solid var(--color-borderColor);
            border-radius: 9999px;
            width: 36px;
            height: 36px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            font-size: 16px;
        }
        .container ul:after { z-index: 0; }
        .container ul li { position: relative; z-index: 1; }
        .vcard-theme-icon svg { width: 18px; height: 18px; }
        .vcard-exp-list {
            display: grid;
            gap: 14px;
        }
        .vcard-edu-timeline {
            position: relative;
            display: grid;
            gap: 18px;
        }
        .vcard-edu-timeline::before {
            content: "";
            position: absolute;
            top: 10px;
            bottom: 10px;
            left: 50%;
            width: 2px;
            transform: translateX(-50%);
            background: linear-gradient(180deg, color-mix(in oklab, var(--color-contrast-300) 82%, transparent), var(--color-borderColor));
        }
        .vcard-edu-row {
            position: relative;
            display: grid;
            grid-template-columns: 1fr 60px 1fr;
            align-items: center;
            gap: 18px;
        }
        .vcard-edu-spacer {
            min-height: 1px;
        }
        .vcard-edu-card {
            background: color-mix(in oklab, var(--color-layout) 95%, transparent);
            border: 1px solid var(--color-borderColor);
            border-radius: 16px;
            box-shadow: 0 10px 28px rgba(0, 0, 0, 0.07);
            padding: 18px 18px 16px;
            transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
        }
        .vcard-edu-row:hover .vcard-edu-card {
            --vcard-hover-y: -2px;
            box-shadow: 0 16px 34px rgba(0, 0, 0, 0.10);
            border-color: color-mix(in oklab, var(--color-primary) 20%, var(--color-borderColor));
        }
        .vcard-edu-card-left {
            text-align: right;
        }
        .vcard-edu-card-right {
            text-align: left;
        }
        .vcard-edu-card-left .vcard-exp-meta,
        .vcard-edu-card-left .vcard-exp-body {
            justify-content: flex-end;
            text-align: right;
        }
        .vcard-edu-middle {
            position: relative;
            display: flex;
            align-items: center;
            justify-content: center;
            min-height: 100%;
        }
        .vcard-edu-dot {
            width: 18px;
            height: 18px;
            border-radius: 999px;
            background: var(--color-layout);
            border: 4px solid var(--color-primary);
            box-shadow: 0 0 0 7px color-mix(in oklab, var(--color-contrast-100) 92%, transparent);
            z-index: 1;
        }
        .vcard-edu-card .vcard-exp-meta {
            display: inline-flex;
            align-items: center;
            flex-wrap: wrap;
            gap: 8px;
            margin: 10px 0 12px;
        }
        .vcard-edu-card .vcard-exp-title {
            font-size: clamp(19px, 1.05vw, 22px);
        }
        .vcard-edu-card .vcard-exp-body {
            font-size: 14px;
            line-height: 1.65;
        }
        .vcard-exp-timeline {
            position: relative;
            display: grid;
            gap: 18px;
            margin-bottom: 30px;
        }
        .vcard-exp-timeline::before {
            content: "";
            position: absolute;
            top: 10px;
            bottom: 10px;
            left: 20px;
            width: 2px;
            background: linear-gradient(180deg, color-mix(in oklab, var(--color-primary) 22%, transparent), var(--color-borderColor));
        }
        .vcard-exp-timeline-item {
            position: relative;
            padding-left: 54px;
        }
        .vcard-exp-timeline-dot {
            position: absolute;
            top: 18px;
            left: 11px;
            width: 20px;
            height: 20px;
            border-radius: 999px;
            background: var(--color-layout);
            border: 5px solid var(--color-primary);
            box-shadow: 0 0 0 6px color-mix(in oklab, var(--color-contrast-100) 92%, transparent);
            transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease;
        }
        .vcard-exp-hero {
            position: relative;
            overflow: hidden;
            border-radius: 18px;
            border: 1px solid color-mix(in oklab, var(--color-borderColor) 82%, transparent);
            background:
                radial-gradient(circle at top right, color-mix(in oklab, var(--color-contrast-100) 92%, transparent), transparent 42%),
                linear-gradient(180deg, color-mix(in oklab, var(--color-layout) 96%, transparent), color-mix(in oklab, var(--color-contrast-50) 55%, transparent));
            box-shadow: 0 14px 34px rgba(0, 0, 0, 0.08);
            padding: 22px 22px 18px;
            transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
        }
        .vcard-exp-timeline-item:hover .vcard-exp-hero {
            --vcard-hover-y: -3px;
            box-shadow: 0 18px 42px rgba(0, 0, 0, 0.11);
            border-color: color-mix(in oklab, var(--color-primary) 28%, var(--color-borderColor));
        }
        .vcard-exp-timeline-item:hover .vcard-exp-timeline-dot {
            transform: scale(1.08);
            box-shadow: 0 0 0 7px color-mix(in oklab, var(--color-contrast-200) 92%, transparent);
            background: color-mix(in oklab, var(--color-primary) 10%, var(--color-layout));
        }
        .vcard-exp-kicker {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            margin-bottom: 14px;
            font-size: 12px;
            font-weight: 700;
            letter-spacing: 0.02em;
            text-transform: uppercase;
            color: var(--color-contrast-600);
        }
        .vcard-exp-kicker::before {
            content: "";
            width: 18px;
            height: 1px;
            background: currentColor;
            opacity: 0.55;
        }
        .vcard-exp-hero-head {
            display: flex;
            flex-wrap: wrap;
            align-items: flex-start;
            justify-content: space-between;
            gap: 16px;
            margin-bottom: 12px;
        }
        .vcard-exp-company {
            margin: 4px 0 0;
            color: var(--color-contrast-600);
            font-size: 15px;
            font-weight: 600;
        }
        .vcard-exp-side {
            display: flex;
            flex-direction: column;
            align-items: flex-end;
            gap: 8px;
        }
        .vcard-exp-period-pill {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            border-radius: 999px;
            padding: 8px 12px;
            font-size: 12px;
            font-weight: 700;
            color: var(--color-primary);
            background: color-mix(in oklab, var(--color-contrast-100) 88%, transparent);
            border: 1px solid var(--color-borderColor);
            white-space: nowrap;
        }
        .vcard-exp-index {
            font-size: 12px;
            color: var(--color-contrast-500);
            font-weight: 700;
        }
        .vcard-exp-body-hero {
            color: var(--color-contrast-700);
            font-size: 14px;
            line-height: 1.7;
            text-align: left;
        }
        .vcard-exp-body-hero p {
            margin: 0 0 10px;
        }
        .vcard-exp-body-hero p:last-child {
            margin-bottom: 0;
        }
        .vcard-exp-body-hero ul,
        .vcard-exp-body-hero ol {
            margin: 0 0 10px 20px;
            padding: 0;
            text-align: left;
        }
        .vcard-exp-body-hero ul {
            list-style: disc !important;
        }
        .vcard-exp-body-hero ol {
            list-style: decimal !important;
        }
        .vcard-exp-body-hero li {
            display: list-item !important;
            list-style: inherit !important;
            margin: 0 0 2px;
            padding-left: 2px;
        }
        .vcard-exp-body-hero li::marker {
            color: var(--color-primary);
            font-weight: 700;
        }
        @media (max-width: 767px) {
            .vcard-edu-timeline::before {
                left: 14px;
                transform: none;
            }
            .vcard-edu-row {
                grid-template-columns: 36px 1fr;
                gap: 14px;
                align-items: flex-start;
            }
            .vcard-edu-spacer {
                display: none;
            }
            .vcard-edu-middle {
                grid-column: 1;
                grid-row: 1;
                justify-content: flex-start;
                padding-top: 8px;
            }
            .vcard-edu-card,
            .vcard-edu-card-left,
            .vcard-edu-card-right,
            .vcard-edu-card-left .vcard-exp-meta,
            .vcard-edu-card-left .vcard-exp-body {
                text-align: left;
                justify-content: flex-start;
            }
            .vcard-edu-card,
            .vcard-edu-card-left,
            .vcard-edu-card-right {
                grid-column: 2;
                width: 100%;
                min-width: 0;
            }
            .vcard-edu-card .vcard-exp-meta {
                display: flex;
                width: 100%;
            }
            .vcard-exp-timeline::before {
                left: 14px;
            }
            .vcard-exp-timeline-item {
                padding-left: 38px;
            }
            .vcard-exp-timeline-dot {
                left: 5px;
                width: 18px;
                height: 18px;
                border-width: 4px;
            }
            .vcard-exp-hero {
                padding: 18px 16px 16px;
            }
            .vcard-exp-hero-head {
                flex-direction: column;
            }
            .vcard-exp-side {
                align-items: flex-start;
            }
        }
        .vcard-exp-item {
            background: var(--color-layout);
            border: 1px solid var(--color-borderColor);
            border-radius: 14px;
            box-shadow: 0 6px 16px rgba(0, 0, 0, 0.06);
            padding: 20px;
        }
        .vcard-exp-head {
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            justify-content: space-between;
            gap: 10px;
            margin-bottom: 8px;
        }
        .vcard-exp-title {
            margin: 0;
            font-size: clamp(21px, 1.2vw, 25px);
            line-height: 1.18;
            color: var(--color-primary);
            font-weight: 800;
        }
        .vcard-exp-meta {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            margin-bottom: 12px;
        }
        .vcard-pill {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            border-radius: 9999px;
            border: 1px solid var(--color-borderColor);
            background: var(--color-contrast-100);
            color: var(--color-contrast-700);
            font-size: 13px;
            padding: 6px 10px;
            line-height: 1;
        }
        .vcard-exp-body {
            color: var(--color-contrast-700);
            font-size: 15px;
            line-height: 1.72;
            text-align: left;
        }
        .vcard-exp-body p { margin: 0 0 10px; }
        .vcard-exp-body ul,
        .vcard-exp-body ol {
            margin: 0 0 10px 22px;
            padding: 0;
            text-align: left;
        }
        .vcard-exp-body ul {
            list-style: disc !important;
        }
        .vcard-exp-body ol {
            list-style: decimal !important;
        }
        .vcard-exp-body li {
            display: list-item !important;
            list-style: inherit !important;
            margin: 0 0 8px;
            padding-left: 2px;
        }
        .vcard-exp-body li::marker {
            color: var(--color-primary);
            font-weight: 700;
        }
        .vcard-edu-title { margin-top: 16px; }
        .vcard-projects-head {
            gap: 12px;
            margin-bottom: 34px;
        }
        .vcard-projects-intro {
            max-width: 560px;
            margin: 0;
            color: var(--color-secondary);
            font-size: 15px;
            line-height: 1.75;
        }
        .vcard-project-grid {
            display: grid;
            gap: 18px;
            grid-template-columns: 1fr;
        }
        .vcard-project-link-wrap {
            display: block;
            height: 100%;
        }
        .vcard-project-card {
            height: 100%;
            display: flex;
            flex-direction: column;
            gap: 16px;
            padding: 18px;
            border: 1px solid color-mix(in oklab, var(--color-borderColor) 82%, transparent);
            border-radius: 24px;
            background:
                linear-gradient(180deg, color-mix(in oklab, var(--color-layout) 98%, transparent), color-mix(in oklab, var(--color-layout) 92%, transparent)),
                radial-gradient(circle at top right, rgba(15, 23, 42, 0.035), transparent 38%);
            box-shadow: 0 12px 30px rgba(15, 23, 42, 0.05);
            transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
        }
        .vcard-project-card:hover {
            --vcard-hover-y: -4px;
            border-color: color-mix(in oklab, var(--color-contrast-300) 88%, transparent);
            box-shadow: 0 20px 44px rgba(15, 23, 42, 0.10);
        }
        .vcard-project-card-featured {
            background:
                linear-gradient(180deg, color-mix(in oklab, var(--color-layout) 99%, transparent), color-mix(in oklab, var(--color-layout) 94%, transparent)),
                radial-gradient(circle at top right, rgba(239, 68, 68, 0.07), transparent 34%);
            box-shadow: 0 18px 44px rgba(15, 23, 42, 0.08);
        }
        .vcard-project-media {
            aspect-ratio: 16 / 10;
            overflow: hidden;
            border-radius: 18px;
            background: linear-gradient(180deg, var(--color-contrast-100), var(--color-contrast-50));
            border: 1px solid color-mix(in oklab, var(--color-borderColor) 68%, transparent);
        }
        .vcard-project-media img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: top center;
            display: block;
            transition: transform 320ms ease;
        }
        .vcard-project-card:hover .vcard-project-media img {
            transform: scale(1.02);
        }
        .vcard-project-copy {
            display: grid;
            gap: 10px;
            flex: 1;
            align-content: start;
        }
        .vcard-project-meta {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 12px;
            flex-wrap: wrap;
        }
        .vcard-project-title {
            margin: 0;
            font-size: clamp(22px, 1.8vw, 30px);
            line-height: 1.14;
            font-weight: 800;
            color: var(--color-primary);
            letter-spacing: -0.02em;
            display: -webkit-box;
            -webkit-line-clamp: 2;
            line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden;
        }
        .vcard-project-desc {
            margin: 0;
            font-size: 14px;
            line-height: 1.75;
            color: var(--color-secondary);
            display: -webkit-box;
            -webkit-line-clamp: 3;
            line-clamp: 3;
            -webkit-box-orient: vertical;
            overflow: hidden;
            min-height: 4.8em;
        }
        .vcard-project-action {
            margin-top: auto;
            display: inline-flex;
            align-items: center;
            gap: 10px;
            width: fit-content;
            min-height: 38px;
            padding: 0 8px 0 14px;
            border-radius: 999px;
            border: 1px solid color-mix(in oklab, var(--color-borderColor) 80%, transparent);
            background: color-mix(in oklab, var(--color-layout) 94%, transparent);
            color: var(--color-primary);
            font-size: 13px;
            font-weight: 700;
            letter-spacing: -0.01em;
            transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease, background-color 180ms ease;
        }
        .vcard-project-action-icon {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 24px;
            height: 24px;
            border-radius: 999px;
            background: color-mix(in oklab, var(--color-contrast-100) 92%, transparent);
            color: var(--color-primary);
            transition: transform 180ms ease, background-color 180ms ease;
        }
        .vcard-project-card:hover .vcard-project-action {
            transform: translateY(-1px);
            border-color: color-mix(in oklab, var(--color-accent) 22%, var(--color-borderColor));
            box-shadow: 0 10px 22px rgba(15, 23, 42, 0.08);
        }
        .vcard-project-card:hover .vcard-project-action-icon {
            transform: translateX(2px);
            background: color-mix(in oklab, var(--color-accent) 14%, var(--color-layout));
        }
        .vcard-project-foot {
            margin-top: auto;
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 12px;
            padding-top: 6px;
            border-top: 1px solid color-mix(in oklab, var(--color-borderColor) 54%, transparent);
        }
        .vcard-project-chip,
        .vcard-project-date,
        .vcard-project-site {
            display: inline-flex;
            align-items: center;
            min-height: 30px;
            border-radius: 999px;
            padding: 0 12px;
            font-size: 11px;
            line-height: 1;
            letter-spacing: 0.04em;
            text-transform: uppercase;
        }
        .vcard-project-chip {
            color: var(--color-primary);
            background: color-mix(in oklab, var(--color-contrast-100) 92%, transparent);
            border: 1px solid color-mix(in oklab, var(--color-borderColor) 84%, transparent);
        }
        .vcard-project-date {
            color: var(--color-contrast-600);
            background: transparent;
            border: 1px solid color-mix(in oklab, var(--color-borderColor) 60%, transparent);
        }
        .vcard-project-site {
            color: var(--color-contrast-600);
            background: transparent;
            padding-left: 0;
            min-height: unset;
            border-radius: 0;
            flex: 1;
            min-width: 0;
        }
        .vcard-project-link {
            display: inline-flex;
            align-items: center;
            justify-content: flex-end;
            flex-shrink: 0;
            gap: 8px;
            font-size: 13px;
            font-weight: 700;
            color: var(--color-primary);
            text-decoration: none;
            letter-spacing: -0.01em;
            white-space: nowrap;
        }
        .vcard-project-link span[aria-hidden="true"] {
            transition: transform 180ms ease;
        }
        .vcard-project-card:hover .vcard-project-link span[aria-hidden="true"] {
            transform: translateX(2px) translateY(-1px);
        }
        .vcard-project-detail {
            overflow: hidden;
            border-radius: 28px;
        }
        .vcard-project-detail-surface {
            border: 1px solid color-mix(in oklab, var(--color-borderColor) 76%, transparent);
            background:
                linear-gradient(180deg, color-mix(in oklab, var(--color-layout) 98%, transparent), color-mix(in oklab, var(--color-layout) 94%, transparent)),
                radial-gradient(circle at top right, rgba(239, 68, 68, 0.05), transparent 34%);
            box-shadow: 0 18px 40px rgba(15, 23, 42, 0.08);
        }
        .vcard-project-detail-media {
            background: linear-gradient(180deg, var(--color-contrast-100), var(--color-contrast-50));
            border-bottom: 1px solid color-mix(in oklab, var(--color-borderColor) 58%, transparent);
        }
        .vcard-project-detail-media img {
            width: 100%;
            max-height: 520px;
            object-fit: cover;
            object-position: top center;
            display: block;
        }
        .vcard-project-detail-content {
            max-width: 820px;
        }
        .vcard-project-detail-empty {
            margin: 0;
            color: var(--color-secondary);
            font-size: 15px;
            line-height: 1.8;
        }
        .vcard-project-detail-badge {
            background: color-mix(in oklab, var(--color-accent) 10%, var(--color-layout));
            border-color: color-mix(in oklab, var(--color-accent) 22%, var(--color-borderColor));
        }
        .vcard-project-detail-actions {
            padding-top: 8px;
        }
        .vcard-project-detail-button {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            min-height: 46px;
            padding: 0 18px;
            border-radius: 999px;
            background: var(--color-primary);
            color: var(--color-layout);
            font-size: 14px;
            font-weight: 700;
            text-decoration: none;
            transition: transform 180ms ease, box-shadow 180ms ease, opacity 180ms ease;
        }
        .vcard-project-detail-button:hover {
            transform: translateY(-2px);
            box-shadow: 0 14px 26px rgba(15, 23, 42, 0.16);
        }
        @media (min-width: 760px) {
            .vcard-project-grid {
                grid-template-columns: repeat(2, minmax(0, 1fr));
            }
            .vcard-project-card-featured {
                grid-column: span 2;
                display: grid;
                grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
                align-items: stretch;
                gap: 22px;
                padding: 20px;
            }
            .vcard-project-card-featured .vcard-project-media {
                aspect-ratio: auto;
                min-height: 100%;
            }
            .vcard-project-card-featured .vcard-project-copy {
                align-content: start;
                gap: 12px;
            }
            .vcard-project-card-featured .vcard-project-title {
                font-size: clamp(28px, 2.4vw, 40px);
            }
            .vcard-project-card-featured .vcard-project-desc {
                font-size: 15px;
                min-height: 0;
            }
        }
        @media (min-width: 1140px) {
            .vcard-project-grid {
                grid-template-columns: repeat(3, minmax(0, 1fr));
            }
            .vcard-project-card-featured {
                grid-column: span 3;
            }
        }
        @media (max-width: 767px) {
            .vcard-project-detail {
                border-radius: 22px;
            }
            .vcard-project-detail-button {
                width: 100%;
                justify-content: center;
            }
        }
        .vcard-rich-content ul,
        .vcard-rich-content ol {
            margin: 0 0 12px 22px;
            padding: 0;
            text-align: left;
        }
        .vcard-rich-content ul {
            list-style: disc !important;
        }
        .vcard-rich-content ol {
            list-style: decimal !important;
        }
        .vcard-rich-content li {
            display: list-item !important;
            list-style: inherit !important;
            margin: 0 0 8px;
            padding-left: 2px;
        }
        .vcard-rich-content li:has(> ul),
        .vcard-rich-content li:has(> ol) {
            list-style: none !important;
            margin-bottom: 0;
            padding-left: 0;
        }
        .vcard-rich-content li.vcard-rich-parent-li {
            list-style: none !important;
            margin-bottom: 0;
            padding-left: 0;
        }
        .vcard-rich-content li::marker {
            color: var(--color-primary);
            font-weight: 700;
        }
        .vcard-rich-content p {
            margin: 0 0 10px;
        }
        .vcard-rich-content h2,
        .vcard-rich-content h3,
        .vcard-rich-content h4 {
            margin: 14px 0 10px;
            line-height: 1.35;
        }
        .vcard-header-shell {
            opacity: 0;
            transform: translateY(-26px);
            animation: vcardHeaderDrop 640ms cubic-bezier(0.22, 1, 0.36, 1) 120ms forwards;
            will-change: transform, opacity;
        }
        @keyframes vcardHeaderDrop {
            from {
                opacity: 0;
                transform: translateY(-26px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }
        @media (prefers-reduced-motion: reduce) {
            .vcard-header-shell {
                opacity: 1;
                transform: translateY(0);
                animation: none;
            }
        }
        .vcard-home-content {
            opacity: 0;
            transform: translateY(100px);
            animation: vcardHomeReveal 100ms linear 40ms forwards;
            will-change: transform, opacity;
        }
        @keyframes vcardHomeReveal {
            from {
                opacity: 0;
                transform: translateY(100px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }
        .vcard-reveal-target {
            opacity: 1;
            transform: translateY(0);
        }
        .vcard-motion-enabled .vcard-reveal-target {
            transition-property: transform, opacity;
            transition-duration: 500ms;
            transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
            will-change: transform, opacity;
        }
        .vcard-motion-enabled .vcard-reveal-target.is-revealed {
            opacity: 1;
            transform: translateY(0);
        }
        .vcard-reveal-delay-sm { transition-delay: 100ms; }
        .vcard-reveal-delay-lg { transition-delay: 500ms; }
        .vcard-wave-badge {
            transform-origin: center;
            display: inline-flex;
            opacity: 0;
            transform: scale(0);
            animation: vcardHandPop 700ms cubic-bezier(0.34, 1.56, 0.64, 1) 100ms forwards;
        }
        @keyframes vcardHandPop {
            0% {
                opacity: 0;
                transform: scale(0);
            }
            65% {
                opacity: 1;
                transform: scale(1.08);
            }
            100% {
                opacity: 1;
                transform: scale(1);
            }
        }
        .vcard-skill-chip {
            opacity: 1;
            transform: scale(1);
        }
        .vcard-motion-enabled #about .vcard-skill-chip {
            opacity: 0;
            transform: translateY(14px) scale(0.82);
        }
        .vcard-motion-enabled #about.vcard-skill-bounce-active .vcard-skill-chip {
            animation: vcardSkillPop 620ms cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
            animation-delay: var(--skill-delay, 0ms);
        }
        @keyframes vcardSkillPop {
            0% {
                opacity: 0;
                transform: translateY(14px) scale(0.82);
            }
            65% {
                opacity: 1;
                transform: translateY(-2px) scale(1.05);
            }
            100% {
                opacity: 1;
                transform: translateY(0) scale(1);
            }
        }
        .vcard-scroll-card,
        .vcard-service-row,
        .vcard-post-row,
        .vcard-project-card,
        .vcard-exp-hero,
        .vcard-edu-card {
            --vcard-scroll-scale: 1;
            --vcard-scroll-y: 0px;
            --vcard-hover-y: 0px;
            transform: translateY(calc(var(--vcard-scroll-y) + var(--vcard-hover-y))) scale(var(--vcard-scroll-scale));
            transform-origin: center;
            will-change: transform, opacity;
            transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
        }
        @media (prefers-reduced-motion: reduce) {
            .vcard-home-content {
                opacity: 1;
                transform: none;
                animation: none;
            }
            .vcard-reveal-target {
                opacity: 1;
                transform: none;
                transition: none;
            }
            .vcard-wave-badge {
                animation: none;
                transform: scale(1);
                opacity: 1;
            }
            .vcard-skill-chip,
            .vcard-motion-enabled #about .vcard-skill-chip,
            .vcard-motion-enabled #about.vcard-skill-bounce-active .vcard-skill-chip {
                animation: none;
                opacity: 1;
                transform: none;
            }
        }

