:root{--bg: oklch(97% .01 65);--bg-alt: oklch(93% .016 60);--bg-card: oklch(99% .006 65);--text: oklch(18% .03 45);--text-muted: oklch(50% .025 50);--accent: oklch(58% .16 38);--accent-warm: oklch(68% .14 58);--border: oklch(87% .016 65);--serif: "DM Serif Display", Georgia, serif;--sans: "Outfit", system-ui, sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--sans);background:var(--bg);color:var(--text);line-height:1.65;overflow-x:hidden;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E")}nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:1.1rem 3rem;background:#faf4eee0;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--border);transition:padding .3s}.nav-logo{font-family:var(--serif);font-size:1.15rem;letter-spacing:-.01em;color:var(--text);text-decoration:none}.nav-links{display:flex;gap:2rem;list-style:none}.nav-links a{font-size:.85rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);text-decoration:none;transition:color .2s}.nav-links a:hover{color:var(--accent)}#hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:8rem 3rem 5rem;position:relative;overflow:hidden}.hero-glow{position:absolute;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,oklch(75% .08 145 / .18) 0%,transparent 70%);top:-100px;right:-100px;pointer-events:none}.hero-glow-2{position:absolute;width:400px;height:400px;border-radius:50%;background:radial-gradient(circle,oklch(75% .09 72 / .14) 0%,transparent 70%);bottom:50px;left:5%;pointer-events:none}.hero-eyebrow{font-size:.82rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:1.2rem;opacity:0;animation:fadeUp .7s .2s ease forwards}.hero-name{font-family:var(--serif);font-size:clamp(3rem,7vw,6.5rem);line-height:1.02;letter-spacing:-.02em;color:var(--text);max-width:900px;opacity:0;animation:fadeUp .8s .35s ease forwards}.hero-name em{font-style:italic;color:var(--accent)}.hero-tagline{margin-top:1.6rem;font-size:clamp(1rem,2vw,1.22rem);color:var(--text-muted);max-width:520px;font-weight:300;line-height:1.6;opacity:0;animation:fadeUp .8s .5s ease forwards}.hero-cta{margin-top:2.5rem;display:flex;gap:1rem;flex-wrap:wrap;opacity:0;animation:fadeUp .8s .65s ease forwards}.btn-primary{display:inline-block;padding:.8rem 1.8rem;background:var(--accent);color:#fff;border-radius:6px;font-family:var(--sans);font-weight:500;font-size:.9rem;text-decoration:none;letter-spacing:.02em;transition:background .2s,transform .15s}.btn-primary:hover{background:#a33100;background:oklch(48% .16 38);transform:translateY(-2px)}.btn-outline{display:inline-block;padding:.8rem 1.8rem;border:1.5px solid var(--border);color:var(--text);border-radius:6px;font-family:var(--sans);font-weight:500;font-size:.9rem;text-decoration:none;transition:border-color .2s,color .2s,transform .15s}.btn-outline:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}.hero-scroll-hint{position:absolute;bottom:2.5rem;left:3rem;display:flex;align-items:center;gap:.6rem;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);opacity:0;animation:fadeUp .8s 1s ease forwards}.scroll-line{width:40px;height:1px;background:var(--text-muted);position:relative;overflow:hidden}.scroll-line:after{content:"";position:absolute;left:-100%;top:0;width:100%;height:100%;background:var(--accent);animation:slideLine 1.8s 1.2s infinite ease-in-out}section{padding:6rem 3rem}section:nth-child(2n){background:var(--bg-alt)}.section-label{font-size:.78rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:.6rem}.section-title{font-family:var(--serif);font-size:clamp(2rem,4vw,3rem);line-height:1.1;letter-spacing:-.02em;color:var(--text);margin-bottom:3rem}.container{max-width:1080px;margin:0 auto}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}.about-text p{color:var(--text-muted);font-weight:300;font-size:1.05rem;margin-bottom:1.2rem}.about-text p strong{color:var(--text);font-weight:600}.about-stats{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:1.4rem 1.2rem;transition:transform .2s,box-shadow .2s}.stat-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #21191014}.stat-number{font-family:var(--serif);font-size:2.2rem;color:var(--accent-warm);line-height:1;margin-bottom:.3rem}.stat-label{font-size:.82rem;color:var(--text-muted);font-weight:400}.projects-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem}.project-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:transform .25s,box-shadow .25s}.project-card:hover{transform:translateY(-5px);box-shadow:0 16px 40px #2119101a}.project-preview{height:220px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.project-preview-dnd{background:linear-gradient(135deg,#3b2a17,#2b1400);background:linear-gradient(135deg,#3b2a17,color(xyz 0.013 0.01 -0))}.project-preview-blog{background:linear-gradient(135deg,#e2d7ba,#dbbf99)}.project-preview-icon{width:100%;height:100%;-webkit-user-select:none;user-select:none}.project-preview-icon img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}.project-preview-label{position:absolute;bottom:0;left:0;right:0;padding:.6rem 1rem;font-size:.72rem;font-family:monospace;letter-spacing:.08em;text-transform:uppercase}.project-preview-dnd .project-preview-label{color:#b09a84;background:#221202b3}.project-preview-blog .project-preview-label{color:#564430;background:#e5ddd0b3}.project-body{padding:1.6rem}.project-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.8rem}.tag{font-size:.7rem;font-weight:500;padding:.22rem .6rem;border-radius:100px;letter-spacing:.04em;background:#c6e9c64d;color:#29532b}.tag.warm{background:#fcd7ab4d;color:#714909}.project-name{font-family:var(--serif);font-size:1.5rem;margin-bottom:.5rem;color:var(--text)}.project-desc{font-size:.9rem;color:var(--text-muted);font-weight:300;line-height:1.6;margin-bottom:1.2rem}.project-link{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;font-weight:500;color:var(--accent);text-decoration:none;transition:gap .2s}.project-link:hover{gap:.7rem}.project-link svg{width:14px;height:14px}.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem}.skill-group{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:1.5rem}.skill-group-title{font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-warm);margin-bottom:1rem}.skill-pills{display:flex;flex-wrap:wrap;gap:.45rem}.skill-pill{font-size:.82rem;padding:.3rem .75rem;border:1px solid var(--border);border-radius:5px;color:var(--text);background:var(--bg);font-weight:400;transition:border-color .2s,color .2s,background .2s}.skill-pill:hover{border-color:var(--accent);color:var(--accent);background:#ffd3c526;background:oklch(90% .06 38 / .15)}.skill-pill.learning{border-style:dashed;color:var(--text-muted);font-style:italic}.education-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:2.5rem;display:flex;gap:2rem;align-items:flex-start;max-width:700px}.edu-icon{width:56px;height:56px;border-radius:10px;background:linear-gradient(135deg,var(--accent) 0%,oklch(48% .16 38) 100%);display:flex;align-items:center;justify-content:center;flex-shrink:0}.edu-icon svg{width:26px;height:26px;color:#fff}.edu-institution{font-size:.78rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:.3rem}.edu-degree{font-family:var(--serif);font-size:1.45rem;color:var(--text);margin-bottom:.4rem}.edu-meta{font-size:.85rem;color:var(--text-muted)}.edu-note{margin-top:.8rem;font-size:.88rem;color:var(--text-muted);font-weight:300;line-height:1.5}#contact{background:linear-gradient(160deg,var(--bg) 0%,var(--bg-alt) 100%)}.contact-inner{max-width:600px}.contact-intro{font-size:1.05rem;color:var(--text-muted);font-weight:300;margin-bottom:2.5rem;line-height:1.65}.contact-links{display:flex;flex-direction:column;gap:1rem}.contact-link{display:flex;align-items:center;gap:1rem;padding:1.1rem 1.4rem;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;text-decoration:none;color:var(--text);font-size:.95rem;transition:transform .2s,border-color .2s,box-shadow .2s}.contact-link:hover{transform:translate(4px);border-color:var(--accent);box-shadow:0 4px 16px #21191012}.contact-link-icon{width:36px;height:36px;border-radius:8px;background:#ffd3c540;background:oklch(90% .06 38 / .25);display:flex;align-items:center;justify-content:center;flex-shrink:0}.contact-link-icon svg{width:18px;height:18px;color:var(--accent)}.contact-link-icon.warm{background:#fcd7ab40}.contact-link-icon.warm svg{color:var(--accent-warm)}.contact-link-label{font-weight:500}.contact-link-sub{font-size:.8rem;color:var(--text-muted)}.contact-arrow{margin-left:auto;color:var(--text-muted);transition:color .2s}.contact-link:hover .contact-arrow{color:var(--accent)}footer{padding:2rem 3rem;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;font-size:.8rem;color:var(--text-muted)}footer a{color:var(--accent);text-decoration:none}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideLine{0%{left:-100%}50%{left:100%}to{left:100%}}.reveal{opacity:0;transform:translateY(24px);transition:opacity .65s ease,transform .65s ease}.reveal.visible{opacity:1;transform:translateY(0)}@media (max-width: 768px){nav{padding:1rem 1.5rem}.nav-links{gap:1.2rem}section{padding:4rem 1.5rem}#hero{padding:7rem 1.5rem 4rem}.about-grid{grid-template-columns:1fr;gap:2.5rem}.projects-grid,.skills-grid{grid-template-columns:1fr}footer{flex-direction:column;gap:.5rem;text-align:center}.hero-scroll-hint{left:1.5rem}}
