@keyframes moveHorizontal{0%{transform:translate(-50%)translateY(-10%)}50%{transform:translate(50%)translateY(10%)}to{transform:translate(-50%)translateY(-10%)}}@keyframes moveInCircle{0%{transform:rotate(0)}50%{transform:rotate(180deg)}to{transform:rotate(360deg)}}@keyframes moveVertical{0%{transform:translateY(-50%)}50%{transform:translateY(50%)}to{transform:translateY(-50%)}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--font-display:"Bodoni Moda",serif;--font-body:"Manrope",system-ui,sans-serif;--font-mono:"IBM Plex Mono",monospace;--type-hero:clamp(2.4rem,6vw,4.2rem);--type-section:clamp(1.8rem,3.2vw,2.6rem);--type-subhead:clamp(1.2rem,2.2vw,1.45rem);--type-body:1rem;--type-small:.875rem;--bg:#f7f6f3;--page-bg:radial-gradient(1000px 600px at 10% 8%,#2a9c751f,transparent 60%),radial-gradient(900px 520px at 90% 0%,#11131814,transparent 62%),var(--bg);--surface:#fff;--surface-soft:#f0eee8;--text:#111318;--muted:#3f4653;--line:#c9c3b7;--accent:#2a9c75;--accent-strong:#1f7d5c;--accent-soft:#d7f3ea;--shadow-soft:0 20px 40px #11131814;--shadow-strong:0 26px 56px #11131829;--top-bar-height:82px;--motion-duration-page:.26s;--motion-duration-reveal:.7s;--motion-duration-hover:.22s;--motion-page-delay:90ms;--motion-delay-step:82ms;--motion-ease-page:cubic-bezier(.16,1,.3,1);--motion-ease-reveal:cubic-bezier(.16,1,.3,1);--motion-ease-hover:cubic-bezier(.22,1,.36,1);--motion-translate-lg:12px;--motion-translate-sm:8px;--cursor-dot-size:6px;--cursor-ring-size:34px;--cursor-color:var(--accent);--cursor-ring:#2a9c7566;--cursor-ring-fill:#2a9c7514}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#1a1a1a;--page-bg:radial-gradient(1000px 620px at 10% 8%,#2a9c7529,transparent 58%),radial-gradient(1000px 620px at 90% 0%,#8d9eb914,transparent 62%),var(--bg);--surface:#151515;--surface-soft:#1d1d1d;--text:#f4f2ec;--muted:#c5c9d4;--line:#2a2a2a;--accent:#2a9c75;--accent-strong:#3db890;--accent-soft:#2a9c7538;--shadow-soft:0 20px 40px #0000006b;--shadow-strong:0 26px 56px #00000085}*{box-sizing:border-box}body{min-height:100vh;color:var(--text);font-family:var(--font-body);font-size:var(--type-body);background:var(--bg);margin:0;line-height:1.65;overflow-x:hidden}html.cursor-enabled,html.cursor-enabled body{cursor:none}html.cursor-enabled a,html.cursor-enabled button,html.cursor-enabled [role=button],html.cursor-enabled input,html.cursor-enabled textarea,html.cursor-enabled select,html.cursor-enabled label,html.cursor-enabled [data-cursor=interactive]{cursor:none!important}.custom-cursor{pointer-events:none;z-index:120;opacity:0;transition:opacity .2s var(--motion-ease-hover);position:fixed;inset:0}html.cursor-enabled.cursor-ready .custom-cursor{opacity:1}html.cursor-hidden .custom-cursor{opacity:0}.cursor-dot,.cursor-ring{will-change:transform;position:fixed;top:0;left:0}.cursor-dot{width:var(--cursor-dot-size);height:var(--cursor-dot-size);background:var(--cursor-color);transform:translate3d(calc(var(--cursor-x,-9999px) - 50%),calc(var(--cursor-y,-9999px) - 50%),0)scale(var(--cursor-dot-scale,1));transition:opacity .18s var(--motion-ease-hover),transform .14s var(--motion-ease-hover);border-radius:999px}.cursor-ring{width:var(--cursor-ring-size);height:var(--cursor-ring-size);border:1px solid var(--cursor-ring);background:var(--cursor-ring-fill);transform:translate3d(calc(var(--cursor-ring-x,-9999px) - 50%),calc(var(--cursor-ring-y,-9999px) - 50%),0)scale(var(--cursor-scale,1));transition:opacity .2s var(--motion-ease-hover),transform .16s var(--motion-ease-hover),border-color .2s var(--motion-ease-hover),background .2s var(--motion-ease-hover);border-radius:999px}html.cursor-interactive .cursor-ring{--cursor-scale:1.24;background:#2a9c7529;border-color:#2a9c75e6}html.cursor-interactive .cursor-dot{--cursor-dot-scale:.72}html.cursor-pressed .cursor-ring{--cursor-scale:1.1}.page-background{background:var(--page-bg);pointer-events:none;z-index:0;position:fixed;inset:0}.page-background:before,.page-background:after{content:"";pointer-events:none;display:none;position:absolute;inset:0}.page-background:before{opacity:.28;background-image:linear-gradient(#1113180a 1px,#0000 1px),linear-gradient(90deg,#1113180a 1px,#0000 1px);background-size:42px 42px;-webkit-mask-image:radial-gradient(75% 55% at 50% 20%,#000,#0000 82%);mask-image:radial-gradient(75% 55% at 50% 20%,#000,#0000 82%)}.page-background:after{opacity:.62;background:radial-gradient(70% 65% at 18% 10%,#2a9c7529,#0000 75%);animation:42s linear infinite drift}:root[data-theme=dark] .page-background:before{background-image:linear-gradient(#f4f2ec0d 1px,#0000 1px),linear-gradient(90deg,#f4f2ec0d 1px,#0000 1px)}main{z-index:1;position:relative}.page{width:min(1280px,100% - 48px);animation:page-unfold var(--motion-duration-page)var(--motion-ease-page)both;animation-delay:var(--motion-page-delay);flex-direction:column;gap:clamp(28px,4vw,52px);margin:0 auto;padding:0 clamp(18px,4vw,40px) 120px;display:flex}.scroll-reveal{opacity:0;transform:translateY(var(--motion-translate-lg));will-change:opacity,transform;transition:opacity var(--motion-duration-reveal)var(--motion-ease-reveal),transform var(--motion-duration-reveal)var(--motion-ease-reveal);transition-delay:var(--reveal-delay,0s)}.scroll-reveal.in-view{opacity:1;transform:translateY(0)}.scroll-reveal[data-delay="1"]{--reveal-delay:calc(var(--motion-delay-step)*1)}.scroll-reveal[data-delay="2"]{--reveal-delay:calc(var(--motion-delay-step)*2)}.scroll-reveal[data-delay="3"]{--reveal-delay:calc(var(--motion-delay-step)*3)}.scroll-reveal[data-delay="4"]{--reveal-delay:calc(var(--motion-delay-step)*4)}.scroll-reveal[data-delay="5"]{--reveal-delay:calc(var(--motion-delay-step)*5)}.scroll-reveal[data-delay="6"]{--reveal-delay:calc(var(--motion-delay-step)*6)}.scroll-reveal[data-delay="7"]{--reveal-delay:calc(var(--motion-delay-step)*7)}.scroll-reveal[data-delay="8"]{--reveal-delay:calc(var(--motion-delay-step)*8)}.scroll-reveal[data-delay="9"]{--reveal-delay:calc(var(--motion-delay-step)*9)}.scroll-reveal[data-delay="10"]{--reveal-delay:calc(var(--motion-delay-step)*10)}.scroll-reveal[data-delay="11"]{--reveal-delay:calc(var(--motion-delay-step)*11)}.scroll-reveal[data-delay="12"]{--reveal-delay:calc(var(--motion-delay-step)*12)}.scroll-reveal[data-delay="13"]{--reveal-delay:calc(var(--motion-delay-step)*13)}h1,h2,h3{color:var(--text);margin:0 0 12px;line-height:1.12}h1,h2{font-family:var(--font-display)}h1{font-size:var(--type-hero);letter-spacing:.01em}h2{font-size:var(--type-section)}h3{font-size:var(--type-subhead)}p{color:var(--muted);margin:0 0 12px}strong{background:linear-gradient(transparent 70%,var(--accent)0);font-weight:400}@supports (color:color-mix(in lab, red, red)){strong{background:linear-gradient(transparent 70%,color-mix(in srgb,var(--accent)28%,transparent)0)}}strong{color:var(--text);padding:0 .08em}.muted{color:var(--muted)}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.top-bar *,.top-bar a,.top-bar button,.top-links a,.brand-mark a,.nav-cv-link,.nav-home-link,.theme-toggle,.mobile-nav-toggle,.mobile-dropdown a{-webkit-tap-highlight-color:transparent!important;-webkit-focus-ring-color:transparent!important;outline:none!important}.top-bar :focus,.top-bar :active,.top-bar :focus-visible,.top-bar a:focus,.top-bar button:focus,.top-bar a:active,.top-bar button:active,.top-bar a:focus-visible,.top-bar button:focus-visible{outline:none!important}.top-bar{min-height:var(--top-bar-height);z-index:60;transition:border-color .26s var(--motion-ease-hover),backdrop-filter .26s var(--motion-ease-hover);isolation:isolate;border-bottom:1px solid #0000;justify-content:space-between;align-items:center;gap:16px;padding:12px clamp(18px,4vw,40px);display:flex;position:fixed;top:0;left:0;right:0}.top-bar:before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(#f7f6f3bf,#f7f6f380 68%,#f7f6f300);position:absolute;inset:0}:root[data-theme=dark] .top-bar:before{background:linear-gradient(#1a1a1acc,#1a1a1a99 68%,#1a1a1a00)}.top-bar.is-scrolled{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-color:#2a9c7538}.top-bar.is-scrolled:before{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.brand-mark{letter-spacing:.04em;z-index:1;align-items:center;gap:10px;font-size:.95rem;display:inline-flex;position:relative}.brand-dot{background:var(--accent);border-radius:999px;width:10px;height:10px;box-shadow:0 0 16px #2a9c7573}.top-links{color:var(--muted);z-index:1;align-items:center;gap:16px;display:flex;position:relative}.top-links a:not(.nav-cv-link):not(.nav-home-link){-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;transition:color .3s ease-in-out,transform var(--motion-duration-hover)var(--motion-ease-hover),background .3s ease-in-out,border-color .3s ease-in-out,padding .3s ease-in-out,border-radius .3s ease-in-out;border:1px solid #0000;outline:none;align-items:center;gap:7px;padding:6px 8px;font-size:.9rem;display:inline-flex}.nav-cv-link,.nav-home-link{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;transition:color var(--motion-duration-hover)var(--motion-ease-hover),transform var(--motion-duration-hover)var(--motion-ease-hover),background .3s ease-in-out,border-color .3s ease-in-out;outline:none;align-items:center;gap:7px;font-size:.9rem;display:inline-flex}.hide-link{display:none!important}.nav-cv-link,.cv-page-header .nav-home-link{background:var(--accent);color:#fff;border:1px solid var(--accent);border-radius:999px;padding:8px 14px}.cv-page-header .nav-cv-link{color:var(--text);background:#2a9c7526;border:1px solid #2a9c7540;border-radius:999px;padding:8px 14px}.top-links a.active{color:var(--text);background:#2a9c7526;border-color:#2a9c7540;border-radius:999px;padding:8px 14px}.top-links a:not(.nav-cv-link):not(.nav-home-link):hover,.top-links a:not(.nav-cv-link):not(.nav-home-link):focus-visible,.nav-cv-link:hover,.nav-cv-link:focus-visible{color:var(--text);transform:translateY(-2px)}.top-links a:not(.nav-cv-link):not(.nav-home-link):active,.nav-cv-link:active{-webkit-tap-highlight-color:transparent!important;outline:none!important}.theme-toggle{appearance:none;color:var(--text);min-height:36px;font:inherit;cursor:pointer;transition:transform var(--motion-duration-hover)var(--motion-ease-hover),border-color var(--motion-duration-hover)var(--motion-ease-hover),background var(--motion-duration-hover)var(--motion-ease-hover);background:#ffffff5c;border:1px solid #2a9c7533;border-radius:999px;align-items:center;gap:7px;padding:7px 12px;display:inline-flex}:root[data-theme=dark] .theme-toggle{background:#12161fa8}.theme-toggle:hover,.theme-toggle:focus-visible{border-color:var(--accent);background:#2a9c751a;transform:translateY(-1px)}.mobile-nav{z-index:22;display:none;position:relative}.mobile-backdrop{opacity:0;pointer-events:none;z-index:90;background:#090b10b3;border:none;margin:0;padding:0;transition:opacity .26s;position:fixed;inset:0}.mobile-backdrop.is-open{opacity:1;pointer-events:auto}.mobile-nav-toggle{color:var(--text);background:#ffffff52;border:1px solid #2a9c752e;border-radius:999px;justify-content:center;align-items:center;width:46px;height:42px;padding:10px 12px;display:inline-flex}:root[data-theme=dark] .mobile-nav-toggle{background:#12161fa8}.mobile-nav-icon{flex-direction:column;justify-content:space-between;width:18px;height:12px;display:inline-flex}.mobile-nav-line{background:var(--text);border-radius:999px;width:100%;height:1.6px;transition:transform .22s,opacity .22s}.mobile-nav-toggle[aria-expanded=true] .mobile-nav-line:first-child{transform:translateY(5px)rotate(45deg)}.mobile-nav-toggle[aria-expanded=true] .mobile-nav-line:nth-child(2){opacity:0}.mobile-nav-toggle[aria-expanded=true] .mobile-nav-line:nth-child(3){transform:translateY(-5px)rotate(-45deg)}.mobile-dropdown{background:var(--surface);border-left:1px solid var(--line);opacity:0;visibility:hidden;width:min(360px,86vw);height:100vh;transition:transform .28s var(--motion-ease-reveal),opacity .2s var(--motion-ease-reveal),visibility 0s linear .28s;pointer-events:none;z-index:100;flex-direction:column;gap:14px;padding:98px 24px 30px;display:flex;position:fixed;top:0;right:0;transform:translate(100%)}.mobile-dropdown.is-open{opacity:1;visibility:visible;transition:transform .28s var(--motion-ease-reveal),opacity .2s var(--motion-ease-reveal),visibility 0s;pointer-events:auto;transform:translate(0)}.mobile-dropdown a{color:var(--muted);align-items:center;gap:8px;display:inline-flex}.theme-toggle-mobile{justify-content:space-between;width:100%;margin-bottom:6px}.hero{padding-top:50px}.hero-grid{grid-template-columns:minmax(0,1.28fr) minmax(0,1fr);align-items:center;gap:clamp(24px,3.5vw,42px);display:grid}.hero-copy{flex-direction:column;gap:14px;display:flex}.eyebrow{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.28em;color:var(--muted);margin-bottom:4px;font-size:.74rem}.cv-sheet .eyebrow{color:var(--cv-accent)!important}.lead{text-align:justify;max-width:none;font-size:clamp(1.06rem,1.7vw,1.2rem)}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:6px;display:flex}.cta-button{background:var(--text);min-height:44px;color:var(--surface);border:1px solid var(--text);transition:transform var(--motion-duration-hover)var(--motion-ease-hover),box-shadow var(--motion-duration-hover)var(--motion-ease-hover),background var(--motion-duration-hover)var(--motion-ease-hover),color var(--motion-duration-hover)var(--motion-ease-hover);border-radius:999px;align-items:center;gap:8px;padding:10px 16px;display:inline-flex}.cta-button:hover,.cta-button:focus-visible{box-shadow:var(--shadow-soft);transform:translateY(-2px)}.cta-button.is-ghost{color:var(--text);background:0 0;border-color:#2a9c7547}.cta-button.is-ghost:hover,.cta-button.is-ghost:focus-visible{background:var(--accent-soft)}.chip-row{flex-wrap:wrap;gap:10px;margin-top:4px;display:flex}.chip{color:var(--text);background:#ffffff94;border:1px solid #2a9c7538;border-radius:999px;padding:6px 12px;font-size:.82rem}:root[data-theme=dark] .chip{background:#12161fcc}.hero-availability{align-items:center;gap:10px;display:inline-flex}.hero-availability p{margin:0}.dot{background:var(--accent);border-radius:999px;width:10px;height:10px;box-shadow:0 0 14px #2a9c7580}.hero-visual{place-items:start center;gap:16px;display:grid;position:relative}.soft-glow-orb{--glow:#c56a2d;aspect-ratio:1;pointer-events:none;background:radial-gradient(circle at 50% 50%,var(--glow)0%,transparent 62%);border-radius:999px;width:min(34vw,360px);position:absolute;top:-14%;right:-18%}@supports (color:color-mix(in lab, red, red)){.soft-glow-orb{background:radial-gradient(circle at 50% 50%,color-mix(in srgb,var(--glow)24%,white)0%,transparent 62%)}}.soft-glow-orb{filter:none;opacity:.45;animation:6s ease-in-out infinite breathe}.hero-image-frame{justify-self:center;width:min(100%,360px);position:relative}.hero-mini-linkedin{width:35px;height:35px;color:var(--text);z-index:1;background:#ffffffa8;border:1px solid #2a9c7540;border-radius:999px;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:14px;right:14px}:root[data-theme=dark] .hero-mini-linkedin{background:#12161fdb}.hero-mini-linkedin-icon{width:14px;height:14px}.hero-image{aspect-ratio:1;width:100%;box-shadow:var(--shadow-strong);background-image:linear-gradient(150deg,#2d6ac526,#fff3),url(/images/portrait.jpeg);background-position:50%;background-size:cover;border-radius:24px}.hero-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:100%;max-width:360px;display:grid}.hero-kpi{background:var(--surface);border:1px solid var(--line);text-align:center;border-radius:16px;padding:12px}.hero-meta-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:8px 0 0;font-size:.68rem}.hero-meta-value{color:var(--text);margin:0;font-size:1.4rem;font-weight:700}.hero-meta-value-regions{font-size:.85rem;font-weight:600}.marquee{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#ffffff5c;padding:14px 0;overflow:hidden}.marquee-track{white-space:nowrap;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.16em;color:var(--muted);will-change:transform;gap:26px;font-size:.75rem;animation:20s linear infinite marquee;display:flex}.marquee:hover .marquee-track{animation-play-state:paused}.section-flow{border-top:1px solid var(--line);padding:44px 0}.section-flow>p{text-align:justify;max-width:none}.section-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:20px;display:flex}.heading-highlight{background:linear-gradient(transparent 64%,var(--accent)0)}@supports (color:color-mix(in lab, red, red)){.heading-highlight{background:linear-gradient(transparent 64%,color-mix(in srgb,var(--accent)24%,transparent)0)}}.heading-highlight{padding:0 .12em}.accent-line-wrap{background:linear-gradient(90deg,var(--line),var(--line));width:100%;height:1px;margin:0 0 18px;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.accent-line-wrap{background:linear-gradient(90deg,color-mix(in srgb,var(--line)70%,transparent),color-mix(in srgb,var(--line)20%,transparent))}}.accent-line{background:linear-gradient(90deg,transparent,var(--accent),transparent);width:34%;height:100%;animation:5s ease-in-out infinite line-sweep;display:block}.section-tag{font-family:var(--font-mono);letter-spacing:.18em;color:var(--accent);font-size:.74rem}.about-lead{color:var(--text);text-align:justify;max-width:none;font-size:clamp(1.08rem,2.1vw,1.34rem)}.timeline{gap:16px;padding-left:24px;display:grid;position:relative}.timeline:before{content:"";background:var(--line);width:1px;position:absolute;top:7px;bottom:7px;left:9px}.timeline-item{gap:10px;padding:12px 0 14px;display:grid;position:relative}.timeline-item:before{content:"";background:var(--accent);border-radius:999px;width:10px;height:10px;position:absolute;top:16px;left:-18px}.timeline-points{color:var(--muted);gap:7px;margin:0;padding-left:20px;display:grid}.timeline-points li{text-align:justify;line-height:1.5}.timeline-item p{text-align:justify;max-width:none}.education-school-row{flex-wrap:wrap;align-items:center;gap:4px;margin-top:4px;display:flex}.education-school-link{transition:opacity var(--motion-duration-hover)var(--motion-ease-hover);align-items:center;gap:8px;text-decoration:none;display:inline-flex}.education-school-link:hover{opacity:.7}.education-logo{width:auto;height:30px;color:var(--text);flex-shrink:0;margin-top:-3px}.timeline-points li::marker{color:var(--accent)}.project-gallery{grid-template-columns:1.2fr 1fr 1fr;gap:18px;display:grid}.project-tile{transition:transform var(--motion-duration-hover)var(--motion-ease-hover),opacity var(--motion-duration-hover)var(--motion-ease-hover);gap:12px;padding:6px 0 10px;display:grid}.project-featured{grid-row:span 2}.project-tile:hover,.project-tile:focus-within{opacity:.96;transform:translateY(-6px)scale(1.01)}.project-media{background-image:linear-gradient(145deg,#0b0d125c,#2a9c7538),var(--project-image);background-position:50%;background-size:cover;border-radius:2px;min-height:230px}.project-featured .project-media{min-height:300px}.project-body h3{margin-bottom:8px}.project-impact{color:var(--text);font-size:.94rem}.project-tags{flex-wrap:wrap;gap:10px;display:flex}.pill{background:var(--accent-soft);color:var(--accent-strong);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;border-radius:999px;padding:6px 12px;font-size:.72rem}.core-skills-section{margin-bottom:clamp(2rem,4vw,3rem)}.section-subtitle{font-family:var(--font-body);font-size:var(--type-subhead);color:var(--text);letter-spacing:-.01em;margin-bottom:1.5rem;font-weight:600}.core-skill-panel{margin-top:2rem}.core-skill-list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.core-skill-list li{color:var(--text);padding-left:1.5rem;font-size:.96rem;line-height:1.55;position:relative}.core-skill-list li:before{content:"▸";color:var(--accent);font-weight:700;position:absolute;left:0}.technical-skills-section{border-top:1px solid var(--line);margin-top:clamp(40px,6vw,56px);padding-top:clamp(32px,5vw,44px)}.skill-clusters{gap:12px;display:grid}.skill-filter{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px;padding-bottom:12px;display:flex}.skill-filter-btn{color:var(--muted);font:inherit;cursor:pointer;transition:all var(--motion-duration-hover)var(--motion-ease-hover);background:0 0;border:1px solid #0000;border-radius:999px;align-items:center;gap:8px;padding:8px 12px;font-size:.88rem;display:inline-flex}.skill-filter-btn.is-active{color:var(--text);background:#2a9c7514;border-color:#2a9c7542}.skill-filter-icon,.skill-pill-icon{width:14px;height:14px;color:var(--accent)}.skill-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px;margin:0;padding:0;list-style:none;display:grid}.skill-cluster:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:12px}.skill-pill{align-items:center;gap:8px;padding:8px 0;display:inline-flex}.cert-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;margin:0;padding:0;list-style:none;display:grid}.cert-grid li{border-bottom:1px dashed var(--line);padding:9px 0}@supports (color:color-mix(in lab, red, red)){.cert-grid li{border-bottom:1px dashed color-mix(in srgb,var(--line)65%,var(--accent)35%)}}.achievement-flow{gap:14px;display:grid}.achievement-row{border-bottom:1px solid var(--line);grid-template-columns:90px minmax(0,1fr);align-items:baseline;gap:16px;display:grid}@supports (color:color-mix(in lab, red, red)){.achievement-row{border-bottom:1px solid color-mix(in srgb,var(--line)66%,transparent)}}.achievement-row{padding:8px 0 14px}.achievement-year{font-family:var(--font-mono);letter-spacing:.12em;color:var(--accent);margin:0;font-size:.78rem}.signal-list{gap:12px;display:grid}.signal-item{gap:8px;display:grid}.signal-label{color:var(--text);margin:0}.signal-track{background:var(--line);width:100%;height:4px}@supports (color:color-mix(in lab, red, red)){.signal-track{background:color-mix(in srgb,var(--line)72%,transparent)}}.signal-track{overflow:hidden}.signal-fill{background:linear-gradient(90deg,var(--accent),var(--accent));height:100%;display:block}@supports (color:color-mix(in lab, red, red)){.signal-fill{background:linear-gradient(90deg,color-mix(in srgb,var(--accent)64%,transparent),var(--accent))}}.language-row{flex-wrap:wrap;gap:10px;display:flex}.language-row span{border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:8px 12px}.contact-grid{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:20px;display:grid}.contact-cta{color:var(--text);font-size:clamp(1.2rem,2vw,1.45rem);font-weight:600}.contact-links{flex-direction:column;gap:10px;display:flex}.contact-links a{border:1px solid var(--line);background:var(--surface);border-radius:14px;align-items:center;gap:8px;min-height:44px;padding:10px 14px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.contact-links a{background:color-mix(in srgb,var(--surface)86%,transparent)}}.contact-links a{transition:transform var(--motion-duration-hover)var(--motion-ease-hover),border-color var(--motion-duration-hover)var(--motion-ease-hover),box-shadow var(--motion-duration-hover)var(--motion-ease-hover)}.contact-links a:hover,.contact-links a:focus-visible{transform:translateX(var(--motion-translate-sm));box-shadow:var(--shadow-soft);border-color:#2a9c754d}.icon{width:16px;height:16px}.footer{border-top:1px solid var(--line);min-height:200px;padding:28px 0 calc(100vh - 600px)}.footer-text{font-size:var(--type-small);color:var(--muted);letter-spacing:.02em;margin:0}.cv-preview-wrapper{background:linear-gradient(#00000005 0%,#0000000a 100%);min-height:100vh;padding-top:0}:root[data-theme=dark] .cv-preview-wrapper{background:linear-gradient(#ffffff08 0%,#ffffff0d 100%)}.cv-preview-header{top:var(--top-bar-height);z-index:50;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);background:linear-gradient(#f7f6f3fa,#f7f6f3e0 100%);margin-bottom:40px;padding:20px 0;position:sticky}:root[data-theme=dark] .cv-preview-header{background:linear-gradient(#0b0d12fa,#0b0d12e0 100%)}.cv-preview-header-content{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;width:min(1200px,100% - 48px);margin:0 auto;display:flex}.cv-preview-title{flex-direction:column;gap:4px;display:flex}.cv-preview-title-text{font-family:var(--font-display);letter-spacing:-.02em;color:var(--text);margin:0;font-size:clamp(1.4rem,2.5vw,1.8rem);font-weight:700}.cv-preview-subtitle{color:var(--muted);margin:0;font-size:.92rem}.cv-preview-actions{align-items:center;gap:16px;display:flex}.cv-preview-container{--cv-bg:#fff;--cv-text:#1a1a1a;--cv-text-muted:#444;--cv-accent:#c56a2d;--cv-accent-strong:#8e4618;--cv-line:#e0e0e0;--cv-surface-soft:#f8f8f8;flex-direction:column;gap:32px;width:min(900px,100% - 48px);margin:0 auto;padding:0 0 80px;display:flex}.cv-sheet{background:var(--cv-bg);color:var(--cv-text);min-height:842px;animation:sheet-reveal .6s var(--motion-ease-reveal)both;animation-delay:calc(var(--motion-page-delay) + .1s);border-radius:8px;flex-direction:column;gap:32px;padding:60px 56px;display:flex;box-shadow:0 2px 8px #00000014,0 8px 16px #0000000f,0 0 0 1px #0000000a}@keyframes sheet-reveal{0%{opacity:0;transform:translateY(20px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.cv-sheet *{color:var(--cv-text)}.cv-sheet .muted,.cv-sheet .cv-headline,.cv-sheet p{color:var(--cv-text-muted)!important}.cv-sheet h1,.cv-sheet h2,.cv-sheet h3,.cv-sheet .cv-company,.cv-sheet .cv-role{color:var(--cv-text)!important}.cv-sheet .eyebrow,.cv-sheet .icon{color:var(--cv-accent)!important}.cv-sheet .cv-inline-meta{color:var(--cv-accent-strong)!important}.cv-page{gap:32px;max-width:1040px;margin:0 auto;padding-top:8px;display:grid}.cv-header{border-bottom:2px solid var(--cv-line);justify-content:space-between;align-items:flex-start;gap:32px;padding:0 0 28px;display:flex}.cv-header-left{flex:1;align-items:flex-start;gap:24px;display:flex}.cv-portrait{object-fit:cover;border:2px solid var(--cv-line);border-radius:12px;flex-shrink:0}.cv-header h1{font-size:clamp(2rem,4vw,2.8rem);font-family:var(--font-display);letter-spacing:-.02em;margin:6px 0 10px;font-weight:700;line-height:1.15;color:var(--cv-text)!important}.cv-role{letter-spacing:-.01em;margin-top:4px;font-size:1.12rem;font-weight:600;display:block;color:var(--cv-accent-strong)!important}.cv-headline{max-width:58ch;margin-top:12px;font-size:.96rem;line-height:1.6;color:var(--cv-text-muted)!important}.cv-header-side{flex-shrink:0;justify-items:end;gap:12px;display:grid}.cv-back-link{color:var(--muted);transition:color var(--motion-duration-hover)var(--motion-ease-hover),border-color var(--motion-duration-hover)var(--motion-ease-hover);border-bottom:1px solid #0000;padding-bottom:2px;font-size:.88rem;text-decoration:none}.cv-back-link:hover,.cv-back-link:focus-visible{color:var(--text);border-bottom-color:var(--text)}.cv-download-btn{background:linear-gradient(135deg,var(--accent)0%,var(--accent-strong)100%);color:#fff;min-height:44px;font:inherit;letter-spacing:.01em;cursor:pointer;transition:transform var(--motion-duration-hover)var(--motion-ease-hover),box-shadow var(--motion-duration-hover)var(--motion-ease-hover);border:none;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 24px;font-size:.92rem;font-weight:600;display:inline-flex;box-shadow:0 2px 8px #2a9c7533,0 1px 2px #0000000d}.cv-download-btn:hover,.cv-download-btn:focus-visible{transform:translateY(-2px);box-shadow:0 8px 20px #2a9c754d,0 2px 4px #00000014}.cv-download-btn:active{transform:translateY(0)}.cv-download-btn svg{flex-shrink:0}.cv-print-help{color:var(--muted);text-align:right;max-width:20ch;margin:0;font-size:.78rem;line-height:1.4}.cv-contact{background:var(--cv-surface-soft);border:1px solid var(--cv-line);border-radius:12px;flex-wrap:wrap;gap:16px 20px;padding:20px 24px;display:flex}.cv-contact a,.cv-contact span{transition:color var(--motion-duration-hover)var(--motion-ease-hover);align-items:center;gap:8px;font-size:.92rem;font-weight:500;text-decoration:none;display:inline-flex;color:var(--cv-text)!important}.cv-contact a:hover,.cv-contact a:focus-visible{color:var(--cv-accent-strong)!important}.cv-contact .icon{flex-shrink:0;width:16px;height:16px;color:var(--cv-accent)!important}.cv-section{border-top:1px solid var(--cv-line);padding-top:28px}.cv-section:first-child{border-top:none;padding-top:0}.cv-section>h2{font-family:var(--font-display);letter-spacing:-.02em;margin:0 0 18px;font-size:clamp(1.4rem,2.5vw,1.8rem);font-weight:700;color:var(--cv-text)!important}.cv-section>p{max-width:72ch;line-height:1.7;color:var(--cv-text)!important}.cv-bullet-list{gap:10px;margin:0;padding-left:22px;display:grid}.cv-bullet-list li{max-width:72ch;line-height:1.65;color:var(--cv-text)!important}.cv-bullet-list li::marker{color:var(--cv-accent)!important}.cv-stack-list{gap:20px;display:grid}.cv-item{border-bottom:1px solid var(--cv-line)}@supports (color:color-mix(in lab, red, red)){.cv-item{border-bottom:1px solid color-mix(in srgb,var(--cv-line)60%,transparent)}}.cv-item{padding:0 0 20px}.cv-item:last-child{border-bottom:none;padding-bottom:0}.cv-item h3{letter-spacing:-.01em;margin:0 0 6px;font-size:1.12rem;font-weight:700;line-height:1.3;color:var(--cv-text)!important}.cv-item-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:4px;display:flex}.cv-item-head .muted{white-space:nowrap;font-size:.88rem;font-weight:500;color:var(--cv-text-muted)!important}.cv-company{margin:0 0 10px;font-size:.98rem;font-weight:600;color:var(--cv-accent-strong)!important}.cv-item ul{gap:8px;margin:12px 0 0;padding-left:22px;display:grid}.cv-item ul li{line-height:1.6;color:var(--cv-text)!important}.cv-item ul li::marker{color:var(--cv-accent)!important}.cv-inline-meta{border-top:1px dashed var(--cv-line);margin-top:12px;padding-top:12px}@supports (color:color-mix(in lab, red, red)){.cv-inline-meta{border-top:1px dashed color-mix(in srgb,var(--cv-line)50%,transparent)}}.cv-inline-meta{font-family:var(--font-mono);font-size:.8rem;line-height:1.5;color:var(--cv-accent-strong)!important}.cv-inline-meta strong{font-weight:600;color:var(--cv-text)!important}.cv-two-col{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:32px;display:grid}.cv-two-col>article{gap:16px;display:grid}.cv-print-break-avoid{break-inside:avoid;page-break-inside:avoid}@keyframes drift{0%{transform:translate(0)rotate(0)}50%{transform:translate(10px,-8px)rotate(1.5deg)}to{transform:translate(-10px,10px)rotate(-1.5deg)}}@keyframes page-unfold{0%{opacity:0}to{opacity:1}}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes line-sweep{0%{opacity:0;transform:translate(-120%)}25%{opacity:.9}50%{opacity:.6;transform:translate(170%)}to{opacity:0;transform:translate(170%)}}@keyframes breathe{0%,to{opacity:.35;transform:scale(.96)}50%{opacity:.52;transform:scale(1.04)}}@keyframes headerWave{0%{opacity:.15;transform:translate(-20%,-20%)scale(1.2)}to{opacity:.25;transform:translate(20%,20%)scale(1.4)}}@keyframes headerShimmer{0%,to{opacity:.4;transform:translate(-30%)}50%{opacity:.7;transform:translate(30%)}}@media (max-width:980px){.top-links{display:none}.mobile-nav{align-items:center;gap:8px;display:flex}.hero-grid{grid-template-columns:1fr}.hero-image-frame{margin-inline:auto}.hero-meta,.project-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.project-featured{grid-area:auto/span 2}.contact-grid,.cv-two-col{grid-template-columns:1fr}.education-logo{height:27px}}@media (max-width:720px){:root{--type-hero:clamp(2rem,8.6vw,3rem);--type-section:clamp(1.65rem,6.2vw,2.2rem);--type-subhead:clamp(1.08rem,4vw,1.3rem);--type-body:.97rem}.page{gap:34px;width:min(1120px,100% - 20px);padding:0 10px 100px}.top-bar{min-height:72px}.brand-mark{font-size:.84rem}.hero-meta,.project-gallery,.cert-grid,.skill-row{grid-template-columns:1fr}.achievement-row{grid-template-columns:1fr;gap:8px}.project-featured{grid-column:auto}.soft-glow-orb{width:min(62vw,280px);top:-8%;right:-12%}.marquee-track{letter-spacing:.14em;font-size:.68rem}.section-flow{padding:30px 0}.section-header{flex-direction:column;gap:8px}.education-logo{height:24px}.education-school-row{flex-direction:column;align-items:flex-start;gap:2px}.core-skill-panel{margin-top:1.5rem}.core-skill-list{gap:.65rem}.core-skill-list li{padding-left:1.3rem;font-size:.92rem}.technical-skills-section{margin-top:32px;padding-top:28px}.cv-preview-header{margin-bottom:24px;padding:16px 0}.cv-preview-header-content{flex-direction:column;align-items:flex-start;gap:16px;width:min(1200px,100% - 32px)}.cv-preview-actions{flex-direction:column;gap:12px;width:100%}.cv-download-btn{justify-content:center;width:100%}.cv-back-link{width:100%}.cv-preview-container{gap:24px;width:min(900px,100% - 32px);padding-bottom:60px}.cv-sheet{gap:24px;min-height:auto;padding:40px 32px}.cv-header{flex-direction:column;gap:20px;padding-bottom:20px}.cv-header-left{flex-direction:column;gap:16px}.cv-portrait{width:100px;height:100px}.cv-header h1{font-size:1.85rem}.cv-header-side{justify-items:start;width:100%}.cv-contact{gap:12px 14px;padding:16px 18px}.cv-contact a,.cv-contact span{font-size:.88rem}.cv-section{padding-top:20px}.cv-section>h2{margin-bottom:14px}.cv-headline,.cv-bullet-list li{max-width:100%}.cv-two-col{gap:20px}.mobile-dropdown{width:100%;max-width:none}}@media (prefers-reduced-motion:reduce){:root{--motion-duration-page:0s;--motion-duration-reveal:0s;--motion-duration-hover:0s;--motion-page-delay:0s}.page,.marquee-track,.page-background:after{animation:none}.custom-cursor{display:none}html,body{cursor:auto}}@media (hover:none),(pointer:coarse){.custom-cursor{display:none}html,body{cursor:auto}}@media print{@page{size:A4 portrait;margin:.5in .65in .6in}@page:first{margin-top:.5in}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important}.top-bar,.mobile-nav,.page-background,.custom-cursor,.cv-print-help,.cv-download-btn,.cv-back-link,.scroll-reveal,.cv-preview-header{display:none!important}html,body{width:100%;height:auto;margin:0;padding:0;color:#1a1a1a!important;background:#fff!important}.page{width:100%;max-width:100%;margin:0;padding:0;display:block;animation:none!important}.cv-preview-wrapper{min-height:auto;padding:0;background:#fff!important}.cv-preview-container{gap:0;width:100%;max-width:100%;margin:0;padding:0;display:block}.cv-sheet{page-break-after:auto;page-break-before:auto;gap:0;min-height:auto;max-height:none;display:block;box-shadow:none!important;background:#fff!important;border:none!important;border-radius:0!important;margin:0!important;padding:0!important;animation:none!important}.cv-sheet:not(:first-child){padding-top:24pt!important}body{font-size:10pt;line-height:1.5}.eyebrow{text-transform:uppercase;letter-spacing:.08em;margin-bottom:4pt;font-size:8pt;display:block;color:#666!important}.cv-header{page-break-after:avoid;page-break-inside:avoid;border-bottom:1.5pt solid #333;margin-bottom:18pt;padding:0 0 16pt;display:block}.cv-header-left{align-items:flex-start;gap:16pt;margin-bottom:0;display:flex}.cv-portrait{object-fit:cover;border:1pt solid #333;border-radius:6pt;flex-shrink:0;width:80pt;height:80pt}.cv-header h1{letter-spacing:-.02em;margin:0 0 5pt;font-size:24pt;font-weight:700;line-height:1.1;color:#1a1a1a!important}.cv-role{margin:3pt 0 6pt;font-size:10.5pt;font-weight:600;display:block;color:#8e4618!important}.cv-headline{max-width:100%;margin-top:6pt;font-size:9.5pt;line-height:1.5;display:block;color:#444!important}.cv-header-side{display:none}.cv-contact{page-break-inside:avoid;page-break-after:avoid;border-radius:3pt;flex-wrap:wrap;gap:6pt 12pt;margin-bottom:18pt;padding:10pt 12pt;font-size:8.5pt;display:flex;background:#f8f8f8!important;border:1pt solid #ddd!important}.cv-contact a,.cv-contact span{align-items:center;gap:3pt;font-weight:500;text-decoration:none;display:inline-flex;color:#1a1a1a!important}.cv-contact .icon{flex-shrink:0;width:10pt;height:10pt;color:#8e4618!important}.cv-section{page-break-inside:auto;border-top:1pt solid #ddd;margin-bottom:16pt;padding-top:16pt}.cv-section:first-of-type{border-top:none;padding-top:0}.cv-section>h2{letter-spacing:-.01em;page-break-after:avoid;margin:0 0 10pt;font-size:12pt;font-weight:700;color:#1a1a1a!important}.cv-section>p{margin:0 0 10pt;font-size:9.5pt;line-height:1.55;color:#333!important}.cv-bullet-list{margin:0;padding-left:16pt;display:block}.cv-bullet-list li{page-break-inside:avoid;max-width:100%;margin-bottom:5pt;font-size:9.5pt;line-height:1.55;color:#333!important}.cv-bullet-list li:last-child{margin-bottom:0}.cv-bullet-list li::marker{color:#8e4618!important}.cv-stack-list{margin:0;display:block}.cv-item{page-break-inside:avoid;border-bottom:1pt solid #e8e8e8;margin-bottom:12pt;padding:0 0 12pt}.cv-item:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.cv-item h3{page-break-after:avoid;margin:0 0 3pt;font-size:10pt;font-weight:700;line-height:1.3;color:#1a1a1a!important}.cv-item-head{page-break-after:avoid;justify-content:space-between;align-items:baseline;gap:10pt;margin-bottom:3pt;display:flex}.cv-item-head .muted{white-space:nowrap;font-size:8pt;font-weight:500;color:#666!important}.cv-company{margin:0 0 7pt;font-size:9pt;font-weight:600;display:block;color:#8e4618!important}.cv-item ul{margin:7pt 0 0;padding-left:16pt;display:block}.cv-item ul li{page-break-inside:avoid;margin-bottom:4pt;font-size:8.5pt;line-height:1.55;color:#333!important}.cv-item ul li:last-child{margin-bottom:0}.cv-item ul li::marker{color:#8e4618!important}.cv-inline-meta{font-size:8pt;line-height:1.4;font-family:var(--font-mono);border-top:1pt dashed #ddd;margin-top:7pt;padding-top:7pt;display:block;color:#8e4618!important}.cv-inline-meta strong{font-weight:600;color:#1a1a1a!important}.cv-two-col{page-break-inside:avoid;grid-template-columns:1fr 1fr;gap:18pt;display:grid}.cv-two-col>article{break-inside:avoid;page-break-inside:avoid}.core-skills-section{page-break-inside:avoid;margin-bottom:16pt}.section-subtitle{page-break-after:avoid;margin:0 0 10pt;font-size:11pt;font-weight:600;color:#1a1a1a!important}.skill-filter{display:none!important}.core-skill-panel{page-break-inside:avoid;margin-top:0!important;display:block!important}.core-skills-section .core-skill-panel{border-radius:4pt;margin-bottom:12pt;padding:12pt;background:#f8f8f8!important;border:1pt solid #ddd!important;display:block!important}.core-skill-list{margin:0;padding:0;list-style:none;display:block}.core-skill-list li{page-break-inside:avoid;margin-bottom:4pt;padding-left:14pt;font-size:8.5pt;line-height:1.5;position:relative;color:#333!important}.core-skill-list li:last-child{margin-bottom:0}.core-skill-list li:before{content:"▸";font-weight:700;position:absolute;left:0;color:#8e4618!important}.technical-skills-section{border-top:1pt solid #ddd;margin-top:16pt;padding-top:14pt}.cv-print-break-avoid{page-break-inside:avoid;break-inside:avoid}h1,h2,h3,h4{page-break-after:avoid;break-after:avoid}ul,ol{page-break-inside:avoid;break-inside:avoid}a{text-decoration:none;color:#1a1a1a!important}a[href^=http]:after{content:""}*{box-shadow:none!important;transition:none!important;animation:none!important}img{page-break-inside:avoid;max-width:100%}button:not(.cv-download-btn),input,textarea,select{display:none!important}}.cv-pdf-viewer-wrapper{background:var(--surface);border-radius:8px;width:100%;height:calc(100vh - 120px);overflow:hidden;box-shadow:0 2px 8px #0000001a}.cv-pdf-loading{min-height:400px;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex}.spinner{border:4px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:48px;height:48px;animation:.8s linear infinite spin}.spinner-small{border:2px solid;border-top-color:#0000;border-radius:50%;width:16px;height:16px;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}
