/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties;@layer theme,base,components,utilities;@layer theme{:root,:host{--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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-red-700: oklch(50.5% .213 27.518);--color-amber-100: oklch(96.2% .059 95.617);--color-amber-800: oklch(47.3% .137 46.201);--color-emerald-50: oklch(97.9% .021 166.113);--color-emerald-100: oklch(95% .052 163.051);--color-emerald-600: oklch(59.6% .145 163.225);--color-emerald-700: oklch(50.8% .118 165.612);--color-indigo-50: oklch(96.2% .018 272.314);--color-indigo-100: oklch(93% .034 272.788);--color-indigo-200: oklch(87% .065 274.039);--color-indigo-600: oklch(51.1% .262 276.966);--color-indigo-700: oklch(45.7% .24 277.023);--color-violet-600: oklch(54.1% .281 293.009);--color-slate-200: oklch(92.9% .013 255.508);--color-slate-300: oklch(86.9% .022 252.894);--color-slate-400: oklch(70.4% .04 256.788);--color-slate-500: oklch(55.4% .046 257.417);--color-slate-600: oklch(44.6% .043 257.281);--color-slate-700: oklch(37.2% .044 257.287);--color-slate-800: oklch(27.9% .041 260.031);--color-slate-900: oklch(20.8% .042 265.755);--color-white: #fff;--spacing: .25rem;--container-sm: 24rem;--container-md: 28rem;--container-xl: 36rem;--container-2xl: 42rem;--container-3xl: 48rem;--container-6xl: 72rem;--container-7xl: 80rem;--text-xs: .75rem;--text-xs--line-height: calc(1 / .75);--text-sm: .875rem;--text-sm--line-height: calc(1.25 / .875);--text-lg: 1.125rem;--text-lg--line-height: calc(1.75 / 1.125);--text-xl: 1.25rem;--text-xl--line-height: calc(1.75 / 1.25);--text-2xl: 1.5rem;--text-2xl--line-height: calc(2 / 1.5);--text-3xl: 1.875rem;--text-3xl--line-height: 1.2 ;--text-4xl: 2.25rem;--text-4xl--line-height: calc(2.5 / 2.25);--text-5xl: 3rem;--text-5xl--line-height: 1;--text-6xl: 3.75rem;--text-6xl--line-height: 1;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-extrabold: 800;--tracking-tight: -.025em;--tracking-widest: .1em;--leading-tight: 1.25;--leading-relaxed: 1.625;--radius-md: .375rem;--radius-lg: .5rem;--radius-xl: .75rem;--radius-2xl: 1rem;--animate-spin: spin 1s linear infinite;--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,::file-selector-button{box-sizing:border-box;margin:0;padding:0;border:0 solid}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;tab-size:4;font-family:var(--default-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea,::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;border-radius:0;background-color:transparent;opacity:1}: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)){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,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-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]),::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer utilities{.invisible{visibility:hidden}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border-width:0}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.inset-x-0{inset-inline:0px}.-top-5{top:calc(var(--spacing) * -5)}.top-0{top:0}.top-12{top:calc(var(--spacing) * 12)}.top-\[10\.5rem\]{top:10.5rem}.-right-4{right:calc(var(--spacing) * -4)}.right-0{right:0}.right-4{right:calc(var(--spacing) * 4)}.-bottom-5{bottom:calc(var(--spacing) * -5)}.bottom-0{bottom:0}.-left-5{left:calc(var(--spacing) * -5)}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.mx-auto{margin-inline:auto}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-9{margin-top:calc(var(--spacing) * 9)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mt-12{margin-top:calc(var(--spacing) * 12)}.mt-14{margin-top:calc(var(--spacing) * 14)}.mt-16{margin-top:calc(var(--spacing) * 16)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-16{height:calc(var(--spacing) * 16)}.w-2\/3{width:calc(2 / 3 * 100%)}.w-2\/5{width:40%}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-3\/4{width:75%}.w-3\/5{width:calc(3 / 5 * 100%)}.w-4{width:calc(var(--spacing) * 4)}.w-4\/5{width:80%}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-10\/12{width:calc(10 / 12 * 100%)}.w-11{width:calc(var(--spacing) * 11)}.w-11\/12{width:calc(11 / 12 * 100%)}.w-72{width:calc(var(--spacing) * 72)}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-\[19rem\]{max-width:19rem}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:0px}.flex-1{flex:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-7{gap:calc(var(--spacing) * 7)}.gap-10{gap:calc(var(--spacing) * 10)}.gap-12{gap:calc(var(--spacing) * 12)}.gap-14{gap:calc(var(--spacing) * 14)}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-5{column-gap:calc(var(--spacing) * 5)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overflow-y-auto{overflow-y:auto}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:calc(infinity * 1px)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.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-dashed{--tw-border-style: dashed;border-style:dashed}.border-indigo-200{border-color:var(--color-indigo-200)}.border-slate-200{border-color:var(--color-slate-200)}.border-slate-200\/70{border-color:color-mix(in srgb,oklch(92.9% .013 255.508) 70%,transparent);@supports (color: color-mix(in lab,red,red)){border-color:color-mix(in oklab,var(--color-slate-200) 70%,transparent)}}.border-slate-300{border-color:var(--color-slate-300)}.border-white\/10{border-color:color-mix(in srgb,#fff 10%,transparent);@supports (color: color-mix(in lab,red,red)){border-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.bg-amber-100{background-color:var(--color-amber-100)}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-indigo-50\/60{background-color:color-mix(in srgb,oklch(96.2% .018 272.314) 60%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-indigo-50) 60%,transparent)}}.bg-slate-200\/70{background-color:color-mix(in srgb,oklch(92.9% .013 255.508) 70%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-slate-200) 70%,transparent)}}.bg-white{background-color:var(--color-white)}.bg-white\/80{background-color:color-mix(in srgb,#fff 80%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-white) 80%,transparent)}}.bg-white\/95{background-color:color-mix(in srgb,#fff 95%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-white) 95%,transparent)}}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-7{padding:calc(var(--spacing) * 7)}.p-8{padding:calc(var(--spacing) * 8)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-14{padding-block:calc(var(--spacing) * 14)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-24{padding-block:calc(var(--spacing) * 24)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pt-10{padding-top:calc(var(--spacing) * 10)}.pt-12{padding-top:calc(var(--spacing) * 12)}.pb-12{padding-bottom:calc(var(--spacing) * 12)}.pb-20{padding-bottom:calc(var(--spacing) * 20)}.pb-24{padding-bottom:calc(var(--spacing) * 24)}.text-center{text-align:center}.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-lg{font-size:var(--text-lg);line-height:var(--tw-leading, var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading, var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading, var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading, var(--text-xs--line-height))}.text-\[11px\]{font-size:11px}.leading-relaxed{--tw-leading: var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading: var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight: var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight: var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-medium{--tw-font-weight: var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-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)}.tracking-widest{--tw-tracking: var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-balance{text-wrap:balance}.text-amber-800{color:var(--color-amber-800)}.text-emerald-600{color:var(--color-emerald-600)}.text-emerald-700{color:var(--color-emerald-700)}.text-indigo-100{color:var(--color-indigo-100)}.text-indigo-600{color:var(--color-indigo-600)}.text-indigo-700{color:var(--color-indigo-700)}.text-red-700{color:var(--color-red-700)}.text-slate-300{color:var(--color-slate-300)}.text-slate-400{color:var(--color-slate-400)}.text-slate-500{color:var(--color-slate-500)}.text-slate-600{color:var(--color-slate-600)}.text-slate-700{color:var(--color-slate-700)}.text-slate-800{color:var(--color-slate-800)}.text-slate-900{color:var(--color-slate-900)}.text-violet-600{color:var(--color-violet-600)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.underline{text-decoration-line:underline}.decoration-indigo-200{text-decoration-color:var(--color-indigo-200)}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.accent-indigo-700{accent-color:var(--color-indigo-700)}.shadow{--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-2xl{--tw-shadow: 0 25px 50px -12px var(--tw-shadow-color, rgb(0 0 0 / .25));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-1{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-emerald-100{--tw-ring-color: var(--color-emerald-100)}.ring-indigo-100{--tw-ring-color: var(--color-indigo-100)}.ring-slate-200{--tw-ring-color: var(--color-slate-200)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-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-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}@media(hover:hover){.group-hover\:text-indigo-700:is(:where(.group):hover *){color:var(--color-indigo-700)}.hover\:text-red-600:hover{color:var(--color-red-600)}.hover\:underline:hover{text-decoration-line:underline}.hover\:decoration-indigo-700:hover{text-decoration-color:var(--color-indigo-700)}}.focus\:not-sr-only:focus{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip-path:none;white-space:normal}.focus\:fixed:focus{position:fixed}.focus\:top-4:focus{top:calc(var(--spacing) * 4)}.focus\:left-4:focus{left:calc(var(--spacing) * 4)}.focus\:z-50:focus{z-index:50}.focus\:rounded-lg:focus{border-radius:var(--radius-lg)}.focus\:bg-white:focus{background-color:var(--color-white)}.focus\:px-4:focus{padding-inline:calc(var(--spacing) * 4)}.focus\:py-2:focus{padding-block:calc(var(--spacing) * 2)}.focus\:shadow:focus{--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.has-\[\:checked\]\:border-indigo-600:has(:is(:checked)){border-color:var(--color-indigo-600)}.has-\[\:checked\]\:bg-indigo-50:has(:is(:checked)){background-color:var(--color-indigo-50)}@media(width>=40rem){.sm\:-right-8{right:calc(var(--spacing) * -8)}.sm\:-left-12{left:calc(var(--spacing) * -12)}.sm\:col-span-2{grid-column:span 2 / span 2}.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:inline{display:inline}.sm\:inline-flex{display:inline-flex}.sm\:max-w-\[25rem\]{max-width:25rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:p-4{padding:calc(var(--spacing) * 4)}.sm\:p-10{padding:calc(var(--spacing) * 10)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:py-20{padding-block:calc(var(--spacing) * 20)}.sm\:pt-14{padding-top:calc(var(--spacing) * 14)}.sm\:pt-16{padding-top:calc(var(--spacing) * 16)}.sm\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading, var(--text-3xl--line-height))}.sm\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading, var(--text-4xl--line-height))}.sm\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading, var(--text-5xl--line-height))}}@media(width>=48rem){.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(width>=64rem){.lg\:sticky{position:sticky}.lg\:top-20{top:calc(var(--spacing) * 20)}.lg\:col-span-4{grid-column:span 4 / span 4}.lg\:col-span-8{grid-column:span 8 / span 8}.lg\:mx-0{margin-inline:0px}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:max-h-\[calc\(100vh-11rem\)\]{max-height:calc(100vh - 11rem)}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\:grid-cols-\[1\.05fr_\.95fr\]{grid-template-columns:1.05fr .95fr}.lg\:items-start{align-items:flex-start}.lg\:justify-start{justify-content:flex-start}.lg\:pt-20{padding-top:calc(var(--spacing) * 20)}.lg\:pb-0{padding-bottom:0}.lg\:pb-24{padding-bottom:calc(var(--spacing) * 24)}.lg\:text-left{text-align:left}.lg\:text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading, var(--text-6xl--line-height))}}@media(width>=80rem){.xl\:block{display:block}}}@property --tw-space-y-reverse{syntax: "*"; inherits: false; initial-value: 0;}@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: 0px;}@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-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;}@keyframes spin{to{transform:rotate(360deg)}}@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-space-y-reverse: 0;--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-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}}}
/* =====================================================================
   Free CV Maker — hand-written components (safe to edit)
   Loaded after the pre-compiled Tailwind utilities in the same file.
   ===================================================================== */
@layer components {
  html { scroll-behavior: smooth; scroll-padding-top: 5rem; }
  body { background: #f8fafc; }

  /* ---------- 3D buttons ---------- */
  .btn { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: .5rem; border-radius: .75rem; font-weight: 700; font-size: .9375rem; line-height: 1.25rem; padding: .625rem 1.05rem; cursor: pointer; white-space: nowrap; -webkit-tap-highlight-color: transparent; transition: transform .12s ease, box-shadow .12s ease, background-color .15s, border-color .15s, color .15s; }
  .btn svg { width: 1.15em; height: 1.15em; flex-shrink: 0; }
  .btn:focus-visible, .icon-btn:focus-visible, summary:focus-visible, a:focus-visible { outline: 2px solid #6366f1; outline-offset: 2px; }
  .btn-primary { color: #fff; background: linear-gradient(180deg, #5d54ea 0%, #4338ca 100%); box-shadow: inset 0 1px 0 rgb(255 255 255 / .25), 0 4px 0 #312e81, 0 10px 22px -8px rgb(67 56 202 / .6); }
  .btn-primary:hover { background: linear-gradient(180deg, #635bf0 0%, #3f35c0 100%); transform: translateY(-1px); box-shadow: inset 0 1px 0 rgb(255 255 255 / .25), 0 5px 0 #312e81, 0 14px 26px -8px rgb(67 56 202 / .6); }
  .btn-primary:active { transform: translateY(3px); box-shadow: inset 0 1px 0 rgb(255 255 255 / .2), 0 1px 0 #312e81, 0 4px 10px -4px rgb(67 56 202 / .5); }
  .btn-secondary { color: #1e293b; background: #fff; border: 1px solid #cbd5e1; box-shadow: 0 3px 0 #cbd5e1, 0 8px 16px -10px rgb(15 23 42 / .25); }
  .btn-secondary:hover { transform: translateY(-1px); border-color: #94a3b8; box-shadow: 0 4px 0 #94a3b8, 0 10px 18px -10px rgb(15 23 42 / .3); }
  .btn-secondary:active { transform: translateY(2px); box-shadow: 0 1px 0 #cbd5e1; }
  .btn-ghost { color: #4338ca; background: #eef2ff; box-shadow: 0 2px 0 #c7d2fe; }
  .btn-ghost:hover { background: #e0e7ff; }
  .btn-ghost:active { transform: translateY(2px); box-shadow: none; }
  .btn-white { color: #312e81; background: #fff; box-shadow: 0 4px 0 #c7d2fe, 0 12px 24px -10px rgb(0 0 0 / .4); }
  .btn-white:hover { transform: translateY(-1px); }
  .btn-white:active { transform: translateY(3px); box-shadow: 0 1px 0 #c7d2fe; }
  .btn-lg { padding: .9rem 1.4rem; font-size: 1rem; border-radius: .875rem; }
  .btn-sm { padding: .5rem .8rem; font-size: .875rem; }
  .btn:disabled { opacity: .6; cursor: progress; transform: none; }
  .icon-btn { display: inline-flex; align-items: center; justify-content: center; width: 2rem; height: 2rem; border-radius: .5rem; color: #64748b; cursor: pointer; }
  .icon-btn:hover { background: #e2e8f0; color: #0f172a; }
  .icon-btn:disabled { opacity: .3; pointer-events: none; }

  /* ---------- Header / navigation ---------- */
  .nav-link { display: inline-flex; align-items: center; gap: .4rem; padding: .5rem .75rem; border-radius: .6rem; transition: background-color .15s, color .15s; }
  .nav-link:hover { background: #f1f5f9; color: #0f172a; }
  .nav-link.active { background: #eef2ff; color: #4338ca; }
  .mobile-menu > summary { list-style: none; }
  .mobile-menu > summary::-webkit-details-marker { display: none; }
  .mobile-menu nav a { display: flex; align-items: center; gap: .65rem; padding: .7rem .8rem; border-radius: .7rem; font-weight: 600; color: #334155; }
  .mobile-menu nav a:hover, .mobile-menu nav a.active { background: #eef2ff; color: #4338ca; }
  .mobile-menu nav svg { width: 1.15rem; height: 1.15rem; color: #6366f1; }
  .grad-text { background: linear-gradient(90deg, #4338ca, #7c3aed 55%, #0284c7); -webkit-background-clip: text; background-clip: text; color: transparent; }
  .pill { display: inline-flex; align-items: center; gap: .45rem; border-radius: 9999px; background: rgb(255 255 255 / .8); padding: .4rem .85rem; font-size: .8125rem; font-weight: 700; color: #4338ca; box-shadow: 0 0 0 1px #e0e7ff, 0 6px 16px -8px rgb(67 56 202 / .4); }
  .pill svg { width: 1rem; height: 1rem; }
  .eyebrow { font-size: .8125rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: #4f46e5; }

  /* ---------- 3D hero ---------- */
  .hero-3d { position: relative; isolation: isolate; overflow: hidden; background:
      radial-gradient(42rem 26rem at 5% -10%, rgb(99 102 241 / .22), transparent 70%),
      radial-gradient(36rem 24rem at 100% 0%, rgb(14 165 233 / .18), transparent 70%),
      radial-gradient(40rem 26rem at 65% 115%, rgb(168 85 247 / .16), transparent 70%), #f8fafc; }
  .hero-3d::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
      background-image: linear-gradient(rgb(15 23 42 / .05) 1px, transparent 1px), linear-gradient(90deg, rgb(15 23 42 / .05) 1px, transparent 1px);
      background-size: 40px 40px;
      -webkit-mask-image: radial-gradient(ellipse 70% 65% at 50% 40%, #000 25%, transparent 80%);
      mask-image: radial-gradient(ellipse 70% 65% at 50% 40%, #000 25%, transparent 80%); }
  .scene { perspective: 1600px; }
  .mock { position: relative; transform-style: preserve-3d; transform: rotateX(12deg) rotateY(-22deg) rotateZ(3deg); transition: transform .7s cubic-bezier(.2, .8, .2, 1); animation: floaty 7s ease-in-out infinite; }
  .scene:hover .mock { transform: rotateX(5deg) rotateY(-9deg) rotateZ(1deg); }
  .mock::before, .mock::after { content: ""; position: absolute; inset: 0; border-radius: 16px; background: #fff; border: 1px solid #e2e8f0; }
  .mock::before { transform: translateZ(-30px) translate(14px, 12px); opacity: .92; }
  .mock::after { transform: translateZ(-60px) translate(28px, 24px); opacity: .75; }
  .mock-paper { position: relative; transform: translateZ(1px); background: #fff; border-radius: 16px; padding: 26px 26px 30px; box-shadow: 0 1px 0 #e2e8f0, 0 40px 80px -24px rgb(30 27 75 / .4), 0 18px 30px -18px rgb(30 27 75 / .45); }
  .mock-h { margin-top: 16px; padding-bottom: 5px; border-bottom: 1.5px solid #c7d2fe; font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: #4338ca; }
  .mock-line { height: 7px; margin-top: 8px; border-radius: 4px; background: #e2e8f0; }
  .mock-tag { display: inline-block; margin: 8px 6px 0 0; padding: 3px 8px; border-radius: 6px; background: #eef2ff; color: #4338ca; font-size: 10px; font-weight: 700; }
  .mono { display: flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 14px; color: #fff; font-weight: 800; background: linear-gradient(145deg, #818cf8, #6d28d9); box-shadow: inset 0 1px 0 rgb(255 255 255 / .35), 0 8px 16px -6px rgb(109 40 217 / .6); }
  .chip3d { position: absolute; display: inline-flex; align-items: center; gap: .4rem; padding: .55rem .85rem; border-radius: 9999px; font-size: .8rem; font-weight: 700; line-height: 1; color: #0f172a; background: #fff; white-space: nowrap; box-shadow: 0 14px 28px -12px rgb(15 23 42 / .45), 0 2px 0 rgb(15 23 42 / .06); transform: translateZ(70px); }
  .chip3d svg { width: 1rem; height: 1rem; }
  @keyframes floaty { 0%, 100% { translate: 0 0; } 50% { translate: 0 -12px; } }

  /* ---------- 3D cards & icon tiles ---------- */
  .card3d { display: block; background: #fff; border: 1px solid #e2e8f0; border-radius: 1.25rem; box-shadow: 0 1px 2px rgb(15 23 42 / .04), 0 14px 34px -20px rgb(15 23 42 / .3); transform: perspective(900px) translateZ(0); transition: transform .3s cubic-bezier(.2, .8, .2, 1), box-shadow .3s; }
  .card3d:hover { transform: perspective(900px) translateY(-6px) rotateX(4deg); box-shadow: 0 2px 4px rgb(15 23 42 / .05), 0 30px 46px -22px rgb(67 56 202 / .45); }
  .icon3d { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 3rem; height: 3rem; border-radius: .95rem; color: #fff; background: linear-gradient(145deg, var(--c1, #818cf8), var(--c2, #4338ca)); box-shadow: inset 0 1px 0 rgb(255 255 255 / .35), inset 0 -3px 0 rgb(0 0 0 / .12), 0 10px 18px -8px var(--c2, #4338ca); }
  .icon3d svg { width: 1.5rem; height: 1.5rem; }
  .icon3d.sm { width: 2.5rem; height: 2.5rem; border-radius: .8rem; }
  .icon3d.sm svg { width: 1.25rem; height: 1.25rem; }
  .i-indigo { --c1: #818cf8; --c2: #4338ca; } .i-emerald { --c1: #34d399; --c2: #047857; }
  .i-sky { --c1: #38bdf8; --c2: #0369a1; } .i-amber { --c1: #fbbf24; --c2: #b45309; }
  .i-rose { --c1: #fb7185; --c2: #be123c; } .i-violet { --c1: #a78bfa; --c2: #6d28d9; }
  .i-teal { --c1: #2dd4bf; --c2: #0f766e; } .i-slate { --c1: #94a3b8; --c2: #334155; }
  .step-num { display: inline-flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; border-radius: 9999px; font-weight: 800; color: #fff; background: linear-gradient(145deg, #6366f1, #4338ca); box-shadow: 0 3px 0 #312e81, 0 8px 16px -6px rgb(67 56 202 / .6); }
  .cta-band { position: relative; overflow: hidden; border-radius: 1.5rem; color: #fff; background: radial-gradient(30rem 16rem at 90% 0%, rgb(56 189 248 / .45), transparent 70%), radial-gradient(30rem 18rem at 0% 100%, rgb(168 85 247 / .5), transparent 70%), linear-gradient(135deg, #4338ca, #312e81); box-shadow: 0 30px 60px -30px rgb(49 46 129 / .8); }

  /* ---------- Form (CV builder) ---------- */
  .lbl { display: block; font-size: .8125rem; font-weight: 600; color: #334155; margin-bottom: .375rem; }
  .inp { display: block; width: 100%; border: 1px solid #cbd5e1; border-radius: .6rem; background: #fff; padding: .5625rem .75rem; font-size: .9375rem; line-height: 1.45; color: #0f172a; box-shadow: inset 0 1px 2px rgb(15 23 42 / .05); transition: border-color .15s, box-shadow .15s; }
  .inp::placeholder { color: #94a3b8; }
  .inp:focus { outline: none; border-color: #6366f1; box-shadow: 0 0 0 3px rgb(99 102 241 / .2); }
  textarea.inp { resize: vertical; min-height: 5.75rem; }
  .hint { margin-top: .375rem; font-size: .75rem; color: #64748b; }
  .card { background: #fff; border: 1px solid #e2e8f0; border-radius: 1rem; box-shadow: 0 1px 2px rgb(15 23 42 / .04), 0 10px 24px -20px rgb(15 23 42 / .35); }
  .card + .card { margin-top: .875rem; }
  .card > summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.25rem; cursor: pointer; user-select: none; border-radius: 1rem; }
  .card > summary::-webkit-details-marker { display: none; }
  .card > summary h3 { font-size: 1rem; font-weight: 700; color: #0f172a; }
  .card > summary .chev { color: #64748b; transition: transform .2s; flex-shrink: 0; }
  .card[open] > summary .chev { transform: rotate(180deg); }
  .card-body { padding: 0 1.25rem 1.25rem; }
  .entry { border: 1px solid #e2e8f0; border-radius: .75rem; padding: 1rem; background: #f8fafc; }
  .entry + .entry { margin-top: .75rem; }
  .swatch { position: relative; cursor: pointer; }
  .swatch input { position: absolute; opacity: 0; pointer-events: none; }
  .swatch span { display: block; width: 2rem; height: 2rem; border-radius: 9999px; box-shadow: inset 0 -2px 0 rgb(0 0 0 / .2); }
  .swatch input:checked + span { outline: 2px solid #0f172a; outline-offset: 2px; }
  .swatch input:focus-visible + span { outline: 2px solid #6366f1; outline-offset: 2px; }
  #dropzone.drag { border-color: #4338ca; background: #e0e7ff; }

  /* ---------- Toast ---------- */
  .toast { position: fixed; left: 50%; bottom: 5.5rem; z-index: 60; max-width: min(92vw, 32rem); padding: .75rem 1rem; border-radius: .75rem; background: #0f172a; color: #fff; font-size: .875rem; line-height: 1.4; box-shadow: 0 10px 30px rgb(0 0 0 / .25); opacity: 0; pointer-events: none; transform: translate(-50%, .75rem); transition: opacity .2s, transform .2s; }
  .toast.show { opacity: 1; transform: translate(-50%, 0); }
  @media (min-width: 1024px) { .toast { bottom: 1.5rem; } }

  /* ---------- Live preview (A4 sheet scaled to fit) ---------- */
  #preview-wrap { position: relative; overflow: hidden; }
  #cv-sheet { position: absolute; top: 0; left: 0; transform-origin: 0 0; box-shadow: 0 1px 3px rgb(0 0 0 / .12), 0 10px 30px rgb(15 23 42 / .10); }
  .cv-break { position: absolute; left: 0; right: 0; height: 0; border-top: 1.5px dashed #94a3b8; pointer-events: none; }
  .cv-break::after { content: attr(data-label); position: absolute; right: 8px; top: 4px; font: 600 11px/1 system-ui, sans-serif; color: #64748b; background: #fff; padding: 2px 6px; border-radius: 4px; }

  /* ---------- The CV itself (sizes in pt match the PDF export) ---------- */
  .cv { --accent: #1e3a8a; --rule: #b4bed7; width: 794px; min-height: 1123px; padding: 48pt; background: #fff; color: #1f2937; font-family: Helvetica, Arial, "Liberation Sans", sans-serif; font-size: 10pt; line-height: 1.4; overflow-wrap: anywhere; text-align: left; }
  .cv.serif { font-family: "Times New Roman", Times, "Liberation Serif", serif; }
  .cv-name { font-size: 22pt; font-weight: 700; line-height: 1.15; color: #111827; }
  .cv-headline { font-size: 11.5pt; line-height: 1.3; margin-top: 3pt; color: var(--accent); }
  .cv-contact { font-size: 9pt; line-height: 1.5; margin-top: 6pt; color: #4b5563; }
  .cv-contact a { color: inherit; text-decoration: none; }
  .cv-sep { color: #9ca3af; margin: 0 .45em; }
  .cv-sec { margin-top: 14pt; }
  .cv-h { font-size: 10pt; line-height: 1.3; font-weight: 700; text-transform: uppercase; letter-spacing: .9pt; color: var(--accent); padding-bottom: 3pt; border-bottom: .75pt solid var(--rule); margin-bottom: 7pt; }
  .cv-entry + .cv-entry { margin-top: 9pt; }
  .cv-row { display: flex; justify-content: space-between; align-items: baseline; gap: 12pt; }
  .cv-role { font-size: 10.5pt; line-height: 1.38; font-weight: 700; color: #111827; }
  .cv-date { font-size: 9pt; color: #4b5563; white-space: nowrap; flex-shrink: 0; }
  .cv-org { color: #4b5563; }
  .cv-entry-body { margin-top: 3pt; }
  .cv p, .cv ul { margin: 0; padding: 0; }
  .cv ul { list-style: none; }
  .cv li { position: relative; padding-left: 12pt; }
  .cv li::before { content: ""; position: absolute; left: 2.65pt; top: .58em; width: 2.7pt; height: 2.7pt; border-radius: 50%; background: currentColor; }
  .cv-skill b { color: #111827; }

  /* ---------- Articles (guides & legal pages) ---------- */
  .prose-cv { color: #334155; font-size: 1.0625rem; line-height: 1.75; }
  .prose-cv > * + * { margin-top: 1.1em; }
  .prose-cv h2 { margin-top: 2.2em; font-size: 1.6rem; line-height: 1.25; font-weight: 800; letter-spacing: -.01em; color: #0f172a; }
  .prose-cv h3 { margin-top: 1.8em; font-size: 1.2rem; line-height: 1.35; font-weight: 700; color: #0f172a; }
  .prose-cv h2 + *, .prose-cv h3 + * { margin-top: .6em; }
  .prose-cv a { color: #4338ca; font-weight: 600; text-decoration: underline; text-decoration-color: #c7d2fe; text-underline-offset: 3px; }
  .prose-cv a:hover { text-decoration-color: #4338ca; }
  .prose-cv ul, .prose-cv ol { padding-left: 1.4em; }
  .prose-cv ul { list-style: disc; }
  .prose-cv ol { list-style: decimal; }
  .prose-cv li + li { margin-top: .45em; }
  .prose-cv li::marker { color: #6366f1; font-weight: 700; }
  .prose-cv strong { color: #0f172a; }
  .prose-cv .example { border-left: 4px solid #818cf8; background: #eef2ff; padding: 1rem 1.25rem; border-radius: 0 .9rem .9rem 0; color: #1e293b; }
  .prose-cv .table-wrap { overflow-x: auto; border-radius: .9rem; box-shadow: 0 0 0 1px #e2e8f0; }
  .prose-cv table { width: 100%; border-collapse: collapse; font-size: .95rem; line-height: 1.55; }
  .prose-cv th, .prose-cv td { border-bottom: 1px solid #e2e8f0; padding: .7rem .85rem; text-align: left; vertical-align: top; }
  .prose-cv th { background: #f1f5f9; color: #0f172a; font-weight: 700; }
  .prose-cv tr:last-child td { border-bottom: 0; }
  .prose-cv .checklist { list-style: none; padding-left: 0; }
  .prose-cv .checklist li { position: relative; padding-left: 1.9em; }
  .prose-cv .checklist li::before { content: ""; position: absolute; left: 0; top: .3em; width: 1.2em; height: 1.2em; border-radius: 9999px; background: #10b981 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 70% no-repeat; }
  .breadcrumb a { color: #4f46e5; font-weight: 600; }
  .breadcrumb a:hover { text-decoration: underline; }

  /* ---------- Footer ---------- */
  .footer-3d { background: radial-gradient(40rem 20rem at 100% 0%, rgb(99 102 241 / .25), transparent 70%), radial-gradient(30rem 18rem at 0% 100%, rgb(14 165 233 / .12), transparent 70%), linear-gradient(180deg, #0f172a, #1e1b4b); }
  .footer-h { font-size: .8125rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #fff; }
  .footer-link { display: inline-flex; align-items: center; gap: .6rem; color: #cbd5e1; transition: color .15s, transform .15s; }
  .footer-link:hover { color: #fff; transform: translateX(2px); }
  .footer-link svg { width: 1.05rem; height: 1.05rem; color: #818cf8; flex-shrink: 0; }
  .share-btn { display: inline-flex; align-items: center; gap: .45rem; padding: .5rem .8rem; border-radius: .7rem; font-size: .8125rem; font-weight: 700; color: #e2e8f0; background: rgb(255 255 255 / .06); box-shadow: inset 0 1px 0 rgb(255 255 255 / .08), 0 3px 0 rgb(0 0 0 / .35); transition: background-color .15s, transform .12s; cursor: pointer; }
  .share-btn:hover { background: rgb(255 255 255 / .12); color: #fff; transform: translateY(-1px); }
  .share-btn:active { transform: translateY(2px); box-shadow: none; }
  .share-btn svg { width: 1rem; height: 1rem; color: #a5b4fc; }

  /* ---------- Motion preferences ---------- */
  @media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .mock { animation: none; }
    .btn, .card3d, .footer-link, .share-btn { transition: none; }
    .card3d:hover, .footer-link:hover { transform: none; }
  }

  /* ---------- Print ---------- */
  #print-root { display: none; }
  @media print {
    .no-print { display: none !important; }
    @page { size: A4; margin: 48pt 0; }
    body.builder-page { background: #fff !important; padding: 0 !important; }
    body.builder-page > *:not(#print-root) { display: none !important; }
    body.builder-page #print-root { display: block !important; }
    #print-root .cv { width: auto; min-height: 0; padding: 0 48pt; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    .cv-entry, .cv-head { break-inside: avoid; }
    .cv-h { break-after: avoid; }
  }
}

/* ---------- Guide extras: skill/verb columns and CV sample block ---------- */
@layer components {
  .prose-cv ul.cols { columns: 3 9.5rem; column-gap: 1.5rem; list-style: none; padding-left: 0; }
  .prose-cv ul.cols li { break-inside: avoid; margin: 0 0 .4em; padding-left: 1.1em; position: relative; }
  .prose-cv ul.cols li + li { margin-top: 0; }
  .prose-cv ul.cols li::before { content: ""; position: absolute; left: 0; top: .7em; width: .4em; height: .4em; border-radius: 9999px; background: #818cf8; }
  .prose-cv .cv-sample { background: #fff; border: 1px solid #e2e8f0; border-radius: 1rem; padding: 1.5rem 1.6rem; font-size: .95rem; line-height: 1.6; color: #1f2937; box-shadow: 0 1px 2px rgb(15 23 42 / .05), 0 24px 40px -28px rgb(30 27 75 / .45); }
  .prose-cv .cv-sample > * + * { margin-top: .4rem; }
  .prose-cv .cv-sample ul { list-style: disc; padding-left: 1.2em; }
  .prose-cv .cv-sample li + li { margin-top: .15em; }
  .cv-sample .s-name { font-size: 1.5rem; font-weight: 800; color: #0f172a; line-height: 1.2; }
  .cv-sample .s-meta { font-size: .85rem; color: #475569; }
  .cv-sample .s-h { margin-top: 1rem !important; padding-bottom: .2rem; border-bottom: 1.5px solid #c7d2fe; font-size: .75rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: #4338ca; }
}

/* =====================================================================
   Header upgrade + animated icons (CSS only, honours reduced motion)
   ===================================================================== */
@layer components {
  /* ---------- Announcement bar ---------- */
  .announce { position: relative; overflow: hidden; color: #fff; background: linear-gradient(90deg, #4338ca, #7c3aed, #0284c7, #4338ca); background-size: 300% 100%; animation: bg-pan 16s linear infinite; }
  .announce::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(110deg, transparent 40%, rgb(255 255 255 / .28) 50%, transparent 60%); background-size: 250% 100%; animation: sweep 5s ease-in-out infinite; }
  .announce-link { position: relative; z-index: 1; display: flex; align-items: center; justify-content: center; gap: .5rem; padding: .5rem 1rem; font-size: .8125rem; font-weight: 600; }
  .announce-link > svg { width: 1rem; height: 1rem; }
  .announce-cta { display: inline-flex; align-items: center; gap: .3rem; padding: .15rem .65rem; border-radius: 9999px; background: rgb(255 255 255 / .2); font-weight: 800; white-space: nowrap; }
  .announce-cta svg { width: .9rem; height: .9rem; }

  /* ---------- Header ---------- */
  .site-header { transition: box-shadow .25s, background-color .25s; }
  .site-header.scrolled { background: rgb(255 255 255 / .94); box-shadow: 0 10px 30px -18px rgb(15 23 42 / .45); }
  .logo-link > svg { transition: transform .6s cubic-bezier(.3, 1.6, .5, 1); filter: drop-shadow(0 6px 10px rgb(99 102 241 / .35)); }
  .logo-link:hover > svg { transform: rotate(-10deg) scale(1.08); }
  .nav-link { position: relative; }
  .nav-link::after { content: ""; position: absolute; left: .75rem; right: .75rem; bottom: .25rem; height: 2px; border-radius: 2px; background: linear-gradient(90deg, #6366f1, #a855f7); transform: scaleX(0); transform-origin: left; transition: transform .25s ease; }
  .nav-link:hover::after, .nav-link.active::after { transform: scaleX(1); }
  .nav-link .nav-ic { display: none; width: 1rem; height: 1rem; }
  @media (min-width: 1280px) { .nav-link .nav-ic { display: block; } }
  .nav-link .drop-chev { width: .9rem; height: .9rem; transition: transform .2s; }
  .nav-drop { position: relative; }
  .nav-drop:hover .drop-chev, .nav-drop:focus-within .drop-chev { transform: rotate(180deg); }
  .drop-panel { position: absolute; left: 50%; top: calc(100% + .7rem); width: min(38rem, 90vw); padding: .75rem; border-radius: 1.25rem; background: #fff; box-shadow: 0 0 0 1px #e2e8f0, 0 30px 60px -22px rgb(15 23 42 / .4); opacity: 0; visibility: hidden; transform: translate(-50%, 10px) scale(.98); transition: opacity .2s, transform .2s, visibility .2s; }
  .drop-panel::before { content: ""; position: absolute; left: 0; right: 0; top: -.9rem; height: .9rem; }
  .nav-drop:hover .drop-panel, .nav-drop:focus-within .drop-panel { opacity: 1; visibility: visible; transform: translate(-50%, 0) scale(1); }
  .drop-item { display: flex; align-items: center; gap: .75rem; padding: .6rem .65rem; border-radius: .9rem; transition: background-color .15s; }
  .drop-item:hover { background: #f1f5f9; }
  .drop-all { display: flex; align-items: center; justify-content: center; gap: .5rem; margin-top: .5rem; padding: .7rem; border-radius: .9rem; background: #eef2ff; color: #4338ca; font-weight: 700; }
  .drop-all svg { width: 1rem; height: 1rem; }
  .drop-all:hover { background: #e0e7ff; }
  .btn-shine { overflow: hidden; }
  .btn-shine::after { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; background: linear-gradient(110deg, transparent 35%, rgb(255 255 255 / .45) 50%, transparent 65%); background-size: 250% 100%; animation: sweep 4.5s ease-in-out infinite; }
  .read-progress { position: absolute; left: 0; right: 0; bottom: -1px; height: 3px; overflow: hidden; }
  .read-progress span { display: block; height: 100%; background: linear-gradient(90deg, #6366f1, #a855f7, #0ea5e9); transform: scaleX(0); transform-origin: left; }

  /* Mobile menu */
  .mobile-menu .menu-close { display: none; }
  .mobile-menu[open] .menu-open { display: none; }
  .mobile-menu[open] .menu-close { display: block; }
  .mobile-menu[open] > nav { animation: drop-in .22s ease; }
  .mobile-menu .mm-label { margin: .6rem .8rem .2rem; padding-top: .6rem; border-top: 1px solid #e2e8f0; font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: #94a3b8; }

  /* ---------- Back to top ---------- */
  .to-top { position: fixed; right: 1rem; bottom: 1rem; z-index: 35; display: flex; align-items: center; justify-content: center; width: 2.9rem; height: 2.9rem; border-radius: 9999px; color: #fff; background: linear-gradient(145deg, #6366f1, #4338ca); box-shadow: 0 4px 0 #312e81, 0 12px 24px -8px rgb(67 56 202 / .6); opacity: 0; pointer-events: none; transform: translateY(12px) scale(.9); transition: opacity .25s, transform .25s; cursor: pointer; }
  .to-top.show { opacity: 1; pointer-events: auto; transform: none; }
  .to-top svg { width: 1.25rem; height: 1.25rem; }
  @media (max-width: 1023px) { .builder-page .to-top { bottom: 5.5rem; } }

  /* ---------- Section details ---------- */
  .eyebrow { display: inline-flex; align-items: center; gap: .45rem; }
  .eyebrow svg { width: 1rem; height: 1rem; }
  .grad-text { background-image: linear-gradient(90deg, #4338ca, #7c3aed, #0284c7, #7c3aed, #4338ca); background-size: 300% auto; animation: grad-shift 9s ease-in-out infinite; }
  .icon3d.xs { width: 1.9rem; height: 1.9rem; border-radius: .6rem; }
  .icon3d.xs svg { width: 1rem; height: 1rem; }
  .icon3d.lg { width: 3.75rem; height: 3.75rem; border-radius: 1.1rem; }
  .icon3d.lg svg { width: 1.9rem; height: 1.9rem; }
  .prose-cv h2::before { content: ""; display: block; width: 2.5rem; height: 4px; margin-bottom: .7rem; border-radius: 4px; background: linear-gradient(90deg, #6366f1, #a855f7); }
  .card[open] > .card-body { animation: drop-in .3s ease; }

  /* Floating decorative 3D icons */
  .decor { position: absolute; inset: 0; pointer-events: none; }
  .decor .float-a { position: absolute; right: 9%; top: 26%; }
  .decor .float-b { position: absolute; right: 18%; top: 58%; }
  .decor .float-c { position: absolute; right: 5%; top: 66%; }
  .decor-hero { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
  .decor-hero > span { position: absolute; opacity: .9; }
  .float-a { animation: float-a 6s ease-in-out infinite; }
  .float-b { animation: float-a 7.5s ease-in-out -2s infinite reverse; }
  .float-c { animation: float-a 9s ease-in-out -4s infinite; }
  .anim-bob { animation: bob 3s ease-in-out infinite; }

  /* ---------- Icon micro-animations ---------- */
  .ic { transform-origin: center; }
  :is(a, button, summary, .card3d, label):hover :is(.ic-upload, .ic-arrow-up) { animation: nudge-up .6s ease; }
  :is(a, button, summary, .card3d, label):hover .ic-download { animation: nudge-down .6s ease; }
  :is(a, button, summary, .card3d, label):hover .ic-arrow-right { animation: nudge-right .6s ease; }
  :is(a, button, summary, .card3d, label):hover :is(.ic-edit, .ic-mail, .ic-phone, .ic-briefcase, .ic-cap, .ic-book, .ic-alert, .ic-scale, .ic-quote) { animation: wiggle .6s ease; }
  :is(a, button, summary, .card3d, label):hover :is(.ic-globe, .ic-star, .ic-link, .ic-help, .ic-sparkles) { animation: spin-once .8s ease; }
  :is(a, button, summary, .card3d, label):hover .ic-eye { animation: blink .5s ease; }
  :is(a, button, summary, .card3d, label):hover .ic-send { animation: fly .7s ease; }
  :is(a, button, summary, .card3d, label):hover :is(.ic-check-circle, .ic-check, .ic-shield, .ic-lock, .ic-bolt, .ic-doc, .ic-layout, .ic-layers, .ic-chat, .ic-users, .ic-info, .ic-user-off, .ic-user, .ic-home, .ic-search) { animation: pop .5s ease; }
  .card3d .icon3d { transition: transform .45s cubic-bezier(.3, 1.6, .5, 1); }
  .card3d:hover .icon3d { transform: translateY(-4px) rotate(-6deg) scale(1.07); }
  .pill .ic-sparkles, .announce-link > .ic-sparkles, .eyebrow .ic-sparkles { animation: twinkle 2.6s ease-in-out infinite; }
  .draw-checks .ic :is(circle, path) { stroke-dasharray: 60; stroke-dashoffset: 60; animation: draw 1s ease forwards; }
  .draw-checks li:nth-child(1) .ic :is(circle, path) { animation-delay: .3s; }
  .draw-checks li:nth-child(2) .ic :is(circle, path) { animation-delay: .5s; }
  .draw-checks li:nth-child(3) .ic :is(circle, path) { animation-delay: .7s; }
  .draw-checks li:nth-child(4) .ic :is(circle, path) { animation-delay: .9s; }

  /* ---------- Scroll reveal (only when JavaScript is running) ---------- */
  .js :is(.card3d, .cta-band, .reveal) { transition: opacity .6s ease, transform .55s cubic-bezier(.2, .8, .2, 1), box-shadow .3s; }
  .js :is(.card3d, .cta-band, .reveal):not(.in) { opacity: 0; transform: translateY(22px); }
  .reveal-all :is(.card3d, .cta-band, .reveal) { opacity: 1 !important; transform: none !important; }

  /* ---------- Keyframes ---------- */
  @keyframes bg-pan { to { background-position: 300% 0; } }
  @keyframes sweep { 0% { background-position: 150% 0; } 55%, 100% { background-position: -50% 0; } }
  @keyframes grad-shift { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }
  @keyframes drop-in { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
  @keyframes float-a { 0%, 100% { transform: translateY(0) rotate(-6deg); } 50% { transform: translateY(-14px) rotate(5deg); } }
  @keyframes bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
  @keyframes nudge-up { 0%, 100% { transform: translateY(0); } 40% { transform: translateY(-3px); } }
  @keyframes nudge-down { 0%, 100% { transform: translateY(0); } 40% { transform: translateY(3px); } }
  @keyframes nudge-right { 0%, 100% { transform: translateX(0); } 40% { transform: translateX(4px); } }
  @keyframes wiggle { 0%, 100% { transform: rotate(0); } 25% { transform: rotate(-14deg); } 70% { transform: rotate(10deg); } }
  @keyframes spin-once { to { transform: rotate(360deg); } }
  @keyframes pop { 0%, 100% { transform: scale(1); } 45% { transform: scale(1.22); } }
  @keyframes blink { 0%, 100% { transform: scaleY(1); } 45% { transform: scaleY(.1); } }
  @keyframes fly { 0% { transform: translate(0, 0); opacity: 1; } 45% { transform: translate(5px, -5px); opacity: 0; } 46% { transform: translate(-5px, 5px); opacity: 0; } 100% { transform: translate(0, 0); opacity: 1; } }
  @keyframes twinkle { 0%, 100% { transform: scale(1) rotate(0); opacity: 1; } 50% { transform: scale(.82) rotate(18deg); opacity: .75; } }
  @keyframes draw { to { stroke-dashoffset: 0; } }

  /* ---------- Respect "reduce motion" ---------- */
  @media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; animation-delay: 0s !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
    .js :is(.card3d, .cta-band, .reveal):not(.in) { opacity: 1; transform: none; }
  }
}

/* =====================================================================
   CV templates (sizes in pt mirror the PDF export exactly)
   ===================================================================== */
@layer components {
  /* Modern: coloured header band, short accent bar under headings */
  .cv.t-modern .cv-head { margin: -48pt -48pt 0; padding: 36pt 48pt 20pt; background: var(--accent); }
  .cv.t-modern .cv-name { color: #fff; }
  .cv.t-modern .cv-headline, .cv.t-modern .cv-contact, .cv.t-modern .cv-contact a { color: rgb(255 255 255 / .85); }
  .cv.t-modern .cv-sep { color: rgb(255 255 255 / .5); }
  .cv.t-modern .cv-h { border-bottom: 0; padding-bottom: 0; margin-bottom: 9pt; }
  .cv.t-modern .cv-h::after { content: ""; display: block; width: 28pt; height: 2.5pt; margin-top: 3pt; background: var(--accent); }

  /* Minimal: centred header, centred headings between thin lines */
  .cv.t-minimal .cv-head { text-align: center; }
  .cv.t-minimal .cv-h { display: flex; align-items: center; gap: 8pt; color: #374151; border-bottom: 0; padding-bottom: 0; margin-bottom: 8pt; }
  .cv.t-minimal .cv-h::before, .cv.t-minimal .cv-h::after { content: ""; flex: 1; height: .75pt; background: var(--rule); }

  /* Executive: accent name, thick rule under the header, square markers, accent dates */
  .cv.t-executive .cv-name { color: var(--accent); }
  .cv.t-executive .cv-head { padding-bottom: 8pt; border-bottom: 2.5pt solid var(--accent); }
  .cv.t-executive .cv-h { display: flex; align-items: center; gap: 6pt; color: #111827; border-bottom-color: #e5e7eb; }
  .cv.t-executive .cv-h::before { content: ""; width: 6pt; height: 6pt; flex-shrink: 0; background: var(--accent); }
  .cv.t-executive .cv-date { color: var(--accent); font-weight: 700; }

  /* Bold: upper-case name, headings in a filled accent band */
  .cv.t-bold .cv-name { text-transform: uppercase; letter-spacing: .5pt; }
  .cv.t-bold .cv-h { background: var(--accent); color: #fff; border-bottom: 0; padding: 3pt 6pt; margin-bottom: 8pt; }

  /* Compact: smaller type and tighter spacing to fit more on one page */
  .cv.t-compact { padding: 38pt; font-size: 9.2pt; line-height: 1.348; }
  .cv.t-compact .cv-name { font-size: 20pt; }
  .cv.t-compact .cv-headline { font-size: 10.5pt; }
  .cv.t-compact .cv-contact { font-size: 8.5pt; }
  .cv.t-compact .cv-sec { margin-top: 10pt; }
  .cv.t-compact .cv-h { font-size: 9.5pt; margin-bottom: 5pt; }
  .cv.t-compact .cv-role { font-size: 9.8pt; line-height: 1.378; }
  .cv.t-compact .cv-date { font-size: 8.5pt; }
  .cv.t-compact .cv-entry + .cv-entry { margin-top: 6pt; }

  @media print {
    #print-root .cv.t-compact { padding: 0 38pt; }
    #print-root .cv.t-modern .cv-head { margin: 0 -48pt; padding: 24pt 48pt 20pt; }
  }

  /* ---------- Template picker (builder) ---------- */
  .tpl-bar { border-radius: 1rem; background: #fff; border: 1px solid #e2e8f0; padding: 1rem 1.1rem; box-shadow: 0 1px 2px rgb(15 23 42 / .04), 0 10px 24px -20px rgb(15 23 42 / .35); }
  .tpl-picker { display: grid; grid-auto-flow: column; grid-auto-columns: 6.6rem; gap: .75rem; overflow-x: auto; padding: .35rem .2rem .6rem; scroll-snap-type: x mandatory; }
  @media (min-width: 1024px) { .tpl-picker { grid-auto-flow: row; grid-template-columns: repeat(6, minmax(0, 1fr)); overflow: visible; } }
  .tpl-chip { scroll-snap-align: start; display: flex; flex-direction: column; align-items: center; gap: .45rem; padding: .45rem; border-radius: .9rem; border: 2px solid transparent; background: #f8fafc; cursor: pointer; transition: transform .2s, border-color .2s, box-shadow .2s, background-color .2s; }
  .tpl-chip img { width: 100%; height: auto; aspect-ratio: 96 / 136; object-fit: cover; object-position: top; border-radius: .45rem; background: #fff; box-shadow: 0 1px 3px rgb(15 23 42 / .15); }
  .tpl-chip span { font-size: .8125rem; font-weight: 700; color: #334155; }
  .tpl-chip:hover { transform: translateY(-3px); box-shadow: 0 12px 20px -14px rgb(67 56 202 / .6); }
  .tpl-chip[aria-checked="true"] { border-color: #4f46e5; background: #eef2ff; box-shadow: 0 0 0 3px rgb(99 102 241 / .18); }
  .tpl-chip[aria-checked="true"] span { color: #4338ca; }
  .tpl-chip:focus-visible { outline: 2px solid #6366f1; outline-offset: 2px; }

  /* ---------- Template gallery cards ---------- */
  .tpl-card { overflow: hidden; padding: 0; }
  .tpl-card .tpl-img { display: block; aspect-ratio: 210 / 297; overflow: hidden; background: linear-gradient(160deg, #eef2ff, #f8fafc); padding: 1rem 1rem 0; }
  .tpl-card .tpl-img img { width: 100%; height: auto; border-radius: .5rem .5rem 0 0; box-shadow: 0 10px 30px -12px rgb(15 23 42 / .35); transition: transform .5s cubic-bezier(.2, .8, .2, 1); }
  .tpl-card:hover .tpl-img img { transform: translateY(-6px) scale(1.02); }
}
