@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";
:root{--background:#faf9f7;--foreground:#1a1a1a;--accent:#6366f1;--muted:#737373;--card:#fff;--border:#e5e5e5}@media (prefers-color-scheme:dark){:root{--background:#0a0a0a;--foreground:#f5f5f5;--accent:#818cf8;--muted:#a3a3a3;--card:#141414;--border:#262626}}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--background);color:var(--foreground);text-transform:lowercase;letter-spacing:.02em;min-height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-weight:400;line-height:1.7}::selection{background:var(--accent);color:#fff}a{color:inherit;text-decoration:none;transition:color .3s}a:hover{color:var(--accent)}.container{width:100%;max-width:1100px;margin:0 auto;padding:0 1.25rem}@media (min-width:768px){.container{padding:0 2rem}}.nav{z-index:50;background:color-mix(in srgb,var(--background)90%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);position:fixed;top:0;left:0;right:0}.nav-inner{justify-content:space-between;align-items:center;max-width:1100px;height:56px;margin:0 auto;padding:0 1.25rem;display:flex}@media (min-width:768px){.nav-inner{height:64px;padding:0 2rem}}.nav-logo{letter-spacing:-.02em;font-size:1rem;font-weight:600}@media (min-width:768px){.nav-logo{font-size:1.1rem}}.nav-links{gap:1rem;font-size:.75rem;display:flex}@media (min-width:768px){.nav-links{gap:2rem;font-size:.875rem}}@media (min-width:1024px){.nav-links{gap:2.5rem}}.nav-link{color:var(--muted);transition:color .3s}.nav-link:hover{color:var(--foreground)}.main{padding-top:56px}@media (min-width:768px){.main{padding-top:64px}}.hero{align-items:center;min-height:calc(100vh - 56px);padding:2.5rem 0;display:flex}@media (min-width:768px){.hero{min-height:calc(100vh - 64px);padding:4rem 0}}.hero-inner{flex-direction:column;gap:2.5rem;display:flex}@media (min-width:1024px){.hero-inner{flex-direction:row;align-items:center;gap:5rem}}.hero-content{flex:1}.hero-label{color:var(--muted);letter-spacing:.15em;text-transform:uppercase;margin-bottom:.75rem;font-size:.65rem}@media (min-width:768px){.hero-label{margin-bottom:1rem;font-size:.75rem}}.hero-title{letter-spacing:-.03em;margin-bottom:1.25rem;font-size:clamp(2rem,10vw,4.5rem);font-weight:600;line-height:1.1}.hero-title span{color:var(--accent)}.hero-description{color:var(--muted);max-width:480px;margin-bottom:1.5rem;font-size:1rem;line-height:1.7}@media (min-width:768px){.hero-description{margin-bottom:2rem;font-size:1.1rem}}.hero-buttons{flex-wrap:wrap;gap:.75rem;display:flex}@media (min-width:768px){.hero-buttons{gap:1rem}}.btn{cursor:pointer;border:none;border-radius:9999px;justify-content:center;align-items:center;padding:.75rem 1.25rem;font-size:.8rem;font-weight:500;transition:all .3s;display:inline-flex}@media (min-width:768px){.btn{padding:.875rem 1.5rem;font-size:.875rem}}.btn-primary{background:var(--foreground);color:var(--background)}.btn-primary:hover{opacity:.85;color:var(--background)}.btn-secondary{color:var(--foreground);border:1px solid var(--border);background:0 0}.btn-secondary:hover{border-color:var(--foreground);color:var(--foreground)}.hero-visual{flex:1;justify-content:center;display:none}@media (min-width:1024px){.hero-visual{display:flex}}.code-card{width:100%;max-width:380px;position:relative}.code-card-glow{background:linear-gradient(135deg,color-mix(in srgb,var(--accent)15%,transparent),transparent);filter:blur(2rem);border-radius:1.5rem;animation:4s ease-in-out infinite pulse;position:absolute;inset:-1rem}.code-card-inner{background:var(--card);border:1px solid var(--border);border-radius:.75rem;padding:1rem;position:relative;box-shadow:0 1px 3px #0000000d}@media (min-width:768px){.code-card-inner{border-radius:1rem;padding:1.5rem}}.code-card-dots{gap:.5rem;margin-bottom:1rem;display:flex}.code-card-dot{border-radius:50%;width:.6rem;height:.6rem}@media (min-width:768px){.code-card-dot{width:.75rem;height:.75rem}}.code-card-dot:first-child{background:#f87171}.code-card-dot:nth-child(2){background:#fbbf24}.code-card-dot:nth-child(3){background:#4ade80}.code-block{color:var(--muted);padding-bottom:.25rem;font-family:SF Mono,Fira Code,monospace;font-size:.7rem;line-height:1.8}@media (min-width:768px){.code-block{font-size:.875rem;line-height:2}}.code-block p{margin-bottom:.25rem;padding-bottom:.125rem}@media (min-width:768px){.code-block p{margin-bottom:.375rem}}.code-block .indent{padding-left:.75rem}@media (min-width:768px){.code-block .indent{padding-left:1rem}}.code-comment,.code-keyword{color:var(--accent)}.code-string{color:#4ade80}.typewriter-container{justify-content:center;padding:2.5rem 0;display:flex}@media (min-width:768px){.typewriter-container{padding:5rem 0}}.typewriter-section{border-top:1px solid var(--border)}.typewriter-card{background:var(--card);border:1px solid var(--border);border-radius:.75rem;width:100%;max-width:600px;padding:1rem;box-shadow:0 4px 20px #0000000d}@media (min-width:768px){.typewriter-card{border-radius:1rem;padding:1.5rem}}.typewriter-header{border-bottom:1px solid var(--border);align-items:center;gap:.75rem;margin-bottom:.75rem;padding-bottom:.75rem;display:flex}@media (min-width:768px){.typewriter-header{gap:1rem;margin-bottom:1rem;padding-bottom:1rem}}.typewriter-dots{gap:.4rem;display:flex}.typewriter-dots span{border-radius:50%;width:10px;height:10px}@media (min-width:768px){.typewriter-dots span{width:12px;height:12px}}.typewriter-dots span:first-child{background:#ff5f57}.typewriter-dots span:nth-child(2){background:#febc2e}.typewriter-dots span:nth-child(3){background:#28c840}.typewriter-label{color:var(--accent);letter-spacing:.05em;text-transform:uppercase;margin-left:auto;font-size:.65rem;font-weight:500}@media (min-width:768px){.typewriter-label{font-size:.75rem}}.typewriter-code{color:var(--foreground);white-space:pre-wrap;word-break:break-word;min-height:140px;margin:0;font-family:SF Mono,Fira Code,Consolas,monospace;font-size:.65rem;line-height:1.6}@media (min-width:768px){.typewriter-code{min-height:200px;font-size:.8rem;line-height:1.8}}@media (min-width:1024px){.typewriter-code{font-size:.875rem}}.typewriter-cursor{color:var(--accent);animation:1s step-end infinite blink}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.tech{border-top:1px solid var(--border);padding:3rem 0}@media (min-width:768px){.tech{padding:5rem 0}}.section-title{margin-bottom:1.5rem;font-size:1.4rem;font-weight:600}@media (min-width:768px){.section-title{margin-bottom:2.5rem;font-size:1.75rem}}.tech-grid{grid-template-columns:repeat(2,1fr);gap:.75rem;display:grid}@media (min-width:768px){.tech-grid{gap:1rem}}@media (min-width:1024px){.tech-grid{grid-template-columns:repeat(4,1fr);gap:1.25rem}}.tech-card{background:var(--card);border:1px solid var(--border);border-radius:.5rem;padding:1rem;transition:border-color .3s}@media (min-width:768px){.tech-card{border-radius:.75rem;padding:1.25rem}}.tech-card:hover{border-color:var(--accent)}.tech-card-label{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin-bottom:.5rem;font-size:.6rem}@media (min-width:768px){.tech-card-label{margin-bottom:.75rem;font-size:.7rem}}.tech-card ul{list-style:none}.tech-card li{margin-bottom:.25rem;font-size:.75rem}@media (min-width:768px){.tech-card li{margin-bottom:.375rem;font-size:.875rem}}.page{min-height:100vh;padding:2.5rem 0}@media (min-width:768px){.page{padding:4rem 0}}.page-header{margin-bottom:2rem}@media (min-width:768px){.page-header{margin-bottom:3.5rem}}.page-title{margin-bottom:.75rem;font-size:clamp(1.75rem,6vw,3rem);font-weight:600}@media (min-width:768px){.page-title{margin-bottom:1rem}}.page-description{color:var(--muted);max-width:600px;font-size:1rem;line-height:1.7}@media (min-width:768px){.page-description{font-size:1.1rem}}.section{margin-bottom:3rem}@media (min-width:768px){.section{margin-bottom:4rem}}.section-label{color:var(--muted);letter-spacing:.15em;text-transform:uppercase;margin-bottom:1.25rem;font-size:.65rem}@media (min-width:768px){.section-label{margin-bottom:2rem;font-size:.75rem}}.card{background:var(--card);border:1px solid var(--border);border-radius:.5rem;padding:1rem;transition:border-color .3s}@media (min-width:768px){.card{border-radius:.75rem;padding:1.5rem}}@media (min-width:1024px){.card{padding:2rem}}.card:hover{border-color:var(--accent)}.card-header{flex-direction:column;gap:.125rem;margin-bottom:1rem;display:flex}@media (min-width:768px){.card-header{flex-direction:row;justify-content:space-between;align-items:flex-start;gap:.25rem;margin-bottom:1.25rem}}.card-title{font-size:1.1rem;font-weight:600}@media (min-width:768px){.card-title{font-size:1.25rem}}.card-subtitle{color:var(--accent);font-size:.875rem}.card-meta{color:var(--muted);text-align:left;font-size:.75rem}@media (min-width:768px){.card-meta{text-align:right}}.card-list{margin-bottom:1rem;list-style:none}@media (min-width:768px){.card-list{margin-bottom:1.25rem}}.card-list li{color:var(--muted);border-left:2px solid var(--border);margin-bottom:.375rem;padding-left:.75rem;font-size:.8rem;line-height:1.6}@media (min-width:768px){.card-list li{margin-bottom:.5rem;padding-left:1rem;font-size:.875rem;line-height:1.7}}.tags{flex-wrap:wrap;gap:.375rem;display:flex}@media (min-width:768px){.tags{gap:.5rem}}.tag{background:var(--background);border:1px solid var(--border);border-radius:9999px;padding:.3rem .65rem;font-size:.65rem}@media (min-width:768px){.tag{padding:.375rem .875rem;font-size:.75rem}}.grid-3{grid-template-columns:1fr;gap:.75rem;display:grid}@media (min-width:640px){.grid-3{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.grid-3{grid-template-columns:repeat(3,1fr);gap:1.25rem}}.grid-2{grid-template-columns:1fr;gap:.75rem;display:grid}@media (min-width:768px){.grid-2{grid-template-columns:repeat(2,1fr);gap:1.25rem}}.space>*+*{margin-top:1rem}@media (min-width:768px){.space>*+*{margin-top:1.5rem}}.gallery-grid{grid-template-columns:repeat(2,1fr);gap:.75rem;display:grid}@media (min-width:768px){.gallery-grid{grid-template-columns:repeat(2,1fr);gap:1.25rem}}@media (min-width:1024px){.gallery-grid{grid-template-columns:repeat(3,1fr)}}.gallery-item{aspect-ratio:1;background:var(--card);border:1px solid var(--border);border-radius:.5rem;transition:border-color .3s;position:relative;overflow:hidden}@media (min-width:768px){.gallery-item{border-radius:.75rem}}.gallery-item:hover{border-color:var(--accent)}.gallery-item img{transition:transform .3s}.gallery-item:hover img{transform:scale(1.05)}.gallery-overlay{opacity:0;background:linear-gradient(#0000,#000000b3);align-items:flex-end;padding:.75rem;transition:opacity .3s;display:flex;position:absolute;inset:0}@media (min-width:768px){.gallery-overlay{padding:1rem}}.gallery-item:hover .gallery-overlay{opacity:1}.gallery-overlay p{color:#fff;font-size:.7rem}@media (min-width:768px){.gallery-overlay p{font-size:.875rem}}.modal-overlay{z-index:100;background:#000000e6;justify-content:center;align-items:center;padding:1rem;animation:.3s fadeIn;display:flex;position:fixed;inset:0}@media (min-width:768px){.modal-overlay{padding:2rem}}.modal-content{max-width:95vw;max-height:90vh;animation:.3s scaleIn;position:relative}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.modal-close{color:#fff;cursor:pointer;background:0 0;border:none;padding:.5rem;transition:opacity .2s;position:absolute;top:-2.5rem;right:0}@media (min-width:768px){.modal-close{top:-3rem}}.modal-close:hover{opacity:.7}.modal-close svg{width:24px;height:24px}@media (min-width:768px){.modal-close svg{width:28px;height:28px}}.modal-image{object-fit:contain;border-radius:.375rem;max-width:100%;max-height:75vh}@media (min-width:768px){.modal-image{border-radius:.5rem;max-height:80vh}}.modal-description{color:#fff;text-align:center;margin-top:.75rem;font-size:.875rem}@media (min-width:768px){.modal-description{margin-top:1rem;font-size:1rem}}.contact-layout{flex-direction:column;gap:2.5rem;display:flex}@media (min-width:1024px){.contact-layout{flex-direction:row;align-items:center;gap:5rem}}.contact-content{flex:1}.contact-links{margin-top:2rem}@media (min-width:768px){.contact-links{margin-top:2.5rem}}.contact-link{background:var(--card);border:1px solid var(--border);border-radius:.5rem;align-items:center;gap:.75rem;margin-bottom:.75rem;padding:.75rem;transition:border-color .3s;display:flex}@media (min-width:768px){.contact-link{border-radius:.75rem;gap:1rem;margin-bottom:1rem;padding:1rem}}.contact-link:hover{border-color:var(--accent);color:var(--foreground)}.contact-icon{background:var(--background);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}@media (min-width:768px){.contact-icon{width:44px;height:44px}}.contact-icon svg{width:16px;height:16px}@media (min-width:768px){.contact-icon svg{width:20px;height:20px}}.contact-link-label{color:var(--muted);font-size:.65rem}@media (min-width:768px){.contact-link-label{font-size:.75rem}}.contact-link-value{font-size:.8rem;font-weight:500}@media (min-width:768px){.contact-link-value{font-size:1rem}}.contact-visual{flex:1;justify-content:center;display:none}@media (min-width:1024px){.contact-visual{display:flex}}.profile-card{width:100%;max-width:280px;position:relative}@media (min-width:768px){.profile-card{max-width:320px}}.profile-card-glow{background:linear-gradient(135deg,color-mix(in srgb,var(--accent)20%,transparent),transparent);filter:blur(3rem);border-radius:50%;animation:4s ease-in-out infinite pulse;position:absolute;inset:-1rem}.profile-card-inner{background:var(--card);border:1px solid var(--border);text-align:center;border-radius:.75rem;padding:1.5rem;position:relative}@media (min-width:768px){.profile-card-inner{border-radius:1rem;padding:2rem}}.profile-avatar{background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent)50%,transparent));border-radius:50%;justify-content:center;align-items:center;width:140px;height:140px;margin:0 auto 1.25rem;animation:6s ease-in-out infinite float;display:flex;overflow:hidden}@media (min-width:768px){.profile-avatar{width:180px;height:180px;margin:0 auto 1.5rem}}.profile-name{margin-bottom:.25rem;font-size:1.1rem;font-weight:600}@media (min-width:768px){.profile-name{margin-bottom:.5rem;font-size:1.25rem}}.profile-location{color:var(--muted);font-size:.875rem}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes pulse{0%,to{opacity:.4}50%{opacity:.8}}.animate-fade{animation:.8s ease-out forwards fadeIn}.delay-1{opacity:0;animation-delay:.1s}.delay-2{opacity:0;animation-delay:.2s}.delay-3{opacity:0;animation-delay:.3s}.delay-4{opacity:0;animation-delay:.4s}
