:root{--palette-black: #010101;--palette-mercury: #e4e4e4;--palette-purple-heart: #5f22d9;--palette-christalle: #2c016d;--palette-dusty-gray: #9c9c9c;--palette-galliano: #d7ad0d;--palette-scorpion: #5b5b5b;--palette-viking: #51d6ca;--palette-viking-accessible: #1a857c;--palette-heliotrope: #ac73ff;--palette-persian-red: #c82b28;--palette-mist: #e9e7f0;--color-bg: var(--palette-mist);--color-surface: #ffffff;--color-text: var(--palette-black);--color-text-muted: var(--palette-scorpion);--color-accent: var(--palette-purple-heart);--color-accent-pop: var(--palette-viking);--color-accent-dark: var(--palette-christalle);--color-accent-soft: #f0eaff;--color-link: var(--palette-purple-heart);--color-link-hover: var(--palette-christalle);--color-border: #d8d4e3;--footer-on-dark-muted: #c5c1d0;--font-sans: "Work Sans", system-ui, sans-serif;--font-display: var(--font-sans);--font-body: var(--font-sans);--weight-normal: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--weight-extrabold: 800;--text-xs: clamp(.75rem, .72rem + .15vw, .8125rem);--text-sm: clamp(.875rem, .84rem + .2vw, .9375rem);--text-base: clamp(1rem, .96rem + .25vw, 1.0625rem);--text-md: clamp(1.125rem, 1.05rem + .4vw, 1.25rem);--text-lg: clamp(1.25rem, 1.1rem + .65vw, 1.5rem);--text-xl: clamp(1.5rem, 1.25rem + 1vw, 1.875rem);--text-2xl: clamp(1.875rem, 1.5rem + 1.4vw, 2.375rem);--text-3xl: clamp(2.25rem, 1.75rem + 2vw, 3rem);--text-4xl: clamp(2.75rem, 2rem + 2.75vw, 3.75rem);--leading-tight: 1.15;--leading-snug: 1.3;--leading-normal: 1.5;--leading-relaxed: 1.6;--measure: 65ch;--measure-narrow: 45ch;--tracking-tight: -.02em;--tracking-normal: 0;--tracking-wide: .04em;--space-xs: .5rem;--space-sm: 1rem;--space-md: 1.5rem;--space-lg: 2.5rem;--space-xl: 4rem;--space-2xl: 6rem;--content-max: 72rem;--radius-sm: .375rem;--radius-md: .75rem;--ease-out: cubic-bezier(.22, 1, .36, 1);--duration-fast: .2s;--duration-normal: .4s}@media(prefers-reduced-motion:reduce){:root{--duration-fast: 0ms;--duration-normal: 0ms}}.modern{font-family:var(--font-body);font-size:var(--text-base);font-weight:400;line-height:var(--leading-normal);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.modern *,.modern *:before,.modern *:after{box-sizing:border-box}.modern a{color:var(--color-link);text-decoration-thickness:1px;text-underline-offset:.18em;transition:color var(--duration-fast) var(--ease-out)}.modern a:hover{color:var(--color-link-hover);text-decoration:none}.modern p{max-width:var(--measure);margin:0}.modern .tag{display:inline-block;font-family:var(--font-body);font-size:var(--text-xs);font-weight:600;letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-text-muted);background:var(--color-accent-soft);padding:.3em .7em;border-radius:var(--radius-sm)}.modern .tag-list{display:flex;flex-wrap:wrap;gap:var(--space-xs);list-style:none;padding:0;margin:0}.modern h1,.modern .text-display{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:var(--weight-extrabold);line-height:var(--leading-tight);letter-spacing:-.025em;color:var(--palette-black);text-wrap:balance}.modern h2{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-extrabold);line-height:var(--leading-tight);letter-spacing:-.02em;color:var(--palette-purple-heart);text-wrap:balance}.modern h3{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-bold);line-height:var(--leading-snug);letter-spacing:-.015em;color:var(--palette-black)}.modern .text-pop{color:var(--palette-viking)}.modern .text-accent{color:var(--palette-purple-heart)}.modern .text-lead{font-size:var(--text-md);font-weight:var(--weight-normal);line-height:var(--leading-snug);color:var(--color-text-muted);max-width:var(--measure-narrow)}.modern .text-body{font-size:var(--text-base);line-height:var(--leading-normal);max-width:var(--measure)}.modern .text-small{font-size:var(--text-sm);line-height:var(--leading-normal)}.modern .text-label{font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-text-muted)}.modern .prose{font-size:var(--text-base);line-height:var(--leading-relaxed);max-width:var(--measure);color:var(--color-text)}.modern .prose p{margin:0 0 1em}.modern .prose p:last-child{margin-bottom:0}@keyframes motion-cursor-blink{0%,to{opacity:1}50%{opacity:0}}@keyframes motion-fade-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.motion-enter{animation:motion-fade-up .6s var(--ease-out) both}.motion-enter--delay-1{animation-delay:80ms}.motion-enter--delay-2{animation-delay:.16s}.motion-enter--delay-3{animation-delay:.24s}.motion-reveal{opacity:0;transform:translateY(1.25rem);transition:opacity .7s var(--ease-out),transform .7s var(--ease-out);transition-delay:var(--motion-delay, 0ms)}.motion-reveal.is-visible{opacity:1;transform:translateY(0)}.motion-reveal--delay-1{--motion-delay: 80ms}.motion-reveal--delay-2{--motion-delay: .16s}.motion-reveal--delay-3{--motion-delay: .24s}.motion-reveal--image{background:var(--color-accent-soft)}.motion-reveal--image img,.motion-reveal--image .story-image__img{opacity:0;transform:scale(1.015);transition:opacity .65s var(--ease-out),transform .85s var(--ease-out);transition-delay:calc(var(--motion-delay, 0ms) + 80ms)}.motion-reveal--image.is-visible.is-loaded img,.motion-reveal--image.is-visible.is-loaded .story-image__img,.motion-reveal--image.is-visible img.is-loaded,.motion-reveal--image.is-visible .story-image__img.is-loaded{opacity:1;transform:scale(1)}.motion-reveal--image.is-visible.is-loaded,.motion-reveal--image.is-visible:has(img.is-loaded),.motion-reveal--image.is-visible:has(.story-image__img.is-loaded){background:transparent;transition:background .5s var(--ease-out)}::view-transition-old(root),::view-transition-new(root){animation-duration:.22s;animation-timing-function:var(--ease-out)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important}.motion-enter,.motion-enter--delay-1,.motion-enter--delay-2,.motion-enter--delay-3{animation:none;opacity:1;transform:none}.motion-reveal,.motion-reveal--delay-1,.motion-reveal--delay-2,.motion-reveal--delay-3,.motion-reveal.is-visible{opacity:1;transform:none;transition:none;background:transparent}.motion-reveal--image img,.motion-reveal--image .story-image__img,.motion-reveal--image.is-visible img,.motion-reveal--image.is-visible .story-image__img{opacity:1;transform:none;transition:none}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}.category-card,.project-card,.not-found__link,.archive-filter__btn,.story-hero__back,.story-footer__back,.story-footer__home{transition:none!important}.category-card:hover,.project-card:hover{transform:none}.story-hero__title-cursor{animation:none!important;opacity:.6}}.category-grid--bento{display:grid;grid-template-columns:1fr;gap:var(--space-md)}.category-card--wide .category-card__image,.category-card--tall .category-card__image,.category-card--standard .category-card__image{aspect-ratio:4 / 3}@media(min-width:900px){.category-grid--bento{grid-template-columns:repeat(3,1fr);gap:var(--space-lg);align-items:stretch}.category-card--wide,.category-card--tall,.category-card--standard{flex-direction:column}.category-card--wide .category-card__image,.category-card--tall .category-card__image,.category-card--standard .category-card__image{flex:0 0 auto;aspect-ratio:4 / 3}.category-card--wide .category-card__body,.category-card--tall .category-card__body,.category-card--standard .category-card__body{flex:1;justify-content:flex-start;padding:var(--space-md)}}.project-grid--bento{display:grid;grid-template-columns:1fr;gap:var(--space-md)}@media(min-width:768px){.project-grid--bento{grid-template-columns:repeat(12,1fr);gap:var(--space-lg)}.project-grid--bento>.project-card:nth-child(4n+1),.project-grid--bento>.project-card:nth-child(4n){grid-column:span 7}.project-grid--bento>.project-card:nth-child(4n+2),.project-grid--bento>.project-card:nth-child(4n+3){grid-column:span 5}.project-grid--bento>.project-card:last-child:nth-child(odd):not(:only-child){grid-column:span 12}.project-grid--bento>.project-card:nth-child(4n+1) .project-card__image,.project-grid--bento>.project-card:nth-child(4n) .project-card__image,.project-grid--bento>.project-card:last-child:nth-child(odd):not(:only-child) .project-card__image{aspect-ratio:21 / 9;max-height:420px}.project-grid--bento>.project-card:nth-child(4n+2) .project-card__image,.project-grid--bento>.project-card:nth-child(4n+3) .project-card__image,.project-grid--bento>.project-card--coming-soon .project-card__image{aspect-ratio:4 / 3}.project-grid--bento>.project-card--coming-soon{grid-column:span 5}}.hub__hero--editorial{display:grid;gap:var(--space-lg)}@media(min-width:768px){.hub__hero--editorial{grid-template-columns:1fr minmax(200px,280px);align-items:end;gap:var(--space-2xl);padding-bottom:var(--space-2xl)}.hub__hero-aside{border-left:3px solid var(--hub-accent, var(--color-accent));padding-left:var(--space-md)}.hub__hero-aside .tag-list{flex-direction:column;align-items:flex-start}}.category-section__header{text-align:center;margin-inline:auto}.category-section__inner--editorial{padding-inline:var(--space-md)}@media(min-width:900px){.category-section{padding-block:var(--space-2xl)}}.editorial-bleed{width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}#myPortfolio.category-section{scroll-margin-top:var(--space-md)}.category-section{background:var(--color-bg);padding:var(--space-xl) var(--space-md)}.category-section__inner{max-width:var(--content-max);margin:0 auto}.category-section__header{margin-bottom:var(--space-lg)}.category-section__header h2{text-align:center}.category-section__header p{margin:var(--space-sm) auto 0;font-size:var(--text-md);line-height:var(--leading-snug);color:var(--color-text-muted);max-width:var(--measure-narrow);text-align:center;text-wrap:balance}.category-card{display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;text-decoration:none;color:inherit;transition:transform var(--duration-normal) var(--ease-out),box-shadow var(--duration-normal) var(--ease-out)}.category-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px #2a2d3514;color:inherit}.category-card__image{aspect-ratio:16 / 10;overflow:hidden;background:var(--color-accent-soft)}.category-card__image img{width:100%;height:100%;object-fit:cover;display:block}.category-card__body{padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-sm);flex:1}.category-card__title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-extrabold);letter-spacing:-.02em;margin:0;color:var(--palette-black)}.category-card__tagline{font-size:var(--text-sm);color:var(--color-text-muted);margin:0;line-height:var(--leading-snug);max-width:none}.category-card__cta{margin-top:var(--space-xs);font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--color-link)}.category-section__archive{display:flex;justify-content:center;width:100%;max-width:none;margin:var(--space-xl) 0 0;padding-top:var(--space-lg);border-top:1px solid var(--color-border);text-align:center}.category-section__archive a{font-weight:var(--weight-semibold)}#myPortfolio .category-section__archive{max-width:none}.hub{background:var(--color-bg);min-height:50vh}.hub__hero{padding:var(--space-xl) var(--space-md) var(--space-lg);max-width:var(--content-max);margin:0 auto}.hub__back{display:inline-block;font-size:var(--text-sm);font-weight:var(--weight-semibold);margin-bottom:var(--space-md)}.hub__title{font-family:var(--font-display);font-size:var(--text-4xl);font-weight:var(--weight-extrabold);letter-spacing:-.025em;line-height:var(--leading-tight);margin:0 0 var(--space-sm);text-wrap:balance}.hub__tagline{font-size:var(--text-md);color:var(--color-text-muted);margin:0 0 var(--space-md);max-width:var(--measure-narrow);line-height:var(--leading-snug);text-wrap:balance}.hub__intro{margin:0;max-width:var(--measure);line-height:var(--leading-relaxed)}.hub__projects{padding:var(--space-md) var(--space-md) var(--space-xl);max-width:var(--content-max);margin:0 auto;border-top:1px solid var(--color-border)}.hub__projects h2{font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--color-text-muted);margin:0 0 var(--space-md)}.project-card{display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;text-decoration:none;color:inherit;transition:transform var(--duration-normal) var(--ease-out),box-shadow var(--duration-normal) var(--ease-out)}.project-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #2a2d3512;color:inherit}.project-card__image{aspect-ratio:4 / 3;overflow:hidden;background:var(--color-accent-soft)}.project-card__image img{width:100%;height:100%;object-fit:cover;display:block}.project-card__body{padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-xs)}.project-card__title{font-family:var(--font-display);font-size:var(--text-md);font-weight:var(--weight-bold);letter-spacing:-.015em;margin:0;color:var(--palette-black)}.project-card__outcome{font-size:var(--text-sm);color:var(--color-text-muted);margin:0;line-height:var(--leading-snug);max-width:none}.project-card--coming-soon{opacity:.85;cursor:default;border-style:dashed}.project-card--coming-soon:hover{transform:none;box-shadow:none}.project-card__badge{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.category-card,.project-card{--card-accent: var(--color-accent);border-top:3px solid transparent;transition:border-color var(--duration-normal) var(--ease-out),transform var(--duration-normal) var(--ease-out),box-shadow var(--duration-normal) var(--ease-out)}.category-card:hover,.project-card:hover{border-top-color:var(--card-accent)}.category-card:hover .category-card__title,.project-card:hover .project-card__title{color:var(--card-accent, var(--palette-purple-heart))}.category-card:focus-visible,.project-card:focus-visible{outline:2px solid var(--card-accent, var(--palette-purple-heart));outline-offset:3px}.hub .hub__title{color:var(--hub-accent, var(--palette-purple-heart))}.hub .hub__back{color:var(--hub-accent, var(--color-link));text-decoration:none;transition:color var(--duration-fast) var(--ease-out)}.hub .hub__back:hover{color:var(--palette-christalle)}.hub .hub__back:focus-visible{outline:2px solid var(--hub-accent, var(--palette-purple-heart));outline-offset:3px;border-radius:var(--radius-sm)}.hub__hero-aside{border-left-color:var(--hub-accent, var(--color-accent))}@media(hover:hover)and (pointer:fine){.project-card:hover,.category-card:hover{cursor:pointer}}.archive-filter{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-bottom:var(--space-md)}.archive-filter__btn{font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-text-muted);background:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;padding:.45em .9em;cursor:pointer;transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.archive-filter__btn:hover,.archive-filter__btn.is-active{color:var(--color-surface);background:var(--palette-purple-heart);border-color:var(--palette-purple-heart)}.archive-filter__btn:focus-visible{outline:2px solid var(--palette-purple-heart);outline-offset:2px}.archive-filter__empty{margin:0 0 var(--space-md);padding:var(--space-lg);text-align:center;font-size:var(--text-sm);color:var(--color-text-muted);background:var(--color-surface);border:1px dashed var(--color-border);border-radius:var(--radius-md)}.project-card.is-hidden{display:none}.not-found{background:var(--color-bg);min-height:70vh;display:flex;align-items:center;justify-content:center;padding:var(--space-xl) var(--space-md)}.not-found__inner{max-width:var(--content-max);margin:0 auto;width:100%;text-align:center}.not-found__code{font-family:var(--font-display);font-size:clamp(3rem,2rem + 6vw,4.5rem);font-weight:var(--weight-extrabold);color:var(--color-accent);letter-spacing:-.03em;line-height:1;margin:0 0 var(--space-sm)}.not-found__title{font-size:var(--text-2xl);margin:0 0 var(--space-sm)}.not-found__text{max-width:var(--measure);margin:0 auto var(--space-lg);color:var(--color-text-muted);line-height:var(--leading-relaxed);text-wrap:balance}.not-found__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-sm)}.not-found__link{display:inline-block;font-weight:var(--weight-semibold);text-decoration:none;padding:.65em 1.25em;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-link);transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.not-found__link:hover{background:var(--color-accent-soft);color:var(--color-link-hover)}.not-found__link:focus-visible{outline:2px solid var(--palette-purple-heart);outline-offset:2px}.not-found__link--primary{background:var(--palette-purple-heart);border-color:var(--palette-purple-heart);color:var(--color-surface)}.not-found__link--primary:hover{background:var(--palette-christalle);border-color:var(--palette-christalle);color:var(--color-surface)}.category-card__image .responsive-image,.project-card__image .responsive-image{border-radius:0}.story-hero__media .story-image,.story-hero__media .story-image__img{width:100%;height:100%;object-fit:cover;object-position:center top}.story-visual--contained .story-image.motion-reveal--image,.story-visual--bleed .story-image.motion-reveal--image,.story-visual--contained .story-image__img,.story-visual--bleed .story-image__img{border-radius:var(--radius-md);overflow:hidden}.story-visual--contained .story-image__img{box-shadow:0 8px 40px #01010114}#myPortfolio.category-section{background:var(--color-bg)}html:has(.modern){background:var(--color-bg)}h2{color:var(--palette-purple-heart)}#myExperience .experience-grid .experience-card{float:none;width:auto;font-size:inherit}a.button{border-color:var(--palette-purple-heart);color:var(--palette-purple-heart)}a.button:hover{background:var(--color-accent-soft)}.button:hover span:after{color:var(--palette-purple-heart)}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}
