:root{--color-bg:#fff;--color-text:#1a1a1a;--color-text-muted:#4d4d4d;--color-accent:#1d4ed8;--color-accent-contrast:#fff;--color-border:#d9d9d9;--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--space-xs:.5rem;--space-sm:1rem;--space-md:1.5rem;--space-lg:2.5rem;--space-xl:4rem;--max-width:40rem;--radius:.5rem}@media (prefers-color-scheme:dark){:root{--color-bg:#12141a;--color-text:#f2f2f2;--color-text-muted:#b0b3ba;--color-border:#33363f;--color-accent:#7da6ff;--color-accent-contrast:#0b1220}}:root[data-theme=dark]{--color-bg:#12141a;--color-text:#f2f2f2;--color-text-muted:#b0b3ba;--color-border:#33363f;--color-accent:#7da6ff;--color-accent-contrast:#0b1220}:root[data-theme=light]{--color-bg:#fff;--color-text:#1a1a1a;--color-text-muted:#4d4d4d;--color-border:#d9d9d9;--color-accent:#1d4ed8;--color-accent-contrast:#fff}*,:before,:after{box-sizing:border-box}body{font-family:var(--font-sans);color:var(--color-text);background-color:var(--color-bg);margin:0;line-height:1.6}body,.cta,.profile-contact-btn,.project-card,#theme-toggle{transition:background-color .2s,color .2s,border-color .2s}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:0s!important;animation-duration:0s!important}}header,main,footer{max-width:var(--max-width);padding-inline:var(--space-md);margin-inline:auto}header{padding-block:var(--space-md)}.site-header{justify-content:space-between;align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.site-logo{color:var(--color-text);font-weight:700;text-decoration:none}.site-nav{gap:var(--space-sm);display:flex}.site-nav a{color:var(--color-text-muted);text-decoration:none}.site-nav a:hover,.site-nav a:focus-visible{color:var(--color-accent)}.site-nav a[aria-current=page]{color:var(--color-accent);font-weight:600}main{padding-block:var(--space-lg)}footer{padding-block:var(--space-md);color:var(--color-text-muted);border-top:1px solid var(--color-border)}h1,h2{line-height:1.2}p{color:var(--color-text)}a{color:var(--color-accent)}.tagline{color:var(--color-text-muted);font-weight:600}.cta{padding:var(--space-xs) var(--space-md);border-radius:var(--radius);font-weight:600;text-decoration:none;display:inline-block}.cta-primary{background-color:var(--color-accent);color:var(--color-accent-contrast)}.cta-secondary{color:var(--color-accent);border:1px solid var(--color-accent);background-color:#0000}.project-list{gap:var(--space-md);flex-direction:column;display:flex}@media (width>=768px){.project-list{gap:var(--space-md);grid-template-columns:repeat(2,1fr);display:grid}}@media (width>=1024px){:root{--max-width:60rem}}.project-card{border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-md)}.project-card-header{justify-content:space-between;align-items:baseline;gap:var(--space-sm);margin-bottom:var(--space-xs);display:flex}.project-card-title{margin:0;font-size:1.2rem}.project-card-title a{color:var(--color-text);text-decoration:none}.project-card-title a:hover{color:var(--color-accent)}.project-card-badge{text-transform:uppercase;letter-spacing:.05em;border-radius:var(--radius);background-color:var(--color-accent);color:var(--color-accent-contrast);white-space:nowrap;padding:.15em .5em;font-size:.75rem;font-weight:600}.project-card-description{margin:0 0 var(--space-sm);color:var(--color-text-muted);font-size:.95rem}.project-card-live-url{margin:0 0 var(--space-sm);word-break:break-all;font-size:.85rem}.project-card-live-url a{color:var(--color-accent)}.project-card-meta{align-items:center;gap:var(--space-sm);flex-wrap:wrap;font-size:.85rem;display:flex}.project-card-date{color:var(--color-text-muted)}.project-card-techs{gap:var(--space-xs);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.project-card-tech{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text-muted);padding:.15em .5em;font-size:.8rem}.project-card-image-link{margin:calc(-1 * var(--space-md)) calc(-1 * var(--space-md)) var(--space-md);line-height:0;display:block}.project-card-image{object-fit:cover;object-position:top;border-radius:var(--radius) var(--radius) 0 0;width:100%;height:200px}.project-hero-image{object-fit:cover;object-position:top;border-radius:var(--radius);width:100%;max-height:400px;margin-bottom:var(--space-md)}section{margin-top:calc(var(--space-xl) * 2)}section:first-child{margin-top:0}.skill-category{align-items:baseline;gap:var(--space-xs);margin-bottom:var(--space-xs);display:flex}.skill-category-title{white-space:nowrap;margin:0;font-size:1rem;font-weight:600}.skill-category-title:after{content:":"}.skill-text{color:var(--color-text-muted);margin:0;line-height:1.7}.profile-contact{align-items:center;gap:var(--space-sm);margin-top:var(--space-lg);padding-top:var(--space-md);border-top:1px solid var(--color-border);flex-wrap:wrap;display:flex}.profile-contact-btn{align-items:center;gap:var(--space-xs);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text-muted);padding:.35em .9em;font-size:.9rem;line-height:1.4;text-decoration:none;display:inline-flex}.profile-contact-btn:hover,.profile-contact-btn:focus-visible{color:var(--color-accent);border-color:var(--color-accent)}.profile-contact-copy{cursor:pointer;background:0 0;font-family:inherit;font-size:.9rem;line-height:1.4}.profile-contact-copy-feedback{display:none}.profile-contact-copy.copied .profile-contact-copy-feedback{display:inline}.profile-contact-copy.copied .profile-contact-copy-text,.profile-contact-copy.copied .profile-contact-copy-icon{display:none}.profile-contact-btn--primary{background-color:var(--color-accent);color:var(--color-accent-contrast);border-color:var(--color-accent)}.profile-contact-btn--primary:hover,.profile-contact-btn--primary:focus-visible{color:var(--color-accent);background-color:#0000}#theme-toggle{border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-xs);color:var(--color-text-muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;display:inline-flex}#theme-toggle:hover,#theme-toggle:focus-visible{color:var(--color-accent)}.theme-icon-moon,:root[data-theme=dark] .theme-icon-sun{display:none}:root[data-theme=dark] .theme-icon-moon{display:inline}
