*,*:before,*:after{box-sizing:border-box}html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent]{overscroll-behavior:contain}body,html{margin:0;padding:0;font-family:Segoe UI,system-ui,-apple-system,sans-serif;background:#faf7f2;color:#1d2433;line-height:1.6}:root{--teal: #1f6f8b;--green: #1f7a52;--yellow: #e0a800;--orange: #e8703a;--bg: #faf7f2;--bg2: #f1ece3;--border: rgba(29,36,51,.1);--text: #1d2433;--muted: #5b6475;--grad: linear-gradient(135deg, var(--teal) 0%, var(--green) 100%);--scene-1: #fdf1d8;--scene-2: #dff0ea;--scene-3: #e3e9f7;--scene-4: #fbe3dc;--scene-5: #f4efe6}.container{max-width:1100px;margin:0 auto;padding:0 2rem}h1,h2,h3{line-height:1.15}h1{font-size:clamp(2.8rem,7vw,5.5rem);font-weight:900;margin:0 0 1.5rem}h2{font-size:clamp(2rem,4vw,3rem);font-weight:800;margin:0 0 2.5rem}h3{font-size:1.25rem;font-weight:700;margin:0 0 .5rem}p{margin:0 0 1rem;color:var(--muted)}.accent{background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.section-tag{display:inline-block;font-size:.78rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--green);background:#1f7a521a;border:1px solid rgba(31,122,82,.25);border-radius:100px;padding:.25rem .85rem;margin-bottom:1rem}section{padding:7rem 0}.btn{display:inline-block;padding:.85rem 2rem;border-radius:100px;font-weight:700;font-size:.95rem;text-decoration:none;transition:transform .2s,box-shadow .2s;cursor:pointer}.btn:hover{transform:translateY(-3px)}.btn-primary{background:var(--grad);color:#fff;box-shadow:0 8px 30px #1f6f8b47}.btn-primary:hover{box-shadow:0 12px 40px #1f6f8b66}.btn-ghost{background:transparent;color:var(--text);border:1.5px solid var(--border)}.btn-ghost:hover{border-color:var(--green);color:var(--green)}.btn-sm{font-size:.82rem;font-weight:700;padding:.4rem 1rem;border-radius:100px;text-decoration:none;background:#1d24330d;color:var(--text);border:1px solid var(--border);transition:background .2s,color .2s;cursor:pointer}.btn-sm:hover{background:var(--green);color:#fff;border-color:var(--green)}.btn-sm.ghost{background:transparent}.btn-sm.ghost:hover{background:transparent;color:var(--green);border-color:var(--green)}.navbar{position:fixed;top:0;left:0;right:0;z-index:100;padding:.6rem .75rem;display:flex;align-items:center;justify-content:space-between;gap:.6rem;background:#faf7f2e0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);transition:opacity .25s ease,visibility .25s}html:not(.cv-landed) .navbar{opacity:0;visibility:hidden;pointer-events:none}.nav-brand{display:flex;align-items:center;gap:.7rem;flex:none;color:var(--text);font-weight:800;text-decoration:none}.avatar{--d: 38px;--ih: calc(var(--d) / (2 * var(--fr)));--iw: calc(var(--ih) * .75);position:relative;flex:none;width:var(--d);height:var(--d);border-radius:50%;overflow:hidden;background:var(--bg);border:1px solid var(--border);box-sizing:border-box}.avatar img{position:absolute;width:var(--iw);height:var(--ih);max-width:none;left:calc(var(--d) * .5 - var(--fx) * var(--iw));top:calc(var(--d) * .5 - var(--fy) * var(--ih))}.nav-name{display:none}.nav-links{display:flex;gap:.7rem;list-style:none;margin:0;padding:0;min-width:0;overflow-x:auto;scrollbar-width:none}.nav-links a{text-decoration:none;color:var(--muted);font-weight:600;font-size:.76rem;white-space:nowrap;transition:color .2s}.nav-links a:hover{color:var(--text)}.nav-links a.cta{color:var(--green);border:1.5px solid rgba(31,122,82,.4);padding:.25rem .6rem;border-radius:100px}.nav-links a.cta:hover{background:var(--green);color:#fff}@media (min-width: 640px){.navbar{padding:.7rem 2rem;gap:.75rem}.nav-links a.cta{padding:.3rem .8rem}.avatar{--d: 44px}.nav-name{display:inline}.nav-links{gap:2rem}.nav-links a{font-size:.9rem}}section[id]{scroll-margin-top:4.5rem}.about{background:var(--bg2)}.about-grid{display:grid;grid-template-columns:280px 1fr;gap:4rem;align-items:center}.image-placeholder{width:280px;height:280px;border-radius:30px;background:var(--grad);display:flex;align-items:center;justify-content:center;font-size:4rem;font-weight:900;color:#fff}.about-stats{display:flex;gap:2.5rem;margin-top:2.5rem}.stat strong{display:block;font-size:2rem;font-weight:900;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat span{font-size:.85rem;color:var(--muted)}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem}.skill-category{background:var(--bg2);border:1px solid var(--border);border-radius:20px;padding:2rem}.skill-category h3{color:var(--green);margin-bottom:1rem;font-size:.9rem;text-transform:uppercase;letter-spacing:.1em}.skill-pills{display:flex;flex-wrap:wrap;gap:.5rem}.pill{font-size:.82rem;font-weight:600;padding:.3rem .8rem;border-radius:100px;background:#1d24330a;border:1px solid var(--border);color:var(--text);transition:background .2s,border-color .2s}.pill:hover{background:#1f7a521a;border-color:var(--green);color:var(--green)}.projects{background:var(--bg2)}.projects-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.project-card{background:var(--bg);border:1px solid var(--border);border-radius:20px;overflow:hidden;transition:border-color .2s}.project-card:hover{border-color:#1f7a5259}.project-img{height:140px;background:linear-gradient(135deg,var(--c1),var(--c2));position:relative}.project-body{padding:1.5rem}.project-tags{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.75rem}.project-tags span{font-size:.72rem;font-weight:700;padding:.2rem .6rem;border-radius:100px;background:#1f7a521a;color:var(--green);border:1px solid rgba(31,122,82,.25)}.project-links{display:flex;gap:.75rem;margin-top:1.25rem}.timeline{position:relative;padding-left:2rem}.timeline:before{content:"";position:absolute;left:7px;top:8px;bottom:8px;width:2px;background:linear-gradient(to bottom,var(--green),var(--teal),transparent)}.timeline-item{position:relative;margin-bottom:3rem}.timeline-dot{position:absolute;left:-2rem;top:6px;width:16px;height:16px;border-radius:50%;background:var(--bg);border:2px solid var(--green);box-shadow:0 0 12px #1f7a5266}.timeline-content{background:var(--bg2);border:1px solid var(--border);border-radius:16px;padding:1.5rem 2rem}.timeline-date{font-size:.8rem;font-weight:700;color:var(--green);text-transform:uppercase;letter-spacing:.08em}.timeline-place{display:block;font-size:.88rem;color:var(--muted);margin-bottom:.75rem}.contact-sub{font-size:1.1rem;max-width:500px;margin-bottom:3rem}.contact-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.contact-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.4rem;padding:2rem 1.5rem;background:var(--bg2);border:1px solid var(--border);border-radius:20px;text-decoration:none;color:var(--text);transition:border-color .2s,transform .2s}.contact-card:hover{border-color:var(--green);transform:translateY(-4px)}.contact-icon{font-size:1.8rem}.contact-card strong{font-size:1rem;font-weight:700}.contact-card span{font-size:.85rem;color:var(--muted)}footer{text-align:center;padding:2rem;border-top:1px solid var(--border);color:var(--muted);font-size:.85rem}@media (max-width: 900px){.about-grid{grid-template-columns:1fr}.image-placeholder{width:200px;height:200px;font-size:3rem}.skills-grid,.projects-grid,.contact-cards{grid-template-columns:1fr}}.timeline-bullets{margin:.5rem 0 0;padding-left:1.1rem;color:var(--muted)}.timeline-bullets li{margin-bottom:.35rem}.btn{font-family:inherit}button.btn-ghost{background:transparent}@media print{@page{margin:14mm}html,body{background:#fff!important;color:#111!important}.navbar,.no-print,.about-image,.project-img,footer,.contact-sub{display:none!important}section{padding:1.2rem 0!important;break-inside:avoid}.reveal,.reveal-left,.pill{opacity:1!important;visibility:visible!important;transform:none!important}h1,h2,h3,strong{color:#111!important}p,li,span,.timeline-place{color:#333!important}.accent{-webkit-text-fill-color:#111!important;background:none!important}h2{font-size:1.4rem;margin-bottom:1rem}.skill-category,.project-card,.contact-card,.pill{background:none!important;border:1px solid #ccc!important;box-shadow:none!important}.projects-grid,.skills-grid,.contact-cards{grid-template-columns:repeat(2,1fr)!important;gap:.6rem!important}}.print-header{display:none}@media print{.print-header{display:block}.print-header h1{font-size:2.2rem;margin:0 0 .5rem}#intro,.pin-spacer,.skip-link{display:none!important}}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.intro{position:relative;padding:0;overflow:hidden}.scene{position:relative;display:flex;flex-direction:column;align-items:center;gap:1.5rem;min-height:80svh;padding:6rem 1rem 0;background:var(--scene-bg)}.scene .bg{display:none}.scene .pose{width:min(70%,320px);height:auto;order:2}.bubble-wrap{display:flex;justify-content:center;width:100%;order:1}.bubble{position:relative;margin:0;max-width:min(80%,24rem);padding:.9rem 1.2rem;border-radius:1.4rem;background:#fff;color:var(--text);font-size:clamp(1.05rem,4.4vw,1.5rem);font-weight:700;line-height:1.3;box-shadow:0 10px 30px #1d243324}.bubble:after{content:"";position:absolute;left:22%;bottom:-14px;border:13px solid transparent;border-top:16px solid #fff;border-bottom:0}.skip-link{position:absolute;top:1rem;right:1rem;z-index:5;padding:.45rem 1rem;border-radius:100px;background:#ffffffd9;border:1px solid var(--border);color:var(--text);font-size:.82rem;font-weight:700;text-decoration:none}.skip-link:hover{border-color:var(--green);color:var(--green)}.skip-link:focus-visible,.btn:focus-visible{outline:3px solid var(--teal);outline-offset:2px}.intro-loader,.scroll-hint{display:none}.intro.is-animated{height:100vh;height:100svh}.intro.is-animated .scene{position:absolute;top:0;right:0;bottom:0;left:0;display:block;min-height:0;padding:0;background:none}.intro.is-animated .scene .bg{display:block;position:absolute;top:0;right:0;bottom:0;left:0;background:var(--scene-bg)}.intro.is-animated .scene .pose{position:absolute;inset:auto 0 0 0;margin:0 auto;width:auto;height:min(76vh,76svh,120vw);max-width:92%;object-fit:contain;object-position:bottom}.intro.is-animated .bubble-wrap{position:absolute;top:8vh;top:8svh;left:0;right:0;padding:0 1rem;pointer-events:none}.intro.is-animated .intro-loader{display:grid;place-items:center;position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;background:var(--bg)}.loader-dot{width:14px;height:14px;border-radius:50%;background:var(--teal);animation:pulse .9s ease-in-out infinite alternate}@keyframes pulse{0%{transform:scale(.7);opacity:.5}to{transform:scale(1.2);opacity:1}}.intro.is-animated .scroll-hint{display:flex;flex-direction:column;align-items:center;gap:.2rem;position:absolute;right:1rem;bottom:1.2rem;z-index:5;color:var(--text);font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;pointer-events:none}.scroll-hint svg{animation:nudge 1.1s ease-in-out infinite alternate}@keyframes nudge{0%{transform:translateY(-3px)}to{transform:translateY(4px)}}@media (min-width: 900px){.intro.is-animated .pose{height:min(80vh,80svh)}.bubble{font-size:1.6rem}}@media (prefers-reduced-motion: reduce){.loader-dot,.scroll-hint svg{animation:none}.navbar{transition:none}}.section-head{margin-bottom:2.5rem}.section-head h2{margin-bottom:0}.contact-actions{margin-top:2.5rem}button.btn{border:0}
