@import"https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@400;500;700&display=swap";:root{--font-heading: "Century Gothic", "Avenir Next", "Montserrat", sans-serif;--font-body: "Arial", "Roboto Condensed", "Helvetica Neue", sans-serif;--font-paragraph: "Roboto Mono", "Courier New", Courier, monospace;--color-accent: var(--accent);--color-bg: var(--bg);--color-surface: var(--surface);--color-text: var(--text);--color-muted: var(--textMuted);--color-border: var(--border);--color-heading: #5b6973;--color-heading-secondary: #424242;--bg-grad-1: rgba(31, 95, 169, .12);--bg-grad-2: rgba(17, 24, 39, .08);--hero-grad-1: var(--color-surface);--hero-grad-2: #eef3fb;--hero-grad-3: #e5edf8;--radius: 14px;--shadow-sm: 0 8px 20px rgba(17, 24, 39, .06);--shadow-lg: 0 20px 40px rgba(17, 24, 39, .08);--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--space-12: 3rem}html[data-theme=dark]{--color-accent: #7dd3fc;--color-bg: #0b1220;--color-surface: #151e2f;--color-text: #ecf2ff;--color-muted: #b6c5df;--color-border: #2f3a51;--color-heading: #f8fbff;--color-heading-secondary: #e5ecfa;--bg-grad-1: rgba(76, 156, 255, .18);--bg-grad-2: rgba(129, 64, 255, .16);--hero-grad-1: #182235;--hero-grad-2: #14263d;--hero-grad-3: #1f2945;--shadow-sm: 0 8px 24px rgba(3, 10, 22, .45);--shadow-lg: 0 22px 54px rgba(3, 10, 22, .5)}html[data-theme=colorful]{--color-accent: #fd3b0c;--color-bg: #90c088;--color-surface: #ffeb6d;--color-text: #2f211a;--color-muted: #6b3c22;--color-border: #6b3c22;--color-heading: #24150f;--color-heading-secondary: #6b3c22;--bg-grad-1: transparent;--bg-grad-2: transparent;--hero-grad-1: #ffeb6d;--hero-grad-2: #fff4a2;--hero-grad-3: #ffeb6d;--shadow-sm: 4px 4px 0 #6b3c22;--shadow-lg: 8px 8px 0 #6b3c22}*{box-sizing:border-box}html,body{margin:0;padding:0;color:var(--color-text);background:radial-gradient(circle at 15% 10%,var(--bg-grad-1),transparent 32%),radial-gradient(circle at 85% 0%,var(--bg-grad-2),transparent 24%),var(--color-bg);font-family:var(--font-body);text-rendering:optimizeLegibility}a{color:inherit}.container{width:min(1060px,92vw);margin:0 auto;padding:var(--space-8) 0 var(--space-12)}.top-nav{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);width:min(1060px,92vw);margin:var(--space-4) auto 0;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:999px;backdrop-filter:blur(12px);background:color-mix(in srgb,var(--color-surface) 82%,transparent)}.top-nav-controls{display:flex;align-items:center;gap:var(--space-4)}.top-nav nav{display:flex;gap:var(--space-4);flex-wrap:wrap}.top-nav a{text-decoration:none;color:var(--color-muted);font-weight:600;font-size:.95rem}.top-nav a:hover{color:var(--color-text)}.wordmark{font-family:var(--font-heading);letter-spacing:.02em}.theme-toggle{display:inline-flex;gap:.2rem;padding:.25rem;border-radius:999px;border:1px solid var(--color-border);background:color-mix(in srgb,var(--color-surface) 74%,transparent)}.theme-toggle button{position:relative;border:0;border-radius:999px;width:2rem;height:2rem;padding:0;background:transparent;color:var(--color-muted);font-family:var(--font-body);font-size:1rem;font-weight:700;letter-spacing:.02em;cursor:pointer;transition:transform .18s ease,background .18s ease,color .18s ease}.theme-toggle button[data-tooltip]:hover:after,.theme-toggle button[data-tooltip]:focus-visible:after{content:attr(data-tooltip);position:absolute;left:50%;top:calc(100% + .45rem);transform:translate(-50%);width:min(260px,70vw);padding:.5rem .65rem;border-radius:10px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-size:.74rem;line-height:1.35;text-align:center;z-index:30;box-shadow:var(--shadow-sm);pointer-events:none}.theme-toggle button[aria-pressed=true]{background:var(--color-accent);color:#fff}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.theme-toggle button:hover{color:var(--color-text)}html[data-theme=light] .theme-toggle button[data-theme-option=light]{color:#f59e0b}html[data-theme=light] .theme-toggle button[data-theme-option=light][aria-pressed=true]{background:#f59e0b;color:#fff}.hero{margin-top:var(--space-8);padding:var(--space-12) var(--space-8);border:1px solid var(--color-border);border-radius:calc(var(--radius) + 6px);background:linear-gradient(140deg,var(--hero-grad-1),var(--hero-grad-2) 65%,var(--hero-grad-3));box-shadow:var(--shadow-lg)}.eyebrow{margin:0;text-transform:uppercase;letter-spacing:.09em;font-size:.78rem;color:var(--color-accent);font-weight:700}h1,h2,h3{font-family:var(--font-heading);color:var(--color-heading);line-height:1.1;margin:0}h1{font-size:clamp(2rem,4vw,3.4rem);margin-top:var(--space-2)}h2{color:var(--color-heading-secondary)}.hero h1.hero-name .hero-name-primary{color:#5b6973}.hero h1.hero-name .hero-name-secondary{color:var(--text, #111827)}html[data-theme=dark] .hero h1.hero-name .hero-name-secondary{color:#f8fbff}.lede{font-size:clamp(1rem,1.8vw,1.2rem);max-width:62ch;color:var(--color-muted)}.hero-meta{display:flex;gap:var(--space-4);flex-wrap:wrap;color:var(--color-muted);font-size:.95rem}.cta-row{margin-top:var(--space-6);display:flex;gap:var(--space-3);flex-wrap:wrap}.btn{border:1px solid transparent;border-radius:999px;padding:.68rem 1.1rem;font-family:inherit;font-weight:700;font-size:.92rem;text-decoration:none;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.btn:hover{transform:translateY(-1px)}.btn.primary{background:var(--color-accent);color:#f8fafc;box-shadow:var(--shadow-sm)}.btn.secondary{background:transparent;border-color:var(--color-border);color:var(--color-text)}.section{margin-top:var(--space-12)}.section-heading{margin-bottom:var(--space-6)}.kicker{margin:0 0 var(--space-2);text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;color:var(--color-accent);font-weight:700}.subtitle{margin:var(--space-2) 0 0;color:var(--color-muted);max-width:70ch}.stack-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-6)}.card{padding:var(--space-6);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.card p{margin-top:0;margin-bottom:var(--space-4);line-height:1.6}.card p:last-child{margin-bottom:0}#about .card p,#about .subtitle,#contact .subtitle,#experience,#projects{font-family:var(--font-paragraph)}.card-header p{margin:var(--space-2) 0;color:var(--color-muted)}.muted{color:var(--color-muted)}ul{margin:0 0 var(--space-6);padding-left:1.2rem}li{margin-bottom:var(--space-2);line-height:1.5}.chip-row{display:flex;flex-wrap:wrap;gap:var(--space-2)}.chip{font-size:.78rem;font-weight:700;letter-spacing:.03em;border-radius:999px;border:1px solid var(--color-border);padding:.36rem .65rem;background:color-mix(in srgb,var(--color-surface) 74%,var(--color-accent) 8%)}html[data-theme=light] .chip{background:#ebeff7}.link-row{display:flex;gap:var(--space-4);flex-wrap:wrap}.link-row a{text-decoration:none;font-weight:700;color:var(--color-accent)}.contact-card{display:flex;flex-direction:column;gap:var(--space-4)}.site-footer{width:min(1060px,92vw);margin:0 auto var(--space-8);border-top:1px solid var(--color-border);color:var(--color-muted);font-size:.9rem}html[data-theme=colorful] .top-nav{border-width:2px;box-shadow:var(--shadow-sm);background:#ffeb6d}html[data-theme=colorful] .card,html[data-theme=colorful] .hero{border-width:2px}html[data-theme=colorful] .hero{background:linear-gradient(140deg,#ffeb6d,#90c088 58%,#ffeb6d)}html[data-theme=colorful] .card{background:#ffeb6d}html[data-theme=colorful] .card h3,html[data-theme=colorful] .card strong{color:#fd3b0c}html[data-theme=colorful] #projects .card:nth-child(2n){background:#ffeb6d}html[data-theme=colorful] #projects .card:nth-child(3n){background:#fd3b0c}html[data-theme=colorful] #projects .card:nth-child(4n){background:#90c088}html[data-theme=colorful] #projects .card:nth-child(3n){color:#fff}html[data-theme=colorful] #projects .card:nth-child(3n) .chip{color:#6b3c22}html[data-theme=colorful] .chip,html[data-theme=colorful] .theme-toggle{border-width:2px;background:#ffeb6d}html[data-theme=colorful] .theme-toggle button[aria-pressed=true]{background:#fd3b0c;box-shadow:2px 2px #6b3c22}.reveal{opacity:0;transform:translateY(10px);animation:rise .58s ease forwards}main .reveal:nth-of-type(2){animation-delay:70ms}main .reveal:nth-of-type(3){animation-delay:.14s}main .reveal:nth-of-type(4){animation-delay:.21s}main .reveal:nth-of-type(5){animation-delay:.28s}@keyframes rise{to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.reveal{animation:none;opacity:1;transform:none}.btn{transition:none}}@media(max-width:860px){.stack-grid{grid-template-columns:1fr}.hero{padding:var(--space-8) var(--space-6)}}@media(max-width:640px){.top-nav{border-radius:var(--radius);align-items:flex-start;flex-direction:column;gap:var(--space-3)}.top-nav-controls{width:100%;flex-direction:column;align-items:flex-start;gap:var(--space-3)}.top-nav nav{gap:var(--space-3)}.theme-toggle{width:100%;justify-content:space-between}.theme-toggle button[data-tooltip]:hover:after,.theme-toggle button[data-tooltip]:focus-visible:after{left:auto;right:0;transform:none;width:min(250px,85vw);text-align:left}.container{padding-top:var(--space-6)}.hero-meta{flex-direction:column;gap:var(--space-2)}}.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}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media(prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}
