:root{--bg: #f4e7d3;--bg-tint: #efe1c9;--surface: #fbf5ea;--ink: #2e2e2d;--ink-2: #424241;--muted: #6e6e6a;--muted-2: #93938e;--accent: #424241;--on-accent: #fbf5ea;--ring: rgba(66, 66, 65, .18);--line: rgba(66, 66, 65, .12);--good: #3aa55d;--brand: #b4532a;--brand-2: #d9784c;--brand-soft: rgba(180, 83, 42, .1);--dark: #2b2724;--dark-2: #3a342f;--on-dark: #f4e7d3;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--space-8: 4rem;--radius: 16px;--radius-sm: 10px;--pill: 999px;--shadow: 0 18px 45px -22px rgba(66, 66, 65, .45);--shadow-sm: 0 8px 24px -16px rgba(66, 66, 65, .5);--header-h: 72px;--maxw: 1280px;--pad: clamp(1.25rem, 5vw, 3.5rem);--section-pad: clamp(3.5rem, 8vw, 7rem);--fs-hero: clamp(2rem, 1.1rem + 2.6vw, 3rem);--fs-title: clamp(1.8rem, 1.2rem + 2.6vw, 2.8rem);--fs-lead: clamp(1.05rem, 1rem + .4vw, 1.25rem)}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;background-color:var(--bg);color:var(--ink-2);font-family:Poppins,system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.65;overflow-x:hidden;-webkit-font-smoothing:antialiased}img{max-width:100%;display:block}h1,h2,h3{color:var(--ink);line-height:1.15;margin:0}p{margin:0}a{color:inherit}strong{font-weight:700}ul,ol{margin:0;padding:0;list-style:none}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.container{width:min(100%,var(--maxw));margin-inline:auto;padding-inline:var(--pad)}.section{padding-block:var(--section-pad);scroll-margin-top:calc(var(--header-h) + 12px)}.section--tint{background-color:var(--bg-tint)}.section__eyebrow,.hero__eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.8rem;font-weight:600;color:var(--muted);margin:0 0 var(--space-3)}.section__title{font-size:var(--fs-title);font-weight:700;max-width:20ch}.section__lead{margin-top:var(--space-4);font-size:var(--fs-lead);color:var(--muted);max-width:60ch}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);height:100%}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.8rem 1.4rem;border-radius:var(--pill);border:1.5px solid transparent;font:inherit;font-weight:600;text-decoration:none;cursor:pointer;transition:transform .15s ease,background .2s ease,border-color .2s ease,color .2s ease}.btn:hover{transform:translateY(-2px)}.btn--primary{background:var(--accent);color:var(--on-accent)}.btn--primary:hover{background:#2f2f2e}.btn--ghost{background:transparent;color:var(--ink);border-color:var(--ring)}.btn--ghost:hover{border-color:var(--ink);background:#4242410d}.btn--sm{padding:.5rem 1rem;font-size:.9rem}.btn__icon{width:1.15em;height:1.15em}.badge{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem .85rem;border-radius:var(--pill);background:#4242410d;border:1px solid var(--ring);font-size:.85rem;font-weight:500;color:var(--ink-2);margin-bottom:var(--space-5)}.badge__dot{width:.55rem;height:.55rem;border-radius:50%;background:var(--good);box-shadow:0 0 #3aa55d66;animation:pulse 2.2s infinite}@keyframes pulse{0%{box-shadow:0 0 #3aa55d66}70%{box-shadow:0 0 0 8px #3aa55d00}to{box-shadow:0 0 #3aa55d00}}.tags{display:flex;flex-wrap:wrap;gap:.5rem}.tag{padding:.35rem .75rem;border-radius:var(--pill);background:#4242410f;border:1px solid var(--line);font-size:.85rem;color:var(--ink-2)}.tags--sm .tag{font-size:.78rem;padding:.25rem .6rem}.site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 85%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:box-shadow .25s ease,background .25s ease}.site-header.is-scrolled{box-shadow:0 1px 0 var(--line),0 10px 30px -24px #42424199}.site-header__progress{position:absolute;left:0;bottom:0;height:3px;max-width:100%;background:linear-gradient(90deg,var(--muted),var(--ink));transition:width .1s linear}.site-header__inner{width:min(100%,var(--maxw));margin-inline:auto;padding-inline:var(--pad);height:var(--header-h);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.brand{font-size:clamp(1.5rem,1.2rem + 1vw,1.9rem);font-weight:600;color:var(--ink);text-decoration:none;letter-spacing:-.01em}.brand strong{color:var(--muted);font-weight:700}.nav{display:flex;align-items:center}.nav--desktop{gap:clamp(1rem,2.5vw,2rem)}.nav__link{position:relative;text-decoration:none;color:var(--ink-2);font-size:1rem;font-weight:500;opacity:.7;padding:.25rem 0;transition:opacity .2s ease}.nav__link:after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);transition:width .25s ease}.nav__link:hover{opacity:1}.nav__link.is-active{opacity:1;font-weight:600}.nav__link.is-active:after{width:100%}.site-header__actions{display:flex;align-items:center;gap:var(--space-3)}.nav-toggle{display:none;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--ring);border-radius:var(--radius-sm);background:transparent;color:var(--ink);cursor:pointer}.nav-toggle svg{width:24px;height:24px}.nav--mobile{display:none}.hero{position:relative;overflow:hidden;min-height:calc(100vh - var(--header-h));min-height:calc(100svh - var(--header-h));display:flex;align-items:center;scroll-margin-top:var(--header-h)}.hero__inner{position:relative;z-index:1;display:grid;grid-template-columns:1fr;gap:clamp(2rem,6vw,4rem);align-items:center;padding-block:clamp(1.5rem,3vh,2.5rem)}.hero__glow{position:absolute;z-index:0;top:50%;right:0;width:min(70vw,760px);aspect-ratio:1;transform:translate(18%,-50%);background:radial-gradient(circle,#f7eedef2,#f4e7d300 62%);pointer-events:none}.hero__content{max-width:640px}.hero__title{font-size:var(--fs-hero);font-weight:700;letter-spacing:-.02em;text-wrap:balance}.hero__lead{margin-top:var(--space-4);font-size:var(--fs-lead);color:var(--muted);max-width:50ch}.hero__lead strong{color:var(--ink-2)}.hero__actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-5)}.stats{display:flex;flex-wrap:wrap;gap:clamp(1.5rem,5vw,3rem);margin:var(--space-6) 0 0}.stats__item{margin:0}.stats__value{font-size:clamp(1.6rem,1.2rem + 1.4vw,2.2rem);font-weight:700;color:var(--ink)}.stats__label{margin:.15rem 0 0;color:var(--muted);font-size:.9rem;max-width:14ch}.hero__visual{position:relative;display:grid;place-items:center;justify-self:center;width:min(86vw,620px);aspect-ratio:1;animation:float 7s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-16px)}}.hero__portrait{grid-area:1 / 1;width:100%;height:100%;border-radius:50%;overflow:hidden;background:radial-gradient(circle at 50% 32%,#fbf5ea,#ecdcc2);box-shadow:0 34px 70px -30px #42424180}.hero__photo{width:100%;height:100%;object-fit:cover;object-position:50% 18%;display:block}.hero__ring{grid-area:1 / 1;width:100%;height:100%;border-radius:50%;border:clamp(6px,1.4vw,12px) solid rgba(255,255,255,.6);box-shadow:inset 0 0 0 1.5px #4242411a;z-index:2;pointer-events:none}.hero__scroll{position:absolute;left:50%;bottom:clamp(1rem,3vw,2rem);transform:translate(-50%);display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid var(--ring);color:var(--ink-2);background:var(--surface);animation:bob 2s ease-in-out infinite}.hero__scroll svg{width:20px;height:20px}@keyframes bob{0%,to{transform:translate(-50%)}50%{transform:translate(-50%,6px)}}.marquee{overflow:hidden;border-block:1px solid var(--line);background:var(--bg-tint);padding-block:var(--space-4);-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}.marquee__track{display:flex;width:max-content;align-items:center;gap:clamp(1.5rem,4vw,3rem);animation:marquee 36s linear infinite}.marquee:hover .marquee__track{animation-play-state:paused}.marquee__item{display:inline-flex;align-items:center;gap:clamp(1.5rem,4vw,3rem);font-size:clamp(1.05rem,.9rem + .6vw,1.5rem);font-weight:600;color:var(--ink);opacity:.65;white-space:nowrap}.marquee__dot{width:6px;height:6px;border-radius:50%;background:var(--muted-2)}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.about__grid{display:grid;grid-template-columns:1fr;gap:clamp(2rem,5vw,3.5rem);margin-top:var(--space-7);align-items:start}.about__text{font-size:var(--fs-lead);color:var(--muted)}.about__text+.about__text{margin-top:var(--space-4)}.about__card{padding:var(--space-6)}.facts{display:grid}.facts__item{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) 0;border-bottom:1px solid var(--line)}.facts__item:last-child{border-bottom:none}.facts__label{font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-2)}.facts__value{font-weight:600;color:var(--ink);text-align:right}.about__chips{margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--line)}.about__chips-label{display:block;font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-2);margin-bottom:var(--space-3)}.env{margin-top:clamp(2rem,5vw,3.5rem)}.env__figure{margin:0 auto;max-width:920px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow);background:var(--surface)}.env__img{width:100%;height:auto;display:block}.env__caption{padding:var(--space-3) var(--space-4);text-align:center;color:var(--muted);font-weight:600;font-size:.9rem;border-top:1px solid var(--line)}.skills__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--space-5);margin-top:var(--space-7)}.skill-group{padding:var(--space-6);transition:transform .2s ease,box-shadow .2s ease}.skill-group:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.skill-group__title{font-size:1.15rem;margin-bottom:var(--space-4)}.tag{transition:border-color .2s ease,color .2s ease,background .2s ease}.tag:hover{border-color:var(--ring);color:var(--ink);background:#4242411a}.timeline{position:relative;margin-top:var(--space-7);padding-left:2rem}.timeline:before{content:"";position:absolute;left:7px;top:6px;bottom:6px;width:2px;background:var(--ring)}.timeline__item{position:relative;padding-bottom:var(--space-6)}.timeline__item:last-child{padding-bottom:0}.timeline__marker{position:absolute;left:calc(-2rem + 1px);top:6px;width:16px;height:16px;border-radius:50%;background:var(--surface);border:3px solid var(--accent)}.timeline__item--education .timeline__marker{border-color:var(--muted-2)}.timeline__card{padding:var(--space-5)}.timeline__period{display:inline-block;font-size:.8rem;font-weight:600;letter-spacing:.04em;color:var(--muted);text-transform:uppercase}.timeline__role{font-size:1.2rem;margin-top:var(--space-2)}.timeline__org{color:var(--accent);font-weight:600;margin-top:.1rem}.timeline__desc{margin-top:var(--space-3);color:var(--muted)}.work__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:var(--space-5);margin-top:var(--space-7)}.project-card{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-6);transition:transform .2s ease,box-shadow .2s ease}.project-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.project-card__title{font-size:1.2rem}.project-card__desc{color:var(--muted);flex:1}.project-card__link{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;text-decoration:none;color:var(--accent);margin-top:var(--space-2)}.project-card__link:hover{gap:.7rem}.contact__card{padding:clamp(2rem,6vw,4rem);text-align:center;display:flex;flex-direction:column;align-items:center}.contact__card .section__lead{margin-inline:auto}.contact__title{max-width:22ch}.contact__actions{margin-top:var(--space-6)}.contact__meta{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-5);margin-top:var(--space-6);color:var(--muted)}.contact__meta li{display:inline-flex;align-items:center;gap:.5rem}.contact__meta-icon{width:1.1rem;height:1.1rem}.contact__social{display:inline-flex;align-items:center;gap:.5rem;text-decoration:none;color:var(--ink-2);font-weight:500;transition:color .2s ease}.contact__social:hover{color:var(--accent)}.contact__social-arrow{width:.9rem;height:.9rem;transform:rotate(-45deg)}.site-footer{border-top:1px solid var(--line);padding-block:var(--space-6)}.site-footer__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-4)}.site-footer__brand{font-size:1.3rem;font-weight:600;color:var(--ink)}.site-footer__brand strong{color:var(--muted)}.site-footer__copy{color:var(--muted);font-size:.9rem}.site-footer__links{display:flex;gap:var(--space-4)}.site-footer__links a{color:var(--ink-2);text-decoration:none;font-size:.9rem}.site-footer__links a:hover{color:var(--accent)}.reveal{opacity:0;transform:translateY(26px);transition:opacity .6s ease,transform .6s ease}.reveal.is-visible{opacity:1;transform:none}@media (min-width: 768px){.about__grid{grid-template-columns:1.5fr 1fr;align-items:start}}@media (min-width: 900px){.hero__inner{grid-template-columns:1fr 1fr}.hero__visual{justify-self:center}}@media (min-width: 900px){.nav-toggle,.nav--mobile{display:none!important}}@media (max-width: 899px){.nav--desktop,.site-header__actions .btn{display:none}.nav-toggle{display:inline-flex}.nav--mobile{display:flex;flex-direction:column;gap:var(--space-2);position:fixed;top:var(--header-h);left:0;right:0;padding:var(--space-5) var(--pad) var(--space-7);background:var(--bg);border-bottom:1px solid var(--line);box-shadow:var(--shadow);transform:translateY(-12px);opacity:0;visibility:hidden;transition:opacity .25s ease,transform .25s ease,visibility .25s}.nav--mobile.is-open{transform:translateY(0);opacity:1;visibility:visible}.nav--mobile .nav__link{font-size:1.25rem;padding:var(--space-3) 0;border-bottom:1px solid var(--line)}.nav--mobile .nav__link:after{display:none}.nav--mobile .btn{margin-top:var(--space-4)}}@media (max-width: 480px){.hero__actions .btn,.contact__actions .btn{width:100%}.about__body .facts{grid-template-columns:1fr}.stats{gap:var(--space-5) var(--space-6)}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.badge__dot,.hero__scroll,.hero__circle,.marquee__track{animation:none}.btn:hover,.project-card:hover{transform:none}}.project-card--featured{margin-top:var(--space-7);border-color:var(--ring)}.project-card--featured+.work__grid,.work .reveal+.work__grid{margin-top:var(--space-5)}.project-card__head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-2) var(--space-4)}.project-card--featured .project-card__title{font-size:clamp(1.3rem,1.1rem + .8vw,1.6rem)}.project-card__period{color:var(--muted-2);font-size:.85rem;font-weight:600}.project-card__highlights{margin:0;padding-left:1.15rem;list-style:disc;display:grid;gap:var(--space-2);color:var(--ink-2)}.project-card__highlights li::marker{color:var(--muted-2)}@media (min-width: 900px){.project-card__highlights{grid-template-columns:1fr 1fr;column-gap:var(--space-6)}}.section__eyebrow,.hero__eyebrow{color:var(--brand);display:flex;align-items:center;gap:.6rem}.section__eyebrow:before{content:"";width:1.6rem;height:2px;border-radius:2px;background:currentColor}.contact__card .section__eyebrow{justify-content:center}.contact__card .section__eyebrow:after{content:"";width:1.6rem;height:2px;border-radius:2px;background:currentColor}.hero__title,.section__title{text-wrap:balance}.btn--link{background:none;border-color:transparent;color:var(--ink-2);padding-inline:.6rem}.btn--link:hover{color:var(--brand);background:var(--brand-soft)}.tag:hover{border-color:#b4532a59;color:var(--brand);background:var(--brand-soft)}.skill-group{position:relative;overflow:hidden}.skill-group:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,var(--brand),var(--brand-2));transform:scaleX(0);transform-origin:left;transition:transform .35s ease}.skill-group:hover:before{transform:scaleX(1)}.skill-group__icon{display:grid;place-items:center;width:2.6rem;height:2.6rem;border-radius:12px;background:var(--brand-soft);color:var(--brand);margin-bottom:var(--space-4)}.skill-group__icon svg{width:1.35rem;height:1.35rem}.timeline__period{color:var(--brand)}.timeline__item--current .timeline__marker{background:var(--brand);border-color:var(--brand);box-shadow:0 0 0 5px var(--brand-soft)}.timeline__item--current .timeline__card{border-color:#b4532a4d;box-shadow:var(--shadow)}.timeline__now{display:inline-block;margin-left:.6rem;padding:.1rem .55rem;border-radius:var(--pill);background:var(--brand);color:var(--on-dark);font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;vertical-align:1px}.project-card--featured{position:relative;overflow:hidden;background:radial-gradient(120% 140% at 100% 0%,var(--dark-2),var(--dark) 60%);border-color:var(--dark);color:var(--on-dark);box-shadow:var(--shadow)}.project-card--featured:after{content:"";position:absolute;right:-6rem;top:-6rem;width:18rem;height:18rem;border-radius:50%;background:radial-gradient(circle,rgba(217,120,76,.28),transparent 70%);pointer-events:none}.project-card--featured .project-card__title{color:#fff}.project-card--featured .project-card__desc,.project-card--featured .project-card__highlights{color:#f4e7d3d1}.project-card--featured .project-card__highlights li::marker{color:var(--brand-2)}.project-card--featured .project-card__period{color:#f4e7d399}.project-card--featured .tag{background:#f4e7d314;border-color:#f4e7d329;color:var(--on-dark)}.project-card--featured .tag:hover{background:#d9784c33;border-color:#d9784c80;color:#fff}.project-card--featured .project-card__link{color:var(--brand-2)}.project-card__flag{align-self:flex-start;padding:.2rem .65rem;border-radius:var(--pill);background:#d9784c2e;color:var(--brand-2);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.project-card__link{color:var(--brand)}.contact__card{position:relative;overflow:hidden;border-color:#b4532a33}.contact__card:before{content:"";position:absolute;inset:auto -20% -60%;height:80%;background:radial-gradient(closest-side,rgba(217,120,76,.16),transparent);pointer-events:none}.contact__card>*{position:relative}@media print{@page{size:A4;margin:14mm 14mm 16mm}html,body{background:#fff!important;color:#222;font-size:10.5pt;line-height:1.45}.site-header,.site-footer,.marquee,.badge,.hero__glow,.hero__ring,.hero__scroll,.hero__actions,.env,.project-card__link,.contact__title,.contact__card .section__lead{display:none!important}.reveal{opacity:1!important;transform:none!important;transition:none!important}.container{max-width:none;padding-inline:0}.section,.section--tint{padding-block:5mm 0;background:none!important}.section__eyebrow{margin-bottom:1mm}.section__title{font-size:15pt;max-width:none}.section__eyebrow,.section__title,.section__lead,.section .container>.reveal:first-child{break-after:avoid}.about__text,.timeline__desc,.project-card__desc,.project-card__highlights{font-size:10pt}.about__text+.about__text{margin-top:2mm}.section__lead{font-size:10.5pt}.card{background:none!important;box-shadow:none!important;border:1px solid #ddd;break-inside:avoid}.hero{min-height:0;overflow:visible}.hero__inner{grid-template-columns:1fr 34mm;gap:8mm;padding-block:0}.hero__visual{width:34mm;animation:none}.hero__portrait{box-shadow:none}.hero__title{font-size:20pt}.hero__lead{font-size:11pt}.stats{margin-top:4mm;gap:8mm}.stats__value{font-size:15pt}.about__grid{grid-template-columns:1.5fr 1fr;gap:6mm;margin-top:3mm}.timeline{margin-top:3mm}.timeline__item{padding-bottom:2.5mm}.about__card{padding:4mm}.skills__grid,.work__grid{grid-template-columns:1fr 1fr;gap:3mm;margin-top:3mm}.skill-group,.project-card{padding:4mm}.project-card--featured{margin-top:3mm}.tag{background:none!important;border:1px solid #ccc;padding:.5mm 2mm;font-size:8.5pt}.timeline__card{padding:2.5mm 4mm}.timeline__role{font-size:11pt}.timeline__desc{margin-top:1mm}.timeline__item{break-inside:avoid}.contact__card{border:none;padding:0;text-align:left;align-items:flex-start}.contact__actions{margin-top:2mm}.contact__actions .btn{border:none;padding:0;width:auto!important;background:none!important;color:#222!important}.contact__actions .btn+.btn{margin-left:6mm}a{color:inherit}.project-card--featured,.project-card--featured .project-card__title,.project-card--featured .project-card__desc,.project-card--featured .project-card__highlights,.project-card--featured .tag{color:#222!important}.project-card--featured:after,.contact__card:before,.project-card__flag,.skill-group__icon,.timeline__now{display:none!important}.section__eyebrow,.timeline__period{color:#555!important}.section__eyebrow:before,.section__eyebrow:after{display:none}}
