/*! tailwindcss v4.3.5 | MIT License | https://tailwindcss.com */
@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:block))) 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-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-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}}}@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-gray-50:oklch(98.5% .002 247.839);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-600:oklch(44.6% .03 256.802);--spacing:.25rem;--container-2xl:42rem;--container-3xl:48rem;--container-5xl:64rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-semibold:600;--leading-relaxed:1.625;--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;line-height:1.5;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;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring: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{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}::-moz-placeholder{opacity:1}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::-moz-placeholder{color:currentColor}::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::-moz-placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}::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]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components{.site{flex-direction:column;min-height:100vh;display:flex}.site-header{z-index:50;background:var(--header-bg);border-bottom:var(--border-w) solid var(--border-color);backdrop-filter:var(--backdrop);position:relative}@media (min-width:640px){.site-header{position:sticky;top:0}}.site-footer{border-top:var(--border-w) solid var(--border-color);color:var(--muted);margin-top:4rem}.brand{font-family:var(--font-display);font-weight:var(--display-weight);text-transform:var(--display-transform);color:var(--text);font-size:1.5rem;line-height:1}.brand-dot{color:var(--accent-2)}.nav-link{color:var(--muted);text-underline-offset:6px;font-weight:600}.nav-link:hover,.nav-link.is-active{color:var(--text);text-decoration:underline;text-decoration-color:var(--accent-2);text-decoration-thickness:3px}.theme-picker{position:relative}.theme-switcher{background:var(--menu-bg,var(--surface));color:var(--text);border:var(--border-w) solid var(--border-color);border-radius:var(--radius);box-shadow:var(--shadow);backdrop-filter:var(--backdrop);font:inherit;cursor:pointer;align-items:center;gap:.55rem;padding:.45rem 2rem .45rem .7rem;font-size:.85rem;font-weight:700;line-height:1.2;transition:transform .12s,box-shadow .12s;display:inline-flex;position:relative}@media (max-width:639px){.theme-switcher-label{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.theme-switcher{padding-left:.6rem}}.theme-switcher:hover{box-shadow:var(--shadow-hover);transform:translate(-2px,-2px)}.theme-switcher:focus-visible{outline:3px solid var(--accent-2);outline-offset:3px}.theme-switcher:after{content:"";pointer-events:none;border-bottom:2px solid;border-right:2px solid;width:.45rem;height:.45rem;transition:transform .15s;position:absolute;top:50%;right:.8rem;transform:translateY(-70%)rotate(45deg)}.theme-switcher[aria-expanded=true]:after{transform:translateY(-20%)rotate(225deg)}.theme-swatch{gap:3px;display:inline-flex}.theme-swatch i{border:1px solid #0000008c;border-radius:2px;width:.65rem;height:.65rem;display:block}.theme-menu{z-index:60;background:var(--menu-bg,var(--surface));width:-moz-max-content;width:max-content;min-width:17rem;max-width:calc(100vw - 2rem);color:var(--text);border:var(--border-w) solid var(--border-color);border-radius:var(--radius);box-shadow:var(--shadow-hover);backdrop-filter:var(--backdrop);outline:none;padding:.4rem;position:absolute;top:calc(100% + .7rem);right:0}.theme-option{border-radius:min(var(--radius), 10px);cursor:pointer;align-items:center;gap:.75rem;padding:.5rem .6rem;font-size:.85rem;font-weight:600;display:flex}.theme-option.is-active{background:var(--accent);color:var(--on-accent)}.theme-option-preview{border:1px solid #0000008c;border-radius:4px;flex:none;justify-content:center;align-items:center;width:3.4rem;height:1.7rem;display:inline-flex}.theme-option-check{margin-left:auto;padding-left:.75rem;font-weight:800}.display{font-family:var(--font-display);font-weight:var(--display-weight);font-size:var(--display-size);text-transform:var(--display-transform);letter-spacing:var(--display-tracking);overflow-wrap:anywhere;line-height:1.05}.section-title{font-family:var(--font-display);font-weight:var(--display-weight);text-transform:var(--display-transform);letter-spacing:var(--display-tracking);font-size:clamp(1.6rem,4vw,2.4rem);line-height:1.1}.kicker{color:var(--kicker);letter-spacing:.14em;text-transform:uppercase;margin-bottom:.5rem;font-size:.8rem;font-weight:700}.lead{max-width:42rem;font-size:1.2rem;line-height:1.55}.muted{color:var(--muted)}.meta{color:var(--muted);font-size:.85rem}.prose-text{font-size:1.1rem;line-height:1.75}.text-link{color:var(--link);text-underline-offset:4px;font-weight:600;text-decoration:underline;text-decoration-thickness:2px}.bullets{margin-top:.5rem;padding-left:1.25rem;list-style:outside}.bullets li+li{margin-top:.4rem}.bullets li.more-line{margin:.9rem 0 .9rem -1.25rem;list-style:none}.more-callout{background:var(--accent);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem 1rem;padding:.65rem .75rem .65rem .9rem;display:flex}@supports (color:color-mix(in lab, red, red)){.more-callout{background:color-mix(in srgb, var(--accent) 16%, transparent)}}.more-callout{border:var(--border-w) dashed var(--border-color);border-radius:var(--radius)}.more-callout-text{align-items:center;gap:.6rem;font-weight:600;display:inline-flex}.more-callout-plus{background:var(--plus-bg,var(--accent-2));width:1.6rem;height:1.6rem;color:var(--plus-fg,var(--on-accent));border:1px solid var(--border-color);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex;position:relative}.more-callout-plus:before,.more-callout-plus:after{content:"";background:currentColor;border-radius:1px;width:.7rem;height:2px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.more-callout-plus:after{transform:translate(-50%,-50%)rotate(90deg)}.more-callout-link{background:var(--accent);color:var(--on-accent);border:var(--border-w) solid var(--border-color);border-radius:var(--radius);align-items:center;gap:.5rem;max-width:100%;padding:.35rem .4rem .35rem .75rem;font-size:.85rem;font-weight:700;transition:transform .12s;display:inline-flex}@media (max-width:639px){.more-callout-link{justify-content:space-between;width:100%}}.more-callout-link:hover{transform:translate(-1px,-1px)}.more-callout-tag{white-space:nowrap;background:var(--surface);color:var(--text);border:1px solid var(--border-color);border-radius:6px;flex:none;padding:.05rem .4rem;font-size:.7rem}.bullets li::marker{color:var(--accent-2)}.btn{background:var(--surface);color:var(--text);border:var(--border-w) solid var(--border-color);border-radius:var(--radius);box-shadow:var(--shadow);backdrop-filter:var(--backdrop);overflow-wrap:anywhere;cursor:pointer;align-items:center;gap:.5rem;max-width:100%;padding:.7rem 1.2rem;font-weight:700;line-height:1.2;transition:transform .12s,box-shadow .12s;display:inline-flex}.btn:hover{box-shadow:var(--shadow-hover);transform:translate(-2px,-2px)}.btn:active{box-shadow:none;transform:translate(2px,2px)}.btn-primary{background:var(--accent);color:var(--on-accent)}.badge{background:var(--accent);color:var(--on-accent);border:var(--border-w) solid var(--border-color);border-radius:var(--radius);padding:.35rem .8rem;font-weight:700;display:inline-block}.badge-small{vertical-align:middle;border-width:1px;padding:.05rem .45rem;font-size:.75rem}.card{background:var(--surface);border:var(--border-w) solid var(--border-color);border-radius:var(--radius);box-shadow:var(--shadow);backdrop-filter:var(--backdrop);padding:1.5rem}.card-title{font-size:1.15rem;font-weight:700;line-height:1.3}.card-index{font-family:var(--font-display);color:var(--accent-2);margin-bottom:.5rem;font-size:1.1rem;display:block}.chips{flex-wrap:wrap;gap:.45rem;display:flex}.chip{background:var(--chip-bg);color:var(--chip-text);border:1px solid var(--border-color);border-radius:var(--radius);padding:.15rem .6rem;font-size:.8rem;font-weight:600;display:inline-block}a.chip:hover{background:var(--accent);color:var(--on-accent)}.hero{align-items:center;gap:2.5rem;padding:3.5rem 0 2.5rem;display:grid}@media (min-width:768px){.hero{grid-template-columns:auto 1fr;padding:5rem 0 3.5rem}}.avatar{aspect-ratio:1;-o-object-fit:cover;object-fit:cover;background:var(--accent);border:var(--border-w) solid var(--border-color);border-radius:var(--radius);width:min(16rem,70vw);height:auto;box-shadow:var(--shadow);display:block}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;display:grid}@media (min-width:768px){.stats{grid-template-columns:repeat(4,minmax(0,1fr))}}.stat{flex-direction:column;gap:.35rem;display:flex}.stat-value{font-family:var(--font-display);font-weight:var(--display-weight);font-size:clamp(1.8rem,4vw,2.6rem);line-height:1}.stat-label{color:var(--muted);font-size:.9rem;line-height:1.35}.section{padding-top:4.5rem}.timeline{border-left:var(--border-w) solid var(--border-color);margin-left:.5rem}.timeline-item{padding:0 0 2rem 1.75rem;position:relative}.timeline-item:before{content:"";left:calc(-.5rem - var(--border-w) / 2);background:var(--accent);border:var(--border-w) solid var(--border-color);border-radius:var(--radius);width:1rem;height:1rem;position:absolute;top:.35rem}.skill-group{font-weight:700}.contact{padding:2.5rem}.ai-closing{font-family:var(--font-display);font-weight:var(--display-weight);text-transform:var(--display-transform);font-size:clamp(1.2rem,3vw,1.6rem);line-height:1.3}.quote{border-left:calc(var(--border-w) * 2 + 2px) solid var(--accent-2);max-width:48rem;font-family:var(--font-display);font-weight:var(--display-weight);text-transform:none;padding:.5rem 0 .5rem 1.5rem;font-size:clamp(1.25rem,3.2vw,1.85rem);line-height:1.35}.testimonials{-moz-columns:1;columns:1;-moz-column-gap:1.25rem;column-gap:1.25rem}@media (min-width:640px){.testimonials{-moz-columns:2;columns:2}}@media (min-width:1024px){.testimonials{-moz-columns:3;columns:3}}.testimonial{-moz-column-break-inside:avoid;break-inside:avoid;margin-bottom:1.25rem}.testimonial blockquote{line-height:1.65}.testimonial-author{align-items:center;gap:.75rem;display:flex}.initials{background:var(--accent);width:2.6rem;height:2.6rem;color:var(--on-accent);border:var(--border-w) solid var(--border-color);font-family:var(--font-display);font-weight:var(--display-weight);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:.85rem;display:inline-flex}.bar{background:var(--bar-track,var(--chip-bg));border:1px solid var(--border-color);border-radius:min(var(--radius), 999px);height:.55rem;overflow:hidden}.bar>span{background:var(--bar-fill,var(--accent-2));height:100%;display:block}.more-work{border-style:dashed;padding:2.25rem}.toc{flex-wrap:wrap;gap:.5rem;display:flex}.case-heading{color:var(--kicker);letter-spacing:.12em;text-transform:uppercase;margin-top:1.5rem;font-size:.8rem;font-weight:700}.cv-name{font-size:clamp(1.8rem,5vw,2.8rem)}.cv-facts{font-weight:700}.cv-section{margin-top:2.25rem}.cv-heading{font-family:var(--font-display);font-weight:var(--display-weight);text-transform:var(--display-transform);border-bottom:var(--border-w) solid var(--border-color);padding-bottom:.4rem;font-size:1.25rem}[data-theme=neo-brutalism] .stat:nth-child(4n+1){background:var(--accent)}[data-theme=neo-brutalism] .stat:nth-child(4n+2){background:var(--accent-3)}[data-theme=neo-brutalism] .stat:nth-child(4n+3){background:var(--accent-2)}[data-theme=neo-brutalism] .stat .stat-label,[data-theme=memphis-brutalism] .stat .stat-label{color:#111}[data-theme=neo-brutalism] .chip{border-width:2px}[data-theme=glassmorphism] .display{color:#0000;background:linear-gradient(120deg,#fff,#c4b5fd 45%,#7dd3fc);-webkit-background-clip:text;background-clip:text}[data-theme=glassmorphism] .chip{border-radius:999px}[data-theme=glassmorphism] .avatar{border-radius:50%}[data-theme=cyberpunk] .theme-switcher,[data-theme=cyberpunk] .card,[data-theme=cyberpunk] .btn,[data-theme=cyberpunk] .avatar{clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,16px 100%,0 calc(100% - 16px))}[data-theme=cyberpunk] .display,[data-theme=cyberpunk] .section-title{text-shadow:2px 0 #ff2a6d,-2px 0 #05d9e8}[data-theme=cyberpunk] .stat-value,[data-theme=cyberpunk] .card-index{color:var(--accent)}[data-theme=cyberpunk] .chip{border-color:#ff2a6d}[data-theme=swiss] .card{border-width:var(--border-w) 0 0 0;padding:1.25rem 0 0}[data-theme=swiss] .contact,[data-theme=swiss] .cv{border-top-width:6px}[data-theme=swiss] .stat-value,[data-theme=swiss] .card-index{color:var(--accent)}[data-theme=swiss] .avatar{filter:grayscale()contrast(1.1)}[data-theme=swiss] .badge{border:0}[data-theme=memphis] .card:nth-child(3n+2){box-shadow:6px 6px #ff5fa2}[data-theme=memphis] .card:nth-child(3n+3){box-shadow:6px 6px #ffd23f}[data-theme=memphis] .chip{border-radius:999px}[data-theme=memphis] .chip:nth-child(3n+2){background:#b9f3f4}[data-theme=memphis] .chip:nth-child(3n+3){background:#ffd0e5}[data-theme=memphis] .badge{border-radius:999px;transform:rotate(-2deg)}[data-theme=memphis] .avatar{border-radius:50%}[data-theme=memphis] main,[data-theme=memphis-brutalism] main{background:var(--bg);padding-bottom:3rem}[data-theme=memphis-brutalism] main{border-inline:var(--border-w) solid var(--border-color)}[data-theme=memphis-brutalism] .card-index{color:#111}[data-theme=memphis-brutalism] .bullets li::marker{color:#111}[data-theme=memphis-brutalism] .stat:nth-child(4n+1),[data-theme=memphis-brutalism] .card:nth-child(4n+2){background:#ffd23f}[data-theme=memphis-brutalism] .stat:nth-child(4n+2),[data-theme=memphis-brutalism] .card:nth-child(4n+3){background:#8ee8ea}[data-theme=memphis-brutalism] .stat:nth-child(4n+3),[data-theme=memphis-brutalism] .card:nth-child(4n+4){background:#ffb3d3}[data-theme=memphis-brutalism] .badge,[data-theme=memphis-brutalism] .avatar{transform:rotate(-3deg)}[data-theme=memphis-brutalism] .chip{border-width:2px}[data-theme=pixel] .card,[data-theme=pixel] .btn,[data-theme=pixel] .theme-switcher,[data-theme=pixel] .theme-menu,[data-theme=pixel] .avatar{box-shadow:0 -4px 0 0 var(--border-color), 0 4px 0 0 var(--border-color), -4px 0 0 0 var(--border-color), 4px 0 0 0 var(--border-color), 8px 8px 0 4px #0b0c16;border:0}[data-theme=pixel] .btn:hover,[data-theme=pixel] .theme-switcher:hover{transform:translateY(-2px)}[data-theme=pixel] .quote,[data-theme=pixel] .ai-closing{font-size:clamp(.85rem,2.2vw,1.15rem);line-height:1.8}[data-theme=pixel] .theme-switcher,[data-theme=pixel] .theme-option,[data-theme=pixel] .btn,[data-theme=pixel] .badge,[data-theme=pixel] .kicker,[data-theme=pixel] .case-heading,[data-theme=pixel] .brand{font-family:var(--font-display);letter-spacing:0;font-size:.65rem;line-height:1.6}[data-theme=pixel] .brand{font-size:1rem}[data-theme=pixel] .section-title,[data-theme=pixel] .stat-value,[data-theme=pixel] .cv-heading{font-size:clamp(1rem,3vw,1.5rem);line-height:1.4}[data-theme=pixel] .card-title{font-size:1.45rem}[data-theme=pixel] .avatar{image-rendering:pixelated}[data-theme=pixel] .stat-value,[data-theme=pixel] .card-index{color:var(--accent)}[data-theme=groovy] .display,[data-theme=groovy] .section-title,[data-theme=groovy] .card-title,[data-theme=groovy] .stat-value,[data-theme=groovy] .brand{font-family:var(--font-display);font-variation-settings:"SOFT" 100, "WONK" 1}[data-theme=groovy] .chip,[data-theme=groovy] .badge{border-radius:999px}[data-theme=groovy] .avatar{filter:saturate(.9);border-radius:50%}[data-theme=retro-poster] .card,[data-theme=retro-poster] .theme-switcher{border-style:double;border-width:6px}[data-theme=retro-poster] .display,[data-theme=retro-poster] .section-title{text-shadow:3px 3px #e2a63b}[data-theme=retro-poster] .site-header,[data-theme=retro-poster] .site-header a,[data-theme=retro-poster] .brand{color:#f8eedb}[data-theme=retro-poster] .stat-value,[data-theme=retro-poster] .card-index{color:var(--accent)}[data-theme=retro-poster] .avatar{filter:sepia(.3)contrast(1.05)}}@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:0}.z-\[999999\]{z-index:999999}.mx-auto{margin-inline:auto}.my-12{margin-block:calc(var(--spacing) * 12)}.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)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.h-32{height:calc(var(--spacing) * 32)}.h-full{height:100%}.w-32{width:calc(var(--spacing) * 32)}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-5xl{max-width:var(--container-5xl)}.flex-1{flex:1}.grow{flex-grow:1}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-7>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 7) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 7) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-2{-moz-column-gap:calc(var(--spacing) * 2);column-gap:calc(var(--spacing) * 2)}.gap-x-3{-moz-column-gap:calc(var(--spacing) * 3);column-gap:calc(var(--spacing) * 3)}.gap-x-4{-moz-column-gap:calc(var(--spacing) * 4);column-gap:calc(var(--spacing) * 4)}.self-start{align-self:flex-start}.rounded{border-radius:.25rem}.rounded-full{border-radius:2147483647px}.border{border-style:var(--tw-border-style);border-width:1px}.border-\[3px\]{border-style:var(--tw-border-style);border-width:3px}.border-gray-200{border-color:var(--color-gray-200)}.border-t-gray-600{border-top-color:var(--color-gray-600)}.border-r-gray-600{border-right-color:var(--color-gray-600)}.border-b-gray-600{border-bottom-color:var(--color-gray-600)}.bg-gray-50\/75{background-color:#f9fafbbf}@supports (color:color-mix(in lab, red, red)){.bg-gray-50\/75{background-color:color-mix(in oklab, var(--color-gray-50) 75%, transparent)}}.bg-gradient-to-tr{--tw-gradient-position:to top right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-gray-400\/20{--tw-gradient-from:#99a1af33}@supports (color:color-mix(in lab, red, red)){.from-gray-400\/20{--tw-gradient-from:color-mix(in oklab, var(--color-gray-400) 20%, transparent)}}.from-gray-400\/20{--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))}.via-transparent{--tw-gradient-via:transparent;--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-gray-400\/10{--tw-gradient-to:#99a1af1a}@supports (color:color-mix(in lab, red, red)){.to-gray-400\/10{--tw-gradient-to:color-mix(in oklab, var(--color-gray-400) 10%, transparent)}}.to-gray-400\/10{--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))}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-24{padding-block: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-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.lowercase{text-transform:lowercase}.blur-sm{--tw-blur:blur(var(--blur-sm));filter:var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, )}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));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, )}@media (min-width:40rem){.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\:px-6{padding-inline:calc(var(--spacing) * 6)}}@media (min-width:64rem){.lg\:col-span-3{grid-column:span 3/span 3}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}}:root,[data-theme=neo-brutalism]{--bg:#fff4e0;--bg-image:none;--bg-size:auto;--text:#111;--muted:#3b3b3b;--surface:#fff;--header-bg:#fff4e0;--accent:#ffd23f;--on-accent:#111;--accent-2:#ff6b6b;--accent-3:#4ecdc4;--kicker:#b42318;--link:#111;--border-color:#111;--border-w:3px;--radius:6px;--shadow:6px 6px 0 #111;--shadow-hover:9px 9px 0 #111;--backdrop:none;--chip-bg:#fff;--chip-text:#111;--font-body:"Roboto Mono", ui-monospace, monospace;--font-display:"Space Grotesk", ui-sans-serif, system-ui, sans-serif;--display-weight:700;--display-transform:none;--display-tracking:-.02em;--display-size:clamp(2.25rem, 6vw, 4rem);--body-size:.95rem}[data-theme=glassmorphism]{--bg:#0d0b22;--bg-image:radial-gradient(at 10% 15%, #7f5af073 0, transparent 40%), radial-gradient(at 90% 10%, #2cb67d47 0, transparent 35%), radial-gradient(at 80% 90%, #ff890638 0, transparent 38%), radial-gradient(at 12% 95%, #e5317047 0, transparent 36%), linear-gradient(160deg, #0d0b22, #1b1740 60%, #12102a);--text:#f6f5ff;--muted:#f6f5ffdb;--surface:#120f2c8c;--menu-bg:#181438f0;--header-bg:#0d0b22a6;--accent:#e9e3ff;--on-accent:#1d1442;--accent-2:#f9a8d4;--accent-3:#7dd3fc;--kicker:#7dd3fc;--link:#f6f5ff;--border-color:#fff3;--border-w:1px;--radius:20px;--shadow:0 8px 32px #00000059;--shadow-hover:0 12px 40px #00000073;--backdrop:blur(18px) saturate(160%);--chip-bg:#ffffff24;--chip-text:#f6f5ff;--font-body:"Roboto Mono", ui-monospace, monospace;--font-display:"Inter", ui-sans-serif, system-ui, sans-serif;--display-weight:800;--display-tracking:-.03em}[data-theme=cyberpunk]{--bg:#07070d;--bg-image:linear-gradient(#05d9e812 1px, transparent 1px), linear-gradient(90deg, #05d9e812 1px, transparent 1px);--bg-size:40px 40px;--text:#e6f7ff;--muted:#93b8c9;--surface:#0e0e1a;--header-bg:#07070de0;--accent:#fcee0a;--on-accent:#07070d;--accent-2:#ff2a6d;--accent-3:#05d9e8;--kicker:#ff2a6d;--link:#05d9e8;--border-color:#05d9e8;--border-w:1px;--radius:0;--shadow:0 0 18px #05d9e840;--shadow-hover:0 0 26px #fcee0a66;--chip-bg:transparent;--chip-text:#ff2a6d;--font-body:"Roboto Mono", ui-monospace, monospace;--font-display:"Orbitron", ui-sans-serif, sans-serif;--display-weight:800;--display-transform:uppercase;--display-tracking:.03em;--display-size:clamp(2rem, 5.5vw, 3.6rem);--body-size:.95rem}[data-theme=swiss]{--bg:#f2f1ec;--text:#111;--muted:#4a4a4a;--surface:transparent;--menu-bg:#f2f1ec;--header-bg:#f2f1ec;--accent:#e30613;--on-accent:#fff;--accent-2:#111;--accent-3:#e30613;--kicker:#c1050f;--link:#111;--border-color:#111;--border-w:2px;--radius:0;--shadow:none;--shadow-hover:none;--chip-bg:transparent;--chip-text:#111;--font-body:"Roboto Mono", ui-monospace, monospace;--font-display:"Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;--display-weight:800;--display-tracking:-.05em;--display-size:clamp(2.75rem, 8vw, 5.75rem)}[data-theme=memphis]{--bg:#fff8ee;--bg-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%27320%27 height=%27320%27%3E%3Cpath d=%27M30 50 q12 -16 24 0 t24 0%27 fill=%27none%27 stroke=%27%23ffc2dc%27 stroke-width=%274%27 stroke-linecap=%27round%27/%3E%3Ccircle cx=%27250%27 cy=%2770%27 r=%279%27 fill=%27%23ffe9a6%27/%3E%3Cpath d=%27M220 240 l18 -30 l18 30 z%27 fill=%27none%27 stroke=%27%23b5ecee%27 stroke-width=%274%27 stroke-linejoin=%27round%27/%3E%3Cpath d=%27M60 250 l9 -9 l9 9 l9 -9 l9 9%27 fill=%27none%27 stroke=%27%23d6c8ff%27 stroke-width=%274%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27/%3E%3C/svg%3E");--bg-size:320px 320px;--text:#1f1d36;--muted:#46435f;--surface:#fff;--header-bg:#fff8ee;--accent:#ff5fa2;--on-accent:#1f1d36;--accent-2:#7b4fff;--accent-3:#00b3b8;--kicker:#6a3df0;--link:#6a3df0;--border-color:#1f1d36;--border-w:2px;--radius:18px;--shadow:6px 6px 0 #00b3b8;--shadow-hover:9px 9px 0 #ff5fa2;--chip-bg:#ffd23f;--chip-text:#1f1d36;--font-body:"Roboto Mono", ui-monospace, monospace;--font-display:"Bungee", ui-sans-serif, system-ui, sans-serif;--display-weight:400;--display-tracking:0;--display-size:clamp(2rem, 5.5vw, 3.6rem)}[data-theme=memphis-brutalism]{--bg:#fff3d6;--bg-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%27340%27 height=%27340%27%3E%3Cg stroke=%27%23111%27 stroke-opacity=%27.35%27 stroke-width=%273%27%3E%3Cpath d=%27M30 50 q12 -16 24 0 t24 0%27 fill=%27none%27 stroke-linecap=%27round%27/%3E%3Ccircle cx=%27260%27 cy=%2770%27 r=%2710%27 fill=%27%23ffc2dc%27/%3E%3Crect x=%27230%27 y=%27230%27 width=%2724%27 height=%2724%27 fill=%27%23b5ecee%27 transform=%27rotate%2815 242 242%29%27/%3E%3Cpath d=%27M60 270 l16 -26 l16 26 z%27 fill=%27%23ffe9a6%27 stroke-linejoin=%27round%27/%3E%3C/g%3E%3C/svg%3E");--bg-size:340px 340px;--text:#111;--muted:#262626;--surface:#fff;--header-bg:#ffd23f;--accent:#ff5fa2;--on-accent:#111;--accent-2:#ffd23f;--accent-3:#00c2c7;--kicker:#111;--link:#111;--border-color:#111;--border-w:3px;--radius:4px;--shadow:7px 7px 0 #111;--shadow-hover:10px 10px 0 #111;--chip-bg:#00c2c7;--chip-text:#111;--font-body:"Roboto Mono", ui-monospace, monospace;--font-display:"Bungee", ui-sans-serif, system-ui, sans-serif;--display-weight:400;--display-transform:uppercase;--display-tracking:0;--display-size:clamp(2rem, 5.5vw, 3.6rem)}[data-theme=pixel]{--bg:#1a1c2c;--bg-image:radial-gradient(#333c57 2px, transparent 2px);--bg-size:16px 16px;--text:#f4f4f4;--muted:#c9cbd9;--surface:#262b44;--header-bg:#1a1c2c;--accent:#ffcd75;--on-accent:#1a1c2c;--accent-2:#ef7d57;--accent-3:#38b764;--kicker:#73eff7;--link:#73eff7;--border-color:#f4f4f4;--border-w:4px;--radius:0;--shadow:6px 6px 0 #0b0c16;--shadow-hover:8px 8px 0 #0b0c16;--chip-bg:#3b5dc9;--chip-text:#f4f4f4;--font-body:"VT323", ui-monospace, monospace;--font-display:"Press Start 2P", ui-monospace, monospace;--display-weight:400;--display-tracking:0;--display-size:clamp(1.4rem, 4vw, 2.4rem);--body-size:1.45rem}[data-theme=groovy]{--bg:#e9e6df;--bg-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%27220%27 height=%27220%27%3E%3Cfilter id=%27n%27%3E%3CfeTurbulence type=%27fractalNoise%27 baseFrequency=%27.85%27 numOctaves=%273%27 stitchTiles=%27stitch%27/%3E%3CfeColorMatrix values=%270 0 0 0 .12 0 0 0 0 .29 0 0 0 0 .2 0 0 0 .11 0%27/%3E%3C/filter%3E%3Crect width=%27100%25%27 height=%27100%25%27 filter=%27url%28%23n%29%27/%3E%3C/svg%3E");--bg-size:220px 220px;--text:#1e4a32;--muted:#3d5c4a;--surface:#f4f1ea;--header-bg:#e9e6df;--accent:#e3a32b;--on-accent:#1e4a32;--accent-2:#1e4a32;--accent-3:#e3a32b;--plus-fg:#f4f1ea;--kicker:#1e4a32;--link:#1e4a32;--border-color:#1e4a32;--border-w:2px;--radius:14px;--shadow:6px 6px 0 #e3a32b;--shadow-hover:9px 9px 0 #e3a32b;--chip-bg:#f4f1ea;--chip-text:#1e4a32;--font-body:"Roboto Mono", ui-monospace, monospace;--font-display:"Fraunces", Georgia, serif;--display-weight:900;--display-tracking:-.01em;--display-size:clamp(2.6rem, 7vw, 4.75rem)}[data-theme=retro-poster]{--bg:#f1e4c8;--bg-image:radial-gradient(#c8442b21 1.2px, transparent 1.6px), url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%27220%27 height=%27220%27%3E%3Cfilter id=%27n%27%3E%3CfeTurbulence type=%27fractalNoise%27 baseFrequency=%27.85%27 numOctaves=%273%27 stitchTiles=%27stitch%27/%3E%3CfeColorMatrix values=%270 0 0 0 .36 0 0 0 0 .24 0 0 0 0 .12 0 0 0 .1 0%27/%3E%3C/filter%3E%3Crect width=%27100%25%27 height=%27100%25%27 filter=%27url%28%23n%29%27/%3E%3C/svg%3E");--bg-size:12px 12px, 220px 220px;--text:#1d2a44;--muted:#3b4560;--surface:#f8eedb;--header-bg:#1d2a44;--accent:#c8442b;--on-accent:#f8eedb;--accent-2:#e2a63b;--accent-3:#2f6f6a;--bar-track:#f1e4c8;--bar-fill:#c8442b;--kicker:#b13a23;--link:#b13a23;--border-color:#1d2a44;--border-w:4px;--radius:0;--shadow:6px 6px 0 #1d2a44;--shadow-hover:9px 9px 0 #1d2a44;--chip-bg:#e2a63b;--chip-text:#1d2a44;--font-body:"Roboto Mono", ui-monospace, monospace;--font-display:"Alfa Slab One", Georgia, serif;--display-weight:400;--display-transform:uppercase;--display-tracking:.02em;--display-size:clamp(2.3rem, 6.5vw, 4.25rem)}html{scroll-behavior:smooth;scroll-padding-top:6rem}html,body{margin:0}body{background-color:var(--bg);background-image:var(--bg-image);background-size:var(--bg-size);color:var(--text);font-family:var(--font-body);font-size:var(--body-size);background-attachment:fixed;line-height:1.6}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn{transition:none}}@media print{html[data-theme]{--bg:#fff;--bg-image:none;--text:#000;--muted:#333;--surface:transparent;--kicker:#000;--border-color:#000;--border-w:1px;--shadow:none;--backdrop:none;--font-body:"Inter", Arial, sans-serif;--font-display:"Inter", Arial, sans-serif;--display-weight:800;--display-transform:none;--display-tracking:0;--body-size:10.5pt}.site-header,.site-footer,.no-print{display:none!important}.card{box-shadow:none!important;clip-path:none!important;background:0 0!important;border:0!important;margin:0!important;padding:0!important}.display,.section-title{text-shadow:none!important;color:#000!important;background:0 0!important}.cv-job{-moz-column-break-inside:avoid;break-inside:avoid}}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-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)}}@keyframes pulse{50%{opacity:.5}}

