/* Editorial depth, restrained light and motion. */
:root{--accent:#287f9d;--glow:#8de0e5}
::selection{background:#b5e5e8;color:#092a3a}
.brand-mark{display:flex;align-items:center;justify-content:center;gap:1px;box-shadow:0 4px 15px #122c4320}
.brand-dot{display:inline;line-height:1}
.site-header{backdrop-filter:blur(18px)}
.page-home .site-header{border-color:#365c781c}
.immersive-hero{isolation:isolate}
.hero-landscape{transform:scale(1.025);animation:ambient-drift 22s ease-in-out infinite alternate}
.hero-atmosphere{background:linear-gradient(90deg,#f8fafce6 0%,#f1f7fad9 30%,#edf4f833 62%,#091e2f36 84%,#091e2f70 100%)}
.hero-atmosphere::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 72% 38%,#5ee0ff1c,transparent 36%);animation:light-breathe 9s ease-in-out infinite alternate;pointer-events:none}
.intro-copy h1{font-size:clamp(58px,6vw,86px);letter-spacing:-.05em}
.intro-copy h1 em{color:#256780;font-style:italic}
.intro-copy h2{font-weight:500;letter-spacing:.02em}
.intro-bio{font-size:16px;line-height:1.9}
.intro-position{font-size:14px;letter-spacing:.02em}
.hero-actions .button{border-radius:3px;box-shadow:0 8px 30px #0b29401a}
.button-dark{background:linear-gradient(120deg,#102e44,#174963)}
.button:hover{box-shadow:0 12px 30px #0b29402b}
.hero-credentials{font-size:12px;margin-top:38px}
.personal-note{top:260px;right:1%;width:330px;border-top:1px solid #b8dce35c;padding-top:24px}
.personal-note .fieldnote-thought{font-family:"Songti SC","STSong",serif;font-size:33px;line-height:1.7;margin-top:24px;letter-spacing:.03em}
.fieldnote-thought em{font-family:inherit;font-style:normal;color:#b2e4e6}
.fieldnote-index{font-size:11px;letter-spacing:.18em}
.personal-note .small-rule{width:75px;background:linear-gradient(90deg,#a4d8e2,#a4d8e200);position:relative;overflow:hidden}
.personal-note .small-rule::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,#fff,transparent);transform:translateX(-100%);animation:line-light 7s ease-in-out infinite}
.personal-note>div{font-size:13px;letter-spacing:.05em;color:#c3d8e3}
.home-selected{background:linear-gradient(180deg,#f4f7fa,#fff)}
.project-card{border:1px solid #dce6ec;border-radius:6px;overflow:hidden;transition:transform .35s,box-shadow .35s,border-color .35s;background:#fff}
.project-card:hover{transform:translateY(-7px);border-color:#79b9ca;box-shadow:0 22px 50px #163c5315}
.capability{position:relative;transition:background .35s}
.capability::after{content:"";position:absolute;left:28px;right:28px;bottom:0;height:2px;background:linear-gradient(90deg,#358da4,#b1dedb);transform:scaleX(0);transform-origin:left;transition:transform .35s}
.capability:hover::after{transform:scaleX(1)}
.research-card{border-radius:6px;position:relative;transition:box-shadow .35s,transform .35s}
.research-card:hover{transform:translateY(-4px);box-shadow:0 16px 35px #173f5310}
.research-card.research-published{background:linear-gradient(145deg,#102b40,#16455e);color:#fff;border:1px solid #315f76}
.research-published .research-number,.research-published .en-title,.research-published>p:not(.en-title){color:#c0d4df}
.research-published .status{background:#a1dadb1a;color:#b0e3e1;border-color:#75aaa85c}
.research-published h3{font-size:25px;line-height:1.5}
.research-published h3 a:hover{color:#b9e8e8}
.research-published .tags span{color:#c9e1eb;border-color:#8cc0cf40;background:#b4d6e60d}
.research-read{margin-top:30px;padding-top:18px;border-top:1px solid #8abcca40;display:flex;align-items:center;justify-content:space-between;font-size:15px}
.research-read span{font-size:12px;color:#b3d0dd}
.research-disclaimer .text-link{margin-top:14px}
.about-avatar img{box-shadow:0 15px 40px #163f551a,0 0 0 1px #b8ced84d}
.cv-heading>p:not(.eyebrow){font-size:18px}
.cv-print-skills{display:none}
.cv-expanded{grid-template-columns:minmax(0,1fr) 265px;gap:65px}
.cv-expanded .cv-main{min-width:0}
.cv-expanded .cv-block{margin-bottom:42px;padding-bottom:42px}
.cv-entry h2{font-size:24px;margin:0 0 7px;line-height:1.5}
.cv-expanded .cv-bullets{font-size:16px;line-height:1.9;margin:24px 0 0;padding-left:20px;color:#425d6e}
.cv-expanded .cv-bullets li{margin-bottom:13px;padding-left:5px}
.cv-bullets strong{font-weight:600;color:#173b50}
.cv-project{padding:27px 0 30px;border-bottom:1px solid #e0e8ed}
.cv-project:last-child{border-bottom:0;padding-bottom:0}
.cv-project-heading{display:flex;gap:18px;align-items:baseline}
.cv-project-number{font:italic 25px var(--serif);color:#43889d}
.cv-project-heading h3{font-size:21px;line-height:1.5;margin:0 0 9px;font-family:var(--sans)}
.cv-project-heading p{font-size:13px;color:#637e8f;margin:0;line-height:1.8}
.cv-project-heading p span{white-space:nowrap}
.cv-case-link{font-size:14px;display:inline-block;border-bottom:1px solid #93b8c6;color:#367990;margin-top:12px}
.cv-side small{font-size:12px;color:#708997}
.cv-side strong{font:italic 27px var(--serif);color:#1b546d;margin-right:4px}
.cv-side{border-top:3px solid #31778b;background:linear-gradient(155deg,#eaf3f6,#f5f8fa);align-self:start}
.cv-side p{line-height:1.9}
.cv-side li{margin-bottom:16px}
.motion-ready .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:var(--reveal-delay,0ms)}
.motion-ready .reveal.is-visible{opacity:1;transform:translateY(0)}
@keyframes ambient-drift{from{transform:scale(1.025) translateX(-.4%)}to{transform:scale(1.06) translateX(.4%)}}
@keyframes light-breathe{from{opacity:.25}to{opacity:1}}
@keyframes line-light{0%,65%{transform:translateX(-100%)}90%,100%{transform:translateX(100%)}}
@media(min-width:741px) and (max-width:1100px){.personal-note{right:0;width:235px;top:280px}.personal-note .fieldnote-thought{font-size:25px}.intro-copy h1{font-size:clamp(54px,7vw,70px)}.cv-expanded{gap:32px;grid-template-columns:minmax(0,1fr) 225px}}
@media(max-width:740px){
  .intro-copy h1{font-size:clamp(47px,12vw,67px)}
  .intro-bio{font-size:15px}.intro-position{font-size:13px}
  .immersive-hero,.immersive-grid{min-height:0}
  .immersive-grid{display:flex;flex-direction:column;align-items:stretch;padding-top:110px;padding-bottom:30px}
  .personal-note{position:relative;inset:auto;width:100%;margin-top:36px;padding:22px 24px;background:linear-gradient(125deg,#0c273eea,#16465eeb);border:1px solid #b1d2de40;border-radius:5px}
  .personal-note .fieldnote-thought{font-size:26px;line-height:1.55;margin:12px 0}
  .personal-note .fieldnote-thought br{display:initial}
  .personal-note .fieldnote-thought em{white-space:nowrap}
  .personal-note .signature{font-size:28px}
  .hero-credentials{font-size:11px;gap:9px;margin-top:28px}
  .hero-atmosphere{background:linear-gradient(180deg,#f8fafce8 0%,#f4f8fbe0 50%,#aec5d28c 77%,#082d4866)}
  .cv-expanded{display:block}.cv-expanded .cv-block{margin-bottom:30px;padding-bottom:30px}
  .cv-project-heading{gap:12px}.cv-project-heading h3{font-size:19px}
  .cv-expanded .cv-bullets{font-size:16px;line-height:1.9;padding-left:18px}
  .research-read{gap:10px}.research-read span{font-size:11px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}*,*::before,*::after{animation:none!important;transition:none!important}
  .motion-ready .reveal{opacity:1;transform:none}
  .hero-landscape{transform:none}
}
@media print{
  .page-cv .cv-print-skills{display:block;break-inside:avoid}
  .page-cv .cv-expanded{display:block;padding-top:18px}
  .page-cv .cv-side{display:none}
  .page-cv .cv-heading{padding-top:0}
  .page-cv .cv-heading>.eyebrow{display:none}
  .page-cv .cv-expanded .cv-block{padding-bottom:10px;margin-bottom:12px}
  .page-cv .cv-expanded .cv-block>p:not(.eyebrow){font-size:10pt;line-height:1.6}
  .page-cv .cv-entry h2{font-size:13pt;line-height:1.4}
  .page-cv .cv-expanded .cv-bullets{font-size:10pt;line-height:1.55;margin-top:10px;padding-left:17px}
  .page-cv .cv-expanded .cv-bullets li{margin-bottom:5px;padding-left:0}
  .page-cv .cv-project{padding:13px 0 10px;break-inside:auto}
  .page-cv .cv-project-heading,.page-cv .cv-block>.eyebrow{break-after:avoid}
  .page-cv .cv-bullets li{break-inside:avoid}
  .page-cv .cv-project-heading h3{font-size:11pt;margin-bottom:3px}
  .page-cv .cv-project-heading p{font-size:8pt;line-height:1.4}
  .page-cv .cv-project-number{font-size:15pt}
  .page-cv .cv-case-link{display:none}
  .page-cv .cv-entry{margin-top:10px}
  .page-cv .cv-education .cv-entry{display:grid;grid-template-columns:1fr auto;margin-top:7px;gap:10px}
  .page-cv .cv-education .cv-entry>div{display:flex;align-items:baseline;gap:12px}
  .page-cv .cv-education .cv-entry h3{font-size:10pt;margin:0}
  .page-cv .cv-education .cv-entry p{font-size:8.5pt;margin:0}
  .motion-ready .reveal{opacity:1;transform:none}
}
