:root,[data-theme=light]{--bg: #f7f3ee;--bg-alt: #efe8df;--surface: #fffdfa;--surface-2: #f4ede4;--border: #e4d9cb;--text: #2b2622;--text-soft: #6a6058;--text-mute: #948a80;--accent: #b5562f;--accent-2: #c98a3c;--accent-soft: rgba(181, 86, 47, .1);--accent-grad: linear-gradient(120deg, #b5562f, #c98a3c);--nav-bg: rgba(247, 243, 238, .72);--shadow: 0 18px 40px -24px rgba(90, 60, 40, .4);--shadow-sm: 0 8px 22px -16px rgba(90, 60, 40, .45);--glow: radial-gradient( circle at 70% 30%, rgba(201, 138, 60, .22), transparent 60% )}[data-theme=dark]{--bg: #0b0b10;--bg-alt: #101019;--surface: #14141f;--surface-2: #1a1a28;--border: #262636;--text: #f1f1f6;--text-soft: #b3b3c4;--text-mute: #7c7c92;--accent: #a98bff;--accent-2: #4fd6e3;--accent-soft: rgba(169, 139, 255, .14);--accent-grad: linear-gradient(120deg, #a98bff, #4fd6e3);--nav-bg: rgba(11, 11, 16, .62);--shadow: 0 24px 60px -28px rgba(0, 0, 0, .8);--shadow-sm: 0 12px 30px -20px rgba(0, 0, 0, .7);--glow: radial-gradient( circle at 70% 30%, rgba(169, 139, 255, .28), transparent 60% )}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:Inter,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);line-height:1.65;-webkit-font-smoothing:antialiased;transition:background .4s ease,color .4s ease}h1,h2,h3{font-family:Fraunces,Georgia,serif;line-height:1.1;font-weight:600;letter-spacing:-.01em}a{color:inherit;text-decoration:none}ul{list-style:none}.container{width:min(1080px,100% - 3rem);margin-inline:auto}.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s cubic-bezier(.22,1,.36,1)}.reveal.is-visible{opacity:1;transform:none}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.85rem 1.5rem;border-radius:999px;font-weight:600;font-size:.95rem;border:1px solid transparent;cursor:pointer;transition:transform .2s ease,box-shadow .25s ease,background .25s ease}.btn--primary{background:var(--accent-grad);color:#fff;box-shadow:var(--shadow-sm)}.btn--primary:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.btn--ghost{border-color:var(--border);color:var(--text);background:var(--surface)}.btn--ghost:hover{transform:translateY(-3px);border-color:var(--accent);color:var(--accent)}.nav{position:fixed;inset:0 0 auto 0;z-index:50;transition:background .3s ease,box-shadow .3s ease,border-color .3s ease;border-bottom:1px solid transparent}.nav--scrolled{background:var(--nav-bg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom-color:var(--border)}.nav__inner{width:min(1080px,100% - 3rem);margin-inline:auto;height:70px;display:flex;align-items:center;justify-content:space-between}.nav__brand{display:flex;align-items:center;gap:.6rem;font-weight:700}.nav__mark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--accent-grad);color:#fff;font-family:Fraunces,serif;font-size:1rem}.nav__name{font-family:Fraunces,serif;font-size:1.15rem}.nav__links{display:flex;gap:2rem;font-size:.95rem;color:var(--text-soft)}.nav__links a{position:relative;transition:color .2s ease}.nav__links a:after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:2px;background:var(--accent-grad);transition:width .25s ease}.nav__links a:hover{color:var(--text)}.nav__links a:hover:after{width:100%}.nav__actions{display:flex;align-items:center;gap:.75rem}.theme-toggle{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;transition:transform .3s ease,color .2s ease,border-color .2s ease}.theme-toggle:hover{color:var(--accent);border-color:var(--accent);transform:rotate(20deg)}.nav__burger{display:none;flex-direction:column;gap:5px;width:40px;height:40px;border:1px solid var(--border);border-radius:10px;background:var(--surface);cursor:pointer;align-items:center;justify-content:center}.nav__burger span{width:18px;height:2px;background:var(--text);transition:transform .25s ease,opacity .2s ease}.nav__burger.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav__burger.is-open span:nth-child(2){opacity:0}.nav__burger.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.hero{position:relative;padding:9rem 0 5rem;overflow:hidden}.hero__glow{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--glow);pointer-events:none}.hero__grid{position:relative;width:min(1080px,100% - 3rem);margin-inline:auto;display:grid;grid-template-columns:1.15fr .85fr;gap:3rem;align-items:center}.hero__eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-size:.85rem;font-weight:500;color:var(--text-soft);background:var(--surface);border:1px solid var(--border);padding:.4rem .9rem;border-radius:999px;margin-bottom:1.6rem}.dot{width:8px;height:8px;border-radius:50%;background:#3fbf6f;box-shadow:0 0 0 4px #3fbf6f2e}.hero__title{font-size:clamp(2.4rem,5vw,3.7rem);margin-bottom:1.3rem}.hero__highlight{background:var(--accent-grad);-webkit-background-clip:text;background-clip:text;color:transparent}.hero__lead{font-size:1.15rem;color:var(--text-soft);max-width:38ch;margin-bottom:1.8rem}.hero__meta{display:flex;flex-wrap:wrap;gap:1.2rem;color:var(--text-soft);font-size:.92rem;margin-bottom:2rem}.hero__meta span{display:inline-flex;align-items:center;gap:.45rem}.hero__cta{display:flex;flex-wrap:wrap;gap:.9rem;margin-bottom:2.6rem}.hero__stats{display:flex;gap:2.5rem}.stat strong{display:block;font-family:Fraunces,serif;font-size:1.9rem;color:var(--text)}.stat span{font-size:.82rem;color:var(--text-mute);text-transform:uppercase;letter-spacing:.08em}.hero__visual{position:relative;display:grid;place-items:center;min-height:340px}.avatar{position:relative;width:340px;height:340px;display:grid;place-items:center}.avatar__ring{position:absolute;top:-14px;right:-14px;bottom:-14px;left:-14px;border-radius:50%;background:var(--accent-grad);opacity:.55;filter:blur(2px);animation:spin 14s linear infinite;mask:radial-gradient(transparent 60%,#000 61%);-webkit-mask:radial-gradient(transparent 60%,#000 61%)}.avatar__inner{width:100%;height:100%;border-radius:50%;display:grid;place-items:center;font-family:Fraunces,serif;font-size:4.2rem;color:#fff;background:linear-gradient(150deg,var(--accent),var(--accent-2));box-shadow:var(--shadow);overflow:hidden}.avatar__photo{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}@keyframes spin{to{transform:rotate(360deg)}}.avatar__badge{position:absolute;padding:.5rem .9rem;border-radius:999px;background:var(--surface);border:1px solid var(--border);font-size:.8rem;font-weight:600;color:var(--text-soft);box-shadow:var(--shadow-sm);animation:float 5s ease-in-out infinite}.avatar__badge--1{top:6%;right:-4%}.avatar__badge--2{bottom:16%;left:-10%;animation-delay:1.2s}.avatar__badge--3{bottom:-2%;right:4%;animation-delay:2.4s}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.section{padding:5.5rem 0}.section--alt{background:var(--bg-alt)}.section__kicker{font-size:.82rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:.7rem}.section__title{font-size:clamp(1.8rem,3.5vw,2.6rem);margin-bottom:2.6rem}.about__body{font-size:1.2rem;line-height:1.85;color:var(--text-soft);max-width:70ch}.skills__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}.skill-card{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:1.8rem;height:100%;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.skill-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:var(--accent)}.skill-card__icon{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:var(--accent-soft);color:var(--accent);margin-bottom:1.1rem}.skill-card h3{font-size:1.2rem;margin-bottom:1rem}.skill-card ul{display:flex;flex-wrap:wrap;gap:.5rem}.skill-card li{font-size:.85rem;padding:.35rem .8rem;border-radius:999px;background:var(--surface-2);color:var(--text-soft);border:1px solid var(--border)}.timeline{position:relative;display:flex;flex-direction:column;gap:1.6rem}.timeline__item{position:relative;padding-left:3.2rem}.timeline__item:before{content:"";position:absolute;left:19px;top:42px;bottom:-1.6rem;width:2px;background:var(--border)}.timeline__item:last-child:before{display:none}.timeline__node{position:absolute;left:0;top:6px;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--surface);border:1px solid var(--border);color:var(--accent);z-index:1}.timeline__card{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:1.6rem 1.8rem;transition:transform .25s ease,box-shadow .25s ease}.timeline__card:hover{transform:translate(4px);box-shadow:var(--shadow-sm)}.timeline__head{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.4rem;margin-bottom:.9rem}.timeline__head h3{font-size:1.22rem}.timeline__org{color:var(--text-soft);font-size:.92rem}.timeline__period{font-size:.8rem;font-weight:600;color:var(--accent);background:var(--accent-soft);padding:.3rem .8rem;border-radius:999px;height:fit-content;white-space:nowrap}.timeline__card ul{display:flex;flex-direction:column;gap:.55rem}.timeline__card li{position:relative;padding-left:1.3rem;color:var(--text-soft);font-size:.95rem}.timeline__card li:before{content:"";position:absolute;left:0;top:.6em;width:6px;height:6px;border-radius:50%;background:var(--accent)}.edu__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.4rem}.edu-card{display:flex;gap:1.1rem;background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:1.7rem;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.edu-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:var(--accent)}.edu-card__icon{flex-shrink:0;display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:var(--accent-soft);color:var(--accent)}.edu-card__year{font-size:.8rem;font-weight:600;color:var(--accent)}.edu-card h3{font-size:1.1rem;margin:.3rem 0 .4rem;line-height:1.3}.edu-card p{color:var(--text-soft);font-size:.92rem}.edu-card__detail{display:inline-block;margin-top:.6rem;font-size:.82rem;color:var(--text-mute)}.contact__grid{display:grid;grid-template-columns:1fr 1fr;gap:1.6rem}.contact__card--cta{background:var(--accent-grad);color:#fff;border-radius:22px;padding:2.2rem;box-shadow:var(--shadow)}.contact__card--cta h3{font-size:1.5rem;margin-bottom:.7rem}.contact__card--cta p{opacity:.92;margin-bottom:1.6rem}.contact__row{display:flex;align-items:center;gap:.6rem;font-size:.95rem;padding:.5rem 0;border-top:1px solid rgba(255,255,255,.2);transition:opacity .2s ease}.contact__row:hover{opacity:.8}.contact__refs-title{font-size:1.2rem;margin-bottom:1.1rem}.contact__refs{display:flex;flex-direction:column;gap:1rem}.ref-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:1.1rem 1.3rem;display:flex;flex-direction:column;gap:.15rem}.ref-card strong{font-size:1rem}.ref-card span{color:var(--text-soft);font-size:.88rem}.ref-card__links{display:flex;flex-wrap:wrap;gap:.4rem 1rem;margin-top:.5rem;font-size:.85rem;color:var(--accent)}.ref-card__links a:hover{text-decoration:underline}.footer{border-top:1px solid var(--border);padding:2rem 0;background:var(--bg-alt)}.footer__inner{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.6rem;align-items:center}.footer__name{font-family:Fraunces,serif;font-weight:600}.footer__note{color:var(--text-mute);font-size:.85rem}@media (max-width: 880px){.hero{padding-top:7.5rem}.hero__grid{grid-template-columns:1fr;gap:3.5rem}.hero__visual{order:-1;min-height:260px}.skills__grid,.edu__grid,.contact__grid{grid-template-columns:1fr}.nav__links{position:absolute;top:70px;left:0;right:0;flex-direction:column;gap:0;background:var(--nav-bg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--border);padding:.5rem 1.5rem 1rem;transform:translateY(-12px);opacity:0;pointer-events:none;transition:opacity .25s ease,transform .25s ease}.nav__links.is-open{transform:none;opacity:1;pointer-events:auto}.nav__links a{padding:.8rem 0;border-bottom:1px solid var(--border)}.nav__burger{display:flex}}@media (max-width: 480px){.hero__stats{gap:1.6rem}.stat strong{font-size:1.5rem}}
