:root{--color-bg:#0d141d;--color-surface:#17212ed1;--color-surface-strong:#17212e;--color-surface-soft:#121c27;--color-heading:#f2eee7;--color-text:#e5ded4;--color-secondary:#a8b4c3;--color-muted:#7f8b9c;--color-accent:#7aa7d9;--color-accent-strong:#9bbfe6;--color-on-accent:#08111c;--color-header-bg:#0d141de0;--color-border:#e2e8f01c;--color-border-soft:#e2e8f014;--color-border-accent:#7aa7d973;--shadow-card:0 18px 50px #00000029;--border-subtle:1px solid var(--color-border);--border-soft:1px solid var(--color-border-soft);--radius-control:8px;--card-padding:24px;--stack-gap:16px;color:var(--color-text);background:var(--color-bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:86px}body{margin:0}body:before{z-index:-1;content:"";background:var(--color-bg);position:fixed;inset:0}a{color:inherit;text-decoration:none}button,a{outline-color:var(--color-accent);outline-offset:3px}button{font:inherit}a:focus-visible{outline:2px solid var(--color-accent)}svg{flex:none}main{min-height:100svh}.site-header{z-index:20;border-bottom:var(--border-soft);background:var(--color-header-bg);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);justify-content:space-between;align-items:center;gap:24px;min-height:68px;padding:0 5vw;display:flex;position:sticky;top:0}.brand,.site-header nav,.hero-actions,.card-links,.contact-links,.contact-meta{align-items:center;display:flex}.brand{gap:10px;font-size:.95rem;font-weight:700}.brand-mark{border:var(--border-subtle);border-radius:var(--radius-control);background:var(--color-surface-strong);width:36px;height:36px;color:var(--color-accent);place-items:center;display:grid}.site-header nav{gap:6px}.site-header nav a{border-radius:var(--radius-control);min-height:40px;color:var(--color-secondary);white-space:nowrap;padding:10px 11px;font-size:.9rem;transition:background .16s,border-color .16s,box-shadow .16s,color .16s,transform .16s;position:relative}.site-header nav a:hover,.site-header nav a.active{background:var(--color-surface-strong);color:var(--color-heading)}.site-header nav a:hover{transform:translateY(-1px)}.site-header nav a.active{box-shadow:inset 0 0 0 1px var(--color-border-accent)}.hero-section,.page-section{width:min(1120px,90vw);margin:0 auto}.hero-section{isolation:isolate;background:0 0;grid-template-columns:minmax(0,1fr) minmax(260px,360px);justify-content:space-between;align-items:center;gap:clamp(32px,6vw,72px);min-height:calc(76svh - 52px);padding:54px 0 48px;display:grid;position:relative}.hero-section:before{z-index:-1;content:"";background:var(--color-bg);width:100vw;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.eyebrow,.project-type,.period{color:var(--color-accent);letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:.76rem;font-weight:800}h1,h2,h3,p{margin-top:0}h1{max-width:820px;color:var(--color-heading);letter-spacing:0;margin-bottom:24px;font-size:clamp(3.7rem,8vw,7.2rem);line-height:.94}h2{max-width:760px;color:var(--color-heading);letter-spacing:0;margin-bottom:0;font-size:clamp(1.65rem,2.3vw,2.25rem);line-height:1.12}h3{color:var(--color-heading);margin-bottom:10px;font-size:1.2rem;line-height:1.25}.hero-focus{max-width:760px;color:var(--color-text);margin-bottom:20px;font-size:clamp(1.35rem,2.5vw,2rem);font-weight:650;line-height:1.22}.hero-summary,.section-description,.project-body p,.compact-card p,.about-copy p,.timeline-item li{color:var(--color-secondary);font-size:1rem;line-height:1.75}.hero-summary{max-width:720px;margin-bottom:28px;font-size:1.08rem}.hero-portrait,.headshot-placeholder{border:var(--border-subtle);border-radius:var(--radius-control);background:linear-gradient(145deg, #7aa7d921, #17212ed6), var(--color-surface-soft);box-shadow:var(--shadow-card);position:relative;overflow:hidden}.hero-portrait{aspect-ratio:4/5;border-radius:4px;justify-self:end;width:min(100%,360px)}.hero-portrait img,.headshot-placeholder img{object-fit:cover;object-position:35% center;width:100%;height:100%;display:block}.hero-actions,.card-links,.contact-links{flex-wrap:wrap;gap:10px}.button{border:var(--border-subtle);border-radius:var(--radius-control);white-space:nowrap;cursor:pointer;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:10px 15px;font-size:.92rem;font-weight:750;line-height:1.2;transition:transform .16s,border-color .16s,background .16s,box-shadow .16s,color .16s;display:inline-flex}.button:focus-visible,.site-header nav a:focus-visible,.brand:focus-visible{outline:2px solid var(--color-accent);box-shadow:0 0 0 5px #7aa7d924}.button svg{width:18px;height:18px}.button:hover{border-color:var(--color-border-accent);transform:translateY(-1px);box-shadow:0 12px 32px #0003}.button-disabled,.button-disabled:hover{cursor:not-allowed;opacity:.68;transform:none}.video-action{appearance:none}.button-primary{background:var(--color-accent);color:var(--color-on-accent)}.button-primary:hover{background:var(--color-accent-strong)}.button-secondary{background:var(--color-surface-strong);color:var(--color-text)}.button-secondary:hover{border-color:var(--color-border-accent)}.project-card,.featured-project,.compact-card,.skill-group,.timeline-item{border:var(--border-subtle);border-radius:var(--radius-control);background:var(--color-surface);box-shadow:var(--shadow-card)}.project-card,.compact-card,.skill-group,.timeline-item,.education-list article{transition:border-color .16s,box-shadow .16s,transform .16s}.project-card:hover,.compact-card:hover,.skill-group:hover,.education-list article:hover{border-color:var(--color-border-accent);transform:translateY(-2px)}.page-section{border-top:var(--border-soft);padding:58px 0}.section-header{gap:16px;margin-bottom:34px;display:grid}.section-description{max-width:720px;margin-bottom:0}.project-grid{gap:24px;display:grid}.featured-projects{gap:28px;display:grid}.featured-project{display:grid;overflow:hidden}.featured-project-primary{border-color:var(--color-border-accent);background:linear-gradient(135deg, #7aa7d91c, transparent 42%), var(--color-surface);grid-template-columns:minmax(0,1.42fr) minmax(340px,.78fr)}.featured-project-secondary{grid-template-columns:minmax(300px,.9fr) minmax(0,1.1fr)}.featured-project-copy{flex-direction:column;justify-content:center;min-width:0;padding:clamp(24px,4vw,42px);display:flex}.featured-project-copy h3{margin-top:10px;font-size:clamp(1.85rem,3vw,2.75rem)}.featured-project-primary .featured-project-copy h3{font-size:clamp(2.2rem,4vw,3.4rem)}.featured-summary{color:var(--color-text);margin-top:16px;margin-bottom:24px;font-size:1.12rem;font-weight:650;line-height:1.55}.paper-indicator{width:fit-content;color:var(--color-accent-strong);background:#7aa7d914;border:1px solid #7aa7d947;border-radius:999px;align-items:center;gap:7px;padding:7px 10px;font-size:.78rem;font-weight:800;line-height:1.2;transition:background .16s,border-color .16s,color .16s,transform .16s;display:inline-flex}.paper-indicator:hover,.paper-indicator:focus-visible{border-color:var(--color-border-accent);color:var(--color-heading);background:#7aa7d924;transform:translateY(-1px)}.project-media{object-fit:cover;background:var(--color-surface-soft);width:100%;height:100%;min-height:420px;display:block}video.project-media{object-fit:contain}iframe.project-media{border:0}.youtube-lite{color:var(--color-heading);cursor:pointer;background:#050a10;border:0;place-items:center;padding:0;display:grid;position:relative;overflow:hidden}.youtube-lite-thumbnail{object-fit:contain;object-position:center;width:100%;height:100%;margin:auto;position:absolute;inset:0}.youtube-lite-thumbnail-fallback{width:min(100%,480px);height:auto;max-height:100%}.youtube-lite-overlay{background:linear-gradient(#050a100a,#050a1061),#050a101f;place-items:center;transition:background .16s,transform .16s;display:grid;position:absolute;inset:0}.youtube-lite-play{width:62px;height:62px;color:var(--color-heading);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0d141dc7;border:1px solid #f2eee747;border-radius:999px;place-items:center;transition:background .16s,border-color .16s,color .16s,transform .16s;display:grid;box-shadow:0 14px 38px #00000061}.youtube-lite:hover .youtube-lite-overlay,.youtube-lite:focus-visible .youtube-lite-overlay{background:linear-gradient(#050a1005,#050a1047),#050a100f}.youtube-lite:hover .youtube-lite-play,.youtube-lite:focus-visible .youtube-lite-play{border-color:var(--color-border-accent);color:var(--color-on-accent);background:#7aa7d9eb;transform:scale(1.04)}.youtube-lite:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}.featured-project-primary .project-media{min-height:500px}.featured-project-secondary .project-media{min-height:300px}.project-media-placeholder{border-right:var(--border-soft);background:linear-gradient(135deg, #7aa7d91f, #121c2794), var(--color-surface-soft);place-items:center;display:grid}.media-placeholder-content{text-align:center;justify-items:center;gap:10px;max-width:340px;padding:26px;display:grid}.media-placeholder-content svg{color:var(--color-accent)}.media-placeholder-content p{color:var(--color-heading);margin:0;font-size:1.15rem;font-weight:800}.media-placeholder-content span{color:var(--color-secondary);font-size:.9rem;line-height:1.5}.project-facts{gap:10px;margin-bottom:2px;display:grid}.project-facts div{border-left:2px solid var(--color-accent);padding-left:14px}.project-facts span{color:var(--color-muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:3px;font-size:.76rem;font-weight:800;display:block}.project-facts strong{color:var(--color-text);font-size:.98rem;line-height:1.55}.secondary-projects{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:24px}.video-modal-backdrop{z-index:40;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#050a10c7;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.video-modal{border:var(--border-subtle);border-radius:var(--radius-control);background:var(--color-surface-strong);width:min(1040px,100%);max-height:min(820px,100svh - 48px);padding:clamp(18px,3vw,28px);overflow:auto;box-shadow:0 24px 80px #00000085}.video-modal-header{justify-content:space-between;align-items:start;gap:18px;display:flex}.video-modal-header h2{margin-top:8px;font-size:clamp(1.35rem,2.6vw,2rem)}.modal-close{border:var(--border-subtle);border-radius:var(--radius-control);background:var(--color-surface);width:42px;height:42px;color:var(--color-text);cursor:pointer;flex:none;place-items:center;transition:background .16s,border-color .16s,color .16s,transform .16s;display:inline-grid}.modal-close:hover,.modal-close:focus-visible{border-color:var(--color-border-accent);background:var(--color-surface-soft);color:var(--color-heading);transform:translateY(-1px)}.video-modal-description{max-width:760px;color:var(--color-secondary);margin:8px 0 20px;line-height:1.65}.video-player-frame{border:var(--border-soft);border-radius:var(--radius-control);aspect-ratio:16/9;background:#050a10;overflow:hidden}.video-player-frame video,.video-player-frame iframe,.video-player-frame .youtube-lite{border:0;width:100%;height:100%;min-height:0;display:block}.video-player-frame video{object-fit:contain}.project-card{overflow:hidden}.project-body{padding:28px}.project-body h3{margin-top:8px;font-size:1.55rem}.project-metric{color:var(--color-text);margin-bottom:12px;font-weight:750}.tag-list{flex-wrap:wrap;gap:8px;margin:22px 0;padding:0;list-style:none;display:flex}.tag-list li{border:var(--border-subtle);background:var(--color-surface-strong);color:var(--color-secondary);border-radius:999px;padding:7px 10px;font-size:.82rem;font-weight:700}.split-section{grid-template-columns:minmax(190px,.42fr) minmax(0,1.58fr);align-items:start;gap:36px;display:grid}.timeline{gap:var(--stack-gap);display:grid}.timeline-item{gap:var(--card-padding);padding:var(--card-padding);grid-template-columns:210px minmax(0,1fr);display:grid}.timeline-item:first-child{border-color:var(--color-border-accent);background:linear-gradient(135deg, #7aa7d917, transparent 40%), var(--color-surface)}.timeline-item-muted{box-shadow:none;background:#17212e80}.timeline-item-muted h3,.timeline-item-muted .organization{color:var(--color-secondary)}.timeline-item-muted .period,.timeline-item-muted li{color:var(--color-muted)}.timeline-research{border-left:2px solid var(--color-border-accent);color:var(--color-secondary);margin:12px 0 0;padding-left:12px;font-size:.9rem;font-weight:750;line-height:1.55}.organization{color:var(--color-heading);margin:0;font-weight:850;line-height:1.45}.timeline-item ul{gap:10px;margin:0;padding-left:18px;display:grid}.research-grid,.publication-grid,.skills-grid{gap:var(--stack-gap);display:grid}.research-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.publication-grid{grid-template-columns:minmax(0,1fr)}.selected-publications-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.compact-card,.skill-group{padding:var(--card-padding)}.compact-card svg,.publication-card svg{color:var(--color-accent);margin-bottom:16px}.subsection-block{margin-top:42px}.subsection-block .section-header{margin-bottom:20px}.selected-publication-card{scroll-margin-top:96px}.selected-publication-card .tag-list{margin-bottom:0}.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.skill-group .tag-list{margin-bottom:0}.about-section{grid-template-columns:minmax(240px,.58fr) minmax(0,1fr);gap:48px;display:grid}.headshot-placeholder{aspect-ratio:4/5;width:min(100%,280px);display:grid}.about-copy{gap:var(--stack-gap);display:grid}.about-copy p{margin-bottom:0;font-size:1.08rem}.education-list{gap:var(--stack-gap);margin-top:16px;display:grid}.education-list article{border:var(--border-subtle);border-radius:var(--radius-control);background:var(--color-surface);padding:var(--card-padding)}.education-list h3{margin:8px 0}.education-list p{color:var(--color-secondary)}.contact-section{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:40px;padding-bottom:82px;display:grid}.contact-meta{color:var(--color-secondary);gap:8px;font-weight:700;line-height:1.4}.resume-page{width:min(900px,90vw);margin:0 auto;padding:48px 0 96px}.resume-back{margin-bottom:48px;display:inline-flex}.resume-header{border-bottom:var(--border-subtle);padding-bottom:32px}.resume-header h1{margin-bottom:14px;font-size:clamp(3rem,8vw,5.6rem)}.resume-header p:last-child{max-width:720px;color:var(--color-text);font-size:1.25rem;font-weight:650;line-height:1.4}.resume-section{border-bottom:var(--border-subtle);padding:34px 0}.resume-section h2{margin-bottom:24px;font-size:1.7rem}.resume-item{gap:8px;margin-bottom:26px;display:grid}.resume-item:last-child{margin-bottom:0}.resume-item p,.resume-item li,.resume-skills p{color:var(--color-secondary);line-height:1.65}.resume-item ul{gap:8px;margin:8px 0 0;padding-left:18px;display:grid}.resume-tech{font-weight:750}@media (max-width:900px){.site-header{flex-direction:column;align-items:flex-start;padding-top:16px;padding-bottom:16px}.site-header nav{width:100%;padding-bottom:4px;overflow-x:auto}.hero-section,.split-section,.about-section,.featured-project,.contact-section{grid-template-columns:1fr}.hero-section{gap:28px;min-height:auto;padding-top:46px;padding-bottom:42px}.hero-portrait{justify-self:start;width:min(72vw,320px)}.timeline-item,.research-grid,.selected-publications-grid,.secondary-projects,.skills-grid{grid-template-columns:1fr}.project-media,.featured-project-primary .project-media{min-height:260px}.project-media-placeholder{border-right:0;border-bottom:var(--border-soft)}.contact-section{align-items:start}}@media (max-width:560px){.hero-section,.page-section{width:min(100% - 32px,1120px)}.page-section{padding:46px 0}h1{font-size:clamp(3rem,18vw,3.35rem)}.hero-focus{font-size:1.22rem}.hero-summary{font-size:1rem}.hero-portrait{width:min(100%,280px)}.hero-actions .button,.card-links .button,.contact-links .button{white-space:normal;width:100%}.video-modal-backdrop{align-items:end;padding:16px}.video-modal{max-height:calc(100svh - 32px)}.video-modal-header{align-items:start}.project-media,.featured-project-primary .project-media{min-height:220px}.featured-project-copy,.project-body,.timeline-item,.compact-card,.skill-group,.education-list article{padding:20px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
