:root{color-scheme:light;--paper:#f3ecdf;--royal:#182b49;--purple:#304767;--gold:#c7b38f;--muted:#626775;--line:#d9cfbd;--tint:#e9e0d0;--serif:Georgia,'Times New Roman',serif;--sans:Arial,Helvetica,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--royal);font-family:var(--sans);-webkit-font-smoothing:antialiased}#app{min-height:100dvh;display:flex;flex-direction:column}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:5px}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--purple);outline-offset:5px}p,h1,h2,h3,figure{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400}em{font-weight:400;color:#786747}img{max-width:100%;display:block}main{flex:1;min-width:0;outline:none}.wrap{width:min(1240px,calc(100% - 112px));margin-inline:auto}.site-header{height:100px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:24px}.mark{font:32px var(--serif);letter-spacing:-2px}.mark span{color:#9d8761}nav{display:flex;gap:34px;font-size:13px}nav a{padding:12px 0}nav a[aria-current=page]{border-bottom:2px solid var(--royal)}.header-resume{font-size:12px;border:1px solid var(--line);padding:12px 16px}.header-resume span{margin-left:24px}.skip-link{position:absolute;left:20px;top:-80px;padding:14px 20px;background:var(--royal);color:white;z-index:10}.skip-link:focus{top:12px}.eyebrow,.edition,.project-category{font:10px/1.6 var(--sans);letter-spacing:1.5px;text-transform:uppercase}.edition,.project-category{color:var(--muted)}.hero{padding-top:38px}.hero-topline{display:flex;justify-content:space-between;gap:20px}.status-dot{display:inline-block;width:7px;height:7px;background:#9d8761;border-radius:50%;margin-right:9px}.hero-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:65px;align-items:center;padding:52px 0 62px}.intro-name{font-size:14px;margin-bottom:22px}h1{font-size:clamp(52px,5.6vw,80px);line-height:1.03;letter-spacing:-3.4px}h1:focus{outline:none}.intro{max-width:470px;color:var(--muted);font-size:15px;line-height:1.85;margin-top:26px}.hero-links{display:flex;gap:25px;align-items:center;margin-top:28px}.button{background:var(--royal);color:white;padding:17px 20px;display:inline-flex;gap:45px;font-size:12px}.button:hover{background:var(--purple)}.text-link{font-size:12px}.hero-feature{background:var(--tint);padding:24px;border:1px solid #d9cfbd;border-radius:3px}.feature-top{display:flex;justify-content:space-between;margin-bottom:25px}.mini-index{font:10px monospace;color:var(--muted)}.project-figure a{display:block;position:relative;background:white}.project-figure img{width:100%;height:auto;aspect-ratio:1.55;object-fit:contain;padding:18px;background:white}.figure-expand{position:absolute;right:9px;bottom:9px;background:var(--paper);padding:6px;font-size:15px}.project-figure figcaption{font-size:10px;line-height:1.6;color:var(--muted);margin-top:12px}.feature-bottom{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:26px}.feature-bottom h2{font-size:25px;letter-spacing:-.7px;margin-top:7px}.round-link{border:1px solid #c7b38f;width:38px;height:38px;display:grid;place-items:center;border-radius:50%;flex-shrink:0}.focus-strip{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:26px 0;border-block:1px solid var(--line)}.focus-strip p{font-size:12px;line-height:1.7;color:var(--muted)}.focus-strip strong{color:var(--royal);font-weight:400}.focus-strip>span{font:18px var(--serif)}.home-work{padding:55px 0}.more-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:28px}.more-heading h2{font-size:34px;letter-spacing:-1px;margin-top:12px}.home-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}.home-cards img{width:100%;height:auto;aspect-ratio:1.6;object-fit:contain;background:white;padding:18px;border:1px solid var(--line);margin-bottom:21px}.home-cards h3{font-size:23px;margin:8px 0 11px}.home-cards h3 span{float:right;font:18px var(--sans)}.home-cards article p:last-child{font-size:12px;line-height:1.7;color:var(--muted)}.home-contact{background:var(--royal);color:var(--paper);padding:42px;margin:10px 0 50px}.home-contact h2{font-size:40px;margin:18px 0 22px;letter-spacing:-1px}.site-footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;align-items:center;padding-block:25px;font-size:10px;color:var(--muted)}.social-links{display:flex;gap:23px}.work-section{padding-block:60px}.section-heading{display:flex;justify-content:space-between;gap:40px;align-items:end;margin-bottom:40px}.page-title{font-size:clamp(40px,4.6vw,64px);line-height:1.1;letter-spacing:-2px;margin-top:18px}.section-heading>p{max-width:300px;font-size:13px;line-height:1.8;color:var(--muted)}.filters{display:flex;flex-wrap:wrap;gap:10px;padding:20px 0;border-block:1px solid var(--line);align-items:center}.filters button{border:1px solid var(--line);background:transparent;color:var(--royal);padding:10px 16px;font:12px var(--sans);border-radius:3px;cursor:pointer}.filters button[aria-pressed=true]{background:var(--royal);border-color:var(--royal);color:white}.filters button:hover{border-color:var(--royal)}.filters>span{margin-left:auto;color:var(--muted);font-size:11px}.project{display:grid;grid-template-columns:1.1fr 1fr;gap:55px;padding:45px 0;border-bottom:1px solid var(--line);align-items:center}.project-info h2{font-size:34px;letter-spacing:-1px;margin:13px 0}.project-question{font:20px/1.4 var(--serif);margin-bottom:17px}.project-description{font-size:13px;line-height:1.8;color:var(--muted)}.project-result{font-size:11px;line-height:1.7;margin-top:19px;padding-left:13px;border-left:2px solid #9d8761}.tags{list-style:none;display:flex;flex-wrap:wrap;gap:7px;padding:0;margin:20px 0}.tags li{font:10px monospace;padding:5px 8px;background:var(--tint)}.project-link{font-size:12px;text-decoration:underline;text-underline-offset:5px}.work-experience{padding-top:55px}.experience-item{display:grid;grid-template-columns:1fr 1fr;gap:15px 30px;padding:25px 0;border-bottom:1px solid var(--line)}.experience-item h3{font-size:22px}.experience-item p{font-size:12px;line-height:1.8;color:var(--muted)}.experience-item p:last-child{grid-column:2}.about-section{display:grid;grid-template-columns:1fr 1.3fr;gap:70px;padding-block:65px}.bio p{font-size:16px;line-height:1.9;color:var(--muted);margin-bottom:22px}.education,.skill-list{border-top:1px solid var(--line);margin-top:30px;padding-top:26px}.skill-list>div{margin-bottom:20px}.skill-list>div>p:last-child{font-size:13px;line-height:1.8;margin-top:7px}.education h2{font-size:25px;margin:15px 0}.education>p{font-size:13px;line-height:1.8}.education-detail{margin:12px 0;color:var(--muted)}.coursework{color:var(--muted)}.research-section{padding-block:65px}.research-layout{display:grid;grid-template-columns:1fr 1.2fr;gap:70px}.research-intro{font:24px/1.6 var(--serif)}.research-topics{margin-top:40px}.research-topic{border-top:1px solid var(--line);padding:23px 0}.research-topic h2{font-size:25px;margin-bottom:12px}.research-topic p{font-size:13px;line-height:1.8;color:var(--muted)}.now-band{background:var(--royal);color:var(--paper);padding-block:65px;min-height:calc(100dvh - 100px)}.now-layout{display:grid;grid-template-columns:1fr 1.4fr;gap:70px}.now-items{display:grid;gap:40px}.now-item{padding-top:20px;border-top:1px solid #61718a}.now-item h2{font-size:30px;margin:17px 0}.now-item p:last-child{font-size:14px;line-height:1.8;color:#e4d9c7}.status,.updated{font-size:11px;color:#e4d9c7}.status{text-transform:uppercase;letter-spacing:1px}.updated{margin-top:25px}
@media(min-width:1550px){.hero-grid{padding-block:70px}}
@media(max-width:1000px){.wrap{width:calc(100% - 64px)}.hero-grid{gap:30px}h1{font-size:60px}.hero-feature{padding:18px}.feature-bottom h2{font-size:22px}.hero-grid .project-figure img{padding:8px}.project{gap:30px}.home-cards h3{font-size:21px}.about-section,.research-layout,.now-layout{gap:35px}.focus-strip>span{font-size:16px}.page-title{font-size:45px}}
@media(max-width:700px){.wrap{width:calc(100% - 40px)}.site-header{height:auto;min-height:100px;flex-wrap:wrap;gap:15px;padding:20px 0}.mark{font-size:28px}nav{order:3;width:100%;justify-content:space-between;gap:12px;font-size:12px}.header-resume{font-size:11px;padding:8px 12px}.hero{padding-top:26px}.edition{display:none}.hero-grid{grid-template-columns:1fr;gap:35px;padding:35px 0}.intro-name{font-size:13px}h1{font-size:62px}.intro{font-size:14px}.hero-feature{padding:20px}.feature-bottom h2{font-size:25px}.focus-strip{display:grid;grid-template-columns:1fr 1fr;gap:18px}.focus-strip>span{font-size:15px}.more-heading{align-items:start}.more-heading h2{font-size:29px}.more-heading>.text-link{white-space:nowrap;margin-top:5px}.home-cards{grid-template-columns:1fr;gap:30px}.home-cards img{margin-bottom:16px}.home-cards h3{font-size:25px}.home-contact{padding:28px 22px}.home-contact h2{font-size:34px}.site-footer{flex-wrap:wrap;font-size:10px}.social-links{width:100%;margin-top:5px}.work-section{padding-block:40px}.section-heading{display:block}.section-heading>p{margin-top:25px}.page-title{font-size:44px}.filters{gap:8px}.filters button{font-size:11px;padding:9px 12px}.filters>span{width:100%;margin:5px 0 0}.project{grid-template-columns:1fr;gap:25px;padding-block:32px}.project-info h2{font-size:30px}.project-figure img{padding:12px}.experience-item{grid-template-columns:1fr;gap:9px}.experience-item p:last-child{grid-column:auto}.about-section,.research-layout,.now-layout{grid-template-columns:1fr;gap:35px}.about-section,.research-section,.now-band{padding-block:40px}.research-intro{font-size:22px}}
@media(max-width:360px){h1{font-size:54px}.hero-links{gap:16px}.button{gap:20px;padding:16px}.more-heading{display:block}.more-heading>.text-link{display:inline-block;margin-top:15px}.feature-bottom h2{font-size:22px}.home-contact h2{font-size:29px}.home-contact .text-link{font-size:11px}}

/* Quiet homepage and brief research entries. */
.home-simple{padding-block:85px 65px;max-width:900px}.home-simple h1{font-size:36px;line-height:1.25;letter-spacing:-1px;margin:20px 0 12px}.home-motto{font:20px var(--serif);margin-bottom:24px}.home-intro{max-width:570px;font-size:15px;line-height:1.9;color:var(--muted)}.home-links{display:flex;flex-wrap:wrap;gap:28px;font-size:13px;margin-top:28px}.home-current{border-top:1px solid var(--line);margin-top:60px;padding-top:25px}.home-current>p:nth-child(2){font-size:13px;line-height:1.8;margin:12px 0 17px}.page-title{font-size:34px;letter-spacing:-.8px}.project-info h2{font-size:28px}.research-entries{max-width:780px;margin-top:36px}.research-entry{padding:27px 0;border-top:1px solid var(--line)}.research-entry h2,.research-interest h2{font-size:26px;margin:12px 0 17px}.research-entry>p:not(.eyebrow),.research-interest>p:not(.eyebrow){font-size:14px;line-height:1.85;color:var(--muted);max-width:680px}.research-entry .paper-subtitle{color:var(--royal);margin-bottom:9px}.research-entry .paper-authors{font-size:12px;margin-bottom:20px}.paper-links{display:flex;gap:25px;font-size:12px;margin-top:20px}.research-interest{padding:26px 0;border-top:1px solid var(--line);margin-top:12px}.now-band{background:var(--paper);color:var(--royal)}.now-item{border-color:var(--line)}.now-item p:last-child,.status,.updated{color:var(--muted)}.now-item h2{font-size:25px}.bio p{font:23px var(--serif);color:var(--royal)}
@media(max-width:700px){.home-simple{padding-block:50px}.home-simple h1{font-size:30px;letter-spacing:-.6px}.home-current{margin-top:42px}.page-title{font-size:30px}.home-links{gap:20px}.research-entry h2{font-size:24px}}

.project-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px}.project-gallery a{display:block;min-width:0;font-size:10px;color:var(--muted)}.project-gallery img{width:100%;height:auto;aspect-ratio:1.55;object-fit:cover;object-position:top;border:1px solid var(--line);background:#fff}.project-gallery span{display:block;margin-top:5px}.bio p{font:15px/1.95 var(--sans);color:var(--muted)}
@media(max-width:700px){.project-gallery{gap:5px}.project-gallery a{font-size:9px}}

.project-actions{display:flex;flex-wrap:wrap;gap:24px;align-items:center}.project-link.secondary{color:var(--muted);text-decoration:none}.project-page{padding-block:48px 70px}.back-link{display:inline-block;font-size:12px;color:var(--muted);margin-bottom:40px}.project-page-header{display:grid;grid-template-columns:1.15fr .85fr;gap:70px;align-items:end;margin-bottom:42px}.project-page-header .page-title{font-size:clamp(38px,4.8vw,66px);margin-top:13px}.project-page-question{font:21px/1.5 var(--serif);margin-top:20px;max-width:630px}.project-page-summary>p{font-size:14px;line-height:1.9;color:var(--muted);margin-bottom:20px}.project-page-lead{border-top:1px solid var(--line);padding-top:30px}.project-page-lead a{display:block;background:#fff;border:1px solid var(--line)}.project-page-lead img{width:100%;height:auto;max-height:720px;object-fit:contain;background:#fff}.project-page-lead figcaption,.detail-gallery figcaption{font-size:11px;line-height:1.6;color:var(--muted);margin-top:9px}.project-page-content{display:grid;grid-template-columns:1.15fr .85fr;gap:90px;padding:55px 0;border-bottom:1px solid var(--line)}.project-page-content h2,.project-page-gallery h2{font-size:29px;margin:12px 0 20px}.project-page-content section>p:not(.eyebrow){font-size:14px;line-height:1.9;color:var(--muted);margin-bottom:16px}.project-page-content aside>ul:not(.tags){margin:16px 0 28px;padding-left:19px}.project-page-content aside>ul:not(.tags) li{font-size:13px;line-height:1.75;margin-bottom:7px}.tools-label{margin-top:25px}.project-page-content .tags{margin-top:13px}.detail-result{border-left:2px solid var(--gold);padding-left:13px;font-size:12px;line-height:1.7;color:var(--muted);margin-top:24px}.project-page-gallery{padding:55px 0;border-bottom:1px solid var(--line)}.gallery-heading{display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px;align-items:end;margin-bottom:28px}.gallery-heading h2{margin:0}.gallery-heading>p:last-child{font-size:12px;color:var(--muted);text-align:right}.detail-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 24px}.detail-gallery figure{min-width:0}.detail-gallery figure.wide{grid-column:1/-1}.detail-gallery a{display:block;background:#fff;border:1px solid var(--line)}.detail-gallery img{width:100%;height:auto;aspect-ratio:1.55;object-fit:contain;background:#fff}.detail-gallery .wide img{max-height:690px;aspect-ratio:auto}.project-next{display:flex;justify-content:space-between;align-items:center;gap:30px;padding-top:42px}.project-next span{font:10px var(--sans);letter-spacing:1.5px;text-transform:uppercase;color:var(--muted)}.project-next a{font:24px var(--serif)}
@media(max-width:850px){.project-page-header,.project-page-content{grid-template-columns:1fr;gap:30px}.gallery-heading{grid-template-columns:1fr 1fr}.gallery-heading>p:last-child{grid-column:2;text-align:right}.project-page-content{gap:38px}.project-page-lead img{max-height:580px}}
@media(max-width:700px){.project-page{padding-block:32px 50px}.back-link{margin-bottom:30px}.project-page-header{margin-bottom:30px}.project-page-header .page-title{font-size:38px}.project-page-question{font-size:19px}.project-page-content{padding:40px 0}.project-page-gallery{padding:40px 0}.gallery-heading{display:block}.gallery-heading>p:last-child{text-align:left;margin-top:10px}.detail-gallery{grid-template-columns:1fr;gap:28px}.detail-gallery figure.wide{grid-column:auto}.detail-gallery .wide img{aspect-ratio:1.55}.project-next{align-items:flex-start}.project-next a{font-size:20px;text-align:right}}
.about-portrait{margin-top:34px;width:min(100%,390px);border:1px solid var(--line);background:#f8f4ec;padding:10px}.about-portrait img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;display:block;filter:sepia(.08) contrast(.98)}
@media(max-width:700px){.about-portrait{width:min(100%,330px);margin-top:26px}}
.home-profile{display:grid;grid-template-columns:1fr 230px;gap:65px;align-items:center;margin-top:20px}.home-profile .home-simple h1{margin-top:0}.home-profile h1{margin-top:0}.home-avatar{width:230px;height:230px;object-fit:cover;border-radius:50%;border:1px solid var(--line);background:#f8f4ec;padding:7px;filter:sepia(.08) contrast(.98)}
@media(max-width:700px){.home-profile{grid-template-columns:1fr;gap:30px}.home-avatar{grid-row:1;width:180px;height:180px}.home-profile h1{margin-top:0}}

/* Piano-inspired finish: an ivory keyboard, dark case, and staff-line details. */
:root{--paper:#f6f0e5;--royal:#17263e;--purple:#263b56;--gold:#bb9c69;--muted:#626879;--line:#d8cdbb;--tint:#eee4d3;--ivory:#fffaf1}
body{background:var(--paper)}
.site-header{position:relative;border-bottom:0}
.site-header::after{content:"";position:absolute;left:0;right:0;bottom:0;height:5px;background:repeating-linear-gradient(to bottom,var(--line) 0 1px,transparent 1px 4px);pointer-events:none}
.mark{font-style:italic}
.mark span{color:var(--gold)}
.site-header nav a{border-bottom:3px solid transparent}
.site-header nav a[aria-current=page]{border-bottom-color:var(--gold)}
.header-resume{background:var(--ivory);border-color:var(--line)}
.home-simple{max-width:1000px;padding-top:64px}
.home-simple>.eyebrow{margin-bottom:16px}
.home-profile{margin-top:0;grid-template-columns:minmax(0,1fr) 230px;gap:42px;min-height:335px;padding:48px 52px;background:var(--royal);color:var(--ivory);border:1px solid #101d32;box-shadow:0 12px 28px rgba(23,38,62,.09)}
.home-profile h1{font-size:clamp(32px,3.5vw,47px);line-height:1.12;color:var(--ivory)}
.home-motto{color:#d8c29b;font-style:italic}
.home-intro{color:#e1e4e8;max-width:550px}
.home-links a{color:var(--ivory);border-bottom:1px solid #9aa3af;padding-bottom:4px}
.home-links a:hover{border-color:var(--gold)}
.home-avatar{border:6px solid #e8ddc8;padding:0;background:#e8ddc8;box-shadow:0 0 0 1px #9c835b;filter:sepia(.08)}
.home-current{margin-top:46px}
.page-title,.project-info h2,.research-entry h2,.research-interest h2,.now-item h2{color:var(--royal)}
.section-heading{position:relative}
.section-heading::after{content:"";width:110px;height:26px;align-self:center;background:repeating-linear-gradient(to bottom,transparent 0 4px,var(--line) 4px 5px,transparent 5px 7px);opacity:.9}
.filters{border-top:5px solid var(--royal);border-bottom:1px solid var(--line)}
.filters button{background:var(--ivory);border-radius:0 0 5px 5px;box-shadow:0 3px 0 #d5c7af}
.filters button[aria-pressed=true]{background:var(--royal);box-shadow:0 3px 0 var(--gold)}
.project{border-bottom:1px solid var(--line)}
.project:first-child{border-top:0}
.project-visual .project-figure a,.project-page-lead a,.detail-gallery a{border:1px solid var(--line);background:var(--ivory)}
.project-figure img,.home-cards img{background:var(--ivory)}
.project-figure figcaption,.detail-gallery figcaption,.project-page-lead figcaption{font-style:italic}
.tags li{background:var(--ivory);border:1px solid var(--line)}
.project-link,.text-link,.paper-links a,.back-link{text-decoration-color:var(--gold);text-underline-offset:5px}
.project-page-header{border-bottom:5px solid var(--royal);padding-bottom:32px}
.project-page-lead{border-top:0}
.project-page-gallery{border-top:5px solid var(--royal)}
.about-portrait{border:6px solid var(--royal);padding:8px;box-shadow:0 0 0 1px var(--line)}
.research-entries,.now-items{border-top:5px solid var(--royal)}
.research-entry:first-child,.now-item:first-child{border-top:0}
.site-footer{border-top:5px solid var(--royal)}
@media(max-width:1000px){.section-heading::after{display:none}}
@media(max-width:700px){.home-simple{padding-top:40px}.home-profile{grid-template-columns:1fr;gap:26px;min-height:0;padding:29px 25px 33px}.home-avatar{grid-row:1;width:160px;height:160px}.home-profile h1{font-size:34px}.home-links{gap:17px}.home-current{margin-top:38px}.site-header::after{height:4px}.section-heading{margin-bottom:30px}}

/* The piano's navy case frames each page while ivory keeps longer text readable. */
.site-header{background:var(--royal);color:var(--ivory);padding-inline:24px}
.site-header::after{background:repeating-linear-gradient(to bottom,rgba(216,194,155,.5) 0 1px,transparent 1px 4px)}
.site-header nav a[aria-current=page]{color:#e7cfaa}
.header-resume{background:transparent;color:var(--ivory);border-color:#8190a4}
.header-resume:hover{background:var(--purple)}
.site-header a:focus-visible,.site-footer a:focus-visible{outline-color:var(--gold)}
.site-footer{background:var(--royal);color:var(--ivory);padding-inline:24px;border-top-color:var(--gold)}
.section-heading,.research-heading,.about-section .section-side,.now-layout>div:first-child,.project-page-header,.project-next{background:var(--royal);color:var(--ivory)}
.section-heading,.research-heading{padding:32px 36px}
.section-heading .page-title,.section-heading .eyebrow,.research-heading .page-title,.research-heading .eyebrow,.about-section .section-side .page-title,.about-section .section-side .eyebrow,.now-layout>div:first-child .page-title,.now-layout>div:first-child .eyebrow,.project-page-header .page-title,.project-page-header .project-category,.project-page-question{color:var(--ivory)}
.section-heading>p,.project-page-header .project-page-summary>p{color:#dce2eb}
.section-heading::after{background:repeating-linear-gradient(to bottom,transparent 0 4px,rgba(216,194,155,.7) 4px 5px,transparent 5px 7px)}
.about-section .section-side{padding:32px}
.about-portrait{border-color:var(--gold)}
.research-heading{margin-bottom:16px}
.now-layout>div:first-child{padding:30px;align-self:start}
.now-layout>div:first-child .updated{color:#dce2eb}
.project-page-header{padding:34px 38px;border-bottom-color:var(--gold)}
.project-page-header .project-link{color:var(--ivory)}
.project-actions .project-link:first-child{display:inline-block;background:var(--royal);color:var(--ivory);padding:10px 14px;text-decoration:none}
.project-actions .project-link:first-child:hover{background:var(--purple)}
.project-next{padding:25px 30px;margin-top:20px}
.project-next span{color:#dce2eb}
@media(max-width:700px){.site-header{padding-inline:18px}.site-footer{padding-inline:18px}.section-heading,.research-heading,.about-section .section-side,.now-layout>div:first-child{padding:24px}.project-page-header{padding:26px 24px}.project-next{padding:20px}}

/* Open, continuous pages with navy type and a lighter piano motif. */
body{background:radial-gradient(circle at 86% 8%,rgba(190,171,141,.15),transparent 34%),var(--paper)}
.site-header{background:transparent;color:var(--royal);padding-inline:0}
.site-header::after{height:1px;background:var(--line)}
.site-header nav a[aria-current=page]{color:var(--royal)}
.header-resume{color:var(--royal);border:0;border-bottom:1px solid var(--gold);padding:12px 0}
.header-resume:hover{background:transparent;color:var(--purple)}
.site-header a:focus-visible,.site-footer a:focus-visible{outline-color:var(--purple)}
.site-footer{background:transparent;color:var(--royal);border-top:1px solid var(--line);padding-inline:0}
.home-simple{padding-top:72px}
.home-profile{background:transparent;color:var(--royal);border:0;box-shadow:none;min-height:0;padding:28px 0 48px;gap:75px}
.home-profile h1{color:var(--royal);font-size:clamp(38px,4.1vw,56px)}
.home-motto{color:#8c6d44}
.home-intro{color:var(--muted)}
.home-links a{color:var(--royal);border-bottom-color:var(--gold)}
.home-avatar{border:0;background:var(--tint);box-shadow:0 15px 35px rgba(23,38,62,.12);padding:0}
.home-current{position:relative;border-top:0;margin-top:48px;padding-top:24px}
.home-current::before{content:"";position:absolute;top:0;left:0;width:85px;height:1px;background:var(--gold)}
.section-heading,.research-heading,.about-section .section-side,.now-layout>div:first-child,.project-page-header,.project-next{background:transparent;color:var(--royal)}
.section-heading,.research-heading{padding:0 0 33px;border-bottom:1px solid var(--line)}
.section-heading .page-title,.section-heading .eyebrow,.research-heading .page-title,.research-heading .eyebrow,.about-section .section-side .page-title,.about-section .section-side .eyebrow,.now-layout>div:first-child .page-title,.now-layout>div:first-child .eyebrow,.project-page-header .page-title,.project-page-header .project-category,.project-page-question{color:var(--royal)}
.section-heading>p,.project-page-header .project-page-summary>p{color:var(--muted)}
.section-heading::after{display:none}
.about-section .section-side,.now-layout>div:first-child{padding:0}
.about-portrait{border:0;box-shadow:none;background:transparent;padding:0;max-width:340px}
.about-portrait img{border-radius:48% 48% 8px 8px;box-shadow:0 17px 38px rgba(23,38,62,.1)}
.research-heading{margin-bottom:0}
.research-entries,.now-items{border-top:0}
.now-layout>div:first-child .updated{color:var(--muted)}
.project-page-header{padding:0 0 38px;border-bottom:1px solid var(--line)}
.project-page-header .project-link{color:var(--royal)}
.project-next{border-top:1px solid var(--line);padding:35px 0 0;margin-top:0}
.project-next span{color:var(--muted)}
.filters{border-top:0;border-bottom:1px solid var(--line);gap:25px;padding:10px 0 18px}
.filters button,.filters button[aria-pressed=true]{background:transparent;color:var(--royal);border:0;border-bottom:2px solid transparent;border-radius:0;box-shadow:none;padding:10px 0;font-size:13px}
.filters button[aria-pressed=true]{border-bottom-color:var(--gold)}
.filters button:hover{border-bottom-color:var(--royal)}
.project{gap:70px;padding-block:55px}
.project-visual .project-figure a,.project-page-lead a,.detail-gallery a{border:0;background:transparent}
.project-figure img,.project-page-lead img,.detail-gallery img{background:var(--ivory);border-radius:3px;box-shadow:0 10px 28px rgba(23,38,62,.07)}
.project-actions .project-link:first-child{background:transparent;color:var(--royal);padding:0;text-decoration:underline;text-decoration-color:var(--gold)}
.project-actions .project-link:first-child:hover{background:transparent;color:var(--purple)}
.tags li{background:transparent;border:0;border-bottom:1px solid var(--gold);padding:4px 0}
.tags{gap:15px}
.project-page-gallery{border-top:1px solid var(--line)}
.home-contact{background:transparent;color:var(--royal);border-top:1px solid var(--line);padding:40px 0}
@media(max-width:700px){.site-header,.site-footer{padding-inline:0}.home-simple{padding-top:45px}.home-profile{gap:28px;padding:20px 0 35px}.home-profile h1{font-size:38px}.section-heading,.research-heading{padding:0 0 25px}.project-page-header{padding:0 0 28px}.filters{gap:16px}.filters button,.filters button[aria-pressed=true]{font-size:11px}.project{gap:26px;padding-block:36px}.project-next{padding-top:25px}}

/* A small staff-line flourish carries the piano theme through every page. */
.page-title::after,.home-motto::after{content:"";display:block;width:86px;height:25px;margin-top:19px;background:repeating-linear-gradient(to bottom,transparent 0 2px,rgba(150,121,76,.56) 2px 3px,transparent 3px 5px);mask-image:linear-gradient(to right,#000 35%,transparent)}
.home-motto::after{margin-top:24px}

/* Restore the stronger navy rules and the project filter controls. */
.site-header::after{height:4px;background:var(--royal)}
.site-footer{border-top:4px solid var(--royal)}
.home-current::before{height:3px;background:var(--royal)}
.section-heading,.research-heading{border-bottom:3px solid var(--royal)}
.research-entries,.now-items{border-top:4px solid var(--royal)}
.project-page-header{border-bottom:4px solid var(--royal)}
.project-page-gallery{border-top:4px solid var(--royal)}
.project-next{border-top:3px solid var(--royal)}
.filters{gap:10px;padding:20px 0;border-top:4px solid var(--royal)}
.filters button,.filters button[aria-pressed=true]{border:1px solid var(--line);border-radius:0 0 5px 5px;padding:10px 16px;font-size:12px;background:var(--ivory);color:var(--royal);box-shadow:0 3px 0 #d5c7af}
.filters button[aria-pressed=true]{background:var(--royal);border-color:var(--royal);color:var(--ivory);box-shadow:0 3px 0 var(--gold)}
.filters button:hover{border-color:var(--royal)}
@media(max-width:700px){.filters{gap:8px}.filters button,.filters button[aria-pressed=true]{font-size:11px;padding:9px 12px}}
.project-actions .project-link:first-child{display:inline-flex;align-items:center;gap:18px;background:var(--royal);color:var(--ivory);padding:12px 16px;border:1px solid var(--royal);border-radius:2px;text-decoration:none}
.project-actions .project-link:first-child:hover{background:var(--purple);border-color:var(--purple);color:var(--ivory)}

/* Larger type keeps the open layout comfortable to read on every page. */
body{font-size:16px}
.site-header nav{font-size:15px}
.header-resume,.home-links,.project-link,.text-link,.back-link,.paper-links{font-size:14px}
.eyebrow,.edition,.project-category{font-size:11px}
.site-footer{font-size:13px;line-height:1.5}
.home-intro{font-size:17px}
.home-motto{font-size:23px}
.home-current>p:nth-child(2){font-size:15px}
.page-title{font-size:40px}
.project-info h2{font-size:32px}
.project-description,.section-heading>p,.experience-item p,.skill-list>div>p:last-child,.education>p,.research-topic p,.now-item p:last-child{font-size:15px}
.research-entry h2,.research-interest h2,.now-item h2{font-size:29px}
.research-entry>p:not(.eyebrow),.research-interest>p:not(.eyebrow),.project-page-header .project-page-summary>p,.project-page-content section>p:not(.eyebrow){font-size:16px}
.research-entry .paper-authors,.project-page-content aside>ul:not(.tags) li,.gallery-heading>p:last-child{font-size:14px}
.bio p{font-size:17px}
.filters button,.filters button[aria-pressed=true]{font-size:14px}
.tags li,.project-page-lead figcaption,.detail-gallery figcaption,.project-figure figcaption,.status,.updated{font-size:12px}
.project-page-header .page-title{font-size:clamp(40px,4.8vw,68px)}
.project-page-question{font-size:23px}
.project-page-content h2,.project-page-gallery h2{font-size:32px}
.project-next a{font-size:27px}
@media(max-width:700px){.site-header nav{font-size:13px}.site-footer{font-size:12px}.home-intro{font-size:16px}.home-profile h1{font-size:40px}.page-title{font-size:34px}.project-info h2{font-size:30px}.research-entry h2,.research-interest h2,.now-item h2{font-size:26px}.filters button,.filters button[aria-pressed=true]{font-size:12px}.project-page-header .page-title{font-size:40px}.project-next a{font-size:22px}}

/* A compact, keyboard-accessible résumé chooser shared by React and static pages. */
.resume-menu{position:relative;flex-shrink:0;z-index:20}
.resume-menu summary{display:block;cursor:pointer;list-style:none;white-space:nowrap}
.resume-menu summary::-webkit-details-marker{display:none}
.resume-menu[open] summary{color:var(--purple)}
.resume-options{position:absolute;right:0;top:calc(100% + 12px);width:min(330px,calc(100vw - 40px));background:var(--ivory);color:var(--royal);border:1px solid var(--line);border-top:4px solid var(--royal);box-shadow:0 18px 35px #17263e2b;padding:18px;z-index:30}
.resume-options-title{font:12px/1.4 var(--sans);letter-spacing:1px;text-transform:uppercase;margin:0 0 8px;color:var(--muted)}
.resume-options a{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 4px;border-bottom:1px solid var(--line);text-decoration:none}
.resume-options a:last-child{border-bottom:0}
.resume-options a:hover,.resume-options a:focus-visible{color:var(--purple);background:var(--tint)}
.resume-options strong,.resume-options small{display:block}
.resume-options strong{font:16px/1.4 var(--serif)}
.resume-options small{font:12px/1.5 var(--sans);color:var(--muted);margin-top:2px}
.resume-options a>span:last-child{font-size:18px}
@media(max-width:700px){.resume-options{right:0;top:calc(100% + 10px)}.resume-options strong{font-size:15px}}
