:root{--font-body: "Plus Jakarta Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-heading: "Fraunces", Georgia, serif;--radius-pill: 999px;--radius-card: 24px}html[data-theme=light]{--bg: #fbfcfb;--bg-alt: #f1f6f4;--surface: rgba(255, 255, 255, .82);--surface-strong: rgba(255, 255, 255, .96);--panel-bg: rgba(255, 255, 255, .92);--heading: #18312f;--text: #2f4542;--muted: #5c6f6b;--muted-strong: #6a817c;--line: rgba(24, 49, 47, .12);--line-soft: rgba(24, 49, 47, .08);--accent: #d46f4d;--accent-hover: #b95c3f;--accent-soft: rgba(212, 111, 77, .11);--accent-line: rgba(212, 111, 77, .38);--accent-ring: rgba(30, 118, 104, .12);--success: #2f8f7a;--button-bg: rgba(255, 255, 255, .92);--button-line: rgba(24, 49, 47, .16);--soft-shadow: 0 18px 34px rgba(31, 63, 59, .07);--hover-shadow: 0 22px 42px rgba(31, 63, 59, .11);--section-odd: #fbfcfb;--section-even: #f1f6f4;--grain-opacity: .04;color-scheme:light}html[data-theme=dark]{--bg: #0d1413;--bg-alt: #121d1b;--surface: rgba(20, 31, 29, .78);--surface-strong: rgba(25, 38, 36, .92);--panel-bg: rgba(22, 34, 32, .88);--heading: #eef7f3;--text: #d9e8e3;--muted: #a8bcb6;--muted-strong: #c6d7d0;--line: rgba(221, 239, 232, .15);--line-soft: rgba(221, 239, 232, .1);--accent: #ef9a72;--accent-hover: #d9855e;--accent-soft: rgba(239, 154, 114, .14);--accent-line: rgba(239, 154, 114, .38);--accent-ring: rgba(114, 201, 182, .16);--success: #72c9b6;--button-bg: rgba(31, 47, 44, .92);--button-line: rgba(221, 239, 232, .15);--soft-shadow: 0 22px 44px rgba(0, 0, 0, .26);--hover-shadow: 0 28px 54px rgba(0, 0, 0, .34);--section-odd: #0d1413;--section-even: #121d1b;--grain-opacity: .03;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:96px;background:var(--bg)}body{margin:0;min-width:320px;min-height:100vh;font-family:var(--font-body);color:var(--text);background:var(--bg);overflow-x:hidden}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9998;opacity:var(--grain-opacity);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='1'/%3E%3C/svg%3E")}#root{min-height:100vh}body,button,input,select,textarea{font:inherit}button{padding:0;border:0;background:none;color:inherit}a{color:inherit;text-decoration:none}img,svg{display:block}img{max-width:100%}::selection{background:#c4704f3d}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.site-shell{min-height:100vh}.shell{width:min(1120px,calc(100% - 2.5rem));margin:0 auto}.skip-link{position:absolute;top:1rem;left:1rem;z-index:100;padding:.8rem 1rem;border-radius:var(--radius-pill);background:var(--surface-strong);color:var(--heading);transform:translateY(-200%);transition:transform .2s ease}.skip-link:focus{transform:translateY(0)}.site-header{position:fixed;top:0;right:0;left:0;z-index:60;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 78%,transparent);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.header-inner{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:1rem}.brand{display:inline-flex;align-items:center;gap:.85rem;min-width:0}.brand-mark{display:inline-grid;place-items:center;width:2.4rem;height:2.4rem;overflow:hidden;border-radius:50%;box-shadow:0 16px 30px #c4704f2e}.brand-mark img{width:100%;height:100%;object-fit:cover}.brand-text{font-size:.97rem;font-weight:700;letter-spacing:.01em;color:var(--heading)}.desktop-nav,.mobile-nav-inner,.hero-socials,.header-actions{display:flex;align-items:center}.desktop-nav{gap:1.5rem}.desktop-nav a,.mobile-nav-inner a{position:relative;font-size:.94rem;font-weight:600;color:var(--muted);transition:color .22s ease}.desktop-nav a:after,.mobile-nav-inner a:after{position:absolute;right:0;bottom:-.35rem;left:0;height:1px;content:"";transform:scaleX(0);transform-origin:center;background:var(--accent);transition:transform .22s ease}.desktop-nav a:hover,.desktop-nav a.active,.mobile-nav-inner a:hover,.mobile-nav-inner a.active{color:var(--heading)}.desktop-nav a:hover:after,.desktop-nav a.active:after,.mobile-nav-inner a:hover:after,.mobile-nav-inner a.active:after{transform:scaleX(1)}.header-actions{gap:.65rem}.theme-toggle,.menu-toggle,.icon-link{display:inline-grid;place-items:center;width:2.9rem;height:2.9rem;border:1px solid var(--button-line);border-radius:50%;background:var(--button-bg);color:var(--heading);box-shadow:var(--soft-shadow);transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease,background .25s ease}.theme-toggle svg,.menu-toggle svg,.icon-link svg{width:1.1rem;height:1.1rem;pointer-events:none}.theme-toggle:hover,.menu-toggle:hover,.icon-link:hover,.button:hover{transform:translateY(-4px);border-color:var(--accent-line);box-shadow:var(--hover-shadow)}.menu-toggle,.mobile-nav{display:none}main{padding-top:78px}.hero,.skills-section,.certificates-section,.projects-section{background:var(--section-odd)}.about-section,.experience-section,.contact-section{background:var(--section-even)}.hero{position:relative;min-height:0;overflow:visible;padding:1.5rem 0 3rem}.hero-layout,.section-grid{display:grid;gap:clamp(2rem,4vw,3.5rem)}.hero-layout{grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);align-items:start}.hero-copy{position:relative;z-index:1;padding-left:0}.hero-kicker,.section-eyebrow,.skill-label,.timeline-date,.panel-label,.project-topline p{margin:0;text-transform:uppercase;letter-spacing:.18em;font-size:.76rem;color:var(--muted-strong)}.hero-kicker{margin-bottom:1.1rem}.hero h1{margin:0;max-width:10ch;font-family:var(--font-heading);font-size:clamp(3.85rem,9vw,7rem);line-height:.92;letter-spacing:-.03em;color:var(--heading)}.hero-role{display:inline-flex;align-items:center;gap:.25rem;min-height:4rem;margin:1.4rem 0 0;font-family:var(--font-heading);font-size:clamp(1.75rem,3.5vw,2.85rem);line-height:1.1;color:var(--accent)}.hero-caret{width:1px;height:1.1em;background:currentColor;animation:blink 1.1s steps(1) infinite}.hero-summary,.section-copy,.about-copy p,.panel-copy p,.hero-note-list li,.timeline-card ul,.project-copy p,.project-meta{color:var(--muted);line-height:1.8}.hero-summary{max-width:37rem;margin:1.1rem 0 0;font-size:1.08rem}.hero-actions{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:2rem}.button{display:inline-flex;align-items:center;justify-content:center;gap:.7rem;min-height:3.15rem;padding:.82rem 1.2rem;border:1px solid var(--button-line);border-radius:var(--radius-pill);background:var(--button-bg);color:var(--heading);font-weight:700;box-shadow:var(--soft-shadow);transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease,background .25s ease}.button svg{width:1rem;height:1rem}.button-primary{border-color:transparent;background:var(--accent);color:#fffaf4}.button-secondary{background:transparent}.button-text{min-height:auto;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.button-text:hover{box-shadow:none}.button-outline{width:fit-content;min-height:2.75rem;padding:.7rem 1rem;border-radius:10px;border-color:var(--accent);background:transparent;color:var(--accent);box-shadow:none}.hero-socials{gap:.8rem;margin-top:2rem}.hero-socials .icon-link{width:40px;height:40px;background:var(--surface-strong);color:var(--heading)}.hero-panel{display:grid;gap:2rem;padding-top:0}.skill-group,.stats-card,.timeline-card,.project-card{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--panel-bg);box-shadow:var(--soft-shadow)}.panel-copy h2,.project-copy h3,.timeline-card h3,.section-heading h2,.stat-item strong{margin:0;font-family:var(--font-heading);color:var(--heading)}.panel-label{display:inline-block;padding-left:.8rem;border-left:2px solid var(--accent);color:var(--accent);line-height:1.4}.hero-panel-section{display:grid;gap:.8rem}.panel-copy{margin-top:.15rem}.panel-copy h2{font-size:1.65rem;line-height:1.18;font-weight:500}.panel-copy p{margin:.65rem 0 0;font-size:.98rem}.hero-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}.hero-stat strong{display:block;margin-top:.2rem;font-family:var(--font-heading);font-size:clamp(1.9rem,3vw,2.35rem);color:var(--heading)}.hero-note-list{display:grid;gap:.8rem;margin:.15rem 0 0;padding-left:1.2rem;list-style:disc}.hero-note-list li{padding-left:0}.hero-note-list li:before{content:none}.section{padding:clamp(4.25rem,7vw,6rem) 0}.section-heading{max-width:44rem}.section-heading h2{font-size:clamp(2.4rem,5vw,3.9rem);line-height:1.06;font-weight:500;letter-spacing:-.02em}.section-copy{max-width:39rem;margin:1rem 0 0;font-size:1.02rem}.section-grid{grid-template-columns:minmax(0,1.1fr) minmax(280px,.78fr);align-items:start}.about-copy{max-width:41rem;margin-top:1.4rem}.about-copy p{margin:0;font-size:1.06rem}.honors-strip{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:2rem}.honors-strip span,.project-tags span,.skill-tag{display:inline-flex;align-items:center;border:1px solid var(--line-soft);border-radius:var(--radius-pill);background:var(--surface-strong)}.honors-strip span{padding:.72rem 1rem;color:var(--text);font-size:.92rem}.stats-card{padding:1.2rem}.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.stat-item{min-height:8.3rem;padding:1.2rem;border:1px solid var(--line-soft);border-radius:20px;background:var(--surface);display:flex;flex-direction:column;justify-content:flex-end}.stat-item strong{font-size:2.45rem;font-weight:500}.stat-item span{margin-top:.55rem;color:var(--muted-strong);text-transform:uppercase;letter-spacing:.16em;font-size:.76rem}.skill-groups,.timeline,.project-grid{margin-top:2.6rem}.skill-groups{display:grid;gap:1.2rem}.skill-group{padding:1.35rem 1.5rem 1.5rem}.skill-tags,.project-tags{display:flex;flex-wrap:wrap;gap:.7rem}.skill-tags{margin-top:.9rem}.skill-tag{padding:.72rem 1rem;color:var(--text);transition:transform .22s ease,border-color .22s ease,background .22s ease,color .22s ease;transition-delay:var(--tag-delay, 0ms)}.skill-tag:hover{transform:translateY(-2px);border-color:var(--accent-line);background:var(--accent-soft);color:var(--heading)}.timeline{position:relative;display:grid;gap:1.25rem;padding-left:1.5rem}.timeline:before{position:absolute;top:.6rem;bottom:.6rem;left:.45rem;width:1px;background:linear-gradient(180deg,var(--accent),transparent);content:""}.timeline-item{position:relative;padding-left:1.5rem}.timeline-marker{position:absolute;top:1.2rem;left:0;width:.9rem;height:.9rem;border-radius:50%;background:var(--accent);box-shadow:0 0 0 7px var(--accent-ring)}.timeline-card{padding:1.45rem 1.5rem}.timeline-date{margin-bottom:.7rem}.timeline-card h3{display:grid;gap:.25rem;font-size:1.55rem;line-height:1.12;font-weight:500}.timeline-card h3 span{font-family:var(--font-body);font-size:1rem;font-weight:700;color:var(--muted)}.timeline-card ul{display:grid;gap:.78rem;margin:1rem 0 0;padding-left:1.15rem}.certificate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;margin-top:2.6rem}.certificate-card{display:grid;grid-template-columns:108px minmax(0,1fr);gap:1rem;padding:1.25rem;border:1px solid var(--line);border-radius:22px;background:var(--panel-bg);box-shadow:var(--soft-shadow);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.certificate-card:hover{transform:translateY(-3px);border-color:var(--accent-line);box-shadow:var(--hover-shadow)}html[data-theme=dark] .certificate-card{border-color:var(--line);background:var(--panel-bg);box-shadow:var(--soft-shadow)}.certificate-thumb{display:flex;align-items:flex-start;justify-content:center}.certificate-thumb img,.certificate-icon-wrap{width:108px;height:82px;border-radius:16px}.certificate-thumb img{display:block;object-fit:contain;border:1px solid var(--line-soft);background:#fff}.certificate-icon-wrap{display:inline-grid;place-items:center;border:1px solid var(--line-soft);background:var(--surface-strong);color:var(--accent)}.certificate-icon-wrap svg{width:2.2rem;height:2.2rem}.certificate-body{display:flex;min-width:0;flex-direction:column;justify-content:space-between;gap:1rem}.certificate-copy h3{margin:0;font-family:var(--font-heading);font-size:1.45rem;line-height:1.12;font-weight:500;color:var(--heading)}.certificate-issuer,.certificate-date,.certificate-description{margin:0}.certificate-issuer{margin-top:.45rem;color:var(--accent);font-weight:700}.certificate-date{margin-top:.2rem;color:var(--muted-strong);font-size:.88rem}.certificate-description{margin-top:.6rem;color:var(--muted);line-height:1.7;font-size:.96rem}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.3rem}.project-card{display:flex;flex-direction:column;gap:1.35rem;padding:1.5rem;transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease}.project-card:hover{transform:translateY(-4px);box-shadow:var(--hover-shadow);border-color:var(--accent-line)}.project-topline,.project-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem}.project-copy h3{font-size:1.72rem;line-height:1.08;font-weight:500}.project-copy p{margin:.85rem 0 0}.project-tags span{padding:.58rem .82rem;font-size:.87rem;color:var(--muted)}.project-actions{margin-top:auto}.contact-layout{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr);gap:clamp(2rem,4vw,4rem);align-items:start}.contact-layout>*{min-width:0}.contact-copy{max-width:28rem}.contact-label{margin:0;color:var(--accent);font-size:.76rem;text-transform:uppercase;letter-spacing:.18em}.contact-copy h2{margin:.8rem 0 0;font-family:var(--font-heading);font-size:clamp(2.8rem,5vw,4.25rem);line-height:1.02;font-weight:500;color:var(--heading)}.contact-description{margin:1.15rem 0 0;color:var(--muted);font-size:1.02rem;line-height:1.8}.contact-pill-list{display:flex;flex-direction:column;align-items:flex-start;gap:.85rem;margin-top:1.9rem}.contact-pill{display:inline-flex;align-items:center;gap:.7rem;max-width:100%;padding:.78rem .95rem;border:1px solid var(--line-soft);border-radius:var(--radius-pill);background:var(--surface-strong);color:var(--heading);text-decoration:none;transition:transform .2s ease,border-color .2s ease,background .2s ease}.contact-pill:hover{transform:translateY(-2px);border-color:var(--accent-line)}.contact-pill-icon{display:inline-grid;flex:0 0 auto;place-items:center;width:1.15rem;height:1.15rem;color:var(--accent)}.contact-pill-icon svg{width:1rem;height:1rem;pointer-events:none}.contact-pill-label{min-width:0;overflow-wrap:anywhere}.contact-form-shell{width:100%;min-width:0;padding:1.6rem;border:1px solid var(--line);border-radius:22px;background:var(--panel-bg);box-shadow:var(--soft-shadow)}.contact-form{display:grid;width:100%;min-width:0;gap:1rem}.form-field{display:grid;min-width:0;gap:.45rem}.field-label{font-size:12px;text-transform:uppercase;letter-spacing:.16em;color:var(--muted-strong)}.contact-input{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:6px;background:var(--surface-strong);color:var(--heading);font-size:15px;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}.contact-input::placeholder{color:var(--muted)}.contact-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.contact-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 18px) calc(50% - 3px),calc(100% - 12px) calc(50% - 3px);background-repeat:no-repeat;background-size:6px 6px;padding-right:2.75rem}.contact-textarea{width:100%;max-width:100%;min-height:130px;resize:vertical}html[data-theme=dark] .contact-input{background:var(--surface-strong);border-color:var(--line)}html[data-theme=dark] .contact-input::placeholder{color:#ede8e38f}html[data-theme=dark] .contact-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.field-error{margin:0;color:#b85450;font-size:12px;line-height:1.4}.contact-submit{width:100%;min-height:3.15rem;margin-top:.25rem;padding:.85rem 1rem;border:0;border-radius:6px;background:var(--accent);color:#fff;font-size:.96rem;font-weight:700;transition:background .2s ease,opacity .2s ease}.contact-submit:hover{background:var(--accent-hover)}.contact-submit:disabled{opacity:.75;cursor:wait}.contact-submit.is-success{background:var(--success)}.form-status{margin:0;font-size:12px;line-height:1.5}.form-status-success{color:var(--muted)}.form-status-error{color:#b85450}.site-footer{padding:0 0 2.6rem}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:1rem;border-top:1px solid var(--line)}.site-footer p{margin:0;color:var(--muted)}.footer-links{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.footer-links a{color:var(--heading);font-size:.92rem;font-weight:700;text-decoration:none;transition:color .2s ease}.footer-links a:hover{color:var(--accent)}[data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}[data-reveal].is-visible{opacity:1;transform:translateY(0)}@keyframes blink{0%,48%{opacity:1}49%,to{opacity:0}}@media (max-width: 940px){.desktop-nav{display:none}.menu-toggle{display:inline-grid}.mobile-nav{display:block;position:absolute;top:calc(100% + .7rem);right:.75rem;left:.75rem;z-index:70;overflow:hidden;border:1px solid transparent;border-radius:24px;background:color-mix(in srgb,var(--bg) 92%,transparent);box-shadow:0 22px 44px #140e0b2e;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-10px) scale(.98);transition:opacity .24s ease,transform .24s ease,visibility .24s ease,border-color .24s ease}.mobile-nav.is-open{border-color:var(--line);opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scale(1)}.mobile-nav-inner{width:100%;margin:0;padding:1rem 1rem 1.15rem;align-items:flex-start;flex-direction:column;gap:.85rem}.footer-inner{flex-direction:column;justify-content:center;text-align:center}.footer-links{justify-content:center}.mobile-nav-inner a{font-size:1rem}.hero-layout,.section-grid,.certificate-grid,.project-grid,.contact-layout{grid-template-columns:1fr}.hero-panel{max-width:40rem}}@media (max-width: 720px){.shell{width:min(1120px,calc(100% - 1.25rem))}.mobile-nav{right:.625rem;left:.625rem}.header-inner{min-height:72px}main{padding-top:72px}.hero{padding-top:1rem}.hero-role{min-height:3.25rem}.hero-stat-grid,.stats-grid{grid-template-columns:1fr 1fr}.timeline,.timeline-item{padding-left:1.2rem}}@media (max-width: 560px){.brand-text{display:none}.hero-actions{flex-direction:column;align-items:stretch}.button{width:100%}.button-text{width:auto}.hero-stat-grid,.stats-grid,.certificate-card{grid-template-columns:1fr}.certificate-thumb{justify-content:flex-start}.contact-pill{width:100%}.contact-copy h2{max-width:8ch}.section,.hero{padding-left:0;padding-right:0}}
