:root{--color-primary: #0b3d2e;--color-accent: #e8a33d;--color-secondary: #114b5f;--color-background: #faf7f2;--color-surface: #ffffff;--color-text: #16241f;--color-muted: #5c6b65;--color-dark-bg: #0d1512;--color-dark-surface: #14201b;--color-border: rgba(22, 36, 31, .14);--color-shadow: rgba(13, 21, 18, .12);--font-display: "Fraunces", Georgia, serif;--font-body: "Manrope", Inter, ui-sans-serif, system-ui, sans-serif;--step--1: clamp(.8rem, .76rem + .18vw, .9rem);--step-0: clamp(1rem, .95rem + .22vw, 1.125rem);--step-1: clamp(1.25rem, 1.15rem + .5vw, 1.5rem);--step-2: clamp(1.56rem, 1.36rem + 1vw, 2.15rem);--step-3: clamp(1.95rem, 1.6rem + 1.75vw, 3.05rem);--step-4: clamp(2.44rem, 1.86rem + 2.9vw, 4.8rem);--step-5: clamp(3.05rem, 2.18rem + 4.34vw, 7.2rem);--radius-sm: 8px;--radius-md: 8px;--radius-lg: 8px;--container: min(1200px, calc(100vw - 40px) );--mx: 50vw;--my: 22vh;color-scheme:light;font-family:var(--font-body)}@media(prefers-color-scheme:dark){:root:not([data-theme]){--color-background: var(--color-dark-bg);--color-surface: var(--color-dark-surface);--color-text: #ecf4ef;--color-muted: #a8b8b0;--color-border: rgba(236, 244, 239, .14);--color-shadow: rgba(0, 0, 0, .34);color-scheme:dark}}:root[data-theme=dark]{--color-background: var(--color-dark-bg);--color-surface: var(--color-dark-surface);--color-text: #ecf4ef;--color-muted: #a8b8b0;--color-border: rgba(236, 244, 239, .14);--color-shadow: rgba(0, 0, 0, .34);color-scheme:dark}:root[data-theme=light]{color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;margin:0;overflow-x:hidden;background:linear-gradient(90deg,rgba(11,61,46,.035) 1px,transparent 1px) 0 0 / 104px 104px,radial-gradient(circle at 12% 8%,rgba(232,163,61,.13),transparent 28%),linear-gradient(135deg,rgba(17,75,95,.08),transparent 44%),var(--color-background);color:var(--color-text)}body::selection{background:#e8a33d47}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}:where(a,button,input,textarea):focus-visible{outline:3px solid color-mix(in srgb,var(--color-accent) 78%,white);outline-offset:4px}button{color:inherit}img{display:block;max-width:100%}h1,h2,h3,h4,p,dl,dd{margin:0}h1,h2,h3,h4{text-wrap:balance}p,li{color:var(--color-muted);line-height:1.72}.app{position:relative;min-height:100vh}main{counter-reset:portfolio-section}.mouse-glow{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:radial-gradient(560px circle at var(--mx) var(--my),rgba(232,163,61,.12),transparent 64%)}.site-header{position:sticky;top:14px;z-index:50;display:flex;align-items:center;gap:12px;width:var(--container);min-height:64px;margin:14px auto 0;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:10px;background:color-mix(in srgb,var(--color-surface) 82%,transparent);box-shadow:0 18px 58px color-mix(in srgb,var(--color-shadow) 75%,transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand{display:inline-flex;align-items:center;gap:11px;min-width:220px;font-weight:800}.brand-mark,.theme-toggle,.focus-icon{display:grid;place-items:center}.brand-mark{width:40px;height:40px;border-radius:var(--radius-sm);background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));color:#fffaf0;font-family:var(--font-display);font-size:14px}.brand-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-pills{display:flex;justify-content:center;gap:5px;min-width:0;width:100%;overflow-x:auto;scrollbar-width:none}.nav-pills::-webkit-scrollbar{display:none}.nav-pills a,.filter-bar button{display:inline-flex;align-items:center;gap:7px;min-height:38px;border-radius:var(--radius-sm);padding:0 12px;color:var(--color-muted);font-size:var(--step--1);font-weight:800;white-space:nowrap;transition:transform .18s ease,background .18s ease,color .18s ease,border-color .18s ease}.nav-pills a:hover,.nav-pills a:focus-visible,.filter-bar button:hover,.filter-bar button:focus-visible,.filter-bar button.active{color:var(--color-text);background:color-mix(in srgb,var(--color-primary) 12%,transparent)}.theme-toggle{width:42px;height:42px;flex:0 0 auto;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--color-surface) 88%,transparent);color:var(--color-primary);cursor:pointer}.theme-toggle:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--color-accent) 60%,transparent)}.icon{width:17px;height:17px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.9;flex:0 0 auto}.site-section{position:relative;overflow:clip;scroll-margin-top:100px;padding:clamp(92px,11vw,164px) 0;counter-increment:portfolio-section}.tone-base{background:color-mix(in srgb,var(--color-background) 94%,var(--color-surface))}.tone-surface{background:linear-gradient(180deg,color-mix(in srgb,var(--color-surface) 78%,transparent),transparent 38%),color-mix(in srgb,var(--color-surface) 68%,var(--color-background))}.section-container{position:relative;width:var(--container);margin:0 auto}.section-intro{max-width:1120px;display:grid;grid-template-columns:minmax(110px,.22fr) minmax(0,1fr);gap:18px clamp(30px,5vw,72px);margin-bottom:clamp(42px,6vw,76px)}.site-section:not(.hero-section) .section-container:before{content:"0" counter(portfolio-section);position:absolute;right:0;top:-44px;color:color-mix(in srgb,var(--color-primary) 9%,transparent);font-family:var(--font-display);font-size:clamp(4.8rem,14vw,12rem);font-weight:750;line-height:.8;pointer-events:none}.eyebrow,.hero-titleline,.research-card button span,.project-face span,.timeline-date,.timeline-card>span{color:var(--color-secondary);font-size:var(--step--1);font-weight:800;letter-spacing:.08em;text-transform:uppercase}.eyebrow{display:inline-flex;align-items:center;gap:10px;align-self:start;padding-top:.55rem}.eyebrow:before{content:"";width:34px;height:1px;background:currentColor}h1,h2{font-family:var(--font-display);font-weight:650;letter-spacing:0}h1{max-width:900px;margin-top:16px;font-size:clamp(4.1rem,10.2vw,9.6rem);line-height:.91}h2{margin-top:0;font-size:clamp(2.85rem,6.3vw,6.6rem);line-height:1.03}h3{color:var(--color-text);font-size:var(--step-1);line-height:1.16}h4{color:var(--color-text);font-size:1rem}.section-intro p{grid-column:2;max-width:760px;margin-top:0;font-size:var(--step-1)}.section-intro h2{grid-column:2}.hero-section{min-height:calc(100svh - 94px);display:grid;align-items:center;padding-top:clamp(62px,8vw,110px);counter-increment:none}.hero-section:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background:linear-gradient(120deg,transparent 0 38%,rgba(232,163,61,.1) 38% 39%,transparent 39%),radial-gradient(circle at 74% 26%,rgba(17,75,95,.14),transparent 34%),radial-gradient(circle at 28% 82%,rgba(11,61,46,.12),transparent 38%);animation:mesh-drift 14s ease-in-out infinite alternate}.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.22fr) minmax(300px,.58fr);align-items:center;gap:clamp(34px,6vw,82px)}.hero-tagline{max-width:780px;margin-top:22px;color:var(--color-muted);font-size:var(--step-1)}.animated-intro{display:flex;flex-wrap:wrap;gap:10px;margin-top:34px}.animated-intro span{display:inline-flex;align-items:center;min-height:36px;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:0 12px;background:color-mix(in srgb,var(--color-surface) 78%,transparent);color:var(--color-secondary);font-size:var(--step--1);font-weight:800;animation:intro-float 4.8s ease-in-out infinite}.animated-intro span:nth-child(2){animation-delay:.32s}.animated-intro span:nth-child(3){animation-delay:.64s}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}.button{min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:0 18px;background:color-mix(in srgb,var(--color-surface) 88%,transparent);color:var(--color-text);font-weight:800;cursor:pointer;box-shadow:0 14px 36px #0d15120d}.button.primary{border-color:transparent;background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));color:#fffaf0}.button:hover,.button:focus-visible{transform:translateY(-2px)}.portrait-panel{position:relative;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-lg);aspect-ratio:.76;background:var(--color-surface);box-shadow:0 30px 90px color-mix(in srgb,var(--color-shadow) 88%,transparent);transform-origin:center}.portrait-panel:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,transparent 45%,rgba(13,21,18,.42));pointer-events:none}.portrait-panel picture,.portrait-panel img{display:block;width:100%;height:100%}.portrait-panel img{object-fit:cover;object-position:52% 27%}.portrait-note{position:absolute;right:18px;bottom:18px;left:18px;z-index:1;border:1px solid rgba(255,250,240,.24);border-radius:var(--radius-md);padding:15px;background:#0d1512c2;color:#fffaf0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.portrait-note span{display:block;margin-bottom:4px;color:#fffaf0b8;font-size:var(--step--1)}.scroll-indicator{position:absolute;left:50%;bottom:26px;z-index:1;display:grid;justify-items:center;gap:8px;color:var(--color-muted);font-size:var(--step--1);font-weight:800;transform:translate(-50%)}.scroll-indicator span{width:1px;height:42px;background:linear-gradient(var(--color-accent),transparent);animation:scroll-line 1.6s ease-in-out infinite}.about-grid,.contact-grid,.endorsement-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(320px,1.1fr);gap:clamp(28px,5vw,72px);align-items:start}.stat-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-border)}.mini-stat{min-height:142px;padding:26px;background:color-mix(in srgb,var(--color-surface) 92%,transparent)}.mini-stat strong{display:block;color:var(--color-primary);font-family:var(--font-display);font-size:var(--step-2);line-height:1}.mini-stat span{display:block;margin-top:9px;color:var(--color-muted);font-size:var(--step--1);line-height:1.5}.education-snapshot,.reference-panel,.contact-form,.contact-links{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--color-surface) 92%,transparent);box-shadow:0 24px 76px color-mix(in srgb,var(--color-shadow) 72%,transparent)}.education-snapshot{padding:clamp(24px,4vw,36px)}.snapshot-line{position:relative;display:grid;gap:18px;margin-top:26px}.snapshot-line:before{content:"";position:absolute;left:7px;top:8px;bottom:8px;width:1px;background:var(--color-border)}.snapshot-item{position:relative;padding-left:30px}.snapshot-item:before{content:"";position:absolute;left:0;top:6px;width:15px;height:15px;border:3px solid var(--color-surface);border-radius:50%;background:var(--color-accent);box-shadow:0 0 0 1px var(--color-border)}.snapshot-item span{color:var(--color-secondary);font-size:var(--step--1);font-weight:800}.snapshot-item h4{margin-top:5px}.snapshot-item p{margin-top:4px}.cert-strip{display:flex;flex-wrap:wrap;gap:8px;margin-top:28px}.cert-strip span,.tag-row span,.skill-cloud span{display:inline-flex;align-items:center;min-height:30px;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:0 10px;background:color-mix(in srgb,var(--color-background) 66%,var(--color-surface));color:var(--color-muted);font-size:var(--step--1);font-weight:700}.filter-bar{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:22px}.filter-bar button{border:1px solid var(--color-border);background:color-mix(in srgb,var(--color-surface) 82%,transparent);cursor:pointer}.filter-bar button.active{border-color:color-mix(in srgb,var(--color-accent) 68%,transparent);color:var(--color-text)}.research-grid,.focus-grid,.project-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:18px}.research-card{grid-column:span 4;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--color-surface) 92%,transparent);box-shadow:0 18px 58px #0d15120b}.research-card:nth-child(5n+1),.project-card:nth-child(5n+2){grid-column:span 5}.research-card:nth-child(5n+2),.project-card:nth-child(5n+4){grid-column:span 7}.research-card button{width:100%;min-height:250px;display:grid;align-content:start;gap:12px;border:0;padding:24px;background:transparent;color:inherit;text-align:left;cursor:pointer}.research-card h3{max-width:94%}.research-card button p{min-height:52px}.research-card button .icon{justify-self:end;margin-top:auto;transition:transform .22s ease}.research-card.is-open button .icon{transform:rotate(90deg)}.research-abstract{display:grid;grid-template-rows:0fr;border-top:1px solid transparent;padding:0 24px;transition:grid-template-rows .26s ease,border-color .26s ease,padding .26s ease}.research-abstract>*{overflow:hidden}.research-card.is-open .research-abstract{grid-template-rows:1fr;border-color:var(--color-border);padding:18px 24px 24px}.research-abstract a,.project-detail a,.contact-links a{display:inline-flex;align-items:center;gap:8px;width:fit-content;margin-top:14px;color:var(--color-secondary);font-weight:800}.vertical-timeline{position:relative;display:grid;gap:26px}.vertical-timeline:before{content:"";position:absolute;left:clamp(108px,17vw,210px);top:0;bottom:0;width:1px;background:var(--color-border)}.timeline-entry{position:relative;display:grid;grid-template-columns:clamp(110px,17vw,210px) minmax(0,1fr);gap:clamp(18px,4vw,42px)}.timeline-date{padding-top:24px}.timeline-card{position:relative;border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:clamp(22px,3vw,30px);background:color-mix(in srgb,var(--color-surface) 92%,transparent);box-shadow:0 18px 58px #0d15120b}.timeline-card:before{content:"";position:absolute;left:-49px;top:28px;width:15px;height:15px;border:3px solid var(--color-surface);border-radius:50%;background:var(--color-accent);box-shadow:0 0 0 1px var(--color-border)}.timeline-card h3{margin-top:8px}.timeline-card p{margin-top:6px}.timeline-card ul{display:grid;gap:8px;margin:16px 0 0;padding:0;list-style:none}.timeline-card li{position:relative;padding-left:18px}.timeline-card li:before{content:"";position:absolute;left:0;top:.75em;width:6px;height:6px;border-radius:50%;background:var(--color-accent)}.focus-card,.project-card{position:relative;overflow:hidden;grid-column:span 4;min-height:300px;border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:24px;background:color-mix(in srgb,var(--color-surface) 92%,transparent);box-shadow:0 18px 58px #0d15120b}.focus-icon{width:48px;height:48px;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-primary);background:color-mix(in srgb,var(--color-accent) 12%,var(--color-surface))}.focus-card h3{margin-top:24px}.focus-card p{margin-top:10px}.progress-track{position:absolute;right:24px;bottom:24px;left:24px;height:8px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--color-primary) 12%,transparent)}.progress-track span{display:block;width:var(--level);height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--color-primary),var(--color-accent));transform:scaleX(0);transform-origin:left;transition:transform .9s ease}.aos-animate .progress-track span{transform:scaleX(1)}.skill-cloud{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}.project-card{display:grid;align-content:stretch}.project-card:before{content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,var(--color-primary),var(--color-accent),var(--color-secondary));transform:scaleX(0);transform-origin:left;transition:transform .24s ease}.project-face{display:grid;align-content:start;gap:16px}.project-detail{display:grid;align-content:end;gap:16px;margin-top:26px;opacity:.82;transform:translateY(8px);transition:opacity .22s ease,transform .22s ease}.project-card:hover:before,.project-card:focus-within:before{transform:scaleX(1)}.project-card:hover .project-detail,.project-card:focus-within .project-detail{opacity:1;transform:translateY(0)}.tag-row{display:flex;flex-wrap:wrap;gap:8px}.reference-panel{padding:clamp(24px,4vw,36px)}.reference-panel .icon{width:44px;height:44px;color:var(--color-accent)}.reference-panel h3{margin-top:24px}.reference-panel p{margin-top:12px}.contact-grid{grid-template-columns:minmax(0,.9fr) minmax(320px,.72fr)}.contact-form{display:grid;gap:14px;padding:clamp(24px,4vw,34px)}.contact-form label{display:grid;gap:7px;color:var(--color-text);font-size:var(--step--1);font-weight:800}.contact-form input,.contact-form textarea{width:100%;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:13px 14px;background:color-mix(in srgb,var(--color-background) 60%,var(--color-surface));color:var(--color-text);outline:none;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.contact-form input:focus,.contact-form textarea:focus{border-color:color-mix(in srgb,var(--color-accent) 70%,transparent);box-shadow:0 0 0 4px color-mix(in srgb,var(--color-accent) 18%,transparent);transform:translateY(-1px);outline:none}.contact-form textarea{min-height:148px;resize:vertical}.contact-form .button{justify-self:start}.form-notice{min-height:26px;font-size:var(--step--1)}.contact-links{display:grid;align-content:start;gap:12px;padding:clamp(24px,4vw,34px)}.contact-links a{width:100%;min-height:54px;justify-content:space-between;border:1px solid var(--color-border);border-radius:var(--radius-sm);margin-top:0;padding:0 14px;background:color-mix(in srgb,var(--color-background) 50%,var(--color-surface))}.footer{border-top:1px solid var(--color-border);padding:44px 0;background:color-mix(in srgb,var(--color-surface) 78%,var(--color-background))}.footer-grid{display:grid;grid-template-columns:1fr 1.6fr auto;gap:24px;align-items:center}.footer strong{color:var(--color-text);font-family:var(--font-display);font-size:var(--step-1)}.footer p{margin-top:5px;font-size:var(--step--1)}.footer nav{display:flex;flex-wrap:wrap;gap:10px 16px}.footer nav a{color:var(--color-muted);font-size:var(--step--1);font-weight:800}.back-to-top{min-height:42px;display:inline-flex;align-items:center;gap:9px;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:0 14px;background:transparent;color:var(--color-secondary);font-weight:800;cursor:pointer}.back-to-top .icon{transform:rotate(-90deg)}[data-aos]{transition-duration:.52s!important;transition-timing-function:cubic-bezier(.22,1,.36,1)!important}@keyframes mesh-drift{0%{transform:translate3d(-1%,-1%,0) scale(1)}to{transform:translate3d(1%,1.5%,0) scale(1.03)}}@keyframes intro-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes scroll-line{0%,to{transform:scaleY(.45);transform-origin:top}50%{transform:scaleY(1)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}@media(min-width:1440px){:root{--container: min(1320px, calc(100vw - 80px) )}.hero-grid{grid-template-columns:minmax(0,1.26fr) minmax(360px,.54fr)}}@media(max-width:1024px){:root{--container: min(100vw - 32px, 1200px)}.site-header{align-items:stretch;flex-wrap:wrap}.brand{min-width:0;flex:1 1 auto}.nav-pills{order:3;justify-content:flex-start;width:100%}.hero-grid,.about-grid,.contact-grid,.endorsement-grid{grid-template-columns:1fr}.portrait-panel{max-width:520px}.research-grid,.focus-grid,.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.research-card,.research-card:nth-child(5n+1),.research-card:nth-child(5n+2),.focus-card,.project-card,.project-card:nth-child(5n+2),.project-card:nth-child(5n+4){grid-column:span 1}}@media(max-width:768px){:root{--container: min(100vw - 24px, 1200px)}body{background:linear-gradient(90deg,rgba(11,61,46,.045) 1px,transparent 1px) 0 0 / 52px 52px,linear-gradient(0deg,rgba(11,61,46,.045) 1px,transparent 1px) 0 0 / 52px 52px,var(--color-background)}.site-header{top:8px;margin-top:8px;border-radius:var(--radius-sm)}.brand-mark,.theme-toggle{width:38px;height:38px}.site-section{scroll-margin-top:118px;padding:66px 0}.site-section:not(.hero-section) .section-container:before{top:-22px;font-size:clamp(3.4rem,20vw,6rem)}.section-intro{grid-template-columns:1fr;gap:14px;margin-bottom:32px}.section-intro h2,.section-intro p{grid-column:auto}.eyebrow{padding-top:0}.hero-section{min-height:auto;padding-top:54px;padding-bottom:96px}.hero-grid{gap:34px}.hero-actions{display:grid;grid-template-columns:1fr}.button{width:100%}.portrait-panel{max-width:min(100%,390px);margin:0 auto;border-radius:var(--radius-md)}.stat-row,.research-grid,.focus-grid,.project-grid{grid-template-columns:1fr}.vertical-timeline:before{left:7px}.timeline-entry{grid-template-columns:1fr;gap:8px;padding-left:32px}.timeline-date{padding-top:0}.timeline-card:before{left:-32px;top:24px}.footer-grid{grid-template-columns:1fr}.back-to-top{justify-self:start}}@media(max-width:375px){:root{--container: min(100vw - 18px, 1200px)}.brand-text{max-width:210px}.nav-pills a{min-height:36px;padding:0 10px}.section-intro p,.hero-tagline{font-size:1rem}.animated-intro{display:grid}.portrait-note{right:12px;bottom:12px;left:12px;padding:12px}.research-card button,.focus-card,.project-card,.timeline-card,.education-snapshot,.reference-panel,.contact-form,.contact-links{border-radius:var(--radius-md);padding:20px}}
