@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@500;600&display=swap');
:root{--ink:#1a1b1f;--ink2:#23252a;--muted:#7c7f86;--line:#eae8e5;--soft:#faf9f7;--white:#fff;--accent:#7e8188}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:#fff;font-family:'DM Sans',Arial,sans-serif;line-height:1.65}a{color:inherit;text-decoration:none}.top{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.93);backdrop-filter:blur(15px);border-bottom:1px solid rgba(234,232,229,.8)}.topin{max-width:1180px;margin:auto;height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 26px}.brand img{width:240px;height:auto;display:block}nav{display:flex;gap:34px;font-size:14px;font-weight:600;color:#65686e}nav a{padding:27px 0;border-bottom:2px solid transparent}nav a:hover,nav a.active{color:var(--ink);border-bottom-color:var(--ink)}
main{overflow:hidden}.hero{max-width:1180px;margin:auto;padding:100px 26px 45px;display:grid;grid-template-columns:1.25fr .75fr;gap:70px;align-items:center}.eyebrow,.section-kicker{font-size:12px;font-weight:700;letter-spacing:.16em;color:#82858b}.hero h1{font-family:'Playfair Display',serif;font-size:34px;line-height:1.12;font-weight:500;margin:0 0 18px;letter-spacing:-.025em;max-width:760px}.hero p{font-size:18px;color:var(--muted);max-width:680px;margin:0 0 28px}.hero-links{display:flex;gap:12px;flex-wrap:wrap}.btn{display:inline-flex;padding:11px 17px;border:1px solid var(--line);border-radius:999px;font-size:13px;font-weight:600;background:#fff}.btn.primary{background:var(--ink);color:#fff;border-color:var(--ink)}.hero-card{background:linear-gradient(145deg,#faf9f7,#f6f5f2);border:1px solid var(--line);border-radius:28px;padding:34px;box-shadow:0 20px 55px rgba(27,28,31,.08)}.hero-card h3{font-family:'Playfair Display',serif;font-size:25px;margin:0 0 15px}.hero-card p{font-size:14px;margin:0 0 20px}.tags{display:flex;gap:8px;flex-wrap:wrap}.tag{background:#fff;border:1px solid #e5e3e0;border-radius:999px;padding:7px 11px;font-size:11px;color:#6c6f75}
.band{background:var(--soft);border-top:1px solid #f0efeb;border-bottom:1px solid #f0efeb}.section{max-width:1180px;margin:auto;padding:82px 26px}.section h2{font-family:'Playfair Display',serif;font-size:42px;line-height:1.2;font-weight:500;margin:8px 0 13px}.section-intro{max-width:760px;color:var(--muted);margin:0 0 34px}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.feature{border:1px solid var(--line);border-radius:22px;overflow:hidden;background:#fff;box-shadow:0 12px 34px rgba(27,28,32,.06)}.feature img{width:100%;height:190px;object-fit:contain;background:#fff;display:block;padding:14px;border-bottom:1px solid var(--line)}.feature div{padding:20px 20px 22px}.feature span{font-size:11px;color:#8a8d93;font-weight:700;letter-spacing:.08em}.feature h3{font-family:'Playfair Display',serif;font-size:22px;line-height:1.25;margin:8px 0}.feature p{font-size:13px;color:var(--muted);margin:0 0 15px}.feature a,.read{font-size:12px;font-weight:700;color:#616469}
.pub-section{max-width:1180px;margin:auto;padding:45px 26px 88px}.pub-head{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-bottom:35px}.pub-head p{color:var(--muted);max-width:600px;margin:0}.pub-list{display:grid;gap:14px}.pub-card{display:grid;grid-template-columns:180px 1fr;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#fff;transition:.2s;min-height:150px}.pub-card:hover{transform:translateY(-2px);box-shadow:0 12px 32px rgba(27,28,31,.08)}.pub-thumb{width:180px;height:150px;object-fit:contain;background:#fcfbf9;padding:10px;border-right:1px solid var(--line)}.pub-card-body{padding:20px 22px}.pub-year{font-size:11px;font-weight:800;letter-spacing:.08em;color:#898c92}.pub-card h3{font-family:'Playfair Display',serif;font-size:22px;line-height:1.25;margin:5px 0 7px;font-weight:500}.authors,.venue,.result{margin:0;font-size:12px;color:var(--muted)}.venue{margin-top:2px;color:#63666c}.result{margin-top:9px;color:#64676c}.read{display:inline-block;margin-top:9px}
.about{background:#faf9f6;border-top:1px solid var(--line)}.about-grid{max-width:980px;margin:auto;padding:92px 26px;display:grid;grid-template-columns:.8fr 1.2fr;gap:60px}.about h2{font-family:'Playfair Display',serif;font-size:32px;font-weight:500;margin:6px 0 12px}.about p{color:var(--muted)}.profile-card{background:#fff;border:1px solid var(--line);border-radius:24px;padding:28px;box-shadow:0 12px 35px rgba(27,28,32,.06)}.profile-name{font-family:'Playfair Display',serif;font-size:28px;margin:0 0 4px}.profile-role{color:#7c7f86;font-size:13px;margin-bottom:22px}.profile-line{padding:12px 0;border-top:1px solid #f3f1ee;font-size:13px}.cert-item{padding:10px 0;border-top:1px solid #f3f1ee}.cert-item strong{display:block;font-size:13px}.cert-item span{display:block;color:var(--muted);font-size:12px;margin-top:2px}.profile-line b{display:block;font-size:11px;letter-spacing:.08em;color:#8a8d93;margin-bottom:3px}
footer{max-width:1180px;margin:auto;padding:34px 26px 46px;display:flex;justify-content:space-between;gap:20px;color:#8f9297;font-size:12px}.topmark{font-size:12px}@media(max-width:850px){nav{gap:17px}.hero{grid-template-columns:1fr;padding-top:65px}.hero h1{font-size:32px;line-height:1.12}.feature-grid{grid-template-columns:1fr}.pub-card{grid-template-columns:1fr}.pub-thumb{width:100%;height:190px;border-right:0;border-bottom:1px solid var(--line)}.about-grid{grid-template-columns:1fr}.pub-head{display:block}}

.education-grid{display:grid;grid-template-columns:1fr;gap:14px;margin-top:24px}.edu-item{border:1px solid var(--line);border-radius:16px;padding:20px 22px;background:#fff}.edu-year{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:6px}.edu-item h3{margin:0 0 5px;font-size:18px}.edu-item p{margin:5px 0;color:var(--muted);font-size:14px}.cert-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.cert{border:1px solid var(--line);background:var(--soft);padding:8px 13px;border-radius:999px;font-size:13px;font-weight:700;color:var(--ink2)}.lab-project{margin-top:34px;padding:28px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(180deg,#fff,#fbfaf8)}.lab-project h3{margin:0 0 8px;font-size:24px}.project-meta{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}.game-actions{margin-top:16px;display:flex;gap:10px;flex-wrap:wrap}.small-note{font-size:13px;color:var(--muted)}

.project-visual{width:100%;max-height:280px;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:14px;padding:8px;margin-bottom:18px;display:block}.lab-project .project-visual{max-height:300px}.lab-project + .lab-project{margin-top:18px}

.pub-thumb{object-fit:contain!important;background:#fff!important;padding:14px!important}
.pub-card h3{font-size:21px}
.pub-card-body{display:flex;flex-direction:column;justify-content:center}
.pub-card .read{margin-top:10px}

.brand-logo {
  width: 300px !important;
  height: auto !important;
  max-width: 300px !important;
  display: block !important;
  object-fit: contain !important;
}
.brand img {
  width: 300px !important;
  max-width: 300px !important;
  height: auto !important;
}
@media (max-width: 760px) {
  .brand-logo, .brand img {
    width: 235px !important;
    max-width: 235px !important;
  }
}

.brand-logo,
.brand img {
  width: 360px !important;
  max-width: 360px !important;
  height: auto !important;
  min-height: 78px !important;
  object-fit: contain !important;
  display: block !important;
}
@media (max-width: 900px) {
  .brand-logo,
  .brand img {
    width: 300px !important;
    max-width: 300px !important;
    min-height: 65px !important;
  }
}
@media (max-width: 600px) {
  .brand-logo,
  .brand img {
    width: 245px !important;
    max-width: 245px !important;
    min-height: 52px !important;
  }
}

.brand-logo,
.brand img {
  width: 390px !important;
  max-width: 390px !important;
  height: auto !important;
  min-height: 82px !important;
  display: block !important;
  object-fit: contain !important;
  image-rendering: auto !important;
}
@media (max-width: 900px) {
  .brand-logo,
  .brand img {
    width: 320px !important;
    max-width: 320px !important;
    min-height: 68px !important;
  }
}
@media (max-width: 600px) {
  .brand-logo,
  .brand img {
    width: 250px !important;
    max-width: 250px !important;
    min-height: 54px !important;
  }
}

.brand {
  display: flex !important;
  align-items: center !important;
  min-width: 0 !important;
  flex-shrink: 1 !important;
}
.brand-logo,
.brand img {
  width: 330px !important;
  max-width: 330px !important;
  height: auto !important;
  max-height: 92px !important;
  min-height: 0 !important;
  object-fit: contain !important;
  object-position: left center !important;
  display: block !important;
  flex-shrink: 1 !important;
}
header, .site-header, nav {
  overflow: visible !important;
}
@media (max-width: 1100px) {
  .brand-logo, .brand img {
    width: 285px !important;
    max-width: 285px !important;
    max-height: 82px !important;
  }
}
@media (max-width: 760px) {
  .brand-logo, .brand img {
    width: 245px !important;
    max-width: 245px !important;
    max-height: 70px !important;
  }
}

.hero h1, .hero-title, .hero h1.hero-title {
  font-size: clamp(42px, 4.2vw, 68px) !important;
  line-height: 1.04 !important;
  max-width: 900px !important;
}

.brand-logo,
.brand img {
  width: 285px !important;
  max-width: 285px !important;
  height: auto !important;
  max-height: 78px !important;
  min-height: 0 !important;
  object-fit: contain !important;
}
@media (max-width: 1100px) {
  .brand-logo, .brand img {
    width: 255px !important;
    max-width: 255px !important;
    max-height: 70px !important;
  }
}
@media (max-width: 760px) {
  .brand-logo, .brand img {
    width: 220px !important;
    max-width: 220px !important;
    max-height: 62px !important;
  }
}

.publication-filter{
  display:flex;
  align-items:center;
  gap:10px;
  margin:24px 0 30px;
  padding:0;
}
.filter-label{
  font-weight:700;
  font-size:14px;
  letter-spacing:.04em;
  color:#696c71;
  margin-right:4px;
}
.publication-filter select{
  appearance:none;
  -webkit-appearance:none;
  min-width:136px;
  height:52px;
  padding:0 42px 0 18px;
  border:1px solid #e2e0db;
  border-radius:4px;
  background:
    linear-gradient(45deg,transparent 50%,#d4d1ca 50%) calc(100% - 28px) 22px/8px 8px no-repeat,
    linear-gradient(135deg,#d4d1ca 50%,transparent 50%) calc(100% - 22px) 22px/8px 8px no-repeat,
    #fff;
  color:#17181c;
  font-size:16px;
  outline:none;
}
.publication-filter select:focus{
  border-color:#b3b5b9;
  box-shadow:0 0 0 3px rgba(39,76,116,.08);
}
.publication-filter button{
  height:52px;
  padding:0 26px;
  border:0;
  border-radius:6px;
  background:#e8e8e8;
  color:#17181c;
  font-size:16px;
  cursor:pointer;
  transition:.18s ease;
}
.publication-filter button:hover{
  background:#dcdcdc;
  transform:translateY(-1px);
}
.pub-list{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:26px !important;
  align-items:stretch;
}
.pub-card{
  display:flex !important;
  flex-direction:column !important;
  min-width:0;
  min-height:0 !important;
  border:1px solid #e8e7e3 !important;
  border-radius:0 !important;
  overflow:hidden !important;
  background:#fbfaf7 !important;
  box-shadow:none !important;
}
.pub-card .pub-thumb{
  width:100% !important;
  height:250px !important;
  object-fit:contain !important;
  background:#fff !important;
  border-bottom:1px solid #f3f1ee;
}
.pub-card > div,
.pub-card .pub-content,
.pub-card .pub-body{
  padding:18px 20px 22px !important;
  text-align:left;
}
.pub-card h3,
.pub-card h4{
  margin:0 0 10px !important;
  line-height:1.38 !important;
  font-size:18px !important;
  color:#1c1d21 !important;
}
.pub-card p{
  line-height:1.65;
}
.pub-card .year,
.pub-card .pub-year{
  color:#7f8288;
  font-size:13px;
  font-weight:700;
}
.pub-card[hidden]{display:none !important;}

@media (max-width:1000px){
  .pub-list{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}
@media (max-width:650px){
  .publication-filter{
    flex-wrap:wrap;
  }
  .pub-list{
    grid-template-columns:1fr !important;
  }
  .pub-card .pub-thumb{
    height:220px !important;
  }
}

.r2-admin-link{border:0;background:transparent;color:#a4a6ab;font-size:11px;cursor:pointer;padding:4px 0}
.r2-admin-link:hover{color:#1c1d21}
.r2cms-backdrop{position:fixed;inset:0;background:rgba(29,30,32,.48);backdrop-filter:blur(5px);z-index:9999;display:none}
.r2cms-backdrop.open{display:block}
.r2cms-panel{position:absolute;inset:0;background:#faf8f5;overflow:auto}
.r2cms-top{height:72px;background:#fff;border-bottom:1px solid #eae8e5;display:flex;align-items:center;justify-content:space-between;padding:0 30px;position:sticky;top:0;z-index:3}
.r2cms-brand{font-family:'Playfair Display',serif;font-size:25px;color:#1c1d21}.r2cms-brand small{font-family:'DM Sans',sans-serif;font-size:9px;letter-spacing:.14em;color:#8f9297;margin-left:8px}
.r2cms-wrap{max-width:1180px;margin:auto;padding:38px 26px 70px}
.r2cms-login{min-height:100%;display:grid;place-items:center;padding:30px}
.r2cms-loginbox{width:min(430px,100%);background:#fff;border:1px solid #e8e7e4;padding:34px;box-shadow:0 25px 70px rgba(23,24,28,.12)}
.r2cms-loginbox h2{font-family:'Playfair Display',serif;font-size:34px;font-weight:500;margin:4px 0 8px;color:#1c1d21}
.r2cms-muted{color:#7e8188;font-size:13px}
.r2cms-field{margin:17px 0}.r2cms-field label{display:block;font-size:11px;letter-spacing:.1em;font-weight:800;color:#6f7279;margin-bottom:7px}
.r2cms-field input,.r2cms-field textarea,.r2cms-field select{width:100%;border:1px solid #e3e1dd;border-radius:6px;padding:11px 12px;background:#fff;color:#1c1d21;outline:none}
.r2cms-field textarea{min-height:180px;resize:vertical;line-height:1.65}
.r2cms-field input:focus,.r2cms-field textarea:focus,.r2cms-field select:focus{border-color:#a5a7ab;box-shadow:0 0 0 3px rgba(28,29,33,.07)}
.r2cms-btn{border:1px solid #1c1d21;background:#1c1d21;color:#fff;padding:10px 16px;border-radius:6px;font-size:13px;font-weight:700;cursor:pointer}
.r2cms-btn.alt{background:#fff;color:#1c1d21;border-color:#dbd9d4}
.r2cms-btn.danger{background:#fff;color:#a42c24;border-color:#e8b8b3}
.r2cms-actions{display:flex;gap:9px;flex-wrap:wrap}
.r2cms-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:26px}
.r2cms-head h1{font-family:'Playfair Display',serif;font-size:40px;font-weight:500;margin:0;color:#1c1d21}
.r2cms-quicknav{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 20px;padding:10px 0;border-bottom:1px solid #eeedeb}.r2cms-quicknav button{border:1px solid #e4e2dd;background:#fff;color:#5f6166;border-radius:7px;padding:8px 12px;font-size:12px;font-weight:700;cursor:pointer}.r2cms-quicknav button:hover{border-color:#1c1d21;color:#1c1d21;background:#fcfbfa}.r2cms-quicknav button.active{background:#1c1d21;color:#fff;border-color:#1c1d21}.r2cms-editor-nav{display:flex;gap:8px;align-items:center;margin-bottom:18px}.r2cms-editor-nav .r2cms-btn{font-size:12px}.r2cms-editor-nav .r2cms-btn.alt{background:#fff}
.r2cms-tabs{display:flex;gap:8px;margin-bottom:22px;border-bottom:1px solid #e8e7e4}
.r2cms-tab{border:0;background:transparent;padding:12px 15px;color:#7f8288;font-weight:700;cursor:pointer;border-bottom:2px solid transparent}
.r2cms-tab.active{color:#1c1d21;border-bottom-color:#1c1d21}
.r2cms-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:24px}
.r2cms-stat{background:#fff;border:1px solid #e8e7e4;padding:20px}.r2cms-stat strong{display:block;font-size:27px;color:#1c1d21}.r2cms-stat span{font-size:11px;letter-spacing:.08em;color:#8d9096}
.r2cms-list{display:grid;gap:12px}
.r2cms-item{background:#fff;border:1px solid #e8e7e4;padding:20px;display:flex;justify-content:space-between;gap:20px;align-items:center}
.r2cms-item h3{font-family:'Playfair Display',serif;font-size:20px;font-weight:500;margin:0 0 6px;color:#1c1d21}
.r2cms-item p{margin:0;color:#7e8188;font-size:13px}
.r2cms-badge{display:inline-block;font-size:10px;letter-spacing:.08em;font-weight:800;padding:5px 7px;border:1px solid #e7e5e1;color:#787c83;margin-bottom:8px}
.r2cms-editor{background:#fff;border:1px solid #e8e7e4;padding:28px}
.r2cms-grid2{display:grid;grid-template-columns:1.8fr 1fr;gap:24px}
.r2cms-upload{border:1px dashed #dad7d2;padding:14px;background:#fdfcfa;font-size:12px;color:#7f8288}
.r2cms-note{padding:11px 13px;background:#f9f8f4;border:1px solid #e8e7e4;color:#62656b;font-size:12px;margin-bottom:18px}
.r2cms-close{border:0;background:transparent;color:#7c7f86;font-size:22px;cursor:pointer;line-height:1}
@media(max-width:760px){.r2cms-top{padding:0 16px}.r2cms-wrap{padding:28px 16px 50px}.r2cms-stats{grid-template-columns:1fr}.r2cms-grid2{grid-template-columns:1fr}.r2cms-item{display:block}.r2cms-item .r2cms-actions{margin-top:15px}}

.r2cms-panel,.r2cms-login,.r2cms-loginbox,.r2cms-loginbox input,.r2cms-loginbox button{pointer-events:auto;}
.r2cms-loginbox{position:relative;z-index:5;}
.r2-password-wrap{position:relative;display:flex;align-items:center;}
.r2-password-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);z-index:10;}

.r2-header-admin{
  border:1px solid #e4e2df;
  background:#fff;
  color:#1c1d21;
  border-radius:999px;
  padding:9px 16px;
  font-family:'DM Sans',Arial,sans-serif;
  font-size:13px;
  font-weight:700;
  cursor:pointer;
  transition:.18s ease;
}
.r2-header-admin:hover{
  background:#1c1d21;
  color:#fff;
  border-color:#1c1d21;
  transform:translateY(-1px);
}
@media(max-width:850px){
  .r2-header-admin{padding:8px 12px;font-size:12px}
}

.r2-writing-links{
  display:flex;
  align-items:center;
  gap:9px;
  margin-top:8px;
  color:#8f9297;
  font-size:12px;
}
.r2-writing-links a{
  color:#6c6f76;
  transition:color .18s ease;
}
.r2-writing-links a:hover{
  color:#1c1d21;
}

.education-block{margin-top:52px;max-width:760px}
.education-block .eyebrow{font-size:12px;letter-spacing:.16em;font-weight:700;margin-bottom:22px}
.education-list{border-top:1px solid rgba(25,26,30,.14)}
.education-item{display:grid;grid-template-columns:190px 1fr;gap:28px;padding:18px 0;border-bottom:1px solid rgba(25,26,30,.14);align-items:baseline}
.education-degree{font-size:14px;font-weight:700}
.education-school{font-size:16px;line-height:1.5}
@media(max-width:640px){
  .education-item{grid-template-columns:1fr;gap:4px}
  .education-school{font-size:15px}
}

/* Final R² Lab refinements */
.hero h1{max-width:850px}
.about-grid{padding-bottom:54px}
.education-block{max-width:980px;margin:0 auto;padding:0 26px 82px}
.education-block .section-kicker{margin-bottom:18px}
.education-list{background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 10px 30px rgba(27,28,32,.04)}
.education-item{display:grid;grid-template-columns:210px 1fr;gap:24px;padding:19px 24px;border-bottom:1px solid var(--line);align-items:baseline}
.education-item:last-child{border-bottom:0}
.education-degree{font-size:13px;font-weight:700;color:#1d1e22}
.education-school{font-size:15px;color:#6c6f76;line-height:1.5}
.notes-section{background:#fff;border-top:1px solid var(--line);max-width:1180px;margin:auto;padding:74px 26px 86px}
.notes-head{display:flex;justify-content:space-between;gap:40px;align-items:end;margin-bottom:30px}
.notes-head h2{font-family:'Playfair Display',serif;font-size:34px;line-height:1.1;font-weight:500;margin:8px 0 0;letter-spacing:-.02em}
.notes-head p{max-width:390px;color:#81848b;line-height:1.7;margin:0}
.notes-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.note-card{border:1px solid var(--line);border-radius:18px;padding:24px;background:#fff;min-height:170px}
.note-card .note-meta{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#8c8f94;font-weight:700;margin-bottom:13px}
.note-card h3{font-family:'Playfair Display',serif;font-size:22px;font-weight:500;line-height:1.2;margin:0 0 10px;color:#1d1e22}
.note-card p{font-size:14px;line-height:1.65;color:#76797f;margin:0}
.notes-empty{grid-column:1/-1;padding:30px 0;color:#92959a;font-size:14px}
@media(max-width:800px){
  .notes-head{display:block}
  .notes-head p{margin-top:12px}
  .notes-grid{grid-template-columns:1fr}
}
@media(max-width:640px){
  h1{font-size:34px}
  .education-item{grid-template-columns:1fr;gap:5px}
  .education-block{padding-bottom:60px}
}

/* Home shows the hero + publications only. About Me and Research Notes are opened from navigation. */
body.r2-home-view .about,
body.r2-home-view .notes-section{display:none !important;}
body.r2-about-view .hero,
body.r2-about-view .pub-section,
body.r2-about-view .notes-section{display:none !important;}
body.r2-notes-view .hero,
body.r2-notes-view .pub-section,
body.r2-notes-view .about{display:none !important;}

.projects-section{background:#fff;border-top:1px solid var(--line);max-width:1180px;margin:auto;padding:74px 26px 90px}
.projects-head{display:flex;justify-content:space-between;gap:40px;align-items:end;margin-bottom:38px}
.projects-head h2{font-family:'Playfair Display',serif;font-size:34px;line-height:1.12;font-weight:500;margin:8px 0 0;letter-spacing:-.02em}
.projects-head p{max-width:410px;color:#81848b;line-height:1.7;margin:0}
.projects-section>div[style]{max-width:none!important;margin:0!important;padding:0!important}
.projects-section .lab-project{border:1px solid var(--line);border-radius:20px;background:#fff;overflow:hidden;margin-bottom:24px;padding:0 26px 26px;box-shadow:0 10px 30px rgba(27,28,32,.04)}
.projects-section .lab-project:last-child{margin-bottom:0}
.projects-section .project-visual{display:block;width:100%;max-height:360px;object-fit:contain;background:#faf9f6;margin:0 -26px 24px;width:calc(100% + 52px)}
.projects-section .project-meta{font-size:11px;letter-spacing:.12em;font-weight:700;color:#8c8f94;margin-bottom:10px}
.projects-section .lab-project h3{font-family:'Playfair Display',serif;font-size:25px;line-height:1.2;font-weight:500;color:#1d1e22;margin:0 0 10px}
.projects-section .lab-project p{font-size:14px;line-height:1.7;color:#76797f;margin:0;max-width:850px}
@media(min-width:820px){
  .projects-section>div[style]{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
  .projects-section .lab-project{margin-bottom:0}
  .projects-section .project-visual{height:210px;object-fit:cover}
}
@media(max-width:800px){
  .projects-head{display:block}
  .projects-head p{margin-top:12px}
}

body.r2-home-view .projects-section,
body.r2-about-view .projects-section,
body.r2-notes-view .projects-section{display:none!important;}
body.r2-projects-view .hero,
body.r2-projects-view .pub-section,
body.r2-projects-view .notes-section,
body.r2-projects-view .about{display:none!important;}

/* Home = hero only. Publications remain available through the Publications nav. */
body.r2-home-view .pub-section{
  display:none!important;
}
body.r2-home-view .hero h1{
  display:none!important;
}
body.r2-home-view .hero{
  min-height:520px!important;
  padding-top:92px!important;
  padding-bottom:92px!important;
}
body.r2-home-view .hero>div>p{
  max-width:640px!important;
  font-size:16px!important;
  line-height:1.75!important;
}
body.r2-home-view .hero-card{
  align-self:center!important;
}
body.r2-home-view .hero-card h3{
  font-size:27px!important;
}
body.r2-home-view .hero-card p{
  font-size:14px!important;
  line-height:1.7!important;
}
body.r2-home-view .hero-links{
  display:none!important;
}

/* Publications is its own clean view. */
body.r2-publications-view .hero,
body.r2-publications-view .about,
body.r2-publications-view .notes-section,
body.r2-publications-view .projects-section{
  display:none!important;
}
body.r2-publications-view .pub-section{
  display:block!important;
}
body.r2-publications-view .pub-section{
  min-height:calc(100vh - 90px)!important;
}

/* HOME: keep the original hero background + Research Focus.
   Hide only the statistics/counter strip. */
body.r2-home-view .r2-home-stats,
body.r2-home-view .home-stats,
body.r2-home-view .stats,
body.r2-home-view .stats-row,
body.r2-home-view .stats-strip,
body.r2-home-view .stats-section,
body.r2-home-view .metrics,
body.r2-home-view .metrics-row,
body.r2-home-view .metrics-strip,
body.r2-home-view .counter-strip,
body.r2-home-view .hero-stats,
body.r2-home-view .hero-metrics{
  display:none!important;
}

/* Do NOT hide .hero or .hero-card: the original Home background
   and Research Focus card must remain visible. */
body.r2-home-view .hero{
  background:inherit!important;
}
body.r2-home-view .hero-card{
  display:block!important;
}

.r2-home-access-strip{
  width:100%;
  border-top:1px solid var(--line,#e9e7e4);
  border-bottom:1px solid var(--line,#e9e7e4);
  background:rgba(255,255,255,.72);
  display:grid;
  grid-template-columns:repeat(3,1fr);
  min-height:112px;
}
.r2-access-item{
  min-height:112px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  padding:20px 28px;
  position:relative;
}
.r2-access-item + .r2-access-item::before{
  content:"";
  position:absolute;
  left:0;
  top:22px;
  bottom:22px;
  width:1px;
  background:#e9e7e4;
}
.r2-access-icon{
  width:52px;height:52px;flex:0 0 52px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  color:#1d1e22;background:#f5f4f2;
}
.r2-access-icon svg{width:25px;height:25px;}
.r2-access-label{
  font-family:'DM Sans',Arial,sans-serif;
  color:#1d1e22;font-size:14px;font-weight:600;letter-spacing:.01em;
}
@media(max-width:700px){
  .r2-home-access-strip{grid-template-columns:1fr;}
  .r2-access-item{min-height:82px;justify-content:flex-start;padding:14px 26px;}
  .r2-access-item + .r2-access-item::before{
    left:26px;right:26px;top:0;bottom:auto;width:auto;height:1px;
  }
  .r2-access-icon{width:42px;height:42px;flex-basis:42px;}
  .r2-access-icon svg{width:21px;height:21px;}
}

body.r2-about-view .r2-home-access-strip,
body.r2-notes-view .r2-home-access-strip,
body.r2-projects-view .r2-home-access-strip,
body.r2-publications-view .r2-home-access-strip{display:none!important;}

/* Home hero: soft research-network / knowledge-graph background */
body.r2-home-view .hero{
  position:relative!important;
  isolation:isolate!important;
  max-width:none!important;
  min-height:520px!important;
  padding:92px max(26px,calc((100vw - 1180px)/2 + 26px)) 88px!important;
  grid-template-columns:minmax(0,1.15fr) minmax(360px,.72fr)!important;
  gap:68px!important;
  background:
    linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.90) 43%,rgba(252,251,249,.68) 100%),
    url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%201440%20620%27%3E%0A%3Cdefs%3E%0A%20%20%3CradialGradient%20id%3D%27glow%27%20cx%3D%2750%25%27%20cy%3D%2750%25%27%20r%3D%2770%25%27%3E%0A%20%20%20%20%3Cstop%20offset%3D%270%27%20stop-color%3D%27%23eaf3fb%27%20stop-opacity%3D%27.82%27%2F%3E%0A%20%20%20%20%3Cstop%20offset%3D%271%27%20stop-color%3D%27%23f8fbfd%27%20stop-opacity%3D%270%27%2F%3E%0A%20%20%3C%2FradialGradient%3E%0A%20%20%3ClinearGradient%20id%3D%27fade%27%20x1%3D%270%27%20y1%3D%270%27%20x2%3D%271%27%20y2%3D%271%27%3E%0A%20%20%20%20%3Cstop%20offset%3D%270%27%20stop-color%3D%27%23d7e6f3%27%20stop-opacity%3D%27.15%27%2F%3E%0A%20%20%20%20%3Cstop%20offset%3D%271%27%20stop-color%3D%27%239dbbd5%27%20stop-opacity%3D%27.42%27%2F%3E%0A%20%20%3C%2FlinearGradient%3E%0A%3C%2Fdefs%3E%0A%3Crect%20width%3D%271440%27%20height%3D%27620%27%20fill%3D%27url%28%23glow%29%27%2F%3E%0A%3Cg%20fill%3D%27none%27%20stroke%3D%27url%28%23fade%29%27%20stroke-width%3D%271.15%27%3E%0A%20%20%3Cpath%20d%3D%27M40%20520%20L190%20410%20L350%20470%20L515%20335%20L700%20405%20L865%20250%20L1040%20315%20L1200%20170%20L1390%20255%27%2F%3E%0A%20%20%3Cpath%20d%3D%27M115%20270%20L280%20180%20L455%20255%20L610%20135%20L790%20220%20L945%2095%20L1110%20160%20L1265%2055%27%2F%3E%0A%20%20%3Cpath%20d%3D%27M190%20410%20L280%20180%20M350%20470%20L455%20255%20M515%20335%20L610%20135%20M700%20405%20L790%20220%20M865%20250%20L945%2095%20M1040%20315%20L1110%20160%20M1200%20170%20L1265%2055%27%2F%3E%0A%20%20%3Cpath%20d%3D%27M40%20520%20L115%20270%20M350%20470%20L610%20135%20M700%20405%20L945%2095%20M1040%20315%20L1265%2055%27%2F%3E%0A%3C%2Fg%3E%0A%3Cg%20fill%3D%27%23c7d9e9%27%20opacity%3D%27.78%27%3E%0A%20%20%3Ccircle%20cx%3D%2740%27%20cy%3D%27520%27%20r%3D%277%27%2F%3E%3Ccircle%20cx%3D%27190%27%20cy%3D%27410%27%20r%3D%276%27%2F%3E%3Ccircle%20cx%3D%27350%27%20cy%3D%27470%27%20r%3D%277%27%2F%3E%0A%20%20%3Ccircle%20cx%3D%27515%27%20cy%3D%27335%27%20r%3D%276%27%2F%3E%3Ccircle%20cx%3D%27700%27%20cy%3D%27405%27%20r%3D%277%27%2F%3E%3Ccircle%20cx%3D%27865%27%20cy%3D%27250%27%20r%3D%276%27%2F%3E%0A%20%20%3Ccircle%20cx%3D%271040%27%20cy%3D%27315%27%20r%3D%277%27%2F%3E%3Ccircle%20cx%3D%271200%27%20cy%3D%27170%27%20r%3D%276%27%2F%3E%3Ccircle%20cx%3D%271390%27%20cy%3D%27255%27%20r%3D%277%27%2F%3E%0A%20%20%3Ccircle%20cx%3D%27115%27%20cy%3D%27270%27%20r%3D%275%27%2F%3E%3Ccircle%20cx%3D%27280%27%20cy%3D%27180%27%20r%3D%276%27%2F%3E%3Ccircle%20cx%3D%27455%27%20cy%3D%27255%27%20r%3D%275%27%2F%3E%0A%20%20%3Ccircle%20cx%3D%27610%27%20cy%3D%27135%27%20r%3D%276%27%2F%3E%3Ccircle%20cx%3D%27790%27%20cy%3D%27220%27%20r%3D%275%27%2F%3E%3Ccircle%20cx%3D%27945%27%20cy%3D%2795%27%20r%3D%276%27%2F%3E%0A%20%20%3Ccircle%20cx%3D%271110%27%20cy%3D%27160%27%20r%3D%275%27%2F%3E%3Ccircle%20cx%3D%271265%27%20cy%3D%2755%27%20r%3D%276%27%2F%3E%0A%3C%2Fg%3E%0A%3Cg%20font-family%3D%27Arial%2C%20sans-serif%27%20font-size%3D%2713%27%20fill%3D%27%238ba4ba%27%20opacity%3D%27.72%27%3E%0A%20%20%3Ctext%20x%3D%27185%27%20y%3D%27392%27%3EEvent%20Logs%3C%2Ftext%3E%0A%20%20%3Ctext%20x%3D%27515%27%20y%3D%27317%27%3EThreat%20Detection%3C%2Ftext%3E%0A%20%20%3Ctext%20x%3D%27690%27%20y%3D%27388%27%3EIntelligent%20Systems%3C%2Ftext%3E%0A%20%20%3Ctext%20x%3D%271110%27%20y%3D%27295%27%3EMachine%20Learning%3C%2Ftext%3E%0A%20%20%3Ctext%20x%3D%271185%27%20y%3D%27145%27%3ECybersecurity%3C%2Ftext%3E%0A%20%20%3Ctext%20x%3D%271255%27%20y%3D%27605%27%3EDATA%3C%2Ftext%3E%0A%20%20%3Ctext%20x%3D%271255%27%20y%3D%27622%27%3EANALYSIS%3C%2Ftext%3E%0A%3C%2Fg%3E%0A%3C%2Fsvg%3E");
  background-size:auto,cover!important;
  background-position:center,center!important;
  background-repeat:no-repeat!important;
}
body.r2-home-view .hero::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  z-index:-1!important;
  pointer-events:none!important;
  background:
    radial-gradient(circle at 74% 38%,rgba(235,233,230,.34),transparent 30%),
    linear-gradient(180deg,rgba(252,251,249,.25),rgba(255,255,255,.08))!important;
}
body.r2-home-view .hero>div,
body.r2-home-view .hero-card{
  position:relative!important;
  z-index:2!important;
}
body.r2-home-view .hero>div{
  max-width:690px!important;
}
body.r2-home-view .hero-card{
  background:rgba(252,251,249,.76)!important;
  backdrop-filter:blur(7px)!important;
  -webkit-backdrop-filter:blur(7px)!important;
  box-shadow:0 18px 50px rgba(29,30,34,.07)!important;
}
body.r2-home-view .hero-card h3{
  letter-spacing:-.015em!important;
}
@media(max-width:850px){
  body.r2-home-view .hero{
    grid-template-columns:1fr!important;
    background-size:auto,auto 100%!important;
    padding-top:68px!important;
  }
}

/* Real inline SVG background — guaranteed visible on Home */
body.r2-home-view .hero{
  position:relative!important;
  isolation:isolate!important;
  overflow:hidden!important;
  max-width:none!important;
  min-height:520px!important;
  padding:88px max(26px,calc((100vw - 1180px)/2 + 26px)) 82px!important;
  background:#fcfbf9!important;
}
body.r2-home-view .r2-network-bg{
  position:absolute!important;
  inset:0!important;
  z-index:0!important;
  pointer-events:none!important;
  overflow:hidden!important;
}
body.r2-home-view .r2-network-bg svg{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  display:block!important;
}
body.r2-home-view .hero::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
  pointer-events:none!important;
  background:linear-gradient(90deg,rgba(255,255,255,.97) 0%,rgba(255,255,255,.92) 42%,rgba(252,251,249,.58) 100%)!important;
}
body.r2-home-view .hero>div,
body.r2-home-view .hero>.hero-card{
  position:relative!important;
  z-index:2!important;
}
body.r2-home-view .hero-card{
  background:rgba(252,251,249,.78)!important;
  backdrop-filter:blur(7px)!important;
  -webkit-backdrop-filter:blur(7px)!important;
}
@media(max-width:850px){
  body.r2-home-view .hero{
    padding-top:64px!important;
    grid-template-columns:1fr!important;
  }
  body.r2-home-view .r2-network-bg svg{
    min-width:1000px!important;
    left:-160px!important;
  }
}

body.r2-home-view .hero{
  text-align:left!important;
}
body.r2-home-view .hero > div:first-of-type{
  text-align:left!important;
  justify-self:start!important;
  align-self:center!important;
  max-width:700px!important;
}
body.r2-home-view .hero > div:first-of-type > p{
  text-align:left!important;
  font-size:20px!important;
  line-height:1.7!important;
  max-width:690px!important;
  margin-left:0!important;
  margin-right:0!important;
}
@media(max-width:850px){
  body.r2-home-view .hero > div:first-of-type > p{
    font-size:18px!important;
    line-height:1.65!important;
  }
}

/* Target the ACTUAL text column: the first normal div after the SVG background. */
body.r2-home-view .hero{
  display:grid!important;
  grid-template-columns:minmax(0,1.08fr) minmax(390px,.72fr)!important;
  gap:58px!important;
  align-items:center!important;
}
body.r2-home-view .hero > .r2-network-bg{
  position:absolute!important;
  display:block!important;
  grid-column:1 / -1!important;
  grid-row:1!important;
}
body.r2-home-view .hero > div:not(.r2-network-bg){
  grid-column:1!important;
  grid-row:1!important;
  justify-self:start!important;
  align-self:center!important;
  width:100%!important;
  max-width:650px!important;
  margin:0!important;
  padding:0!important;
  text-align:left!important;
}
body.r2-home-view .hero > div:not(.r2-network-bg) > p{
  display:block!important;
  width:100%!important;
  max-width:650px!important;
  margin:0!important;
  padding:0!important;
  text-align:left!important;
  font-size:20px!important;
  line-height:1.65!important;
  color:#7b7f86!important;
}
body.r2-home-view .hero > .hero-card{
  grid-column:2!important;
  grid-row:1!important;
  justify-self:stretch!important;
  align-self:center!important;
  z-index:3!important;
}
@media(max-width:850px){
  body.r2-home-view .hero{
    grid-template-columns:1fr!important;
  }
  body.r2-home-view .hero > div:not(.r2-network-bg){
    grid-column:1!important;
    grid-row:1!important;
    max-width:680px!important;
  }
  body.r2-home-view .hero > .hero-card{
    grid-column:1!important;
    grid-row:2!important;
  }
}

/* Research Notes — same editorial typography as the public R² Lab */
.r2-public-note-card{
  cursor:pointer;
  padding:0!important;
  overflow:hidden!important;
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease!important;
}
.r2-public-note-card:hover{
  transform:translateY(-3px)!important;
  border-color:#dddad5!important;
  box-shadow:0 14px 34px rgba(27,28,31,.09)!important;
}
.r2-note-cover{
  width:100%;
  aspect-ratio:16/8;
  overflow:hidden;
  background:#f9f8f4;
}
.r2-note-cover img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.r2-note-card-inner,.note-card-inner{
  padding:22px 24px 24px!important;
}
.r2-note-tags{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:15px;
}
.r2-note-tags span,.r2-note-modal-tags span{
  border:1px solid #e8e6e2;
  border-radius:999px;
  padding:5px 9px;
  font-size:10px;
  color:#81848a;
  background:#fcfbfa;
}
.r2-note-read{
  margin-top:17px;
  font-size:11px;
  font-weight:700;
  color:#575a5f;
  letter-spacing:.01em;
}
.r2-cms-public-card .r2-cms-pub-image{
  width:100%;
  max-height:210px;
  object-fit:cover;
  display:block;
  margin:-24px -24px 20px;
  width:calc(100% + 48px);
}
.r2-note-modal{
  position:fixed;
  inset:0;
  z-index:10050;
  display:none;
  align-items:center;
  justify-content:center;
  padding:28px;
}
.r2-note-modal.is-open{display:flex}
.r2-note-modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(31,32,36,.43);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
.r2-note-modal-dialog{
  position:relative;
  width:min(820px,100%);
  max-height:calc(100vh - 56px);
  overflow:auto;
  background:#fff;
  border:1px solid #e8e6e2;
  border-radius:20px;
  box-shadow:0 28px 90px rgba(23,24,28,.18);
  padding:42px 48px 46px;
  z-index:1;
}
.r2-note-modal-close{
  position:absolute;
  right:18px;
  top:15px;
  width:34px;
  height:34px;
  border:1px solid #e8e6e2;
  border-radius:50%;
  background:#fff;
  color:#81848b;
  font-size:21px;
  line-height:1;
  cursor:pointer;
}
.r2-note-modal-meta{
  font-size:10px;
  line-height:1.4;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-weight:700;
  color:#8c8f94;
  margin-bottom:12px;
}
.r2-note-modal-dialog h2{
  font-family:'Playfair Display',Georgia,serif;
  font-size:34px;
  line-height:1.16;
  font-weight:500;
  letter-spacing:-.025em;
  color:#1d1e22;
  margin:0 0 8px;
}
.r2-note-modal-date{
  font-size:11px;
  color:#96999e;
  margin-bottom:24px;
}
.r2-note-modal-image{
  width:100%;
  max-height:390px;
  object-fit:cover;
  border-radius:12px;
  display:block;
  margin:0 0 24px;
}
.r2-note-modal-summary{
  font-size:16px;
  line-height:1.72;
  color:#696c72;
  margin:0 0 22px;
  font-weight:500;
}
.r2-note-modal-body{
  font-size:15px;
  line-height:1.85;
  color:#74777e;
}
.r2-note-modal-body p{margin:0 0 18px}
.r2-note-modal-tags{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:28px;
}
.r2-note-modal-open{overflow:hidden}
.r2cms-editor .r2cms-field input,
.r2cms-editor .r2cms-field textarea,
.r2cms-editor .r2cms-field select{
  font-family:'DM Sans',Arial,sans-serif!important;
  font-size:13px!important;
  line-height:1.65!important;
  color:#1d1e22!important;
}
.r2cms-editor .r2cms-field textarea{
  font-size:14px!important;
  line-height:1.75!important;
}
.r2cms-editor .r2cms-field label{
  font-family:'DM Sans',Arial,sans-serif!important;
  letter-spacing:.13em!important;
}
@media(max-width:640px){
  .r2-note-modal{padding:14px}
  .r2-note-modal-dialog{padding:34px 22px 30px;border-radius:16px}
  .r2-note-modal-dialog h2{font-size:28px}
  .r2-note-modal-body{font-size:14px;line-height:1.8}
}

/* Replace header logo with the new HD R² Lab logo while preserving the current header footprint. */
header img,
.r2-header img,
.site-header img,
nav img{
  width:auto!important;
  height:70px!important;
  max-width:285px!important;
  object-fit:contain!important;
  object-position:left center!important;
}
@media(max-width:900px){
  header img,
  .r2-header img,
  .site-header img,
  nav img{
    height:62px!important;
    max-width:255px!important;
  }
}
@media(max-width:600px){
  header img,
  .r2-header img,
  .site-header img,
  nav img{
    height:54px!important;
    max-width:220px!important;
  }
}

/* Publication cards and detail popup — matching R² Lab typography */
.r2-clickable-publication{
  cursor:pointer!important;
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease!important;
}
.r2-clickable-publication:hover{
  transform:translateY(-3px)!important;
  border-color:#dddad5!important;
  box-shadow:0 14px 34px rgba(27,28,31,.09)!important;
}
.r2-clickable-publication .r2-publication-open-label{
  margin-top:17px;
  color:#575a5f;
  font-size:11px;
  font-weight:700;
}
.r2-publication-modal{
  position:fixed;
  inset:0;
  z-index:10060;
  display:none;
  align-items:center;
  justify-content:center;
  padding:28px;
}
.r2-publication-modal.is-open{display:flex}
.r2-publication-backdrop{
  position:absolute;
  inset:0;
  background:rgba(31,32,36,.43);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
.r2-publication-dialog{
  position:relative;
  width:min(820px,100%);
  max-height:calc(100vh - 56px);
  overflow:auto;
  background:#fff;
  border:1px solid #e8e6e2;
  border-radius:20px;
  box-shadow:0 28px 90px rgba(23,24,28,.18);
  padding:44px 50px 48px;
  z-index:1;
}
.r2-publication-close{
  position:absolute;
  right:18px;
  top:15px;
  width:34px;
  height:34px;
  border:1px solid #e8e6e2;
  border-radius:50%;
  background:#fff;
  color:#81848b;
  font-size:21px;
  line-height:1;
  cursor:pointer;
}
.r2-publication-modal-year{
  font-size:10px;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-weight:700;
  color:#8c8f94;
  margin-bottom:12px;
}
.r2-publication-dialog h2{
  font-family:'Playfair Display',Georgia,serif;
  font-size:32px;
  line-height:1.18;
  font-weight:500;
  letter-spacing:-.025em;
  color:#1d1e22;
  margin:0 0 14px;
}
.r2-publication-authors{
  font-size:13px;
  line-height:1.65;
  color:#74777e;
  margin:0 0 4px;
}
.r2-publication-venue{
  font-size:13px;
  line-height:1.65;
  color:#8b8e93;
  margin:0;
}
.r2-publication-rule{
  height:1px;
  background:#ebeae7;
  margin:25px 0 24px;
}
.r2-publication-label{
  font-size:10px;
  letter-spacing:.15em;
  text-transform:uppercase;
  font-weight:700;
  color:#8c8f94;
  margin-bottom:8px;
}
.r2-publication-section p{
  font-size:15px;
  line-height:1.8;
  color:#74777e;
  margin:0;
}
.r2-publication-meta-row{
  display:flex;
  gap:18px;
  align-items:flex-start;
  margin-top:23px;
  padding-top:18px;
  border-top:1px solid #f3f1ee;
  font-size:12px;
  color:#8b8e93;
}
.r2-publication-meta-row strong{
  color:#575a5f;
  font-weight:600;
  overflow-wrap:anywhere;
}
.r2-publication-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:28px;
}
.r2-publication-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:40px;
  padding:0 16px;
  border:1px solid #dfddd8;
  border-radius:8px;
  color:#24252a;
  background:#fff;
  font-size:12px;
  font-weight:600;
  text-decoration:none;
}
.r2-publication-btn.primary{
  color:#fff;
  background:#1d1e22;
  border-color:#1d1e22;
}
.r2-publication-modal-open{overflow:hidden}
@media(max-width:640px){
  .r2-publication-modal{padding:14px}
  .r2-publication-dialog{padding:36px 22px 30px;border-radius:16px}
  .r2-publication-dialog h2{font-size:27px}
}

/* V33: keep the Admin entry point visible and clickable. */
.r2-header-admin, nav .r2-header-admin, header .r2-header-admin{display:inline-flex!important;align-items:center;justify-content:center;}

.r2-about-manager-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}
.r2-about-manager-section{border:1px solid #e9e8e5;border-radius:16px;background:#fff;padding:16px}
.r2-about-manager-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}
.r2-about-manager-head label{display:block;margin:0;font-size:11px;letter-spacing:.12em;font-weight:800;color:#6b6e73}
.r2-about-manager-head small{display:block;color:#8e9197;font-size:11px;line-height:1.45;margin-top:4px}
.r2-about-add{border:1px solid #dddbd6;background:#fcfbf9;color:#1d1e22;border-radius:9px;padding:7px 10px;font-weight:700;font-size:12px;cursor:pointer;white-space:nowrap}
.r2-about-add:hover{background:#f5f4f2}
.r2-about-item{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-top:1px solid #f3f2ef;padding:10px 0}
.r2-about-item:first-child{border-top:0}
.r2-about-item-main{min-width:0}
.r2-about-item-title{font-weight:700;color:#1d1e22;font-size:13px;line-height:1.4}
.r2-about-item-sub{color:#8e9197;font-size:12px;line-height:1.45;margin-top:2px;word-break:break-word}
.r2-about-item-badge{display:inline-block;font-size:9px;letter-spacing:.08em;text-transform:uppercase;border:1px solid #e9e8e5;border-radius:999px;padding:2px 6px;color:#8d9096;margin-bottom:4px}
.r2-about-item-actions{display:flex;gap:6px;flex:none}
.r2-about-item-actions button{border:1px solid #e3e1dc;background:#fff;color:#222429;border-radius:7px;padding:5px 8px;font-size:11px;cursor:pointer}
.r2-about-item-actions button.delete{color:#a53a35;border-color:#efc6c2}
.r2-about-empty{font-size:12px;color:#9da0a5;padding:8px 0}
@media(max-width:850px){.r2-about-manager-grid{grid-template-columns:1fr}.r2-about-manager-head{flex-direction:column}.r2-about-add{align-self:flex-start}}

#r2cms-tab-about,#r2cms-q-about,#r2cms-tab-pubs,#r2cms-q-pubs,#r2cms-tab-notes,#r2cms-q-notes,#r2cms-tab-projects,#r2cms-q-projects{
  position:relative!important;z-index:10020!important;pointer-events:auto!important;cursor:pointer!important;
}
#r2cms-dashboard .r2cms-tabs,#r2cms-dashboard .r2cms-quicknav{position:relative;z-index:10010;}

/* =========================================================
   R² LAB — RESPONSIVE CANONICAL SYSTEM
   One source of truth for desktop + iPhone + Android.
   ========================================================= */

:root{
  --ink:#1a1b1f;
  --ink2:#23252a;
  --muted:#7c7f86;
  --line:#eae8e5;
  --soft:#faf9f7;
}

html,body{width:100%;max-width:100%;overflow-x:hidden;}
*,*:before,*:after{box-sizing:border-box;}
body{font-family:'DM Sans',Arial,sans-serif;color:var(--ink);background:#fff;-webkit-text-size-adjust:100%;}

/* HEADER — desktop */
.top{
  width:100%;
  position:sticky;
  top:0;
  z-index:3000;
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(234,232,229,.9);
}
.topin{
  width:min(1240px,100%);
  height:78px;
  margin:0 auto;
  padding:0 28px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:32px;
}
.brand{
  min-width:0;
  flex:0 1 auto;
  display:flex;
  align-items:center;
}
.brand img,.brand-logo{
  display:block;
  width:auto!important;
  max-width:285px!important;
  max-height:62px!important;
  height:auto!important;
  object-fit:contain;
}
.topin nav{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:32px;
  min-width:0;
  white-space:nowrap;
  font-size:14px;
  font-weight:600;
}
.topin nav a{
  display:block;
  padding:27px 0 24px;
  color:#65686e;
  border-bottom:2px solid transparent;
}
.topin nav a:hover,.topin nav a.active{
  color:var(--ink);
  border-bottom-color:var(--ink);
}
.r2-mobile-menu{display:none;}

/* VIEW ROUTING — one section per page */
body.r2-home-view .pub-section,
body.r2-home-view .notes-section,
body.r2-home-view .projects-section,
body.r2-home-view #about{display:none!important;}

body.r2-publications-view .hero,
body.r2-publications-view .r2-home-access-strip,
body.r2-publications-view .notes-section,
body.r2-publications-view .projects-section,
body.r2-publications-view #about{display:none!important;}

body.r2-notes-view .hero,
body.r2-notes-view .r2-home-access-strip,
body.r2-notes-view .pub-section,
body.r2-notes-view .projects-section,
body.r2-notes-view #about{display:none!important;}

body.r2-projects-view .hero,
body.r2-projects-view .r2-home-access-strip,
body.r2-projects-view .pub-section,
body.r2-projects-view .notes-section,
body.r2-projects-view #about{display:none!important;}

body.r2-about-view .hero,
body.r2-about-view .r2-home-access-strip,
body.r2-about-view .pub-section,
body.r2-about-view .notes-section,
body.r2-about-view .projects-section{display:none!important;}

/* HOME — desktop */
body.r2-home-view .hero{
  position:relative;
  isolation:isolate;
  width:min(1180px,100%);
  min-height:430px;
  margin:0 auto;
  padding:70px 28px 54px;
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(350px,.72fr);
  gap:64px;
  align-items:center;
  overflow:hidden;
}
body.r2-home-view .hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.94) 48%,rgba(252,251,249,.72) 100%);
}
body.r2-home-view .r2-network-bg{
  position:absolute!important;
  inset:0!important;
  z-index:-2!important;
  display:block!important;
  opacity:.62!important;
  pointer-events:none!important;
  overflow:hidden!important;
}
body.r2-home-view .r2-network-bg svg{width:100%;height:100%;display:block;}
body.r2-home-view .hero>div:not(.r2-network-bg){
  grid-column:1;
  grid-row:1;
  width:100%;
  max-width:610px;
  margin:0;
  padding:0;
}
body.r2-home-view .hero h1{display:none!important;}
body.r2-home-view .hero>div:not(.r2-network-bg)>p{
  max-width:590px;
  margin:0;
  font-size:16px;
  line-height:1.78;
  color:#81848b;
}
body.r2-home-view .hero-links{display:none!important;}
body.r2-home-view .hero-card{
  grid-column:2;
  grid-row:1;
  width:100%;
  max-width:430px;
  justify-self:end;
  margin:0;
  padding:29px 28px 30px;
  border-radius:22px;
  background:rgba(252,251,249,.9);
  border:1px solid var(--line);
  box-shadow:0 20px 55px rgba(27,28,31,.08);
}
body.r2-home-view .hero-card h3{
  margin:0 0 14px;
  font-family:'Playfair Display',Georgia,serif;
  font-size:25px;
  line-height:1.2;
  font-weight:500;
}
body.r2-home-view .hero-card p{
  margin:0 0 19px;
  font-size:13.5px;
  line-height:1.7;
  color:#7f8288;
}
body.r2-home-view .hero-card .tags{display:flex;flex-wrap:wrap;gap:7px;row-gap:8px;}
body.r2-home-view .hero-card .tag{
  background:#fff;
  border:1px solid #e5e3e0;
  border-radius:999px;
  padding:7px 11px;
  font-size:10.5px;
  line-height:1.2;
  color:#6c6f75;
}

/* Home access — original three-item structure */
body.r2-home-view .r2-home-access-strip{
  display:grid;
  width:100%;
  grid-template-columns:repeat(3,1fr);
  min-height:110px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:rgba(255,255,255,.88);
}
body.r2-home-view .r2-access-item{
  position:relative;
  min-height:110px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:15px;
  padding:20px 26px;
}
body.r2-home-view .r2-access-item+.r2-access-item::before{
  content:"";
  position:absolute;
  left:0;top:22px;bottom:22px;
  width:1px;background:#e9e7e4;
}
body.r2-home-view .r2-access-icon{
  width:48px;height:48px;min-width:48px;min-height:48px;
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  color:#1d1e22;background:#f5f4f2;
}
body.r2-home-view .r2-access-icon svg{width:23px;height:23px;}
body.r2-home-view .r2-access-label{font-size:13px;font-weight:600;color:#1d1e22;}

/* PUBLICATIONS */
body.r2-publications-view .pub-section{
  width:min(1180px,100%);
  min-height:calc(100vh - 78px);
  margin:0 auto;
  padding:52px 28px 88px;
  box-sizing:border-box;
}
body.r2-publications-view .pub-head{
  display:flex;
  justify-content:space-between;
  gap:30px;
  align-items:end;
  margin-bottom:28px;
}
body.r2-publications-view .pub-head h2{
  font-family:'Playfair Display',Georgia,serif;
  font-size:34px;
  line-height:1.12;
  font-weight:500;
  letter-spacing:-.025em;
  color:#1d1e22;
  margin:0;
}

/* NOTES */
body.r2-notes-view .notes-section{
  width:min(1180px,100%);
  min-height:calc(100vh - 78px);
  margin:0 auto;
  padding:64px 28px 84px;
  background:#fff;
}
body.r2-notes-view .notes-head{display:flex;justify-content:space-between;gap:40px;align-items:end;margin-bottom:30px;}
body.r2-notes-view .notes-head h2{font-family:'Playfair Display',Georgia,serif;font-size:34px;line-height:1.15;font-weight:500;margin:0;}
body.r2-notes-view .notes-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;}
body.r2-notes-view .note-card{min-width:0;border:1px solid var(--line);border-radius:18px;background:#fff;padding:22px;}
body.r2-notes-view .note-card h3{font-family:'Playfair Display',Georgia,serif;font-size:21px;line-height:1.25;font-weight:500;color:#1d1e22;}
body.r2-notes-view .note-card p{font-size:13px;line-height:1.7;color:#76797f;}

/* PROJECTS */
body.r2-projects-view .projects-section{
  width:min(1180px,100%);
  min-height:calc(100vh - 78px);
  margin:0 auto;
  padding:64px 28px 86px;
  background:#fff;
  border-top:0;
}
body.r2-projects-view .projects-head{display:flex;justify-content:space-between;gap:40px;align-items:end;margin-bottom:30px;}
body.r2-projects-view .projects-head h2{font-family:'Playfair Display',Georgia,serif;font-size:34px;line-height:1.15;font-weight:500;margin:0;}
body.r2-projects-view .projects-section>div[style]{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;max-width:none!important;margin:0!important;padding:0!important;}
body.r2-projects-view .lab-project{min-width:0;margin:0!important;padding:0 22px 24px!important;border:1px solid var(--line)!important;border-radius:18px!important;background:#fff!important;box-shadow:0 8px 26px rgba(27,28,32,.045)!important;overflow:hidden!important;}
body.r2-projects-view .project-visual{width:calc(100% + 44px)!important;height:220px!important;margin:0 -22px 20px!important;object-fit:contain!important;background:#fbfaf7!important;border:0!important;border-bottom:1px solid #eeedea!important;}
body.r2-projects-view .lab-project h3{font-family:'Playfair Display',Georgia,serif;font-size:22px;line-height:1.25;font-weight:500;color:#1d1e22;margin:0 0 10px;}
body.r2-projects-view .lab-project p{font-size:13.5px;line-height:1.7;color:#797c83;margin:0;}

/* ABOUT — clean source layout, no previous About patch cascade */
body.r2-about-view{background:#fbfaf7;}
body.r2-about-view #about{
  width:100%;
  max-width:none;
  margin:0;
  padding:56px 0 72px;
  background:#fbfaf7;
  border:0;
  overflow:hidden;
}
body.r2-about-view #about .r2-about-static{
  width:min(1120px,calc(100% - 56px));
  margin:0 auto;
}
body.r2-about-view #about .r2-info-card{
  margin-top:0;
}
body.r2-about-view #about .r2-about-top{
  display:block;
  width:100%;
  padding:0 0 34px;
}

body.r2-about-view #about .r2-about-editorial{
  display:grid;
  grid-template-columns:150px 1px minmax(0,1fr);
  column-gap:28px;
  align-items:center;
  width:100%;
  max-width:1080px;
  margin:0 auto;
  padding:0 6px;
}

body.r2-about-view #about .r2-about-mark{
  position:relative;
  height:132px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:'Playfair Display',Georgia,serif;
  color:#878a90;
  line-height:.82;
}

body.r2-about-view #about .r2-about-mark span{
  font-size:112px;
  font-weight:500;
  letter-spacing:-.07em;
}

body.r2-about-view #about .r2-about-mark sup{
  font-size:48px;
  line-height:1;
  font-weight:500;
  align-self:flex-start;
  margin-top:2px;
  margin-left:-1px;
}

body.r2-about-view #about .r2-about-divider{
  width:1px;
  height:128px;
  background:#dfddd8;
}

body.r2-about-view #about .r2-about-copy{
  min-width:0;
  max-width:900px;
}

body.r2-about-view #about .r2-about-copy p{
  margin:0;
  max-width:900px;
  font-size:16px;
  line-height:1.78;
  color:#81848b;
  letter-spacing:0;
}

body.r2-about-view #about .r2-about-copy p + p{
  margin-top:17px;
}

body.r2-about-view #about .r2-about-copy strong{
  color:#1d1e22;
  font-weight:700;
}

body.r2-about-view #about .section-kicker,
body.r2-about-view #about .r2-about-side-title,
body.r2-about-view #about .r2-info-label{
  font-size:10.5px;
  line-height:1.4;
  font-weight:700;
  letter-spacing:.19em;
  color:#81848a;
  text-transform:uppercase;
}
body.r2-about-view #about .r2-about-box .r2-about-side-title{
  margin:0 0 13px;
}
body.r2-about-view #about .r2-about-intro h2{
  font-family:'Playfair Display',Georgia,serif;
  font-size:31px;
  line-height:1.16;
  font-weight:500;
  letter-spacing:-.02em;
  color:#1d1e22;
  margin:12px 0 16px;
}
body.r2-about-view #about .r2-about-intro>p{
  max-width:680px;
  margin:0;
  font-size:15px;
  line-height:1.78;
  color:#7e8188;
}
body.r2-about-view #about .r2-about-side{
  width:100%;
  max-width:none;
  margin:0 0 20px;
  padding:0;
  border:0;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:24px;
  align-items:stretch;
}

body.r2-about-view #about .r2-about-box{
  width:100%;
  min-width:0;
  height:100%;
  padding:24px 24px 25px;
  border:1px solid #e7e5e1;
  border-radius:16px;
  background:#fff;
  box-shadow:0 7px 22px rgba(27,28,32,.035);
  box-sizing:border-box;
}

body.r2-about-view #about .r2-about-side-title{
  margin:0 0 13px;
  font-size:10.5px;
  line-height:1.4;
  font-weight:700;
  letter-spacing:.19em;
  color:#81848a;
  text-transform:uppercase;
}

body.r2-about-view #about .r2-section-rule{
  width:40px;
  height:2px;
  margin:0 0 22px;
  background:#aeb0b5;
}

body.r2-about-view #about .r2-education-timeline{
  position:relative;
  padding-left:32px;
}

body.r2-about-view #about .r2-education-timeline:before{
  content:"";
  position:absolute;
  left:4px;
  top:6px;
  bottom:8px;
  width:1px;
  background:#dcd9d4;
}

body.r2-about-view #about .r2-edu-row{
  position:relative;
  min-height:50px;
  padding:0 0 17px;
}

body.r2-about-view #about .r2-edu-row:last-child{
  padding-bottom:0;
}

body.r2-about-view #about .r2-timeline-dot{
  position:absolute;
  left:-32px;
  top:4px;
  width:9px;
  height:9px;
  border-radius:50%;
  background:#83868c;
  box-shadow:0 0 0 3px #fff;
}

body.r2-about-view #about .r2-edu-row strong{
  display:block;
  font-size:13px;
  line-height:1.45;
  font-weight:700;
  color:#1d1e22;
  margin-bottom:3px;
}

body.r2-about-view #about .r2-edu-row span:not(.r2-timeline-dot){
  display:block;
  font-size:11.5px;
  line-height:1.55;
  color:#8a8d93;
}

body.r2-about-view #about .r2-cert-row{
  display:grid;
  grid-template-columns:38px minmax(0,1fr);
  gap:12px;
  align-items:start;
  margin:0 0 18px;
}

body.r2-about-view #about .r2-cert-row:last-child{
  margin-bottom:0;
}

body.r2-about-view #about .r2-icon-circle{
  width:38px;
  height:38px;
  min-width:38px;
  min-height:38px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 38px;
  border-radius:50%;
  color:#1d1e22;
  background:#f5f4f1;
}

body.r2-about-view #about .r2-icon-circle svg{
  width:18px;
  height:18px;
}

body.r2-about-view #about .r2-cert-row strong{
  display:block;
  font-size:12.5px;
  line-height:1.45;
  color:#1d1e22;
  margin-bottom:3px;
}

body.r2-about-view #about .r2-cert-row span{
  display:block;
  font-size:10.8px;
  line-height:1.58;
  color:#8a8d93;
}

body.r2-about-view #about .r2-info-card,
body.r2-about-view #about .r2-about-contact{width:100%;margin:0 0 16px;padding:19px 24px 21px;border:1px solid #e7e5e1;border-radius:15px;background:#fff;box-shadow:0 7px 22px rgba(27,28,32,.035);}
body.r2-about-view #about .r2-info-label{margin:0 0 12px;}
body.r2-about-view #about .r2-interest-tags{display:flex;flex-wrap:wrap;gap:7px;row-gap:8px;}
body.r2-about-view #about .r2-interest-tags span{display:inline-flex;align-items:center;min-height:31px;padding:0 12px;border:1px solid #e7e5e1;border-radius:999px;background:#fcfbfa;color:#292b30;font-size:10.5px;line-height:1;white-space:nowrap;}
body.r2-about-view #about .r2-profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;align-items:stretch;}
body.r2-about-view #about .r2-profile-item{min-width:0;min-height:62px;height:auto;display:grid;grid-template-columns:32px minmax(0,1fr) 15px;gap:10px;align-items:center;padding:9px 11px;border:1px solid #e9e8e5;border-radius:11px;background:#fff;text-decoration:none;box-sizing:border-box;overflow:hidden;}
body.r2-about-view #about .r2-profile-item > div{min-width:0;align-self:center;}
body.r2-about-view #about .r2-profile-item strong{display:block;font-size:11.5px;line-height:1.35;color:#1d1e22;margin-bottom:2px;}
body.r2-about-view #about .r2-profile-item span{display:block;font-size:10px;line-height:1.35;color:#8a8d93;overflow-wrap:anywhere;}
body.r2-about-view #about .r2-profile-item > .r2-external-icon{width:15px!important;height:15px!important;min-width:15px!important;max-width:15px!important;min-height:15px!important;max-height:15px!important;display:block!important;color:#92959a!important;align-self:center!important;justify-self:end!important;}
#about .r2-contact-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  width:100%;
  align-items:stretch;
}

#about .r2-contact-item{
  min-width:0;
  min-height:58px;
  height:100%;
  display:flex;
  align-items:center;
  gap:10px;
  padding:11px 12px;
  border:1px solid #eae8e5;
  border-radius:11px;
  background:#fdfcfb;
  text-decoration:none;
  box-sizing:border-box;
}

#about .r2-contact-item > span:last-child{
  min-width:0;
  flex:1 1 auto;
}

#about .r2-contact-icon{
  width:32px;
  height:32px;
  min-width:32px;
  max-width:32px;
  min-height:32px;
  max-height:32px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  flex:0 0 32px;
  background:#f5f4f1;
  color:#1d1e22;
}

#about .r2-contact-icon svg{
  width:15px;
  height:15px;
  display:block;
}

#about .r2-contact-item strong{
  display:block;
  margin:0;
  font-size:11px;
  line-height:1.35;
  color:#1d1e22;
}

#about .r2-contact-item small{
  display:block;
  margin-top:2px;
  font-size:10px;
  line-height:1.35;
  color:#8a8d93;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}


/* MOBILE — iPhone + Android
   Same visual language as desktop.
   Navigation stays horizontal and scrolls sideways instead of using a hamburger.
*/

@media (max-width:1100px) and (min-width:851px){
  #about .r2-contact-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:850px){

  html,body{
    width:100%;
    max-width:100%;
    overflow-x:hidden;
  }

  /* Header: desktop-like horizontal navigation on phones */
  .top{
    position:sticky;
    top:0;
    z-index:3000;
    width:100%;
  }

  .topin{
    width:100%;
    height:72px;
    min-height:72px;
    padding:0 14px;
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:16px;
    position:relative;
    box-sizing:border-box;
  }

  .brand{
    position:static;
    transform:none;
    flex:0 0 138px;
    width:138px;
    min-width:138px;
    max-width:138px;
    display:flex;
    align-items:center;
    justify-content:flex-start;
    margin:0;
    padding:0;
    overflow:hidden;
  }

  .brand img,
  .brand-logo{
    display:block;
    width:auto!important;
    max-width:138px!important;
    max-height:39px!important;
    height:auto!important;
    object-fit:contain!important;
    object-position:left center!important;
  }

  /* No hamburger on iPhone / Android */
  .r2-mobile-menu{
    display:none!important;
  }

  #r2-main-nav{
    display:flex!important;
    position:static!important;
    flex:1 1 auto!important;
    min-width:0!important;
    width:auto!important;
    max-width:none!important;
    height:44px!important;
    padding:0!important;
    margin:0!important;
    gap:24px!important;
    align-items:center!important;
    justify-content:flex-start!important;
    flex-direction:row!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    white-space:nowrap!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    -webkit-overflow-scrolling:touch!important;
    scrollbar-width:none!important;
  }

  #r2-main-nav::-webkit-scrollbar{
    display:none!important;
  }

  #r2-main-nav a{
    flex:0 0 auto!important;
    width:auto!important;
    min-width:max-content!important;
    min-height:44px!important;
    height:44px!important;
    display:flex!important;
    align-items:center!important;
    padding:0 0 2px!important;
    margin:0!important;
    border:0!important;
    border-bottom:2px solid transparent!important;
    border-radius:0!important;
    background:transparent!important;
    color:#65686e!important;
    font-size:11px!important;
    line-height:1!important;
    font-weight:600!important;
    white-space:nowrap!important;
  }

  #r2-main-nav a.active{
    background:transparent!important;
    color:#1d1e22!important;
    border-bottom-color:#1d1e22!important;
  }

  /* Home */
  body.r2-home-view .hero{
    width:100%;
    min-height:0;
    margin:0;
    padding:32px 18px 28px;
    display:block;
    overflow:visible;
    background:#fff;
  }

  body.r2-home-view .r2-network-bg{
    display:none!important;
  }

  body.r2-home-view .hero::before{
    display:none!important;
  }

  body.r2-home-view .hero>div:not(.r2-network-bg){
    width:100%;
    max-width:none;
    margin:0;
    padding:0;
  }

  body.r2-home-view .hero h1{
    display:none!important;
  }

  body.r2-home-view .hero>div:not(.r2-network-bg)>p{
    width:100%;
    max-width:none;
    margin:0;
    font-size:13px;
    line-height:1.72;
    color:#81848b;
  }

  body.r2-home-view .r2-mobile-hero-spacer{
    display:block;
    width:100%;
    height:78px;
    min-height:78px;
  }

  body.r2-home-view .hero-card{
    width:100%;
    max-width:none;
    margin:0;
    padding:23px 18px 25px;
    border-radius:20px;
    background:#faf9f7;
    box-shadow:none;
  }

  body.r2-home-view .hero-card h3{
    font-size:21px;
    line-height:1.2;
    margin:0 0 13px;
  }

  body.r2-home-view .hero-card p{
    font-size:12px;
    line-height:1.65;
    margin:0 0 18px;
  }

  body.r2-home-view .hero-card .tags{
    gap:6px;
    row-gap:7px;
  }

  body.r2-home-view .hero-card .tag{
    font-size:9.7px;
    padding:6px 9px;
    min-height:29px;
  }

  /* Home access strip: keep the desktop 3-item composition on phones */
  body.r2-home-view .r2-home-access-strip{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    width:100%!important;
    min-height:78px!important;
    overflow:hidden!important;
  }

  body.r2-home-view .r2-access-item{
    min-width:0!important;
    min-height:78px!important;
    padding:10px 7px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:7px!important;
    flex-direction:column!important;
    text-align:center!important;
  }

  body.r2-home-view .r2-access-item+.r2-access-item::before{
    left:0!important;
    top:13px!important;
    bottom:13px!important;
    right:auto!important;
    width:1px!important;
    height:auto!important;
  }

  body.r2-home-view .r2-access-icon{
    width:31px!important;
    height:31px!important;
    min-width:31px!important;
    min-height:31px!important;
    flex:0 0 31px!important;
  }

  body.r2-home-view .r2-access-icon svg{
    width:16px!important;
    height:16px!important;
  }

  body.r2-home-view .r2-access-label{
    max-width:100%!important;
    font-size:9.5px!important;
    line-height:1.2!important;
    white-space:nowrap!important;
  }

  /* Public views */
  body.r2-publications-view .pub-section,
  body.r2-notes-view .notes-section,
  body.r2-projects-view .projects-section{
    width:100%;
    min-height:calc(100vh - 72px);
    padding:38px 18px 60px;
    margin:0;
    box-sizing:border-box;
  }

  body.r2-publications-view .pub-head,
  body.r2-notes-view .notes-head,
  body.r2-projects-view .projects-head{
    display:block;
    margin-bottom:24px;
  }

  body.r2-publications-view .pub-head h2,
  body.r2-notes-view .notes-head h2,
  body.r2-projects-view .projects-head h2{
    font-size:29px;
    line-height:1.2;
    margin:0 0 10px;
  }

  body.r2-publications-view .pub-head p,
  body.r2-notes-view .notes-head p,
  body.r2-projects-view .projects-head p{
    font-size:12.5px;
    line-height:1.65;
    max-width:none;
    margin:0;
  }

  body.r2-publications-view .pub-list,
  body.r2-notes-view .notes-grid,
  body.r2-projects-view .projects-section>div[style]{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:18px!important;
  }

  body.r2-publications-view .pub-card{
    width:100%;
    display:flex!important;
    flex-direction:column!important;
    min-width:0;
  }

  body.r2-publications-view .pub-card .pub-thumb{
    width:100%;
    height:190px;
    border-right:0;
    border-bottom:1px solid var(--line);
  }

  body.r2-publications-view .pub-card h3{
    font-size:18px;
    line-height:1.35;
    overflow-wrap:anywhere;
  }

  body.r2-publications-view .authors,
  body.r2-publications-view .venue,
  body.r2-publications-view .result{
    font-size:11.5px;
    line-height:1.55;
    overflow-wrap:anywhere;
  }

  body.r2-projects-view .lab-project{
    width:100%;
    min-width:0;
    margin:0!important;
    padding:0 16px 20px!important;
  }

  body.r2-projects-view .project-visual{
    width:calc(100% + 32px)!important;
    height:190px!important;
    max-height:190px!important;
    margin:0 -16px 17px!important;
  }

  body.r2-projects-view .lab-project h3{
    font-size:20px;
    line-height:1.3;
  }

  body.r2-projects-view .lab-project p{
    font-size:13px;
    line-height:1.65;
  }

  /* About */
  body.r2-about-view #about{
    width:100%;
    padding:42px 0 58px;
  }

  body.r2-about-view #about .r2-about-static{
    width:calc(100% - 32px);
    margin:0 auto;
  }

  body.r2-about-view #about .r2-about-top{
    display:block;
    padding:0 0 26px;
  }

  body.r2-about-view #about .r2-about-editorial{
    grid-template-columns:68px 1px minmax(0,1fr);
    column-gap:14px;
    align-items:center;
    padding:0;
  }

  body.r2-about-view #about .r2-about-mark{
    height:86px;
  }

  body.r2-about-view #about .r2-about-mark span{
    font-size:70px;
  }

  body.r2-about-view #about .r2-about-mark sup{
    font-size:27px;
    margin-top:1px;
  }

  body.r2-about-view #about .r2-about-divider{
    height:82px;
  }

  body.r2-about-view #about .r2-about-copy p{
    font-size:12.5px;
    line-height:1.66;
  }

  body.r2-about-view #about .r2-about-copy p + p{
    margin-top:12px;
  }

  body.r2-about-view #about .r2-about-side{
    width:100%;
    max-width:none;
    margin:18px 0 0;
    padding:0;
    border:0;
    display:grid;
    grid-template-columns:1fr;
    gap:14px;
  }

  body.r2-about-view #about .r2-about-box{
    height:auto;
    padding:17px 15px 18px;
    border-radius:14px;
  }

  body.r2-about-view #about .r2-section-rule{
    width:34px;
    height:2px;
    margin-bottom:18px;
  }

  body.r2-about-view #about .r2-cert-box .r2-cert-row{
    grid-template-columns:34px minmax(0,1fr);
    gap:9px;
    margin-bottom:13px;
  }

  body.r2-about-view #about .r2-icon-circle{
    width:34px;
    height:34px;
    min-width:34px;
    min-height:34px;
    flex-basis:34px;
  }

  body.r2-about-view #about .r2-icon-circle svg{
    width:16px;
    height:16px;
  }

  body.r2-about-view #about .r2-cert-row strong{font-size:11.3px;}
  body.r2-about-view #about .r2-cert-row span{font-size:10.2px;}

  body.r2-about-view #about .r2-info-card,
  body.r2-about-view #about .r2-about-contact{
    padding:14px 13px 15px;
    margin-bottom:11px;
  }

  body.r2-about-view #about .r2-interest-tags{
    gap:6px;
    row-gap:7px;
  }

  body.r2-about-view #about .r2-interest-tags span{
    min-height:28px;
    padding:0 10px;
    font-size:9.3px;
  }

  body.r2-about-view #about .r2-profile-grid{
    grid-template-columns:1fr;
    gap:9px;
  }

  body.r2-about-view #about .r2-profile-item{
    min-height:58px;
    padding:8px 10px;
    grid-template-columns:30px minmax(0,1fr) 14px;
    gap:9px;
  }

  body.r2-about-view #about .r2-profile-item strong{
    font-size:11px;
    line-height:1.3;
  }

  body.r2-about-view #about .r2-profile-item span{
    font-size:9.6px;
    line-height:1.3;
  }

  body.r2-about-view #about .r2-profile-item>.r2-external-icon{
    width:14px!important;
    height:14px!important;
    min-width:14px!important;
    max-width:14px!important;
    min-height:14px!important;
    max-height:14px!important;
  }

  #about .r2-contact-grid{
    grid-template-columns:1fr;
    gap:10px;
  }

  #about .r2-contact-item{
    min-height:56px;
    height:auto;
    padding:10px 11px;
  }

  #about .r2-contact-item strong{
    font-size:11px;
  }

  #about .r2-contact-item small{
    font-size:9.8px;
  }
}

@media (max-width:390px){
  .topin{
    height:60px;
    min-height:60px;
    padding:0 10px;
    gap:10px;
  }

  .brand{
    flex-basis:118px;
    width:118px;
    min-width:118px;
    max-width:118px;
  }

  .brand img,.brand-logo{
    max-width:118px!important;
    max-height:34px!important;
  }

  #r2-main-nav{
    gap:18px!important;
    height:42px!important;
  }

  #r2-main-nav a{
    height:42px!important;
    min-height:42px!important;
    font-size:10.5px!important;
  }

  body.r2-home-view .hero{
    padding:30px 16px 26px;
  }

  body.r2-home-view .r2-mobile-hero-spacer{
    height:78px;
    min-height:78px;
  }

  body.r2-home-view .hero>div:not(.r2-network-bg)>p{
    font-size:12.5px;
  }

  body.r2-home-view .hero-card{
    padding:21px 16px 23px;
  }

  body.r2-home-view .hero-card h3{
    font-size:20px;
  }

  body.r2-home-view .hero-card p{
    font-size:11.8px;
  }

  body.r2-home-view .r2-access-label{
    font-size:9px;
  }
}

.project-filter{
  display:flex;
  align-items:center;
  gap:10px;
  margin:24px 0 30px;
  padding:0 26px;
}
.project-filter select{
  appearance:none;
  -webkit-appearance:none;
  min-width:136px;
  height:52px;
  padding:0 42px 0 18px;
  border:1px solid #e2e0db;
  border-radius:4px;
  background:
    linear-gradient(45deg,transparent 50%,#d4d1ca 50%) calc(100% - 28px) 22px/8px 8px no-repeat,
    linear-gradient(135deg,#d4d1ca 50%,transparent 50%) calc(100% - 22px) 22px/8px 8px no-repeat,
    #fff;
  color:#17181c;
  font-size:16px;
  outline:none;
}
.project-filter select:focus{
  border-color:#b3b5b9;
  box-shadow:0 0 0 3px rgba(39,76,116,.08);
}
.project-filter button{
  height:52px;
  padding:0 26px;
  border:0;
  border-radius:6px;
  background:#e8e8e8;
  color:#17181c;
  font-size:16px;
  cursor:pointer;
  transition:.18s ease;
}
.project-filter button:hover{background:#dcdcdc;transform:translateY(-1px);}
.r2-dynamic-project[hidden]{display:none!important;}
@media(max-width:650px){.project-filter{flex-wrap:wrap;padding:0 16px;}}

/* =========================================================
   R² LAB — PUBLIC CONTENT PAGINATION
   Six items per page; three-column desktop editorial grid;
   one-column mobile grid; generous spacing between cards.
   ========================================================= */

.pub-list,
.notes-grid,
.r2-dynamic-projects,
.projects-section > div[style]{
  gap:26px!important;
}

.pub-list{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  align-items:stretch!important;
}

.note-card,
.pub-card,
.r2-dynamic-project,
.projects-section .lab-project{
  margin:0!important;
  min-width:0!important;
}

.notes-grid{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  align-items:stretch!important;
}

.projects-section > div[style],
.r2-dynamic-projects{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  align-items:stretch!important;
  gap:26px!important;
}

.r2-pagination{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:8px;
  margin:36px 0 8px;
  padding:0;
}

.r2-pagination button{
  min-width:48px;
  height:44px;
  padding:0 14px;
  border:0;
  border-radius:0;
  background:#f6f5f3;
  color:#1a1b1f;
  font-family:'DM Sans',Arial,sans-serif;
  font-size:14px;
  font-weight:500;
  line-height:1;
  cursor:pointer;
  transition:background .16s ease,color .16s ease,transform .16s ease;
}

.r2-pagination button:hover:not(:disabled){
  background:#edece9;
  transform:translateY(-1px);
}

.r2-pagination button.is-active{
  background:#e4e2df;
  color:#1d1e22;
  font-weight:700;
}

.r2-pagination button.r2-next{
  min-width:126px;
  text-align:center;
}

.r2-pagination button.r2-ellipsis{
  background:#f6f5f3;
  color:#81848b;
  cursor:default;
}

.r2-pagination button:disabled{
  opacity:.48;
  cursor:default;
}

.r2-pagination[hidden]{
  display:none!important;
}

.r2-page-hidden{
  display:none!important;
}

@media(max-width:900px){
  .pub-list,
  .notes-grid,
  .r2-dynamic-projects,
  .projects-section > div[style]{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:20px!important;
  }
}

@media(max-width:650px){
  .pub-list,
  .notes-grid,
  .r2-dynamic-projects,
  .projects-section > div[style]{
    grid-template-columns:1fr!important;
    gap:18px!important;
  }

  .r2-pagination{
    margin:28px 0 4px;
    gap:6px;
  }

  .r2-pagination button{
    min-width:42px;
    height:40px;
    padding:0 11px;
    font-size:13px;
  }

  .r2-pagination button.r2-next{
    min-width:102px;
  }
}

.r2-rich-editor{border:1px solid #e5e3df;border-radius:12px;background:#fff;overflow:hidden}
.r2-rich-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:9px;background:#fbfaf8;border-bottom:1px solid #ebe9e6}
.r2-rich-select{height:34px;border:1px solid #e2e0dc;border-radius:7px;background:#fff;padding:0 8px;color:#1d1e22;font:13px 'DM Sans',Arial,sans-serif}
.r2-rich-color{width:34px;height:34px;padding:3px;border:1px solid #e2e0dc;border-radius:7px;background:#fff;cursor:pointer}
.r2-rich-btn{height:34px;min-width:34px;padding:0 9px;border:1px solid #e2e0dc;border-radius:7px;background:#fff;color:#1d1e22;cursor:pointer;font:600 12px 'DM Sans',Arial,sans-serif}
.r2-rich-btn:hover{background:#f5f4f1;border-color:#c8cacd}
.r2-rich-content{min-height:340px;padding:16px 18px;outline:none;font:16px/1.75 'DM Sans',Arial,sans-serif;color:#696c72}
.r2-rich-content:empty:before{content:attr(data-placeholder);color:#a6a8ac;pointer-events:none}
.r2-rich-content h2,.r2-rich-content h3{font-family:'Playfair Display',Georgia,serif;color:#1d1e22}
.r2-rich-content h2{font-size:28px;margin:22px 0 10px}
.r2-rich-content h3{font-size:22px;margin:18px 0 8px}
.r2-rich-content blockquote{margin:18px 0;padding:12px 16px;border-left:3px solid #a6a8ac;background:#faf8f5;color:#6e7178}
.r2-rich-content img{max-width:100%;height:auto;border-radius:10px;display:block;margin:18px auto}
.r2-rich-content ul,.r2-rich-content ol{padding-left:25px}
.r2-note-modal-body img{max-width:100%;height:auto;border-radius:10px;display:block;margin:20px auto}
.r2-note-modal-body h2,.r2-note-modal-body h3{font-family:'Playfair Display',Georgia,serif;color:#1d1e22}
.r2-note-modal-body blockquote{margin:18px 0;padding:12px 16px;border-left:3px solid #a6a8ac;background:#faf8f5}
.r2-note-type{display:inline-block;padding:5px 9px;border-radius:999px;background:#f5f4f1;color:#5f6166;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.r2cms-topic-group{margin:0 0 24px}
.r2cms-topic-heading{display:flex;align-items:baseline;gap:9px;padding:12px 0;border-bottom:1px solid #e8e6e2;margin-bottom:10px}
.r2cms-topic-heading h3{margin:0;font:500 22px 'Playfair Display',Georgia,serif;color:#1d1e22}
.r2cms-topic-heading span{font-size:11px;color:#8f9297;letter-spacing:.08em;text-transform:uppercase}
@media(max-width:700px){
 .r2-rich-toolbar{gap:5px}
 .r2-rich-select{max-width:130px}
 .r2-rich-content{min-height:300px;padding:14px}
}

.r2-public-topic-group{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-bottom:10px}
.r2-public-topic-heading{grid-column:1/-1;display:flex;align-items:baseline;gap:10px;border-bottom:1px solid #e8e6e2;padding:6px 0 12px;margin-top:8px}
.r2-public-topic-heading h3{margin:0;font:500 25px 'Playfair Display',Georgia,serif;color:#1d1e22}
.r2-public-topic-heading span{font:11px 'DM Sans',Arial,sans-serif;color:#8f9297;letter-spacing:.08em;text-transform:uppercase}
@media(max-width:900px){.r2-public-topic-group{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:650px){.r2-public-topic-group{grid-template-columns:1fr;gap:18px}.r2-public-topic-heading{grid-column:1}.r2-public-topic-heading h3{font-size:22px}}

.publication-filter{flex-wrap:wrap}
.publication-filter select,.publication-filter button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
@media(max-width:650px){
 .publication-filter{display:grid;grid-template-columns:1fr;gap:8px;margin:20px 0 24px}
 .filter-label{font-size:11px}
 .publication-filter select,.publication-filter button{width:100%;min-width:0;height:48px;font-size:15px}
}

/* Final Home composition: no Research Focus card; research workspace image on right. */
body.r2-home-view .hero{
  display:grid!important;
  grid-template-columns:minmax(0,1.02fr) minmax(360px,.98fr)!important;
  align-items:center!important;
  gap:28px!important;
  min-height:500px!important;
  padding:58px 7vw 54px!important;
  position:relative!important;
  overflow:hidden!important;
}
body.r2-home-view .hero .r2-network-bg{
  position:absolute!important; inset:0!important; z-index:0!important;
}
body.r2-home-view .hero .r2-hero-copy{
  position:relative!important; z-index:3!important;
  max-width:680px!important;
}
body.r2-home-view .hero .r2-hero-copy .eyebrow{
  font-size:11px!important;
  letter-spacing:.20em!important;
  line-height:1.4!important;
  margin-bottom:14px!important;
}
body.r2-home-view .hero .r2-hero-copy>p{
  max-width:700px!important;
  font-size:19px!important;
  line-height:1.72!important;
  margin:0 0 22px!important;
}
body.r2-home-view .hero .hero-links{display:flex!important;gap:12px!important;flex-wrap:wrap!important;}
body.r2-home-view .r2-hero-image{
  position:absolute!important;
  z-index:1!important;
  right:0!important;
  top:0!important;
  width:53%!important;
  height:100%!important;
  pointer-events:none!important;
  overflow:hidden!important;
  opacity:.48!important;
  mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.22) 13%,#000 36%,#000 100%)!important;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.22) 13%,#000 36%,#000 100%)!important;
}
body.r2-home-view .r2-hero-image img{
  width:100%!important;height:100%!important;object-fit:cover!important;object-position:center!important;
  display:block!important;
  filter:saturate(.82) contrast(.96)!important;
}
body.dark-mode.r2-home-view .r2-hero-image{opacity:.30!important;}
body.dark-mode.r2-home-view .r2-hero-image img{filter:saturate(.72) brightness(.62) contrast(1.05)!important;}
body.r2-home-view .hero-card{display:none!important;}
@media(max-width:900px){
 body.r2-home-view .hero{grid-template-columns:1fr!important;min-height:560px!important;padding:54px 24px 44px!important;}
 body.r2-home-view .r2-hero-copy{max-width:100%!important;}
 body.r2-home-view .r2-hero-copy>p{font-size:17px!important;max-width:620px!important;}
 body.r2-home-view .r2-hero-image{width:100%!important;height:48%!important;top:auto!important;bottom:0!important;opacity:.25!important;mask-image:linear-gradient(180deg,transparent 0%,#000 55%,#000 100%)!important;-webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 55%,#000 100%)!important;}
 body.dark-mode.r2-home-view .r2-hero-image{opacity:.20!important;}
}

html.r2-dark .r2-theme-toggle{background:#84878e!important;border-color:#999ca1!important;justify-content:flex-end!important}
html:not(.r2-dark) .r2-theme-toggle{background:#e7e5e1!important;border-color:#e7e5e1!important;justify-content:flex-start!important}
html.r2-dark .r2-theme-knob{color:#84878e!important;background:#fff!important}
html:not(.r2-dark) .r2-theme-knob{color:#f4a000!important;background:#fff!important}
html.r2-dark .r2-theme-sun{opacity:.38!important;color:#edecea!important}
html.r2-dark .r2-theme-moon{opacity:1!important;color:#538ac6!important}
html:not(.r2-dark) .r2-theme-sun{opacity:1!important;color:#f4a000!important}
html:not(.r2-dark) .r2-theme-moon{opacity:.42!important;color:#8b8e94!important}

/* Final Home hero: text on the left, research workspace image on the right */
body.r2-home-view .hero{
  position:relative!important;
  max-width:1320px!important;
  min-height:500px!important;
  padding:70px 48px 55px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(420px,.92fr)!important;
  gap:42px!important;
  align-items:center!important;
}
body.r2-home-view .hero .r2-network-bg{
  position:absolute!important; inset:0!important; z-index:0!important;
}
body.r2-home-view .hero .r2-hero-copy{
  grid-column:1!important; grid-row:1!important;
  position:relative!important; z-index:3!important;
  width:auto!important; max-width:680px!important;
  padding:0!important;
}
body.r2-home-view .hero .r2-hero-copy h1{display:none!important;}
body.r2-home-view .hero .r2-hero-copy .eyebrow{
  font-size:10px!important; letter-spacing:.20em!important;
  margin:0 0 14px!important;
}
body.r2-home-view .hero .r2-hero-copy>p{
  font-size:20px!important; line-height:1.62!important;
  max-width:680px!important; margin:0 0 26px!important;
}
body.r2-home-view .hero .hero-links{position:relative!important; z-index:4!important;}
body.r2-home-view .r2-mobile-hero-spacer{display:none!important;}
body.r2-home-view .r2-hero-image{
  grid-column:2!important; grid-row:1!important;
  position:relative!important; z-index:2!important;
  width:100%!important; height:430px!important;
  top:auto!important; right:auto!important; bottom:auto!important;
  opacity:.68!important; overflow:hidden!important;
  border-radius:0 26px 26px 0!important;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.35) 13%,#000 34%,#000 100%)!important;
  mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.35) 13%,#000 34%,#000 100%)!important;
}
body.r2-home-view .r2-hero-image img{
  width:100%!important; height:100%!important;
  object-fit:cover!important; object-position:center!important;
  display:block!important;
  filter:saturate(.82) contrast(.98)!important;
}
html.r2-dark body.r2-home-view .r2-hero-image,
body.dark-mode.r2-home-view .r2-hero-image,
body.dark.r2-home-view .r2-hero-image,
body[data-theme="dark"].r2-home-view .r2-hero-image{opacity:.58!important;}
html.r2-dark body.r2-home-view .r2-hero-image img,
body.dark-mode.r2-home-view .r2-hero-image img,
body.dark.r2-home-view .r2-hero-image img,
body[data-theme="dark"].r2-home-view .r2-hero-image img{filter:saturate(.72) brightness(.62) contrast(1.04)!important;}
@media(max-width:900px){
  body.r2-home-view .hero{grid-template-columns:1fr!important; gap:24px!important; min-height:0!important; padding:60px 26px 35px!important;}
  body.r2-home-view .hero .r2-hero-copy{grid-column:1!important;grid-row:1!important;max-width:700px!important;}
  body.r2-home-view .r2-hero-image{grid-column:1!important;grid-row:2!important;height:300px!important;border-radius:22px!important;
    -webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 28%,#000 100%)!important;
    mask-image:linear-gradient(180deg,transparent 0%,#000 28%,#000 100%)!important;}
}

/* Final correction: hero copy left, research image right, side-by-side. */
body.r2-home-view .hero{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(420px,.92fr)!important;
  grid-template-rows:1fr!important;
  align-items:center!important;
  gap:48px!important;
  min-height:500px!important;
  padding:64px 6vw 54px!important;
  position:relative!important;
  overflow:hidden!important;
}
body.r2-home-view .hero .r2-network-bg{
  position:absolute!important; inset:0!important; z-index:0!important;
}
body.r2-home-view .hero .r2-hero-copy{
  grid-column:1!important; grid-row:1!important;
  position:relative!important; z-index:4!important;
  width:auto!important; max-width:690px!important;
  align-self:center!important;
  padding:0!important;
}
body.r2-home-view .hero .r2-hero-copy h1{display:none!important;}
body.r2-home-view .hero .r2-hero-copy .eyebrow{
  display:block!important;
  font-size:10px!important;
  line-height:1.4!important;
  letter-spacing:.20em!important;
  margin:0 0 14px!important;
}
body.r2-home-view .hero .r2-hero-copy>p{
  max-width:700px!important;
  font-size:19px!important;
  line-height:1.68!important;
  margin:0 0 24px!important;
}
body.r2-home-view .hero .r2-hero-copy .hero-links{
  display:flex!important; gap:12px!important; flex-wrap:wrap!important;
}
body.r2-home-view .hero .r2-mobile-hero-spacer{display:none!important;}
body.r2-home-view .hero .r2-hero-image{
  grid-column:2!important; grid-row:1!important;
  position:relative!important;
  z-index:2!important;
  width:100%!important;
  height:420px!important;
  margin:0!important;
  align-self:center!important;
  justify-self:end!important;
  top:auto!important; right:auto!important; bottom:auto!important;
  overflow:hidden!important;
  pointer-events:none!important;
  border-radius:0 24px 24px 0!important;
  opacity:.62!important;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.22) 12%,#000 34%,#000 100%)!important;
  mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.22) 12%,#000 34%,#000 100%)!important;
}
body.r2-home-view .hero .r2-hero-image img{
  width:100%!important; height:100%!important;
  object-fit:cover!important; object-position:center!important;
  display:block!important;
  filter:saturate(.84) contrast(.97)!important;
}
html.r2-dark body.r2-home-view .hero .r2-hero-image,
body.dark-mode.r2-home-view .hero .r2-hero-image,
body.dark.r2-home-view .hero .r2-hero-image,
body[data-theme="dark"].r2-home-view .hero .r2-hero-image{opacity:.46!important;}
html.r2-dark body.r2-home-view .hero .r2-hero-image img,
body.dark-mode.r2-home-view .hero .r2-hero-image img,
body.dark.r2-home-view .hero .r2-hero-image img,
body[data-theme="dark"].r2-home-view .hero .r2-hero-image img{
  filter:saturate(.72) brightness(.60) contrast(1.05)!important;
}
body.r2-home-view .hero .hero-card{display:none!important;}
@media(max-width:900px){
  body.r2-home-view .hero{
    grid-template-columns:1fr!important;
    grid-template-rows:auto auto!important;
    gap:24px!important;
    min-height:0!important;
    padding:56px 24px 42px!important;
  }
  body.r2-home-view .hero .r2-hero-copy{grid-column:1!important;grid-row:1!important;max-width:700px!important;}
  body.r2-home-view .hero .r2-hero-copy>p{font-size:17px!important;line-height:1.65!important;}
  body.r2-home-view .hero .r2-hero-image{
    grid-column:1!important;grid-row:2!important;
    width:100%!important;height:300px!important;
    border-radius:22px!important;
    -webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 30%,#000 100%)!important;
    mask-image:linear-gradient(180deg,transparent 0%,#000 30%,#000 100%)!important;
  }
}

/* Final Home spacing refinement */
body.r2-home-view .hero .r2-hero-copy>p{
  font-size:17px !important;
  line-height:1.72 !important;
  max-width:680px !important;
}
body.r2-home-view .hero .r2-hero-copy .hero-links{
  margin-top:16px !important;
  gap:12px !important;
}
body.r2-home-view .hero .r2-hero-copy .hero-links .btn{
  transform:translateY(3px);
}
@media (max-width:700px){
  body.r2-home-view .hero .r2-hero-copy>p{font-size:16px !important;}
  body.r2-home-view .hero .r2-hero-copy .hero-links{margin-top:14px !important;}
}

.r2-note-type-tabs{display:flex;gap:10px;align-items:center;margin-top:24px;flex-wrap:wrap;}
.r2-note-type-tab{appearance:none;border:1px solid #e4e2dd;background:transparent;color:#6c6f76;border-radius:999px;padding:10px 18px;font:600 13px/1 'DM Sans',Arial,sans-serif;cursor:pointer;transition:all .2s ease;}
.r2-note-type-tab:hover{border-color:#a7a9ad;color:#1d1e22;background:#faf9f7;}
.r2-note-type-tab.active{background:#1d1e22;color:#fff;border-color:#1d1e22;box-shadow:0 6px 16px rgba(29,30,34,.12);}
html.r2-dark .r2-note-type-tab{border-color:#23252a;color:#c9cacd;background:transparent;}
html.r2-dark .r2-note-type-tab:hover{background:#17181c;border-color:#6b6e74;color:#f5f4f2;}
html.r2-dark .r2-note-type-tab.active{background:#3970aa;color:#fff;border-color:#3970aa;}
@media(max-width:650px){.r2-note-type-tabs{margin-top:18px}.r2-note-type-tab{padding:9px 15px;font-size:12px;}}

/* Clear separation between Research Notes and Research Ideas */
body.r2-notes-view #publicResearchNotes{display:block!important;}
.r2-note-type-section{margin:0 0 58px;}
.r2-note-type-section:last-child{margin-bottom:0;}
.r2-note-type-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:0 0 16px;margin:0 0 24px;border-bottom:1px solid #e8e6e2;}
.r2-note-type-section-head h3{margin:4px 0 0;font:500 30px/1.15 'Playfair Display',Georgia,serif;color:#1d1e22;letter-spacing:-.015em;}
.r2-note-type-kicker{display:block;font:700 10px/1.4 'DM Sans',Arial,sans-serif;letter-spacing:.18em;color:#8d9095;text-transform:uppercase;}
.r2-note-type-count{font:11px/1.4 'DM Sans',Arial,sans-serif;color:#8f9297;letter-spacing:.08em;text-transform:uppercase;padding-bottom:3px;white-space:nowrap;}
.r2-public-topic-group{margin-bottom:34px;}
.r2-public-topic-group:last-child{margin-bottom:0;}
.r2-public-topic-heading h4{margin:0;font:500 24px/1.2 'Playfair Display',Georgia,serif;color:#1d1e22;}
html.r2-dark .r2-note-type-section-head{border-color:#1f2024!important;}
html.r2-dark .r2-note-type-section-head h3,
html.r2-dark .r2-public-topic-heading h4{color:#f5f4f2!important;}
html.r2-dark .r2-note-type-kicker,
html.r2-dark .r2-note-type-count,
html.r2-dark .r2-public-topic-heading span{color:#bcbec2!important;}
@media(max-width:650px){
  .r2-note-type-section{margin-bottom:42px;}
  .r2-note-type-section-head{align-items:flex-start;}
  .r2-note-type-section-head h3{font-size:26px;}
}

/* Home paragraph: fixed readable measure so the right edge aligns consistently. */
body.r2-home-view .hero .r2-hero-copy > p,
body.r2-home-view .hero > div:first-of-type > p{
  width:100%!important;
  max-width:760px!important;
  text-align:justify!important;
  text-justify:inter-word!important;
  text-align-last:left!important;
}
@media(max-width:850px){
  body.r2-home-view .hero .r2-hero-copy > p,
  body.r2-home-view .hero > div:first-of-type > p{
    max-width:100%!important;
    text-align:left!important;
  }
}

/* FINAL: clean Home + clearly visible ID/EN language switch */
.r2-hero-copy{max-width:900px!important;margin:0 auto!important;}
.r2-hero-copy .eyebrow{font-size:12px!important;letter-spacing:.16em!important;margin-bottom:22px!important;}
.r2-hero-copy>p{font-size:28px!important;line-height:1.58!important;max-width:900px!important;text-align:justify!important;margin:0!important;}
.r2-hero-copy .hero-links{margin-top:34px!important;display:flex!important;gap:18px!important;align-items:center!important;}
@media (max-width:760px){.r2-hero-copy>p{text-align:left!important;font-size:20px!important;line-height:1.55!important}.r2-hero-copy .hero-links{flex-wrap:wrap!important}}
.r2-lang-switch{min-width:104px!important;height:42px!important;padding:4px!important;gap:3px!important;background:#fff!important;border:1px solid #d9d6d1!important;border-radius:999px!important;box-shadow:0 4px 16px rgba(25,26,30,.12)!important;}
.r2-lang-switch button{min-width:44px!important;height:34px!important;padding:0 12px!important;border-radius:999px!important;font-size:13px!important;font-weight:800!important;letter-spacing:.06em!important;color:#6f7279!important;background:transparent!important;}
.r2-lang-switch button:hover{background:#f5f4f2!important;color:#1d1e22!important;}
.r2-lang-switch button.active{background:#1d1e22!important;color:#fff!important;box-shadow:0 3px 9px rgba(29,30,34,.28)!important;}
html.r2-dark .r2-lang-switch{background:#1b1c1e!important;border-color:#5a5d62!important;box-shadow:0 4px 16px rgba(0,0,0,.3)!important;}
html.r2-dark .r2-lang-switch button{color:#c5c7ca!important;}
html.r2-dark .r2-lang-switch button:hover{background:#17181c!important;color:#fff!important;}
html.r2-dark .r2-lang-switch button.active{background:#538ac6!important;color:#131416!important;box-shadow:0 3px 10px rgba(83,138,198,.28)!important;}

/* FINAL MOBILE HEADER: never squeeze the navigation into the logo/control row. */
@media (max-width:850px){
  .top{position:sticky!important;top:0!important;z-index:3000!important;width:100%!important;}
  .topin{
    width:100%!important;max-width:none!important;height:auto!important;min-height:0!important;
    padding:10px 12px 12px!important;margin:0!important;
    display:flex!important;flex-wrap:wrap!important;align-items:center!important;
    justify-content:flex-start!important;gap:0!important;
  }
  .brand{
    order:1!important;flex:0 0 126px!important;width:126px!important;min-width:126px!important;
    max-width:126px!important;height:44px!important;margin:0!important;padding:0!important;
    display:flex!important;align-items:center!important;overflow:hidden!important;
  }
  .brand img,.brand-logo{
    width:auto!important;max-width:126px!important;max-height:40px!important;height:auto!important;
    object-fit:contain!important;object-position:left center!important;
  }
  .r2-header-controls{
    order:2!important;margin-left:auto!important;flex:0 0 auto!important;
    display:flex!important;align-items:center!important;gap:6px!important;
  }
  .r2-lang-switch{
    min-width:88px!important;width:88px!important;height:38px!important;padding:3px!important;
    display:flex!important;align-items:center!important;justify-content:center!important;
  }
  .r2-lang-switch button{min-width:36px!important;width:36px!important;height:30px!important;padding:0!important;font-size:11px!important;}
  .r2-theme-toggle{width:68px!important;height:38px!important;}
  .r2-mobile-menu{display:none!important;}

  /* All navigation items are visible as large touch targets, in a 3+2 grid. */
  #r2-main-nav{
    order:3!important;flex:0 0 100%!important;width:100%!important;max-width:none!important;min-width:0!important;
    height:auto!important;margin:10px 0 0!important;padding:6px 0 0!important;
    display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;
    grid-auto-rows:minmax(42px,auto)!important;gap:5px!important;
    align-items:stretch!important;justify-content:stretch!important;
    overflow:visible!important;white-space:normal!important;
    border-top:1px solid rgba(234,232,229,.85)!important;
  }
  #r2-main-nav a,
  .topin nav a{
    min-width:0!important;width:auto!important;height:42px!important;min-height:42px!important;
    padding:4px 5px!important;margin:0!important;border:0!important;border-radius:9px!important;
    display:flex!important;align-items:center!important;justify-content:center!important;
    text-align:center!important;white-space:normal!important;line-height:1.15!important;
    font-size:12px!important;font-weight:700!important;color:#65686e!important;
    background:transparent!important;
    -webkit-tap-highlight-color:transparent!important;
  }
  #r2-main-nav a.active{background:#f4f3f0!important;color:#1a1b1f!important;border:1px solid #e2e0dc!important;}
  #r2-main-nav a:active{background:#f0efeb!important;}
  html.r2-dark #r2-main-nav{border-top-color:#1f2024!important;}
  html.r2-dark #r2-main-nav a{color:#c5c7ca!important;}
  html.r2-dark #r2-main-nav a.active{background:#17181c!important;color:#fff!important;border-color:#5a5d62!important;}
}

/* Very small iPhones: slightly smaller logo/controls, while keeping large nav targets. */
@media (max-width:390px){
  .brand{flex-basis:112px!important;width:112px!important;min-width:112px!important;max-width:112px!important;}
  .brand img,.brand-logo{max-width:112px!important;max-height:37px!important;}
  .r2-header-controls{gap:4px!important;}
  .r2-lang-switch{width:82px!important;min-width:82px!important;}
  .r2-theme-toggle{width:64px!important;}
  #r2-main-nav a,.topin nav a{font-size:11px!important;}
}

/* Mobile year filtering: use large tap buttons instead of the cramped iOS select popup. */
.r2-mobile-year-buttons{display:none;}
@media(max-width:850px){
  .publication-filter select,.publication-filter button,
  .project-filter select,.project-filter button{display:none!important;}
  .r2-mobile-year-buttons{
    display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;
    width:100%;margin-top:2px;
  }
  .r2-mobile-year-buttons button{
    min-height:48px;padding:8px 4px;border:1px solid #e3e1dc;border-radius:10px;
    background:#fff;color:#1f2125;font:700 13px/1.1 'DM Sans',Arial,sans-serif;
    cursor:pointer;touch-action:manipulation;
  }
  .r2-mobile-year-buttons button.active{background:#1d1e22;color:#fff;border-color:#1d1e22;}
  html.r2-dark .r2-mobile-year-buttons button{background:#18191c;color:#e8e7e3;border-color:#1f2024;}
  html.r2-dark .r2-mobile-year-buttons button.active{background:#538ac6;color:#131416;border-color:#538ac6;}
  .publication-filter,.project-filter{display:block!important;}
  .publication-filter .filter-label,.project-filter .filter-label{display:block!important;margin-bottom:8px!important;}
}

.r2-rich-editor{border:1px solid #e8e7e4;border-radius:10px;background:#fff;overflow:hidden;margin-top:7px}
.r2-rich-toolbar{display:flex;flex-wrap:wrap;gap:6px;padding:8px;border-bottom:1px solid #eeedea;background:#fbfaf8;align-items:center}
.r2-rich-toolbar button,.r2-rich-toolbar select,.r2-rich-toolbar input[type=color]{height:32px;border:1px solid #e4e2de;border-radius:7px;background:#fff;color:#202125;font-size:12px;font-weight:700;padding:0 8px;cursor:pointer}
.r2-rich-toolbar button:hover,.r2-rich-toolbar select:hover{border-color:#aeb0b4;background:#faf8f5}
.r2-rich-toolbar button[data-active="1"]{background:#1c1d21;color:#fff;border-color:#1c1d21}
.r2-rich-toolbar .r2-tool-sep{width:1px;height:24px;background:#e7e5e1;margin:0 2px}
.r2-rich-content{min-height:145px;padding:15px 16px;outline:none;font-size:14px;line-height:1.75;color:#585b60;background:#fff}
.r2-rich-content:empty:before{content:attr(data-placeholder);color:#a5a7ac;pointer-events:none}
.r2-rich-content h2{font-size:24px;line-height:1.25;color:#1d1e22;margin:18px 0 10px}
.r2-rich-content h3{font-size:19px;line-height:1.3;color:#1d1e22;margin:15px 0 8px}
.r2-rich-content blockquote{border-left:3px solid #afb1b5;padding:8px 14px;margin:12px 0;color:#74777e;background:#fbfaf8}
.r2-rich-content img{max-width:100%;height:auto;border-radius:10px;margin:10px 0;display:block}
.r2-rich-content ul,.r2-rich-content ol{padding-left:25px}
.r2-rich-help{font-size:11px;color:#888b91;margin-top:6px;display:block}
.r2-inline-image-input{display:none}
.r2-rich-label{display:flex;justify-content:space-between;align-items:center;gap:10px}
.r2-rich-label span{font-size:11px;color:#888b91;font-weight:600}

#r2SaveOverlay{position:fixed;inset:0;background:rgba(18,18,20,.42);backdrop-filter:blur(3px);display:none;align-items:center;justify-content:center;z-index:999999;padding:20px}
#r2SaveOverlay.is-open{display:flex}
.r2-save-box{width:min(420px,92vw);background:#fff;border:1px solid #e5e3df;border-radius:18px;padding:24px;box-shadow:0 24px 70px rgba(0,0,0,.22);text-align:center;color:#1d1e22}
.r2-save-spinner{width:34px;height:34px;border:4px solid #e8e7e3;border-top-color:#3b74b1;border-radius:50%;animation:r2spin .8s linear infinite;margin:0 auto 14px}
.r2-save-title{font:800 16px/1.3 'DM Sans',Arial,sans-serif;margin-bottom:5px}
.r2-save-sub{font:500 13px/1.5 'DM Sans',Arial,sans-serif;color:#7b7e85}
.r2-save-success{position:fixed;right:22px;bottom:22px;z-index:1000000;display:none;min-width:280px;max-width:calc(100vw - 44px);background:#fff;border:1px solid #cfe2d7;border-left:5px solid #2e9b63;border-radius:14px;padding:14px 16px;box-shadow:0 15px 40px rgba(25,26,30,.16);color:#183b2a}
.r2-save-success.show{display:block;animation:r2toast .25s ease}
.r2-save-success strong{display:block;font:800 14px/1.3 'DM Sans',Arial,sans-serif;margin-bottom:3px}
.r2-save-success span{font:500 12px/1.45 'DM Sans',Arial,sans-serif;color:#52705f}
html.r2-dark .r2-save-box,html.r2-dark .r2-save-success{background:#202124;color:#f6f5f2;border-color:#25262b}
html.r2-dark .r2-save-sub,html.r2-dark .r2-save-success span{color:#b8babd}
@keyframes r2spin{to{transform:rotate(360deg)}}
@keyframes r2toast{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.r2-note-type-tab{position:relative;z-index:20;cursor:pointer!important;touch-action:manipulation!important;-webkit-tap-highlight-color:rgba(59,116,177,.16);pointer-events:auto!important}
.r2cms-btn,.r2cms-tab,.r2cms-quicknav button,.r2-rich-btn,.r2-note-type-tab,.r2-lang-switch button,.r2-theme-toggle,.project-filter button,.publication-filter button,select,input,textarea,a{touch-action:manipulation}
@media(max-width:640px){#r2SaveOverlay{padding:14px}.r2-save-success{right:14px;bottom:14px;min-width:0;width:calc(100vw - 28px)}}

.pub-card{
  cursor:pointer;
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease!important;
}
.pub-card:hover{
  transform:translateY(-3px)!important;
  box-shadow:0 14px 34px rgba(27,28,31,.10)!important;
  border-color:#dddbd6!important;
}
.r2-pub-modal{
  position:fixed;
  inset:0;
  z-index:9999;
  display:none;
  align-items:center;
  justify-content:center;
  padding:28px;
  background:rgba(31,32,36,.42);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
.r2-pub-modal.is-open{display:flex}
.r2-pub-dialog{
  width:min(880px,100%);
  max-height:min(88vh,780px);
  overflow:auto;
  background:#fff;
  border:1px solid #eae8e5;
  border-radius:24px;
  box-shadow:0 28px 80px rgba(23,24,28,.22);
  position:relative;
  animation:r2PubIn .2s ease-out;
}
@keyframes r2PubIn{
  from{opacity:0;transform:translateY(12px) scale(.985)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
.r2-pub-close{
  position:absolute;
  top:16px;
  right:16px;
  width:38px;
  height:38px;
  border:1px solid #eae8e5;
  border-radius:50%;
  background:rgba(255,255,255,.94);
  color:#1d1e22;
  font-size:22px;
  line-height:1;
  cursor:pointer;
  z-index:2;
}
.r2-pub-close:hover{background:#faf9f7}
.r2-pub-content{
  display:grid;
  grid-template-columns:300px 1fr;
  min-height:390px;
}
.r2-pub-image-wrap{
  padding:28px;
  background:#fbfaf7;
  border-right:1px solid #eeedea;
  display:flex;
  align-items:center;
  justify-content:center;
}
.r2-pub-image{
  width:100%;
  max-height:330px;
  object-fit:contain;
  border-radius:12px;
  background:#fff;
  border:1px solid #eae8e5;
}
.r2-pub-info{padding:38px 42px 34px}
.r2-pub-year{
  font-size:11px;
  font-weight:800;
  letter-spacing:.12em;
  color:#8c8f94;
  text-transform:uppercase;
}
.r2-pub-title{
  font-family:'Playfair Display',serif;
  font-size:30px;
  line-height:1.18;
  font-weight:500;
  color:#1d1e22;
  margin:8px 0 16px;
}
.r2-pub-meta{
  display:grid;
  gap:10px;
  margin:0 0 18px;
}
.r2-pub-meta-row{
  padding-bottom:10px;
  border-bottom:1px solid #f3f1ee;
}
.r2-pub-label{
  display:block;
  font-size:10px;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:#8c8f94;
  margin-bottom:3px;
}
.r2-pub-value{
  font-size:13.5px;
  line-height:1.55;
  color:#66696e;
}
.r2-pub-result{
  font-size:14px;
  line-height:1.7;
  color:#74777d;
  margin:0 0 22px;
}
.r2-pub-actions{display:flex;gap:10px;flex-wrap:wrap}
.r2-pub-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:0 17px;
  border-radius:10px;
  border:1px solid #e5e3df;
  background:#fff;
  color:#1d1e22;
  font-size:13px;
  font-weight:700;
}
.r2-pub-btn.primary{
  background:#1d1e22;
  color:#fff;
  border-color:#1d1e22;
}
@media(max-width:720px){
  .r2-pub-modal{padding:14px}
  .r2-pub-content{grid-template-columns:1fr}
  .r2-pub-image-wrap{padding:22px;border-right:0;border-bottom:1px solid #eeedea}
  .r2-pub-image{max-height:220px}
  .r2-pub-info{padding:28px 24px 26px}
  .r2-pub-title{font-size:25px}
}

/* V26 — reliable Admin access + long-form Notes, Projects CMS, About Me CMS */
#r2n-summary,.r2cms-long-summary{min-height:220px!important;line-height:1.7!important;}
#r2n-content,.r2cms-blog-editor{min-height:620px!important;line-height:1.8!important;font-size:14px!important;}
.r2cms-about-editor{min-height:330px!important;line-height:1.8!important;}
.r2cms-list-editor{min-height:220px!important;line-height:1.75!important;white-space:pre-wrap;}
.r2cms-long-field{margin-top:20px;}
.r2-dynamic-projects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;}
.r2-dynamic-project{border:1px solid var(--line);border-radius:20px;background:#fff;overflow:hidden;cursor:pointer;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;}
.r2-dynamic-project:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(27,28,31,.10);border-color:#dddbd6;}
.r2-dynamic-project>img{width:100%;height:210px;object-fit:cover;background:#faf9f6;display:block;}
.r2-dynamic-project-body{padding:22px 24px 24px;}
.r2-dynamic-project h3{font-family:'Playfair Display',Georgia,serif;font-size:24px;line-height:1.22;font-weight:500;color:#1d1e22;margin:0 0 10px;}
.r2-dynamic-project p{font-size:14px;line-height:1.7;color:#76797f;margin:0 0 14px;}
.r2-project-tags,.r2-note-tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:13px;}
.r2-project-tags span,.r2-note-tags span{font-size:10px;letter-spacing:.04em;color:#72757c;border:1px solid #e7e5e2;border-radius:999px;padding:5px 8px;background:#fcfbf9;}
.r2-project-read{display:inline-block;margin-top:14px;font-size:12px;font-weight:700;color:#1d1e22;}
.r2-dynamic-about{padding-bottom:20px;}
.r2-dynamic-about-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:70px;padding-bottom:34px;}
.r2-dynamic-about h2{font-family:'Playfair Display',Georgia,serif;font-size:34px;line-height:1.15;font-weight:500;color:#1d1e22;margin:7px 0 18px;}
.r2-about-description{font-size:15px;line-height:1.85;color:#76797f;max-width:720px;}
.r2-dynamic-about-side{padding-top:3px;}
.r2-about-dynamic-title{font-size:11px;letter-spacing:.13em;font-weight:800;color:#787c83;margin-bottom:15px;}
.r2-dynamic-line{padding:0 0 17px 0;margin:0 0 17px;border-bottom:1px solid #eeedea;}
.r2-dynamic-line strong{display:block;color:#1d1e22;font-size:14px;margin-bottom:4px;}
.r2-dynamic-line span{display:block;color:#76797f;font-size:13px;line-height:1.6;}
.r2-project-modal{position:fixed;inset:0;z-index:10000;display:none;align-items:center;justify-content:center;padding:24px;background:rgba(31,32,36,.42);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);}
.r2-project-modal.is-open{display:flex;}
.r2-project-modal-backdrop{position:absolute;inset:0;}
.r2-project-dialog{position:relative;z-index:1;width:min(920px,100%);max-height:88vh;overflow:auto;background:#fff;border:1px solid #eae8e5;border-radius:24px;box-shadow:0 28px 80px rgba(23,24,28,.22);padding:38px 44px 44px;}
.r2-project-close{position:absolute;top:13px;right:15px;width:38px;height:38px;border:1px solid #eae8e5;border-radius:50%;background:#fff;color:#1d1e22;font-size:22px;cursor:pointer;}
.r2-project-modal-image{width:100%;max-height:360px;object-fit:contain;border-radius:12px;background:#fbfaf7;border:1px solid #eae9e6;margin-bottom:24px;}
.r2-project-modal-meta{font-size:11px;font-weight:800;letter-spacing:.12em;color:#8c8f94;text-transform:uppercase;}
.r2-project-dialog h2{font-family:'Playfair Display',Georgia,serif;font-size:34px;line-height:1.2;color:#1d1e22;font-weight:500;margin:8px 0 16px;}
.r2-project-modal-summary{font-size:15px;line-height:1.8;color:#676a70;margin:18px 0;}
.r2-project-modal-body{font-size:15px;line-height:1.85;color:#686b71;}
.r2-project-modal-body p{margin:0 0 18px;}
.r2-project-btn{display:inline-flex;margin-top:22px;padding:11px 16px;border-radius:10px;background:#1d1e22;color:#fff;font-size:13px;font-weight:700;}
@media(max-width:900px){.r2-dynamic-projects{grid-template-columns:1fr 1fr}.r2-dynamic-about-grid{grid-template-columns:1fr;gap:28px}}
@media(max-width:640px){.r2-dynamic-projects{grid-template-columns:1fr}.r2-dynamic-about h2{font-size:29px}.r2-project-dialog{padding:32px 22px 28px}.r2-project-dialog h2{font-size:28px}}

.r2-publication-filter-hidden{display:none!important}

/* Language + theme controls */
.r2-header-controls{
  display:flex;
  align-items:center;
  gap:9px;
  margin-left:18px;
  flex:0 0 auto;
}
.r2-lang-switch{
  display:inline-flex;
  align-items:center;
  gap:2px;
  padding:4px;
  min-width:94px;
  justify-content:space-between;
  border:1px solid #e4e2de;
  border-radius:999px;
  background:#ffffff;
  box-shadow:0 3px 14px rgba(26,27,31,.08);
}
.r2-lang-switch button{
  min-width:39px;
  height:31px;
  border:0;
  background:transparent;
  color:#787c83;
  font:700 12px/1 'DM Sans',Arial,sans-serif;
  letter-spacing:.05em;
  padding:0 10px;
  border-radius:999px;
  cursor:pointer;
  transition:background .2s ease,color .2s ease,box-shadow .2s ease,transform .2s ease;
}
.r2-lang-switch button:hover{
  color:#1c1d21;
}
.r2-lang-switch button.active{
  background:#1d1e22 !important;
  color:#ffffff !important;
  box-shadow:0 2px 7px rgba(29,30,34,.22);
}
html.r2-dark .r2-lang-switch{
  background:#202124;
  border-color:#24262b;
  box-shadow:0 3px 14px rgba(0,0,0,.22);
}
html.r2-dark .r2-lang-switch button{color:#b9bbbf !important}
html.r2-dark .r2-lang-switch button:hover{color:#ffffff !important}
html.r2-dark .r2-lang-switch button.active{
  background:#538ac6 !important;
  color:#1f2022 !important;
  box-shadow:0 2px 8px rgba(0,0,0,.24);
}
.r2-theme-toggle{
  width:78px;height:42px;
  padding:3px;
  display:inline-flex;align-items:center;
  justify-content:flex-start;
  position:relative;
  border:1px solid #e7e5e1;
  border-radius:999px;
  background:#e7e5e1;
  color:#7c8087;
  cursor:pointer;
  line-height:1;
  box-shadow:0 3px 12px rgba(26,27,31,.08), inset 0 1px 2px rgba(255,255,255,.7);
  transition:background .25s ease,border-color .25s ease,box-shadow .25s ease;
}
.r2-theme-toggle:hover{transform:translateY(-1px)}
.r2-theme-track{
  position:absolute;inset:3px;
  display:flex;align-items:center;justify-content:space-between;
  padding:0 7px;
  pointer-events:none;
}
.r2-theme-track svg{width:18px;height:18px;display:block;transition:opacity .25s ease,filter .25s ease}
.r2-theme-sun{color:#f4a000;opacity:1}
.r2-theme-moon{color:#8b8e94;opacity:.42}
.r2-theme-knob{
  position:relative;z-index:2;
  width:34px;height:34px;
  flex:0 0 34px;
  display:flex;align-items:center;justify-content:center;
  border-radius:50%;
  background:#fff;
  color:#f4a000;
  box-shadow:0 3px 8px rgba(24,25,28,.18);
  transform:translateX(0);
  transition:transform .25s ease,color .25s ease,background .25s ease,box-shadow .25s ease;
}
.r2-theme-knob svg{width:20px;height:20px;display:block}
html.r2-dark .r2-theme-toggle{
  background:#84878e;
  border-color:#999ca1;
  box-shadow:0 3px 12px rgba(0,0,0,.2),inset 0 1px 2px rgba(255,255,255,.18);
  justify-content:flex-end;
}
html.r2-dark .r2-theme-knob{
  transform:translateX(0);
  color:#84878e;
}
html.r2-dark .r2-theme-sun{opacity:.38;color:#ecebe8}
html.r2-dark .r2-theme-moon{opacity:1;color:#538ac6}
html.r2-dark .r2-theme-knob{background:#fff}
.r2-theme-toggle:focus-visible{outline:2px solid #94979c;outline-offset:3px}

/* DARK MODE */
html.r2-dark body{
  --ink:#f2f1ee;
  --ink2:#dbd8d3;
  --muted:#b7b9bc;
  --line:#1f2024;
  --soft:#222327;
  --white:#17181a;
  --accent:#abadb1;
  background:#151618;
  color:#f2f1ee;
}
html.r2-dark .top{
  background:rgba(21,22,24,.92);
  border-bottom-color:#1a1b1f;
}
html.r2-dark nav{color:#b7b9bc}
html.r2-dark nav a:hover,html.r2-dark nav a.active{color:#fff;border-bottom-color:#e8e7e4}
html.r2-dark .r2-lang-switch,
html.r2-dark .r2-theme-toggle{
  background:#222327;
  border-color:#1f2024;
  color:#f2f1ee;
}
html.r2-dark .hero-card,
html.r2-dark .feature,
html.r2-dark .pub-card,
html.r2-dark .profile-card,
html.r2-dark .r2-about-box,
html.r2-dark .r2-info-card,
html.r2-dark .r2-about-contact,
html.r2-dark .r2-contact-item,
html.r2-dark .r2-profile-item{
  background:#1f2022!important;
  border-color:#1f2024!important;
  box-shadow:0 14px 38px rgba(0,0,0,.18)!important;
}
html.r2-dark .hero-card{background:linear-gradient(145deg,#242528,#1d1e21)!important}
html.r2-dark .hero-card p,
html.r2-dark .section-intro,
html.r2-dark .about p,
html.r2-dark .feature p,
html.r2-dark .authors,
html.r2-dark .venue,
html.r2-dark .result,
html.r2-dark .pub-head p,
html.r2-dark .r2-about-copy p,
html.r2-dark .r2-profile-item span,
html.r2-dark .r2-contact-item small{color:#b7b9bc!important}
html.r2-dark .band,
html.r2-dark .about{
  background:#1a1b1d!important;
  border-color:#1a1b1f!important;
}
html.r2-dark .feature img,
html.r2-dark .pub-thumb{background:#17181a!important;border-color:#1f2024!important}
html.r2-dark .tag{background:#17181c;border-color:#25262b;color:#d3d0ca}
html.r2-dark .btn{background:#1f2022;color:#f2f1ee;border-color:#25262b}
html.r2-dark .btn.primary{background:#f2f1ee;color:#1d1e21;border-color:#f2f1ee}
html.r2-dark .read,
html.r2-dark .feature a{color:#bcbec2}
html.r2-dark .r2-about-side-title,
html.r2-dark .r2-about-box strong,
html.r2-dark .r2-contact-item strong,
html.r2-dark .r2-profile-item strong{color:#f1efeb!important}
html.r2-dark .r2-about-divider,
html.r2-dark .r2-section-rule{background:#1f2024!important}
html.r2-dark .r2-interest-tags span{background:#17181c!important;border-color:#212226!important;color:#d9d6d0!important}
html.r2-dark .r2-network-bg{opacity:.38}
html.r2-dark .r2-home-access-strip{background:#1a1b1d!important;border-color:#1d1e21!important}
html.r2-dark .r2-access-label{color:#c4c6c9!important}
html.r2-dark .r2-pagination button{background:#1f2022!important;color:#c8c9cc!important;border-color:#1f2024!important}
html.r2-dark .r2-pagination button.is-active{background:#f2f1ee!important;color:#1d1e21!important}
html.r2-dark input,html.r2-dark select,html.r2-dark textarea{
  background:#18191c!important;color:#f1f0ec!important;border-color:#1f2024!important;
}
html.r2-dark option{background:#18191c;color:#f1f0ec}
html.r2-dark .notes-empty{color:#adafb4!important}
html.r2-dark footer{background:#131315!important;color:#adafb4!important;border-color:#1a1b1f!important}
html.r2-dark .r2-mobile-menu span{background:#e8e7e3!important}

@media(max-width:850px){
  .r2-header-controls{
    margin-left:0;
    gap:6px;
    flex:0 0 auto;
  }
  .r2-lang-switch{min-width:88px;padding:3px}.r2-lang-switch button{min-width:36px;height:29px;padding:0 8px;font-size:11px}
  .r2-theme-toggle{width:70px;height:38px}
  .r2-theme-knob{width:30px;height:30px;flex-basis:30px}
  .r2-theme-track{padding:0 6px}
  .r2-theme-track svg{width:16px;height:16px}
  .topin{gap:9px!important}
  .brand{flex-basis:122px!important;width:122px!important;min-width:122px!important}
  .brand img,.brand-logo{max-width:122px!important}
}

/* Final dark-mode correction: Home hero + logo */
html.r2-dark body.r2-home-view .hero{
  background:#121315!important;
  color:#f2f1ee!important;
}
html.r2-dark body.r2-home-view .hero::before{
  background:linear-gradient(90deg,rgba(15,15,16,.98) 0%,rgba(18,18,20,.94) 48%,rgba(21,22,24,.82) 100%)!important;
  z-index:1!important;
}
html.r2-dark body.r2-home-view .r2-network-bg{
  opacity:.24!important;
  z-index:0!important;
}
html.r2-dark body.r2-home-view .hero>div:not(.r2-network-bg),
html.r2-dark body.r2-home-view .hero>.hero-card{
  z-index:2!important;
}
html.r2-dark body.r2-home-view .hero>div:not(.r2-network-bg)>p{
  color:#c6c7ca!important;
}
html.r2-dark body.r2-home-view .hero-card{
  background:rgba(31,32,34,.88)!important;
  border-color:#202126!important;
  box-shadow:0 22px 60px rgba(0,0,0,.28)!important;
}
/* Transparent dark logo variant: no white rectangle in dark mode. */
html.r2-dark .brand-logo{
  background:transparent!important;
}
.brand-logo{
  background:transparent!important;
}

/* FINAL DARK MODE: public Research Notes, Projects, About and their cards */
html.r2-dark body.r2-notes-view,
html.r2-dark body.r2-projects-view,
html.r2-dark body.r2-about-view,
html.r2-dark body.r2-publications-view{
  background:#121315!important;
  color:#f2f1ee!important;
}

/* Research Notes page */
html.r2-dark body.r2-notes-view .notes-section{
  background:#121315!important;
  border-color:#1a1b1f!important;
}
html.r2-dark body.r2-notes-view .notes-head h2,
html.r2-dark body.r2-notes-view .notes-head p,
html.r2-dark body.r2-notes-view .section-kicker,
html.r2-dark body.r2-notes-view .notes-head .section-kicker{
  color:#f2f1ee!important;
}
html.r2-dark body.r2-notes-view .notes-head p{color:#b7b9bc!important;}
html.r2-dark body.r2-notes-view .note-card,
html.r2-dark body.r2-notes-view .r2-public-note-card{
  background:#1f2022!important;
  border-color:#1f2024!important;
  color:#f2f1ee!important;
  box-shadow:0 12px 34px rgba(0,0,0,.22)!important;
}
html.r2-dark body.r2-notes-view .r2-public-note-card .note-card-inner{background:#1f2022!important;}
html.r2-dark body.r2-notes-view .note-card h3,
html.r2-dark body.r2-notes-view .r2-public-note-card h3{color:#f5f4f2!important;}
html.r2-dark body.r2-notes-view .note-card p,
html.r2-dark body.r2-notes-view .r2-public-note-card p{color:#b7b9bc!important;}
html.r2-dark body.r2-notes-view .note-meta{color:#bcbec2!important;}
html.r2-dark body.r2-notes-view .r2-note-cover{background:#17181a!important;}
html.r2-dark body.r2-notes-view .r2-note-tags span,
html.r2-dark body.r2-notes-view .r2-project-tags span{background:#17181c!important;border-color:#23252a!important;color:#d5d2cc!important;}
html.r2-dark body.r2-notes-view .r2-note-read,
html.r2-dark body.r2-notes-view .read{color:#bcbec2!important;}

/* Projects page */
html.r2-dark body.r2-projects-view .projects-section{
  background:#121315!important;
  border-color:#1a1b1f!important;
}
html.r2-dark body.r2-projects-view .projects-head h2,
html.r2-dark body.r2-projects-view .projects-head p,
html.r2-dark body.r2-projects-view .project-filter label{
  color:#f2f1ee!important;
}
html.r2-dark body.r2-projects-view .projects-head p{color:#b7b9bc!important;}
html.r2-dark body.r2-projects-view .lab-project,
html.r2-dark body.r2-projects-view .r2-dynamic-project{
  background:#1f2022!important;
  border-color:#1f2024!important;
  box-shadow:0 12px 34px rgba(0,0,0,.22)!important;
  color:#f2f1ee!important;
}
html.r2-dark body.r2-projects-view .project-visual,
html.r2-dark body.r2-projects-view .r2-dynamic-project>img{
  background:#17181a!important;
  border-color:#1f2024!important;
}
html.r2-dark body.r2-projects-view .lab-project h3,
html.r2-dark body.r2-projects-view .r2-dynamic-project h3{color:#f5f4f2!important;}
html.r2-dark body.r2-projects-view .lab-project p,
html.r2-dark body.r2-projects-view .r2-dynamic-project p{color:#b7b9bc!important;}
html.r2-dark body.r2-projects-view .project-meta{color:#bcbec2!important;}
html.r2-dark body.r2-projects-view .r2-project-tags span{background:#17181c!important;border-color:#23252a!important;color:#d5d2cc!important;}
html.r2-dark body.r2-projects-view .r2-project-read{color:#bcbec2!important;}
html.r2-dark body.r2-projects-view .project-filter select,
html.r2-dark body.r2-projects-view .project-filter button{
  background:#1f2022!important;color:#f2f1ee!important;border-color:#1f2024!important;
}
html.r2-dark body.r2-projects-view .project-filter button:hover{background:#17181c!important;}

/* About page */
html.r2-dark body.r2-about-view #about,
html.r2-dark body.r2-about-view .r2-about-static{background:#121315!important;color:#f2f1ee!important;}
html.r2-dark body.r2-about-view .r2-info-card,
html.r2-dark body.r2-about-view .profile-card,
html.r2-dark body.r2-about-view .edu-item,
html.r2-dark body.r2-about-view .lab-project{
  background:#1f2022!important;border-color:#1f2024!important;color:#f2f1ee!important;
}
html.r2-dark body.r2-about-view h2,
html.r2-dark body.r2-about-view h3,
html.r2-dark body.r2-about-view .profile-name{color:#f5f4f2!important;}
html.r2-dark body.r2-about-view p,
html.r2-dark body.r2-about-view span,
html.r2-dark body.r2-about-view .profile-role{color:#b7b9bc!important;}

/* Notes / project detail modals */
html.r2-dark .r2-note-modal-dialog,
html.r2-dark .r2-project-dialog,
html.r2-dark .r2-publication-dialog,
html.r2-dark .r2-pub-dialog{
  background:#1a1b1d!important;
  color:#f2f1ee!important;
  border-color:#1f2024!important;
  box-shadow:0 28px 90px rgba(0,0,0,.55)!important;
}
html.r2-dark .r2-note-modal-close,
html.r2-dark .r2-project-close{background:#1f2022!important;color:#f2f1ee!important;border-color:#1f2024!important;}
html.r2-dark .r2-note-modal-body,
html.r2-dark .r2-project-modal-body,
html.r2-dark .r2-project-modal-summary{color:#c3c5c8!important;}
html.r2-dark .r2-note-modal-body h2,
html.r2-dark .r2-note-modal-body h3,
html.r2-dark .r2-project-dialog h2{color:#f5f4f2!important;}
html.r2-dark .r2-note-modal-body blockquote{background:#17181c!important;border-color:#6c6f74!important;color:#d8d5d0!important;}
html.r2-dark .r2-note-type{background:#17181c!important;color:#d5d2cb!important;}
html.r2-dark .r2-project-modal-image{background:#17181a!important;border-color:#1f2024!important;}
html.r2-dark .r2-project-modal-meta{color:#bcbec2!important;}
html.r2-dark .r2-project-btn{background:#f2f1ee!important;color:#1d1e21!important;}

/* Any white full-page wrappers that otherwise override dark mode */
html.r2-dark body.r2-notes-view main,
html.r2-dark body.r2-projects-view main,
html.r2-dark body.r2-about-view main,
html.r2-dark body.r2-publications-view main,
html.r2-dark body.r2-notes-view .notes-section > *,
html.r2-dark body.r2-projects-view .projects-section > *{color:inherit;}

/* Final Home composition: full-width hero, workspace image anchored on the RIGHT */
body.r2-home-view .hero{
  width:100vw!important;
  max-width:none!important;
  margin-left:calc(50% - 50vw)!important;
  margin-right:calc(50% - 50vw)!important;
  position:relative!important;
  overflow:hidden!important;
  min-height:500px!important;
  padding:76px max(26px,calc((100vw - 1180px)/2 + 26px)) 64px!important;
  display:block!important;
  background:#fcfbf9!important;
}
body.r2-home-view .hero .r2-network-bg{position:absolute!important;inset:0!important;z-index:0!important;}
body.r2-home-view .hero .r2-hero-copy{
  position:relative!important;
  z-index:4!important;
  width:min(52vw,650px)!important;
  max-width:650px!important;
  margin:0!important;
  padding-top:42px!important;
}
body.r2-home-view .hero .r2-hero-copy .eyebrow{
  font-size:10px!important;
  letter-spacing:.15em!important;
  margin-bottom:13px!important;
}
body.r2-home-view .hero .r2-hero-copy>p{
  font-size:18px!important;
  line-height:1.62!important;
  max-width:620px!important;
  margin:0 0 24px!important;
}
body.r2-home-view .r2-hero-image{
  position:absolute!important;
  z-index:2!important;
  left:auto!important;
  right:0!important;
  top:0!important;
  width:55vw!important;
  max-width:900px!important;
  height:100%!important;
  opacity:.48!important;
  overflow:hidden!important;
  pointer-events:none!important;
  mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.18) 15%,#000 36%,#000 100%)!important;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.18) 15%,#000 36%,#000 100%)!important;
}
body.r2-home-view .r2-hero-image img{
  width:100%!important;height:100%!important;object-fit:cover!important;object-position:center!important;display:block!important;
  filter:saturate(.82) contrast(.97)!important;
}
html.r2-dark body.r2-home-view .hero,
body.dark-mode.r2-home-view .hero,
body.dark.r2-home-view .hero,
body[data-theme="dark"].r2-home-view .hero{background:#141517!important;}
html.r2-dark body.r2-home-view .hero::after,
body.dark-mode.r2-home-view .hero::after,
body.dark.r2-home-view .hero::after,
body[data-theme="dark"].r2-home-view .hero::after{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(90deg,rgba(20,21,23,.97) 0%,rgba(20,21,23,.84) 43%,rgba(20,21,23,.32) 72%,rgba(20,21,23,.18) 100%);
}
html.r2-dark body.r2-home-view .r2-hero-image,
body.dark-mode.r2-home-view .r2-hero-image,
body.dark.r2-home-view .r2-hero-image,
body[data-theme="dark"].r2-home-view .r2-hero-image{opacity:.34!important;}
html.r2-dark body.r2-home-view .r2-hero-image img,
body.dark-mode.r2-home-view .r2-hero-image img,
body.dark.r2-home-view .r2-hero-image img,
body[data-theme="dark"].r2-home-view .r2-hero-image img{filter:saturate(.72) brightness(.58) contrast(1.05)!important;}
@media(max-width:850px){
  body.r2-home-view .hero{width:100%!important;margin-left:0!important;margin-right:0!important;min-height:560px!important;padding:58px 26px 44px!important;}
  body.r2-home-view .hero .r2-hero-copy{width:100%!important;max-width:680px!important;padding-top:0!important;}
  body.r2-home-view .r2-hero-image{width:100%!important;height:58%!important;top:auto!important;bottom:0!important;opacity:.24!important;mask-image:linear-gradient(180deg,transparent 0%,#000 55%,#000 100%)!important;-webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 55%,#000 100%)!important;}
}

/* Mobile header: keep logo + language/theme on first row and put all navigation on a clear second row. */
@media (max-width:850px){
  .topin{
    height:auto!important;
    min-height:0!important;
    padding:9px 14px 0!important;
    display:flex!important;
    flex-wrap:wrap!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:0!important;
  }
  .brand{
    order:1!important;
    flex:0 0 118px!important;
    width:118px!important;
    min-width:118px!important;
    max-width:118px!important;
    height:44px!important;
  }
  .brand img,.brand-logo{
    width:auto!important;
    max-width:118px!important;
    max-height:38px!important;
  }
  .r2-header-controls{
    order:2!important;
    margin-left:auto!important;
    flex:0 0 auto!important;
    gap:6px!important;
  }
  .r2-lang-switch{min-width:86px!important}
  .r2-theme-toggle{width:68px!important;height:38px!important}
  #r2-main-nav{
    order:3!important;
    flex:0 0 100%!important;
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    height:48px!important;
    margin:8px 0 0!important;
    padding:0 2px!important;
    gap:0!important;
    display:flex!important;
    align-items:stretch!important;
    justify-content:space-between!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    border-top:1px solid rgba(234,232,229,.8)!important;
    -webkit-overflow-scrolling:touch!important;
  }
  #r2-main-nav a{
    flex:0 0 auto!important;
    min-width:max-content!important;
    min-height:48px!important;
    height:48px!important;
    padding:0 10px 2px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    font-size:12px!important;
    line-height:1!important;
    font-weight:700!important;
  }
  #r2-main-nav a:first-child{padding-left:8px!important}
  #r2-main-nav a:last-child{padding-right:8px!important}
  html.r2-dark #r2-main-nav{border-top-color:#1a1b1f!important}

  /* Native iPhone picker is more reliable than a custom CSS arrow. */
  .publication-filter select,.project-filter select{
    appearance:auto!important;
    -webkit-appearance:menulist!important;
    background:#fff!important;
    padding:0 14px!important;
    min-height:52px!important;
    height:52px!important;
    touch-action:manipulation!important;
    cursor:pointer!important;
    position:relative!important;
    z-index:5!important;
  }
  .publication-filter button,.project-filter button{
    min-height:50px!important;
    height:50px!important;
    touch-action:manipulation!important;
  }
  html.r2-dark .publication-filter select,html.r2-dark .project-filter select{
    background:#18191c!important;
    color:#f1f0ec!important;
  }
}

.r2-public-note-card.note-card{font-family:inherit!important;border:1px solid var(--line)!important;border-radius:18px!important;background:#fff!important;min-height:170px!important;padding:0!important;overflow:hidden!important;}
.r2-public-note-card .note-card-inner{font-family:inherit!important;padding:22px 24px 24px!important;}
.r2-public-note-card .note-meta{font-family:inherit!important;font-size:11px!important;line-height:1.4!important;letter-spacing:.12em!important;text-transform:uppercase!important;color:#8c8f94!important;font-weight:700!important;margin:0 0 13px!important;}
.r2-public-note-card h3{font-family:'Playfair Display',Georgia,serif!important;font-size:22px!important;font-weight:500!important;line-height:1.2!important;letter-spacing:0!important;color:#1d1e22!important;margin:0 0 10px!important;}
.r2-public-note-card p{font-family:inherit!important;font-size:14px!important;line-height:1.65!important;color:#76797f!important;margin:0!important;}
.r2-note-cover{width:100%!important;aspect-ratio:16/8!important;overflow:hidden!important;background:#f9f8f4!important;}
.r2-note-cover img{width:100%!important;height:100%!important;object-fit:cover!important;display:block!important;}
.r2-password-wrap{position:relative;display:flex;align-items:center;}
.r2-password-wrap input{width:100%!important;padding-right:48px!important;}
.r2-password-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:34px;height:34px;border:0;background:transparent;color:#72757b;cursor:pointer;border-radius:8px;font-size:17px;display:flex;align-items:center;justify-content:center;}
.r2-password-toggle:hover{background:#f5f4f1;}
.r2-upload-help{display:block;margin-top:7px;font-size:11px;line-height:1.5;color:#8c8f94;}
.r2-upload-preview{margin-top:10px;display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap;}
.r2-upload-preview img{display:block;width:150px;height:95px;object-fit:cover;border:1px solid #e8e6e2;border-radius:9px;background:#fbfaf8;}
.r2-upload-preview small{display:block;color:#8c8f94;font-size:11px;line-height:1.5;max-width:250px;padding-top:5px;}
.r2cms-field input[type=file]{padding:9px 10px!important;background:#fff!important;cursor:pointer;}
@media(max-width:640px){.r2-upload-preview img{width:120px;height:78px;}}

.r2-pagination{position:relative!important;z-index:20!important;pointer-events:auto!important;}
.r2-pagination button{pointer-events:auto!important;}

/* Home navigation cards / CTA links */
.hero-links{display:flex!important;gap:12px;flex-wrap:wrap;margin-top:4px}
.hero-links .btn{cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}
.hero-links .btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(26,27,31,.10)}
.hero-links .btn span{margin-left:7px}
.r2-home-access-strip .r2-access-item{position:relative;display:flex;align-items:center;gap:16px;text-decoration:none;color:inherit;cursor:pointer;transition:background .18s ease,transform .18s ease}
.r2-home-access-strip .r2-access-item:hover{background:rgba(126,129,136,.06);transform:translateY(-1px)}
.r2-access-arrow{margin-left:auto;font-size:22px;line-height:1;color:var(--ink2);transition:transform .18s ease}
.r2-home-access-strip .r2-access-item:hover .r2-access-arrow{transform:translateX(4px)}
@media(max-width:850px){.hero-links{margin-bottom:4px}.r2-access-arrow{margin-left:auto}}
html.r2-dark .hero-links .btn{background:#212225!important;border-color:#23252a!important;color:#f0efeb!important}
html.r2-dark .hero-links .btn.primary{background:#3569a0!important;border-color:#3569a0!important;color:#fff!important}
html.r2-dark .r2-home-access-strip .r2-access-item:hover{background:rgba(83,138,198,.08)}
html.r2-dark .r2-access-arrow{color:#e0ddd9!important}

/* Final Home hero redesign: compact, balanced, no headline */
body.r2-home-view .hero{
  min-height:430px!important;
  padding-top:72px!important;
  padding-bottom:58px!important;
  grid-template-columns:minmax(0,1.08fr) minmax(390px,.72fr)!important;
  gap:64px!important;
  align-items:center!important;
}
body.r2-home-view .hero > div:first-of-type{
  max-width:690px!important;
  align-self:center!important;
}
body.r2-home-view .hero h1{
  display:none!important;
}
body.r2-home-view .hero > div:first-of-type > .eyebrow{
  margin-bottom:16px!important;
  font-size:12px!important;
  letter-spacing:.18em!important;
}
body.r2-home-view .hero > div:first-of-type > p{
  max-width:680px!important;
  font-size:21px!important;
  line-height:1.62!important;
  margin:0 0 27px!important;
  color:#73767d!important;
}
body.r2-home-view .hero-links{
  display:flex!important;
  gap:12px!important;
  flex-wrap:wrap!important;
}
body.r2-home-view .hero-links .btn{
  min-height:46px!important;
  padding:12px 20px!important;
  border-radius:12px!important;
  font-size:13px!important;
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease!important;
}
body.r2-home-view .hero-links .btn:hover{
  transform:translateY(-2px)!important;
  box-shadow:0 9px 22px rgba(26,27,31,.10)!important;
}
body.r2-home-view .hero-links .btn.primary{
  background:#1a1b1f!important;
  color:#fff!important;
  border-color:#1a1b1f!important;
}
body.r2-home-view .hero-links .btn:not(.primary){
  background:rgba(255,255,255,.78)!important;
  color:#1a1b1f!important;
  border-color:#dfddd8!important;
}
body.r2-home-view .hero-card{
  max-width:470px!important;
  width:100%!important;
  justify-self:end!important;
  padding:32px!important;
  border-radius:25px!important;
}
body.r2-home-view .hero-card h3{
  font-size:28px!important;
  margin-bottom:13px!important;
}
body.r2-home-view .hero-card p{
  font-size:14px!important;
  line-height:1.72!important;
  margin-bottom:19px!important;
}
body.r2-home-view .r2-home-access-strip{
  min-height:96px!important;
}
body.r2-home-view .r2-access-item{
  min-height:96px!important;
  padding:18px 24px!important;
}

/* Dark mode */
body.dark-mode.r2-home-view .hero > div:first-of-type > p,
body.dark.r2-home-view .hero > div:first-of-type > p,
body[data-theme="dark"].r2-home-view .hero > div:first-of-type > p{
  color:#d6d3ce!important;
}
body.dark-mode.r2-home-view .hero-links .btn:not(.primary),
body.dark.r2-home-view .hero-links .btn:not(.primary),
body[data-theme="dark"].r2-home-view .hero-links .btn:not(.primary){
  background:rgba(28,29,31,.72)!important;
  color:#f4f2ef!important;
  border-color:#24252a!important;
}
body.dark-mode.r2-home-view .hero-links .btn.primary,
body.dark.r2-home-view .hero-links .btn.primary,
body[data-theme="dark"].r2-home-view .hero-links .btn.primary{
  background:#437fc0!important;
  border-color:#437fc0!important;
  color:#fff!important;
}

@media(max-width:850px){
  body.r2-home-view .hero{
    min-height:0!important;
    padding:58px 26px 48px!important;
    grid-template-columns:1fr!important;
    gap:38px!important;
  }
  body.r2-home-view .hero > div:first-of-type > p{
    font-size:18px!important;
    line-height:1.65!important;
  }
  body.r2-home-view .hero-card{
    max-width:none!important;
    justify-self:stretch!important;
  }
}

/* CLEAN HOME — no hero photo/card, spacious and balanced */
body.r2-home-view .hero{
  display:block!important;
  min-height:0!important;
  max-width:none!important;
  padding:108px max(28px,calc((100vw - 1180px)/2 + 28px)) 92px!important;
  background:#fcfbf9!important;
  position:relative!important;
  overflow:hidden!important;
}
body.r2-home-view .hero::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  z-index:0!important;
  pointer-events:none!important;
  background:
    radial-gradient(circle at 86% 20%,rgba(227,225,220,.28),transparent 25%),
    radial-gradient(circle at 12% 86%,rgba(236,234,231,.22),transparent 28%)!important;
}
body.r2-home-view .hero .r2-network-bg,
body.r2-home-view .hero .r2-hero-image,
body.r2-home-view .hero .r2-mobile-hero-spacer,
body.r2-home-view .hero .hero-card{
  display:none!important;
}
body.r2-home-view .hero .r2-hero-copy,
body.r2-home-view .hero > div:first-of-type{
  position:relative!important;
  z-index:2!important;
  width:100%!important;
  max-width:900px!important;
  margin:0 auto!important;
  text-align:left!important;
}
body.r2-home-view .hero h1{display:none!important;}
body.r2-home-view .hero .eyebrow{
  display:block!important;
  margin:0 0 24px!important;
  font-size:11px!important;
  line-height:1.4!important;
  letter-spacing:.20em!important;
  color:#7e8188!important;
}
body.r2-home-view .hero .r2-hero-copy > p,
body.r2-home-view .hero > div:first-of-type > p{
  max-width:900px!important;
  margin:0 0 34px!important;
  font-size:23px!important;
  line-height:1.78!important;
  color:#73767d!important;
  text-align:justify!important;
  text-justify:inter-word!important;
}
body.r2-home-view .hero-links{
  justify-content:flex-start!important;
  gap:14px!important;
  margin-top:4px!important;
}
body.r2-home-view .hero-links .btn{
  min-height:48px!important;
  padding:13px 22px!important;
  border-radius:12px!important;
}
body.r2-home-view .r2-home-access-strip{
  min-height:104px!important;
}
body.r2-home-view .r2-access-item{
  min-height:104px!important;
  padding:22px 30px!important;
}
/* Dark mode */
html.r2-dark body.r2-home-view .hero,
body.dark-mode.r2-home-view .hero,
body.dark.r2-home-view .hero,
body[data-theme="dark"].r2-home-view .hero{
  background:#151618!important;
}
html.r2-dark body.r2-home-view .hero::before,
body.dark-mode.r2-home-view .hero::before,
body.dark.r2-home-view .hero::before,
body[data-theme="dark"].r2-home-view .hero::before{
  background:
    radial-gradient(circle at 86% 20%,rgba(48,95,145,.18),transparent 25%),
    radial-gradient(circle at 12% 86%,rgba(31,33,37,.14),transparent 28%)!important;
}
html.r2-dark body.r2-home-view .hero .r2-hero-copy > p,
html.r2-dark body.r2-home-view .hero > div:first-of-type > p,
body.dark-mode.r2-home-view .hero .r2-hero-copy > p,
body.dark.r2-home-view .hero .r2-hero-copy > p,
body[data-theme="dark"].r2-home-view .hero .r2-hero-copy > p{
  color:#e0deda!important;
}
html.r2-dark body.r2-home-view .hero .eyebrow,
body.dark-mode.r2-home-view .hero .eyebrow,
body.dark.r2-home-view .hero .eyebrow,
body[data-theme="dark"].r2-home-view .hero .eyebrow{
  color:#538ac6!important;
}
@media(max-width:850px){
  body.r2-home-view .hero{
    padding:76px 26px 66px!important;
  }
  body.r2-home-view .hero .r2-hero-copy,
  body.r2-home-view .hero > div:first-of-type{
    max-width:100%!important;
  }
  body.r2-home-view .hero .r2-hero-copy > p,
  body.r2-home-view .hero > div:first-of-type > p{
    font-size:18px!important;
    line-height:1.72!important;
    text-align:left!important;
  }
}

/* FINAL: publication typography in dark mode */
html.r2-dark body.r2-publications-view .pub-section,
body.dark-mode.r2-publications-view .pub-section,
body.dark.r2-publications-view .pub-section,
body[data-theme="dark"].r2-publications-view .pub-section{color:#faf9f6!important;}

html.r2-dark body.r2-publications-view .pub-head h2,
html.r2-dark body.r2-publications-view .pub-head h1,
body.dark-mode.r2-publications-view .pub-head h2,
body.dark-mode.r2-publications-view .pub-head h1,
body.dark.r2-publications-view .pub-head h2,
body.dark.r2-publications-view .pub-head h1,
body[data-theme="dark"].r2-publications-view .pub-head h2,
body[data-theme="dark"].r2-publications-view .pub-head h1{color:#ffffff!important;}

html.r2-dark body.r2-publications-view .pub-card,
body.dark-mode.r2-publications-view .pub-card,
body.dark.r2-publications-view .pub-card,
body[data-theme="dark"].r2-publications-view .pub-card{background:#212225!important;border-color:#24262a!important;}

html.r2-dark body.r2-publications-view .pub-card h3,
html.r2-dark body.r2-publications-view .pub-card h4,
body.dark-mode.r2-publications-view .pub-card h3,
body.dark-mode.r2-publications-view .pub-card h4,
body.dark.r2-publications-view .pub-card h3,
body.dark.r2-publications-view .pub-card h4,
body[data-theme="dark"].r2-publications-view .pub-card h3,
body[data-theme="dark"].r2-publications-view .pub-card h4{color:#ffffff!important;}

html.r2-dark body.r2-publications-view .pub-card .pub-year,
html.r2-dark body.r2-publications-view .pub-card .year,
html.r2-dark body.r2-publications-view .pub-card .authors,
html.r2-dark body.r2-publications-view .pub-card .venue,
html.r2-dark body.r2-publications-view .pub-card .result,
body.dark-mode.r2-publications-view .pub-card .pub-year,
body.dark-mode.r2-publications-view .pub-card .year,
body.dark-mode.r2-publications-view .pub-card .authors,
body.dark-mode.r2-publications-view .pub-card .venue,
body.dark-mode.r2-publications-view .pub-card .result,
body.dark.r2-publications-view .pub-card .pub-year,
body.dark.r2-publications-view .pub-card .year,
body.dark.r2-publications-view .pub-card .authors,
body.dark.r2-publications-view .pub-card .venue,
body.dark.r2-publications-view .pub-card .result,
body[data-theme="dark"].r2-publications-view .pub-card .pub-year,
body[data-theme="dark"].r2-publications-view .pub-card .year,
body[data-theme="dark"].r2-publications-view .pub-card .authors,
body[data-theme="dark"].r2-publications-view .pub-card .venue,
body[data-theme="dark"].r2-publications-view .pub-card .result{color:#f7f7f5!important;}

html.r2-dark body.r2-publications-view .pub-card .read,
body.dark-mode.r2-publications-view .pub-card .read,
body.dark.r2-publications-view .pub-card .read,
body[data-theme="dark"].r2-publications-view .pub-card .read{color:#edecea!important;}

html.r2-dark body.r2-publications-view .pub-card .pub-thumb,
body.dark-mode.r2-publications-view .pub-card .pub-thumb,
body.dark.r2-publications-view .pub-card .pub-thumb,
body[data-theme="dark"].r2-publications-view .pub-card .pub-thumb{background:#191a1c!important;border-color:#24262a!important;}

html.r2-dark body.r2-publications-view .publication-filter,
body.dark-mode.r2-publications-view .publication-filter,
body.dark.r2-publications-view .publication-filter,
body[data-theme="dark"].r2-publications-view .publication-filter{color:#ffffff!important;}

/* FINAL: clickable Research Notes / Research Ideas tabs */
.r2-note-type-tabs{display:flex;gap:14px;align-items:center;margin-top:22px;flex-wrap:wrap}
.r2-note-type-tab{appearance:none;cursor:pointer;pointer-events:auto;border:1px solid rgba(131,134,141,.45);background:transparent;color:#a3a5aa;border-radius:999px;padding:12px 27px;font:600 16px/1.2 DM Sans,Arial,sans-serif;transition:all .2s ease;position:relative;z-index:5}
.r2-note-type-tab:hover{border-color:#538ac6;color:#fff;background:rgba(62,122,187,.14)}
.r2-note-type-tab.active{background:#407dbe;border-color:#407dbe;color:#fff;box-shadow:0 8px 22px rgba(64,125,190,.18)}
body:not(.dark) .r2-note-type-tab{color:#5b5e63;border-color:#dfdcd7}
body:not(.dark) .r2-note-type-tab:hover{color:#1d1e22;background:#f7f6f3;border-color:#bcbec2}
body:not(.dark) .r2-note-type-tab.active{color:#fff;background:#386fa9;border-color:#386fa9}
/* ---------- Admin login: two-panel card ---------- */
.r2cms-loginbox.r2-login-card{width:min(900px,100%);display:grid;grid-template-columns:1fr 1.05fr;padding:0;border:1px solid #e8e7e4;border-radius:18px;overflow:hidden;box-shadow:0 30px 80px rgba(23,24,28,.16);background:#fff}
.r2-login-aside{position:relative;padding:44px 40px;color:#f2f1ee;background:linear-gradient(155deg,#1c1d21 0%,#274d76 55%,#5e6166 100%);overflow:hidden;display:flex;flex-direction:column}
.r2-login-aside::before,.r2-login-aside::after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.14)}
.r2-login-aside::before{width:340px;height:340px;right:-150px;bottom:-130px}
.r2-login-aside::after{width:220px;height:220px;right:-80px;bottom:-60px;background:rgba(255,255,255,.04)}
.r2-login-mark{font-family:'Playfair Display',serif;font-size:54px;line-height:1;color:#fff;margin-bottom:34px}
.r2-login-mark sup{font-size:.45em;vertical-align:top;position:relative;top:.15em;margin-left:2px}
.r2-login-kicker{font-size:11px;font-weight:800;letter-spacing:.16em;color:#9fa1a6}
.r2-login-aside .r2-login-kicker{color:#c0c2c5}
.r2-login-aside h3{font-family:'Playfair Display',serif;font-weight:500;font-size:30px;line-height:1.2;margin:12px 0 14px;color:#fff}
.r2-login-aside p{margin:0 0 26px;line-height:1.7;color:#e5e3df;font-size:15px}
.r2-login-list{list-style:none;margin:auto 0 0;padding:0;display:grid;gap:12px;position:relative;z-index:1}
.r2-login-list li{display:flex;align-items:center;gap:12px;font-size:14px;color:#f6f5f2}
.r2-login-list li span{width:8px;height:8px;border-radius:50%;background:#538ac6;box-shadow:0 0 0 4px rgba(83,138,198,.18)}
.r2-login-form{padding:48px 44px}
.r2-login-form h2{font-family:'Playfair Display',serif;font-size:36px;font-weight:500;margin:8px 0 6px;color:#1c1d21}
.r2-login-form .r2cms-muted{margin:0 0 10px}
.r2-login-form .r2cms-field input{padding:13px 14px;border-radius:10px;background:#fcfbf9}
.r2-login-form .r2cms-field input:focus{background:#fff}
.r2-login-submit{width:100%;margin-top:8px;padding:14px 18px!important;border-radius:10px!important;font-size:15px!important;display:flex!important;justify-content:center;align-items:center;gap:8px;transition:transform .15s ease,box-shadow .15s ease}
.r2-login-submit:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(28,29,33,.25)}
.r2-login-msg{min-height:18px;margin:12px 0 0;font-size:13px;color:#a42c24}
.r2-login-foot{margin:22px 0 0;padding-top:18px;border-top:1px solid #eeedeb;font-size:12px;line-height:1.6;color:#868990}
@media(max-width:760px){
  .r2cms-loginbox.r2-login-card{grid-template-columns:1fr}
  .r2-login-aside{padding:30px 26px}
  .r2-login-mark{font-size:40px;margin-bottom:16px}
  .r2-login-aside h3{font-size:24px}
  .r2-login-list{margin-top:0}
  .r2-login-form{padding:32px 26px}
}

/* ---------- Admin editor: English | Indonesian side by side ---------- */
.r2-bi-block{background:#fff;border:1px solid #e8e7e4;border-radius:12px;padding:18px 22px 4px;margin:0 0 26px}
.r2-bi-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:26px;padding-bottom:12px;border-bottom:1px solid #eeedeb}
.r2-bi-head span{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:800;letter-spacing:.12em;color:#1c1d21}
.r2-bi-head b{display:inline-grid;place-items:center;min-width:30px;height:22px;padding:0 6px;border-radius:6px;background:#1c1d21;color:#fff;font-size:10px;letter-spacing:.08em}
.r2-bi-head span:last-child b{background:#b3261e}
.r2-bi-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:26px;align-items:start}
.r2-bi-row + .r2-bi-row{border-top:1px dashed #eeedeb}
.r2-bi-row > .r2cms-field{min-width:0;margin:18px 0}
.r2-bi-row .r2-rich-toolbar{flex-wrap:wrap}
@media(max-width:900px){
  .r2-bi-head{grid-template-columns:1fr}
  .r2-bi-head span:last-child{display:none}
  .r2-bi-row{grid-template-columns:1fr;gap:0}
}
.r2-bi-row .r2-rich-toolbar{display:flex;align-items:center;gap:6px}
.r2-bi-row .r2-rich-toolbar select{width:auto!important;flex:0 1 auto;min-width:0;max-width:150px}
.r2-bi-row .r2-rich-toolbar input[type=color]{width:38px!important;height:32px;flex:0 0 38px;padding:2px!important}
.r2-bi-row textarea,.r2-bi-row #r2n-summary{height:170px!important;min-height:170px!important}

/* ---------- Home: Latest updates gallery ---------- */
.r2-latest{max-width:1180px;margin:0 auto;padding:70px 26px 90px}
.r2-latest-head{text-align:center;margin-bottom:40px}
.r2-latest-head h2{font-family:'Playfair Display',serif;font-weight:500;font-size:40px;letter-spacing:-.01em;color:#1d1e22;margin:0 0 8px}
.r2-latest-head p{margin:0;color:#6f7279;font-size:15px}
.r2-latest-swash{display:block;width:120px;height:12px;margin:8px auto 0;color:#1d1e22}
.r2-latest-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px 26px}
.r2-latest-card{cursor:pointer;outline:none}
.r2-latest-media{position:relative;aspect-ratio:4/3;overflow:hidden;background:#f5f4f2;border:1px solid var(--line,#e9e7e4)}
.r2-latest-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s ease}
.r2-latest-card:hover .r2-latest-media img,.r2-latest-card:focus-visible .r2-latest-media img{transform:scale(1.04)}
.r2-latest-card:focus-visible .r2-latest-media{box-shadow:0 0 0 3px rgba(29,30,34,.35)}
.r2-latest-badge{position:absolute;left:12px;top:12px;padding:5px 10px;border-radius:999px;font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:#1d1e22}
.r2-latest-badge.r2-latest-note{background:#2f6f5e}
.r2-latest-badge.r2-latest-idea{background:#a0522d}
.r2-latest-badge.r2-latest-project{background:#6b4e9b}
.r2-latest-placeholder{width:100%;height:100%;display:grid;place-items:center;background:linear-gradient(145deg,#1d1e22,#5e6166)}
.r2-latest-placeholder.r2-latest-note{background:linear-gradient(145deg,#1f5446,#3f8a74)}
.r2-latest-placeholder.r2-latest-idea{background:linear-gradient(145deg,#7a3b1d,#c0703f)}
.r2-latest-placeholder.r2-latest-project{background:linear-gradient(145deg,#4a3470,#7f63b0)}
.r2-latest-placeholder span{font-family:'Playfair Display',serif;font-size:26px;color:rgba(255,255,255,.9)}
.r2-latest-caption{margin:12px 0 0;text-align:center;font-family:'Playfair Display',serif;font-size:16px;line-height:1.45;color:#17181c;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.r2-latest-caption em{font-style:italic}
.r2-latest-empty{grid-column:1/-1;text-align:center;color:#868990}
@media(max-width:900px){.r2-latest-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.r2-latest{padding:50px 16px 70px}.r2-latest-head h2{font-size:32px}.r2-latest-grid{grid-template-columns:1fr}}
body.r2-about-view .r2-latest,
body.r2-notes-view .r2-latest,
body.r2-projects-view .r2-latest,
body.r2-publications-view .r2-latest{display:none!important}
html.r2-dark .r2-latest-head h2,html.r2-dark .r2-latest-swash{color:#eae8e5}
html.r2-dark .r2-latest-head p,html.r2-dark .r2-latest-caption{color:#c4c6c9}
html.r2-dark .r2-latest-media{border-color:#1d1e21;background:#1a1b1d}

/* ---------- About: certification brand logos ---------- */
#about .r2-cert-logo{background:#fff!important;border:1px solid #eae9e6}
#about .r2-cert-logo svg{width:20px!important;height:20px!important}
#about .r2-cert-logo-ceh svg{width:30px!important;height:15px!important}

/* ---------- Admin: visits card ---------- */
.r2cms-stats{grid-template-columns:repeat(4,1fr)}
.r2cms-stat-visits small{display:block;margin-top:6px;font-size:12px;color:#6f7279}
@media(max-width:1000px){.r2cms-stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.r2cms-stats{grid-template-columns:1fr}}
.r2-latest-media{background:#fff}
.r2-latest-media img{object-fit:contain;padding:10px}
.r2-latest-type{margin:4px 0 0;text-align:center;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#8c8f94}
html.r2-dark .r2-latest-media{background:#f9f8f5}

/* ================= UI polish: section pages ================= */
.r2-page-kicker{font-size:11px;font-weight:800;letter-spacing:.18em;color:#8c8f94;margin:0 0 10px}
.pub-head .r2-page-sub,.notes-head .r2-page-sub,.projects-head .r2-page-sub{max-width:430px;color:#7b7e85;font-size:14.5px;line-height:1.7;margin:0}

/* Filters: pill select + solid navy button */
.publication-filter select,.project-filter select{height:44px!important;border-radius:999px!important;padding:0 42px 0 18px!important;font-size:14px!important;background-position:calc(100% - 26px) 17px,calc(100% - 20px) 17px,0 0!important;border-color:#e4e2dd!important}
.publication-filter button,.project-filter button{height:44px!important;border-radius:999px!important;padding:0 22px!important;background:#1d1e22!important;color:#fff!important;font-size:14px!important;font-weight:600!important}
.publication-filter button:hover,.project-filter button:hover{background:#17181c!important}
.filter-label{font-size:11px!important;letter-spacing:.14em!important;color:#8c8f94!important}

/* Category chips */
.r2-pub-cats{display:flex;flex-wrap:wrap;gap:8px;margin:-8px 0 30px}
.r2-pub-cats button{appearance:none;border:1px solid #e4e2dd;background:#fff;color:#6c6f76;border-radius:999px;padding:9px 18px;font:600 13px/1 'DM Sans',Arial,sans-serif;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.r2-pub-cats button:hover{border-color:#b2b4b8;color:#1d1e22}
.r2-pub-cats button.active{background:#1d1e22;border-color:#1d1e22;color:#fff}
html.r2-dark .r2-pub-cats button{background:transparent;border-color:#23252a;color:#c9cacd}
html.r2-dark .r2-pub-cats button.active{background:#e0ddd9;border-color:#e0ddd9;color:#18191b}

/* Publication cards */
.pub-card{border-radius:16px!important;background:#fff!important;box-shadow:0 6px 22px rgba(27,28,31,.06)!important}
.pub-card .pub-year{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px;letter-spacing:.06em}
.r2-pub-cat{display:inline-block;padding:4px 10px;border-radius:999px;font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;background:#f1f0ec;color:#1d1e22}
.r2-pub-cat-conference{background:#f5ebe1;color:#8a4b1f}
.r2-pub-cat-book{background:#ede8f6;color:#553d8a}
.r2-publication-open-label{margin-top:auto;padding-top:12px;font-size:13px;font-weight:700;color:#1d1e22}
.pub-card .pub-card-body{display:flex;flex-direction:column;flex:1}
html.r2-dark .r2-pub-cat{background:#17181c;color:#e0ddd9}

/* Research notes: empty tab */
.r2-notes-type-empty{grid-column:1/-1;padding:46px 24px;border:1px dashed #dfdcd7;border-radius:16px;text-align:center;color:#7b7e85;background:#fcfbf9;font-size:14.5px}
html.r2-dark .r2-notes-type-empty{background:transparent;border-color:#23252a;color:#b7b9bc}

/* Home access strip without arrows: keep items centered and tappable */
.r2-access-item{transition:background .2s ease}
.r2-access-item:hover{background:rgba(29,30,34,.035)}
.r2-access-item:hover .r2-access-icon{background:#1d1e22;color:#fff}
.r2-access-icon{transition:background .2s ease,color .2s ease}

/* ================= About: work experience ================= */
#about .r2-experience-box{margin:0 0 22px}
#about .r2-experience-box[hidden]{display:none!important}
.r2-experience-timeline{display:grid;gap:22px;margin-top:16px}
.r2-exp-row{position:relative;display:grid;grid-template-columns:12px minmax(0,1fr);gap:16px}
.r2-exp-row > .r2-exp-dot{width:9px;height:9px;border-radius:50%;background:#84878e;margin-top:6px;box-shadow:0 0 0 4px #f4f3f0}
.r2-exp-row:not(:last-child)::after{content:"";position:absolute;left:4px;top:20px;bottom:-22px;width:1px;background:#e5e3df}
.r2-exp-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px 16px;flex-wrap:wrap}
.r2-exp-top strong{font-size:13.5px;color:#1d1e22}
.r2-exp-period{font-size:11px;font-weight:700;letter-spacing:.06em;color:#6c6f76;background:#f5f4f2;border-radius:999px;padding:3px 10px;white-space:nowrap}
.r2-exp-org{display:block;margin-top:3px;font-size:12px;color:#7b7e85}
.r2-exp-body p{margin:8px 0 0;font-size:12.5px;line-height:1.65;color:#6f7279}
html.r2-dark .r2-exp-top strong{color:#eae8e5}
html.r2-dark .r2-exp-period{background:#17181c;color:#c9cacd}
html.r2-dark .r2-exp-org,html.r2-dark .r2-exp-body p{color:#b7b9bc}
html.r2-dark .r2-exp-row > .r2-exp-dot{box-shadow:0 0 0 4px #17181c}
html.r2-dark .r2-exp-row:not(:last-child)::after{background:#1d1e21}

/* ---------- Admin: About Me sections ---------- */
.r2-about-admin-section{margin:0 0 30px}
.r2-about-admin-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px;padding-bottom:10px;border-bottom:1px solid #e8e7e4}
.r2-about-admin-head h3{margin:0;font-family:'Playfair Display',serif;font-weight:500;font-size:22px;color:#1c1d21}
.r2-about-single-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}
@media(max-width:760px){.r2-about-single-grid{grid-template-columns:1fr}}
#about .r2-cert-row strong a,#about .r2-exp-top strong a{color:inherit;text-decoration:none;border-bottom:1px dotted currentColor}
#about .r2-cert-row strong a:hover,#about .r2-exp-top strong a:hover{border-bottom-style:solid}
#about .r2-training-box[hidden]{display:none!important}

/* =====================================================================
   Aesthetic refresh: editorial research-lab look for Home, Publications,
   Research Notes and Projects. Palette: deep navy ink, soft sky, warm accent.
   ===================================================================== */
:root{--r2-ink:#17181c;--r2-ink-2:#23252a;--r2-muted:#7b7e85;--r2-line:#eceae7;--r2-sky:#f6f5f3;--r2-accent:#b5652f;--r2-radius:18px;--r2-shadow:0 10px 30px rgba(23,24,28,.07);--r2-shadow-hover:0 18px 44px rgba(23,24,28,.13)}
body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}

/* Page entrance: each view fades up when it becomes visible */
@keyframes r2FadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.hero,.pub-section,.notes-section,.projects-section,.about,.r2-latest,.r2-home-access-strip{animation:r2FadeUp .6s cubic-bezier(.2,.7,.2,1) both}
/* Card reveal on scroll */
.r2-reveal{opacity:0;transform:translateY(18px);transition:opacity .6s cubic-bezier(.2,.7,.2,1) var(--r2-delay,0ms),transform .6s cubic-bezier(.2,.7,.2,1) var(--r2-delay,0ms)}
.r2-reveal.r2-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .hero,.pub-section,.notes-section,.projects-section,.about,.r2-latest,.r2-home-access-strip{animation:none}
  .r2-reveal{opacity:1;transform:none;transition:none}
}

/* ---------- Home hero ---------- */
body.r2-home-view .hero h1.r2-hero-title{display:block!important;font-family:'Playfair Display',Georgia,serif!important;font-weight:500!important;font-size:clamp(38px,4.6vw,60px)!important;line-height:1.08!important;letter-spacing:-.025em!important;color:var(--r2-ink)!important;margin:14px 0 22px!important;max-width:640px!important}
.r2-hero-title em{font-style:italic;color:var(--r2-accent);white-space:nowrap}
body.r2-home-view .hero .eyebrow{display:inline-flex!important;align-items:center;gap:10px;font-size:11.5px!important;letter-spacing:.2em!important;font-weight:800!important;color:var(--r2-ink-2)!important}
body.r2-home-view .hero .eyebrow::before{content:"";width:28px;height:2px;border-radius:2px;background:var(--r2-accent)}
body.r2-home-view .hero > div:not(.r2-network-bg) > p{font-size:17.5px!important;line-height:1.75!important;color:var(--r2-muted)!important;max-width:560px!important}
body.r2-home-view .hero-links{display:flex!important;flex-wrap:wrap;gap:12px;margin-top:30px!important}
body.r2-home-view .hero-links .btn{border-radius:999px!important;padding:14px 26px!important;font-weight:700!important;font-size:14.5px!important;transition:transform .2s ease,box-shadow .2s ease,background .2s ease!important}
body.r2-home-view .hero-links .btn.primary{background:var(--r2-ink)!important;color:#fff!important;box-shadow:0 10px 24px rgba(23,24,28,.22)!important}
body.r2-home-view .hero-links .btn:hover{transform:translateY(-2px)!important;box-shadow:0 14px 30px rgba(23,24,28,.18)!important}

/* Right-hand panel */
body.r2-home-view .hero > aside.r2-hero-panel{display:block!important;grid-column:2!important;grid-row:1!important;align-self:center!important;position:relative!important;z-index:3!important;padding:28px 28px 24px!important;border:1px solid rgba(255,255,255,.9)!important;border-radius:24px!important;background:rgba(255,255,255,.72)!important;backdrop-filter:blur(12px)!important;-webkit-backdrop-filter:blur(12px)!important;box-shadow:0 24px 60px rgba(23,24,28,.12)!important}
.r2-hero-panel-kicker{font-size:11px;font-weight:800;letter-spacing:.2em;color:var(--r2-muted);margin-bottom:14px}
.r2-hero-topics{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}
.r2-hero-topics span{padding:7px 13px;border-radius:999px;background:var(--r2-sky);color:var(--r2-ink-2);font-size:12.5px;font-weight:600;border:1px solid #e9e8e5}
.r2-hero-stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--r2-line);padding-top:18px}
.r2-hero-stats a{display:flex;flex-direction:column;gap:4px;text-decoration:none;padding:0 6px}
.r2-hero-stats a + a{border-left:1px solid var(--r2-line);padding-left:16px}
.r2-hero-stats a:hover strong{color:var(--r2-accent)}
.r2-hero-stats strong{font-family:'Playfair Display',Georgia,serif;font-weight:500;font-size:34px;line-height:1;color:var(--r2-ink);transition:color .2s}
.r2-hero-stats span{font-size:11.5px;font-weight:600;letter-spacing:.04em;color:var(--r2-muted)}
@media(max-width:850px){
  body.r2-home-view .hero > aside.r2-hero-panel{grid-column:1!important;grid-row:2!important;margin-top:8px}
  .r2-hero-title em{white-space:normal}
}

/* ---------- Home access tiles ---------- */
body.r2-home-view .r2-home-access-strip{background:transparent!important;border:0!important;max-width:1180px;margin:0 auto;padding:10px 26px 0;gap:18px;min-height:0}
.r2-home-access-strip .r2-access-item{justify-content:flex-start!important;gap:16px!important;padding:22px 24px!important;min-height:0!important;background:#fff;border:1px solid var(--r2-line);border-radius:var(--r2-radius);box-shadow:var(--r2-shadow);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease,opacity .6s ease!important;text-decoration:none}
.r2-home-access-strip .r2-access-item::before{display:none!important}
.r2-home-access-strip .r2-access-item:hover{transform:translateY(-4px);box-shadow:var(--r2-shadow-hover);border-color:#e0ded9;background:#fff}
.r2-access-text{display:flex;flex-direction:column;gap:4px;min-width:0}
.r2-home-access-strip .r2-access-label{font-size:15.5px!important;font-weight:700!important;color:var(--r2-ink)!important}
.r2-access-desc{font-size:13px;line-height:1.5;color:var(--r2-muted)}
@media(max-width:700px){body.r2-home-view .r2-home-access-strip{padding:6px 16px 0;gap:12px}}

/* ---------- Latest updates ---------- */
.r2-latest-head h2{font-size:clamp(32px,3.6vw,44px)!important;letter-spacing:-.02em;color:var(--r2-ink)}
.r2-latest-media{border-radius:14px;border-color:var(--r2-line);box-shadow:var(--r2-shadow);transition:box-shadow .3s ease,transform .3s ease}
.r2-latest-card:hover .r2-latest-media{box-shadow:var(--r2-shadow-hover);transform:translateY(-4px)}
.r2-latest-caption{font-size:17px;color:var(--r2-ink)}

/* ---------- Shared page header (Publications / Notes / Projects) ---------- */
.r2-page-kicker{display:inline-flex;align-items:center;gap:10px;color:var(--r2-ink-2);letter-spacing:.2em}
.r2-page-kicker::before{content:"";width:24px;height:2px;border-radius:2px;background:var(--r2-accent)}
body.r2-publications-view .pub-head h2,body.r2-notes-view .notes-head h2,body.r2-projects-view .projects-head h2,.pub-head h2,.notes-head h2,.projects-head h2{font-family:'Playfair Display',Georgia,serif!important;font-weight:500!important;font-size:clamp(34px,4vw,50px)!important;line-height:1.08!important;letter-spacing:-.025em!important;color:var(--r2-ink)!important;margin:6px 0 0!important}
.pub-head,.notes-head,.projects-head{padding-bottom:26px!important;margin-bottom:30px!important;border-bottom:1px solid var(--r2-line)!important;align-items:end!important}
.pub-head .r2-page-sub,.notes-head .r2-page-sub,.projects-head .r2-page-sub{font-size:15px;line-height:1.75;color:var(--r2-muted);max-width:440px}
.notes-head .r2-note-type-tabs{margin-top:22px}

/* ---------- Cards: one consistent family ---------- */
.pub-card,.r2-public-note-card,.projects-section .r2-dynamic-project{border-radius:var(--r2-radius)!important;border:1px solid var(--r2-line)!important;background:#fff!important;box-shadow:var(--r2-shadow)!important;overflow:hidden!important;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease,opacity .6s cubic-bezier(.2,.7,.2,1) var(--r2-delay,0ms)!important}
.pub-card:hover,.r2-public-note-card:hover,.projects-section .r2-dynamic-project:hover{transform:translateY(-5px)!important;box-shadow:var(--r2-shadow-hover)!important;border-color:#e0ded9!important}
.pub-card.r2-reveal:not(.r2-in),.r2-public-note-card.r2-reveal:not(.r2-in),.projects-section .r2-dynamic-project.r2-reveal:not(.r2-in){transform:translateY(18px)!important}
.pub-card h3{font-family:'Playfair Display',Georgia,serif!important;font-weight:500!important;font-size:19px!important;line-height:1.35!important;color:var(--r2-ink)!important;letter-spacing:-.005em}
.pub-card .authors{font-size:13px;color:var(--r2-ink-2);margin:0 0 4px}
.pub-card .venue{font-size:12.5px;color:var(--r2-muted);font-style:italic;margin:0 0 10px}
.pub-card .result{font-size:13.5px;color:#5f6166;line-height:1.65}
.r2-publication-open-label,.pub-card .read{color:var(--r2-accent)!important;font-weight:700;letter-spacing:.01em}
.pub-card .pub-thumb,.pub-card .project-visual{transition:transform .5s ease}
.pub-card:hover .pub-thumb,.pub-card:hover .project-visual{transform:scale(1.03)}
.projects-section .r2-dynamic-project img{transition:transform .5s ease}
.projects-section .r2-dynamic-project:hover img{transform:scale(1.04)}
.projects-section .r2-dynamic-project h3{font-family:'Playfair Display',Georgia,serif!important;letter-spacing:-.01em;color:var(--r2-ink)!important}
.r2-project-read,.r2-note-read{color:var(--r2-accent)!important;font-weight:700}
.r2-public-note-card h3{font-family:'Playfair Display',Georgia,serif!important;font-weight:500!important;color:var(--r2-ink)!important}

/* Filters */
.publication-filter,.project-filter{padding:10px!important;margin:0 0 18px!important;background:#fff;border:1px solid var(--r2-line);border-radius:999px;width:max-content;max-width:100%;box-shadow:var(--r2-shadow);gap:8px!important}
.publication-filter .filter-label,.project-filter .filter-label{padding-left:12px}
.r2-pub-cats button{font-size:13px;padding:10px 20px}
.r2-pub-cats button.active{box-shadow:0 8px 18px rgba(23,24,28,.2)}

/* Pagination */
.r2-pagination button{border-radius:999px!important;min-width:40px;height:40px;transition:background .2s,color .2s,transform .2s}
.r2-pagination button:hover{transform:translateY(-1px)}
.r2-pagination button.is-active{background:var(--r2-ink)!important;color:#fff!important;border-color:var(--r2-ink)!important}

/* ---------- Dark mode ---------- */
html.r2-dark{--r2-ink:#efeeeb;--r2-ink-2:#c9cacd;--r2-muted:#afb1b6;--r2-line:#1a1b1e;--r2-sky:#17181c;--r2-accent:#f0a36b;--r2-shadow:0 10px 30px rgba(0,0,0,.25);--r2-shadow-hover:0 18px 44px rgba(0,0,0,.4)}
html.r2-dark body.r2-home-view .hero > aside.r2-hero-panel{background:rgba(26,27,29,.78)!important;border-color:#1a1b1e!important}
html.r2-dark .r2-hero-topics span{border-color:#1a1b1e}
html.r2-dark .r2-home-access-strip .r2-access-item,html.r2-dark .publication-filter,html.r2-dark .project-filter{background:#1a1b1d}
html.r2-dark .pub-card,html.r2-dark .r2-public-note-card,html.r2-dark .projects-section .r2-dynamic-project{background:#1a1b1d!important}
html.r2-dark .pub-card .result{color:#b7b9bc}
html.r2-dark body.r2-home-view .hero-links .btn.primary{background:#e0ddd9!important;color:#18191b!important}
/* Hero must stay a 2-column grid (text | focus panel); an older rule forces block. */
html body.r2-home-view section#home.hero{display:grid!important;grid-template-columns:minmax(0,1.1fr) minmax(360px,.8fr)!important;gap:56px!important;align-items:center!important}
@media(max-width:850px){html body.r2-home-view section#home.hero{grid-template-columns:1fr!important;gap:28px!important}}
.r2-note-type-tab.active{background:var(--r2-ink)!important;border-color:var(--r2-ink)!important;color:#fff!important;box-shadow:0 8px 18px rgba(23,24,28,.2)!important}
html.r2-dark .r2-note-type-tab.active{color:#18191b!important}
.projects-section .r2-dynamic-project h3{font-size:23px!important;line-height:1.25!important}
html.r2-dark body.r2-home-view .hero-links .btn:not(.primary){background:transparent!important;border:1px solid #23252a!important;color:#eae8e5!important}
html.r2-dark body.r2-home-view .hero-links .btn:not(.primary):hover{border-color:#e0ddd9!important}

/* =====================================================================
   THEME: white paper + black ink + denim blue accent
   Paper = warm off-white page, cards are clean white sheets on top.
   Ink   = near-black text and primary buttons.
   Denim = the one accent: active states, links, markers, rules.
   ===================================================================== */
:root{
  --ink:#1b1c20;--ink2:#3b3d42;--muted:#6e7076;--line:#e7e3da;--soft:#f6f4ef;--accent:#2f5d8c;
  --r2-paper:#fbfaf6;--r2-sheet:#ffffff;
  --r2-ink:#1b1c20;--r2-ink-2:#3b3d42;--r2-muted:#6e7076;--r2-line:#e7e3da;
  --r2-denim:#2f5d8c;--r2-denim-deep:#244a72;--r2-denim-tint:#eaf0f6;--r2-accent:#2f5d8c;--r2-sky:#f3f1ec;
  --r2-shadow:0 1px 2px rgba(27,28,32,.04),0 8px 24px rgba(27,28,32,.05);
  --r2-shadow-hover:0 2px 4px rgba(27,28,32,.05),0 16px 38px rgba(27,28,32,.10)
}
::selection{background:#d5e1ee;color:#1b1c20}

/* Paper page, white sheets */
html:not(.r2-dark) body{background:var(--r2-paper)!important;color:var(--r2-ink)}
html:not(.r2-dark) .pub-section,
html:not(.r2-dark) .notes-section,
html:not(.r2-dark) .projects-section,
html:not(.r2-dark) body.r2-notes-view .notes-section,
html:not(.r2-dark) .about,
html:not(.r2-dark) .r2-latest,
html:not(.r2-dark) footer{background:transparent!important}
html:not(.r2-dark) main{background:var(--r2-paper)}
html:not(.r2-dark) .top{background:rgba(251,250,246,.9)!important;border-bottom:1px solid var(--r2-line)!important}
.topin nav a.active{color:var(--r2-ink)!important;border-bottom-color:var(--r2-denim)!important}
.topin nav a:hover{color:var(--r2-denim)!important}

/* Home hero on paper */
html:not(.r2-dark) body.r2-home-view .hero{background:var(--r2-paper)!important}
html:not(.r2-dark) body.r2-home-view .hero::before{background:linear-gradient(90deg,rgba(251,250,246,.97) 0%,rgba(251,250,246,.9) 45%,rgba(251,250,246,.55) 100%)!important}
body.r2-home-view .hero .eyebrow{color:var(--r2-denim)!important}
body.r2-home-view .hero .eyebrow::before,.r2-page-kicker::before{background:var(--r2-denim)!important}
.r2-page-kicker{color:var(--r2-denim)!important}
body.r2-home-view .hero > div:not(.r2-network-bg) > p{font-family:'Playfair Display',Georgia,serif!important;font-size:clamp(24px,2.5vw,32px)!important;line-height:1.4!important;color:var(--r2-ink)!important;letter-spacing:-.01em;max-width:600px!important;margin-top:18px!important}
html:not(.r2-dark) body.r2-home-view .hero > aside.r2-hero-panel{background:#fff!important;border:1px solid var(--r2-line)!important;box-shadow:var(--r2-shadow-hover)!important}
.r2-hero-topics span{background:var(--r2-paper)!important;border-color:var(--r2-line)!important;color:var(--r2-ink-2)!important}
.r2-hero-stats a:hover strong{color:var(--r2-denim)!important}
body.r2-home-view .hero-links .btn.primary{background:var(--r2-ink)!important;border-color:var(--r2-ink)!important;box-shadow:0 8px 20px rgba(27,28,32,.18)!important}
body.r2-home-view .hero-links .btn.primary:hover{background:var(--r2-denim)!important;border-color:var(--r2-denim)!important}
html:not(.r2-dark) body.r2-home-view .hero-links .btn:not(.primary){background:#fff!important;border:1px solid var(--r2-line)!important;color:var(--r2-ink)!important}
body.r2-home-view .hero-links .btn:not(.primary):hover{border-color:var(--r2-denim)!important;color:var(--r2-denim)!important}

/* Access tiles */
.r2-access-icon{background:var(--r2-denim-tint)!important;color:var(--r2-denim)!important}
.r2-access-item:hover .r2-access-icon{background:var(--r2-denim)!important;color:#fff!important}
.r2-home-access-strip .r2-access-item:hover{border-color:#c9d6e4!important}

/* Latest updates */
.r2-latest-swash{color:var(--r2-denim)!important}
.r2-latest-badge{background:var(--r2-ink)!important}
.r2-latest-badge.r2-latest-pub{background:var(--r2-denim)!important}
.r2-latest-badge.r2-latest-note{background:#3f6b5b!important}
.r2-latest-badge.r2-latest-idea{background:#8a5a2b!important}
.r2-latest-badge.r2-latest-project{background:var(--r2-ink)!important}
.r2-latest-type{color:var(--r2-denim)!important}

/* Cards: white sheet, hairline, denim on hover */
html:not(.r2-dark) .pub-card,html:not(.r2-dark) .r2-public-note-card,html:not(.r2-dark) .projects-section .r2-dynamic-project,html:not(.r2-dark) .r2-latest-media,html:not(.r2-dark) .r2-home-access-strip .r2-access-item{background:#fff!important;border-color:var(--r2-line)!important}
.pub-card:hover,.r2-public-note-card:hover,.projects-section .r2-dynamic-project:hover{border-color:#c9d6e4!important}
.r2-publication-open-label,.pub-card .read,.r2-project-read,.r2-note-read{color:var(--r2-denim)!important}
.r2-pub-cat{background:var(--r2-denim-tint)!important;color:var(--r2-denim)!important}
.r2-pub-cat-conference{background:#f3ece2!important;color:#8a5a2b!important}
.r2-pub-cat-book{background:#eceae5!important;color:#3b3d42!important}
.pub-card .authors{color:var(--r2-ink-2)!important}
.pub-card .venue,.projects-section .project-meta{color:var(--r2-muted)!important}
.r2-note-type{background:var(--r2-denim-tint)!important;color:var(--r2-denim)!important}

/* Active controls = denim */
.r2-note-type-tab.active,.r2-pub-cats button.active,.r2-pagination button.is-active{background:var(--r2-denim)!important;border-color:var(--r2-denim)!important;color:#fff!important;box-shadow:0 6px 16px rgba(47,93,140,.25)!important}
.r2-note-type-tab:not(.active):hover,.r2-pub-cats button:not(.active):hover{border-color:var(--r2-denim)!important;color:var(--r2-denim)!important}
html:not(.r2-dark) .r2-note-type-tab:not(.active),html:not(.r2-dark) .r2-pub-cats button:not(.active){background:#fff!important;border-color:var(--r2-line)!important;color:var(--r2-ink-2)!important}
.publication-filter button,.project-filter button{background:var(--r2-ink)!important}
.publication-filter button:hover,.project-filter button:hover{background:var(--r2-denim)!important}
html:not(.r2-dark) .publication-filter,html:not(.r2-dark) .project-filter{background:#fff!important;border-color:var(--r2-line)!important}
.publication-filter select:focus,.project-filter select:focus,.r2cms-field input:focus,.r2cms-field textarea:focus,.r2cms-field select:focus{border-color:var(--r2-denim)!important;box-shadow:0 0 0 3px rgba(47,93,140,.14)!important}
.r2-lang-switch button.active{background:var(--r2-ink)!important}

/* About Me */
#about .r2-section-rule{background:var(--r2-denim)!important;border-color:var(--r2-denim)!important}
#about .r2-timeline-dot,.r2-exp-row > .r2-exp-dot{background:var(--r2-denim)!important}
.r2-exp-row > .r2-exp-dot{box-shadow:0 0 0 4px var(--r2-denim-tint)!important}
.r2-exp-period{background:var(--r2-denim-tint)!important;color:var(--r2-denim)!important}
html:not(.r2-dark) #about .r2-about-box,html:not(.r2-dark) #about .r2-info-card,html:not(.r2-dark) #about .r2-about-contact{background:#fff!important;border-color:var(--r2-line)!important}
#about .r2-about-mark{color:var(--r2-ink)!important}
#about .r2-about-mark sup{color:var(--r2-denim)!important}
#about .r2-about-divider{background:var(--r2-denim)!important}
#about .r2-about-copy strong{color:var(--r2-denim)!important}
html:not(.r2-dark) #about .r2-interest-tags span{background:var(--r2-paper)!important;border-color:var(--r2-line)!important;color:var(--r2-ink-2)!important}
#about .r2-icon-circle:not(.r2-cert-logo),#about .r2-contact-icon{background:var(--r2-denim-tint)!important;color:var(--r2-denim)!important}
html:not(.r2-dark) #about .r2-profile-item,html:not(.r2-dark) #about .r2-contact-item{background:var(--r2-paper)!important;border-color:var(--r2-line)!important}
#about .r2-profile-item:hover,#about .r2-contact-item:hover{border-color:var(--r2-denim)!important}
#about .r2-profile-item:hover strong,#about .r2-contact-item:hover strong{color:var(--r2-denim)!important}

/* Admin (CMS) */
html:not(.r2-dark) .r2cms-panel{background:var(--r2-paper)!important}
.r2cms-brand{color:var(--r2-ink)!important}
.r2cms-btn:not(.alt):not(.danger){background:var(--r2-ink)!important;border-color:var(--r2-ink)!important;color:#fff!important}
.r2cms-btn:not(.alt):not(.danger):hover{background:var(--r2-denim)!important;border-color:var(--r2-denim)!important}
.r2cms-btn.alt:hover{border-color:var(--r2-denim)!important;color:var(--r2-denim)!important}
.r2cms-tab.active{color:var(--r2-ink)!important;border-bottom-color:var(--r2-denim)!important}
.r2cms-quicknav button.active{background:var(--r2-denim)!important;border-color:var(--r2-denim)!important;color:#fff!important}
html:not(.r2-dark) .r2cms-stat,html:not(.r2-dark) .r2cms-item,html:not(.r2-dark) .r2-bi-block,html:not(.r2-dark) .r2cms-editor{background:#fff!important;border-color:var(--r2-line)!important}
.r2cms-stat strong{color:var(--r2-ink)!important;font-family:'Playfair Display',Georgia,serif}
.r2cms-badge{border-color:var(--r2-line)!important;color:var(--r2-denim)!important}
.r2-bi-head b{background:var(--r2-ink)!important}
.r2-bi-head span:last-child b{background:var(--r2-denim)!important}
html:not(.r2-dark) .r2cms-note{background:var(--r2-denim-tint)!important;border-color:#d3dfeb!important;color:var(--r2-ink-2)!important}
.r2-login-aside{background:linear-gradient(155deg,#1b1c20 0%,#23252b 60%,#2f5d8c 140%)!important}
.r2-login-list li span{background:#8fb3dd!important;box-shadow:0 0 0 4px rgba(143,179,221,.18)!important}
.r2-login-aside .r2-login-kicker{color:#a9bfd8!important}
.r2-login-form h2{color:var(--r2-ink)!important}
.r2-login-kicker{color:var(--r2-denim)}
html:not(.r2-dark) .r2-login-form .r2cms-field input{background:var(--r2-paper)!important}

/* Dark mode keeps its night palette, with a light-denim accent */
html.r2-dark{--r2-denim:#8fb3dd;--r2-denim-deep:#6f97c6;--r2-denim-tint:#1e2a38;--r2-accent:#8fb3dd}
html.r2-dark .r2-note-type-tab.active,html.r2-dark .r2-pub-cats button.active,html.r2-dark .r2-pagination button.is-active{color:#111215!important}
/* Logo PNG has a white box: let it blend into the paper background. */


/* =====================================================================
   Devices & touch: laptop, Android, iPhone/iPad.
   ===================================================================== */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{overflow-x:hidden}
img,svg,video{max-width:100%}
*{-webkit-tap-highlight-color:transparent}

/* Home hero lead: calmer size (the old headline and eyebrow were removed) */
body.r2-home-view .hero > div:not(.r2-network-bg) > p{font-size:clamp(19px,1.75vw,23px)!important;line-height:1.55!important;margin-top:0!important;max-width:560px!important}

/* iPhone notch / home bar safe areas (index.html uses viewport-fit=cover) */
.topin{padding-left:max(28px,env(safe-area-inset-left))!important;padding-right:max(28px,env(safe-area-inset-right))!important}
footer{padding-bottom:max(46px,calc(env(safe-area-inset-bottom) + 24px))!important}

/* ---------- Smooth press feedback (mouse and touch) ---------- */
a,button,.pub-card,.r2-latest-card,.r2-dynamic-project,.note-card,.r2-access-item,.r2-profile-item,.r2-contact-item,.r2cms-item{touch-action:manipulation}
button,.btn,.r2cms-btn,.r2-pub-cats button,.r2-note-type-tab,.r2-pagination button,.r2-mobile-year-buttons button,.r2-lang-switch button,.r2-theme-toggle,#r2-main-nav a,.r2-hero-stats a{transition:transform .16s ease,background-color .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease!important}
button:active,.btn:active,.r2cms-btn:active,.r2-pub-cats button:active,.r2-note-type-tab:active,.r2-pagination button:active,.r2-mobile-year-buttons button:active,.r2-lang-switch button:active,#r2-main-nav a:active,.r2-hero-stats a:active{transform:scale(.96)!important}
.pub-card:active,.r2-latest-card:active,.projects-section .r2-dynamic-project:active,.r2-public-note-card:active,.r2-access-item:active,.r2-profile-item:active,.r2-contact-item:active{transform:scale(.985)!important;transition:transform .12s ease!important}
:focus-visible{outline:2px solid var(--r2-denim,#2f5d8c)!important;outline-offset:3px}

/* Touch screens have no hover: stop "stuck" lifted cards after a tap */
@media (hover:none){
  .pub-card:hover,.r2-public-note-card:hover,.projects-section .r2-dynamic-project:hover,.r2-home-access-strip .r2-access-item:hover,.r2-latest-card:hover .r2-latest-media,body.r2-home-view .hero-links .btn:hover{transform:none!important}
  .pub-card:hover .pub-thumb,.pub-card:hover .project-visual,.projects-section .r2-dynamic-project:hover img,.r2-latest-card:hover .r2-latest-media img{transform:none!important}
}

/* Modals / popups open smoothly */
@keyframes r2PopIn{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}
.r2-note-modal.is-open .r2-note-modal-dialog,.r2-project-modal.is-open .r2-project-dialog,.r2-publication-modal.is-open .r2-publication-dialog,.r2-pub-modal.is-open .r2-pub-dialog{animation:r2PopIn .28s cubic-bezier(.2,.7,.2,1) both}
@media (prefers-reduced-motion:reduce){
  .r2-note-modal.is-open .r2-note-modal-dialog,.r2-project-modal.is-open .r2-project-dialog,.r2-publication-modal.is-open .r2-publication-dialog,.r2-pub-modal.is-open .r2-pub-dialog{animation:none}
  button:active,.btn:active,.pub-card:active{transform:none!important}
}

/* ---------- Tablet (iPad, large Android) ---------- */
@media (max-width:1024px){
  .r2-latest-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pub-list{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* ---------- Phones (Android & iPhone) ---------- */
@media (max-width:760px){
  /* Hero */
  html body.r2-home-view section#home.hero{padding:44px 18px 36px!important;min-height:0!important;gap:22px!important}
  body.r2-home-view .hero > div:not(.r2-network-bg) > p{font-size:19px!important;line-height:1.5!important}
  body.r2-home-view .hero-links{gap:10px;margin-top:22px!important}
  body.r2-home-view .hero-links .btn{flex:1 1 auto;justify-content:center;text-align:center;padding:12px 16px!important;font-size:14px!important}
  body.r2-home-view .hero > aside.r2-hero-panel{padding:20px 18px 18px!important;border-radius:18px!important}
  .r2-hero-topics{gap:6px;margin-bottom:18px}
  .r2-hero-topics span{font-size:12px;padding:6px 11px}
  .r2-hero-stats strong{font-size:28px}
  .r2-hero-stats span{font-size:11px}
  .r2-hero-stats a + a{padding-left:12px}

  /* Access tiles: one per row, icon on the left */
  body.r2-home-view .r2-home-access-strip{display:grid!important;grid-template-columns:1fr!important;padding:4px 18px 0!important;gap:10px!important}
  .r2-home-access-strip .r2-access-item{flex-direction:row!important;align-items:center!important;text-align:left!important;padding:16px 16px!important;border-radius:14px}
  .r2-home-access-strip .r2-access-icon{width:44px!important;height:44px!important;flex:0 0 44px!important}
  .r2-home-access-strip .r2-access-label{font-size:15px!important}
  .r2-access-desc{font-size:12.5px}

  /* Latest */
  .r2-latest{padding:44px 18px 56px}
  .r2-latest-head{margin-bottom:26px}
  .r2-latest-grid{grid-template-columns:1fr;gap:26px}

  /* Section pages */
  .pub-section,.notes-section,.projects-section,body.r2-notes-view .notes-section{padding-left:18px!important;padding-right:18px!important;padding-top:32px!important}
  .pub-head,.notes-head,.projects-head{display:block!important;padding-bottom:20px!important;margin-bottom:20px!important}
  .pub-head .r2-page-sub,.notes-head .r2-page-sub,.projects-head .r2-page-sub{margin-top:12px!important;font-size:14px;max-width:none}
  body.r2-publications-view .pub-head h2,body.r2-notes-view .notes-head h2,body.r2-projects-view .projects-head h2,.pub-head h2,.notes-head h2,.projects-head h2{font-size:34px!important}
  .r2-page-kicker{font-size:10.5px}

  /* Year filter: full-width card with tappable year chips */
  .publication-filter,.project-filter{width:100%!important;border-radius:16px!important;padding:12px!important;display:flex!important;flex-wrap:wrap!important;align-items:center!important;gap:8px!important}
  .publication-filter .filter-label,.project-filter .filter-label{padding-left:4px;width:100%}
  .r2-mobile-year-buttons{display:flex!important;flex-wrap:wrap;gap:8px!important;width:100%;margin:0!important}
  .r2-mobile-year-buttons button{flex:1 1 0;min-width:64px;min-height:42px!important;border-radius:999px!important;background:#fff;border:1px solid var(--r2-line)!important;color:var(--r2-ink-2);font-weight:600}
  .r2-mobile-year-buttons button.active{background:var(--r2-denim)!important;border-color:var(--r2-denim)!important;color:#fff!important}
  .r2-pub-cats{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin:4px -18px 22px;padding:2px 18px 6px}
  .r2-pub-cats::-webkit-scrollbar{display:none}
  .r2-pub-cats button{flex:0 0 auto;padding:9px 16px}

  /* Cards */
  .pub-list{grid-template-columns:1fr!important;gap:18px!important}
  .pub-card .pub-thumb,.pub-card .project-visual{height:200px!important}
  .pub-card h3{font-size:18px!important}
  .projects-section .r2-dynamic-project h3{font-size:21px!important}

  /* Research notes tabs side by side */
  .r2-note-type-tabs{display:flex!important;flex-wrap:nowrap!important;gap:8px!important}
  .r2-note-type-tab{flex:1 1 0;justify-content:center;text-align:center;padding:11px 10px!important;font-size:13.5px!important}

  /* About */
  #about .r2-about-editorial{display:block!important}
  #about .r2-about-mark{font-size:64px!important;margin:0 0 10px!important}
  #about .r2-about-divider{display:none!important}
  #about .r2-about-copy p{font-size:15px!important;line-height:1.7!important}

  /* Inputs: 16px stops iOS Safari from zooming on focus */
  input,select,textarea,.r2cms-field input,.r2cms-field select,.r2cms-field textarea,.r2-login-form .r2cms-field input{font-size:16px!important}

  /* Admin on phones */
  .r2cms-head{display:block!important}
  .r2cms-head .r2cms-actions{margin-top:14px;display:flex;flex-wrap:wrap;gap:8px}
  .r2cms-head .r2cms-actions .r2cms-btn{flex:1 1 calc(50% - 8px)}
  .r2cms-quicknav{display:flex;overflow-x:auto;gap:6px;scrollbar-width:none}
  .r2cms-quicknav::-webkit-scrollbar{display:none}
  .r2cms-quicknav button{flex:0 0 auto}
  .r2cms-tabs{overflow-x:auto;white-space:nowrap;scrollbar-width:none}
  .r2cms-tabs::-webkit-scrollbar{display:none}
  .r2cms-item .r2cms-actions{display:flex;flex-wrap:wrap;gap:8px}
  .r2-login-form{padding:28px 22px!important}
  .r2-login-aside{padding:24px 22px!important}
}

/* Horizontal nav on phones: soft fade shows there is more to scroll */
@media (max-width:760px){
  #r2-main-nav{-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent)}
}
@media (max-width:850px){
  /* The select/Apply are hidden on phones, but the year chips must stay visible. */
  .publication-filter .r2-mobile-year-buttons button,.project-filter .r2-mobile-year-buttons button{display:inline-flex!important;align-items:center;justify-content:center;height:auto!important}
}
@media (max-width:760px){
  html body.r2-home-view .r2-home-access-strip .r2-access-item{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;justify-content:flex-start!important;align-items:center!important;text-align:left!important}
  html body.r2-home-view .r2-home-access-strip .r2-access-text{align-items:flex-start!important;text-align:left!important;flex:1 1 auto}
}
@media (max-width:850px){
  .publication-filter .r2-mobile-year-buttons button:not(.active),.project-filter .r2-mobile-year-buttons button:not(.active){background:#fff!important;color:var(--r2-ink-2)!important;border:1px solid var(--r2-line)!important}
  .publication-filter .r2-mobile-year-buttons button.active,.project-filter .r2-mobile-year-buttons button.active{background:var(--r2-denim)!important;color:#fff!important;border-color:var(--r2-denim)!important}
  html.r2-dark .publication-filter .r2-mobile-year-buttons button:not(.active),html.r2-dark .project-filter .r2-mobile-year-buttons button:not(.active){background:transparent!important;color:#e3e2de!important;border-color:#3a3c40!important}
}
/* Tablet range (iPad / large Android): two-column cards, compact filter card */
@media (min-width:761px) and (max-width:1024px){
  html body.r2-publications-view .pub-list,html body .pub-list{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:20px!important}
  html body.r2-projects-view .projects-section>div[style],#r2DynamicProjects{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:20px!important}
  .pub-card .pub-thumb,.pub-card .project-visual{height:210px!important}
  html body.r2-home-view .r2-home-access-strip .r2-access-item{flex-direction:row!important;flex-wrap:nowrap!important;justify-content:flex-start!important;text-align:left!important;padding:18px!important}
  html body.r2-home-view .r2-home-access-strip .r2-access-text{align-items:flex-start!important;text-align:left!important}
}
@media (max-width:850px){.publication-filter,.project-filter{border-radius:18px!important;width:100%!important;flex-wrap:wrap!important}}

/* ---------- Admin: inline image tools ---------- */
#r2cms-editor .r2-rich-content img{cursor:pointer;transition:outline-color .15s}
#r2cms-editor .r2-rich-content img.r2-img-selected{outline:2px solid var(--r2-denim,#2f5d8c);outline-offset:3px}
.r2-img-tools{position:fixed;z-index:10040;display:none;align-items:center;gap:4px;flex-wrap:wrap;max-width:calc(100vw - 16px);padding:6px;background:#1b1c20;border-radius:12px;box-shadow:0 12px 30px rgba(0,0,0,.25)}
.r2-img-tools button{appearance:none;border:0;background:transparent;color:#fff;font:600 12.5px/1 'DM Sans',Arial,sans-serif;padding:8px 10px;border-radius:8px;cursor:pointer;min-width:32px}
.r2-img-tools button:hover{background:rgba(255,255,255,.12)}
.r2-img-tools .r2-img-del{color:#ffb4ad}
.r2-img-tools .r2-img-size{color:#a9bfd8;font:700 12px/1 'DM Sans',Arial,sans-serif;min-width:40px;text-align:center}
.r2-img-tools i{width:1px;height:18px;background:rgba(255,255,255,.2);margin:0 2px}
.r2-img-handle{position:fixed;z-index:10041;display:none;width:18px;height:18px;border-radius:50%;background:#fff;border:3px solid var(--r2-denim,#2f5d8c);cursor:nwse-resize;touch-action:none;box-shadow:0 2px 6px rgba(0,0,0,.25)}
.r2-note-modal-body::after,.r2-rich-public::after{content:"";display:block;clear:both}
.r2-note-modal-body img[style*="float"],.r2-rich-public img[style*="float"]{display:inline!important}

/* ---------- Admin: cropper ---------- */
.r2-crop{position:fixed;inset:0;z-index:10050;display:none;align-items:center;justify-content:center;padding:16px;background:rgba(17,18,21,.72);backdrop-filter:blur(4px)}
.r2-crop.is-open{display:flex;animation:r2FadeUp .22s ease both}
.r2-crop-dialog{width:min(920px,100%);max-height:calc(100dvh - 32px);overflow:auto;background:#fff;border-radius:18px;padding:18px;box-shadow:0 30px 80px rgba(0,0,0,.35)}
.r2-crop-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.r2-crop-head strong{font-family:'Playfair Display',Georgia,serif;font-weight:500;font-size:22px;color:#1b1c20}
.r2-crop-ratios{display:flex;gap:6px;flex-wrap:wrap}
.r2-crop-ratios button{appearance:none;border:1px solid #e7e3da;background:#fff;border-radius:999px;padding:7px 13px;font:600 12.5px/1 'DM Sans',Arial,sans-serif;color:#3b3d42;cursor:pointer}
.r2-crop-ratios button.active{background:#2f5d8c;border-color:#2f5d8c;color:#fff}
.r2-crop-stage{position:relative;display:block;width:max-content;max-width:100%;margin:0 auto;overflow:hidden;border-radius:10px;background:#f3f1ec;touch-action:none;user-select:none}
.r2-crop-stage img{display:block;max-width:100%;max-height:min(62vh,62dvh);width:auto;height:auto}
.r2-crop-box{position:absolute;border:2px solid #fff;box-shadow:0 0 0 9999px rgba(17,18,21,.55);cursor:move;touch-action:none}
.r2-crop-box::before,.r2-crop-box::after{content:"";position:absolute;inset:33.33% 0;border-top:1px solid rgba(255,255,255,.45);border-bottom:1px solid rgba(255,255,255,.45);pointer-events:none}
.r2-crop-box::after{inset:0 33.33%;border:0;border-left:1px solid rgba(255,255,255,.45);border-right:1px solid rgba(255,255,255,.45)}
.r2-crop-box span{position:absolute;width:20px;height:20px;background:#fff;border:3px solid #2f5d8c;border-radius:50%;touch-action:none}
.r2-crop-box span[data-h="nw"]{left:-11px;top:-11px;cursor:nwse-resize}
.r2-crop-box span[data-h="ne"]{right:-11px;top:-11px;cursor:nesw-resize}
.r2-crop-box span[data-h="sw"]{left:-11px;bottom:-11px;cursor:nesw-resize}
.r2-crop-box span[data-h="se"]{right:-11px;bottom:-11px;cursor:nwse-resize}
.r2-crop-hint{margin:10px 0 0;text-align:center;font-size:12.5px;color:#6e7076}
.r2-crop-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:14px}
.r2-crop-open{margin-top:10px}
.r2-upload-preview img{max-width:100%;border-radius:10px}

/* ---------- Admin: references ---------- */
.r2-ref-manager{margin:26px 0 8px;padding:20px 22px;background:#fff;border:1px solid var(--r2-line,#e7e3da);border-radius:14px}
.r2-ref-top{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.r2-ref-top label{display:block;font-size:11px;letter-spacing:.1em;font-weight:800;color:#6e7076;margin-bottom:4px}
#r2-ref-count{margin-left:6px;padding:2px 8px;border-radius:999px;background:var(--r2-denim-tint,#eaf0f6);color:var(--r2-denim,#2f5d8c);letter-spacing:.04em}
.r2-ref-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.r2-ref-controls .r2-ref-style-label{margin:0;font-size:11px}
.r2-ref-controls select{border:1px solid var(--r2-line,#e7e3da);border-radius:999px;padding:9px 14px;background:#fff;color:#1b1c20}
.r2-ref-row{border:1px solid var(--r2-line,#e7e3da);border-radius:12px;padding:14px;margin-bottom:12px;background:var(--r2-paper,#fbfaf6)}
.r2-ref-row-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px}
.r2-ref-row-head strong{font-size:13px;color:#1b1c20}
.r2-ref-row-head span{display:flex;gap:6px}
.r2-ref-row-head .r2cms-btn{padding:6px 10px!important;font-size:12px!important}
.r2-ref-grid{display:grid;grid-template-columns:2fr .7fr;gap:10px 12px}
.r2-ref-f{display:flex;flex-direction:column;gap:4px;min-width:0}
.r2-ref-f span{font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#6e7076}
.r2-ref-f input,.r2-ref-f textarea{width:100%;border:1px solid var(--r2-line,#e7e3da);border-radius:8px;padding:9px 10px;background:#fff;color:#1b1c20;font:inherit;font-size:14px}
.r2-ref-f-title,.r2-ref-f-source,.r2-ref-f-url,.r2-ref-f-raw{grid-column:1 / -1}
.r2-ref-f-volume,.r2-ref-f-issue,.r2-ref-f-pages{grid-column:auto}
.r2-ref-grid .r2-ref-f-volume{grid-column:1}.r2-ref-grid .r2-ref-f-issue{grid-column:2}
.r2-ref-url{display:flex;gap:6px}.r2-ref-url input{flex:1}
.r2-ref-preview{margin-top:10px}
.r2-ref-preview-label{font-size:11px;font-weight:800;letter-spacing:.1em;color:var(--r2-denim,#2f5d8c);margin-bottom:6px;text-transform:uppercase}

/* ---------- Public: references under a note / idea ---------- */
.r2-note-refs{margin-top:34px;padding-top:22px;border-top:1px solid var(--r2-line,#e7e3da)}
.r2-note-refs h3{font-family:'Playfair Display',Georgia,serif;font-weight:500;font-size:24px;margin:0 0 14px;color:var(--r2-ink,#1b1c20)}
.r2-note-refs h3 small{font:700 11px/1 'DM Sans',Arial,sans-serif;letter-spacing:.1em;color:var(--r2-denim,#2f5d8c);background:var(--r2-denim-tint,#eaf0f6);padding:4px 8px;border-radius:999px;vertical-align:middle;margin-left:8px}
.r2-ref-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.r2-ref-list li{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;font-size:14px;line-height:1.65;color:#3b3d42;padding-left:28px;text-indent:-28px;overflow-wrap:anywhere}
.r2-ref-list li > span{flex:1}
.r2-ref-list a{color:var(--r2-denim,#2f5d8c);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}
.r2-ref-copy{flex:0 0 auto;text-indent:0;appearance:none;border:1px solid var(--r2-line,#e7e3da);background:#fff;color:var(--r2-ink-2,#3b3d42);border-radius:999px;padding:6px 12px;font:600 12px/1 'DM Sans',Arial,sans-serif;cursor:pointer;white-space:nowrap}
.r2-ref-copy:hover{border-color:var(--r2-denim,#2f5d8c);color:var(--r2-denim,#2f5d8c)}
.r2-ref-copy.is-done{background:var(--r2-denim,#2f5d8c);border-color:var(--r2-denim,#2f5d8c);color:#fff}
html.r2-dark .r2-ref-list li{color:#c9c8c4}
html.r2-dark .r2-ref-copy{background:transparent;color:#e3e2de;border-color:#3a3c40}

@media (max-width:760px){
  .r2-ref-manager{padding:16px 14px}
  .r2-ref-grid{grid-template-columns:1fr}
  .r2-ref-grid .r2-ref-f-volume,.r2-ref-grid .r2-ref-f-issue{grid-column:auto}
  .r2-ref-controls{width:100%}
  .r2-ref-controls select{flex:1}
  .r2-ref-list li{flex-direction:column;gap:6px}
  .r2-crop-dialog{padding:14px;border-radius:14px}
  .r2-crop-actions .r2cms-btn{flex:1}
}
/* Reference fields: 6-column grid so volume / issue / pages share one row */
.r2-ref-grid{grid-template-columns:repeat(6,minmax(0,1fr))!important}
.r2-ref-grid .r2-ref-f-authors{grid-column:span 4!important}.r2-ref-grid .r2-ref-f-year{grid-column:span 2!important}
.r2-ref-grid .r2-ref-f-volume,.r2-ref-grid .r2-ref-f-issue,.r2-ref-grid .r2-ref-f-pages{grid-column:span 2!important}
.r2-ref-grid .r2-ref-f-title,.r2-ref-grid .r2-ref-f-source,.r2-ref-grid .r2-ref-f-url,.r2-ref-grid .r2-ref-f-raw{grid-column:1 / -1!important}
@media (max-width:760px){.r2-ref-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.r2-ref-grid .r2-ref-f-authors{grid-column:1 / -1!important}.r2-ref-grid .r2-ref-f-year,.r2-ref-grid .r2-ref-f-volume,.r2-ref-grid .r2-ref-f-issue,.r2-ref-grid .r2-ref-f-pages{grid-column:span 1!important}}

/* ===================== New features ===================== */
/* Share + cite (publication popup) */
.r2-share-row{margin-top:22px;padding-top:16px;border-top:1px solid var(--r2-line,#e7e3da);display:flex;justify-content:flex-end}
.r2-share-btn,.r2-cite-copy,.r2-cite-bib{appearance:none;border:1px solid var(--r2-line,#e7e3da);background:#fff;color:var(--r2-ink,#1b1c20);border-radius:999px;padding:9px 16px;font:600 13px/1 'DM Sans',Arial,sans-serif;cursor:pointer}
.r2-share-btn:hover,.r2-cite-copy:hover,.r2-cite-bib:hover{border-color:var(--r2-denim,#2f5d8c);color:var(--r2-denim,#2f5d8c)}
.r2-share-btn.is-done,.r2-cite-copy.is-done{background:var(--r2-denim,#2f5d8c);border-color:var(--r2-denim,#2f5d8c);color:#fff}
.r2-cite{margin-top:26px;padding:18px;border:1px solid var(--r2-line,#e7e3da);border-radius:14px;background:var(--r2-paper,#fbfaf6)}
.r2-cite-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.r2-cite-label{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--r2-denim,#2f5d8c)}
.r2-cite-tabs{display:flex;gap:4px;flex-wrap:wrap}
.r2-cite-tabs button{appearance:none;border:1px solid transparent;background:transparent;border-radius:999px;padding:6px 11px;font:600 12px/1 'DM Sans',Arial,sans-serif;color:var(--r2-muted,#6e7076);cursor:pointer}
.r2-cite-tabs button.active{background:#fff;border-color:var(--r2-line,#e7e3da);color:var(--r2-ink,#1b1c20)}
.r2-cite-text{font-size:14px;line-height:1.7;color:#3b3d42;overflow-wrap:anywhere;padding:12px 14px;background:#fff;border-radius:10px;border:1px solid var(--r2-line,#e7e3da)}
.r2-cite-text a{color:var(--r2-denim,#2f5d8c)}
.r2-cite-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
html.r2-dark .r2-cite,html.r2-dark .r2-cite-text{background:transparent;border-color:#3a3c40}
html.r2-dark .r2-cite-text{color:#d6d5d1}
html.r2-dark .r2-share-btn,html.r2-dark .r2-cite-copy,html.r2-dark .r2-cite-bib{background:transparent;color:#e3e2de;border-color:#3a3c40}

/* Search */
.r2-search-btn{appearance:none;width:42px;height:42px;display:inline-grid;place-items:center;border-radius:50%;border:1px solid var(--r2-line,#e7e3da);background:#fff;color:var(--r2-ink,#1b1c20);cursor:pointer;margin-right:8px;flex:0 0 auto}
.r2-search-btn svg{width:19px;height:19px}
.r2-search-btn:hover{border-color:var(--r2-denim,#2f5d8c);color:var(--r2-denim,#2f5d8c)}
html.r2-dark .r2-search-btn{background:transparent;border-color:#3a3c40;color:#e3e2de}
.r2-search{position:fixed;inset:0;z-index:9000;display:none;justify-content:center;align-items:flex-start;padding:max(10vh,70px) 16px 16px;background:rgba(17,18,21,.45);backdrop-filter:blur(4px)}
.r2-search.is-open{display:flex;animation:r2FadeUp .2s ease both}
body.r2-search-open{overflow:hidden}
.r2-search-dialog{width:min(680px,100%);max-height:min(76vh,76dvh);display:flex;flex-direction:column;background:#fff;border-radius:18px;box-shadow:0 30px 80px rgba(0,0,0,.28);overflow:hidden}
.r2-search-bar{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--r2-line,#e7e3da)}
.r2-search-bar svg{width:20px;height:20px;color:var(--r2-muted,#6e7076);flex:0 0 auto}
.r2-search-bar input{flex:1;min-width:0;border:0;outline:0;font:500 17px/1.3 'DM Sans',Arial,sans-serif;color:var(--r2-ink,#1b1c20);background:transparent}
.r2-search-close{appearance:none;border:1px solid var(--r2-line,#e7e3da);background:#fff;border-radius:8px;padding:5px 8px;font:600 11px/1 'DM Sans',Arial,sans-serif;color:var(--r2-muted,#6e7076);cursor:pointer}
.r2-search-topics{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:12px 16px;border-bottom:1px solid var(--r2-line,#e7e3da)}
.r2-search-topics span{font-size:10.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--r2-muted,#6e7076);margin-right:4px}
.r2-search-topics button{appearance:none;border:1px solid var(--r2-line,#e7e3da);background:var(--r2-paper,#fbfaf6);border-radius:999px;padding:6px 11px;font:600 12px/1 'DM Sans',Arial,sans-serif;color:var(--r2-ink-2,#3b3d42);cursor:pointer}
.r2-search-topics button:hover{border-color:var(--r2-denim,#2f5d8c);color:var(--r2-denim,#2f5d8c)}
.r2-search-results{overflow:auto;padding:8px;-webkit-overflow-scrolling:touch}
.r2-search-hit{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:2px 12px;width:100%;text-align:left;appearance:none;border:0;background:transparent;border-radius:12px;padding:12px;cursor:pointer}
.r2-search-hit:hover,.r2-search-hit:focus-visible{background:var(--r2-paper,#fbfaf6)}
.r2-search-hit strong{font:500 16px/1.35 'Playfair Display',Georgia,serif;color:var(--r2-ink,#1b1c20)}
.r2-search-hit small{grid-column:2;font-size:12.5px;color:var(--r2-muted,#6e7076)}
.r2-search-kind{grid-row:1 / span 2;align-self:start;margin-top:2px;padding:4px 8px;border-radius:999px;font:800 10px/1 'DM Sans',Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase;background:var(--r2-denim-tint,#eaf0f6);color:var(--r2-denim,#2f5d8c)}
.r2-search-kind-note{background:#e8f1ec;color:#3f6b5b}.r2-search-kind-project{background:#eceae5;color:#3b3d42}
.r2-search-hint{padding:18px 12px;margin:0;color:var(--r2-muted,#6e7076);font-size:14px}
.r2-search-hint kbd{border:1px solid var(--r2-line,#e7e3da);border-bottom-width:2px;border-radius:5px;padding:1px 6px;font-size:12px}
html.r2-dark .r2-search-dialog{background:#1a1b1e}
html.r2-dark .r2-search-bar input,html.r2-dark .r2-search-hit strong{color:#eceae6}
html.r2-dark .r2-search-hit:hover{background:#232428}

/* Reading time on note cards */
.note-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.r2-note-readtime{font-size:11.5px;color:var(--r2-muted,#6e7076);letter-spacing:.02em}

/* Research in progress (Home) */
.r2-ongoing{max-width:1180px;margin:0 auto;padding:10px 26px 60px}
.r2-ongoing[hidden]{display:none!important}
.r2-ongoing-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.r2-ongoing-item{position:relative;padding:20px 20px 18px;background:#fff;border:1px solid var(--r2-line,#e7e3da);border-radius:16px;box-shadow:var(--r2-shadow)}
.r2-ongoing-top{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px}
.r2-ongoing-status{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--r2-denim,#2f5d8c)}
.r2-ongoing-status::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor;box-shadow:0 0 0 4px var(--r2-denim-tint,#eaf0f6)}
.r2-ongoing-ongoing .r2-ongoing-status::before{animation:r2Pulse 1.8s ease-in-out infinite}
@keyframes r2Pulse{50%{box-shadow:0 0 0 7px rgba(47,93,140,.08)}}
.r2-ongoing-review .r2-ongoing-status{color:#8a5a2b}.r2-ongoing-accepted .r2-ongoing-status{color:#3f6b5b}.r2-ongoing-published .r2-ongoing-status{color:#3b3d42}
.r2-ongoing-year{font-size:12px;color:var(--r2-muted,#6e7076)}
.r2-ongoing-item h3{margin:0 0 8px;font:500 19px/1.3 'Playfair Display',Georgia,serif;color:var(--r2-ink,#1b1c20)}
.r2-ongoing-item p{margin:0;font-size:13.5px;line-height:1.65;color:#5b5e64}
html.r2-dark .r2-ongoing-item{background:#18191c;border-color:#2c2e33}
html.r2-dark .r2-ongoing-item p{color:#b9b8b4}

/* Subscribe / collaborate CTA (Home) */
.r2-cta{max-width:1180px;margin:0 auto;padding:10px 26px 90px;display:grid;grid-template-columns:1fr 1fr;gap:18px}
.r2-cta-card{padding:30px 30px 28px;border-radius:20px;background:#fff;border:1px solid var(--r2-line,#e7e3da);box-shadow:var(--r2-shadow)}
.r2-cta-card h3{margin:0 0 8px;font:500 28px/1.15 'Playfair Display',Georgia,serif;color:var(--r2-ink,#1b1c20)}
.r2-cta-card p{margin:0 0 20px;color:var(--r2-muted,#6e7076);line-height:1.65}
.r2-cta-dark{background:linear-gradient(150deg,#1b1c20 0%,#24262c 60%,#2f5d8c 160%);border-color:#1b1c20}
.r2-cta-dark h3{color:#fff}.r2-cta-dark p{color:#c9ccd2}
.r2-cta-actions{display:flex;gap:10px;flex-wrap:wrap}
.r2-cta-btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 20px;border-radius:999px;border:1px solid var(--r2-line,#e7e3da);background:#fff;color:var(--r2-ink,#1b1c20);font-weight:700;font-size:14px;text-decoration:none;cursor:pointer}
.r2-cta-btn.primary{background:var(--r2-ink,#1b1c20);border-color:var(--r2-ink,#1b1c20);color:#fff}
.r2-cta-btn.primary:hover{background:var(--r2-denim,#2f5d8c);border-color:var(--r2-denim,#2f5d8c)}
.r2-cta-btn:not(.primary):hover{border-color:var(--r2-denim,#2f5d8c);color:var(--r2-denim,#2f5d8c)}
.r2-cta-btn.light{background:#fff;color:#1b1c20;border-color:#fff}
body.r2-about-view .r2-cta,body.r2-notes-view .r2-cta,body.r2-projects-view .r2-cta,body.r2-publications-view .r2-cta,
body.r2-about-view .r2-ongoing,body.r2-notes-view .r2-ongoing,body.r2-projects-view .r2-ongoing,body.r2-publications-view .r2-ongoing{display:none!important}
html.r2-dark .r2-cta-card:not(.r2-cta-dark){background:#18191c;border-color:#2c2e33}

/* About: CV, Scholar metrics, collaboration form */
.r2-cv-wrap{margin-top:18px}.r2-cv-wrap[hidden]{display:none!important}
.r2-cv-btn{display:inline-flex;align-items:center;gap:8px;padding:11px 20px;border-radius:999px;background:var(--r2-ink,#1b1c20);color:#fff!important;font-weight:700;font-size:14px;text-decoration:none}
.r2-cv-btn::before{content:"";width:14px;height:14px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 4v11m0 0-4.5-4.5M12 15l4.5-4.5M5 19h14' stroke='black' stroke-width='2.2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 4v11m0 0-4.5-4.5M12 15l4.5-4.5M5 19h14' stroke='black' stroke-width='2.2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
.r2-cv-btn:hover{background:var(--r2-denim,#2f5d8c)}
.r2-scholar-metrics{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;margin:12px 0 16px}
.r2-scholar-metrics[hidden]{display:none!important}
.r2-metric{min-width:96px;padding:12px 14px;border-radius:12px;background:var(--r2-paper,#fbfaf6);border:1px solid var(--r2-line,#e7e3da)}
.r2-metric strong{display:block;font:500 26px/1 'Playfair Display',Georgia,serif;color:var(--r2-ink,#1b1c20)}
.r2-metric span{font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--r2-denim,#2f5d8c)}
.r2-scholar-metrics small{font-size:11.5px;color:var(--r2-muted,#6e7076);margin-left:4px}
#about .r2-collab{margin-top:22px}
.r2-collab-intro{margin:14px 0 16px;color:#5b5e64;font-size:14px;line-height:1.65}
.r2-collab-form{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.r2-collab-form label{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--r2-muted,#6e7076)}
.r2-collab-form input,.r2-collab-form select,.r2-collab-form textarea{font:400 15px/1.5 'DM Sans',Arial,sans-serif;letter-spacing:0;text-transform:none;color:var(--r2-ink,#1b1c20);background:var(--r2-paper,#fbfaf6);border:1px solid var(--r2-line,#e7e3da);border-radius:10px;padding:11px 12px;outline:0}
.r2-collab-form input:focus,.r2-collab-form select:focus,.r2-collab-form textarea:focus{border-color:var(--r2-denim,#2f5d8c);box-shadow:0 0 0 3px rgba(47,93,140,.14);background:#fff}
.r2-collab-wide{grid-column:1 / -1}
.r2-collab-submit{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.r2-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.r2-form-msg{margin:0;font-size:13.5px;color:var(--r2-muted,#6e7076)}
.r2-form-msg.is-ok{color:#3f6b5b}.r2-form-msg.is-error{color:#a42c24}
html.r2-dark .r2-collab-form input,html.r2-dark .r2-collab-form select,html.r2-dark .r2-collab-form textarea,html.r2-dark .r2-metric{background:#18191c;border-color:#2c2e33;color:#eceae6}

/* Admin: analytics + messages */
.r2-analytics{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:-8px 0 24px}
.r2-an-card{background:#fff;border:1px solid var(--r2-line,#e7e3da);padding:18px 20px}
.r2-an-card h4{margin:0 0 12px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--r2-muted,#6e7076)}
.r2-an-row{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto;align-items:center;gap:10px;margin:7px 0;font-size:13px}
.r2-an-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--r2-ink,#1b1c20)}
.r2-an-bar{height:8px;border-radius:99px;background:var(--r2-paper,#f3f1ec);overflow:hidden}
.r2-an-bar i{display:block;height:100%;border-radius:99px;background:var(--r2-denim,#2f5d8c)}
.r2-an-row strong{font-variant-numeric:tabular-nums;color:var(--r2-ink,#1b1c20)}
.r2-an-empty{margin:0;font-size:13px;color:var(--r2-muted,#6e7076)}
.r2-msg-body{white-space:pre-wrap;color:var(--r2-ink-2,#3b3d42)!important;background:var(--r2-paper,#fbfaf6);border-radius:10px;padding:10px 12px;margin-top:8px!important}

@media (max-width:1024px){ .r2-ongoing-list{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:760px){
  .r2-search-btn{width:36px;height:36px;margin-right:6px}
  .r2-search{padding:12px}
  .r2-search-dialog{max-height:calc(100dvh - 24px)}
  .r2-ongoing{padding:0 18px 44px}
  .r2-ongoing-list{grid-template-columns:1fr}
  .r2-cta{grid-template-columns:1fr;padding:0 18px 60px}
  .r2-cta-card{padding:24px 20px}
  .r2-cta-card h3{font-size:24px}
  .r2-collab-form{grid-template-columns:1fr}
  .r2-analytics{grid-template-columns:1fr}
  .r2-cite-head{flex-direction:column;align-items:flex-start}
}

/* =====================================================================
   CALM PASS — medium type scale, more air, compact cards, two-column About,
   refreshed admin. (Appended last so it wins over older rules.)
   ===================================================================== */

/* ---------- Type scale (medium, easy to read) ---------- */
body{font-size:15px!important;line-height:1.65!important}
.topin nav a,#r2-main-nav a{font-size:14px!important}
.pub-head h2,.notes-head h2,.projects-head h2,
body.r2-publications-view .pub-head h2,body.r2-notes-view .notes-head h2,body.r2-projects-view .projects-head h2{font-size:clamp(28px,3vw,38px)!important;line-height:1.15!important}
.pub-head .r2-page-sub,.notes-head .r2-page-sub,.projects-head .r2-page-sub{font-size:14px!important;line-height:1.7!important;max-width:420px}
.r2-latest-head h2,.r2-ongoing .r2-latest-head h2{font-size:clamp(26px,2.6vw,32px)!important}
.r2-latest-head p{font-size:14px!important}
body.r2-home-view .hero > div:not(.r2-network-bg) > p{font-size:clamp(17px,1.45vw,20px)!important;line-height:1.6!important;max-width:520px!important}
body.r2-home-view .hero-links .btn{font-size:14px!important;padding:12px 22px!important}
.r2-hero-stats strong{font-size:28px!important}
.r2-hero-topics span{font-size:12px!important;padding:6px 11px!important}
.r2-cta-card h3{font-size:22px!important}
.r2-cta-card p{font-size:14px!important}
.r2-note-modal-body,.r2-rich-public{font-size:15px}
footer{font-size:12px!important}

/* ---------- Home: fewer blocks, more air ---------- */
body.r2-home-view .r2-home-access-strip{display:none!important}
html body.r2-home-view section#home.hero{min-height:0!important;padding-top:72px!important;padding-bottom:64px!important}
body.r2-home-view .hero > aside.r2-hero-panel{padding:22px 22px 18px!important}
.r2-latest{padding:56px 26px 48px!important}
.r2-latest-head{margin-bottom:28px!important}
.r2-latest-grid{gap:26px 22px!important}
.r2-latest-media{aspect-ratio:16/10!important}
.r2-latest-caption{font-size:15px!important;margin-top:10px!important}
.r2-latest-type{font-size:10.5px!important}
.r2-ongoing{padding:24px 26px 48px!important}
.r2-ongoing-item{padding:16px 18px!important}
.r2-ongoing-item h3{font-size:16.5px!important}
.r2-cta{padding:16px 26px 72px!important;gap:16px!important}
.r2-cta-card{padding:24px 26px!important;border-radius:16px!important}
.r2-cta-card p{margin-bottom:16px!important}
.r2-cta-btn{padding:10px 18px!important;font-size:13.5px!important}

/* ---------- Publications & Projects: compact, minimal cards ---------- */
.pub-section,.projects-section{max-width:1120px!important}
.pub-list{gap:20px!important}
.pub-card .pub-thumb,.pub-card .project-visual{height:168px!important;padding:12px!important;background:#fff!important}
.pub-card > div,.pub-card .pub-card-body{padding:14px 16px 16px!important}
.pub-card .pub-year{font-size:12px!important;margin-bottom:6px!important}
.pub-card h3{font-size:16px!important;line-height:1.35!important;margin-bottom:8px!important;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.pub-card .authors{font-size:12.5px!important;margin-bottom:2px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pub-card .venue{font-size:12px!important;margin-bottom:8px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pub-card .result,.pub-card > div > p:not(.authors):not(.venue){font-size:13px!important;line-height:1.6!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.r2-publication-open-label,.pub-card .read{font-size:12.5px!important;padding-top:6px!important}
.r2-pub-cat{font-size:9.5px!important;padding:3px 8px!important}
#r2DynamicProjects{gap:20px!important}
.projects-section .r2-dynamic-project img{height:168px!important;object-fit:cover}
.projects-section .r2-dynamic-project-body{padding:16px 18px 18px!important}
.projects-section .project-meta{font-size:10.5px!important;margin-bottom:8px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.projects-section .r2-dynamic-project h3{font-size:18px!important;line-height:1.3!important;margin-bottom:8px!important}
.projects-section .r2-dynamic-project p{font-size:13.5px!important;line-height:1.6!important;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.r2-project-tags span{font-size:11px!important;padding:3px 9px!important}
.r2-project-read{font-size:12.5px!important}
.publication-filter,.project-filter{padding:6px!important}
.publication-filter select,.project-filter select,.publication-filter button,.project-filter button{height:38px!important;font-size:13px!important}
.r2-pub-cats{margin-bottom:24px!important}
.r2-pub-cats button{padding:8px 16px!important;font-size:12.5px!important}
.pub-head,.notes-head,.projects-head{padding-bottom:20px!important;margin-bottom:24px!important}
@media (min-width:1025px){
  .pub-list{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  #r2DynamicProjects{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important}
}

/* ---------- Research notes ---------- */
.r2-public-note-card h3{font-size:18px!important}
.r2-note-type-tab{font-size:13px!important;padding:9px 16px!important}

/* ---------- About: two columns ---------- */
#about .r2-about-static{max-width:1120px;margin:0 auto}
.r2-about-layout{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:24px;align-items:start}
.r2-about-aside{display:flex;flex-direction:column;gap:18px;position:sticky;top:96px}
.r2-about-main{display:flex;flex-direction:column;gap:18px;min-width:0}
.r2-about-aside > *,.r2-about-main > *{margin:0!important}
#about .r2-about-top{padding:22px 22px 20px!important;background:#fff;border:1px solid var(--r2-line,#e7e3da);border-radius:18px}
#about .r2-about-editorial{display:block!important}
#about .r2-about-mark{font-size:54px!important;line-height:1!important;margin:0 0 12px!important;text-align:left!important;justify-content:flex-start!important}
#about .r2-about-divider{display:none!important}
#about .r2-about-copy p{font-size:14px!important;line-height:1.7!important;margin:0 0 10px!important;color:#4a4d53!important}
#about .r2-about-copy{padding:0!important;max-width:none!important}
.r2-about-aside .r2-profile-grid,.r2-about-aside .r2-contact-grid{display:grid!important;grid-template-columns:1fr!important;gap:8px!important}
.r2-about-aside .r2-info-card,.r2-about-aside .r2-about-contact{padding:18px!important}
.r2-about-aside .r2-profile-item,.r2-about-aside .r2-contact-item{padding:10px 12px!important}
.r2-about-aside .r2-scholar-metrics{margin:8px 0 12px!important;gap:8px!important}
.r2-about-aside .r2-metric{min-width:0;flex:1;padding:10px!important}
.r2-about-aside .r2-metric strong{font-size:20px!important}
.r2-about-main .r2-about-side{display:grid!important;grid-template-columns:1fr 1fr!important;gap:18px!important;margin:0!important}
#about .r2-about-box,#about .r2-info-card,#about .r2-about-contact{border-radius:18px!important;box-shadow:none!important}
#about .r2-about-box{padding:20px 22px!important}
#about .r2-about-side-title,#about .r2-info-label{font-size:10.5px!important;letter-spacing:.16em!important}
#about .r2-section-rule{margin:10px 0 14px!important;width:28px!important}
#about .r2-edu-row strong,#about .r2-cert-row strong,.r2-exp-top strong{font-size:13.5px!important}
#about .r2-edu-row span,#about .r2-cert-row span,.r2-exp-org{font-size:12px!important}
.r2-exp-body p{font-size:12.5px!important}
#about .r2-interest-tags span{font-size:12px!important;padding:5px 11px!important}
/* Collaboration: intro left, form right */
#about .r2-collab{margin-top:24px!important;display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);column-gap:32px;padding:26px 28px!important}
#about .r2-collab > .r2-about-side-title,#about .r2-collab > .r2-section-rule,#about .r2-collab > .r2-collab-intro{grid-column:1}
#about .r2-collab > .r2-collab-form{grid-column:2;grid-row:1 / span 4}
.r2-collab-intro{font-size:14px!important}
.r2-collab-form{gap:12px!important}
.r2-collab-form input,.r2-collab-form select,.r2-collab-form textarea{padding:9px 12px!important;font-size:14px!important}
@media (max-width:980px){
  .r2-about-layout{grid-template-columns:1fr}
  .r2-about-aside{position:static}
  #about .r2-collab{display:block}
}
@media (max-width:760px){
  .r2-about-main .r2-about-side{grid-template-columns:1fr!important}
  #about .r2-about-top{padding:18px!important}
}

/* ---------- Admin: refreshed dashboard ---------- */
.r2cms-top{background:rgba(255,255,255,.92)!important;backdrop-filter:blur(10px);border-bottom:1px solid var(--r2-line,#e7e3da)!important}
.r2cms-wrap{max-width:1120px!important;padding-top:34px!important}
.r2cms-kicker{font-size:10.5px;font-weight:800;letter-spacing:.18em;color:var(--r2-denim,#2f5d8c);margin-bottom:6px}
.r2cms-head h1{font-family:'Playfair Display',Georgia,serif!important;font-weight:500!important;font-size:34px!important;line-height:1.1!important;margin:0 0 6px!important;color:var(--r2-ink,#1b1c20)!important}
.r2cms-head .r2cms-muted{font-size:14px!important}
.r2cms-head{align-items:flex-end!important;gap:20px!important;margin-bottom:22px!important}
.r2cms-head .r2cms-actions{gap:8px!important;flex-wrap:wrap}
.r2cms-btn{border-radius:999px!important;font-size:13px!important;padding:9px 16px!important;transition:background .2s,color .2s,border-color .2s,transform .15s!important}
.r2cms-quicknav{display:none!important}
.r2cms-stats{gap:14px!important;margin-bottom:16px!important}
.r2cms-stat{position:relative;border-radius:16px!important;padding:18px 20px!important;border:1px solid var(--r2-line,#e7e3da)!important;background:#fff!important;overflow:hidden}
.r2cms-stat::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--r2-denim,#2f5d8c)}
.r2cms-stat:nth-child(2)::before{background:#3f6b5b}.r2cms-stat:nth-child(3)::before{background:#8a5a2b}.r2cms-stat:nth-child(4)::before{background:#1b1c20}
.r2cms-stat strong{font-size:30px!important;line-height:1.1!important}
.r2cms-stat span{font-size:10.5px!important;letter-spacing:.14em!important}
.r2-analytics{margin:0 0 26px!important;gap:14px!important}
.r2-an-card{border-radius:16px!important;border:1px solid var(--r2-line,#e7e3da)!important}
.r2cms-tabs{display:flex!important;gap:4px!important;padding:4px!important;background:#fff;border:1px solid var(--r2-line,#e7e3da)!important;border-radius:999px;margin-bottom:18px!important;width:max-content;max-width:100%;overflow-x:auto;scrollbar-width:none}
.r2cms-tabs::-webkit-scrollbar{display:none}
.r2cms-tab{border:0!important;border-radius:999px!important;padding:8px 16px!important;font-size:13px!important;white-space:nowrap;color:var(--r2-muted,#6e7076)!important;background:transparent!important}
.r2cms-tab.active{background:var(--r2-ink,#1b1c20)!important;color:#fff!important}
.r2cms-tab:not(.active):hover{color:var(--r2-ink,#1b1c20)!important;background:var(--r2-paper,#f3f1ec)!important}
.r2cms-item{border-radius:14px!important;margin-bottom:10px!important;padding:16px 18px!important;border:1px solid var(--r2-line,#e7e3da)!important;background:#fff!important;transition:border-color .2s,box-shadow .2s}
.r2cms-item:hover{border-color:#c9d6e4!important;box-shadow:0 8px 22px rgba(27,28,32,.06)}
.r2cms-item h3{font-size:17px!important;line-height:1.35!important;margin:6px 0 4px!important}
.r2cms-item p{font-size:13px!important;margin:0!important}
.r2cms-badge{border-radius:999px!important;padding:3px 10px!important;font-size:10px!important;background:var(--r2-denim-tint,#eaf0f6)!important;border:0!important}
.r2cms-item .r2cms-actions .r2cms-btn{padding:7px 13px!important;font-size:12.5px!important}
.r2cms-topic-heading h3{font-size:20px!important}
.r2cms-editor{border-radius:18px!important}
.r2cms-editor .r2cms-head h1{font-size:30px!important}
.r2-about-admin-head h3{font-size:19px!important}
@media (max-width:760px){
  .r2cms-head h1{font-size:28px!important}
  .r2cms-stats{grid-template-columns:1fr 1fr!important}
  .r2cms-tabs{width:100%}
}
html.r2-dark .r2cms-stat,html.r2-dark .r2cms-item,html.r2-dark .r2cms-tabs,html.r2-dark .r2-an-card,html.r2-dark #about .r2-about-top{background:#18191c!important;border-color:#2c2e33!important}
/* About aside: smaller R² mark and a tidy 3-up metrics row */
html body.r2-about-view #about .r2-about-mark{width:auto!important;height:auto!important;min-height:0!important;display:flex!important;align-items:flex-start!important;justify-content:flex-start!important;margin:0 0 10px!important}
html body.r2-about-view #about .r2-about-mark span{font-size:52px!important;line-height:.9!important}
html body.r2-about-view #about .r2-about-mark sup{font-size:22px!important;line-height:1!important;top:0!important;margin-left:2px!important}
.r2-about-aside .r2-scholar-metrics{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important}
.r2-about-aside .r2-scholar-metrics[hidden]{display:none!important}
.r2-about-aside .r2-scholar-metrics small{grid-column:1 / -1;margin:0!important}
.r2-about-aside .r2-metric span{white-space:nowrap}
/* Admin: diagnostic button stays small; item actions never stack */
.r2cms-head .r2cms-actions .r2cms-btn[onclick*="testFirestore"]{background:transparent!important;border-color:transparent!important;color:var(--r2-muted,#6e7076)!important;padding:9px 10px!important;font-weight:600!important}
.r2cms-head .r2cms-actions .r2cms-btn[onclick*="testFirestore"]:hover{color:var(--r2-denim,#2f5d8c)!important}
.r2cms-item{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:16px!important}
.r2cms-item > div:first-child{min-width:0;flex:1}
.r2cms-item > .r2cms-actions{flex:0 0 auto;display:flex!important;flex-wrap:nowrap!important;gap:6px!important}
@media (max-width:760px){.r2cms-item{display:block!important}.r2cms-item > .r2cms-actions{margin-top:12px;flex-wrap:wrap!important}}
@media (max-width:760px){
  .topin nav a,#r2-main-nav a{font-size:12.5px!important;padding-left:10px!important;padding-right:10px!important}
  body.r2-home-view .hero-links .btn{padding:11px 14px!important;font-size:13.5px!important}
  body.r2-home-view .hero > div:not(.r2-network-bg) > p{font-size:17px!important}
}

/* ---------- About: balanced rows (replaces the two-column layout) ---------- */
html body #about .r2-about-static{display:flex!important;flex-direction:column!important;gap:20px!important;max-width:1120px!important;margin:0 auto!important}
html body #about .r2-about-static > *{margin:0!important}
html body #about .r2-about-static > [hidden]{display:none!important}
/* Intro: mark left, text right */
html body #about .r2-about-top{padding:28px 32px!important;background:#fff;border:1px solid var(--r2-line,#e7e3da);border-radius:18px}
html body #about .r2-about-editorial{display:grid!important;grid-template-columns:auto minmax(0,1fr)!important;column-gap:32px!important;align-items:center!important}
html body #about .r2-about-divider{display:block!important;width:1px!important;height:100%!important;min-height:90px;background:var(--r2-line,#e7e3da)!important;grid-column:auto}
html body #about .r2-about-editorial{grid-template-columns:auto 1px minmax(0,1fr)!important}
html body.r2-about-view #about .r2-about-mark{margin:0!important}
html body.r2-about-view #about .r2-about-mark span{font-size:64px!important}
html body.r2-about-view #about .r2-about-mark sup{font-size:26px!important}
html body #about .r2-about-copy p{font-size:14.5px!important;line-height:1.75!important;margin:0 0 8px!important;max-width:760px}
html body #about .r2-about-copy .r2-cv-wrap{margin-top:12px!important}
/* Education | Certifications */
html body #about .r2-about-side{display:grid!important;grid-template-columns:1fr 1fr!important;gap:20px!important;align-items:stretch!important}
/* Profiles | Contact, equal height */
.r2-about-links{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:stretch}
.r2-about-links > *{margin:0!important;height:100%}
html body #about .r2-about-links .r2-profile-grid,html body #about .r2-about-links .r2-contact-grid{display:grid!important;grid-template-columns:1fr!important;gap:8px!important}
html body #about .r2-about-links .r2-info-card,html body #about .r2-about-links .r2-about-contact{padding:20px 22px!important}
html body #about .r2-about-links .r2-profile-item,html body #about .r2-about-links .r2-contact-item{padding:10px 12px!important;min-height:0!important}
html body #about .r2-about-links .r2-scholar-metrics{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important;margin:6px 0 12px!important}
html body #about .r2-about-links .r2-scholar-metrics[hidden]{display:none!important}
html body #about .r2-about-links .r2-scholar-metrics small{grid-column:1 / -1}
/* Every card: same padding, radius, border */
html body #about .r2-about-box,html body #about .r2-info-card,html body #about .r2-about-contact{padding:22px 24px!important;border-radius:18px!important;background:#fff!important;border:1px solid var(--r2-line,#e7e3da)!important;box-shadow:none!important}
html body #about .r2-collab{margin-top:4px!important}
@media (max-width:860px){
  html body #about .r2-about-side,.r2-about-links{grid-template-columns:1fr!important}
  html body #about .r2-about-editorial{grid-template-columns:1fr!important;row-gap:12px}
  html body #about .r2-about-divider{display:none!important}
  html body #about .r2-about-top{padding:22px!important}
}
html.r2-dark body #about .r2-about-box,html.r2-dark body #about .r2-info-card,html.r2-dark body #about .r2-about-contact,html.r2-dark body #about .r2-about-top{background:#18191c!important;border-color:#2c2e33!important}

/* ===================== Six finishing touches ===================== */
/* 1. Uniform publication covers: white mat, same inner spacing, image centred */
.pub-card .pub-thumb,.pub-card .project-visual{box-sizing:border-box!important;height:176px!important;padding:16px 18px!important;object-fit:contain!important;background:#fff!important;border-bottom:1px solid var(--r2-line,#e7e3da)!important}
.r2-latest-media img{padding:14px!important;object-fit:contain!important;background:#fff}
html.r2-dark .pub-card .pub-thumb,html.r2-dark .pub-card .project-visual,html.r2-dark .r2-latest-media img{background:#f4f3ef!important}

/* 2. Hero network: nodes breathe slowly, links shimmer (off with reduced motion) */
@keyframes r2NodePulse{0%,100%{opacity:.55;transform:scale(1)}50%{opacity:1;transform:scale(1.35)}}
@keyframes r2LinkShimmer{0%,100%{opacity:.75}50%{opacity:1}}
.r2-network-bg circle{transform-box:fill-box;transform-origin:center;animation:r2NodePulse 5.5s ease-in-out infinite}
.r2-network-bg circle:nth-child(3n+1){animation-delay:-1.2s;animation-duration:6.5s}
.r2-network-bg circle:nth-child(3n+2){animation-delay:-2.8s;animation-duration:7.5s}
.r2-network-bg circle:nth-child(4n){fill:#9fb6cf}
.r2-network-bg g[stroke]{animation:r2LinkShimmer 9s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){.r2-network-bg circle,.r2-network-bg g[stroke]{animation:none}}

/* 3. "New" badges */
.r2-new{display:inline-flex;align-items:center;gap:5px;margin:0 6px;padding:3px 8px;border-radius:999px;background:#e8f1ec;color:#2f6b52;font:800 9.5px/1 'DM Sans',Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase;vertical-align:middle}
.r2-new::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.project-meta .r2-new{margin-left:0}
.r2-latest-new{position:absolute;right:12px;top:12px;padding:5px 10px;border-radius:999px;background:#2f6b52;color:#fff;font:800 10px/1 'DM Sans',Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase}
html.r2-dark .r2-new{background:#1d3329;color:#9fd6bb}

/* 4. Year separators in the publication grid */
.r2-year-sep{grid-column:1 / -1;display:flex;align-items:center;gap:14px;margin:10px 0 -4px}
.r2-year-sep:first-child{margin-top:0}
.r2-year-sep[hidden]{display:none!important}
.r2-year-sep span{font:500 22px/1 'Playfair Display',Georgia,serif;color:var(--r2-ink,#1b1c20)}
.r2-year-sep::after{content:"";flex:1;height:1px;background:var(--r2-line,#e7e3da)}

/* 6. Back to top */
.r2-top-btn{position:fixed;right:max(20px,env(safe-area-inset-right));bottom:max(20px,calc(env(safe-area-inset-bottom) + 12px));z-index:800;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--r2-line,#e7e3da);background:#fff;color:var(--r2-ink,#1b1c20);box-shadow:0 10px 26px rgba(27,28,32,.14);cursor:pointer;opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity .25s ease,transform .25s ease,background .2s,color .2s}
.r2-top-btn.is-visible{opacity:1;transform:none;pointer-events:auto}
.r2-top-btn svg{width:20px;height:20px}
.r2-top-btn:hover{background:var(--r2-ink,#1b1c20);color:#fff}
body.r2-note-modal-open .r2-top-btn,body.r2-publication-modal-open .r2-top-btn,body.r2-search-open .r2-top-btn,#r2cms.open ~ .r2-top-btn{opacity:0;pointer-events:none}
html.r2-dark .r2-top-btn{background:#18191c;border-color:#2c2e33;color:#eceae6}
@media (max-width:760px){.r2-top-btn{width:40px;height:40px}}

/* ===================== Nine details ===================== */
/* (1) R² mark with a thin denim orbit and network dots */
html body.r2-about-view #about .r2-about-mark{position:relative!important;width:108px!important;height:108px!important;justify-content:center!important;align-items:center!important;border-radius:50%;isolation:isolate}
html body.r2-about-view #about .r2-about-mark::before{content:"";position:absolute;inset:0;border-radius:50%;border:1.5px solid rgba(47,93,140,.35);z-index:-1}
html body.r2-about-view #about .r2-about-mark::after{content:"";position:absolute;inset:-6px;border-radius:50%;z-index:-1;
  background:radial-gradient(circle,#2f5d8c 0 3px,transparent 3.5px) 50% 0/9px 9px no-repeat,
             radial-gradient(circle,#2f5d8c 0 2.5px,transparent 3px) 100% 62%/8px 8px no-repeat,
             radial-gradient(circle,rgba(47,93,140,.55) 0 2.5px,transparent 3px) 8% 80%/8px 8px no-repeat;
  animation:r2Orbit 40s linear infinite}
@keyframes r2Orbit{to{transform:rotate(360deg)}}
html body.r2-about-view #about .r2-about-mark span{font-size:52px!important}
html body.r2-about-view #about .r2-about-mark sup{font-size:22px!important}
html.r2-dark body.r2-about-view #about .r2-about-mark::before{border-color:rgba(143,179,221,.4)}

/* (2) Topic colour accents */
.r2-tc{--tc:#2f5d8c}
.r2-hero-topics span.r2-tc,#about .r2-interest-tags span.r2-tc,.r2-search-topics button.r2-tc{display:inline-flex;align-items:center;gap:7px}
.r2-hero-topics span.r2-tc::before,#about .r2-interest-tags span.r2-tc::before,.r2-search-topics button.r2-tc::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--tc);flex:0 0 auto}
.r2-public-topic-heading h4.r2-tc,.r2-note-modal-meta.r2-tc,.r2-project-modal-meta.r2-tc{color:var(--tc)!important}
.projects-section .project-meta.r2-tc{color:var(--tc)!important}

/* (3) Pointer glow */
.r2-glow{background-image:radial-gradient(380px circle at var(--mx,50%) var(--my,50%),rgba(47,93,140,.075),transparent 62%)!important}
html.r2-dark .r2-glow{background-image:radial-gradient(380px circle at var(--mx,50%) var(--my,50%),rgba(143,179,221,.09),transparent 62%)!important}

/* (4) Faint journal-paper grid behind the page */
html:not(.r2-dark) body{background-image:linear-gradient(rgba(27,28,32,.028) 1px,transparent 1px),linear-gradient(90deg,rgba(27,28,32,.028) 1px,transparent 1px)!important;background-size:32px 32px!important;background-attachment:fixed}
html:not(.r2-dark) main{background:transparent!important}
html:not(.r2-dark) body.r2-home-view .hero{background:transparent!important}

/* (5) Reading progress */
.r2-read-progress{position:fixed;left:0;right:0;top:0;height:3px;z-index:10060;opacity:0;pointer-events:none;transition:opacity .2s}
.r2-read-progress.is-on{opacity:1}
.r2-read-progress i{display:block;height:100%;background:var(--r2-denim,#2f5d8c);transform:scaleX(0);transform-origin:left;transition:transform .08s linear}

/* (6) Page change cross-fade */
::view-transition-old(root),::view-transition-new(root){animation-duration:.28s;animation-timing-function:cubic-bezier(.2,.7,.2,1)}

/* (7) Latest hover preview */
.r2-latest-media{position:relative}
.r2-latest-peek{position:absolute;inset:auto 0 0 0;padding:16px 16px 14px;font-size:13px;line-height:1.55;color:#fff;background:linear-gradient(180deg,transparent,rgba(20,21,24,.86) 38%);opacity:0;transform:translateY(8px);transition:opacity .25s ease,transform .25s ease;pointer-events:none}
@media (hover:hover){.r2-latest-card:hover .r2-latest-peek,.r2-latest-card:focus-visible .r2-latest-peek{opacity:1;transform:none}}
@media (hover:none){.r2-latest-peek{display:none}}

@media (prefers-reduced-motion:reduce){
  html body.r2-about-view #about .r2-about-mark::after{animation:none}
  ::view-transition-old(root),::view-transition-new(root){animation:none}
}
/* Paper grid continues through the hero; soften the left side only, no hard edge */
html:not(.r2-dark) body.r2-home-view .hero::before{background:radial-gradient(ellipse 60% 70% at 25% 50%,rgba(251,250,246,.85),transparent 70%)!important}
/* R² mark: superscript sits top-right of the R */
html body.r2-about-view #about .r2-about-mark{flex-direction:row!important;align-items:center!important}
html body.r2-about-view #about .r2-about-mark sup{align-self:flex-start!important;margin:22px 0 0 1px!important;position:static!important}

/* Logo: transparent, tightly-cropped files sized by height (no white box) */
html body .top .brand{background:transparent!important;padding:0!important;display:flex!important;align-items:center!important}
html body .top .brand img.brand-logo{width:auto!important;max-width:none!important;height:46px!important;min-height:0!important;max-height:none!important;object-fit:contain!important;background:transparent!important;mix-blend-mode:normal!important;box-shadow:none!important;border:0!important;border-radius:0!important;padding:0!important}
@media (max-width:760px){html body .top .brand img.brand-logo{height:36px!important}}
html:not(.r2-dark) body .top{background:rgba(251,250,246,.98)!important}
html body .top .brand{width:auto!important;max-width:none!important;min-width:0!important;flex:0 0 auto!important;overflow:visible!important;height:auto!important}

/* Accessible contrast for Home and publication controls in both themes */
#applyPublicationFilter,
#applyProjectFilter {
  color:#fff!important;
  background:#244a72!important;
  border:1px solid #244a72!important;
  font-weight:700!important;
}
#applyPublicationFilter:hover,
#applyProjectFilter:hover {
  color:#fff!important;
  background:#2f5d8c!important;
  border-color:#2f5d8c!important;
}
html.r2-dark #applyPublicationFilter,
html.r2-dark #applyProjectFilter {
  color:#101820!important;
  background:#a8d1f5!important;
  border-color:#a8d1f5!important;
}
html.r2-dark #applyPublicationFilter:hover,
html.r2-dark #applyProjectFilter:hover {
  color:#101820!important;
  background:#c4e1fb!important;
  border-color:#c4e1fb!important;
}

/* Research focus chips must stay readable over both panel colors. */
html:not(.r2-dark) body.r2-home-view .hero > aside.r2-hero-panel,
html:not(.r2-dark) #about .r2-info-card {
  color:#1b1c20!important;
}
html:not(.r2-dark) body.r2-home-view .r2-hero-panel-kicker,
html:not(.r2-dark) #about .r2-info-label {
  color:#244a72!important;
}
html:not(.r2-dark) body.r2-home-view .r2-hero-topics span,
html:not(.r2-dark) #about .r2-interest-tags span {
  color:#24384b!important;
  background:#edf3f8!important;
  border-color:#c8d6e3!important;
}
html.r2-dark body.r2-home-view .hero > aside.r2-hero-panel,
html.r2-dark #about .r2-info-card {
  color:#f4f7fa!important;
  background:#1c2732!important;
  border-color:#3b5368!important;
}
html.r2-dark body.r2-home-view .r2-hero-panel-kicker,
html.r2-dark #about .r2-info-label {
  color:#c1dcf3!important;
}
html.r2-dark body.r2-home-view .r2-hero-topics span,
html.r2-dark #about .r2-interest-tags span {
  color:#f1f6fb!important;
  background:#273746!important;
  border-color:#49647b!important;
}
html.r2-dark body.r2-home-view .r2-hero-stats,
html.r2-dark body.r2-home-view .r2-hero-stats a + a {
  border-color:#40576b!important;
}
html.r2-dark body.r2-home-view .r2-hero-stats strong {color:#fff!important}
html.r2-dark body.r2-home-view .r2-hero-stats span {color:#c1cfdb!important}

/* Latest updates and stay-in-touch text/actions on dark surfaces. */
html.r2-dark body.r2-home-view .r2-latest-head h2,
html.r2-dark body.r2-home-view .r2-latest-head p,
html.r2-dark body.r2-home-view .r2-latest-caption,
html.r2-dark body.r2-home-view .r2-latest-type,
html.r2-dark body.r2-home-view .r2-latest-empty,
html.r2-dark body.r2-home-view .r2-ongoing-list,
html.r2-dark body.r2-home-view .r2-ongoing-list p {
  color:#f0f4f7!important;
}
html.r2-dark body.r2-home-view .r2-latest-head p,
html.r2-dark body.r2-home-view .r2-latest-type,
html.r2-dark body.r2-home-view .r2-latest-empty {color:#c1cfdb!important}
html.r2-dark body.r2-home-view .r2-latest-media {
  border-color:#40576b!important;
}
html.r2-dark body.r2-home-view .r2-cta-card:not(.r2-cta-dark) {
  color:#f4f7fa!important;
  background:#1c2732!important;
  border-color:#3b5368!important;
}
html.r2-dark body.r2-home-view .r2-cta-card:not(.r2-cta-dark) h3 {color:#fff!important}
html.r2-dark body.r2-home-view .r2-cta-card:not(.r2-cta-dark) p {color:#d0dbe5!important}
html.r2-dark body.r2-home-view .r2-cta-btn,
html.r2-dark body.r2-home-view .r2-cta-btn.light {
  color:#17212a!important;
  background:#f1f5f8!important;
  border-color:#f1f5f8!important;
}
html.r2-dark body.r2-home-view .r2-cta-btn.primary {
  color:#fff!important;
  background:#28659c!important;
  border-color:#74b2e4!important;
}
html.r2-dark body.r2-home-view .r2-cta-btn:hover,
html.r2-dark body.r2-home-view .r2-cta-btn.light:hover {
  color:#101820!important;
  background:#d9ebf8!important;
  border-color:#d9ebf8!important;
}
html.r2-dark body.r2-home-view .r2-cta-btn.primary:hover {
  color:#fff!important;
  background:#347db8!important;
  border-color:#9cccf0!important;
}
html:not(.r2-dark) body.r2-home-view .r2-cta-btn:not(.primary) {
  color:#1b1c20!important;
  background:#fff!important;
}
/* Loading skeletons for "Latest" while Firebase data arrives */
@keyframes r2Skel{0%,100%{opacity:.55}50%{opacity:1}}
.r2-skel{aspect-ratio:4/3;border-radius:14px;background:linear-gradient(#fff,#fff) padding-box,#fff;border:1px solid var(--r2-line,#e7e3da);position:relative;overflow:hidden;animation:r2Skel 1.4s ease-in-out infinite}
.r2-skel::after{content:"";position:absolute;left:14%;right:14%;bottom:-38px;height:12px;border-radius:6px;background:#eceae5}
html.r2-dark .r2-skel{background:#18191c;border-color:#2c2e33}
@media (prefers-reduced-motion:reduce){.r2-skel{animation:none}}

/* Research poster layout (used by research notes with the poster template) */
.poster-brandbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 4px 18px}
.poster-brand-logo{display:block;width:auto;height:40px;object-fit:contain}
.poster-kicker,.poster-eyebrow{font-size:10px;letter-spacing:.16em;font-weight:800;color:#637387}
.poster-kicker{padding:8px 12px;border:1px solid #dce1e7;border-radius:999px}
.poster-board{background:#fff;border:1px solid #dfe3e8;box-shadow:0 18px 55px rgba(22,31,42,.11);overflow:hidden}
.poster-hero{display:grid;grid-template-columns:1.6fr .8fr;gap:34px;padding:32px 36px;background:#111316;color:#fff;align-items:center}
.poster-eyebrow{color:#a8c6e2;margin:0 0 12px}
.poster-hero h1{font-size:clamp(30px,5vw,58px);line-height:1.02;letter-spacing:-.045em;margin:0 0 14px;color:#fff}
.poster-authors{font-weight:700;margin:0 0 4px;color:#f3f5f7}
.poster-affiliation{font-size:13px;color:#b8bec7;margin:0}
.poster-abstract{border-left:1px solid #4a4f57;padding-left:24px}
.poster-abstract h2,.poster-cell h2,.poster-analysis h2,.poster-conclusion h2{font-size:16px;line-height:1.2;margin:0;color:inherit}
.poster-abstract p{font-size:12px;line-height:1.6;color:#c9cdd3;margin:9px 0 0}
.poster-pair{display:grid;grid-template-columns:1fr 1fr}
.poster-cell{min-height:122px;padding:21px 24px;border-bottom:1px solid #dfe3e8;display:grid;grid-template-columns:minmax(90px,.42fr) 1fr;gap:16px;align-items:start}
.poster-cell:nth-child(odd){border-right:1px solid #dfe3e8}
.poster-cell h2{padding-top:2px;color:#202328}
.poster-cell p,.poster-analysis-copy p,.poster-conclusion p{font-size:12px;line-height:1.65;color:#555c65;margin:0;white-space:pre-line}
.poster-analysis{padding:26px 28px;background:#f2f4f6;display:grid;grid-template-columns:130px 1fr 220px;gap:22px;align-items:center;border-bottom:1px solid #dfe3e8}
.poster-analysis h2{align-self:start;padding-top:3px}
.poster-visual{height:110px;border-left:1px solid #d8dde3;padding:8px 12px;display:grid;grid-template-columns:1fr 1fr;gap:13px;align-items:end;position:relative}
.poster-bars{height:74px;display:flex;flex-direction:column;justify-content:space-between}
.poster-bars i{display:block;height:10px;background:#b8bec5;border-radius:0 6px 6px 0}
.poster-bars i:nth-child(1){width:58%}.poster-bars i:nth-child(2){width:78%;background:#202328}.poster-bars i:nth-child(3){width:48%}.poster-bars i:nth-child(4){width:91%;background:#202328}
.poster-dots{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;align-content:center}
.poster-dots i{width:11px;height:11px;border-radius:50%;background:#6f7883;box-shadow:0 13px 0 -2px #6f7883;margin-bottom:13px}
.poster-visual small{position:absolute;right:12px;top:0;font-size:8px;font-weight:800;letter-spacing:.12em;color:#707984}
.poster-conclusion{display:grid;grid-template-columns:130px 1fr;gap:22px;padding:22px 28px;border-bottom:1px solid #dfe3e8}
.poster-conclusion h2{padding-top:2px}
.poster-footer{display:flex;gap:18px;padding:14px 28px;background:#f8f9fa;color:#6a7078;font-size:10px;line-height:1.5}
.poster-footer strong{flex:0 0 auto;color:#363a40}
.poster-footer p{margin:0;white-space:pre-line}
html.r2-dark .poster-kicker{border-color:#343b44;color:#b7c7d7}
html.r2-dark .poster-board{background:#181a1e;border-color:#353a42}
html.r2-dark .poster-cell{border-color:#353a42}
html.r2-dark .poster-cell h2,html.r2-dark .poster-conclusion h2{color:#f1f2f4}
html.r2-dark .poster-cell p,html.r2-dark .poster-analysis-copy p,html.r2-dark .poster-conclusion p{color:#c1c6ce}
html.r2-dark .poster-analysis,html.r2-dark .poster-footer{background:#202329;border-color:#353a42}
html.r2-dark .poster-footer strong{color:#e0e3e8}
@media(max-width:680px){.poster-hero{grid-template-columns:1fr;gap:20px;padding:26px 22px}.poster-abstract{border-left:0;border-top:1px solid #4a4f57;padding:16px 0 0}.poster-pair{grid-template-columns:1fr}.poster-cell{min-height:0;border-right:0!important;grid-template-columns:1fr;gap:8px;padding:18px 20px}.poster-analysis{grid-template-columns:1fr 150px;gap:12px;padding:20px}.poster-analysis h2{grid-column:1/-1}.poster-conclusion{grid-template-columns:1fr;gap:8px;padding:20px}.poster-footer{padding:14px 20px}}

/* Research notes written with the poster template (opened in the note modal) */
#r2n-poster-fields[hidden],#r2n-article-fields[hidden],#r2cms-note-form .r2cms-field[hidden]{display:none!important}
.r2-poster-fields{border:1px dashed #cfd6de;border-radius:14px;padding:16px 16px 4px;margin:0 0 18px;background:#f8fafb}
.r2-poster-fields-head{display:grid;gap:4px;margin-bottom:14px}
.r2-poster-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.r2-poster-row textarea{min-height:0;resize:vertical}
.r2-note-poster-badge{display:inline-block;margin-right:6px;padding:2px 8px;border-radius:999px;background:#111316;color:#fff;font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.r2-note-modal-dialog.is-poster{width:min(1100px,100%);padding:24px 26px 30px}
.r2-note-modal-dialog.is-poster .poster-brandbar{padding:0 44px 16px 0}
.r2-note-modal-dialog.is-poster .poster-board h2{font-family:inherit;font-size:16px;font-weight:800;letter-spacing:0;line-height:1.2;margin:0;color:#202328}
.r2-note-modal-dialog.is-poster .poster-board .poster-abstract h2{color:#fff}
.r2-note-modal-dialog.is-poster .poster-hero h1{font-family:inherit;font-weight:800}
.r2-note-modal-dialog.is-poster .poster-abstract p{white-space:pre-line}
.poster-figure{margin:0;border-left:1px solid #d8dde3;padding-left:14px}
.poster-figure img{display:block;width:100%;max-height:230px;object-fit:contain;border-radius:6px}
.r2-note-poster-extra{padding-top:6px}
.r2-note-poster-extra:empty{display:none}
html.r2-dark .r2-poster-fields{background:#1c1f24;border-color:#3a414b}
html.r2-dark .r2-note-poster-badge{background:#e8edf3;color:#111316}
html.r2-dark .r2-note-modal-dialog.is-poster .poster-board h2{color:#f1f2f4}
html.r2-dark .poster-figure{border-color:#353a42}
@media(max-width:680px){.r2-poster-row{grid-template-columns:1fr;gap:0}.r2-note-modal-dialog.is-poster{padding:18px 12px 22px}.r2-note-modal-dialog.is-poster .poster-brand-logo{height:30px}}

/* Poster images: up to 10, each with its own width */
.poster-gallery{padding:22px 24px;border-bottom:1px solid #dfe3e8}
.poster-gallery-grid{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;align-items:flex-start}
.poster-gallery figure{margin:0;flex:0 0 calc(var(--w) - 14px);max-width:100%}
.poster-gallery figure[style*="--w:100%"]{flex-basis:100%}
.poster-gallery img{display:block;width:100%;height:auto;border-radius:6px}
.poster-gallery figcaption{margin-top:6px;font-size:11px;line-height:1.5;color:#6a7078;text-align:center}
html.r2-dark .poster-gallery{border-color:#353a42}
html.r2-dark .poster-gallery figcaption{color:#aab1ba}
.r2-poster-img-list{display:grid;gap:10px}
.r2-poster-img-item{display:grid;grid-template-columns:180px 1fr;gap:14px;padding:10px;border:1px solid #dfe3e8;border-radius:10px;background:#fff}
.r2-poster-img-thumb{display:flex;justify-content:center;align-items:center;background:repeating-linear-gradient(45deg,#f3f5f7 0 8px,#eceff2 8px 16px);border-radius:6px;min-height:90px;overflow:hidden}
.r2-poster-img-thumb img{display:block;max-height:140px;object-fit:contain}
.r2-poster-img-controls{display:grid;gap:8px;align-content:start}
.r2-poster-img-controls label{display:grid;gap:4px;font-size:11px;font-weight:700;letter-spacing:.08em}
.r2-poster-img-controls input[type=range]{width:100%}
.r2-poster-img-btns{display:flex;gap:6px;flex-wrap:wrap}
.r2-poster-img-btns .r2cms-btn{padding:6px 12px}
html.r2-dark .r2-poster-img-item{background:#181a1e;border-color:#353a42}
@media(max-width:680px){.poster-gallery{padding:16px 14px}.poster-gallery figure{flex-basis:calc(max(var(--w),50%) - 14px)}.r2-poster-img-item{grid-template-columns:1fr}}

/* Flexible poster sections */
.poster-sections{display:grid;grid-template-columns:1fr 1fr;margin-right:-1px}
.poster-sections .poster-cell{display:block;min-height:0;border-right:1px solid #dfe3e8;border-bottom:1px solid #dfe3e8;padding:22px 24px}
.poster-sections .poster-cell.is-full{grid-column:1/-1}
.poster-sections .poster-cell h2{margin:0 0 10px}
.poster-text{font-size:13px;line-height:1.7;color:#555c65}
.poster-text p{margin:0 0 10px;white-space:normal;font-size:inherit;line-height:inherit;color:inherit}
.poster-text p:last-child,.poster-text ul:last-child{margin-bottom:0}
.poster-text ul{margin:0 0 10px;padding-left:18px}
.poster-text li{margin:3px 0}
.poster-text strong{color:#202328}
.poster-abstract .poster-text{margin-top:9px;font-size:12px;color:#c9cdd3}
.poster-abstract .poster-text strong{color:#fff}
html.r2-dark .poster-sections .poster-cell{border-color:#353a42}
html.r2-dark .poster-text{color:#c1c6ce}
html.r2-dark .poster-text strong{color:#f1f2f4}
.r2-poster-block{border-top:1px solid #dfe3e8;margin-top:6px;padding:14px 0}
.r2-poster-block-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}
.r2-poster-block-top label{font-weight:800;letter-spacing:.08em;font-size:12px}
.r2-poster-block-btns{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.r2-poster-sec-list{display:grid;gap:10px}
.r2-poster-sec-item{display:grid;gap:8px;padding:12px;border:1px solid #dfe3e8;border-radius:10px;background:#fff}
.r2-poster-sec-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.r2-poster-sec-bar strong{font-size:12px;letter-spacing:.06em;text-transform:uppercase}
.r2-poster-sec-bar .r2-poster-img-btns{margin-left:auto}
.r2-poster-sec-item input,.r2-poster-sec-item textarea,.r2-poster-sec-item select,.r2-poster-img-controls select,.r2-poster-img-caption{width:100%;box-sizing:border-box;padding:9px 11px;border:1px solid #d6dce3;border-radius:8px;font:inherit;background:#fff;color:inherit}
.r2-poster-sec-bar select{width:auto}
html.r2-dark .r2-poster-sec-item,html.r2-dark .r2-poster-sec-item input,html.r2-dark .r2-poster-sec-item textarea,html.r2-dark .r2-poster-sec-item select,html.r2-dark .r2-poster-img-controls select,html.r2-dark .r2-poster-img-caption{background:#181a1e;border-color:#353a42}
html.r2-dark .r2-poster-block{border-color:#353a42}
@media(max-width:680px){.poster-sections{grid-template-columns:1fr}.poster-sections .poster-cell{padding:18px 20px}.r2-poster-block-top{flex-direction:column}.r2-poster-block-btns{justify-content:flex-start}}

/* Poster style: Denim (navy blue, numbered cards) */
.poster-num{display:none}
.poster-theme-denim{background:#eaf1fa;border-color:#bfd2ea}
.poster-theme-denim .poster-hero{background:radial-gradient(120% 140% at 0% 0%,#1d4b85 0%,#123059 45%,#0a1c36 100%);grid-template-columns:1.55fr .75fr;gap:30px;padding:30px 34px 32px;align-items:stretch}
.r2-note-modal-dialog.is-poster .poster-theme-denim .poster-hero h1{font-family:'Playfair Display',Georgia,serif;font-weight:700;letter-spacing:-.02em;line-height:1.08;font-size:clamp(30px,4.6vw,52px)}
.poster-title-accent{display:block;color:#8cc4ff}
.poster-theme-denim .poster-eyebrow{color:#8cc4ff}
.poster-lead{margin:14px 0 10px;font-style:italic;font-size:15px;line-height:1.6;color:#d6e4f5}
.poster-lead p{margin:0 0 6px}
.poster-lead strong{color:#fff}
.poster-theme-denim .poster-affiliation{color:#a9bfd9}
.poster-meta{display:grid;gap:12px;align-content:start}
.poster-meta-box{border:1px solid rgba(140,196,255,.35);border-radius:10px;padding:12px 14px;background:rgba(8,20,40,.35)}
.r2-note-modal-dialog.is-poster .poster-board .poster-meta-box h2{display:inline-block;margin:0 0 8px;padding:3px 10px;border-radius:4px;background:#8cc4ff;color:#0a1c36;font-size:10px;letter-spacing:.14em;text-transform:uppercase}
.poster-meta-box ul{list-style:none;margin:0;padding:0;display:grid;gap:3px;font-size:12.5px;color:#e4eefa}
.poster-meta-box p{margin:0;font-size:12.5px;line-height:1.5;color:#c9d9ec}
.poster-meta-box strong{color:#fff;font-size:15px}
.poster-theme-denim .poster-sections{gap:14px;padding:16px;margin:0}
.poster-board.poster-theme-denim .poster-sections .poster-cell{background:#fff;border:1.5px solid #a9c3e3;border-radius:12px;padding:0;overflow:hidden;box-shadow:0 6px 18px rgba(18,48,89,.08)}
.r2-note-modal-dialog.is-poster .poster-board.poster-theme-denim .poster-sections .poster-cell h2{display:flex;align-items:center;gap:10px;margin:0;padding:10px 14px;background:linear-gradient(90deg,#0f2a4d,#1d4b85);color:#fff;font-family:'Playfair Display',Georgia,serif;font-size:18px;font-weight:700}
.poster-theme-denim .poster-num{display:inline-grid;place-items:center;flex:0 0 auto;width:30px;height:30px;border-radius:50%;background:#fff;color:#0f2a4d;font-family:'DM Sans',sans-serif;font-size:15px;font-weight:800}
.poster-theme-denim .poster-sections .poster-body{padding:14px 16px 16px}
.poster-theme-denim .poster-sections .poster-text{color:#243b5a}
.poster-theme-denim .poster-text strong{color:#0f3a70}
.poster-theme-denim .poster-text li::marker{color:#2f6db5}
.poster-theme-denim .poster-gallery{border:0;padding:0 16px 16px}
.poster-theme-denim .poster-gallery figure{background:#fff;border:1.5px solid #a9c3e3;border-radius:12px;padding:10px;box-sizing:border-box}
.poster-theme-denim .poster-gallery figcaption{color:#355478}
html.r2-dark .poster-theme-denim{background:#0c1829;border-color:#24406a}
html.r2-dark .poster-board.poster-theme-denim .poster-sections .poster-cell,html.r2-dark .poster-theme-denim .poster-gallery figure{background:#12233b;border-color:#2c4c78}
html.r2-dark .poster-theme-denim .poster-sections .poster-text{color:#c9d8ea}
html.r2-dark .poster-theme-denim .poster-text strong{color:#e6f0fc}
html.r2-dark .poster-theme-denim .poster-gallery{border:0}
@media(max-width:680px){.poster-theme-denim .poster-hero{grid-template-columns:1fr;padding:24px 20px}.poster-theme-denim .poster-sections{padding:12px;gap:12px}}

/* Section icons */
.poster-body.has-icon{display:flex;gap:14px;align-items:flex-start}
.poster-body.has-icon .poster-text{flex:1;min-width:0}
.poster-icon-box{flex:0 0 auto;display:grid;place-items:center;width:46px;height:46px;border-radius:12px;background:#eef1f4;color:#202328}
.poster-icon{width:26px;height:26px;display:block}
img.poster-icon{object-fit:contain}
.poster-theme-denim .poster-icon-box{background:#e3eefb;color:#1d4b85;border:1px solid #bcd3ee}
html.r2-dark .poster-icon-box{background:#23272e;color:#e6e9ee}
html.r2-dark .poster-theme-denim .poster-icon-box{background:#1a3254;color:#9ccbff;border-color:#2c4c78}
.r2-poster-icon-btn{display:inline-flex;align-items:center;gap:6px;padding:4px 10px 4px 4px;border:1px solid #d6dce3;border-radius:999px;background:#fff;cursor:pointer;font:inherit;font-size:12px;color:inherit}
.r2-poster-icon-btn .poster-icon-box{width:28px;height:28px;border-radius:50%}
.r2-poster-icon-btn .poster-icon{width:17px;height:17px}
.r2-poster-icon-none{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#eef1f4;font-weight:700}
.r2-poster-icon-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(42px,1fr));gap:6px;padding:10px;border:1px solid #dfe3e8;border-radius:10px;background:#f8fafb}
.r2-poster-icon-pick[hidden]{display:none}
.r2-poster-icon-pick button{display:grid;place-items:center;height:42px;border:1px solid #dfe3e8;border-radius:8px;background:#fff;color:#1d4b85;cursor:pointer;font:inherit;font-size:11px}
.r2-poster-icon-pick button svg{width:22px;height:22px}
.r2-poster-icon-pick button:hover{border-color:#1d4b85}
.r2-poster-icon-pick button.is-on{border-color:#1d4b85;background:#e3eefb;box-shadow:0 0 0 2px rgba(29,75,133,.25)}
.r2-poster-icon-pick [data-icon=""],.r2-poster-icon-pick [data-icon-upload]{grid-column:span 2}
html.r2-dark .r2-poster-icon-btn,html.r2-dark .r2-poster-icon-pick button{background:#181a1e;border-color:#353a42;color:#9ccbff}
html.r2-dark .r2-poster-icon-pick{background:#1c1f24;border-color:#353a42}
@media(max-width:680px){.poster-icon-box{width:40px;height:40px}.poster-icon{width:22px;height:22px}}

/* Work & training descriptions (paragraphs + bullet lists) */
.r2-exp-desc{margin-top:8px;font-size:12.5px;line-height:1.65;color:#6f7279}
.r2-exp-desc p{margin:0 0 4px}
.r2-exp-desc ul{margin:2px 0 0;padding-left:18px}
.r2-exp-desc li{margin:2px 0}
.r2-exp-desc li::marker{color:#2f5f8f}
html.r2-dark .r2-exp-desc{color:#b7b9bc}
.r2-seed-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px;border-left:4px solid #2f5f8f}
@media(max-width:680px){.r2-seed-banner{flex-direction:column;align-items:flex-start}}

.r2-cert-year{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:999px;background:#eef3f8;color:#2f5f8f;font-style:normal;font-size:11px;font-weight:700;vertical-align:middle}
html.r2-dark .r2-cert-year{background:#1f2a36;color:#9cc3ea}

/* Phones and tablets: drop effects that force the browser to repaint on every
   scroll frame (background blur behind the sticky header and overlays, and a
   fixed background grid). Surfaces become slightly more opaque instead. */
@media (hover:none),(pointer:coarse),(max-width:900px){
  *,*::before,*::after{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
  html:not(.r2-dark) body{background-attachment:scroll!important}
  .top{background:rgba(255,255,255,.985)!important}
  html.r2-dark .top{background:rgba(21,22,24,.985)!important}
  .r2-note-modal-backdrop,.r2cms-backdrop{background:rgba(31,32,36,.55)!important}
}

/* Home hero: small brand label above the description */
body.r2-home-view .hero .r2-hero-copy .r2-hero-kicker{font-size:11px;line-height:1.4;letter-spacing:.2em;font-weight:800;color:#2f5f8f;margin:0 0 14px}
html.r2-dark body.r2-home-view .hero .r2-hero-copy .r2-hero-kicker{color:#9cc3ea}
/* Footer: brand, quick links, profile icons */
footer.r2-footer{max-width:1180px;margin:40px auto 0;padding:34px 26px 30px;border-top:1px solid #e7e3da;display:grid;grid-template-columns:1.4fr 1fr auto;gap:24px 40px;align-items:start;color:#6e7076;font-size:13px}
.r2-footer-brand img{height:38px;width:auto;display:block;margin-bottom:10px}
.r2-footer-brand p{margin:0;max-width:340px;line-height:1.6}
.r2-footer-links{display:grid;grid-template-columns:repeat(2,max-content);gap:8px 28px}
.r2-footer-links a{color:#3a3d44;font-weight:600}
.r2-footer-links a:hover{color:#2f5f8f}
.r2-footer-social{display:flex;flex-wrap:wrap;gap:8px}
.r2-footer-social a{display:grid;place-items:center;width:38px;height:38px;border:1px solid #e1ddd3;border-radius:50%;color:#2f5f8f;background:#fff;transition:transform .15s,border-color .15s}
.r2-footer-social a:hover{transform:translateY(-2px);border-color:#2f5f8f}
.r2-footer-social svg{width:18px;height:18px}
.r2-footer-bottom{grid-column:1/-1;display:flex;justify-content:space-between;gap:12px;padding-top:18px;border-top:1px solid #efece5;font-size:12px;color:#8f9297}
html.r2-dark footer.r2-footer{border-color:#2a2d33;color:#a3a6ab}
html.r2-dark .r2-footer-links a{color:#d9dbde}
html.r2-dark .r2-footer-social a{background:#181a1e;border-color:#33373e;color:#9cc3ea}
html.r2-dark .r2-footer-bottom{border-color:#25282d}
@media(max-width:760px){footer.r2-footer{grid-template-columns:1fr;gap:20px}.r2-footer-bottom{flex-direction:column}}
footer.r2-footer .r2-footer-brand img.brand-logo{height:34px!important;width:auto!important;max-width:none!important}
footer.r2-footer{padding:28px 26px 26px!important;margin-top:8px!important}
/* Home: tighter rhythm between hero, latest updates, calls to action and footer */
html body.r2-home-view section#home.hero{padding-top:56px!important;padding-bottom:28px!important}
@media(max-width:760px){html body.r2-home-view section#home.hero{padding-top:36px!important}}
body.r2-home-view .r2-latest{padding-top:36px!important;padding-bottom:40px!important}
body.r2-home-view .r2-cta{padding-bottom:28px!important}

/* Admin: live poster preview beside the note editor */
.r2cms-wrap:has(.r2n-split.is-poster-mode){max-width:min(1640px,100%)!important;overflow:clip!important}
.r2n-split.is-poster-mode{display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,1.05fr);gap:26px;align-items:start}
.r2n-split.is-poster-mode .r2cms-grid2{grid-template-columns:1fr!important}
.r2n-split-main{min-width:0}
.r2-poster-preview[hidden]{display:none!important}
.r2-poster-preview{position:sticky;top:86px;max-height:calc(100vh - 100px);display:flex;flex-direction:column;border:1px solid #d5e0ec;border-radius:16px;background:#eef3f9;overflow:hidden;box-shadow:0 10px 30px rgba(18,48,89,.10)}
.r2-preview-bar{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;background:#fff;border-bottom:1px solid #d5e0ec}
.r2-preview-bar strong{display:block;font-size:13px;color:#123059}
.r2-preview-bar span{display:block;font-size:11px;color:#6a7f99}
.r2-preview-tools{display:flex;align-items:center;gap:8px}
.r2-preview-lang{display:inline-flex;border:1px solid #cdd9e7;border-radius:999px;overflow:hidden}
.r2-preview-lang button,.r2-preview-full{border:0;background:#fff;padding:5px 11px;font:inherit;font-size:12px;font-weight:700;color:#355478;cursor:pointer}
.r2-preview-lang button.is-on{background:#123059;color:#fff}
.r2-preview-full{border:1px solid #cdd9e7;border-radius:999px}
.r2-preview-full:hover{border-color:#123059}
.r2-preview-viewport{overflow:hidden;flex:0 0 auto}
.r2-poster-preview{overflow-y:auto}
.r2-preview-scale{width:1040px;transform-origin:top left}
.r2-note-modal-dialog.r2-preview-dialog{position:static;width:1040px!important;max-height:none;overflow:visible;margin:0;border:0;border-radius:0;box-shadow:none;animation:none!important;padding:22px 24px 26px}
.r2-preview-flag{margin:10px 0 0;padding:8px 12px;border-radius:8px;background:#fff7e6;border:1px solid #f0c77a;color:#6b4a00;font-size:12px}
html.r2-dark .r2-poster-preview{background:#101a28;border-color:#24406a}
html.r2-dark .r2-preview-bar{background:#141b24;border-color:#24406a}
html.r2-dark .r2-preview-bar strong{color:#e6f0fc}
html.r2-dark .r2-preview-lang button,html.r2-dark .r2-preview-full{background:#141b24;color:#9cc3ea;border-color:#2c4c78}
html.r2-dark .r2-preview-lang button.is-on{background:#9cc3ea;color:#0a1c36}
@media(max-width:1100px){
  .r2n-split.is-poster-mode{grid-template-columns:1fr}
  .r2n-split.is-poster-mode .r2-poster-preview{grid-row:1;position:relative;top:0;max-height:60vh}
}

/* ===== Per-section style (poster) ===== */
/* Tone: header bar colours, pale card tint, icon/bullet accent */
.r2-note-modal-dialog.is-poster .poster-board.poster-theme-denim .poster-sections .poster-cell.has-tone h2{background:linear-gradient(90deg,var(--sec-b),var(--sec-a))}
.poster-board.poster-theme-denim .poster-sections .poster-cell.has-tone{background:var(--sec-tint);border-color:color-mix(in srgb,var(--sec-a) 45%,#fff)}
.poster-theme-denim .poster-cell.has-tone .poster-num{color:var(--sec-b)}
.poster-cell.has-tone .poster-icon-box{color:var(--sec-acc);background:color-mix(in srgb,var(--sec-a) 10%,#fff);border-color:color-mix(in srgb,var(--sec-a) 30%,#fff)}
.poster-cell.has-tone .poster-text{--bul-default:var(--sec-acc)}
.poster-board.poster-theme-classic .poster-sections .poster-cell.has-tone{background:var(--sec-tint);box-shadow:inset 4px 0 0 var(--sec-a)}
.r2-note-modal-dialog.is-poster .poster-board.poster-theme-classic .poster-sections .poster-cell.has-tone h2{color:var(--sec-a)}
html.r2-dark .poster-board.poster-theme-denim .poster-sections .poster-cell.has-tone,html.r2-dark .poster-board.poster-theme-classic .poster-sections .poster-cell.has-tone{background:color-mix(in srgb,var(--sec-a) 14%,#12233b)}
/* Bullet styles */
.poster-text ul{list-style:none;padding-left:0}
.poster-text li{position:relative;padding-left:1.35em}
.poster-text li::before{content:'•';position:absolute;left:0;top:0;color:var(--bul,var(--bul-default,#2f6db5));font-weight:700}
.poster-text.bul-dot li::before{content:'•';font-size:1.25em;line-height:1.05}
.poster-text.bul-check li::before{content:'✓'}
.poster-text.bul-arrow li::before{content:'➜';font-size:.9em}
.poster-text.bul-star li::before{content:'★';font-size:.9em}
.poster-text.bul-dash li::before{content:'–'}
.poster-text.bul-num ul{counter-reset:pt}
.poster-text.bul-num li{counter-increment:pt;padding-left:1.7em}
.poster-text.bul-num li::before{content:counter(pt) '.'}
.poster-theme-denim .poster-text li::marker{content:none}
/* Section image */
.poster-sec-flow{display:flex;flex-direction:column;gap:10px;flex:1;min-width:0}
.poster-sec-flow.img-bottom{flex-direction:column-reverse}
.poster-sec-flow.img-left,.poster-sec-flow.img-right{flex-direction:row;align-items:flex-start}
.poster-sec-flow.img-right{flex-direction:row-reverse}
.poster-sec-flow .poster-text{flex:1;min-width:0}
.poster-sec-img{margin:0;width:var(--w,100%);align-self:center}
.poster-sec-flow.img-left .poster-sec-img,.poster-sec-flow.img-right .poster-sec-img{width:calc(var(--w,100%) * .5);flex:0 0 auto;align-self:flex-start}
.poster-sec-img img{display:block;width:100%;height:auto;border-radius:8px}
@media(max-width:680px){.poster-sec-flow.img-left,.poster-sec-flow.img-right{flex-direction:column}.poster-sec-flow.img-left .poster-sec-img,.poster-sec-flow.img-right .poster-sec-img{width:var(--w,100%)}}

/* Admin: style panel */
.r2-sec-style{display:grid;gap:8px;padding:10px 12px;border:1px solid #e3e8ef;border-radius:10px;background:#f8fafc}
.r2-sec-style-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.r2-sec-style-label{width:54px;flex:0 0 auto;font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#6a7f99}
.r2-sec-style select{width:auto!important;padding:6px 8px!important;font-size:12px!important}
.r2-sec-tones{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.r2-sec-tones button{width:24px;height:24px;border-radius:50%;border:2px solid #fff;background:var(--sw);box-shadow:0 0 0 1px #cfd8e3;cursor:pointer;padding:0}
.r2-sec-tones button.is-on{box-shadow:0 0 0 2px #123059;transform:scale(1.1)}
.r2-sec-tones .r2-tone-none{width:auto;height:24px;padding:0 9px;border-radius:999px;background:#fff;border:1px solid #cfd8e3;box-shadow:none;font:inherit;font-size:11px;font-weight:700;color:#355478}
.r2-sec-tones .r2-tone-none.is-on{border-color:#123059;box-shadow:0 0 0 1px #123059;transform:none}
.r2-tone-custom{display:inline-flex;align-items:center;gap:4px;padding:2px 8px 2px 2px;border:1px solid #cfd8e3;border-radius:999px;font-size:11px;font-weight:700;color:#355478;cursor:pointer;background:#fff}
.r2-tone-custom.is-on{border-color:#123059;box-shadow:0 0 0 1px #123059}
.r2-tone-custom input,.r2-color-chip input{width:22px!important;height:22px!important;padding:0!important;border:0!important;border-radius:50%;background:none;cursor:pointer}
.r2-fmt{min-width:30px;height:30px;border:1px solid #cfd8e3;border-radius:8px;background:#fff;cursor:pointer;font-size:13px;color:#243b5a}
.r2-fmt.is-on{background:#123059;border-color:#123059;color:#fff}
.r2-color-chip{display:inline-flex;align-items:center;gap:4px;height:30px;padding:0 6px;border:1px solid #cfd8e3;border-radius:8px;background:#fff;cursor:pointer;font-weight:800;color:#243b5a}
.r2-sec-img-thumb{width:54px;height:40px;object-fit:cover;border-radius:6px;border:1px solid #cfd8e3}
.r2-sec-img-size{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:#355478}
.r2-sec-img-size input{width:110px}
.r2-sec-style .r2cms-btn{padding:6px 12px}
.r2-sec-style .r2-upload-help{margin:0}
html.r2-dark .r2-sec-style{background:#14181e;border-color:#2c333d}
html.r2-dark .r2-fmt,html.r2-dark .r2-color-chip,html.r2-dark .r2-tone-custom,html.r2-dark .r2-sec-tones .r2-tone-none{background:#181a1e;border-color:#353a42;color:#c9d8ea}

/* Admin: heading library (quick add one section at a time) */
.r2-sec-library{margin:0 0 12px;padding:10px 12px;border:1px dashed #c9d6e6;border-radius:12px;background:#fff}
.r2-sec-library-label{display:block;margin-bottom:8px;font-size:11.5px;color:#5d7390}
.r2-sec-chips{display:flex;flex-wrap:wrap;gap:6px}
.r2-sec-chips button{display:inline-flex;align-items:center;gap:6px;padding:5px 11px 5px 8px;border:1px solid #d3deea;border-radius:999px;background:#f7fafd;color:#1d3f66;font:inherit;font-size:12px;font-weight:600;cursor:pointer;transition:background .12s,border-color .12s}
.r2-sec-chips button:hover{background:#e8f0fa;border-color:#1d4b85}
.r2-sec-chips button:active{transform:scale(.97)}
.r2-sec-chips button:disabled{opacity:.45;cursor:not-allowed}
.r2-sec-chips svg{width:15px;height:15px;color:#2f6db5}
.r2-poster-sec-item.is-new{animation:r2SecIn .9s ease}
@keyframes r2SecIn{0%{box-shadow:0 0 0 3px rgba(47,109,181,.55)}100%{box-shadow:0 0 0 0 rgba(47,109,181,0)}}
html.r2-dark .r2-sec-library{background:#14181e;border-color:#2c333d}
html.r2-dark .r2-sec-chips button{background:#181a1e;border-color:#353a42;color:#c9d8ea}

/* ===== Phone & tablet fixes ===== */
/* Filters and page buttons must be able to hide cards on every screen size.
   (Older rules for screens <= 850px forced every publication card to show.) */
html body [class].pub-card.r2-page-hidden,html body [class].pub-card[hidden],html body [class].pub-card.r2-publication-filter-hidden,
html body [class].note-card.r2-page-hidden,html body [class].note-card[hidden],
html body [class].r2-dynamic-project.r2-page-hidden,html body [class].r2-dynamic-project[hidden],
html body [class].r2-year-sep[hidden],html body [class].r2-year-sep.r2-page-hidden{display:none!important}
/* Footer stays inside the screen */
footer.r2-footer{display:grid!important;box-sizing:border-box;width:100%}
footer.r2-footer>*{min-width:0}
.r2-footer-bottom{flex-wrap:wrap}
@media(max-width:760px){
  footer.r2-footer{grid-template-columns:minmax(0,1fr)!important;padding:24px 18px 22px!important}
  .r2-footer-links{grid-template-columns:repeat(2,minmax(0,max-content))}
}
/* Swipeable top menu: a soft fade on the right says "there is more" until the end is reached */
@media(max-width:900px){
  #r2-main-nav.r2-nav-more{-webkit-mask-image:linear-gradient(90deg,#000 82%,transparent);mask-image:linear-gradient(90deg,#000 82%,transparent)}
}

/* Note loading state (full note is fetched when opened) */
.r2-note-loading{display:grid;place-items:center;gap:12px;padding:60px 20px;color:#6a7f99}
.r2-note-loading span{width:34px;height:34px;border-radius:50%;border:3px solid #d5e0ec;border-top-color:#1d4b85;animation:r2Spin .8s linear infinite}
.r2-note-loading p{margin:0;font-size:14px}
.r2-note-loading-error{padding:40px 10px;text-align:center;color:#a42c24}
@keyframes r2Spin{to{transform:rotate(360deg)}}
/* Poster: Download PDF / Print button */
.r2-poster-actions{display:flex;justify-content:flex-start;margin:0 44px 12px 0}
.r2-poster-pdf{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border:1px solid #123059;border-radius:999px;background:#123059;color:#fff;font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.r2-poster-pdf svg{width:17px;height:17px}
.r2-poster-pdf:hover{background:#1d4b85}
html.r2-dark .r2-poster-pdf{background:#9cc3ea;border-color:#9cc3ea;color:#0a1c36}
#r2-print-root{display:none}
@media print{
  @page{size:A4 portrait;margin:8mm}
  html.r2-print-mode body>*:not(#r2-print-root){display:none!important}
  html.r2-print-mode #r2-print-root{display:block!important}
  html.r2-print-mode,html.r2-print-mode body{background:#fff!important;background-image:none!important;overflow:visible!important;height:auto!important}
  #r2-print-root .r2-print-dialog{position:static!important;width:auto!important;max-width:none!important;max-height:none!important;overflow:visible!important;box-shadow:none!important;border:0!important;border-radius:0!important;padding:0!important;margin:0!important;animation:none!important;background:#fff!important}
  #r2-print-root,#r2-print-root *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  #r2-print-root .poster-cell,#r2-print-root .poster-gallery figure,#r2-print-root .poster-sec-img,#r2-print-root .poster-hero{break-inside:avoid;page-break-inside:avoid}
  #r2-print-root .poster-brandbar{padding-right:0!important}
  #r2-print-root .poster-board{box-shadow:none!important}
}
/* Publication card: Cite button */
.r2-pub-card-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.r2-pub-cite-btn{flex:0 0 auto;padding:5px 12px;border:1px solid #cdd9e7;border-radius:999px;background:#fff;color:#1d4b85;font:inherit;font-size:12px;font-weight:700;cursor:pointer;position:relative;z-index:2}
.r2-pub-cite-btn:hover{border-color:#1d4b85;background:#eef4fb}
html.r2-dark .r2-pub-cite-btn{background:#181a1e;border-color:#33373e;color:#9cc3ea}
.r2-cite.r2-cite-flash{animation:r2CiteFlash 1.4s ease}
@keyframes r2CiteFlash{0%,40%{box-shadow:0 0 0 3px rgba(47,109,181,.55)}100%{box-shadow:0 0 0 0 rgba(47,109,181,0)}}

/* ===== About: quick jump menu, tabbed experience, floating "Collaborate" ===== */
body.r2-about-view #about,body.r2-about-view main{overflow:clip!important}
.r2-about-jump{position:sticky;top:calc(var(--r2-head,80px) + 8px);z-index:60;display:flex;gap:6px;align-items:center;overflow-x:auto;scrollbar-width:none;padding:6px;margin:0 0 4px;border:1px solid #e3ded4;border-radius:999px;background:rgba(251,250,247,.96);box-shadow:0 6px 20px rgba(20,24,30,.06)}
.r2-about-jump::-webkit-scrollbar{display:none}
.r2-about-jump button{flex:0 0 auto;padding:8px 14px;border:0;border-radius:999px;background:transparent;color:#4a4d54;font:inherit;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}
.r2-about-jump button:hover{background:#efece5;color:#1b1c20}
.r2-about-jump button.is-cta{margin-left:auto;background:#1b1c20;color:#fff}
.r2-about-jump button.is-cta:hover{background:#2f5f8f}
html.r2-dark .r2-about-jump{background:rgba(22,23,26,.96);border-color:#2c2e33}
html.r2-dark .r2-about-jump button{color:#c9cbcf}
html.r2-dark .r2-about-jump button:hover{background:#24262b;color:#fff}
html.r2-dark .r2-about-jump button.is-cta{background:#9cc3ea;color:#0a1c36}
/* Experience card with tabs */
.r2-career[hidden]{display:none!important}
.r2-career-tabs{display:none;gap:6px;margin:0 0 -1px;padding:0 4px;position:relative;z-index:1}
.r2-career.has-tabs .r2-career-tabs{display:flex;flex-wrap:wrap}
.r2-career-tabs button{display:inline-flex;align-items:center;gap:8px;padding:11px 18px;border:1px solid #e3ded4;border-bottom:0;border-radius:14px 14px 0 0;background:#f3f1ec;color:#6e7076;font:inherit;font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;cursor:pointer}
.r2-career-tabs button.is-on{background:#fff;color:#1b1c20}
.r2-career-tabs em{font-style:normal;min-width:22px;padding:1px 7px;border-radius:999px;background:#e6edf5;color:#2f5f8f;font-size:11px;letter-spacing:0;text-align:center}
.r2-career.has-tabs .r2-about-box{border-top-left-radius:0!important}
.r2-career.has-tabs .r2-about-side-title,.r2-career.has-tabs .r2-section-rule{display:none!important}
.r2-career.has-tabs[data-tab="work"] #r2TrainingBox,.r2-career.has-tabs[data-tab="training"] #r2ExperienceBox{display:none!important}
.r2-career:not(.show-all-work) #r2ExperienceList>.r2-exp-row:nth-child(n+4),.r2-career:not(.show-all-training) #r2TrainingList>.r2-exp-row:nth-child(n+4){display:none}
.r2-career-more{display:block;margin:12px auto 0;padding:10px 20px;border:1px solid #d9d4c8;border-radius:999px;background:#fff;color:#1b1c20;font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.r2-career-more:hover{border-color:#2f5f8f;color:#2f5f8f}
.r2-career-more[hidden]{display:none}
html.r2-dark .r2-career-tabs button{background:#1b1d21;border-color:#2c2e33;color:#a3a6ab}
html.r2-dark .r2-career-tabs button.is-on{background:#16171a;color:#f2f1ee}
html.r2-dark .r2-career-tabs em{background:#1f2a36;color:#9cc3ea}
html.r2-dark .r2-career-more{background:#16171a;border-color:#33373e;color:#f2f1ee}
/* Floating "Collaborate" button (About page only, hidden when the form is on screen) */
.r2-collab-fab{position:fixed;right:max(76px,calc(env(safe-area-inset-right) + 76px));bottom:max(20px,calc(env(safe-area-inset-bottom) + 12px));z-index:800;display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 18px;border:0;border-radius:999px;background:#1b1c20;color:#fff;font:inherit;font-size:14px;font-weight:700;box-shadow:0 10px 26px rgba(20,24,30,.22);cursor:pointer;transition:opacity .2s,transform .2s}
.r2-collab-fab svg{width:18px;height:18px}
.r2-collab-fab.is-away,body:not(.r2-about-view) .r2-collab-fab,body.r2-note-modal-open .r2-collab-fab,body.r2-publication-modal-open .r2-collab-fab{opacity:0;transform:translateY(12px);pointer-events:none}
html.r2-dark .r2-collab-fab{background:#9cc3ea;color:#0a1c36}
@media(max-width:600px){.r2-about-jump{border-radius:14px}.r2-about-jump button{padding:8px 12px;font-size:12.5px}.r2-about-jump button.is-cta{margin-left:0}.r2-career-tabs button{padding:10px 12px;font-size:11px;letter-spacing:.06em}}

/* Clip (not hide) sideways overflow so sticky bars keep working; older browsers use hidden. */
html,body{overflow-x:hidden;overflow-x:clip}

/* About polish: solid jump bar, CTA first on phones, equal side-by-side tabs on phones */
.r2-about-jump{background:#fbfaf7!important}
html.r2-dark .r2-about-jump{background:#16171a!important}
@media(max-width:600px){
  .r2-about-jump button.is-cta{order:-1}
  .r2-career.has-tabs .r2-career-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:0}
  .r2-career-tabs button{justify-content:center;flex-wrap:wrap;gap:4px 6px;padding:10px 6px;text-align:center;line-height:1.25}
}

/* About: calmer, roomier layout (no sticky bar; one in-flow "collaborate" button in the intro) */
.r2-about-jump{display:none!important}
html body #about .r2-about-static{gap:32px!important}
#about .r2-about-box{padding:28px 30px!important}
body.r2-about-view #about .r2-about-side,body.r2-about-view #about .r2-about-links{gap:32px!important}
.r2-about-collab-link{display:inline-flex;align-items:center;gap:6px;margin-top:6px;padding:10px 18px;border:0;border-radius:999px;background:#1b1c20;color:#fff;font:inherit;font-size:14px;font-weight:700;cursor:pointer}
.r2-about-collab-link:hover{background:#2f5f8f}
html.r2-dark .r2-about-collab-link{background:#9cc3ea;color:#0a1c36}
@media(max-width:700px){html body #about .r2-about-static{gap:22px!important}#about .r2-about-box{padding:22px 20px!important}body.r2-about-view #about .r2-about-side,body.r2-about-view #about .r2-about-links{gap:22px!important}}

/* Phones: the floating Collaborate button is a small round icon so it covers less text */
@media(max-width:600px){.r2-collab-fab{width:44px;padding:0;justify-content:center;right:max(72px,calc(env(safe-area-inset-right) + 72px))}.r2-collab-fab span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}

/* ===== Footer v2: clean and balanced (overrides the earlier footer rules) ===== */
footer.r2-footer{display:block!important;max-width:1180px;margin:48px auto 0!important;padding:34px 26px 26px!important;border-top:1px solid #e7e3da;color:#6e7076;font-size:13px}
.r2-footer-main{display:flex;justify-content:space-between;align-items:flex-start;gap:32px}
.r2-footer-brand{min-width:0;max-width:380px}
footer.r2-footer .r2-footer-brand img.brand-logo{height:32px!important;margin:0 0 10px}
.r2-footer-brand p{margin:0;line-height:1.6;color:#6e7076}
.r2-footer-side{display:flex;flex-direction:column;align-items:flex-end;gap:16px;min-width:0}
footer.r2-footer .r2-footer-links{display:flex!important;flex-wrap:wrap;justify-content:flex-end;gap:8px 24px}
footer.r2-footer .r2-footer-links a{color:#3a3d44;font-weight:600;font-size:13.5px}
footer.r2-footer .r2-footer-links a:hover{color:#2f5f8f}
footer.r2-footer .r2-footer-social{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
footer.r2-footer .r2-footer-social a{width:36px;height:36px}
footer.r2-footer .r2-footer-social svg{width:16px;height:16px}
footer.r2-footer .r2-footer-bottom{display:block!important;margin-top:26px;padding-top:16px;border-top:1px solid #efece5;text-align:center;font-size:12px;color:#8f9297}
html.r2-dark .r2-footer-brand p{color:#a3a6ab}
@media(max-width:760px){
  footer.r2-footer{padding:28px 18px 22px!important;text-align:center}
  .r2-footer-main{flex-direction:column;align-items:center;gap:20px}
  .r2-footer-brand{max-width:none}
  footer.r2-footer .r2-footer-brand img.brand-logo{margin:0 auto 10px}
  .r2-footer-side{align-items:center}
  footer.r2-footer .r2-footer-links,footer.r2-footer .r2-footer-social{justify-content:center}
}
/* Home Research Focus chips: even spacing */
.r2-hero-topics{gap:8px!important}

/* ===== Aesthetic pass ===== */
/* 1. Card images: one frame size and background everywhere */
html body .pub-card .pub-thumb,html body .pub-card .project-visual{width:100%!important;height:auto!important;aspect-ratio:16/10!important;object-fit:contain!important;background:#fff!important;padding:14px!important;box-sizing:border-box!important;border-bottom:1px solid #eeebe4!important;display:block!important;margin:0!important}
html body .projects-section .r2-dynamic-project>img{width:100%!important;height:auto!important;aspect-ratio:16/10!important;object-fit:contain!important;background:#fff!important;padding:12px!important;box-sizing:border-box!important;border-bottom:1px solid #eeebe4!important;display:block!important}
html body .r2-note-cover{aspect-ratio:16/10!important;background:#fff!important;border-bottom:1px solid #eeebe4}
html body .r2-note-cover img{object-fit:contain!important;padding:12px;box-sizing:border-box}
html.r2-dark body .projects-section .r2-dynamic-project>img,html.r2-dark body .r2-note-cover{background:#f4f3ef!important;border-color:#24262a!important}
/* 2. Designed cover for items without an image */
.r2-ph{position:relative;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:18px 22px;text-align:center;overflow:hidden;
  --ph1:#eaf1fa;--ph2:#dbe7f5;--phc:#1d4b85;background:radial-gradient(circle at 1px 1px,rgba(29,75,133,.10) 1px,transparent 1.4px) 0 0/14px 14px,linear-gradient(145deg,var(--ph1),var(--ph2))!important}
.r2-ph-note{--ph1:#e9f5f0;--ph2:#d6ece3;--phc:#1f6e57}
.r2-ph-idea{--ph1:#fdf3e6;--ph2:#f8e3c8;--phc:#a3561c}
.r2-ph-project{--ph1:#f1ecf9;--ph2:#e2d8f2;--phc:#5b3f8f}
.r2-ph-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:#fff;color:var(--phc);box-shadow:0 6px 18px rgba(20,30,50,.10)}
.r2-ph-icon svg{width:26px;height:26px}
.r2-ph strong{font-family:'Playfair Display',Georgia,serif;font-weight:500;font-size:19px;line-height:1.3;color:#1b1c20;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;max-width:92%}
.r2-note-cover-ph{aspect-ratio:16/7!important}
.r2-note-cover-ph .r2-ph-icon{width:44px;height:44px;border-radius:14px}
html.r2-dark .r2-ph{--ph1:#18263a;--ph2:#12202f;--phc:#9cc3ea}
html.r2-dark .r2-ph-note{--ph1:#16292a;--ph2:#10201f;--phc:#8fd3bb}
html.r2-dark .r2-ph-idea{--ph1:#2a2016;--ph2:#21180f;--phc:#f2b27a}
html.r2-dark .r2-ph-project{--ph1:#231d33;--ph2:#1a1527;--phc:#c3aef0}
html.r2-dark .r2-ph-icon{background:#0f1115}
html.r2-dark .r2-ph strong{color:#eef0f3}
/* 3. Same title style everywhere (no italics in Latest updates) */
.r2-latest-caption em{font-style:normal!important}
.r2-latest-caption{font-weight:500}
/* 4. Friendlier empty state */
.r2-notes-type-empty{display:flex;flex-direction:column;align-items:center;gap:10px;padding:44px 24px!important}
.r2-notes-type-empty p{margin:0;font-size:15px;color:#6e7076}
.r2-empty-icon{display:grid;place-items:center;width:54px;height:54px;border-radius:16px;background:#eef3f9;color:#1d4b85}
.r2-empty-icon svg{width:26px;height:26px}
.r2-empty-link{padding:9px 18px;border:1px solid #1d4b85;border-radius:999px;background:#fff;color:#1d4b85;font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.r2-empty-link:hover{background:#1d4b85;color:#fff}
html.r2-dark .r2-empty-icon{background:#18263a;color:#9cc3ea}
html.r2-dark .r2-empty-link{background:transparent;border-color:#9cc3ea;color:#9cc3ea}
html.r2-dark .r2-notes-type-empty p{color:#b7b9bc}
/* Project categories: wrap instead of being cut off with "…" */
html body .projects-section .project-meta{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;display:block!important;-webkit-line-clamp:unset!important;line-height:1.5!important}

/* Placeholder cover: icon colour and size (older rules painted placeholder spans white) */
html body .r2-ph .r2-ph-icon{color:var(--phc)!important;font-size:inherit!important}
.r2-latest-placeholder.r2-ph .r2-ph-icon{width:72px;height:72px;border-radius:22px}
.r2-latest-placeholder.r2-ph .r2-ph-icon svg{width:34px;height:34px}

/* Dark mode touch-ups: readable footer links, soft divider, visible "Project" badge */
html.r2-dark footer.r2-footer .r2-footer-links a{color:#d9dbde}
html.r2-dark footer.r2-footer .r2-footer-links a:hover{color:#9cc3ea}
html.r2-dark footer.r2-footer .r2-footer-bottom{border-top-color:#25282d;color:#8a8d93}
html.r2-dark footer.r2-footer{border-top-color:#25282d}
html.r2-dark .r2-latest-badge.r2-latest-project{background:#1b1c20!important;color:#fff!important;opacity:1!important}

/* ===== Reactions at the end of a note ===== */
.r2-react{margin:28px 0 6px;padding:18px 20px;border:1px solid #e3e8ef;border-radius:16px;background:#f7f9fc;text-align:center}
.r2-react-q{margin:0 0 12px;font-weight:700;color:#1b1c20}
.r2-react-btns{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}
.r2-react-btns button{display:inline-flex;align-items:center;gap:8px;padding:9px 18px;border:1px solid #d5dde8;border-radius:999px;background:#fff;color:#1b1c20;font:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:transform .12s,border-color .12s}
.r2-react-btns button:hover:not(:disabled){border-color:#1d4b85;transform:translateY(-1px)}
.r2-react-btns button:disabled{cursor:default;opacity:.55}
.r2-react-btns button.is-on{opacity:1;border-color:#1d4b85;background:#1d4b85;color:#fff}
.r2-react-btns em{font-style:normal;min-width:22px;padding:1px 7px;border-radius:999px;background:#eef3f9;color:#1d4b85;font-size:12px}
.r2-react-btns button.is-on em{background:rgba(255,255,255,.2);color:#fff}
.r2-react-thanks{margin:10px 0 0;font-size:13px;color:#2f6d4f}
.r2-note-likes{display:inline-block;margin-right:6px;font-size:11px;font-weight:700;color:#1d4b85}
.r2cms-react-badge{margin-left:6px;background:#eef3f9!important;color:#1d4b85!important}
html.r2-dark .r2-react{background:#16191e;border-color:#2a2f37}
html.r2-dark .r2-react-q{color:#eef0f3}
html.r2-dark .r2-react-btns button{background:#1b1e24;border-color:#343a44;color:#e6e8eb}
html.r2-dark .r2-react-btns button.is-on{background:#9cc3ea;border-color:#9cc3ea;color:#0a1c36}
html.r2-dark .r2-react-thanks{color:#8fd3bb}
html.r2-dark .r2-note-likes{color:#9cc3ea}
/* ===== Admin: Ide Tulisan ===== */
.r2-ideas-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:14px}
.r2-ideas-head h2{margin:0 0 6px}
.r2-ideas-head p{margin:0;max-width:720px;color:#6e7076;font-size:14px;line-height:1.6}
.r2-ideas-refresh{display:flex;align-items:center;gap:10px;font-size:12px;color:#6e7076;white-space:nowrap}
.r2-ideas-topics{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:12px}
.r2-ideas-topics>button{padding:7px 14px;border:1px solid #d5dde8;border-radius:999px;background:#fff;font:inherit;font-size:13px;font-weight:600;color:#1d3f66;cursor:pointer}
.r2-ideas-topics>button.is-on{background:#1d4b85;border-color:#1d4b85;color:#fff}
.r2-ideas-topics form{display:flex;gap:6px;margin-left:auto}
.r2-ideas-topics input{padding:8px 12px;border:1px solid #d5dde8;border-radius:999px;font:inherit;font-size:13px;min-width:220px}
.r2-ideas-keywords{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 16px}
.r2-ideas-kw-label{font-size:12px;font-weight:700;color:#6a7f99;margin-right:4px}
.r2-ideas-keywords button{padding:4px 10px;border:1px dashed #c9d6e6;border-radius:999px;background:#f7fafd;font:inherit;font-size:12px;color:#1d3f66;cursor:pointer}
.r2-ideas-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.r2-ideas-col{border:1px solid #e3e8ef;border-radius:14px;background:#fff;padding:14px 16px}
.r2-ideas-col h3{margin:0 0 2px;font-size:15px}
.r2-ideas-desc{margin:0 0 10px;font-size:12px;color:#6a7f99}
.r2-ideas-col ol{margin:0;padding-left:20px;display:grid;gap:10px}
.r2-ideas-col li a{font-weight:600;color:#1b1c20;line-height:1.4}
.r2-ideas-col li a:hover{color:#1d4b85;text-decoration:underline}
.r2-ideas-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin-top:3px;font-size:12px;color:#7a8290}
.r2-ideas-draft{margin-left:auto;padding:3px 10px;border:1px solid #cdd9e7;border-radius:999px;background:#f7fafd;font:inherit;font-size:11.5px;font-weight:700;color:#1d4b85;cursor:pointer}
.r2-ideas-draft:hover{background:#1d4b85;color:#fff}
.r2-ideas-empty{margin:6px 0;font-size:13px;color:#8a8d93}
.r2-ideas-skel{height:34px;margin:8px 0;border-radius:8px;background:linear-gradient(90deg,#f0f2f5 25%,#e6eaef 50%,#f0f2f5 75%);background-size:200% 100%;animation:r2Shimmer 1.2s infinite}
@keyframes r2Shimmer{to{background-position:-200% 0}}
html.r2-dark .r2-ideas-col{background:#16191e;border-color:#2a2f37}
html.r2-dark .r2-ideas-col li a{color:#eef0f3}
html.r2-dark .r2-ideas-topics>button,html.r2-dark .r2-ideas-topics input,html.r2-dark .r2-ideas-keywords button,html.r2-dark .r2-ideas-draft{background:#1b1e24;border-color:#343a44;color:#c9d8ea}
@media(max-width:900px){.r2-ideas-grid{grid-template-columns:1fr}.r2-ideas-head{flex-direction:column}.r2-ideas-topics form{margin-left:0;width:100%}.r2-ideas-topics input{flex:1;min-width:0}}

/* ===== SVG icons (instead of emoji) ===== */
.r2-ico{width:1.1em;height:1.1em;flex:0 0 auto;vertical-align:-.18em}
.r2-react-btns .r2-ico{width:18px;height:18px}
.r2-note-likes .r2-ico,.r2cms-react-badge .r2-ico{width:13px;height:13px;vertical-align:-2px}
.r2-pub-cite-btn{display:inline-flex;align-items:center;gap:5px}
.r2-about-collab-link .r2-ico{width:17px;height:17px}
.r2-ideas-col h3{display:flex;align-items:center;gap:8px}
.r2-ideas-ic{width:20px;height:20px;padding:5px;border-radius:9px;background:#eef3f9;color:#1d4b85;box-sizing:content-box}
.r2-ideas-stat{display:inline-flex;align-items:center;gap:3px}
.r2-ideas-stat .r2-ico{width:13px;height:13px}
.r2-ideas-draft{display:inline-flex;align-items:center;gap:4px}
.r2-ideas-draft .r2-ico{width:13px;height:13px}
.r2-ideas-orig{margin-top:2px;font-size:11.5px;line-height:1.4;color:#8a8d93;font-style:italic}
.r2-ideas-head p .r2-ico{width:15px;height:15px;color:#1d4b85}
#r2IdeasRefresh{display:inline-flex;align-items:center;gap:6px}
.r2-fmt-reset .r2-ico{width:15px;height:15px}
.r2-password-toggle .r2-ico{width:19px;height:19px}
.r2-crop-open{display:inline-flex;align-items:center;gap:6px}
#r2cms-tab-ideas,#r2cms-q-ideas{display:inline-flex;align-items:center;gap:6px}
html.r2-dark .r2-ideas-ic{background:#18263a;color:#9cc3ea}
/* ===== Admin language switch ===== */
.r2cms-lang{display:inline-flex;padding:3px;border:1px solid #e1ddd3;border-radius:999px;background:#fff;margin-right:4px}
.r2cms-lang button{border:0;background:transparent;padding:6px 12px;border-radius:999px;font:inherit;font-size:12px;font-weight:800;letter-spacing:.06em;color:#6e7076;cursor:pointer}
.r2cms-lang button.is-on{background:#1b1c20;color:#fff}
html.r2-dark .r2cms-lang{background:#16171a;border-color:#2c2e33}
html.r2-dark .r2cms-lang button.is-on{background:#9cc3ea;color:#0a1c36}

/* Ide Tulisan v2: range + group switches, "new since last visit", save */
.r2-ideas-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin:0 0 12px}
.r2-ideas-seg{display:inline-flex;flex-wrap:wrap;gap:4px;padding:4px;border:1px solid #d5dde8;border-radius:999px;background:#fff}
.r2-ideas-seg button{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border:0;border-radius:999px;background:transparent;font:inherit;font-size:13px;font-weight:700;color:#355478;cursor:pointer}
.r2-ideas-seg button.is-on{background:#1d4b85;color:#fff}
.r2-ideas-seg em{font-style:normal;min-width:18px;padding:0 6px;border-radius:999px;background:#e6edf5;color:#1d4b85;font-size:11px}
.r2-ideas-seg button.is-on em{background:rgba(255,255,255,.25);color:#fff}
.r2-ideas-last{display:flex;align-items:center;gap:6px;margin-top:6px!important;font-size:13px!important;color:#355478!important}
.r2-ideas-new{display:inline-block;padding:1px 7px;border-radius:999px;background:#e8f5ee;color:#1f6e4a;font-size:10.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;vertical-align:1px}
.r2-ideas-actions{display:inline-flex;gap:6px;margin-left:auto}
.r2-ideas-save{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border:1px solid #cdd9e7;border-radius:999px;background:#fff;font:inherit;font-size:11.5px;font-weight:700;color:#355478;cursor:pointer}
.r2-ideas-save .r2-ico{width:13px;height:13px}
.r2-ideas-save.is-on{background:#fff7e6;border-color:#e2b85c;color:#8a5a00}
.r2-ideas-wide{grid-column:1/-1}
html.r2-dark .r2-ideas-seg{background:#16191e;border-color:#343a44}
html.r2-dark .r2-ideas-seg button{color:#c9d8ea}
html.r2-dark .r2-ideas-seg button.is-on{background:#9cc3ea;color:#0a1c36}
html.r2-dark .r2-ideas-save{background:#1b1e24;border-color:#343a44;color:#c9d8ea}
html.r2-dark .r2-ideas-new{background:#16291f;color:#8fd3bb}
@media(max-width:700px){.r2-ideas-bar{flex-direction:column;align-items:stretch}.r2-ideas-seg{justify-content:center;border-radius:14px}.r2-ideas-actions{margin-left:0}}

.r2-ideas-oa{display:inline-block;padding:1px 6px;border-radius:5px;background:#fff3e6;color:#b35a00;font-size:10px;font-weight:800;letter-spacing:.04em;vertical-align:1px}
html.r2-dark .r2-ideas-oa{background:#2a2016;color:#f2b27a}

.r2-ideas-settings{margin-top:14px;padding:10px 14px;border:1px dashed #d5dde8;border-radius:12px;background:#fbfcfe;font-size:13px;color:#4a5566}
.r2-ideas-settings summary{cursor:pointer;font-weight:700;display:flex;align-items:center;gap:6px}
.r2-ideas-settings form{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0}
.r2-ideas-settings input{padding:8px 12px;border:1px solid #d5dde8;border-radius:10px;font:inherit;min-width:260px}
.r2-ideas-settings a{color:#1d4b85;font-weight:700}
html.r2-dark .r2-ideas-settings{background:#14181e;border-color:#2c333d;color:#b7c2d0}
html.r2-dark .r2-ideas-settings input{background:#1b1e24;border-color:#343a44;color:#e6e8eb}

.r2-ideas-outlets{display:inline-block;margin-top:3px;font-size:11px;color:#8a93a3}

.r2cms-backup{position:relative}
.r2cms-backup.is-due::after{content:"";position:absolute;top:5px;right:5px;width:7px;height:7px;border-radius:50%;background:#e0892b}

/* Dark mode: text inside coloured buttons takes the button's own colour (was forced to grey and became unreadable). */
html.r2-dark .r2-collab-fab span,html.r2-dark .r2-about-collab-link span,html.r2-dark .r2-cta-btn span,html.r2-dark .r2-poster-pdf span{color:inherit!important;-webkit-text-fill-color:currentColor}
html.r2-dark body .r2-collab-fab span,html.r2-dark body.r2-about-view .r2-about-collab-link span,html.r2-dark body.r2-about-view .r2-cta-btn span{color:inherit!important;-webkit-text-fill-color:currentColor}
html.r2-dark #about .r2-about-copy p{color:#c9cbcf!important}
html.r2-dark #about .r2-about-copy p strong{color:#f3f4f6!important}
html.r2-dark .r2-latest-badge.r2-latest-pub{color:#0a1c36!important}
html.r2-dark .r2-ongoing-status{color:#e3ae72!important}
html.r2-dark .r2-note-type-tab:not(.active){color:#b7b9bc!important}
html.r2-dark .r2-mobile-year-buttons button.active{color:#111215!important}
html.r2-dark #r2CollabForm .r2-cta-btn.primary{color:#111215!important}

/* HD images */
.r2-hd-toggle{display:flex;align-items:center;gap:10px;margin-top:10px;cursor:pointer;font-size:13px;color:#4a4d53;line-height:1.4}
.r2-hd-toggle input{position:absolute;opacity:0;width:1px;height:1px}
.r2-hd-pill{flex:0 0 auto;display:inline-grid;place-items:center;min-width:44px;height:28px;padding:0 10px;border-radius:999px;border:1.5px solid #c9ccd2;font-weight:800;font-size:12px;letter-spacing:.06em;color:#6b6f76;background:#fff;transition:all .15s}
.r2-hd-toggle input:checked+.r2-hd-pill{background:#1d4b85;border-color:#1d4b85;color:#fff}
.r2-hd-toggle input:checked+.r2-hd-pill::after{content:" ✓"}
.r2-hd-toggle input:focus-visible+.r2-hd-pill{outline:2px solid #2f6db5;outline-offset:2px}
.r2-hd-btn.is-on,.r2-img-tools .r2-img-hd.is-on{background:#1d4b85!important;border-color:#1d4b85!important;color:#fff!important}
.r2-img-tools .r2-img-hd{font-weight:800;letter-spacing:.04em}
img.r2-hd-img{cursor:zoom-in}
.r2-publication-modal-image{display:block;width:100%;max-height:360px;object-fit:cover;border-radius:14px;margin:0 0 18px}
.r2-hd-view{position:fixed;inset:0;z-index:5000;background:rgba(8,10,14,.92);display:grid;place-items:center;padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom));animation:r2HdIn .15s ease-out}
.r2-hd-view img{max-width:100%;max-height:100%;object-fit:contain;border-radius:6px;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.r2-hd-view-close{position:absolute;top:max(12px,env(safe-area-inset-top));right:14px;width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.14);color:#fff;font-size:26px;line-height:1;cursor:pointer}
.r2-hd-view-note{position:absolute;left:50%;bottom:max(16px,env(safe-area-inset-bottom));transform:translateX(-50%);padding:5px 12px;border-radius:999px;background:rgba(255,255,255,.14);color:#fff;font-size:12px;font-weight:700;letter-spacing:.04em}
@keyframes r2HdIn{from{opacity:0}to{opacity:1}}
html.r2-dark .r2-hd-toggle{color:#b7b9bc}
html.r2-dark .r2-hd-pill{background:#18191c;border-color:#3a3d44;color:#b7b9bc}
.r2-hd-view{z-index:2147483000}
.r2cms-field label.r2-hd-toggle{text-transform:none;letter-spacing:normal;font-weight:500;font-size:13px}
.r2-hd-pill{white-space:nowrap;min-width:56px}
#r2cms .r2cms-field label.r2-hd-toggle{display:flex!important;text-transform:none!important;letter-spacing:normal!important;font-weight:500!important;font-size:13px!important;color:#4a4d53;margin:10px 0 0!important}
#r2cms .r2-hd-toggle .r2-hd-pill{flex:0 0 auto;min-width:58px;white-space:nowrap;letter-spacing:.04em}
#r2cms .r2-hd-toggle .r2-hd-text{flex:1;min-width:0}
html.r2-dark #r2cms .r2cms-field label.r2-hd-toggle{color:#b7b9bc}
#r2cms .r2-hd-toggle .r2-hd-pill{display:inline-flex;align-items:center;justify-content:center;gap:3px}
.r2-ideas-keybad{display:inline-block;margin-top:4px;font-size:12px;color:#b4532a;font-weight:600}html.r2-dark .r2-ideas-keybad{color:#f0a37a}

/* Admin: translate buttons */
#r2cms .r2-tr-btn{display:inline-flex;align-items:center;gap:5px;margin-left:8px;padding:3px 10px;border:1px solid #c9d6e8;border-radius:999px;background:#f2f6fc;color:#1d4b85;font:inherit;font-size:11px;font-weight:700;letter-spacing:.02em;text-transform:none;cursor:pointer;vertical-align:middle;line-height:1.5}
#r2cms .r2-tr-btn:hover{background:#e3edf9}
#r2cms .r2-tr-btn .r2-ico{width:14px;height:14px}
#r2cms .r2-tr-btn.is-busy{opacity:.7;cursor:progress}
#r2cms .r2-tr-all{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;margin:0 0 16px;padding:12px 14px;border:1px dashed #b9cbe3;border-radius:12px;background:#f7faff}
#r2cms .r2-tr-all .r2-tr-btn{margin:0;padding:7px 14px;font-size:13px;background:#1d4b85;border-color:#1d4b85;color:#fff}
#r2cms .r2-tr-all .r2-tr-btn:hover{background:#163c6b}
#r2cms .r2-tr-all small{flex:1 1 240px;color:#5a6f8c;font-size:12px;line-height:1.45}
html.r2-dark #r2cms .r2-tr-btn{background:#1a2230;border-color:#2f4466;color:#9cc3ea}
html.r2-dark #r2cms .r2-tr-all{background:#141a24;border-color:#2f4466}
html.r2-dark #r2cms .r2-tr-all .r2-tr-btn{background:#9cc3ea;border-color:#9cc3ea;color:#0a1c36}
html.r2-dark #r2cms .r2-tr-all small{color:#9aa7b8}

.r2-key-msg{display:block;margin-top:6px;font-size:12.5px;font-weight:600;color:#5a6f8c}
.r2-key-msg.is-ok{color:#2e7d4f}.r2-key-msg.is-bad{color:#b4532a}
.r2-key-note{font-size:12px;color:#8a93a3;margin-top:4px}
html.r2-dark .r2-key-msg.is-ok{color:#7fd3a0}html.r2-dark .r2-key-msg.is-bad{color:#f0a37a}
.r2-ideas-alt{display:inline-block;margin-top:4px;font-size:12px;color:#2e6a4f;font-weight:600}html.r2-dark .r2-ideas-alt{color:#8fd1b0}

.r2-ideas-topics-label{flex-basis:100%;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#8a93a3;margin:6px 0 -2px}
.r2-ideas-topics-label:first-child{margin-top:0}
.r2-list-edit{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:8px 0}
.r2-list-edit label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:700;color:#5a6f8c}
.r2-list-edit textarea{width:100%;font:12px/1.5 Consolas,monospace;border:1px solid #d5dbe3;border-radius:8px;padding:8px;resize:vertical}
@media(max-width:700px){.r2-list-edit{grid-template-columns:1fr}}
html.r2-dark .r2-list-edit textarea{background:#15171b;border-color:#2c3038;color:#e6e7ea}

/* ===================== Admin: calmer layout ===================== */
/* top bar */
#r2cms .r2cms-top{flex-wrap:nowrap;gap:10px}
#r2cms .r2cms-brand{white-space:nowrap;flex:0 0 auto}
#r2cms .r2cms-top .r2cms-actions{flex-wrap:nowrap;gap:8px}
/* dashboard header + menus */
#r2cms .r2cms-head{align-items:flex-end;gap:18px}
#r2cms .r2cms-head-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
#r2cms .r2-menu{position:relative}
#r2cms .r2-menu>summary{list-style:none;display:inline-flex;align-items:center;gap:7px;cursor:pointer;user-select:none}
#r2cms .r2-menu>summary::-webkit-details-marker{display:none}
#r2cms .r2-menu-caret{width:15px;height:15px;transition:transform .15s}
#r2cms .r2-menu[open] .r2-menu-caret{transform:rotate(180deg)}
#r2cms .r2-menu-list{position:absolute;right:0;top:calc(100% + 8px);z-index:60;min-width:230px;padding:6px;background:#fff;border:1px solid #e6e3dd;border-radius:14px;box-shadow:0 18px 40px rgba(20,22,26,.14);display:flex;flex-direction:column;gap:2px}
#r2cms .r2-menu-item{display:flex!important;align-items:center;gap:9px;width:100%;margin:0!important;padding:10px 12px!important;border:0!important;border-radius:9px!important;background:transparent!important;color:#1c1d21!important;font:inherit;font-size:14px!important;font-weight:600;text-align:left;cursor:pointer;box-shadow:none!important;min-height:0!important}
#r2cms .r2-menu-item:hover{background:#f3f1ec!important}
#r2cms .r2-menu-item[style*="display: none"],#r2cms .r2-menu-item[hidden]{display:none!important}
#r2cms .r2-menu-item .r2-ico{width:16px;height:16px}
#r2cms .r2-menu-tools{position:relative}
#r2cms .r2-menu-tools.is-due>summary::after{content:"";position:absolute;top:6px;right:8px;width:8px;height:8px;border-radius:50%;background:#e0892b}
#r2cms .r2-menu-tools .r2cms-backup.is-due::after{position:static;display:inline-block;margin-left:auto}
/* stats: compact */
#r2cms .r2cms-stats{gap:12px;margin:22px 0 26px}
#r2cms .r2cms-stat{padding:16px 18px!important;min-height:0!important}
#r2cms .r2cms-stat strong{font-size:28px!important;line-height:1.1}
#r2cms .r2cms-stat span{font-size:10.5px!important;letter-spacing:.12em!important}
#r2cms .r2cms-stat small{display:block;margin-top:4px;font-size:12px}
html.r2-dark #r2cms .r2-menu-list{background:#1b1c20;border-color:#2c2e34;box-shadow:0 18px 40px rgba(0,0,0,.5)}
html.r2-dark #r2cms .r2-menu-item{color:#e8e9ec!important}
html.r2-dark #r2cms .r2-menu-item:hover{background:#26282e!important}
@media(max-width:640px){
  #r2cms .r2cms-top{padding:10px 14px!important}
  #r2cms .r2cms-brand{font-size:22px!important}
  #r2cms .r2cms-top .r2cms-btn{padding:8px 12px!important;font-size:13px!important;min-height:36px!important}
  #r2cms #r2cms-back-website{font-size:0!important;width:38px;padding:0!important;justify-content:center}
  #r2cms #r2cms-back-website::before{content:"←";font-size:17px;font-weight:700}
  #r2cms .r2cms-head{flex-direction:column;align-items:stretch}
  #r2cms .r2cms-head h1{font-size:34px!important}
  #r2cms .r2cms-head-actions{justify-content:stretch}
  #r2cms .r2cms-head-actions .r2-menu{flex:1}
  #r2cms .r2cms-head-actions .r2-menu>summary{width:100%;justify-content:center}
  #r2cms .r2-menu-list{left:0;right:auto;min-width:100%}
  #r2cms .r2-menu-tools .r2-menu-list{left:auto;right:0}
  #r2cms .r2cms-stats{grid-template-columns:1fr 1fr!important;gap:10px}
  #r2cms .r2cms-stat{padding:12px 14px!important}
  #r2cms .r2cms-stat strong{font-size:24px!important}
  #r2cms .r2cms-stat span{letter-spacing:.08em!important}
}

/* ===================== Writing Ideas: tidy toolbar ===================== */
#r2cms .r2-ideas-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px}
#r2cms .r2-ideas-head h2{margin:0 0 4px}
#r2cms .r2-ideas-head p{margin:0;max-width:640px;color:#6b6f76;font-size:14px;line-height:1.5}
#r2cms .r2-ideas-head .r2-ideas-last{margin-top:6px;font-size:12.5px}
#r2cms .r2-ideas-card{background:#fff;border:1px solid #e8e5df;border-radius:18px;padding:14px 16px;margin-bottom:18px;display:flex;flex-direction:column;gap:12px}
#r2cms .r2-ideas-topicrow{display:flex;align-items:center;gap:10px;min-width:0}
#r2cms .r2-topic-btn{flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;max-width:52%;padding:9px 14px;border:1px solid #1d4b85;border-radius:12px;background:#f2f6fc;color:#0f2a4d;font:inherit;cursor:pointer}
#r2cms .r2-topic-btn-lbl{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#5a6f8c}
#r2cms .r2-topic-btn strong{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#r2cms .r2-topic-btn svg{width:16px;height:16px;flex:0 0 auto;transition:transform .15s}
#r2cms .r2-topic-btn[aria-expanded="true"] svg{transform:rotate(180deg)}
#r2cms .r2-fav-btn{flex:0 0 auto;display:grid;place-items:center;width:40px;height:40px;border:1px solid #e1ded8;border-radius:12px;background:#fff;color:#8a8f98;cursor:pointer}
#r2cms .r2-fav-btn svg{width:19px;height:19px}
#r2cms .r2-fav-btn.is-on{color:#d99a1e;border-color:#f0d49a;background:#fff8e8}
#r2cms .r2-fav-btn.is-on svg{fill:currentColor}
#r2cms .r2-fav-list{flex:1;min-width:0;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding:2px 0;mask-image:linear-gradient(90deg,#000 88%,transparent)}
#r2cms .r2-fav-list::-webkit-scrollbar{display:none}
#r2cms .r2-fav-list button,#r2cms .r2-topic-chips button{flex:0 0 auto;padding:6px 12px;border:1px solid #e1ded8;border-radius:999px;background:#fff;color:#33363c;font:inherit;font-size:13px;white-space:nowrap;cursor:pointer}
#r2cms .r2-fav-list button:hover,#r2cms .r2-topic-chips button:hover{border-color:#9bb3d3}
#r2cms .r2-fav-list button.is-on,#r2cms .r2-topic-chips button.is-on{background:#1d4b85;border-color:#1d4b85;color:#fff}
#r2cms .r2-topic-panel{border:1px solid #e8e5df;border-radius:14px;background:#fbfaf7;padding:12px;display:flex;flex-direction:column;gap:10px}
#r2cms .r2-topic-search{display:flex;align-items:center;gap:8px;padding:0 12px;border:1px solid #dcd9d2;border-radius:10px;background:#fff}
#r2cms .r2-topic-search svg{width:17px;height:17px;color:#8a8f98;flex:0 0 auto}
#r2cms .r2-topic-search input{flex:1;border:0!important;outline:0;padding:10px 0!important;background:transparent!important;font:inherit;font-size:14px;box-shadow:none!important}
#r2cms .r2-topic-cats{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
#r2cms .r2-topic-cats::-webkit-scrollbar{display:none}
#r2cms .r2-topic-cats button{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border:0;border-radius:9px;background:transparent;color:#4a4d53;font:inherit;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}
#r2cms .r2-topic-cats button .r2-ico,#r2cms .r2-topic-cats button svg{width:15px;height:15px}
#r2cms .r2-topic-cats button.is-on{background:#fff;color:#0f2a4d;box-shadow:0 1px 3px rgba(20,22,26,.12)}
#r2cms .r2-topic-list{max-height:320px;overflow:auto;display:flex;flex-direction:column;gap:12px;padding:2px}
#r2cms .r2-topic-group h4{margin:0 0 7px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#8a8f98}
#r2cms .r2-topic-chips{display:flex;flex-wrap:wrap;gap:6px}
#r2cms .r2-topic-hint{margin:0;font-size:13px;color:#6b6f76}
#r2cms .r2-ideas-navrow{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #f0ede7;padding-top:12px}
#r2cms .r2-ideas-tabs{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;min-width:0}
#r2cms .r2-ideas-tabs::-webkit-scrollbar{display:none}
#r2cms .r2-ideas-tabs button{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border:0;border-radius:10px;background:transparent;color:#4a4d53;font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;white-space:nowrap}
#r2cms .r2-ideas-tabs button svg,#r2cms .r2-ideas-tabs button .r2-ico{width:15px;height:15px}
#r2cms .r2-ideas-tabs button.is-on{background:#1d4b85;color:#fff}
#r2cms .r2-ideas-tabs em{font-style:normal;font-size:11px;opacity:.8}
#r2cms .r2-ideas-range{flex:0 0 auto;display:flex;padding:3px;border:1px solid #e1ded8;border-radius:10px;background:#fbfaf7}
#r2cms .r2-ideas-range button{padding:5px 10px;border:0;border-radius:7px;background:transparent;color:#5a5e66;font:inherit;font-size:12.5px;font-weight:700;cursor:pointer}
#r2cms .r2-ideas-range button.is-on{background:#fff;color:#0f2a4d;box-shadow:0 1px 3px rgba(20,22,26,.12)}
#r2cms .r2-ideas-grid{gap:16px}
html.r2-dark #r2cms .r2-ideas-card{background:#17181b;border-color:#26282d}
html.r2-dark #r2cms .r2-topic-btn{background:#16202e;border-color:#3b5f8f;color:#dce8f7}
html.r2-dark #r2cms .r2-topic-btn-lbl{color:#9aa7b8}
html.r2-dark #r2cms .r2-fav-btn,html.r2-dark #r2cms .r2-fav-list button,html.r2-dark #r2cms .r2-topic-chips button{background:#1d1f23;border-color:#2e3137;color:#d7d9dd}
html.r2-dark #r2cms .r2-fav-btn.is-on{background:#2b2414;border-color:#6b5520;color:#f0c14b}
html.r2-dark #r2cms .r2-fav-list button.is-on,html.r2-dark #r2cms .r2-topic-chips button.is-on,html.r2-dark #r2cms .r2-ideas-tabs button.is-on{background:#9cc3ea;border-color:#9cc3ea;color:#0a1c36}
html.r2-dark #r2cms .r2-topic-panel{background:#141518;border-color:#26282d}
html.r2-dark #r2cms .r2-topic-search{background:#1d1f23;border-color:#2e3137}
html.r2-dark #r2cms .r2-topic-search input{color:#e8e9ec}
html.r2-dark #r2cms .r2-topic-cats button,html.r2-dark #r2cms .r2-ideas-tabs button{color:#b7b9bc}
html.r2-dark #r2cms .r2-topic-cats button.is-on,html.r2-dark #r2cms .r2-ideas-range button.is-on{background:#26282e;color:#e8e9ec}
html.r2-dark #r2cms .r2-ideas-navrow{border-color:#26282d}
html.r2-dark #r2cms .r2-ideas-range{background:#141518;border-color:#2e3137}
html.r2-dark #r2cms .r2-ideas-range button{color:#b7b9bc}
@media(max-width:640px){
  #r2cms .r2-ideas-head{flex-direction:column;gap:10px}
  #r2cms .r2-ideas-card{padding:12px;border-radius:14px}
  #r2cms .r2-ideas-topicrow{flex-wrap:wrap}
  #r2cms .r2-topic-btn{max-width:calc(100% - 50px);flex:1}
  #r2cms .r2-fav-list{flex-basis:100%}
  #r2cms .r2-ideas-navrow{flex-direction:column;align-items:stretch}
  #r2cms .r2-ideas-range{align-self:flex-start}
  #r2cms .r2-ideas-tabs button span{font-size:13px}
  #r2cms .r2-topic-list{max-height:48vh}
}
#r2cms .r2-topic-panel[hidden]{display:none!important}
@media(min-width:900px){#r2cms .r2-ideas-tabs{flex-wrap:wrap;overflow:visible}}
#r2cms .r2-topic-search input:focus,#r2cms .r2-topic-search input:focus-visible{outline:none!important;box-shadow:none!important;border:0!important}
#r2cms .r2-topic-search:focus-within{border-color:#1d4b85;box-shadow:0 0 0 3px rgba(29,75,133,.12)}
@media(min-width:900px){#r2cms .r2-topic-cats{flex-wrap:wrap;overflow:visible}}

/* ===== About: show more / less lives inside the card ===== */
.r2-career .r2-career-more{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin:18px 0 0;padding:12px 16px;border:0;border-top:1px dashed #e3ddd0;border-radius:0 0 12px 12px;background:linear-gradient(180deg,rgba(47,95,143,.04),rgba(47,95,143,.08));color:#2f5f8f;font:inherit;font-size:14px;font-weight:700;cursor:pointer;transition:background .15s}
.r2-career .r2-career-more:hover{background:rgba(47,95,143,.12);color:#1f4a75;border-color:#e3ddd0}
.r2-career .r2-career-more svg{width:17px;height:17px;transition:transform .2s}
.r2-career .r2-career-more.is-open svg{transform:rotate(180deg)}
.r2-career .r2-career-more[hidden]{display:none}
.r2-career .r2-career-more:focus-visible{outline:2px solid #2f5f8f;outline-offset:2px}
html.r2-dark .r2-career .r2-career-more{background:rgba(156,195,234,.07);border-top-color:#2c3038;color:#9cc3ea}
html.r2-dark .r2-career .r2-career-more:hover{background:rgba(156,195,234,.14);color:#cfe2f5}
/* ===== Home: friendlier details ===== */
.r2-hero-panel-hint{margin:-4px 0 12px;font-size:12px;color:#8a8f98}
.r2-hero-topics .r2-focus-chip{cursor:pointer;transition:transform .15s,border-color .15s,background .15s,box-shadow .15s}
.r2-hero-topics .r2-focus-chip:hover,.r2-hero-topics .r2-focus-chip:focus-visible{transform:translateY(-1px);border-color:#9bb3d3!important;box-shadow:0 4px 12px rgba(29,75,133,.12);outline:none}
.r2-latest-more{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin:34px 0 0}
.r2-latest-more a{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border:1px solid var(--r2-line,#e7e3da);border-radius:999px;background:#fff;color:#1b1c20;font-size:14px;font-weight:600;text-decoration:none;transition:border-color .15s,color .15s,transform .15s}
.r2-latest-more a svg{width:16px;height:16px;transition:transform .15s}
.r2-latest-more a:hover{border-color:#2f5f8f;color:#2f5f8f}
.r2-latest-more a:hover svg{transform:translateX(3px)}
.r2-ongoing .r2-latest-head p{margin:6px 0 0;color:#7a7e86;font-size:15px}
.r2-ongoing-list{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))!important;align-items:stretch}
.r2-ongoing-item{display:flex;flex-direction:column}
.r2-ongoing-item h3{margin:0 0 8px}
.r2-ongoing-item p{margin:0;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
html.r2-dark .r2-latest-more a{background:#16171a;border-color:#2c2e34;color:#e8e9ec}
html.r2-dark .r2-latest-more a:hover{border-color:#9cc3ea;color:#9cc3ea}
html.r2-dark .r2-hero-panel-hint{color:#8d939c}
@media(max-width:640px){.r2-latest-more{gap:8px;margin-top:26px}.r2-latest-more a{padding:9px 14px;font-size:13px}.r2-career .r2-career-more{font-size:13.5px}}
html.r2-dark body.r2-about-view .r2-career .r2-career-more span{color:inherit!important;-webkit-text-fill-color:currentColor}
html.r2-dark .r2-career .r2-career-more{background:#1a2230;color:#9cc3ea}
html.r2-dark .r2-career .r2-career-more:hover{background:#22304a;color:#cfe2f5}

/* ===================== Motion (transform/opacity only) ===================== */
/* 1. cards lift on hover (mouse / trackpad only — phones get no sticky hover state) */
html.r2-can-hover .pub-card,html.r2-can-hover .r2-public-note-card,html.r2-can-hover .r2-dynamic-project,html.r2-can-hover .r2-latest-card,html.r2-can-hover .r2-ongoing-item,html.r2-can-hover .r2-profile-item,html.r2-can-hover .r2-contact-item{transition:transform .28s cubic-bezier(.2,.7,.2,1),box-shadow .28s ease,border-color .2s ease}
html.r2-can-hover .pub-card:hover,html.r2-can-hover .r2-public-note-card:hover,html.r2-can-hover .r2-dynamic-project:hover,html.r2-can-hover .r2-ongoing-item:hover,html.r2-can-hover .r2-profile-item:hover,html.r2-can-hover .r2-contact-item:hover{transform:translateY(-4px);box-shadow:0 16px 34px rgba(20,24,32,.10)}
html.r2-can-hover .r2-latest-card:hover .r2-latest-media{transform:translateY(-4px);box-shadow:0 16px 34px rgba(20,24,32,.12)}
html.r2-can-hover .r2-latest-media{transition:transform .28s cubic-bezier(.2,.7,.2,1),box-shadow .28s ease}
.r2-latest-media,.r2-note-cover{overflow:hidden}
html.r2-can-hover .r2-latest-media img,html.r2-can-hover .r2-note-cover img,html.r2-can-hover .r2-dynamic-project > img{transition:transform .6s cubic-bezier(.2,.7,.2,1)}
html.r2-can-hover .r2-latest-card:hover .r2-latest-media img,html.r2-can-hover .r2-public-note-card:hover .r2-note-cover img{transform:scale(1.04)}
html.r2-dark.r2-can-hover .pub-card:hover,html.r2-dark.r2-can-hover .r2-public-note-card:hover,html.r2-dark.r2-can-hover .r2-dynamic-project:hover,html.r2-dark.r2-can-hover .r2-ongoing-item:hover{box-shadow:0 16px 34px rgba(0,0,0,.45)}
/* press feedback on every public button (all devices) */
.btn,.r2-cta-btn,.r2-latest-more a,.r2-related-item,.r2-react button,.r2-cite-copy,.r2-cite-bib,.r2-share-btn,.r2-pub-cite-btn,.r2-career-more,.r2-about-collab-link{transition:transform .12s ease}
.btn:active,.r2-cta-btn:active,.r2-latest-more a:active,.r2-related-item:active,.r2-react button:active,.r2-cite-copy:active,.r2-cite-bib:active,.r2-share-btn:active,.r2-pub-cite-btn:active,.r2-career-more:active,.r2-about-collab-link:active{transform:scale(.97)}
/* 2. detail windows grow from the tapped card */
@keyframes r2Grow{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}
@keyframes r2Fade{from{opacity:0}to{opacity:1}}
.r2-note-modal.is-open .r2-note-modal-dialog,.r2-project-modal.is-open .r2-project-dialog,.r2-publication-modal.is-open .r2-publication-dialog{transform-origin:var(--r2-ox,50%) var(--r2-oy,30%);animation:r2Grow .34s cubic-bezier(.2,.8,.2,1) both!important}
.r2-note-modal.is-open .r2-note-modal-backdrop,.r2-project-modal.is-open .r2-project-modal-backdrop,.r2-publication-modal.is-open .r2-publication-backdrop{animation:r2Fade .25s ease both}
/* 4. home: the network background drifts slowly; a soft light passes over it */
@keyframes r2Drift{from{transform:translate3d(-10px,6px,0) scale(1.02)}to{transform:translate3d(12px,-8px,0) scale(1.04)}}
@keyframes r2Glide{from{transform:translate3d(-30%,0,0)}to{transform:translate3d(30%,0,0)}}
.r2-network-bg.r2-live{overflow:hidden}
.r2-network-bg.r2-live svg{animation:r2Drift 28s ease-in-out infinite alternate;will-change:transform}
.r2-network-bg.r2-live::after{content:"";position:absolute;inset:-10% 10%;background:radial-gradient(closest-side,rgba(143,179,221,.20),transparent 70%);animation:r2Glide 18s ease-in-out infinite alternate;pointer-events:none;will-change:transform}
html.r2-dark .r2-network-bg.r2-live::after{background:radial-gradient(closest-side,rgba(143,179,221,.10),transparent 70%)}
.r2-network-bg.r2-paused svg,.r2-network-bg.r2-paused::after{animation-play-state:paused}
/* 7. related reading */
.r2-related{margin:26px 0 4px;padding-top:18px;border-top:1px solid var(--r2-line,#e7e3da)}
.r2-related h3{margin:0 0 12px;font-size:13px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#6e7076;font-family:inherit}
.r2-related-list{display:grid;gap:8px}
.r2-related-item{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 12px;width:100%;padding:12px 14px;border:1px solid var(--r2-line,#e7e3da);border-radius:12px;background:#fff;color:#1b1c20;font:inherit;text-align:left;cursor:pointer}
.r2-related-item:hover{border-color:#9bb3d3}
.r2-related-kind{grid-column:1;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#2f5f8f}
.r2-related-item strong{grid-column:1;font-size:15px;font-weight:600;line-height:1.35}
.r2-related-item svg{grid-column:2;grid-row:1/3;width:18px;height:18px;color:#8a8f98;transition:transform .15s}
html.r2-can-hover .r2-related-item:hover svg{transform:translateX(3px);color:#2f5f8f}
html.r2-dark .r2-related{border-color:#2c2e34}
html.r2-dark .r2-related-item{background:#16171a;border-color:#2c2e34;color:#e8e9ec}
html.r2-dark .r2-related-kind{color:#9cc3ea}
/* 9. citation counts */
.r2-cite-count{display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:2px 8px;border-radius:999px;background:#eef3f9;color:#2f5f8f;font-size:11px;font-weight:700;letter-spacing:.02em;vertical-align:middle;text-transform:none}
.r2-cite-count svg{width:12px;height:12px}
html.r2-dark .r2-cite-count{background:#1a2230;color:#9cc3ea}
/* reduced motion: everything calm */
html.r2-reduce *,html.r2-reduce *::before,html.r2-reduce *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
@media (prefers-reduced-motion: reduce){.r2-network-bg svg,.r2-network-bg::after{animation:none!important}}

/* ===================== Home: latest updates — calm cards ===================== */
.r2-latest-grid{gap:22px!important;align-items:stretch}
.r2-lc{display:flex!important;flex-direction:column;background:#fff;border:1px solid var(--r2-line,#e7e3da);border-radius:18px;overflow:hidden;cursor:pointer;text-align:left!important;box-shadow:0 1px 2px rgba(20,24,32,.04)}
.r2-lc .r2-latest-media{position:relative;aspect-ratio:16/10;margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:#f6f5f1;display:grid;place-items:center;overflow:hidden;transform:none!important}
.r2-lc .r2-latest-media img{width:100%;height:100%;object-fit:contain;padding:12px;box-sizing:border-box;background:transparent}
.r2-lc .r2-latest-media .r2-ph,.r2-lc .r2-latest-media .r2-latest-placeholder{width:100%;height:100%;border-radius:0}
.r2-lc-body{display:flex;flex-direction:column;gap:8px;padding:16px 18px 18px;flex:1}
.r2-lc-meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;font-size:12px;color:#7a7e86}
.r2-lc-type{padding:3px 9px;border-radius:999px;font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;background:#eef3f9;color:#2f5f8f}
.r2-lc-note,.r2-lc-idea{background:#f4efe6;color:#8a5a2b}
.r2-lc-project{background:#eef0f2;color:#33373e}
.r2-lc-new{padding:3px 8px;border-radius:999px;font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;background:#e7f3ec;color:#2e7d4f}
.r2-lc-title{margin:0;font:500 18px/1.35 'Playfair Display',Georgia,serif;color:#1b1c20;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.r2-lc-open{margin-top:auto;padding-top:6px;display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:#2f5f8f}
.r2-lc-open svg{width:15px;height:15px;transition:transform .15s}
html.r2-can-hover .r2-lc{transition:transform .28s cubic-bezier(.2,.7,.2,1),box-shadow .28s ease,border-color .2s}
html.r2-can-hover .r2-lc:hover{transform:translateY(-4px);box-shadow:0 16px 34px rgba(20,24,32,.10);border-color:#d8e1ec}
html.r2-can-hover .r2-lc:hover .r2-lc-open svg{transform:translateX(3px)}
html.r2-can-hover .r2-lc:hover .r2-latest-media img{transform:scale(1.03)}
.r2-lc:focus-visible{outline:2px solid #2f5f8f;outline-offset:3px}
html.r2-dark .r2-lc{background:#17181b;border-color:#2a2c31}
html.r2-dark .r2-lc .r2-latest-media{background:#f3f2ee}
html.r2-dark .r2-lc-title{color:#eceae6}
html.r2-dark .r2-lc-meta{color:#9ea3ab}
html.r2-dark .r2-lc-type{background:#1a2230;color:#9cc3ea}
html.r2-dark .r2-lc-note,html.r2-dark .r2-lc-idea{background:#2a2217;color:#e3ae72}
html.r2-dark .r2-lc-project{background:#23252a;color:#d7d9dd}
html.r2-dark .r2-lc-new{background:#15291f;color:#7fd3a0}
html.r2-dark .r2-lc-open{color:#9cc3ea}
@media(max-width:640px){.r2-latest-grid{grid-template-columns:1fr!important;gap:16px!important}.r2-lc .r2-latest-media{aspect-ratio:16/9}.r2-lc-title{font-size:17px}}

/* ===================== Home: research in progress — one clean list ===================== */
.r2-ongoing-list{display:block!important;max-width:980px;margin:0 auto;background:#fff;border:1px solid var(--r2-line,#e7e3da);border-radius:18px;overflow:hidden}
.r2-og-row{display:grid;grid-template-columns:150px 1fr auto;align-items:start;gap:18px;padding:20px 24px;border-top:1px solid #f0ede6}
.r2-og-row:first-child{border-top:0}
.r2-og-row .r2-ongoing-status{margin-top:3px}
.r2-og-main h3{margin:0;font:500 18px/1.35 'Playfair Display',Georgia,serif;color:#1b1c20}
.r2-og-main p{margin:6px 0 0;font-size:14px;line-height:1.6;color:#6e7076;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.r2-og-year{padding:3px 10px;border-radius:999px;background:#f3f1ec;color:#5a5e66;font-size:12px;font-weight:700}
html.r2-can-hover .r2-og-row{transition:background .2s}
html.r2-can-hover .r2-og-row:hover{background:#fbfaf7}
html.r2-dark .r2-ongoing-list{background:#17181b;border-color:#2a2c31}
html.r2-dark .r2-og-row{border-color:#23252a}
html.r2-dark .r2-og-main h3{color:#eceae6}
html.r2-dark .r2-og-main p{color:#a3a19c}
html.r2-dark .r2-og-year{background:#23252a;color:#c9cbcf}
html.r2-dark.r2-can-hover .r2-og-row:hover{background:#1b1c20}
@media(max-width:700px){.r2-og-row{grid-template-columns:1fr auto;gap:8px 12px;padding:16px 18px}.r2-og-row .r2-ongoing-status{grid-column:1;grid-row:1}.r2-og-year{grid-column:2;grid-row:1;justify-self:end}.r2-og-main{grid-column:1/-1}}

/* ===================== Research notes: clear categories ===================== */
.r2-note-type-section-head{display:none!important}
.r2-note-cats{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 26px}
.r2-note-cats button{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid var(--r2-line,#e7e3da);border-radius:999px;background:#fff;color:#33363c;font:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:border-color .15s,background .15s,color .15s}
.r2-note-cats button em{font-style:normal;min-width:22px;padding:1px 7px;border-radius:999px;background:#f3f1ec;color:#6e7076;font-size:12px;text-align:center}
.r2-note-cats button:hover{border-color:#9bb3d3}
.r2-note-cats button.is-on{background:#1b1c20;border-color:#1b1c20;color:#fff}
.r2-note-cats button.is-on em{background:rgba(255,255,255,.18);color:#fff}
.r2-public-topic-group{margin:0 0 34px}
.r2-public-topic-group[hidden]{display:none!important}
.r2-public-topic-heading{display:flex!important;align-items:center;gap:12px;margin:0 0 16px!important;padding:0 0 12px!important;border-bottom:1px solid var(--r2-line,#e7e3da)}
.r2-public-topic-heading h4{margin:0!important;display:flex;align-items:center;gap:10px}
.r2-public-topic-heading h4::before{content:"";width:10px;height:10px;border-radius:50%;background:currentColor;opacity:.85}
.r2-public-topic-heading span{padding:2px 10px;border-radius:999px;background:#f3f1ec;color:#6e7076!important;font-size:12px!important;font-weight:700;letter-spacing:.02em!important;text-transform:none!important}
.r2-public-topic-group{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:20px}
.r2-public-topic-group>.r2-public-topic-heading{grid-column:1/-1}
html.r2-dark .r2-note-cats button{background:#17181b;border-color:#2a2c31;color:#d7d9dd}
html.r2-dark .r2-note-cats button em{background:#23252a;color:#a3a19c}
html.r2-dark .r2-note-cats button.is-on{background:#eceae6;border-color:#eceae6;color:#121315}
html.r2-dark .r2-note-cats button.is-on em{background:rgba(0,0,0,.12);color:#121315}
html.r2-dark .r2-public-topic-heading{border-color:#2a2c31}
html.r2-dark .r2-public-topic-heading span{background:#23252a;color:#a3a19c!important}
@media(max-width:640px){.r2-note-cats{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:4px -16px 20px;padding:0 16px}.r2-note-cats::-webkit-scrollbar{display:none}.r2-note-cats button{flex:0 0 auto;font-size:13px}.r2-public-topic-group{grid-template-columns:1fr}}

/* ===================== Home: latest + in-progress side by side, compact ===================== */
.r2-home-duo{max-width:1180px;margin:0 auto;padding:10px 26px 70px;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:26px;align-items:start}
.r2-home-duo:has(#r2Ongoing[hidden]){grid-template-columns:minmax(0,1fr);max-width:760px}
.r2-home-duo>.r2-latest,.r2-home-duo>.r2-ongoing{max-width:none!important;margin:0!important;padding:22px 22px 18px!important;background:#fff;border:1px solid var(--r2-line,#e7e3da);border-radius:20px;box-shadow:0 1px 2px rgba(20,24,32,.04);animation:none}
.r2-home-duo .r2-latest-head{text-align:left!important;margin:0 0 14px!important;padding:0!important}
.r2-home-duo .r2-latest-head h2{margin:0!important;font-size:24px!important;line-height:1.2}
.r2-home-duo .r2-latest-head p{margin:4px 0 0!important;font-size:13.5px!important;color:#7a7e86}
.r2-home-duo .r2-latest-swash{display:none}
/* latest: compact rows */
.r2-home-duo .r2-latest-grid{display:flex!important;flex-direction:column;gap:0!important;grid-template-columns:none!important}
.r2-lc-row{display:grid!important;grid-template-columns:76px minmax(0,1fr) 18px;align-items:center;gap:14px;padding:12px 8px!important;margin:0 -8px;background:transparent!important;border:0!important;border-top:1px solid #f0ede6!important;border-radius:12px!important;box-shadow:none!important;overflow:visible!important}
.r2-lc-row:first-child{border-top:0!important}
.r2-lc-row .r2-latest-media{width:76px;height:60px;aspect-ratio:auto!important;border-radius:10px!important;background:#f4f3ef!important;border:1px solid #ece9e2!important}
.r2-lc-row .r2-latest-media img{padding:4px!important}
.r2-lc-row .r2-lc-body{padding:0!important;gap:5px}
.r2-lc-row .r2-lc-title{font-size:16px!important;-webkit-line-clamp:2}
.r2-lc-row .r2-lc-meta{font-size:11.5px}
.r2-lc-arrow{width:18px;height:18px;color:#b3b6bc;transition:transform .15s,color .15s}
html.r2-can-hover .r2-lc-row:hover{transform:none!important;box-shadow:none!important;background:#f8f7f3!important}
html.r2-can-hover .r2-lc-row:hover .r2-lc-arrow{transform:translateX(3px);color:#2f5f8f}
html.r2-can-hover .r2-lc-row:hover .r2-latest-media img{transform:none}
.r2-home-duo .r2-latest-more{justify-content:flex-start;gap:6px;margin:12px 0 0!important;padding-top:12px;border-top:1px solid #f0ede6}
.r2-home-duo .r2-latest-more a{padding:6px 12px!important;font-size:12.5px!important;border-color:#ebe7df}
.r2-home-duo .r2-latest-more a svg{width:13px;height:13px}
/* in progress: compact list */
.r2-home-duo .r2-ongoing-list{max-width:none!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
.r2-home-duo .r2-og-row{grid-template-columns:1fr auto!important;gap:6px 12px!important;padding:14px 0!important;border-top:1px solid #f0ede6}
.r2-home-duo .r2-og-row:first-child{border-top:0}
.r2-home-duo .r2-og-row .r2-ongoing-status{grid-column:1;grid-row:1;margin:0;font-size:10.5px}
.r2-home-duo .r2-og-year{grid-column:2;grid-row:1;justify-self:end;font-size:11px;padding:2px 9px}
.r2-home-duo .r2-og-main{grid-column:1/-1}
.r2-home-duo .r2-og-main h3{font-size:16px!important}
.r2-home-duo .r2-og-main p{font-size:13px!important;-webkit-line-clamp:2!important;margin-top:4px!important}
html.r2-can-hover .r2-home-duo .r2-og-row:hover{background:transparent}
html.r2-dark .r2-home-duo>.r2-latest,html.r2-dark .r2-home-duo>.r2-ongoing{background:#17181b;border-color:#2a2c31}
html.r2-dark .r2-lc-row,html.r2-dark .r2-home-duo .r2-og-row,html.r2-dark .r2-home-duo .r2-latest-more{border-color:#23252a!important}
html.r2-dark .r2-lc-row .r2-latest-media{border-color:#2a2c31!important}
html.r2-dark.r2-can-hover .r2-lc-row:hover{background:#1c1d21!important}
html.r2-dark .r2-home-duo .r2-latest-more a{border-color:#2a2c31}
@media(max-width:900px){.r2-home-duo{grid-template-columns:minmax(0,1fr);padding:6px 16px 56px;gap:18px}}
@media(max-width:640px){.r2-home-duo>.r2-latest,.r2-home-duo>.r2-ongoing{padding:18px 16px 14px!important;border-radius:16px}.r2-lc-row{grid-template-columns:64px minmax(0,1fr) 16px;gap:12px}.r2-lc-row .r2-latest-media{width:64px;height:52px}.r2-lc-row .r2-lc-title{font-size:15px!important}.r2-home-duo .r2-latest-head h2{font-size:22px!important}}
.r2-home-duo>#latest.r2-latest,.r2-home-duo>#r2Ongoing{padding:22px 22px 18px!important}

/* ===================== Home hero: lighter text, compact focus card, stat tiles ===================== */
html body.r2-home-view .r2-hero-copy p{font-size:clamp(17px,1.55vw,20px)!important;line-height:1.6!important;max-width:540px!important;color:#34373d}
html body.r2-home-view .r2-hero-panel{padding:20px 20px 16px!important;border-radius:20px!important;max-width:410px;box-shadow:0 14px 34px rgba(20,24,32,.07)!important}
html body.r2-home-view .r2-hero-panel-kicker{font-size:10.5px!important;letter-spacing:.16em!important;margin:0 0 4px!important}
html body.r2-home-view .r2-hero-panel-hint{margin:0 0 12px!important;font-size:11.5px}
html body.r2-home-view .r2-hero-topics{gap:6px!important;margin:0 0 16px!important}
html body.r2-home-view .r2-hero-topics span{padding:4px 10px!important;font-size:11.5px!important;line-height:1.35!important;border-radius:999px!important;gap:6px}
html body.r2-home-view .r2-hero-topics span::before{width:5px!important;height:5px!important}
/* stat tiles */
html body.r2-home-view .r2-stats-v2{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important;padding:14px 0 0!important;margin:0!important;border-top:1px solid #eeebe4!important}
html body.r2-home-view .r2-stats-v2>a{display:flex!important;flex-direction:column;align-items:flex-start;gap:8px;padding:10px 11px!important;margin:0!important;border:1px solid #efece5!important;border-radius:14px!important;background:#faf9f6;text-decoration:none;color:inherit;transition:transform .2s cubic-bezier(.2,.7,.2,1),border-color .2s,background .2s}
html body.r2-home-view .r2-stats-v2>a::before,html body.r2-home-view .r2-stats-v2>a::after{display:none!important}
html body.r2-home-view .r2-stats-v2 .r2-stat-ic{display:grid;place-items:center;width:28px;height:28px;border-radius:9px}
html body.r2-home-view .r2-stats-v2 .r2-stat-ic svg{width:15px;height:15px}
html body.r2-home-view .r2-st-pub .r2-stat-ic{background:#e8f0f9;color:#2f5f8f}
html body.r2-home-view .r2-st-note .r2-stat-ic{background:#f6eee3;color:#9a6431}
html body.r2-home-view .r2-st-proj .r2-stat-ic{background:#e7f3ec;color:#2e7d4f}
html body.r2-home-view .r2-stats-v2 .r2-st-txt{display:flex;flex-direction:column;gap:1px;min-width:0}
html body.r2-home-view .r2-stats-v2 strong{font:600 22px/1.05 'Playfair Display',Georgia,serif!important;color:#1b1c20;margin:0!important}
html body.r2-home-view .r2-stats-v2 .r2-st-txt>span{font-size:11px!important;font-weight:600;letter-spacing:.01em!important;text-transform:none!important;color:#7a7e86!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html.r2-can-hover body.r2-home-view .r2-stats-v2>a:hover{transform:translateY(-2px);border-color:#d6dfeb!important;background:#fff}
html.r2-dark body.r2-home-view .r2-hero-copy p{color:#d7d9dd}
html.r2-dark body.r2-home-view .r2-stats-v2{border-color:#2a2c31!important}
html.r2-dark body.r2-home-view .r2-stats-v2>a{background:#1b1c20;border-color:#2a2c31!important}
html.r2-dark body.r2-home-view .r2-stats-v2 strong{color:#eceae6}
html.r2-dark body.r2-home-view .r2-stats-v2 .r2-st-txt>span{color:#a3a19c!important}
html.r2-dark body.r2-home-view .r2-st-pub .r2-stat-ic{background:#1a2230;color:#9cc3ea}
html.r2-dark body.r2-home-view .r2-st-note .r2-stat-ic{background:#2a2217;color:#e3ae72}
html.r2-dark body.r2-home-view .r2-st-proj .r2-stat-ic{background:#15291f;color:#7fd3a0}
@media(max-width:640px){html body.r2-home-view .r2-hero-copy p{font-size:16.5px!important}html body.r2-home-view .r2-hero-panel{max-width:none;padding:16px 16px 14px!important}html body.r2-home-view .r2-stats-v2 strong{font-size:20px!important}}
html body.r2-home-view .hero > div.r2-hero-copy > p{font-size:clamp(15.5px,1.2vw,17px)!important;line-height:1.7!important;max-width:500px!important}
