/* Local font files keep the page independent of third-party font services. */
@font-face{font-family:"Source Sans Pro";font-style:normal;font-weight:400;font-display:swap;src:url("assets/fonts/source-sans-pro-400.ttf") format("truetype")}
@font-face{font-family:"Source Sans Pro";font-style:normal;font-weight:600;font-display:swap;src:url("assets/fonts/source-sans-pro-600.ttf") format("truetype")}
@font-face{font-family:"Source Sans Pro";font-style:normal;font-weight:700;font-display:swap;src:url("assets/fonts/source-sans-pro-700.ttf") format("truetype")}

:root{--paper:#fbf8f5;--white:#fffdfb;--soft:#f0e8ed;--ink:#49424a;--heading:#302735;--muted:#776d76;--accent:#78576f;--width:1160px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:112px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Source Sans Pro","Helvetica Neue",Arial,sans-serif;font-size:18px;line-height:1.7;-webkit-font-smoothing:antialiased}
h1,h2,h3,p,figure{margin:0}
img,svg{max-width:100%}
a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:5px}
a:hover{color:#51394b;text-decoration:underline}
a:focus-visible,button:focus-visible{outline:3px solid #78576f;outline-offset:5px;border-radius:2px}
button{font:inherit}
strong{font-weight:700}
::selection{background:#eadde6;color:#45303e}
.wrap{width:min(calc(100% - 80px),var(--width));margin-inline:auto}
.skip-link{position:fixed;z-index:100;top:-100px;left:16px;background:var(--white);padding:12px 20px}
.skip-link:focus{top:12px}
.site-header{position:sticky;z-index:20;top:0;background:rgb(255 253 251 / 94%);backdrop-filter:blur(14px)}
.nav-inner{min-height:82px;display:flex;justify-content:space-between;align-items:center;gap:28px;position:relative}
.brand{display:inline-flex;align-items:center;gap:13px;color:var(--heading);font-size:22px;font-weight:700;text-decoration:none;letter-spacing:.1px;white-space:nowrap}
.brand:hover{text-decoration:none}
.brand img{display:block;width:40px;height:40px;border-radius:50%;object-fit:cover}
.site-header nav{display:flex;align-items:center;gap:36px}
.site-header nav a{display:inline-flex;align-items:center;min-height:44px;color:var(--heading);font-size:15px;font-weight:600;text-decoration:none}
.site-header nav a:hover{text-decoration:underline}
.menu-toggle{display:none;background:none;border:0;width:44px;height:44px;color:var(--heading);align-items:center;justify-content:center;cursor:pointer}
.menu-toggle svg{width:21px;height:21px}
.landing-hero{position:relative;isolation:isolate;display:grid;place-items:center;min-height:calc(100vh - 82px);min-height:calc(100svh - 82px);padding:64px 24px 90px;overflow:hidden;background:var(--paper)}
.keyword-field{position:absolute;inset:9% 0 10%;z-index:0;display:flex;flex-direction:column;justify-content:space-between;gap:16px;overflow:hidden;pointer-events:none;user-select:none;mask-image:linear-gradient(to right,transparent,#000 9%,#000 91%,transparent);-webkit-mask-image:linear-gradient(to right,transparent,#000 9%,#000 91%,transparent)}
.keyword-lane{flex:none;white-space:nowrap;line-height:1.2;color:#bca7b6}
.keyword-track{display:flex;width:max-content;animation:keyword-drift var(--drift-duration,85s) linear infinite;animation-delay:var(--drift-delay,0s);animation-play-state:paused}
.keyword-group{display:flex;flex:none;align-items:center;gap:clamp(30px,4.5vw,76px);padding-right:clamp(30px,4.5vw,76px)}
.keyword{display:block;letter-spacing:-.025em;font-weight:400}
.word-large{font-size:clamp(36px,4.7vw,70px);font-weight:600}
.word-medium{font-size:clamp(27px,3.4vw,50px)}
.word-small{font-size:clamp(19px,2.3vw,34px)}
.lane-1{--drift-duration:100s;--drift-delay:-22s;opacity:.72}
.lane-2{--drift-duration:115s;--drift-delay:-48s;opacity:.56}
.lane-3{--drift-duration:92s;--drift-delay:-16s;opacity:.7}
.lane-4{--drift-duration:125s;--drift-delay:-55s;opacity:.56}
.lane-5{--drift-duration:106s;--drift-delay:-35s;opacity:.7}
.lane-2 .keyword-track,.lane-4 .keyword-track{animation-direction:reverse}
.keywords-playing .keyword-track{animation-play-state:running}
.hero-wash{position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse at center,rgb(251 248 245 / 98%) 0%,rgb(251 248 245 / 94%) 23%,rgb(251 248 245 / 50%) 50%,rgb(251 248 245 / 5%) 75%)}
.hero-content{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:30px;text-align:center;width:min(100%,760px)}
.hero-portrait{display:block;width:clamp(170px,22vw,236px);height:auto;aspect-ratio:1;object-fit:cover;border-radius:50%;border:6px solid var(--white);box-shadow:0 14px 45px rgb(59 38 50 / 9%)}
.hero-content h1{font-size:clamp(30px,4vw,48px);line-height:1.25;font-weight:700;letter-spacing:-.7px;color:var(--heading)}
.hero-content h1 span{display:block;margin-top:14px;font-size:clamp(22px,2.8vw,34px);line-height:1.35;font-weight:400;letter-spacing:-.25px;color:var(--ink)}
.hero-scroll,.keyword-motion{position:absolute;z-index:3;bottom:22px;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;color:var(--accent)}
.hero-scroll{left:calc(50% - 22px);text-decoration:none}
.hero-scroll svg{width:26px;height:26px}
.keyword-motion{right:24px;border:0;border-radius:50%;background:rgb(255 253 251 / 65%);cursor:pointer}
.keyword-motion svg{width:19px;height:19px}
.keyword-motion[hidden],.keyword-motion .motion-play{display:none}
.keyword-motion[data-paused="true"] .motion-pause{display:none}
.keyword-motion[data-paused="true"] .motion-play{display:block}
@keyframes keyword-drift{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
.about{max-width:820px;margin-inline:auto;padding:82px 0 56px}
.about h2{margin-bottom:52px;text-align:center}
.about-text>p{margin-bottom:18px;font-size:19px;line-height:1.7}
.about-text .phd-paragraph{background:var(--soft);padding:14px 17px;border-radius:3px}
.about-text .about-links{display:flex;align-items:center;justify-content:center;gap:18px;flex-wrap:wrap;margin-top:25px;margin-bottom:0!important;font-size:16px;font-weight:600}
.about-links a{min-height:44px;display:inline-flex;align-items:center;gap:6px;text-decoration:none}
.about-links a:hover{text-decoration:underline}

.research{padding:64px 0 0}
.section-head{text-align:center;padding-bottom:21px}
.section-head h2,.contact h2{font-size:32px;font-weight:700;line-height:1.25;color:var(--heading);letter-spacing:-.3px}
.section-head h2{position:relative}
.paper{padding:55px 0 58px;scroll-margin-top:20px}
.paper-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.3fr);gap:58px;align-items:start}
.paper-image{margin-top:5px}
.paper-image img{width:100%;height:auto;display:block;border-radius:2px}
.paper-body .paper-type{color:#776d76;font-size:12px;font-weight:600;letter-spacing:.09em;line-height:1.5;margin-bottom:11px}
.paper h3{font-size:28px;line-height:1.3;color:var(--heading);margin-bottom:15px;letter-spacing:-.25px;font-weight:700;overflow-wrap:break-word}
.paper-body p{margin-bottom:17px;line-height:1.7}
.paper-body p.reference{font-size:15px;color:#776d76;line-height:1.7;margin-bottom:23px}
.paper-body p.reference strong{color:var(--heading)}
.reference sup{font-size:.75em;line-height:0}
.reference .authorship-note{display:block;margin-top:5px;font-size:14px}
.paper-body>p:last-child{margin-bottom:0}
.paper-body .paper-links{display:flex;flex-wrap:wrap;gap:9px 27px;margin-top:22px;margin-bottom:0;font-size:16px;font-weight:600}
.paper-links a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none}
.paper-links a:hover{text-decoration:underline}
.pdf-link{display:inline-block;min-width:44px;padding:2px 4px;font-weight:600;font-style:normal;white-space:nowrap;text-decoration:none}
.pdf-link:hover{text-decoration:underline}
.becoming-main{min-height:calc(100vh - 300px)}
.collection-back{display:inline-flex;align-items:center;min-height:44px;margin-top:24px;font-size:15px;text-decoration:none}
.becoming{padding:46px 0 96px}
.becoming h1{font-size:40px;line-height:1.25;font-weight:600;color:var(--heading);letter-spacing:-.4px}
.becoming-intro{margin-top:16px;font-size:17px;line-height:1.6;color:var(--muted)}
.becoming-list{max-width:900px;margin:30px auto 0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:60px}
.becoming-entry .becoming-date{font-size:14px;line-height:1.6;color:var(--muted);margin-bottom:12px}
.becoming-entry h3{font-size:25px;line-height:1.35;font-weight:600;letter-spacing:-.2px;margin-bottom:14px}
.becoming-entry h3 a{text-decoration:none}
.becoming-entry h3 a:hover{text-decoration:underline}
.becoming-entry h3 a span{display:inline-block;font-size:20px;margin-left:4px}
.becoming-entry>p:last-child{font-size:17px;line-height:1.8}
/* Warm white and pale plum, with a spacious, typographic Contact section. */
.contact{display:flex;align-items:center;min-height:460px;padding:100px 0 108px;text-align:center;background:var(--soft);color:var(--heading)}
.about h2,.research .section-head h2,.contact h2{position:relative;font-size:40px;font-weight:700;letter-spacing:3px;text-transform:uppercase;line-height:1.25;color:var(--heading)}
.contact h2{margin-bottom:52px}
.about h2::after,.research .section-head h2::after,.contact h2::after{content:"";position:absolute;width:30px;height:3px;border-radius:3px;background:#a98ba0;left:50%;bottom:-19px;transform:translateX(-50%)}
.email-button{display:inline-flex;justify-content:center;align-items:center;min-height:60px;padding:17px 52px;border-radius:5px;background:#78576f;color:white;font-size:17px;line-height:1.5;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;text-decoration:none;box-shadow:0 6px 20px rgb(67 40 57 / 12%);transition:transform .25s,background .25s,box-shadow .25s}
.email-button:hover{background:#62445a;color:white;transform:translateY(-2px);text-decoration:none;box-shadow:0 9px 25px rgb(67 40 57 / 18%)}
.contact a:focus-visible{outline-color:var(--accent)}
.footer a:focus-visible{outline-color:#ecdee7}
.footer{background:#2e2631;color:#fffafc}
.footer-main{display:flex;justify-content:space-between;align-items:flex-start;gap:36px 64px;padding-block:42px}
.footer-about,.footer-friends{min-width:0}
.footer-name{font-size:20px;font-weight:600;letter-spacing:.2px;line-height:1.4}
.footer-note{font-size:15px;color:#d5c9d2;margin-top:12px}
.footer-credit{white-space:nowrap}
.footer-friends{max-width:100%}
.footer-friends h2{font-size:18px;font-weight:600;line-height:1.4;color:#fffafc;margin-bottom:9px}
.footer-friends ul{list-style:none;padding:0;margin:0}
.footer-friends a{display:grid;grid-template-columns:20px minmax(0,1fr);align-items:center;gap:10px;min-height:44px;padding-block:5px;font-size:15px;line-height:1.5;color:#d5c9d2;text-decoration:none;overflow-wrap:anywhere}
.friend-icon{width:20px;height:20px;color:#d5bdce;flex-shrink:0}
.footer a:hover{color:white;text-decoration:underline}


/* Gentle interaction feedback; the system cursor is always retained. */
.about-links a,.paper-links a,.site-header nav a,.footer a{transition:color .22s,transform .22s,box-shadow .22s}
@media(hover:hover) and (pointer:fine){
 .about-links a:hover,.paper-links a:hover{transform:translateY(-2px)}
 .paper-image img{transition:transform .55s cubic-bezier(.2,.65,.3,1),box-shadow .55s;border-radius:4px}
 .paper-image:hover img{transform:translateY(-3px);box-shadow:0 12px 30px rgb(64 42 55 / 9%)}
}
.cursor-layer{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:30}
.cursor-glow{position:absolute;left:0;top:0;width:180px;height:180px;border-radius:50%;pointer-events:none;z-index:30;opacity:0;background:radial-gradient(circle,rgb(161 116 146 / 13%) 0%,rgb(190 153 173 / 6%) 36%,transparent 70%);transition:opacity .22s;will-change:transform;contain:strict}
.cursor-glow::after{content:"";position:absolute;left:84px;top:84px;width:12px;height:12px;border-radius:50%;border:1px solid rgb(120 87 111 / 25%)}
.cursor-glow.is-active{opacity:1}

@media(max-width:1000px){
 .wrap{width:calc(100% - 56px)}
 .paper-layout{grid-template-columns:minmax(220px,1fr) minmax(0,2.3fr);gap:36px}
 .about{padding:64px 0}
 .about-text>p{font-size:18px}
 .paper h3{font-size:26px}
}
@media(max-width:760px){
 .wrap{width:calc(100% - 40px);max-width:600px}
 .about{padding:56px 0 42px}
 .hero-content{gap:24px}
 .hero-portrait{width:180px}
 .about-text>p{font-size:18px}
 .research{padding-top:44px}
 .section-head{padding-bottom:18px}
 .section-head h2{font-size:29px}
 .paper{padding:35px 0 42px}
 .paper-layout{display:flex;flex-direction:column;gap:27px}
 .paper-image{width:100%;margin-top:0}
 .paper-image img{max-height:420px;object-fit:contain;object-position:left center}
  .paper h3{font-size:25px;line-height:1.3}
 .paper-body p{font-size:17px;line-height:1.72}
 .paper-body p.reference{font-size:14px;margin-bottom:20px}
 .paper-body .paper-type{font-size:11px}
 .paper-body .paper-links{font-size:16px;gap:8px 22px}
 .becoming{padding:30px 0 64px}
 .becoming h1{font-size:34px}
 .becoming-list{grid-template-columns:1fr;gap:38px;margin-top:22px;max-width:520px}
 .becoming-entry h3{font-size:24px}
 .contact{min-height:360px;padding:76px 0 82px}
 .about h2,.research .section-head h2,.contact h2{font-size:34px;letter-spacing:2.5px}
 .email-button{font-size:16px;padding-inline:42px}
 .footer-main{flex-direction:column;gap:30px;padding-block:36px}
}
@media(max-width:600px){
 html{scroll-padding-top:92px}
 .landing-hero{min-height:calc(100vh - 70px);min-height:calc(100svh - 70px);padding:44px 20px 80px}
 .keyword-field{inset:10% 0 12%;mask-image:linear-gradient(to right,transparent,#000 5%,#000 95%,transparent);-webkit-mask-image:linear-gradient(to right,transparent,#000 5%,#000 95%,transparent)}
 .hero-content h1{font-size:clamp(27px,7.5vw,38px);letter-spacing:-.5px}
 .hero-content h1 span{font-size:clamp(20px,5.4vw,27px);margin-top:12px}
 .hero-portrait{width:clamp(154px,43vw,190px)}
 .keyword-motion{right:12px}
 .nav-inner{min-height:70px;flex-wrap:wrap;gap:0}
 .brand{font-size:21px;min-height:70px;gap:10px}
 .brand img{width:36px;height:36px}
 .site-header nav{width:100%;gap:28px;padding-bottom:10px}
 .js .menu-toggle{display:inline-flex}
 .js .site-header nav{display:none;position:absolute;left:-20px;right:-20px;top:70px;width:auto;padding:12px 20px 18px;background:var(--white);gap:0}
 .js .site-header nav.is-open{display:flex;flex-direction:column;align-items:stretch}
 .js .site-header nav a{min-height:48px}
 .about .about-links{font-size:16px;gap:20px;margin-top:20px}
}
@media(max-height:620px) and (min-width:761px){.landing-hero{padding:28px 24px 60px}.hero-portrait{width:140px}.hero-content{gap:18px}.hero-content h1{font-size:36px}.hero-content h1 span{font-size:26px;margin-top:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.email-button,.paper-image img,.about-links a,.paper-links a,.site-header nav a,.footer a{transition:none!important;transform:none!important}.cursor-glow{display:none!important}.keyword-track{animation:none!important}.keyword-motion{display:none!important}}
@media(hover:none),(pointer:coarse){.cursor-glow{display:none!important}}
@media print{
 .site-header{position:static}
 .cursor-glow{display:none!important}
 .keyword-field,.hero-wash,.hero-scroll,.keyword-motion{display:none!important}
 .landing-hero{display:block;min-height:0;padding:20px 0;background:none;break-inside:avoid}
 .hero-content{width:100%;gap:12px}
 .hero-portrait{width:90px;border:0;box-shadow:none}
 .hero-content h1{font-size:22pt}
 .hero-content h1 span{font-size:15pt;margin-top:6px}
 .paper,.paper-layout{opacity:1!important;transform:none!important;animation:none!important}
 .site-header nav,.menu-toggle,.skip-link,.footer a,.footer-friends{display:none!important}
 body{background:white;font-size:11pt}
 .wrap{width:100%;max-width:none}
 .paper-layout{display:grid;grid-template-columns:1fr 2.3fr;gap:24px}
 .about,.paper{padding:28px 0}
 .about-text>p,.paper-body p{font-size:11pt}
 .about h2,.paper h3{font-size:17pt}
 .paper-image{break-inside:avoid}
 .paper-body p.reference{font-size:9pt}
 .contact,.footer{color:#222;background:white}
 .contact h2{color:#222}
 .email-button{color:#222;background:white;box-shadow:none;border:1px solid #888}
}
