:root{--bg:#f7f7f5;--bg-elevated:#fff;--text:#1c1c1e;--text-muted:#5f6368;--border:#e3e3e0;--accent:#2f6fed;--accent-contrast:#fff;--shadow:0 4px 18px #0000000f;--error:#d93025;--success:#1e8e3e;--radius:12px;--nav-height:64px;--max-width:1100px}[data-theme=dark]{--bg:#121214;--bg-elevated:#1c1c20;--text:#ececef;--text-muted:#a0a0a8;--border:#2c2c32;--accent:#6b9bff;--accent-contrast:#0d0d0f;--shadow:0 4px 18px #0006;--error:#f28b82;--success:#34a853}*,:after,:before{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;background:#f7f7f5;background:var(--bg);color:#1c1c1e;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;line-height:1.6;margin:0;transition:background-color .2s ease,color .2s ease}a{color:#2f6fed;color:var(--accent)}img{display:block;max-width:100%}.main{margin:0 auto;max-width:var(--max-width);padding:32px 16px 64px}.navbar{background:var(--bg-elevated);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100}.navbar__inner{align-items:center;display:flex;height:var(--nav-height);justify-content:space-between;margin:0 auto;max-width:var(--max-width);padding:0 16px}.navbar__logo{color:var(--text);font-size:1.4rem;font-weight:800;text-decoration:none}.navbar__logo span{color:var(--accent)}.navbar__toggle{background:#0000;border:none;cursor:pointer;display:flex;flex-direction:column;height:40px;justify-content:space-between;padding:8px;width:40px}.navbar__toggle span{background:var(--text);border-radius:2px;display:block;height:3px;transition:transform .25s ease,opacity .25s ease}.navbar__toggle--open span:first-child{transform:translateY(8.5px) rotate(45deg)}.navbar__toggle--open span:nth-child(2){opacity:0}.navbar__toggle--open span:nth-child(3){transform:translateY(-8.5px) rotate(-45deg)}.navbar__menu{background:var(--bg-elevated);border-bottom:1px solid var(--border);box-shadow:var(--shadow);display:none;flex-direction:column;gap:4px;left:0;padding:12px 16px 20px;position:absolute;right:0;top:var(--nav-height)}.navbar__menu--open{display:flex}.navbar__link{border-radius:8px;color:var(--text-muted);font-weight:500;padding:10px 12px;text-decoration:none}.navbar__link:hover{background:var(--bg);color:var(--text)}.navbar__link.active{color:var(--accent)}.theme-toggle{align-self:flex-start;background:var(--bg);border:1px solid var(--border);border-radius:50%;cursor:pointer;font-size:1.1rem;height:40px;margin-top:8px;width:40px}@media (min-width:768px){.navbar__inner{padding:0 24px}.navbar__toggle{display:none}.navbar__menu{align-items:center;background:#0000;border:none;box-shadow:none;display:flex;flex-direction:row;padding:0;position:static}.theme-toggle{align-self:center;margin:0 0 0 12px}.main{padding:48px 24px 80px}}.page-header{margin-bottom:32px}.page-header__title{font-size:clamp(1.8rem,5vw,2.6rem);line-height:1.2;margin:0 0 8px}.page-header__text{color:var(--text-muted);margin:0;max-width:60ch}.btn{align-items:center;border:1px solid #0000;border-radius:8px;cursor:pointer;display:inline-flex;font-size:.9rem;font-weight:600;justify-content:center;padding:8px 16px;text-decoration:none;transition:background-color .2s ease,border-color .2s ease,color .2s ease}.btn--primary{background:var(--accent);color:var(--accent-contrast)}.btn--primary:hover{opacity:.9}.btn--ghost{border-color:var(--border);color:var(--text)}.btn--ghost:hover{border-color:var(--accent);color:var(--accent)}.filter{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:32px}.filter__btn{background:var(--bg-elevated);border:1px solid var(--border);border-radius:999px;color:var(--text-muted);cursor:pointer;font-size:.9rem;padding:6px 14px;transition:background-color .2s ease,color .2s ease,border-color .2s ease}.filter__btn:hover{border-color:var(--accent);color:var(--text)}.filter__btn--active,.filter__btn--active:hover{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.projects-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:1fr}@media (min-width:640px){.projects-grid{grid-auto-rows:1fr;grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.projects-grid{grid-template-columns:repeat(3,1fr)}}.project-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:column;overflow:hidden;transition:transform .2s ease}.project-card:hover{transform:translateY(-4px)}.project-card__image{aspect-ratio:16/10;background:var(--border);border-bottom:1px solid var(--border);object-fit:cover;object-position:top;width:100%}.project-card__body{display:flex;flex:1 1;flex-direction:column;gap:12px;padding:20px}.project-card__title{font-size:1.2rem;margin:0}.project-card__description{color:var(--text-muted);font-size:.95rem;margin:0}.project-card__links{gap:8px;margin-top:auto}.project-card__links,.tags{display:flex;flex-wrap:wrap}.tags{gap:6px;list-style:none;margin:0;padding:0}.tag{background:var(--bg);border:1px solid var(--border);border-radius:999px;font-size:.78rem;padding:2px 10px}.empty-state,.tag{color:var(--text-muted)}.empty-state{padding:32px 16px;text-align:center}.back-link{color:var(--text-muted);display:inline-block;font-size:.95rem;margin-bottom:24px;text-decoration:none}.back-link:hover{color:var(--accent)}.project-detail{margin:0 auto;max-width:860px}.project-detail__header{display:flex;flex-direction:column;gap:16px;margin-bottom:32px}.project-detail__title{font-size:clamp(2rem,6vw,3rem);line-height:1.15;margin:0}.project-detail__description{color:var(--text-muted);font-size:1.05rem;margin:0;max-width:65ch}.project-detail__links{display:flex;flex-wrap:wrap;gap:12px}.project-detail__image{aspect-ratio:16/9;background:var(--border);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);object-fit:cover;object-position:top;width:100%}.project-detail__section{margin-top:48px}.project-detail__subtitle{font-size:1.4rem;margin:0 0 16px}.highlights{grid-gap:12px;display:grid;gap:12px;list-style:none;margin:0;padding:0}.highlights__item{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px 14px 48px;position:relative}.highlights__item:before{background:var(--accent);border-radius:50%;color:var(--accent-contrast);content:"✓";display:grid;font-size:.75rem;font-weight:700;height:20px;left:16px;place-items:center;position:absolute;top:14px;width:20px}@media (min-width:768px){.highlights{grid-template-columns:repeat(2,1fr)}}.not-found{align-items:center;display:flex;flex-direction:column;gap:12px;padding:64px 16px;text-align:center}.not-found__code{color:var(--accent);font-size:clamp(4rem,15vw,7rem);font-weight:800;line-height:1;margin:0;opacity:.25}.not-found__title{font-size:1.6rem;margin:0}.not-found__text{color:var(--text-muted);margin:0 0 12px}.btn--large{font-size:1rem;padding:12px 24px}.hero{align-items:flex-start;display:flex;flex-direction:column;gap:12px;padding:24px 0 56px}.hero__greeting{color:var(--accent);font-weight:600;margin:0}.hero__name{font-size:clamp(2.6rem,10vw,4.8rem);font-weight:800;letter-spacing:-.02em;line-height:1.05;margin:0}.hero__name span{color:var(--accent)}.hero__role{color:var(--text-muted);font-size:clamp(1.2rem,4vw,1.6rem);font-weight:600;margin:0}.hero__text{color:var(--text-muted);font-size:1.1rem;margin:8px 0 16px;max-width:55ch}.hero__actions{display:flex;flex-wrap:wrap;gap:12px}@media (min-width:768px){.hero{padding:64px 0 96px}}.section__header{align-items:baseline;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;margin-bottom:24px}.section__title{font-size:clamp(1.5rem,4vw,2rem);margin:0}.section__link{color:var(--accent);font-weight:600;text-decoration:none}.section__link:hover{text-decoration:underline}.about__content{grid-gap:40px;display:grid;gap:40px;grid-template-columns:1fr}.about__text{max-width:65ch}.about__text p{color:var(--text-muted);font-size:1.05rem;margin:0 0 16px}.about__text .btn{margin-top:8px}.about__text .about__lead{color:var(--text);font-size:1.25rem;line-height:1.5}.about__skills{align-self:start;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px}.about__subtitle{font-size:1.2rem;margin:0 0 16px}@media (min-width:900px){.about__content{gap:56px;grid-template-columns:1.6fr 1fr}}.tags--large{gap:8px}.tags--large .tag{color:var(--text);font-size:.9rem;padding:6px 14px}.contact__grid{grid-gap:32px;display:grid;gap:32px;grid-template-columns:1fr}@media (min-width:900px){.contact__grid{gap:48px;grid-template-columns:1fr 2fr}}.contact__info{align-self:start;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;gap:20px;padding:24px}.contact__info-item{display:flex;flex-direction:column;gap:2px}.contact__info-label{color:var(--text-muted);font-size:.8rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.form{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);gap:20px;padding:24px}.form,.form__group{display:flex;flex-direction:column}.form__group{gap:6px}.form__label{font-size:.95rem;font-weight:600}.form__input{background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text);font:inherit;padding:12px 14px;transition:border-color .2s ease,box-shadow .2s ease;width:100%}.form__input::placeholder{color:var(--text-muted);opacity:.7}.form__input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 25%,#0000);outline:none}.form__textarea{min-height:140px;resize:vertical}.form__input--error,.form__input--error:focus{border-color:var(--error);box-shadow:0 0 0 3px color-mix(in srgb,var(--error) 20%,#0000)}.form__error{color:var(--error);font-size:.85rem;margin:0}.form__submit{width:100%}@media (min-width:640px){.form__submit{align-self:flex-start;width:auto}}.success{align-items:center;animation:fade-in .4s ease;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:12px;padding:48px 24px;text-align:center}.success__icon{background:var(--success);border-radius:50%;color:#fff;display:grid;font-size:1.6rem;font-weight:700;height:56px;place-items:center;width:56px}.success__title{font-size:1.5rem;margin:0}.success__text{color:var(--text-muted);margin:0;max-width:40ch}@keyframes fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.main>.reveal+.reveal,.main>.section+.cta,.main>.section+.reveal,.main>.section+.section{margin-top:72px}.about-teaser{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:32px 24px}.about-teaser__text{align-items:flex-start;display:flex;flex-direction:column;gap:12px}.about-teaser__text p{color:var(--text-muted);font-size:1.05rem;margin:0;max-width:60ch}@media (min-width:900px){.about-teaser{padding:40px}}.cta{align-items:center;background:var(--accent);border-radius:var(--radius);box-shadow:var(--shadow);color:var(--accent-contrast);display:flex;flex-direction:column;gap:12px;padding:48px 24px;text-align:center}.cta__title{font-size:clamp(1.6rem,5vw,2.2rem);margin:0}.cta__text{margin:0 0 12px;max-width:50ch;opacity:.9}.cta__btn{background:var(--accent-contrast);color:var(--accent)}.cta__btn:hover{opacity:.9}.github{border-top:1px solid var(--border);margin-top:80px;padding-top:48px}.github__intro{color:var(--text-muted);margin:-12px 0 24px}.github__status{background:var(--bg-elevated);border:1px dashed var(--border);border-radius:var(--radius);color:var(--text-muted);padding:24px 16px;text-align:center}.github__status--error{border-color:var(--error);color:var(--error)}.repos-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr}@media (min-width:640px){.repos-grid{grid-auto-rows:1fr;grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.repos-grid{grid-template-columns:repeat(3,1fr)}}.repo-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;gap:10px;padding:20px;transition:border-color .2s ease}.repo-card:hover{border-color:var(--accent)}.repo-card__name{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:1.05rem;margin:0;word-break:break-word}.repo-card__description{-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;color:var(--text-muted);display:-webkit-box;font-size:.92rem;margin:0;overflow:hidden}.repo-card__meta{color:var(--text-muted);display:flex;flex-wrap:wrap;font-size:.82rem;gap:6px 16px}.repo-card__language{align-items:center;display:inline-flex;gap:6px}.repo-card__dot{background:var(--accent);border-radius:50%;height:10px;width:10px}.repo-card__links{display:flex;gap:8px;margin-top:auto;padding-top:6px}.reveal{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease}.reveal--visible{opacity:1;transform:none}.projects-grid>.reveal>*,.repos-grid>.reveal>*{height:100%}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}.navbar__actions{display:flex;gap:8px;margin-top:8px}.navbar__actions .theme-toggle{align-self:center;color:var(--text);margin:0}.language-toggle{font-size:.8rem;font-weight:700;letter-spacing:.03em}@media (min-width:768px){.navbar__actions{margin:0 0 0 12px}}
/*# sourceMappingURL=main.6ea4a052.css.map*/