:root{--navy:#17365d;--blue:#2f5f8f;--light:#eef3f7;--ink:#292f36;--muted:#65717d;--line:#d8e0e7}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font:16px/1.72 'Libre Franklin',Arial,sans-serif}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}.page-width,.nav-wrap{width:min(1080px,calc(100% - 40px));margin:auto}.site-header{background:#fff;border-bottom:1px solid #e3e7eb;position:sticky;top:0;z-index:20}.nav-wrap{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:30px}.site-name,h1,h2,h3{font-family:Merriweather,Georgia,serif;color:var(--navy)}.site-name{font-weight:700}nav{display:flex;align-self:stretch}nav a{color:#414a53;display:flex;align-items:center;padding:0 12px;font-size:.8rem;border-bottom:3px solid transparent}nav a:hover{border-bottom-color:var(--blue);text-decoration:none}.banner{min-height:350px;background:linear-gradient(110deg,rgba(17,43,73,.95),rgba(47,95,143,.72)),linear-gradient(145deg,#17365d,#527b9e);display:flex}.banner-overlay{width:100%;display:flex;align-items:flex-end}.identity{display:flex;align-items:center;gap:30px;color:#fff;padding-bottom:42px}.identity img{width:150px;height:150px;border-radius:50%;object-fit:cover;border:5px solid #fff;box-shadow:0 8px 25px #0004}.identity h1{color:#fff;font-size:clamp(2.2rem,5vw,3.8rem);line-height:1.12;margin:0 0 10px}.identity p{font-size:1.2rem;margin:0}.identity span{color:#dfeaf3;font-size:.9rem}.content{padding-top:50px}.section-block{padding:45px 0 60px;border-bottom:1px solid var(--line)}.anchor-section{scroll-margin-top:72px}.home-grid{display:grid;grid-template-columns:2.2fr .8fr;gap:65px;padding-top:18px}h2{font-size:2rem;margin:0 0 24px}.main-copy p{margin:0 0 1.25rem}.profile-card{background:var(--light);padding:28px;align-self:start;border-top:5px solid var(--blue)}.profile-card h3{font-family:'Libre Franklin';font-size:1rem;margin:0 0 10px}.profile-card h3:nth-of-type(2){margin-top:28px}.profile-card ul{padding-left:20px;color:#4d5964;font-size:.9rem}.quick-links{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:.86rem}.section-title{border-left:5px solid var(--blue);padding-left:18px;margin-bottom:25px}.section-title p{color:var(--muted);font-size:.72rem;letter-spacing:.15em;text-transform:uppercase;margin:0}.section-title h2{margin:0}.section-intro{max-width:760px;color:var(--muted)}.current-grid,.teaching-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.current-grid article{border:1px solid var(--line);padding:25px}.current-grid span,small{color:var(--blue);font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.current-grid h3{font-size:1.28rem;margin:8px 0 12px}.current-grid p,.publication-list p,.teaching-grid p{color:#59646e;font-size:.91rem}.publication-list article{display:grid;grid-template-columns:55px 1fr;gap:20px;padding:28px 0;border-top:1px solid var(--line)}.publication-list h3{font-size:1.35rem;margin:5px 0 8px}.publication-list p{margin:0 0 10px}.teaching-grid article{padding:28px;background:var(--light)}.teaching-grid h3{font-size:1.35rem;margin:8px 0 3px}.updates{border-top:1px solid var(--line)}.updates>div{display:grid;grid-template-columns:175px 1fr;gap:25px;padding:17px 0;border-bottom:1px solid var(--line)}.updates time{color:var(--blue);font-weight:600;font-size:.82rem}.updates p{margin:0}.contact{text-align:center;border:0;padding-bottom:80px}.contact p{max-width:670px;margin:0 auto 26px;color:var(--muted)}.email-button{display:inline-block;padding:12px 20px;color:#fff;background:var(--blue)}.email-button:hover{background:var(--navy);text-decoration:none}footer{background:var(--navy);color:#d9e4ee;padding:26px 0;font-size:.78rem}footer .page-width{display:flex;justify-content:space-between}footer p{margin:0}footer a{color:#fff}@media(max-width:860px){nav a{padding:0 7px;font-size:.7rem}.home-grid{grid-template-columns:1fr;gap:30px}.profile-card{max-width:480px}.current-grid,.teaching-grid{grid-template-columns:1fr}}@media(max-width:650px){.page-width,.nav-wrap{width:calc(100% - 30px)}.site-header{position:static}.nav-wrap{display:block;padding-top:14px}.site-name{display:block}nav{overflow-x:auto}nav a{white-space:nowrap;height:44px;padding:0 10px}.banner{min-height:390px}.identity{display:block;padding-bottom:32px}.identity img{width:110px;height:110px;margin-bottom:20px}.identity h1{font-size:2.25rem}.content{padding-top:25px}.current-grid article{padding:21px}.publication-list article{grid-template-columns:36px 1fr}.updates>div{grid-template-columns:1fr;gap:4px}footer .page-width{display:block}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
nav a[aria-current="page"]{color:var(--navy);border-bottom-color:var(--blue)}.sub-banner{background:linear-gradient(115deg,#17365d,#3f6f9b);color:#fff;padding:76px 0 68px}.sub-banner p{font-size:.72rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#cfe0ef;margin:0 0 8px}.sub-banner h1{color:#fff;font-size:clamp(2.6rem,6vw,4.6rem);margin:0;line-height:1.15}.sub-banner span{display:block;color:#dce8f2;margin-top:12px}.personal-page{padding-top:38px}.personal-intro{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;padding:48px 0 62px;border-bottom:1px solid var(--line)}.personal-kicker{color:var(--blue);font-size:.72rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;margin:0 0 6px}.personal-intro h2{font-size:2.35rem}.personal-intro>div:last-child p{font-size:1.08rem;margin:0 0 1.2rem}.anime-section{padding:65px 0}.anime-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}.anime-list li{display:grid;grid-template-columns:90px 1fr;gap:20px;align-items:center;padding:25px 8px;border-bottom:1px solid var(--line)}.anime-rank{font-family:Merriweather,Georgia,serif;color:#9baab8;font-size:1.65rem}.anime-list h3{font-size:1.35rem;margin:0 0 4px}.anime-list p{color:var(--muted);margin:0}.more-random{display:grid;grid-template-columns:1fr 1fr;gap:60px;background:var(--light);padding:40px;margin-bottom:75px}.more-random span{color:var(--blue);font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.more-random h2{font-size:1.8rem;margin:8px 0 0}.more-random>p{color:var(--muted);margin:4px 0 0}@media(max-width:750px){.personal-intro,.more-random{grid-template-columns:1fr;gap:20px}.sub-banner{padding:52px 0}.anime-list li{grid-template-columns:58px 1fr}.more-random{padding:28px;margin-bottom:50px}}

.cv-page{padding-top:42px;padding-bottom:78px}.cv-intro{display:grid;grid-template-columns:1fr 1.3fr;gap:58px;align-items:start;padding:42px 0 36px}.cv-intro h2{font-size:2.35rem}.cv-intro p{color:var(--muted);font-size:1.02rem;margin:0 0 1rem}.cv-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}.cv-button{display:inline-block;padding:11px 18px;background:var(--blue);color:#fff;font-weight:600;font-size:.86rem}.cv-button.secondary{background:#fff;color:var(--blue);border:1px solid var(--blue)}.cv-button:hover{background:var(--navy);color:#fff;text-decoration:none}.cv-frame-wrap{border:1px solid var(--line);background:var(--light);padding:12px;box-shadow:0 12px 30px rgba(23,54,93,.1)}.cv-frame{display:block;width:100%;height:1040px;border:0;background:#fff}@media(max-width:750px){.cv-intro{grid-template-columns:1fr;gap:12px;padding-top:30px}.cv-frame{height:720px}.cv-page{padding-top:24px;padding-bottom:50px}}

.blog-page{padding-top:42px;padding-bottom:80px}.blog-intro{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;padding:42px 0 52px;border-bottom:1px solid var(--line)}.blog-intro h2{font-size:2.35rem}.blog-intro p{color:var(--muted);font-size:1.05rem;margin:0}.blog-post{max-width:860px;margin:56px auto 0}.post-meta{color:var(--blue);font-size:.72rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase}.blog-post h2{font-size:clamp(2rem,4vw,3rem);line-height:1.25;margin:10px 0 18px}.post-lead{font-size:1.15rem;color:#4f5b66;border-left:4px solid var(--blue);padding-left:20px}.nla-flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:15px;background:var(--light);padding:26px;margin:30px 0}.nla-flow strong{display:block;color:var(--navy);font-family:Merriweather,Georgia,serif}.nla-flow span{color:var(--muted);font-size:.84rem}.flow-arrow{color:var(--blue);font-size:1.4rem}.blog-post h3{font-size:1.3rem;margin:30px 0 8px}.blog-post p{margin:0 0 1.15rem}.post-note{background:#fff8e8;border-left:4px solid #d39b2a;padding:18px 20px;margin:26px 0}.source-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}.source-links a{display:inline-block;padding:10px 16px;border:1px solid var(--blue);font-weight:600;font-size:.84rem}.source-links a:hover{background:var(--blue);color:#fff;text-decoration:none}@media(max-width:750px){.blog-intro{grid-template-columns:1fr;gap:12px;padding-top:30px}.blog-page{padding-top:24px}.nla-flow{grid-template-columns:1fr;gap:8px}.flow-arrow{transform:rotate(90deg);justify-self:center}}

.blog-post+.blog-post{border-top:1px solid var(--line);padding-top:58px;margin-top:68px}.blog-post[id]{scroll-margin-top:92px}


/* Shared visual polish */
:root{--surface:#f7f9fc;--surface-strong:#eef3f7;--shadow:0 10px 28px rgba(23,54,93,.08)}
body{background:#fff}
.skip-link{position:fixed;left:16px;top:-64px;z-index:100;padding:10px 14px;background:#fff;color:var(--navy);border:2px solid var(--blue);border-radius:4px;font-weight:600}
.skip-link:focus{top:12px}
a:focus-visible{outline:3px solid #8bb7df;outline-offset:3px;border-radius:2px}
.site-header{box-shadow:0 3px 18px rgba(23,54,93,.05)}
.banner,.sub-banner{background:linear-gradient(120deg,#17365d 0%,#2f5f8f 68%,#467aa8 100%)}
.identity img{background:#fff}
.current-grid article,.teaching-grid article,.profile-card,.more-random{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}
.profile-card{border-top:5px solid var(--blue)}
.current-grid article,.teaching-grid article{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.current-grid article:hover,.teaching-grid article:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(23,54,93,.12);border-color:#c7d5e1}
.section-title{border-left-width:4px}
.email-button,.cv-button,.source-links a{border-radius:4px}
.cv-frame-wrap{border-radius:8px;overflow:hidden}
.post-note,.nla-flow{border-radius:6px}
.sub-banner+.page-width,.sub-banner+main{position:relative}
@media(max-width:650px){.identity{padding-top:30px}.identity img{box-shadow:0 6px 20px rgba(0,0,0,.28)}}
@media(prefers-reduced-motion:reduce){.current-grid article,.teaching-grid article{transition:none}.current-grid article:hover,.teaching-grid article:hover{transform:none}}
