html{--mat-sys-background: #fef8fc;--mat-sys-error: #ba1a1a;--mat-sys-error-container: #ffdad6;--mat-sys-inverse-on-surface: #f5eff4;--mat-sys-inverse-primary: #d5baff;--mat-sys-inverse-surface: #323033;--mat-sys-on-background: #1d1b1e;--mat-sys-on-error: #ffffff;--mat-sys-on-error-container: #93000a;--mat-sys-on-primary-container: #5f00c0;--mat-sys-on-primary-fixed: #270057;--mat-sys-on-primary-fixed-variant: #5f00c0;--mat-sys-on-secondary-container: #4b4357;--mat-sys-on-secondary-fixed: #1f182a;--mat-sys-on-secondary-fixed-variant: #4b4357;--mat-sys-on-surface: #1d1b1e;--mat-sys-on-surface-variant: #49454e;--mat-sys-on-tertiary: #ffffff;--mat-sys-on-tertiary-container: #723600;--mat-sys-on-tertiary-fixed: #311300;--mat-sys-on-tertiary-fixed-variant: #723600;--mat-sys-outline: #7b757f;--mat-sys-outline-variant: #cbc4cf;--mat-sys-primary: #7d00fa;--mat-sys-primary-container: #ecdcff;--mat-sys-primary-fixed: #ecdcff;--mat-sys-primary-fixed-dim: #d5baff;--mat-sys-scrim: #000000;--mat-sys-secondary: #645b70;--mat-sys-secondary-container: #eadef7;--mat-sys-secondary-fixed: #eadef7;--mat-sys-secondary-fixed-dim: #cec2db;--mat-sys-shadow: #000000;--mat-sys-surface: #fef8fc;--mat-sys-surface-bright: #fef8fc;--mat-sys-surface-container: #f2ecf1;--mat-sys-surface-container-high: #ede6eb;--mat-sys-surface-container-highest: #e6e1e6;--mat-sys-surface-container-low: #f8f2f6;--mat-sys-surface-dim: #ded8dd;--mat-sys-surface-tint: #7d00fa;--mat-sys-surface-variant: #e8e0eb;--mat-sys-tertiary: #964900;--mat-sys-tertiary-container: #ffdcc7;--mat-sys-tertiary-fixed: #ffdcc7;--mat-sys-tertiary-fixed-dim: #ffb787;--mat-sys-neutral-variant20: #332f37;--mat-sys-neutral10: #1d1b1e;--mat-sys-level0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-body-large: 400 1rem / 1.5rem Inter, sans-serif;--mat-sys-body-large-font: Inter, sans-serif;--mat-sys-body-large-line-height: 1.5rem;--mat-sys-body-large-size: 1rem;--mat-sys-body-large-tracking: .031rem;--mat-sys-body-large-weight: 400;--mat-sys-body-medium: 400 .875rem / 1.25rem Inter, sans-serif;--mat-sys-body-medium-font: Inter, sans-serif;--mat-sys-body-medium-line-height: 1.25rem;--mat-sys-body-medium-size: .875rem;--mat-sys-body-medium-tracking: .016rem;--mat-sys-body-medium-weight: 400;--mat-sys-body-small: 400 .75rem / 1rem Inter, sans-serif;--mat-sys-body-small-font: Inter, sans-serif;--mat-sys-body-small-line-height: 1rem;--mat-sys-body-small-size: .75rem;--mat-sys-body-small-tracking: .025rem;--mat-sys-body-small-weight: 400;--mat-sys-display-large: 400 3.562rem / 4rem Sora, sans-serif;--mat-sys-display-large-font: Sora, sans-serif;--mat-sys-display-large-line-height: 4rem;--mat-sys-display-large-size: 3.562rem;--mat-sys-display-large-tracking: -.016rem;--mat-sys-display-large-weight: 400;--mat-sys-display-medium: 400 2.812rem / 3.25rem Sora, sans-serif;--mat-sys-display-medium-font: Sora, sans-serif;--mat-sys-display-medium-line-height: 3.25rem;--mat-sys-display-medium-size: 2.812rem;--mat-sys-display-medium-tracking: 0;--mat-sys-display-medium-weight: 400;--mat-sys-display-small: 400 2.25rem / 2.75rem Sora, sans-serif;--mat-sys-display-small-font: Sora, sans-serif;--mat-sys-display-small-line-height: 2.75rem;--mat-sys-display-small-size: 2.25rem;--mat-sys-display-small-tracking: 0;--mat-sys-display-small-weight: 400;--mat-sys-headline-large: 400 2rem / 2.5rem Sora, sans-serif;--mat-sys-headline-large-font: Sora, sans-serif;--mat-sys-headline-large-line-height: 2.5rem;--mat-sys-headline-large-size: 2rem;--mat-sys-headline-large-tracking: 0;--mat-sys-headline-large-weight: 400;--mat-sys-headline-medium: 400 1.75rem / 2.25rem Sora, sans-serif;--mat-sys-headline-medium-font: Sora, sans-serif;--mat-sys-headline-medium-line-height: 2.25rem;--mat-sys-headline-medium-size: 1.75rem;--mat-sys-headline-medium-tracking: 0;--mat-sys-headline-medium-weight: 400;--mat-sys-headline-small: 400 1.5rem / 2rem Sora, sans-serif;--mat-sys-headline-small-font: Sora, sans-serif;--mat-sys-headline-small-line-height: 2rem;--mat-sys-headline-small-size: 1.5rem;--mat-sys-headline-small-tracking: 0;--mat-sys-headline-small-weight: 400;--mat-sys-label-large: 700 .875rem / 1.25rem Inter, sans-serif;--mat-sys-label-large-font: Inter, sans-serif;--mat-sys-label-large-line-height: 1.25rem;--mat-sys-label-large-size: .875rem;--mat-sys-label-large-tracking: .006rem;--mat-sys-label-large-weight: 700;--mat-sys-label-large-weight-prominent: 800;--mat-sys-label-medium: 700 .75rem / 1rem Inter, sans-serif;--mat-sys-label-medium-font: Inter, sans-serif;--mat-sys-label-medium-line-height: 1rem;--mat-sys-label-medium-size: .75rem;--mat-sys-label-medium-tracking: .031rem;--mat-sys-label-medium-weight: 700;--mat-sys-label-medium-weight-prominent: 800;--mat-sys-label-small: 700 .688rem / 1rem Inter, sans-serif;--mat-sys-label-small-font: Inter, sans-serif;--mat-sys-label-small-line-height: 1rem;--mat-sys-label-small-size: .688rem;--mat-sys-label-small-tracking: .031rem;--mat-sys-label-small-weight: 700;--mat-sys-title-large: 400 1.375rem / 1.75rem Sora, sans-serif;--mat-sys-title-large-font: Sora, sans-serif;--mat-sys-title-large-line-height: 1.75rem;--mat-sys-title-large-size: 1.375rem;--mat-sys-title-large-tracking: 0;--mat-sys-title-large-weight: 400;--mat-sys-title-medium: 700 1rem / 1.5rem Inter, sans-serif;--mat-sys-title-medium-font: Inter, sans-serif;--mat-sys-title-medium-line-height: 1.5rem;--mat-sys-title-medium-size: 1rem;--mat-sys-title-medium-tracking: .009rem;--mat-sys-title-medium-weight: 700;--mat-sys-title-small: 700 .875rem / 1.25rem Inter, sans-serif;--mat-sys-title-small-font: Inter, sans-serif;--mat-sys-title-small-line-height: 1.25rem;--mat-sys-title-small-size: .875rem;--mat-sys-title-small-tracking: .006rem;--mat-sys-title-small-weight: 700;--mat-sys-corner-extra-large: 28px;--mat-sys-corner-extra-large-top: 28px 28px 0 0;--mat-sys-corner-extra-small: 4px;--mat-sys-corner-extra-small-top: 4px 4px 0 0;--mat-sys-corner-full: 9999px;--mat-sys-corner-large: 16px;--mat-sys-corner-large-end: 0 16px 16px 0;--mat-sys-corner-large-start: 16px 0 0 16px;--mat-sys-corner-large-top: 16px 16px 0 0;--mat-sys-corner-medium: 12px;--mat-sys-corner-none: 0;--mat-sys-corner-small: 8px;--mat-sys-dragged-state-layer-opacity: .16;--mat-sys-focus-state-layer-opacity: .12;--mat-sys-hover-state-layer-opacity: .08;--mat-sys-pressed-state-layer-opacity: .12;--mat-sys-primary: #5b2a6b;--mat-sys-on-primary: #ffffff;--mat-sys-primary-container: #eed9e3;--mat-sys-on-primary-container: #2a1430;--mat-sys-primary-fixed: #eed9e3;--mat-sys-primary-fixed-dim: #d9aee8;--mat-sys-on-primary-fixed: #2a1430;--mat-sys-on-primary-fixed-variant: #6e5168;--mat-sys-inverse-primary: #d9aee8;--mat-sys-surface-tint: #5b2a6b;--mat-sys-secondary: #6e5168;--mat-sys-on-secondary: #ffffff;--mat-sys-secondary-container: #f2e3ec;--mat-sys-on-secondary-container: #2a1430;--mat-sys-secondary-fixed: #f2e3ec;--mat-sys-secondary-fixed-dim: #d9b8cc;--mat-sys-on-secondary-fixed: #2a1430;--mat-sys-on-secondary-fixed-variant: #6e5168;--mat-sys-tertiary: #f2b01e;--mat-sys-on-tertiary: #2a1430;--mat-sys-tertiary-container: #ffecca;--mat-sys-on-tertiary-container: #261900;--mat-sys-tertiary-fixed: #ffecca;--mat-sys-tertiary-fixed-dim: #f2b01e;--mat-sys-on-tertiary-fixed: #261900;--mat-sys-on-tertiary-fixed-variant: #5a3c00;--mat-sys-background: #f7eff3;--mat-sys-on-background: #2a1430;--mat-sys-surface: #ffffff;--mat-sys-on-surface: #2a1430;--mat-sys-surface-variant: #eed9e3;--mat-sys-on-surface-variant: #6e5168;--mat-sys-surface-bright: #ffffff;--mat-sys-surface-dim: #e4d1da;--mat-sys-surface-container-lowest: #ffffff;--mat-sys-surface-container-low: #f7eff3;--mat-sys-surface-container: #f2e4ea;--mat-sys-surface-container-high: #eed9e3;--mat-sys-surface-container-highest: #e5ccd6;--mat-sys-inverse-surface: #2a1430;--mat-sys-inverse-on-surface: #f7eff3;--mat-sys-outline: #8a7086;--mat-sys-outline-variant: #ddd0e0;--mat-sys-display-large: 800 3.562rem/4rem "Sora", sans-serif;--mat-sys-display-large-font: "Sora", sans-serif;--mat-sys-display-large-weight: 800;--mat-sys-display-medium: 800 2.812rem/3.25rem "Sora", sans-serif;--mat-sys-display-medium-font: "Sora", sans-serif;--mat-sys-display-medium-weight: 800;--mat-sys-display-small: 700 2.25rem/2.75rem "Sora", sans-serif;--mat-sys-display-small-font: "Sora", sans-serif;--mat-sys-display-small-weight: 700;--mat-sys-headline-large: 700 2rem/2.5rem "Sora", sans-serif;--mat-sys-headline-large-font: "Sora", sans-serif;--mat-sys-headline-large-weight: 700;--mat-sys-headline-medium: 700 1.75rem/2.25rem "Sora", sans-serif;--mat-sys-headline-medium-font: "Sora", sans-serif;--mat-sys-headline-medium-weight: 700;--mat-sys-headline-small: 700 1.5rem/2rem "Sora", sans-serif;--mat-sys-headline-small-font: "Sora", sans-serif;--mat-sys-headline-small-weight: 700;--accent: #5b2a6b;--accent2: #f2b01e;--ink: #2a1430;--muted: #6e5168;--surface: #ffffff;--surface2: #eed9e3;--dark: #2a1430;--onDark: #f7eff3;--line: rgba(42, 20, 48, .12);--font-mono: "IBM Plex Mono", monospace;--mat-sys-label-small-font: "IBM Plex Mono", monospace}:root{--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 16px;--radius-xl: 20px;--radius-2xl: 28px;--radius-full: 9999px}.container{width:100%;max-width:1080px;margin-inline:auto;padding-inline:var(--space-6);container-type:inline-size;container-name:layout}@media(max-width:600px){.container{padding-inline:var(--space-4)}}@media(min-width:860px){@keyframes edu-highlight{0%,40%{border-color:var(--accent);box-shadow:0 0 0 3px #5b2a6b1f}to{border-color:var(--line, rgba(42, 20, 48, .12));box-shadow:none}}#education:target{animation:edu-highlight 2.5s ease forwards}}.defer-placeholder{min-height:var(--defer-placeholder-height, 20rem);border-radius:var(--radius-lg);background:var(--surface-variant, rgba(42, 20, 48, .04))}@media(prefers-reduced-motion:no-preference){.defer-placeholder{animation:defer-pulse 1.6s ease-in-out infinite}}@media(prefers-reduced-motion:no-preference){@keyframes defer-pulse{0%,to{opacity:1}50%{opacity:.55}}}.section-title{font-family:var(--font-mono, "IBM Plex Mono", monospace);font-size:.75rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--muted, #6e5168);margin:0 0 var(--space-6)}.section-title:after{content:"";display:block;height:1px;background:var(--line, rgba(42, 20, 48, .12));margin-top:var(--space-2)}.bento-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4);container-type:inline-size;container-name:bento}@media(max-width:860px){.bento-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.bento-grid{grid-template-columns:1fr;gap:var(--space-3)}}.bento-tile{border-radius:var(--radius-xl);padding:var(--space-8);overflow:hidden;transition:background-color .2s ease;container-type:inline-size;container-name:tile}.bento-tile:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.span-2{grid-column:span 2}.span-4{grid-column:span 4}@container bento (max-width: 860px){.span-4{grid-column:span 2}}@container bento (max-width: 480px){.span-2,.span-4{grid-column:span 1}.bento-tile{padding:var(--space-6)}}.tile-accent{background-color:var(--accent, #5b2a6b);color:var(--mat-sys-on-primary, #ffffff)}.tile-accent2{background-color:var(--accent2, #f2b01e);color:var(--ink, #2a1430)}.tile-dark{background-color:var(--dark, #2a1430);color:var(--onDark, #f7eff3)}.tile-surface{background-color:var(--surface, #ffffff);color:var(--ink, #2a1430);border:1px solid var(--line, rgba(42, 20, 48, .12))}.tile-stat{background-color:var(--surface2, #eed9e3);color:var(--ink, #2a1430)}@media(prefers-reduced-motion:no-preference){@keyframes rise-fade{0%{opacity:0;transform:translateY(1.5rem)}to{opacity:1;transform:translateY(0)}}.reveal-target{opacity:0;transform:translateY(1.5rem);will-change:opacity,transform}.reveal-target:target{opacity:1;transform:none;will-change:auto}.reveal-target.is-revealed{animation:rise-fade .52s cubic-bezier(.22,1,.36,1) forwards;will-change:auto}}.btn-cta{display:inline-flex;align-items:center;padding:var(--space-2) var(--space-4);font-size:.875rem;font-weight:600;color:#fff;background:var(--accent);text-decoration:none;border:none;border-radius:var(--radius-full);cursor:pointer;transition:background .15s ease}.btn-cta:hover{background:color-mix(in srgb,var(--accent) 80%,#000)}.btn-cta:focus-visible{outline:3px solid var(--accent2);outline-offset:2px}.btn-ghost{display:inline-flex;align-items:center;padding:var(--space-2) var(--space-4);font-size:.875rem;font-weight:600;color:var(--ink);background:transparent;text-decoration:none;border:1.5px solid var(--line);border-radius:var(--radius-full);cursor:pointer;transition:border-color .15s ease,color .15s ease}.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.btn-ghost:focus-visible{outline:3px solid var(--accent2);outline-offset:2px}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--radius-sm)}.skip-link{position:absolute;inset-block-start:-100%;inset-inline-start:var(--space-4);z-index:200;padding:var(--space-2) var(--space-4);background:var(--accent);color:#fff;font-size:.875rem;font-weight:600;border-radius:0 0 var(--radius-md) var(--radius-md);text-decoration:none;white-space:nowrap}.skip-link:focus-visible{inset-block-start:0;outline:3px solid var(--accent2);outline-offset:2px}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{margin:0;font-family:var(--mat-sys-body-large-font, "Inter", sans-serif);font-size:var(--mat-sys-body-large-size, 1rem);line-height:var(--mat-sys-body-large-line-height, 1.5rem);background-color:var(--mat-sys-background, #f7eff3);color:var(--mat-sys-on-background, #2a1430);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}section[id]{scroll-margin-top:4rem}
