@import url(https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700&family=Instrument+Serif:ital@0;1&display=swap);:root{--ink:#1a1a1a;--ink-muted:#4a4a4a;--ink-light:#737373;--bg:#faf9f7;--bg-card:#fff;--accent:#b8860b;--accent-soft:#f5efe0;--border:#e8e4df;--radius:12px;--shadow:0 4px 24px #0000000f}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#faf9f7;background:var(--bg);color:#1a1a1a;color:var(--ink);font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-size:17px;line-height:1.6}#root{min-height:100vh}.wrap{margin:0 auto;max-width:1440px;padding:0 24px;width:100%}.nav{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#faf9f7eb;border-bottom:1px solid #0000;left:0;padding:20px 0;position:fixed;right:0;top:0;transition:border-color .2s,box-shadow .2s;z-index:100}.nav.scrolled{border-color:var(--border);box-shadow:0 1px 0 var(--border)}.nav .wrap{align-items:center;display:flex;justify-content:space-between}.logo{color:var(--ink);font-family:"Instrument Serif",Georgia,serif;font-size:1.35rem;font-weight:400;text-decoration:none}.nav-links{display:flex;gap:28px;list-style:none}.nav-links a{color:var(--ink-muted);font-size:.9rem;font-weight:500;text-decoration:none;transition:color .2s}.nav-links a:hover{color:var(--accent)}.nav-cv{color:var(--accent)!important;font-weight:600}.nav-cv:hover{color:var(--ink)!important}.nav-toggle{background:none;border:none;cursor:pointer;display:none;flex-direction:column;gap:6px;padding:8px}.nav-toggle span{background:var(--ink);display:block;height:2px;transition:transform .2s;width:24px}.nav-toggle span.open:first-child{transform:rotate(45deg) translate(5px,5px)}.nav-toggle span.open:nth-child(2){opacity:0}.nav-toggle span.open:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}@media (max-width:640px){.nav-toggle{display:flex}.nav-links{background:#faf9f7fa;border-bottom:1px solid var(--border);flex-direction:column;gap:16px;left:0;opacity:0;padding:24px;pointer-events:none;position:fixed;right:0;top:60px;transform:translateY(-100%);transition:transform .2s,opacity .2s}.nav-links.open{opacity:1;pointer-events:auto;transform:translateY(0)}.nav-links a{font-size:1rem}}.footer{border-top:1px solid var(--border);padding:28px 0;text-align:center}.footer p{color:var(--ink-light);font-size:.85rem}.footer a{color:var(--ink-muted);text-decoration:none}.footer a:hover{color:var(--accent)}.about-section{padding:80px 0}.about-section-top{align-items:center;display:flex;min-height:100vh;padding-top:140px}.about-section .section-title{margin-bottom:0}.about-name{color:var(--ink);font-family:"Instrument Serif",Georgia,serif;font-size:clamp(2.5rem,6vw,3.5rem);font-weight:400;letter-spacing:-.02em;line-height:1.1;margin-bottom:8px}.about-role{color:var(--accent);font-size:1.15rem;font-weight:600;margin-bottom:0}.about-grid{grid-gap:80px;align-items:center;display:grid;gap:80px;grid-template-columns:1fr 1.2fr}@media (max-width:700px){.about-section-top{min-height:auto;padding-bottom:60px;padding-top:120px}.about-grid{gap:40px;grid-template-columns:1fr}}.about-text p{color:var(--ink-muted);font-size:1rem;line-height:1.7;margin-bottom:16px}.about-lead{color:var(--ink)!important;font-size:1.2rem!important;font-weight:500;line-height:1.6!important}.about-meta{display:flex;flex-wrap:wrap;gap:32px;margin-bottom:32px;margin-top:24px}.about-meta span{font-size:.9rem}.about-meta strong{color:var(--accent);display:block;font-size:1.25rem;margin-bottom:2px}.about-cta{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.about-cta .btn,.about-cta .btn-outline{align-items:center;border-radius:8px;cursor:pointer;display:inline-flex;font-family:inherit;font-size:.95rem;font-weight:600;justify-content:center;padding:14px 26px;text-decoration:none;transition:background .2s,color .2s,border-color .2s,transform .15s}.about-cta .btn{background:var(--ink);border:2px solid var(--ink);color:var(--bg)}.about-cta .btn:hover{background:var(--ink-muted);border-color:var(--ink-muted);transform:translateY(-1px)}.about-cta .btn-outline{background:#0000;border:2px solid var(--border);color:var(--ink)}.about-cta .btn-outline:hover{background:var(--ink);border-color:var(--ink);color:var(--bg);transform:translateY(-1px)}@media (max-width:480px){.about-cta{align-items:stretch;flex-direction:column}.about-cta .btn,.about-cta .btn-outline{text-align:center;width:100%}}.projects{background:var(--bg-card);border-top:1px solid var(--border);padding:120px 0}.projects-header{margin-bottom:48px}.section-label{color:var(--accent);font-size:.75rem;font-weight:700;letter-spacing:.12em;margin-bottom:12px;text-transform:uppercase}.section-title{color:var(--ink);font-family:"Instrument Serif",Georgia,serif;font-size:clamp(2rem,4vw,2.5rem);font-weight:400;margin-bottom:16px}.section-desc{color:var(--ink-muted);margin-bottom:40px;max-width:560px}.projects-grid{grid-gap:28px;display:grid;gap:28px;grid-template-columns:repeat(2,1fr)}@media (max-width:700px){.projects-grid{grid-template-columns:1fr}}.project-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:inherit;display:block;overflow:hidden;text-decoration:none;transition:box-shadow .25s,border-color .25s}.project-card:hover{border-color:var(--accent-soft);box-shadow:var(--shadow)}.project-card .thumb{align-items:center;background:linear-gradient(135deg,var(--accent-soft) 0,#e8e4df 100%);display:flex;height:220px;justify-content:center;overflow:hidden;position:relative}.project-card .thumb img{height:100%;object-fit:cover;transition:transform .5s ease;width:100%}.project-card:hover .thumb img{transform:scale(1.05)}.project-card .thumb .thumb-fallback{color:var(--ink-muted);font-family:"Instrument Serif",Georgia,serif;font-size:1.5rem;letter-spacing:.02em}.project-card .body{padding:24px}.project-card h3{color:var(--ink);font-size:1.15rem;font-weight:700;margin-bottom:6px}.project-card .type{color:var(--accent);font-size:.8rem;font-weight:600;letter-spacing:.05em;margin-bottom:10px;text-transform:uppercase}.project-card p{color:var(--ink-muted);font-size:.9rem;line-height:1.55}.project-card .link-text{align-items:center;color:var(--ink);display:inline-flex;font-size:.85rem;font-weight:600;gap:6px;margin-top:12px}.project-card:hover .link-text{color:var(--accent)}.services-section{padding:120px 0}.services-header .section-desc{margin-top:16px;max-width:560px}.services-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(3,1fr)}@media (max-width:800px){.services-grid{grid-template-columns:1fr}}.service-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:28px;transition:box-shadow .25s,border-color .25s}.service-card:hover{border-color:var(--accent-soft);box-shadow:var(--shadow)}.service-card .icon{align-items:center;background:var(--accent-soft);border-radius:10px;display:flex;font-size:1.25rem;height:44px;justify-content:center;margin-bottom:16px;width:44px}.service-card h3{color:var(--ink);font-size:1.1rem;font-weight:700;margin-bottom:8px}.service-card p{color:var(--ink-muted);font-size:.9rem;line-height:1.55}.contact-section{padding:80px 0 100px}.contact-section .section-title{margin-bottom:32px}.contact-intro{color:var(--ink-muted);font-size:1.05rem;margin-bottom:40px;max-width:520px}.contact-links{display:flex;flex-wrap:wrap;gap:24px 40px}.contact-links a{align-items:center;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;color:var(--ink);display:inline-flex;font-size:1rem;font-weight:600;gap:10px;padding:14px 20px;text-decoration:none;transition:border-color .2s,color .2s,box-shadow .2s}.contact-links a:hover{border-color:var(--accent);box-shadow:var(--shadow);color:var(--accent)}.cv-page{min-height:100vh;padding:120px 0 80px}.cv-wrap{width:100%}.cv-back{color:var(--ink-muted);display:inline-block;font-size:.9rem;font-weight:500;margin-bottom:32px;text-decoration:none;transition:color .2s}.cv-back:hover{color:var(--accent)}.cv-header h1{color:var(--ink);font-family:"Instrument Serif",Georgia,serif;font-size:clamp(2rem,4vw,2.75rem);font-weight:400;margin-bottom:8px}.cv-title{color:var(--accent);font-size:1.1rem;font-weight:600;margin-bottom:12px}.cv-contact{color:var(--ink-muted);font-size:.95rem;margin-bottom:48px}.cv-section{margin-bottom:40px}.cv-section h2{border-bottom:1px solid var(--border);color:var(--ink);font-family:"Instrument Serif",Georgia,serif;font-size:1.5rem;font-weight:400;margin-bottom:16px;padding-bottom:8px}.cv-section p,.cv-section ul{color:var(--ink-muted);font-size:1rem;line-height:1.7;margin-bottom:12px}.cv-section ul{margin-bottom:24px;padding-left:24px}.cv-section li{margin-bottom:8px}.cv-skills{grid-gap:8px 24px;display:grid;gap:8px 24px;grid-template-columns:repeat(2,1fr);list-style:none;padding-left:0}@media (max-width:600px){.cv-skills{grid-template-columns:1fr}}.cv-skills li{padding-left:16px;position:relative}.cv-skills li:before{color:var(--accent);content:"—";left:0;position:absolute}.cv-job{margin-bottom:32px}.cv-job-header{align-items:baseline;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;margin-bottom:4px}.cv-job-header strong{color:var(--ink);font-size:1.1rem}.cv-date{color:var(--ink-light);font-size:.9rem}.cv-role{color:var(--accent);font-size:.95rem;font-weight:600;margin-bottom:12px}.cv-tech{font-size:.95rem;line-height:1.7}.cv-muted{color:var(--ink-light);font-size:.9rem}.cv-cta{align-items:center;border-top:1px solid var(--border);display:flex;flex-wrap:wrap;gap:12px;margin-top:48px;padding-top:32px}.cv-cta .btn,.cv-cta .btn-outline{align-items:center;border-radius:8px;cursor:pointer;display:inline-flex;font-family:inherit;font-size:.95rem;font-weight:600;justify-content:center;padding:14px 26px;text-decoration:none;transition:background .2s,color .2s,border-color .2s,transform .15s}.cv-cta .btn{background:var(--ink);border:2px solid var(--ink);color:var(--bg)}.cv-cta .btn:hover{background:var(--ink-muted);border-color:var(--ink-muted);transform:translateY(-1px)}.cv-cta .btn-outline{background:#0000;border:2px solid var(--border);color:var(--ink)}.cv-cta .btn-outline:hover{background:var(--ink);border-color:var(--ink);color:var(--bg);transform:translateY(-1px)}@media (max-width:480px){.cv-cta{align-items:stretch;flex-direction:column}.cv-cta .btn,.cv-cta .btn-outline{text-align:center;width:100%}}
/*# sourceMappingURL=main.03aad928.css.map*/