:root{--bg:#fdfaf4;--ink:#1a1a1a;--muted:#888;--accent1:#f4c542;--accent2:#f97b6b;--accent3:#7bc8f6;--accent4:#a8e6cf;--card:#fff;--border:#e8e2d6}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:18px}body{background:var(--bg);color:var(--ink);font-family:DM Sans,sans-serif;line-height:1.65}nav{z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1.5px solid var(--border);background:#fdfaf4e0;justify-content:space-between;align-items:center;height:60px;padding:0 2rem;display:flex;position:sticky;top:0}.nav-logo{color:var(--ink);align-items:center;gap:.4rem;font-family:Fraunces,serif;font-size:1.2rem;font-weight:800;text-decoration:none;display:flex}.nav-links{gap:.25rem;display:flex}.nav-links a{color:var(--muted);border-radius:999px;padding:.4rem .75rem;font-size:.9rem;font-weight:500;text-decoration:none;transition:all .2s}.nav-links a:hover{background:var(--accent1);color:var(--ink)}section{max-width:760px;margin:0 auto;padding:5rem 2rem}.section-label{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);background:var(--border);border-radius:999px;align-items:center;gap:.4rem;margin-bottom:1.5rem;padding:.3rem .8rem;font-size:.78rem;font-weight:600;display:inline-flex}h1{margin-bottom:1.25rem;font-family:Fraunces,serif;font-size:clamp(2.4rem,6vw,3.8rem);font-weight:800;line-height:1.1}h2{margin-bottom:2rem;font-family:Fraunces,serif;font-size:clamp(1.6rem,4vw,2.2rem);font-weight:600;line-height:1.2}#about{padding-top:7rem}.hero-avatar{object-fit:cover;border-radius:50%;width:90px;height:90px;margin-bottom:2rem;animation:4s ease-in-out infinite float;display:block;box-shadow:0 8px 24px #f4c54259}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.hero-tagline{color:#444;max-width:520px;margin-bottom:2rem;font-size:1.1rem}.hero-tags{flex-wrap:wrap;gap:.5rem;margin-bottom:2.5rem;display:flex}.tag{background:var(--card);border:1.5px solid var(--border);cursor:default;border-radius:999px;padding:.35rem .9rem;font-size:.85rem;font-weight:500;transition:transform .15s,box-shadow .15s}.tag:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.tag.yellow{background:var(--accent1);border-color:var(--accent1)}.tag.red{background:var(--accent2);border-color:var(--accent2)}.tag.blue{background:var(--accent3);border-color:var(--accent3)}.tag.green{background:var(--accent4);border-color:var(--accent4)}.divider{border:none;border-top:1.5px solid var(--border);margin:0}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;display:grid}@media (max-width:560px){.projects-grid{grid-template-columns:1fr}}.project-card{background:var(--card);border:1.5px solid var(--border);cursor:pointer;color:inherit;border-radius:16px;padding:1.5rem;text-decoration:none;transition:transform .2s,box-shadow .2s;display:block}.project-card:hover{border-color:var(--accent1);transform:translateY(-4px);box-shadow:0 12px 32px #00000014}.project-emoji{margin-bottom:.75rem;font-size:2rem;display:block}.project-card h3{margin-bottom:.4rem;font-family:Fraunces,serif;font-size:1.05rem;font-weight:600}.project-card p{color:#555;font-size:.875rem;line-height:1.5}.project-card .card-tags{flex-wrap:wrap;gap:.35rem;margin-top:1rem;display:flex}.card-tag{background:var(--bg);border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:.2rem .55rem;font-size:.72rem;font-weight:600}.pub-list{flex-direction:column;gap:1rem;display:flex}.pub-item{background:var(--card);border:1.5px solid var(--border);border-radius:14px;align-items:flex-start;gap:1rem;padding:1.25rem 1.5rem;transition:border-color .2s,transform .2s;display:flex}.pub-item:hover{border-color:var(--accent3);transform:translate(4px)}.pub-icon{flex-shrink:0;margin-top:.1rem;font-size:1.6rem}.pub-content h4{margin-bottom:.25rem;font-family:Fraunces,serif;font-size:.98rem;font-weight:600;line-height:1.35}.pub-content .pub-meta{color:var(--muted);font-size:.82rem}.pub-content .pub-meta strong{color:#555}.pub-link{color:var(--accent2);border-bottom:1.5px solid #0000;align-items:center;gap:.3rem;margin-top:.5rem;font-size:.8rem;font-weight:600;text-decoration:none;transition:border-color .15s;display:inline-flex}.pub-link:hover{border-color:var(--accent2)}#contact{padding-bottom:8rem}.contact-box{background:var(--ink);color:#fff;text-align:center;border-radius:24px;padding:3rem}.contact-box h2{color:#fff;margin-bottom:.75rem;font-family:Fraunces,serif}.contact-box p{color:#aaa;margin-bottom:2rem}.contact-links{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.contact-btn{cursor:pointer;border-radius:999px;align-items:center;gap:.5rem;padding:.65rem 1.3rem;font-size:.9rem;font-weight:600;text-decoration:none;transition:transform .15s,opacity .15s;display:inline-flex}.contact-btn:hover{opacity:.9;transform:translateY(-2px)}.btn-yellow{background:var(--accent1);color:var(--ink)}.btn-red{background:var(--accent2);color:#fff}.btn-blue{background:var(--accent3);color:var(--ink)}.btn-green{background:var(--accent4);color:var(--ink)}.btn-dark{background:var(--ink);color:#fff}.btn-pink{color:#fff;background:#e1306c}footer{text-align:center;color:var(--muted);border-top:1.5px solid var(--border);padding:2rem;font-size:.8rem}.fade-in{opacity:0;transition:opacity .6s,transform .6s;transform:translateY(20px)}.fade-in.visible{opacity:1;transform:none}
