@charset "UTF-8";@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url("./media/space-grotesk-latin-500-normal-GESQWJQV.woff2") format("woff2"),url("./media/space-grotesk-latin-500-normal-HV4TE4RA.woff") format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url("./media/space-grotesk-latin-700-normal-I3MXRIUZ.woff2") format("woff2"),url("./media/space-grotesk-latin-700-normal-6Z7GHSI6.woff") format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url("./media/ibm-plex-sans-latin-400-normal-COQVXTP6.woff2") format("woff2"),url("./media/ibm-plex-sans-latin-400-normal-JC3YNCCZ.woff") format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url("./media/ibm-plex-sans-latin-500-normal-JTONHBWS.woff2") format("woff2"),url("./media/ibm-plex-sans-latin-500-normal-7DOULDHV.woff") format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url("./media/ibm-plex-sans-latin-600-normal-DTNZULF4.woff2") format("woff2"),url("./media/ibm-plex-sans-latin-600-normal-B3O423MA.woff") format("woff")}:root{color-scheme:light;--color-brand-blue: #1e3a8a;--color-brand-red: #dc2626;--color-brand-red-hover: #b91c1c;--color-on-brand: #ffffff;--color-on-brand-muted: rgba(255, 255, 255, .85);--color-brand-ink: #0a1230;--color-available: #22c55e;--color-unavailable: #94a3b8;--color-primary: #1e3a8a;--color-heading: #1e3a8a;--color-accent: #dc2626;--color-accent-soft: #fee2e2;--color-accent-text: #b91c1c;--color-on-primary: #ffffff;--color-background: #eef2fb;--color-surface: #f3f4f6;--color-text: #111827;--color-text-muted: #4b5563;--color-border: #d6deef;--color-tag-bg: rgba(30, 58, 138, .08);--color-status-bg: #fef3c7;--color-status-text: #92400e;--color-focus: #1e3a8a;--color-focus-on-brand: #ffffff;--glass-bg: rgba(255, 255, 255, .62);--glass-bg-fallback: #ffffff;--glass-border: rgba(30, 58, 138, .14);--glass-shadow: 0 8px 32px rgba(15, 23, 42, .08);--glass-on-brand-bg: rgba(255, 255, 255, .14);--glass-on-brand-border: rgba(255, 255, 255, .3);--halo-blue: rgba(59, 91, 219, .14);--halo-red: rgba(220, 38, 38, .08);--pattern-dot: rgba(255, 255, 255, .16);--shadow-lift: 0 16px 40px rgba(15, 23, 42, .14);--shadow-ring: 0 2px 4px rgba(15, 23, 42, .16);--color-tile-bg: rgba(30, 58, 138, .06);--content-width: 77.5rem;--content-gutter: 1.5rem;--font-heading: "Space Grotesk", system-ui, sans-serif;--font-body: "IBM Plex Sans", system-ui, sans-serif}@media(max-width:639.98px){:root{--content-gutter: 1rem}}:root[data-theme=dark]{color-scheme:dark;--color-primary: #1e3a8a;--color-heading: #ffffff;--color-accent: #f87171;--color-accent-soft: rgba(220, 38, 38, .18);--color-accent-text: #fca5a5;--color-on-primary: #ffffff;--color-background: #0a1230;--color-surface: #131c45;--color-text: #f1f5f9;--color-text-muted: #cbd5e1;--color-border: #2a3563;--color-tag-bg: rgba(255, 255, 255, .08);--color-status-bg: rgba(251, 191, 36, .15);--color-status-text: #fcd34d;--color-focus: #93c5fd;--glass-bg: rgba(19, 28, 69, .55);--glass-bg-fallback: #131c45;--glass-border: rgba(255, 255, 255, .12);--glass-shadow: 0 8px 32px rgba(0, 0, 0, .35);--halo-blue: rgba(37, 99, 235, .32);--halo-red: rgba(220, 38, 38, .2);--shadow-lift: 0 16px 40px rgba(0, 0, 0, .45);--shadow-ring: 0 2px 4px rgba(0, 0, 0, .45);--color-tile-bg: rgba(255, 255, 255, .06)}*,*:before,*:after{box-sizing:border-box}body{position:relative;margin:0;overflow-x:clip;font-family:var(--font-body);line-height:1.5;color:var(--color-text);background-color:var(--color-background)}body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(circle at 0% 0%,var(--halo-blue),transparent 45%),radial-gradient(circle at 100% 100%,var(--halo-red),transparent 45%)}h1,h2,h3{font-family:var(--font-heading);color:var(--color-heading)}:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.glass{border:1px solid var(--glass-border);background:var(--glass-bg-fallback);box-shadow:var(--glass-shadow)}@supports (backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px)){.glass{background:var(--glass-bg);-webkit-backdrop-filter:blur(18px) saturate(1.4);backdrop-filter:blur(18px) saturate(1.4)}}.brand-pattern{--color-focus: var(--color-focus-on-brand);background-color:var(--color-brand-blue);background-image:radial-gradient(var(--pattern-dot) 1.2px,transparent 1.6px);background-size:18px 18px;color:var(--color-on-brand)}.glass--on-brand{--glass-bg: var(--glass-on-brand-bg);--glass-bg-fallback: var(--glass-on-brand-bg);--glass-border: var(--glass-on-brand-border);--glass-shadow: none;color:var(--color-on-brand)}.button{display:inline-flex;align-items:center;justify-content:center;border:0;background:none;font-size:inherit;cursor:pointer;min-height:2.75rem;padding:.625rem 1.5rem;border-radius:999px;font-family:var(--font-heading);font-weight:700;text-decoration:none;transition:background-color .2s ease,transform .2s ease}.button--primary{background-color:var(--color-brand-red);color:var(--color-on-brand)}.button--primary:hover{background-color:var(--color-brand-red-hover);transform:translateY(-1px)}.button--secondary{border:2px solid var(--color-accent-text);color:var(--color-accent-text)}.button--secondary:hover{background-color:var(--color-accent-soft)}@media(prefers-reduced-motion:no-preference){.button:active{transform:scale(.97)}}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.link{font-weight:600;color:var(--color-accent-text);text-decoration:none;background:linear-gradient(currentColor,currentColor) no-repeat 0 100%/0 2px;transition:background-size .25s ease}.link:hover,.link:focus-visible{background-size:100% 2px}.link-arrow{display:inline-block;transition:transform .2s ease}a:hover .link-arrow,a:focus-visible .link-arrow{transform:translate(2px,-2px)}.bullets{margin:0;padding-left:1.125rem}.bullets li::marker{color:var(--color-brand-red)}.bullets li+li{margin-top:.25rem}@supports (animation-timeline: view()){@media(prefers-reduced-motion:no-preference){.reveal{animation:reveal linear both;animation-timeline:view();animation-range:entry 0% entry 40%}}}@keyframes reveal{0%{opacity:0;transform:translateY(1.5rem)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:no-preference){.stagger--armed>*{opacity:0}.stagger--in>*{animation:stagger-in .45s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--stagger-index, 0) * 70ms)}}@keyframes stagger-in{0%{opacity:0;transform:translateY(.75rem)}to{opacity:1;transform:none}}::view-transition-old(root),::view-transition-new(root){animation-duration:.18s}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important;scroll-behavior:auto!important}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}@page{size:A4 portrait;margin:14mm}@media print{:root:has(app-cv-page),:root[data-theme=dark]:has(app-cv-page){color-scheme:light;font-size:12.5px;--color-heading: #1e3a8a;--color-accent-text: #b91c1c;--color-background: #ffffff;--color-text: #111827;--color-text-muted: #4b5563;--color-border: #d6deef;print-color-adjust:exact;-webkit-print-color-adjust:exact}:root:has(app-cv-page) body,:root[data-theme=dark]:has(app-cv-page) body{background:none}:root:has(app-cv-page) body:before,:root:has(app-cv-page) app-header,:root:has(app-cv-page) app-footer,:root[data-theme=dark]:has(app-cv-page) body:before,:root[data-theme=dark]:has(app-cv-page) app-header,:root[data-theme=dark]:has(app-cv-page) app-footer{display:none}:root:has(app-cv-page) *,:root:has(app-cv-page) *:before,:root:has(app-cv-page) *:after,:root[data-theme=dark]:has(app-cv-page) *,:root[data-theme=dark]:has(app-cv-page) *:before,:root[data-theme=dark]:has(app-cv-page) *:after{animation:none!important;transition:none!important}:root:has(app-cv-page) .reveal,:root:has(app-cv-page) .stagger--armed>*,:root[data-theme=dark]:has(app-cv-page) .reveal,:root[data-theme=dark]:has(app-cv-page) .stagger--armed>*{opacity:1;transform:none}:root:has(app-cv-page) .timeline,:root[data-theme=dark]:has(app-cv-page) .timeline{padding-left:1rem;border-left:2px solid var(--color-brand-red)}:root:has(app-cv-page) .timeline:before,:root:has(app-cv-page) .timeline__dot,:root[data-theme=dark]:has(app-cv-page) .timeline:before,:root[data-theme=dark]:has(app-cv-page) .timeline__dot{display:none}:root:has(app-cv-page) .timeline__entry,:root[data-theme=dark]:has(app-cv-page) .timeline__entry{position:static}:root:has(app-cv-page) .cv-projects,:root[data-theme=dark]:has(app-cv-page) .cv-projects{display:block}:root:has(app-cv-page) .cv-projects__item+.cv-projects__item,:root[data-theme=dark]:has(app-cv-page) .cv-projects__item+.cv-projects__item{margin-top:4mm}:root:has(app-cv-page) .timeline__entry,:root:has(app-cv-page) .cv-projects__item,:root[data-theme=dark]:has(app-cv-page) .timeline__entry,:root[data-theme=dark]:has(app-cv-page) .cv-projects__item{break-inside:avoid}}
