/* =========================================================
   THEME CLEAN-UP — GiovanniFederico.net (Bludit)
   - Palette centralizzata
   - Tipografia più snella (Inter variabile 300–700)
   - Gerarchie coerenti senza !important superflui
   - Card & link più leggeri
   ========================================================= */

/* ---------- Palette & tokens ---------- */
:root{
  --gf-font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --brand-accent: #43a7e2;        /* azzurro .net */
  --brand-accent-2:#53a7e3;       /* variante link */
  --text-900:   #222;
  --text-700:   #444;
  --text-600:   #555;
  --text-500:   #666;
  --muted-50:   #f8f9fa;
  --muted-100:  #f1f3f5;
  --muted-200:  rgba(0,0,0,.12);
  --shadow-s:   0 1px 4px rgba(0,0,0,.08);
  --shadow-m:   0 8px 24px rgba(0,0,0,.08);
  --radius-s:   8px;
  --radius-m:   10px;
  --radius-l:   16px;
  --gf-frame-gutter: clamp(22px, 4.4vw, 76px);
  --gf-frame-max: 1600px;
  --gf-command-top: 112px;
  --gf-command-frame-width: min(calc(100vw - var(--gf-frame-gutter) - var(--gf-frame-gutter)),var(--gf-frame-max));
}

html,
body{
  font-weight: 400;
  font-synthesis-weight: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
strong,
b{ font-weight: 600; }
.fw-semibold{ font-weight: 550 !important; }
.fw-bold,
.fw-bolder{ font-weight: 600 !important; }

/* ---------- Header / primary navigation ---------- */
.gf-site-header{
  z-index: 1030;
  background: rgba(255,255,255,.9);
  box-shadow: none;
  backdrop-filter: blur(22px) saturate(150%);
  -webkit-backdrop-filter: blur(22px) saturate(150%);
}
.gf-navbar{ padding: 0; }
.gf-navbar-shell{
  width: min(calc(100% - var(--gf-frame-gutter) - var(--gf-frame-gutter)), var(--gf-frame-max));
  max-width: var(--gf-frame-max);
  min-height: 104px;
  margin: 0 auto;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.gf-navbar-brand{
  flex: 0 1 auto;
  min-width: 0;
  margin-right: clamp(24px, 3.4vw, 58px);
  padding: 0;
}
.gf-navbar-brand img{
  display: block;
  width: clamp(260px, 20vw, 340px);
  max-width: 100%;
  height: auto;
}
.gf-brand-fallback{
  font-family: var(--gf-font);
  font-size: clamp(1.25rem, 1.8vw, 1.75rem);
  font-weight: 500;
  letter-spacing: -.04em;
  color: #17212b;
}
.gf-navbar-collapse{
  min-width: 0;
}
.gf-nav-links{
  gap: clamp(2px, .35vw, 7px);
  margin: 0;
  font-family: var(--gf-font);
}
.gf-nav-link{
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: .46rem;
  padding: .7rem clamp(.55rem, .72vw, .78rem) !important;
  border-radius: 999px;
  color: #34414d;
  font-size: .9rem;
  font-weight: 500;
  letter-spacing: -.015em;
  white-space: nowrap;
  transition: color .2s ease, background-color .2s ease, transform .2s ease;
}
.gf-nav-link::after{
  content: none;
}
.gf-nav-icon{
  width: 1.1rem;
  color: #71808d;
  font-size: .96rem;
  text-align: center;
  transition: color .2s ease, transform .2s ease;
}
.gf-nav-link:hover,
.gf-nav-link:focus-visible,
.gf-nav-link.active{
  color: #0c7fbe;
  background: rgba(67,167,226,.09);
  outline: 0;
}
.gf-nav-link:hover .gf-nav-icon,
.gf-nav-link:focus-visible .gf-nav-icon,
.gf-nav-link.active .gf-nav-icon{
  color: var(--brand-accent);
  transform: translateY(-1px);
}
.gf-student-item{
  display: flex;
  align-items: center;
  margin-left: clamp(7px, .9vw, 15px);
}
.gf-student-link{
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .74rem 1.1rem !important;
  border: 0;
  border-radius: 999px;
  background: linear-gradient(135deg, #149ce4 0%, #0b7ec8 100%);
  box-shadow: 0 8px 20px rgba(14,135,205,.2);
  color: #fff !important;
  font-family: var(--gf-font);
  font-size: .91rem;
  font-weight: 600;
  letter-spacing: -.01em;
  line-height: 1;
  transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
.gf-student-link:hover,
.gf-student-link:focus-visible{
  transform: translateY(-1px);
  box-shadow: 0 10px 21px rgba(14,135,205,.28);
  filter: saturate(1.08);
}
.gf-search{
  position: relative;
  flex: 0 0 46px;
  width: 46px;
  min-width: 46px;
  height: 46px;
  margin-left: clamp(16px, 2vw, 32px);
  transition: width .34s cubic-bezier(.22,1,.36,1), flex-basis .34s cubic-bezier(.22,1,.36,1);
}
.gf-search.is-open{
  flex-basis: clamp(180px, 16vw, 260px);
  width: clamp(180px, 16vw, 260px);
}
.gf-search-input{
  width: 100%;
  height: 46px;
  min-height: 46px;
  padding: .68rem 2.9rem .68rem 1.08rem;
  border: 1px solid #dfe7ed;
  border-radius: 999px;
  outline: 0;
  background: rgba(248,251,253,.92);
  color: #24313c;
  font-family: var(--gf-font);
  font-size: .93rem;
  font-weight: 450;
  opacity: 0;
  pointer-events: none;
  transition: border-color .2s ease, box-shadow .2s ease, opacity .16s ease;
}
.gf-search.is-open .gf-search-input{
  opacity: 1;
  pointer-events: auto;
}
.gf-search-input::placeholder{
  color: #6b7782;
  opacity: 1;
}
.gf-search-input:focus{
  border-color: rgba(67,167,226,.78);
  box-shadow: 0 0 0 4px rgba(67,167,226,.13);
}
.gf-search-button{
  position: absolute;
  top: 50%;
  right: 1px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(248,251,253,.96);
  box-shadow: inset 0 0 0 1px #dfe7ed;
  color: var(--brand-accent);
  font-size: 1rem;
  transform: translateY(-50%);
  transition: background-color .2s ease, color .2s ease, box-shadow .2s ease;
}
.gf-search.is-open .gf-search-button{
  background: transparent;
  box-shadow: none;
}
.gf-search-button:hover,
.gf-search-button:focus-visible{
  background: rgba(67,167,226,.11);
  color: #0c7fbe;
  outline: 0;
}
.gf-nav-toggle{
  display: grid;
  width: 46px;
  height: 46px;
  padding: 0;
  place-items: center;
  border: 1px solid #d7e2e9;
  border-radius: 12px;
  line-height: 1;
  box-shadow: none !important;
}
.gf-nav-toggle-icon{
  display: flex;
  width: 20px;
  height: 16px;
  margin: 0;
  flex-direction: column;
  justify-content: space-between;
  vertical-align: middle;
}
.gf-nav-toggle-icon span{
  display: block;
  width: 100%;
  height: 2px;
  border-radius: 99px;
  background: #253541;
}
@media (max-width:1199.98px){
  .gf-navbar{ padding: 0; }
  .gf-navbar-shell{
    min-height: 82px;
  }
  .gf-navbar-brand{
    height: 82px;
  }
  .gf-navbar-brand img{
    width: clamp(220px, 34vw, 300px);
  }
  .gf-navbar-collapse{
    margin-top: 0;
    padding: 0;
    border-top: 0;
  }
  .gf-navbar-collapse::after{
    content: '';
    display: block;
    height: 20px;
  }
  .gf-navbar-collapse.collapsing{
    transition: height .42s cubic-bezier(.22,1,.36,1);
  }
  .gf-nav-links{
    align-items: stretch;
    gap: 2px;
    padding-top: 12px;
  }
  .gf-nav-link{
    justify-content: flex-start;
    padding: .76rem .82rem !important;
    border-radius: 12px;
  }
  .gf-nav-link::after{
    content: none;
  }
  .gf-student-item{
    margin: 8px 0 4px;
  }
  .gf-student-link{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    padding: .84rem 1.12rem !important;
  }
  .gf-search{
    display: block;
    flex: 0 0 auto;
    height: auto;
    width: 100%;
    min-width: 0;
    margin: 12px 0 3px;
  }
  .gf-search-input{
    width: 100%;
    opacity: 1;
    pointer-events: auto;
  }
  .gf-search-button{
    background: transparent;
    box-shadow: none;
  }
}
@media (max-width:575.98px){
  .gf-navbar{ padding: 0; }
  .gf-navbar-shell{
    min-height: 74px;
    padding: 0;
    border-radius: 0;
  }
  .gf-navbar-brand{
    height: 74px;
    max-width: calc(100% - 58px);
    margin-right: 8px;
  }
  .gf-navbar-brand img{
    width: min(230px, 100%);
  }
  .gf-nav-toggle{
    width: 42px;
    height: 42px;
  }
}
@media (prefers-reduced-motion: reduce){
  .gf-nav-link,
  .gf-nav-link::after,
  .gf-student-link,
  .gf-search-input,
  .gf-search,
  .gf-search-button,
  .gf-navbar-collapse.collapsing{
    transition: none;
  }
}


/* ---------- Link & utilità di colore ---------- */
.bg-soft-orange { background-color:#FFE6DD; }
.btn-orange     { background-color:#FFE6DD; color:#111; } /* testo scuro: migliore contrasto */
.text-orange    { color: var(--brand-accent-2); }
.link-text      { color:#8A9A5B; }

p a, .txt-link {
  color: var(--brand-accent-2);
  text-decoration: none;
}
p a:hover, .txt-link:hover {
  color: var(--brand-accent);
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* ---------- Solo paginazione in home ---------- */
.pagination-wrap{
  padding: 24px 0;
  background-color: var(--muted-50);
}

/* ---------- Tipografia globale ---------- */
html,
body,
button,
input,
select,
textarea{
  font-family: var(--gf-font);
}
body{
  font-size: 16px;
  font-weight: 400;
  line-height: 1.6;
  color: var(--text-700);
}

/* Scala titoli: più snella */
h1, .site-title{
  font-weight: 500;
  font-size: 1.9rem;
  line-height: 1.25;
  color: var(--text-900);
  margin: 0 0 .5rem;
}

/* Evita conflitti: sottotitoli/ruoli NON usano h2 */
.subtitle, .tagline{
  font-weight: 450;
  font-size: 1rem;
  color: var(--text-600);
  margin: 0 0 .5rem;
}

p{
  font-size: .95rem;
  margin: 0 0 1rem;
  color: var(--text-700);
}

/* Scala headings coerente */
h2{ font-size: 1.5rem; padding-bottom: 10px; line-height: 1.3; font-weight: 500; color: var(--text-900); }
h3{ font-size: 1.25rem; padding-bottom: 10px; line-height: 1.3; font-weight: 500; color: var(--text-900); }
h4{ font-size: 1rem;   padding-bottom: 10px; line-height: 1.3; font-weight: 500; color: var(--text-900); }

/* ---------- Bottoni & call-to-action ---------- */
button, .btn, a.button{
  font-weight: 450;
  font-size: .9rem;
  text-transform: uppercase;
  letter-spacing: .5px;
}

/* ---------- Sezioni & spaziature verticali ---------- */
section, .section{
  margin: 1.25rem 0;
}

/* ---------- Card generiche ---------- */
.card{
  border: none;
  box-shadow: var(--shadow-s);
  border-radius: var(--radius-m);
  padding: 1rem;
  transition: box-shadow .2s ease, transform .2s ease;
}
.card:hover{
  box-shadow: var(--shadow-m);
  transform: translateY(-1px);
}
.card-title{ font-weight: 500; font-size: .95rem; color: var(--text-900); }
.card-text { font-size: .875rem; color: var(--text-600); }
.card-link { text-decoration: none; }

/* ---------- UI generali ---------- */
.bd-links-link{
  padding: .1875rem .5rem;
  margin-top: .125rem;
  margin-left: 0;
  color: var(--text-900);
  text-decoration: none;
}
.bd-links-link:hover{ background-color: var(--brand-accent-2); color: #fff; }

.copyright{ color:#585c5e; }
.list-unstyled{ padding-left:0; list-style:none; }
.rounded{ border-radius: var(--radius-s) !important; }
.d-inline-block{ display:inline-block !important; }
.tsm{ font-size:13px; }
.active{ font-weight:600; }
.sticky{ position: sticky; top: 90px; }

/* ---------- Tipografia contenuti & immagini ---------- */
blockquote{
  padding: 22px;
  font-size: 20px;
  font-style: italic;
}
blockquote:before{
  content: url('../img/blockquote.png');
  display: inline-block;
  padding-right: 10px;
  vertical-align: middle;
}

.post-content img,
.page-content img,
.content img,
.article img,
.markdown-body img,
p img,
img{
  max-width: 100%;
  height: auto;
  display: block;
  border-radius: var(--radius-m);
}
p img{ padding: 10px 0; }

/* ---------- Pulsanti share (fix px) ---------- */
.st-custom-button[data-network]{
  display: inline-block;
  padding: 14px;
  cursor: pointer;
  font-weight: 600;
  color: #fff;
  border-radius: 50%;
  width: 50px;
  height: 50px;
  text-align: center;
  font-size: 20px;
}
.st-custom-button[data-network=facebook]{  background-color:#1877F2; }
.st-custom-button[data-network=twitter]{   background-color:#0ADEFF; }
.st-custom-button[data-network=pinterest]{ background-color:#E60023; }
.st-custom-button[data-network=whatsapp]{  background-color:#128c7e; }
.st-custom-button[data-network]:hover,
.st-custom-button[data-network]:focus{
  text-decoration: none;
  background-color:#2e363c;
}

/* ---------- Chip & headline ricerca ---------- */
.hero-chip{ border-radius:14px; }
.research-headline{ letter-spacing:.1px; }

/* ---------- Separatore sottile ---------- */
hr.thin, .whitebox hr{
  border: 0;
  border-top: 1px solid var(--muted-200);
  margin: 1.25rem 0;
}

/* =========================================================
   Pubblicazioni (responsive)
   ========================================================= */
.pub-rail{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 16px;
}

/* Card pubblicazioni */
.pub-card{
  height: 100%;
  display: flex;
  flex-direction: column;
  transition: transform .2s ease, box-shadow .2s ease;
  border-radius: var(--radius-l);
  box-shadow: var(--shadow-s);
  background: #fff;
}
.pub-card:hover{
  transform: translateY(-2px);
  box-shadow: var(--shadow-m);
}
.pub-card .card-body{
  flex: 1;
  display: flex;
  flex-direction: column;
}
.pub-rail .pub-card{
  overflow: hidden;
}
.pub-rail .pub-cover{
  width: 100%;
  aspect-ratio: 4 / 5;
  background: var(--muted-100);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.pub-rail .pub-cover img{
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  display: block;
  object-fit: contain;
  padding: 8px;
}
.pub-rail .badge{
  align-self: flex-start;
}

/* Testo pubblicazioni */
.pub-card h6{
  font-size: 1rem;
  line-height: 1.3;
  margin: 0 0 .25rem;
  color: var(--text-900);
}
.pub-link{
  text-decoration: underline;
  text-underline-offset: 2px;
  color: inherit;
}
.pub-link:hover{ color: var(--brand-accent-2); }

/* ---------- Profilo / avatar ---------- */
.avatar-circle{
  width: 140px;
  height: 140px;
  border-radius: 50%;
  object-fit: cover;
}

/* Header profilo: avatar a sinistra, no wrap */
.profile-header{
  flex-wrap: nowrap;
}
.profile-header .avatar-circle{
  flex: 0 0 auto;
}
.profile-header .min-w-0{
  min-width: 0;
}

/* Mobile stretto: impila e centra */
@media (max-width: 600px){
  .profile-header{
    flex-wrap: wrap;
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  .profile-header .avatar-circle{ margin-bottom:12px; }
  .profile-header .min-w-0{ min-width:100%; }
}

/* ---------- Footer ---------- */
.site-footer{ background:#1f2529; }
.site-footer .footer-links a{ color:#9aa3aa; }
.site-footer .footer-links a:hover{
  color: var(--brand-accent);
}

/* ---------- Icone social ---------- */
.social-icons i{
  font-size: 24px;
  width: 44px; height: 44px; line-height: 44px;
  text-align: center;
  border-radius: 50%;
  display: inline-block;
  transition: transform .2s ease, color .2s ease, box-shadow .2s ease, background-color .2s ease;
  color: #fff;
  background: transparent;
  box-shadow: inset 0 0 0 2px rgba(255,255,255,.35);
  margin: 0 .25rem;
}
.social-icons a:hover i{
  color: var(--brand-accent);
  box-shadow: inset 0 0 0 2px var(--brand-accent), 0 6px 14px rgba(67,167,226,.25);
  transform: translateY(-2px);
  background: rgba(67,167,226,.08);
}
@media (max-width:576px){
  .social-icons i{ font-size:22px; width:40px; height:40px; line-height:40px; }
}

/* ===== Selected publications — responsive & gap-proof ===== */
*, *::before, *::after { box-sizing: border-box; }

.pubs-grid-5{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); /* auto-fit = niente colonne fantasma */
  gap: 16px;
  width: 100%;
  max-width: 100%;
}
.pubs-grid-5 > * { min-width: 0; }

/* Card */
.pubs-grid-5 .pub-card{
  width: 100%;
  margin: 0;
  overflow: hidden;
  border-radius: 18px;
  border: 1px solid rgba(0,0,0,.05);
  box-shadow: var(--shadow-s);
  background:#fff;
  display:flex; flex-direction:column; height:100%;
  transition: box-shadow .15s ease, transform .15s ease;
  container-type: inline-size; /* per il micro-tuning sotto */
}
.pubs-grid-5 .pub-card:hover{ box-shadow: var(--shadow-m); transform: translateY(-2px); }

/* Cover */
.pubs-grid-5 .pub-cover{ width:100%; aspect-ratio:4/5; background:var(--muted-100);
  display:flex; align-items:center; justify-content:center; overflow:hidden; }
.pubs-grid-5 .pub-cover img{ width:100%; height:100%; object-fit:cover; display:block; }

/* Testi */
.pubs-grid-5 .pub-meta{ padding:12px 14px 16px; }
.pubs-grid-5 .pub-title{
  margin:0 0 6px; font-weight:600; font-size:16px; line-height:1.35;
  white-space:normal; overflow:visible; word-break:break-word; hyphens:auto;
}
.pubs-grid-5 .pub-authors{ margin:0; font-size:13.5px; line-height:1.45; color:var(--text-600); font-style:italic; }
.pubs-grid-5 .pub-authors strong{ font-style:normal; font-weight:500; color:var(--text-700); }

/* Breakpoint progressivi: evitiamo card troppo strette su schermi larghi */
@media (min-width: 1200px){
  .pubs-grid-5{ grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
}
@media (min-width: 1600px){
  .pubs-grid-5{ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
}

/* Micro-tuning quando la card scende davvero sotto i 180px */
@container (max-width: 180px){
  .pub-title{ font-size:14px; }
  .pub-authors{ font-size:12px; }
  .pub-meta{ padding:10px 12px 12px; }
}

/* ===== Link in tutta la pagina ===== */
/* Contenuti principali: post, pagine, articoli, griglie pubblicazioni */
.post-content a,
.page-content a,
.content a,
.article a,
.markdown-body a,
.pub-card a,
.pubs-grid-5 a,
.pub-rail a,
.blog-card a {
  color: var(--text-900);          /* come i titoli delle card */
  text-decoration: none;           /* niente sottolineatura */
  transition: color .15s ease, opacity .15s ease;
}
.post-content a:visited,
.page-content a:visited,
.content a:visited,
.article a:visited,
.markdown-body a:visited,
.pub-card a:visited,
.pubs-grid-5 a:visited,
.pub-rail a:visited,
.blog-card a:visited {
  color: var(--text-900);          /* niente viola visited */
  text-decoration: none;
}
.post-content a:hover,
.page-content a:hover,
.content a:hover,
.article a:hover,
.markdown-body a:hover,
.pub-card a:hover,
.pubs-grid-5 a:hover,
.pub-rail a:hover,
.blog-card a:hover {
  color: var(--text-900);          /* resta scuro come nei box blog */
  text-decoration: none;
  opacity: .85;                    /* feedback leggero come le card */
}

.badge.text-wrap {
  white-space: normal; 
  word-break: break-word; 
}

/* =========================================================
   GF EDITORIAL SYSTEM 2026
   Continuazione del linguaggio visivo del nuovo header
   ========================================================= */
:root{
  --gf-ink: #182334;
  --gf-ink-2: #304052;
  --gf-copy: #5f6d7c;
  --gf-blue: #43a7e2;
  --gf-blue-deep: #0b7ec8;
  --gf-ice: #f4f8fb;
  --gf-ice-2: #edf5fa;
  --gf-line: #dce8ef;
  --gf-line-strong: #c8dce8;
  --gf-navy: #071b31;
  --gf-shadow: 0 14px 34px rgba(27,76,107,.08), 0 2px 7px rgba(27,76,107,.04);
  --text-900: var(--gf-ink);
  --text-700: var(--gf-ink-2);
  --text-600: var(--gf-copy);
  --muted-50: var(--gf-ice);
  --muted-100: var(--gf-ice-2);
  --muted-200: var(--gf-line);
  --shadow-s: 0 6px 18px rgba(27,76,107,.055);
  --shadow-m: var(--gf-shadow);
}

html{
  scroll-behavior: smooth;
  background: #fff;
}
body{
  overflow-x: hidden;
  background: #fff;
  color: var(--gf-ink-2);
  font-family: var(--gf-font);
  font-size: 16px;
  line-height: 1.68;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
h1,h2,h3,h4,h5,h6,
.site-title,
.card-title,
.badge,
.btn,
button{
  font-family: var(--gf-font);
  letter-spacing: -.025em;
}
h1,.site-title{
  font-size: clamp(2rem, 3vw, 3.15rem);
  font-weight: 600;
  line-height: 1.08;
}
h2{ font-size: clamp(1.65rem, 2.2vw, 2.25rem); }
h3{ font-size: clamp(1.3rem, 1.7vw, 1.65rem); }
h4{ font-size: clamp(1.06rem, 1.3vw, 1.22rem); }
h2,h3,h4,h5,h6{ color: var(--gf-ink); font-weight: 600; }
p{ color: var(--gf-copy); font-size: 1rem; line-height: 1.72; }
a{ text-underline-offset: 3px; }
::selection{ background: rgba(67,167,226,.22); color: var(--gf-ink); }
:focus-visible{ outline: 3px solid rgba(67,167,226,.42); outline-offset: 3px; }
.container{ --bs-gutter-x: 2.2rem; }

/* Home: profilo editoriale aperto */
.gf-home-stage{
  background: #fff;
  padding-top: clamp(2.5rem, 5vw, 5rem) !important;
  padding-bottom: 0 !important;
}
.gf-home-stage > .container{
  max-width: 1440px;
}
.gf-home-content{
  width: 100%;
}
.gf-home-intro{
  display: grid;
  grid-template-columns: minmax(0,1fr);
  row-gap: 0;
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: clamp(1.2rem, 2.4vw, 2.3rem) clamp(.25rem, 1.4vw, 1.25rem) clamp(4rem, 7vw, 7rem);
}
.gf-home-intro > .profile-header{
  grid-column: 1;
  margin-bottom: clamp(3.25rem, 5vw, 4.75rem) !important;
}
.gf-home-intro > hr{
  display: none;
}
.gf-home-intro > .mb-3{
  grid-column: 1;
  grid-row: 2;
  margin: 0 !important;
}
.gf-home-intro > h4,
.gf-home-intro > .mb-3 + p{
  grid-column: 1;
  grid-row: 3;
  width: 100%;
  max-width: 1120px;
  margin: 0;
  padding: 0;
  color: var(--gf-ink);
  font-family: var(--gf-font);
  font-size: clamp(1.433333rem, 2.233333vw, 2.433333rem);
  font-weight: 600;
  letter-spacing: -.055em;
  line-height: 1.01;
  text-wrap: balance;
}
.gf-home-intro > .mb-3 + p strong{
  color: inherit;
  font: inherit;
  letter-spacing: inherit;
}
.gf-home-intro > p:last-child{
  grid-column: 1;
  grid-row: 4;
  width: 100%;
  max-width: 1020px;
  margin: clamp(1.65rem, 2.4vw, 2.25rem) 0 0 !important;
  padding: 0;
  text-align: left !important;
  font-size: clamp(1.03rem, 1.15vw, 1.13rem) !important;
  line-height: 1.76;
}
.gf-home-intro > .mb-3 .badge{
  padding: 0 0 .45rem !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--gf-blue-deep) !important;
  font-size: .78rem;
  font-weight: 600 !important;
  letter-spacing: .075em;
  text-transform: uppercase;
}

/* Hero manifesto: composizione editoriale per desktop wide */
@media (min-width: 1280px){
  .gf-home-stage{
    padding-top: clamp(2.5rem, 3.8vw, 4.4rem) !important;
  }
  .gf-home-stage > .container{
    width: 100%;
    max-width: none;
    padding-right: clamp(2rem, 3.7vw, 4.75rem);
    padding-left: clamp(2rem, 3.7vw, 4.75rem);
  }
  .gf-home-intro{
    grid-template-columns: minmax(0, 1fr) clamp(440px, 37.5vw, 540px);
    grid-template-rows: auto auto auto auto;
    column-gap: clamp(4rem, 5.4vw, 6.5rem);
    max-width: none;
    padding: clamp(1.25rem, 1.9vw, 2rem) 0 clamp(4.5rem, 6vw, 6.5rem);
  }
  .gf-home-intro > .profile-header{
    display: contents !important;
  }
  .gf-home-intro > .profile-header > .avatar-circle{
    grid-column: 2;
    grid-row: 1 / 5;
    align-self: start;
    width: 100%;
    height: clamp(680px, 44vw, 760px);
    margin: 0;
    border: 0;
    border-radius: clamp(24px, 2vw, 34px);
    object-fit: cover;
    object-position: center center;
    box-shadow: 0 28px 70px rgba(15,57,82,.16), 0 1px 0 rgba(255,255,255,.65) inset;
  }
  .gf-home-intro > .profile-header > div{
    grid-column: 1;
    grid-row: 1;
    align-self: start;
    min-width: 0;
  }
  .gf-home-intro > .profile-header h1{
    margin: 0 !important;
    font-size: clamp(3.1rem, 3.45vw, 4rem);
    line-height: 1.02;
    letter-spacing: -.06em;
  }
  .gf-home-intro > .profile-header p{
    max-width: 900px;
    margin-top: .8rem;
    font-size: clamp(1rem, 1.03vw, 1.13rem) !important;
    line-height: 1.72;
  }
  .gf-home-intro > .mb-3{
    grid-column: 1;
    grid-row: 2;
    align-self: end;
    margin-top: clamp(2.75rem, 3.4vw, 4rem) !important;
  }
  .gf-home-intro > h4,
  .gf-home-intro > .mb-3 + p{
    grid-column: 1;
    grid-row: 3;
    max-width: 930px;
    font-size: clamp(2.066667rem, 2.3vw, 2.666667rem);
    line-height: 1.01;
    letter-spacing: -.058em;
  }
  .gf-home-intro > p:last-child{
    grid-column: 1;
    grid-row: 4;
    max-width: 920px;
    margin-top: clamp(1.35rem, 1.8vw, 1.9rem) !important;
    font-size: clamp(1.08rem, 1.02vw, 1.18rem) !important;
    line-height: 1.7;
  }
}

@media (min-width: 1280px) and (max-width: 1399.98px){
  .gf-home-intro{
    grid-template-columns: minmax(0, 1fr) 440px;
    column-gap: 3rem;
  }
  .gf-home-intro > .profile-header > .avatar-circle{
    height: 660px;
  }
}

@media (min-width: 900px) and (max-width: 1279.98px){
  .gf-home-stage{
    padding-top: clamp(2.5rem, 4vw, 3.5rem) !important;
  }
  .gf-home-intro{
    grid-template-columns: minmax(0, 1fr) clamp(315px, 35vw, 400px);
    grid-template-rows: auto auto auto auto;
    column-gap: clamp(2.5rem, 4vw, 3.75rem);
    max-width: none;
    padding-top: 1rem;
  }
  .gf-home-intro > .profile-header{
    display: contents !important;
  }
  .gf-home-intro > .profile-header > .avatar-circle{
    grid-column: 2;
    grid-row: 1 / 5;
    align-self: start;
    width: 100%;
    height: clamp(560px, 60vw, 660px);
    margin: 0;
    border: 0;
    border-radius: clamp(22px, 2.6vw, 30px);
    object-fit: cover;
    object-position: center center;
    box-shadow: 0 24px 58px rgba(15,57,82,.15);
  }
  .gf-home-intro > .profile-header > div{
    grid-column: 1;
    grid-row: 1;
    align-self: start;
    min-width: 0;
  }
  .gf-home-intro > .profile-header h1{
    margin: 0 !important;
    font-size: clamp(2.6rem, 4.2vw, 3.3rem);
    line-height: 1.03;
    letter-spacing: -.058em;
  }
  .gf-home-intro > .profile-header p{
    margin-top: .7rem;
    font-size: clamp(.9rem, 1.35vw, 1rem) !important;
    line-height: 1.68;
  }
  .gf-home-intro > .mb-3{
    grid-column: 1;
    grid-row: 2;
    margin-top: clamp(2rem, 3.5vw, 2.8rem) !important;
  }
  .gf-home-intro > h4,
  .gf-home-intro > .mb-3 + p{
    grid-column: 1;
    grid-row: 3;
    max-width: 100%;
    font-size: clamp(1.733333rem, 2.8vw, 2.2rem);
    line-height: 1.02;
    letter-spacing: -.052em;
  }
  .gf-home-intro > p:last-child{
    grid-column: 1;
    grid-row: 4;
    max-width: 100%;
    margin-top: clamp(1.25rem, 2vw, 1.65rem) !important;
    font-size: clamp(.98rem, 1.35vw, 1.05rem) !important;
    line-height: 1.7;
  }
}

.profile-header .avatar-circle{
  width: clamp(150px, 13vw, 190px);
  height: clamp(150px, 13vw, 190px);
  border: 7px solid #fff;
  box-shadow: 0 0 0 1px var(--gf-line), 0 14px 32px rgba(15,57,82,.12);
}
.profile-header h1{
  font-size: clamp(2.15rem, 3.35vw, 3.65rem);
  letter-spacing: -.055em;
}
.profile-header p{
  margin: .45rem 0 0;
  color: var(--gf-copy) !important;
  font-family: var(--gf-font);
  font-size: clamp(.95rem, 1.12vw, 1.08rem) !important;
  line-height: 1.75;
}
.gf-home-divider{
  width: 100%;
  margin: 0;
  border: 0;
  border-top: 1px solid var(--gf-line);
  opacity: 1;
}
.gf-home-section{
  margin: 0;
  padding: clamp(2.6rem, 4.8vw, 4.8rem) clamp(.25rem, 1.4vw, 1.25rem);
}
.gf-section-heading{
  margin-bottom: 1.55rem !important;
}
.gf-section-heading .badge,
.gf-home-blog > .row > .mb-3 .badge{
  padding: 0 0 .55rem !important;
  border-radius: 0 !important;
  border-bottom: 2px solid var(--gf-blue) !important;
  background: transparent !important;
  color: var(--gf-ink) !important;
  font-size: clamp(1.05rem, 1.35vw, 1.28rem);
  font-weight: 600 !important;
}

/* Home: pubblicazioni come scaffale editoriale */
.pub-rail{
  grid-template-columns: repeat(5, minmax(0,1fr));
  gap: 0;
}
.pub-rail .pub-card{
  display: grid;
  grid-template-columns: minmax(78px,40%) minmax(0,1fr);
  align-items: start;
  min-width: 0;
  padding: 0 clamp(.8rem,1.3vw,1.3rem);
  border: 0 !important;
  border-right: 1px solid var(--gf-line) !important;
  border-radius: 0 !important;
  box-shadow: none;
  background: transparent;
}
.pub-rail .pub-card:first-child{ padding-left: 0; }
.pub-rail .pub-card:last-child{ border-right: 0 !important; padding-right: 0; }
.pub-rail .pub-card:hover{ transform: translateY(-3px); box-shadow: none; }
.pub-rail .pub-cover{
  aspect-ratio: 4/5;
  border: 1px solid var(--gf-line);
  border-radius: 8px;
  background: #fff;
}
.pub-rail .pub-cover img{ padding: 4px; border-radius: 7px; }
.pub-rail .card-body{
  min-width: 0;
  padding: .15rem 0 .15rem .85rem !important;
}
.pub-rail .pub-card h6{
  font-size: clamp(.84rem, .92vw, .98rem);
  line-height: 1.35;
}
.pub-rail .badge,
.pubs-grid-5 .badge,
#pubs-container .badge{
  border: 1px solid #d6e4ed;
  border-radius: 5px;
  background: #eaf1f6 !important;
  color: var(--gf-ink-2) !important;
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: -.01em;
}
.gf-home-selected{
  position: relative;
  background: var(--gf-ice);
  border-radius: 22px;
  margin: 1.25rem 0;
  padding-left: clamp(1.3rem, 2.8vw, 2.8rem);
  padding-right: clamp(1.3rem, 2.8vw, 2.8rem);
}
.pubs-grid-5{
  grid-template-columns: repeat(5,minmax(0,1fr));
  gap: clamp(.9rem,1.5vw,1.4rem);
}
.pubs-grid-5 .pub-card{
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
}
.pubs-grid-5 .pub-card:hover{ box-shadow: none; transform: translateY(-3px); }
.pubs-grid-5 .pub-cover{
  border: 1px solid var(--gf-line);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 8px 18px rgba(27,76,107,.07);
}
.pubs-grid-5 .pub-cover img{ border-radius: 9px; }
.pubs-grid-5 .pub-meta{ padding: .9rem .15rem 0; }
.pubs-grid-5 .pub-title{ font-size: .96rem; line-height: 1.38; }

/* Home: blog come indice di storie */
.gf-blog-grid{ --bs-gutter-x: 1.25rem; }
.gf-home-blog .col-md-3{ margin-bottom: 1.25rem !important; }
.gf-home-blog .card{
  min-height: 100%;
  padding: 1.35rem !important;
  border: 1px solid var(--gf-line) !important;
  border-radius: 16px !important;
  box-shadow: none;
  background: #fff;
}
.gf-home-blog .card:hover{
  border-color: var(--gf-line-strong) !important;
  box-shadow: var(--shadow-s);
  transform: translateY(-3px);
}
.gf-home-blog .card-body{ padding: 0; }
.gf-home-blog .card-title{
  margin: 1rem 0 .7rem !important;
  font-size: 1.05rem;
  line-height: 1.35;
}
.gf-home-blog .card-body > .badge{
  padding: .35rem .62rem !important;
  border: 1px solid var(--gf-line);
  background: var(--gf-ice) !important;
  color: var(--gf-ink-2) !important;
  font-size: .7rem;
  text-transform: none;
}
.gf-home-blog .card-footer{ margin-top: auto; padding: 1.25rem 0 0; }
.gf-home-blog .card-footer img{ border: 2px solid #fff; box-shadow: 0 0 0 1px var(--gf-line); }

/* Pagine interne: testata, contenuto e indice */
.gf-page-hero{
  position: relative;
  overflow: hidden;
  margin: 0;
  padding: clamp(2.75rem, 4vw, 4rem) 0 !important;
  background:
    radial-gradient(circle at 82% 18%, rgba(67,167,226,.16), transparent 31%),
    linear-gradient(145deg, #f7fbfe 0%, #fff 56%, #f3f9fc 100%) !important;
  border-bottom: 1px solid var(--gf-line);
}
.gf-page-hero::before{
  position: absolute;
  top: -230px;
  right: -150px;
  width: 420px;
  height: 420px;
  border: 1px solid rgba(67,167,226,.16);
  border-radius: 50%;
  content: '';
}
.gf-page-hero::after{
  position: absolute;
  right: 10%;
  bottom: -72px;
  width: 130px;
  height: 130px;
  border: 1px solid rgba(67,167,226,.22);
  border-radius: 50%;
  content: '';
}
.gf-page-hero-grid{
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(260px, .58fr) minmax(440px, 1.42fr);
  gap: clamp(3rem, 6vw, 6rem);
  align-items: center;
}
.gf-page-hero h1{
  margin: 0;
  color: var(--gf-ink);
  font-family: var(--gf-font);
  font-size: clamp(3.25rem, 4.8vw, 4.7rem);
  font-weight: 620;
  line-height: .95;
  letter-spacing: -.065em;
}
.gf-page-hero-copy > p{
  max-width: 760px;
  margin: 0;
  color: #536474;
  font-size: clamp(1.03rem, 1.12vw, 1.14rem);
  line-height: 1.65;
}

/* Blog posts use their own editorial masthead, separate from institutional pages. */
.gf-blog-hero{
  position: relative;
  margin: 0;
  padding: clamp(3.4rem,6vw,6.5rem) 0 clamp(2.8rem,5vw,5rem);
  overflow: hidden;
  background:
    radial-gradient(circle at 80% 8%,rgba(50,174,237,.22),transparent 27%),
    linear-gradient(135deg,#061a2d 0%,#092943 56%,#0c3958 100%);
  color: #fff;
}
.gf-blog-hero::before{
  position: absolute;
  inset: 0;
  background-image: linear-gradient(rgba(255,255,255,.028) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.028) 1px,transparent 1px);
  background-size: 44px 44px;
  mask-image: linear-gradient(to right,transparent,black 45%,black);
  content: '';
  pointer-events: none;
}
.gf-blog-hero-inner{ position: relative; z-index: 2; }
.gf-blog-hero-orb{
  position: absolute;
  border: 1px solid rgba(113,207,255,.19);
  border-radius: 50%;
  pointer-events: none;
}
.gf-blog-hero-orb--one{ top: -260px; right: -130px; width: 540px; height: 540px; }
.gf-blog-hero-orb--two{ right: 19%; bottom: -105px; width: 190px; height: 190px; }
.gf-blog-hero-topline{
  display: flex;
  align-items: center;
  gap: .75rem;
  margin-bottom: clamp(1.3rem,2vw,2rem);
  color: #8ed5f8;
  font-size: .68rem;
  font-weight: 620;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.gf-blog-hero-topline span{ display: inline-flex; align-items: center; gap: .45rem; }
.gf-blog-hero-topline span + span::before{ width: 28px; height: 1px; margin-right: .1rem; background: rgba(142,213,248,.45); content: ''; }
.gf-blog-hero h1{
  max-width: 1180px;
  margin: 0;
  color: #fff;
  font-family: var(--gf-font);
  font-size: clamp(2.75rem,5vw,5.35rem);
  font-weight: 620;
  line-height: .98;
  letter-spacing: -.06em;
  text-wrap: balance;
}
.gf-blog-hero-footer{
  display: grid;
  grid-template-columns: minmax(0,760px) max-content;
  gap: clamp(2rem,5vw,5.5rem);
  align-items: end;
  margin-top: clamp(1.6rem,3vw,2.7rem);
  padding-top: clamp(1.25rem,2vw,1.7rem);
  border-top: 1px solid rgba(255,255,255,.13);
}
.gf-blog-hero-footer > p{
  margin: 0;
  color: #bfd0dc;
  font-size: clamp(.98rem,1.15vw,1.12rem);
  line-height: 1.65;
}
.gf-blog-hero-meta{ display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .55rem; }
.gf-blog-hero-meta span{
  display: inline-flex;
  min-height: 36px;
  align-items: center;
  gap: .45rem;
  padding: 0 .75rem;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 999px;
  background: rgba(255,255,255,.055);
  color: #dbe8ef;
  font-size: .67rem;
  font-weight: 550;
  backdrop-filter: blur(10px);
}
.gf-blog-hero-meta i{ color: #67c7f5; }

@media (max-width: 767.98px){
  .gf-blog-hero{ padding: 3rem 0 2.7rem; }
  .gf-blog-hero h1{ font-size: clamp(2.45rem,12.5vw,4rem); line-height: 1.01; }
  .gf-blog-hero-footer{ grid-template-columns: 1fr; gap: 1.25rem; }
  .gf-blog-hero-meta{ justify-content: flex-start; }
}
.gf-page-main{
  --gf-main-pad-top: clamp(3.5rem, 5vw, 5rem);
  --gf-main-pad-bottom: 3rem;
  width: min(calc(100% - var(--gf-frame-gutter) - var(--gf-frame-gutter)), var(--gf-frame-max));
  max-width: var(--gf-frame-max);
  margin-right: auto;
  margin-left: auto;
  padding-top: var(--gf-main-pad-top) !important;
}
.gf-page-main > .container{ max-width: none; padding: 0; }
.gf-page-main > .container > .row{
  --bs-gutter-x: 3.5rem;
  margin-right: 0;
  margin-left: 0;
}
.gf-page-content{
  font-size: 1rem;
  line-height: 1.72;
}
.gf-page-content > .card,
.gf-page-content > div.card{
  margin-bottom: 1.3rem !important;
  padding: clamp(1.35rem, 2.4vw, 2.25rem) !important;
  border: 1px solid var(--gf-line) !important;
  border-radius: 17px !important;
  background: #fff;
  box-shadow: 0 8px 24px rgba(27,76,107,.045) !important;
  transform: none;
}
.gf-page-content > .card:hover{ transform: none; box-shadow: 0 12px 30px rgba(27,76,107,.07) !important; }
.gf-page-content > .card:first-child{
  border-color: var(--gf-line-strong) !important;
  box-shadow: var(--gf-shadow) !important;
}
.gf-page-content > .card h3,
.gf-page-content > .card h4,
.gf-page-content > .card h5{
  padding-bottom: .45rem;
}
.gf-page-content > .card p:last-child,
.gf-page-content > .card ul:last-child{ margin-bottom: 0; }
.gf-page-content > .card ul{ padding-left: 1.2rem; }
.gf-page-content > .card li{ margin-bottom: .38rem; color: var(--gf-copy); }
.gf-page-content .btn-dark{
  padding: .55rem .85rem;
  border: 1px solid var(--gf-line-strong);
  border-radius: 9px !important;
  background: #fff;
  color: var(--gf-ink) !important;
  font-size: .72rem;
  font-weight: 600;
  text-transform: none;
  box-shadow: none;
}
.gf-page-content .btn-dark:hover{
  border-color: var(--gf-blue);
  background: var(--gf-ice);
  color: var(--gf-blue-deep) !important;
}
.gf-page-content .badge.bg-secondary{
  border: 1px solid #d7e8f2;
  border-radius: 6px;
  background: #eaf5fb !important;
  color: var(--gf-blue-deep);
  font-size: .68rem;
  font-weight: 600;
}
.gf-keywords{ padding-left: 1.6rem; border-left: 1px solid var(--gf-line); }
.gf-keywords > .sticky{ top: 126px; }
.gf-keywords .bd-links-heading{
  align-items: center;
  gap: .48rem;
  color: var(--gf-ink);
  font-family: var(--gf-font);
  font-size: .95rem;
}
.gf-keywords .bd-links-heading i{ color: var(--gf-blue); font-size: .78rem; }
.gf-keywords .bd-links-link{
  position: relative;
  display: block !important;
  margin: 0;
  padding: .34rem .25rem .34rem 1rem;
  border-radius: 7px !important;
  color: var(--gf-copy);
  font-size: .78rem;
}
.gf-keywords .bd-links-link::before{
  content: '';
  position: absolute;
  left: .25rem;
  top: .78rem;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--gf-blue);
}
.gf-keywords .bd-links-link:hover{ background: var(--gf-ice); color: var(--gf-blue-deep); }

@media (min-width: 992px){
  .gf-keywords{
    position: relative;
    top: auto;
    align-self: stretch;
    border-left: 0;
  }
  .gf-keywords::before{
    content: '';
    position: absolute;
    top: calc(0px - var(--gf-main-pad-top));
    bottom: calc(0px - var(--gf-main-pad-bottom));
    left: 0;
    width: 1px;
    background: var(--gf-line);
    pointer-events: none;
  }
  .gf-keywords > .sticky{
    position: sticky;
    z-index: 1;
  }
}

/* Archivio pubblicazioni */
#pubs-container > h4{
  display: flex;
  align-items: center;
  gap: .7rem;
  margin: 2.4rem 0 .25rem;
  padding: 0 0 1rem;
  border-bottom: 2px solid var(--gf-line);
  font-size: 1.12rem;
}
#pubs-container > h4:first-child{ margin-top: 0; }
#pubs-container > h4::before{
  content: '';
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--gf-blue);
  box-shadow: 0 0 0 5px rgba(67,167,226,.12);
}
#pubs-container > .border.rounded-4{
  margin: 0 !important;
  padding: 1.05rem .25rem !important;
  border: 0 !important;
  border-bottom: 1px solid var(--gf-line) !important;
  border-radius: 0 !important;
  background: transparent !important;
  transition: background-color .18s ease, padding .18s ease;
}
#pubs-container > .border.rounded-4:has(+ h4),
#pubs-container > .border.rounded-4:last-child{
  border-bottom-color: transparent !important;
}
#pubs-container > .border.rounded-4:hover{
  padding-left: .75rem !important;
  padding-right: .75rem !important;
  background: var(--gf-ice) !important;
}
#pubs-container > .border.rounded-4 img{
  border: 1px solid var(--gf-line);
  border-radius: 7px !important;
  box-shadow: 0 6px 14px rgba(27,76,107,.06);
}
#pubs-container > .border.rounded-4 a{
  color: var(--gf-ink) !important;
  font-family: var(--gf-font);
  font-size: 1rem;
  font-weight: 500 !important;
}

/* Editorial inner pages */
.gf-editorial-page{
  --gf-main-pad-top: clamp(3rem, 5vw, 4.8rem);
  --gf-main-pad-bottom: clamp(3.2rem, 6vw, 5.8rem);
  padding-top: var(--gf-main-pad-top) !important;
  padding-bottom: var(--gf-main-pad-bottom) !important;
}
.gf-editorial-page > .row{
  --bs-gutter-x: clamp(2.5rem, 5vw, 5.25rem);
  margin-right: 0;
  margin-left: 0;
}
.gf-editorial-page .gf-page-content{ min-width: 0; }

/* Publications: the existing archive, with quieter high-end details */
.gf-publications-content #pubs-container > h4{
  position: relative;
  margin-top: 3rem;
  padding-bottom: 1.05rem;
  color: var(--gf-ink);
  font-size: clamp(1.15rem, 1.7vw, 1.35rem);
  letter-spacing: -.025em;
}
.gf-publications-content #pubs-container > h4::after{
  content: '';
  position: absolute;
  right: 0;
  bottom: -2px;
  width: 28px;
  height: 2px;
  border-radius: 999px;
  background: var(--gf-blue);
}
.gf-publications-content #pubs-container > .border.rounded-4{
  position: relative;
  padding-top: 1.2rem !important;
  padding-bottom: 1.2rem !important;
}
.gf-publications-content #pubs-container > .border.rounded-4::after{
  content: '\f35d';
  position: absolute;
  top: 1.25rem;
  right: .9rem;
  color: #a8bac7;
  font: 700 .7rem/1 'Font Awesome 6 Free';
  opacity: 0;
  transform: translate(-4px, 3px);
  transition: opacity .18s ease, transform .18s ease;
}
.gf-publications-content #pubs-container > .border.rounded-4:hover::after{
  opacity: 1;
  transform: translate(0, 0);
}
.gf-publications-content #pubs-container > .border.rounded-4 img{
  border-radius: 10px !important;
  box-shadow: 0 10px 24px rgba(18,54,78,.08);
  transition: transform .22s ease, box-shadow .22s ease;
}
.gf-publications-content #pubs-container > .border.rounded-4:hover img{
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(18,54,78,.12);
}
.gf-publications-content #pubs-container .badge{
  padding: .34rem .52rem;
  border: 1px solid #d5e4ed;
  border-radius: 7px !important;
  background: #eef5f9 !important;
  color: #455c70 !important;
  font-family: var(--gf-font);
  font-size: .67rem;
  font-weight: 550;
}
.gf-pub-tools{
  margin-bottom: clamp(1.8rem,3vw,2.8rem);
}
.gf-pub-tools-grid{
  display: grid;
  grid-template-columns: minmax(260px,1fr) minmax(210px,.42fr) auto;
  gap: .8rem;
  align-items: end;
}
.gf-pub-search,
.gf-pub-filter{ position: relative; display: block; margin: 0; }
.gf-pub-search > i{
  position: absolute;
  top: 50%;
  left: 1rem;
  z-index: 2;
  color: var(--gf-blue-deep);
  font-size: .82rem;
  transform: translateY(-50%);
}
.gf-pub-search input,
.gf-pub-filter select{
  width: 100%;
  height: 50px;
  border: 1px solid #d5e3ec;
  border-radius: 13px;
  outline: 0;
  background: #fff;
  color: var(--gf-ink);
  font: 600 .78rem/1 var(--gf-font);
  transition: border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
.gf-pub-search input{ padding: 0 3rem 0 2.75rem; }
.gf-pub-search input::placeholder{ color: #8b9aa7; font-weight: 500; }
.gf-pub-search input:focus,
.gf-pub-filter select:focus{
  border-color: #79c2e9;
  box-shadow: 0 0 0 4px rgba(21,158,227,.1);
}
.gf-pub-search button{
  position: absolute;
  top: 50%;
  right: .65rem;
  display: grid;
  width: 34px;
  height: 34px;
  padding: 0;
  place-items: center;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: #778997;
  transform: translateY(-50%);
}
.gf-pub-search button:hover{ background: var(--gf-ice); color: var(--gf-blue-deep); }
.gf-pub-filter > span{
  display: block;
  margin: 0 0 .42rem .1rem;
  color: #627789;
  font: 700 .64rem/1 var(--gf-font);
  letter-spacing: .025em;
}
.gf-pub-filter select{
  padding: 0 2.6rem 0 .95rem;
  appearance: none;
}
.gf-pub-filter > i{
  position: absolute;
  right: 1rem;
  bottom: 20px;
  color: #8295a4;
  font-size: .64rem;
  pointer-events: none;
}
.gf-pub-reset{
  display: inline-flex;
  height: 50px;
  align-items: center;
  justify-content: center;
  gap: .48rem;
  padding: 0 .95rem;
  border: 1px solid #d5e3ec;
  border-radius: 13px;
  background: #fff;
  color: #53697b;
  font: 700 .7rem/1 var(--gf-font);
}
.gf-pub-reset:hover{ border-color: #9ecfe9; color: var(--gf-blue-deep); }
.gf-pub-tools-meta{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  margin-top: .85rem;
}
.gf-pub-tools-meta p{
  margin: 0;
  color: #7a8c9a;
  font: 600 .66rem/1.45 var(--gf-font);
}
.gf-pub-tools-meta p:first-child{ color: #42596b; font-weight: 620; }
.gf-pub-tools-meta i{ margin-right: .35rem; color: var(--gf-blue); }
.gf-pub-card-actions{ margin-top: .7rem; }
.gf-pub-copy{
  display: inline-flex;
  align-items: center;
  gap: .42rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: #778b9b;
  font: 700 .66rem/1.3 var(--gf-font);
}
.gf-pub-copy:hover{ color: var(--gf-blue-deep); }
.gf-pub-copy.is-copied{ color: #258b5c; }
.gf-publications-content #pubs-container > [hidden],
.gf-publications-content #pubs-container > h4[hidden]{ display: none !important; }
.gf-publications-content #pubs-container > .gf-filter-last{ border-bottom-color: transparent !important; }
.gf-pub-empty{
  padding: clamp(3rem,7vw,5.5rem) 1rem;
  color: var(--gf-copy);
  text-align: center;
}
.gf-pub-empty > i{ color: var(--gf-blue); font-size: 1.35rem; }
.gf-pub-empty h2{ margin: .9rem 0 .45rem; color: var(--gf-ink); font: 700 clamp(1.2rem,2vw,1.55rem)/1.3 var(--gf-font); }
.gf-pub-empty p{ margin: 0; font-size: .82rem; }
.gf-pub-empty button{ margin-top: 1rem; padding: 0; border: 0; background: transparent; color: var(--gf-blue-deep); font: 700 .72rem/1.4 var(--gf-font); }

/* Teaching */
.gf-course-group + .gf-course-group{ margin-top: clamp(3.4rem, 6vw, 5.6rem); }
.gf-course-group-head{
  margin-bottom: .45rem;
  padding-bottom: 1.15rem;
  border-bottom: 1px solid var(--gf-line);
}
.gf-course-eyebrow{
  margin: 0 0 .45rem;
  color: var(--gf-blue-deep);
  font-family: var(--gf-font);
  font-size: .68rem;
  font-weight: 620;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.gf-course-group-head h2{
  margin: 0;
  color: var(--gf-ink);
  font: 700 clamp(1.45rem, 2.6vw, 2.05rem)/1.18 var(--gf-font);
  letter-spacing: -.04em;
}
.gf-course-list{ display: grid; }
.gf-course-item{
  display: grid;
  grid-template-columns: 72px minmax(0,1fr);
  gap: 1.4rem;
  padding: clamp(1.6rem, 2.7vw, 2.25rem) .2rem;
  border-bottom: 1px solid var(--gf-line);
}
.gf-course-item:last-child{ border-bottom: 0; }
.gf-course-icon{
  display: grid;
  width: 64px;
  height: 64px;
  place-items: center;
  border: 1px solid #d9e8f1;
  border-radius: 19px;
  background: linear-gradient(145deg,#f7fbfd,#eaf5fa);
  color: var(--gf-blue-deep);
  font-size: 1.3rem;
  box-shadow: 0 10px 28px rgba(36,111,151,.07);
}
.gf-course-title-line{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.2rem;
}
.gf-course-title-line h3{
  margin: 0;
  color: var(--gf-ink);
  font: 700 clamp(1.1rem, 1.7vw, 1.35rem)/1.3 var(--gf-font);
  letter-spacing: -.025em;
}
.gf-course-status{
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: .48rem;
  padding-top: .22rem;
  color: #4f6679;
  font-family: var(--gf-font);
  font-size: .69rem;
  font-weight: 600;
}
.gf-course-status i{
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #33ad72;
  box-shadow: 0 0 0 4px rgba(51,173,114,.1);
}
.gf-course-item--upcoming .gf-course-status i{ background: #e1a137; box-shadow: 0 0 0 4px rgba(225,161,55,.1); }
.gf-course-item--past .gf-course-status i{ background: #9babb8; box-shadow: 0 0 0 4px rgba(155,171,184,.12); }
.gf-course-meta{
  display: flex;
  flex-wrap: wrap;
  gap: .5rem 1.15rem;
  margin-top: .65rem;
  color: #6d8092;
  font-family: var(--gf-font);
  font-size: .72rem;
  font-weight: 500;
}
.gf-course-meta span{ display: inline-flex; align-items: center; gap: .42rem; }
.gf-course-meta i{ width: .85rem; color: var(--gf-blue); text-align: center; }
.gf-course-copy > p{
  max-width: 880px;
  margin: 1rem 0 0;
  color: var(--gf-copy);
  font-size: .91rem;
  line-height: 1.82;
}
.gf-course-link{
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  margin-top: .95rem;
  color: var(--gf-blue-deep);
  font-family: var(--gf-font);
  font-size: .75rem;
  font-weight: 600;
  text-decoration: none;
}
.gf-course-link:hover{ color: var(--gf-blue); }
.gf-course-link i{ font-size: .65rem; }
.gf-empty-state{ padding: 4rem 1rem; color: var(--gf-copy); text-align: center; }
.gf-empty-state i{ margin-bottom: 1rem; color: var(--gf-blue); font-size: 1.6rem; }

/* Media */
.gf-media-grid{
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: clamp(1.5rem, 2.8vw, 2.4rem);
}
.gf-media-card{
  overflow: hidden;
  border: 1px solid #e0eaf0;
  border-radius: 19px;
  background: #fff;
  box-shadow: 0 14px 40px rgba(18,58,82,.055);
  transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease;
}
.gf-media-card:hover{
  transform: translateY(-4px);
  border-color: #cbe1ee;
  box-shadow: 0 22px 48px rgba(18,58,82,.1);
}
.gf-media-open{
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  overflow: hidden;
  border: 0;
  background: #071421;
  cursor: zoom-in;
  text-align: left;
}
.gf-media-image{ display: block; aspect-ratio: 16/9; overflow: hidden; }
.gf-media-image::after{
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg,transparent 50%,rgba(3,17,29,.58));
  pointer-events: none;
}
.gf-media-image img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .45s cubic-bezier(.22,1,.36,1), filter .3s ease;
}
.gf-media-card:hover .gf-media-image img{ transform: scale(1.035); filter: saturate(1.06); }
.gf-media-action{
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 2;
  display: grid;
  width: 58px;
  height: 58px;
  place-items: center;
  border: 1px solid rgba(255,255,255,.52);
  border-radius: 50%;
  background: rgba(7,27,49,.74);
  box-shadow: 0 12px 32px rgba(0,0,0,.25);
  color: #fff;
  transform: translate(-50%,-50%);
  backdrop-filter: blur(10px);
  transition: transform .22s ease, background .22s ease;
}
.gf-media-action i{ margin-left: 2px; font-size: .9rem; }
.gf-media-card:hover .gf-media-action{ background: var(--gf-blue-deep); transform: translate(-50%,-50%) scale(1.07); }
.gf-media-kind{
  position: absolute;
  left: 1rem;
  bottom: .85rem;
  z-index: 2;
  color: #fff;
  font-family: var(--gf-font);
  font-size: .65rem;
  font-weight: 620;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.gf-media-copy{ padding: 1.25rem 1.35rem 1.45rem; }
.gf-media-source{
  margin: 0 0 .55rem;
  color: var(--gf-blue-deep);
  font-family: var(--gf-font);
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .015em;
}
.gf-media-copy h2{
  margin: 0;
  color: var(--gf-ink);
  font: 700 clamp(1rem, 1.5vw, 1.2rem)/1.38 var(--gf-font);
  letter-spacing: -.025em;
}
.gf-media-copy > p:not(.gf-media-source){ margin: .75rem 0 0; color: var(--gf-copy); font-size: .83rem; line-height: 1.72; }
.gf-media-links{ display: flex; flex-wrap: wrap; gap: .5rem 1rem; margin-top: .9rem; }
.gf-media-links a{ display: inline-flex; align-items: center; gap: .4rem; color: var(--gf-blue-deep); font-family: var(--gf-font); font-size: .7rem; font-weight: 600; text-decoration: none; }
.gf-media-links a:hover{ color: var(--gf-blue); }
.gf-media-links i{ font-size: .58rem; }
.gf-media-modal{ --bs-modal-bg: #02070c; --bs-modal-border-color: transparent; }
.gf-media-modal .modal-dialog{ margin: 0; }
.gf-media-modal .modal-content{ min-height: 100%; border: 0; border-radius: 0; background: #02070c; color: #fff; }
.gf-media-modal-bar{
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  padding: 1.1rem clamp(1rem,3vw,2.5rem);
  background: linear-gradient(180deg,rgba(0,0,0,.86),transparent);
  pointer-events: none;
}
.gf-media-modal-bar h2{ overflow: hidden; margin: 0; color: #f3f8fc; font: 600 clamp(.82rem,1.4vw,1rem)/1.35 var(--gf-font); text-overflow: ellipsis; white-space: nowrap; }
.gf-media-modal-close{
  display: grid;
  flex: 0 0 auto;
  width: 46px;
  height: 46px;
  place-items: center;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 50%;
  background: rgba(14,29,41,.72);
  color: #fff;
  pointer-events: auto;
  backdrop-filter: blur(12px);
  transition: background .18s ease, transform .18s ease;
}
.gf-media-modal-close:hover{ background: var(--gf-blue-deep); transform: scale(1.04); }
.gf-media-modal .modal-body{ display: grid; min-height: 100vh; padding: clamp(4.25rem,7vw,6rem) clamp(.75rem,3vw,3rem) clamp(1rem,3vw,2.5rem); place-items: center; }
.gf-media-modal .modal-body iframe{ width: min(92vw,1540px); height: min(82vh,calc(92vw * .5625)); border: 0; border-radius: 12px; background: #000; box-shadow: 0 28px 90px rgba(0,0,0,.55); }
.gf-media-modal .modal-body img{ display: block; max-width: min(94vw,1500px); max-height: 84vh; border-radius: 10px; object-fit: contain; box-shadow: 0 28px 90px rgba(0,0,0,.6); }
.modal-backdrop.show{ opacity: .92; }

/* About: keep the content, remove the dated stacked-card feeling */
.gf-about-content > .card{
  position: relative;
  margin: 0 !important;
  padding: clamp(1.7rem, 3vw, 2.5rem) .2rem !important;
  border: 0 !important;
  border-bottom: 1px solid var(--gf-line) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.gf-about-content > .card:first-of-type{
  margin-bottom: clamp(1.4rem,3vw,2.4rem) !important;
  padding: clamp(1.4rem,2.6vw,2.2rem) !important;
  overflow: hidden;
  border: 1px solid #dce9f1 !important;
  border-radius: 22px !important;
  background: linear-gradient(135deg,#fff 46%,#f0f8fc) !important;
}
.gf-about-content > .card:first-of-type::after{
  content: '';
  position: absolute;
  top: -100px;
  right: -80px;
  width: 240px;
  height: 240px;
  border: 1px solid rgba(67,167,226,.2);
  border-radius: 50%;
  pointer-events: none;
}
.gf-about-content > .card:last-child{ border-bottom: 0 !important; }
.gf-about-content > .card > .card-body{ padding: 0; }
.gf-about-content h3,
.gf-about-content h4{
  margin: 0 0 1rem;
  color: var(--gf-ink);
  font-family: var(--gf-font);
  font-weight: 600;
  letter-spacing: -.035em;
}
.gf-about-content h3{ font-size: clamp(1.5rem,2.8vw,2.15rem); }
.gf-about-content h4{ font-size: clamp(1.15rem,2vw,1.45rem); }
.gf-about-content p,
.gf-about-content li{ color: var(--gf-copy); font-size: .88rem; line-height: 1.78; }
.gf-about-content li + li{ margin-top: .45rem; }
.gf-about-content .badge{
  min-width: 0;
  padding: 0;
  border: 0 !important;
  background: transparent !important;
  color: var(--gf-blue-deep) !important;
  font-family: var(--gf-font);
  font-size: .7rem;
  font-weight: 620;
  text-align: left;
  vertical-align: baseline;
}
.gf-page-content.gf-about-content .badge.bg-secondary{
  width: auto;
  min-width: 0;
  padding: 0;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.gf-about-content .btn-dark{
  padding: .56rem .85rem;
  border: 1px solid #d4e3ec;
  border-radius: 10px !important;
  background: rgba(255,255,255,.7);
  color: var(--gf-ink);
  font-family: var(--gf-font);
  font-size: .72rem;
  font-weight: 600;
  transition: border-color .18s ease, color .18s ease, transform .18s ease;
}
.gf-about-content .btn-dark:hover{ border-color: #9fcfe9; background: #fff; color: var(--gf-blue-deep); transform: translateY(-1px); }
.gf-about-content iframe{ border-radius: 16px; filter: saturate(.8) contrast(1.02); }
.gf-about-tools{
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.25rem;
  margin-bottom: clamp(1.4rem,2.8vw,2.35rem);
}
.gf-about-tools > label{ position: relative; width: min(100%,300px); margin: 0; }
.gf-about-tools > label > span{
  display: block;
  margin: 0 0 .42rem .1rem;
  color: #627789;
  font: 700 .64rem/1 var(--gf-font);
  letter-spacing: .025em;
}
.gf-about-tools select{
  width: 100%;
  height: 48px;
  padding: 0 2.65rem 0 .95rem;
  border: 1px solid #d5e3ec;
  border-radius: 13px;
  outline: 0;
  background: #fff;
  color: var(--gf-ink);
  font: 650 .75rem/1 var(--gf-font);
  appearance: none;
}
.gf-about-tools select:focus{ border-color: #79c2e9; box-shadow: 0 0 0 4px rgba(21,158,227,.1); }
.gf-about-tools > label > i{ position: absolute; right: 1rem; bottom: 19px; color: #8295a4; font-size: .62rem; pointer-events: none; }
.gf-about-tools > div{ display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .45rem 1rem; }
.gf-about-tools a,
.gf-about-tools button{
  display: inline-flex;
  align-items: center;
  gap: .42rem;
  padding: .5rem 0;
  border: 0;
  background: transparent;
  color: #53697b;
  font: 700 .68rem/1.3 var(--gf-font);
  text-decoration: none;
}
.gf-about-tools a:hover,
.gf-about-tools button:hover{ color: var(--gf-blue-deep); }
.gf-about-tools i{ color: var(--gf-blue); }
.gf-about-tools button.is-copied{ color: #258b5c; }
.gf-about-content > .card[id]{ scroll-margin-top: 125px; }
.gf-about-content > .card:first-of-type img{
  border: 4px solid #fff;
  box-shadow: 0 12px 34px rgba(17,65,94,.13),0 0 0 1px #d5e5ee;
}
.gf-about-content > .gf-about-card--academic-positions p,
.gf-about-content > .gf-about-card--education p{
  display: grid;
  grid-template-columns: max-content minmax(0,1fr);
  align-items: center;
  gap: .8rem;
  margin: 0;
  padding: .34rem 0;
  line-height: 1.48;
}
.gf-about-content > .gf-about-card--academic-positions p + p,
.gf-about-content > .gf-about-card--education p + p{
  margin-top: .12rem;
}
.gf-page-content.gf-about-content > .gf-about-card--academic-positions .badge.bg-secondary,
.gf-page-content.gf-about-content > .gf-about-card--education .badge.bg-secondary{
  display: inline-flex;
  width: max-content;
  min-height: 28px;
  align-items: center;
  justify-content: center;
  padding: .32rem .68rem;
  border: 1px solid #cfe5f2 !important;
  border-radius: 999px !important;
  background: linear-gradient(135deg,#f4fbff,#e8f5fc) !important;
  box-shadow: 0 5px 14px rgba(31,132,190,.07) !important;
  color: #087fc5 !important;
  font-size: .68rem;
  line-height: 1;
  white-space: nowrap;
}
.gf-about-content > .gf-about-card--academic-positions,
.gf-about-content > .gf-about-card--education{
  padding-top: clamp(1.25rem,2vw,1.75rem) !important;
  padding-bottom: clamp(1.25rem,2vw,1.75rem) !important;
}
.gf-about-content > .gf-about-card--academic-positions h3,
.gf-about-content > .gf-about-card--education h3,
.gf-about-content > .gf-about-card--academic-positions h4,
.gf-about-content > .gf-about-card--education h4{
  margin-bottom: .72rem;
}
.gf-about-content > .gf-about-card--peer-review-activity ul,
.gf-about-content > .gf-about-card--editorial-committees ul{
  columns: 2;
  column-gap: 2.2rem;
}
.gf-about-content > .gf-about-card--peer-review-activity li,
.gf-about-content > .gf-about-card--editorial-committees li{ break-inside: avoid; }
.gf-about-collapsible-body{
  position: relative;
  transition: max-height .28s ease;
}
.gf-about-collapsible-body.is-collapsed{ max-height: 28rem; overflow: hidden; }
.gf-about-collapsible-body.is-collapsed::after{
  content: '';
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 5.5rem;
  background: linear-gradient(180deg,rgba(255,255,255,0),#fff 88%);
  pointer-events: none;
}
.gf-about-expand{
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  margin-top: .9rem;
  padding: .35rem 0;
  border: 0;
  background: transparent;
  color: var(--gf-blue-deep);
  font: 700 .69rem/1.4 var(--gf-font);
}
.gf-about-expand i{ font-size: .62rem; transition: transform .2s ease; }
.gf-about-expand.is-expanded i{ transform: rotate(180deg); }
.gf-about-content > .gf-about-card--contacts{
  margin-top: clamp(1.5rem,3vw,2.4rem) !important;
  padding: 0 !important;
  overflow: hidden;
  border: 1px solid #cfe0eb !important;
  border-radius: 28px !important;
  background: #fff !important;
  box-shadow: 0 26px 70px rgba(12,53,80,.1) !important;
}
.gf-contact-layout{
  display: grid;
  grid-template-columns: minmax(310px,.9fr) minmax(420px,1.1fr);
  min-height: 630px;
}
.gf-contact-story{
  position: relative;
  display: flex;
  flex-direction: column;
  padding: clamp(2rem,3.5vw,3.4rem);
  overflow: hidden;
  background:
    radial-gradient(circle at 100% 0,rgba(67,167,226,.35),transparent 34%),
    linear-gradient(145deg,#071d31,#0a2d48 62%,#0d3d5c);
  color: #fff;
}
.gf-contact-story::after{
  position: absolute;
  right: -105px;
  bottom: 80px;
  width: 260px;
  height: 260px;
  border: 1px solid rgba(117,207,255,.2);
  border-radius: 50%;
  content: '';
  pointer-events: none;
}
.gf-about-content .gf-contact-kicker{
  margin: 0 0 .9rem;
  color: #61c5f7;
  font-size: .69rem;
  font-weight: 650;
  line-height: 1.2;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.gf-about-content .gf-contact-story h3,
.gf-about-content .gf-contact-form-panel h3{
  margin: 0;
  padding: 0;
  font-family: var(--gf-font);
  font-size: clamp(2rem,3vw,3.05rem);
  font-weight: 620;
  line-height: 1.02;
  letter-spacing: -.05em;
}
.gf-about-content .gf-contact-story h3{ color: #fff; }
.gf-about-content .gf-contact-lead{
  max-width: 520px;
  margin: 1.35rem 0 1.7rem;
  color: #c2d4e1;
  font-size: .88rem;
  line-height: 1.72;
}
.gf-contact-direct{ display: grid; gap: .45rem; }
.gf-contact-direct > a,
.gf-contact-direct > div{
  display: grid;
  grid-template-columns: 38px minmax(0,1fr);
  gap: .75rem;
  align-items: center;
  padding: .65rem .7rem;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 14px;
  background: rgba(255,255,255,.045);
  color: #fff;
  text-decoration: none;
  transition: border-color .2s ease, background .2s ease, transform .2s ease;
}
.gf-contact-direct > a:hover{
  border-color: rgba(97,197,247,.5);
  background: rgba(97,197,247,.1);
  color: #fff;
  transform: translateX(3px);
}
.gf-contact-direct > a > span,
.gf-contact-direct > div > span{
  display: inline-flex;
  width: 38px;
  height: 38px;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  background: rgba(97,197,247,.13);
  color: #61c5f7;
}
.gf-contact-direct small{
  display: block;
  margin-bottom: .12rem;
  color: #7f9bad;
  font-size: .6rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.gf-contact-direct strong{
  display: block;
  overflow-wrap: anywhere;
  color: #f6fbff;
  font-size: .74rem;
  font-weight: 550;
}
.gf-contact-direct p{
  margin: .12rem 0 0;
  color: #a9bfce;
  font-size: .68rem;
  line-height: 1.4;
}
.gf-contact-map{
  position: relative;
  min-height: 165px;
  margin-top: auto;
  padding-top: 1.2rem;
}
.gf-contact-map iframe{
  width: 100%;
  min-height: 165px !important;
  border: 0;
  border-radius: 16px;
  background: #dfe9e3;
  box-shadow: 0 16px 35px rgba(0,0,0,.22);
  filter: saturate(.72) contrast(1.05);
}
.gf-contact-map > a{
  position: absolute;
  right: .65rem;
  bottom: .65rem;
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .48rem .65rem;
  border-radius: 999px;
  background: rgba(7,29,49,.9);
  box-shadow: 0 6px 18px rgba(0,0,0,.24);
  color: #fff;
  font-size: .62rem;
  font-weight: 600;
  text-decoration: none;
  backdrop-filter: blur(10px);
}
.gf-contact-form-panel{
  padding: clamp(2rem,3.8vw,3.7rem);
  background:
    radial-gradient(circle at 100% 0,rgba(67,167,226,.09),transparent 30%),
    #fff;
}
.gf-contact-form-panel .gf-contact-kicker{ color: var(--gf-blue-deep); }
.gf-about-content .gf-contact-form-panel h3{
  max-width: 570px;
  color: var(--gf-ink);
}
.gf-contact-form-panel form{ display: grid; gap: 1rem; margin-top: 2rem; }
.gf-contact-form-grid{ display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.gf-contact-form-panel label{ display: grid; gap: .42rem; margin: 0; }
.gf-contact-form-panel label > span{
  color: #506576;
  font-size: .65rem;
  font-weight: 620;
  letter-spacing: .015em;
}
.gf-contact-form-panel input,
.gf-contact-form-panel select,
.gf-contact-form-panel textarea{
  width: 100%;
  border: 1px solid #d8e5ed;
  border-radius: 13px;
  outline: 0;
  background: #f8fbfd;
  color: #193042;
  font-family: var(--gf-font);
  font-size: .79rem;
  font-weight: 450;
  transition: border-color .2s ease, background .2s ease, box-shadow .2s ease;
}
.gf-contact-form-panel input,
.gf-contact-form-panel select{ min-height: 48px; padding: 0 .9rem; }
.gf-contact-form-panel textarea{ min-height: 138px; padding: .82rem .9rem; line-height: 1.55; resize: vertical; }
.gf-contact-form-panel input::placeholder,
.gf-contact-form-panel textarea::placeholder{ color: #94a3ae; }
.gf-contact-form-panel input:focus,
.gf-contact-form-panel select:focus,
.gf-contact-form-panel textarea:focus{
  border-color: #64bce9;
  background: #fff;
  box-shadow: 0 0 0 4px rgba(67,167,226,.11);
}
.gf-contact-form-panel .gf-contact-consent{
  display: flex;
  align-items: flex-start;
  gap: .62rem;
}
.gf-contact-consent input{
  flex: 0 0 17px;
  width: 17px;
  height: 17px;
  min-height: 0;
  margin-top: .12rem;
  accent-color: var(--gf-blue-deep);
}
.gf-contact-form-panel .gf-contact-consent > span{
  color: #6c7d89;
  font-size: .65rem;
  font-weight: 450;
  line-height: 1.5;
}
.gf-contact-honeypot{ position: absolute !important; left: -9999px !important; }
.gf-contact-submit-row{ display: flex; align-items: center; gap: 1rem; min-height: 48px; }
.gf-contact-submit-row button{
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  gap: .7rem;
  padding: 0 1.15rem;
  border: 0;
  border-radius: 999px;
  background: linear-gradient(135deg,#149ce4,#0876bd);
  box-shadow: 0 12px 25px rgba(13,128,195,.22);
  color: #fff;
  font-family: var(--gf-font);
  font-size: .68rem;
  font-weight: 620;
  letter-spacing: .02em;
  text-transform: none;
  transition: transform .2s ease, box-shadow .2s ease, opacity .2s ease;
}
.gf-contact-submit-row button:hover{ transform: translateY(-2px); box-shadow: 0 15px 30px rgba(13,128,195,.28); }
.gf-contact-submit-row button:disabled{ cursor: wait; opacity: .62; }
.gf-contact-submit-row button.is-loading i{ animation: gf-contact-pulse .8s ease infinite alternate; }
.gf-contact-form-status{ margin: 0; color: #6d7c88; font-size: .65rem; line-height: 1.4; }
.gf-contact-form-status.is-success{ color: #168057; }
.gf-contact-form-status.is-error{ color: #b84040; }
@keyframes gf-contact-pulse{ to{ transform: translateX(4px); } }

@media (max-width: 991.98px){
  .gf-contact-layout{ grid-template-columns: 1fr; }
  .gf-contact-story{ min-height: 620px; }
}

@media (max-width: 575.98px){
  .gf-contact-story,
  .gf-contact-form-panel{ padding: 1.5rem; }
  .gf-contact-form-grid{ grid-template-columns: 1fr; }
  .gf-contact-submit-row{ display: grid; }
  .gf-contact-submit-row button{ width: 100%; }
}

@media (max-width: 991.98px){
  .gf-editorial-page{ padding-top: 2.5rem !important; }
  .gf-editorial-page > .row{ --bs-gutter-x: 1.25rem; }
  .gf-media-grid{ gap: 1.25rem; }
}

@media (max-width: 767.98px){
  .gf-media-grid{ grid-template-columns: 1fr; }
  .gf-media-card{ border-radius: 16px; }
  .gf-course-item{ grid-template-columns: 52px minmax(0,1fr); gap: 1rem; padding: 1.45rem 0; }
  .gf-course-icon{ width: 50px; height: 50px; border-radius: 15px; font-size: 1rem; }
  .gf-course-title-line{ display: block; }
  .gf-course-status{ margin-top: .45rem; }
  .gf-course-meta{ display: grid; gap: .45rem; }
  .gf-course-copy > p{ font-size: .86rem; line-height: 1.72; }
  .gf-publications-content #pubs-container > .border.rounded-4::after{ display: none; }
  .gf-pub-tools-grid{ grid-template-columns: 1fr; }
  .gf-pub-filter > span{ margin-top: .25rem; }
  .gf-pub-reset{ width: 100%; }
  .gf-pub-tools-meta{ display: block; }
  .gf-pub-tools-meta p + p{ margin-top: .45rem; }
  .gf-about-tools{ display: block; }
  .gf-about-tools > label{ width: 100%; }
  .gf-about-tools > div{ justify-content: flex-start; margin-top: .75rem; }
  .gf-about-content > .card:first-of-type{ text-align: center; }
  .gf-about-content > .card:first-of-type .card-body{ align-items: center !important; }
  .gf-about-content > .card:first-of-type .ms-md-4{ margin-left: 0 !important; }
  .gf-about-content .badge{ min-width: 0; margin: 0 0 .2rem !important; }
  .gf-about-content > .gf-about-card--academic-positions p,
  .gf-about-content > .gf-about-card--education p{
    grid-template-columns: max-content minmax(0,1fr);
    gap: .65rem;
    padding: .38rem 0;
  }
  .gf-page-content.gf-about-content > .gf-about-card--academic-positions .badge.bg-secondary,
  .gf-page-content.gf-about-content > .gf-about-card--education .badge.bg-secondary{ margin: 0 !important; }
  .gf-about-content > .gf-about-card--peer-review-activity ul,
  .gf-about-content > .gf-about-card--editorial-committees ul{ columns: 1; }
  .gf-about-collapsible-body.is-collapsed{ max-height: 30rem; }
  .gf-contact-map iframe{ min-height: 165px !important; }
}

@media (prefers-reduced-motion: reduce){
  .gf-media-card,
  .gf-media-image img,
  .gf-media-action,
  .gf-publications-content #pubs-container > .border.rounded-4 img,
  .gf-about-collapsible-body,
  .gf-about-expand i{ transition: none !important; }
}

/* Related content */
.related{ margin-top: clamp(3rem, 5vw, 5rem) !important; }
.related > .container{ padding: 0; }
.related .col.bg-light{
  padding: clamp(1.5rem, 2.4vw, 2.3rem) !important;
  border: 1px solid var(--gf-line);
  border-radius: 18px !important;
  background: var(--gf-ice) !important;
}
.related h5{ margin-bottom: .7rem; padding-left: 0 !important; }
.related .list-group-item{
  padding: 1.15rem 0 !important;
  border-color: var(--gf-line);
  background: transparent;
}
.related .list-group-item:first-child{ border-top: 0; }
.related .form-text{ color: var(--gf-copy); }

/* Category, tag e fallback */
.gf-home-stage .col-md-4 > .card-link .card{
  border: 1px solid var(--gf-line) !important;
  border-radius: 16px !important;
  box-shadow: none;
}

/* Footer */
.site-footer{
  position: relative;
  margin-top: clamp(2.75rem, 4vw, 4.5rem) !important;
  padding: clamp(3.5rem, 5vw, 4.8rem) 0 clamp(2rem, 3vw, 2.8rem);
  overflow: hidden;
  background: var(--gf-navy) !important;
  color: #d6e6f2;
}
.site-footer::before{
  content: none;
}
.site-footer .container{
  width: min(calc(100% - var(--gf-frame-gutter) - var(--gf-frame-gutter)), var(--gf-frame-max));
  max-width: var(--gf-frame-max);
}
.gf-footer-main{
  display: grid;
  grid-template-columns: minmax(410px,1.15fr) minmax(230px,.72fr) minmax(290px,.9fr);
  align-items: start;
  gap: clamp(2.4rem,4.4vw,5rem);
}
.gf-footer-primary{ min-width: 0; }
.gf-footer-brand{ max-width: 580px; }
.gf-footer-brand img{ width: min(320px,100%); border-radius: 0; }
.gf-footer-brand p{
  margin: .8rem 0 0;
  color: #91a9ba;
  font-size: .9rem;
  letter-spacing: -.01em;
}
.footer-links{
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: .72rem clamp(1rem,2vw,1.9rem);
  margin-top: 2rem;
  padding: 0;
  border: 0;
}
.site-footer .footer-links a{
  position: relative;
  color: #d8e6ef;
  font-family: var(--gf-font);
  font-size: .9rem;
  font-weight: 500;
  letter-spacing: -.01em;
  transition: color .2s ease, transform .2s ease;
}
.site-footer .footer-links a:hover{
  color: #69c5f4;
  transform: translateY(-1px);
}
.social-icons{
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: .45rem .72rem;
  max-width: none;
  margin-top: 1.85rem;
}
.social-icons .list-inline-item{ margin: 0; }
.social-icons a{
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 50%;
  color: #e8f3f9;
  text-decoration: none;
  transition: color .2s ease, background-color .2s ease, transform .2s ease;
}
.social-icons i{
  width: auto;
  height: auto;
  margin: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: inherit;
  font-size: 19px;
  line-height: 1;
  transition: none;
}
.social-icons a:hover{
  background: rgba(105,197,244,.1);
  color: #7ac8f3;
  transform: translateY(-2px);
}
.social-icons a:hover i{
  background: transparent;
  box-shadow: none;
  color: inherit;
  transform: none;
}
.site-footer a:focus-visible{
  outline: 2px solid #69c5f4;
  outline-offset: 5px;
  border-radius: 4px;
}
.gf-footer-contact h2{
  margin: .15rem 0 1.35rem;
  color: #69c5f4;
  font-size: 1.05rem;
  font-weight: 550;
  letter-spacing: -.02em;
}
.gf-footer-contact address{
  display: grid;
  gap: .95rem;
  margin: 0;
  font-style: normal;
}
.gf-footer-contact address > a,
.gf-footer-contact address > p{
  display: flex;
  align-items: flex-start;
  gap: .75rem;
  margin: 0;
  color: #c8d9e4;
  font-family: var(--gf-font);
  font-size: .84rem;
  line-height: 1.65;
  text-decoration: none;
}
.gf-footer-contact address > a:hover{ color: #69c5f4; }
.gf-footer-contact address i{
  width: 1rem;
  margin-top: .28rem;
  color: #69c5f4;
  text-align: center;
}
.gf-footer-contact address strong{ color: #e1edf4; font-weight: 500; }
.gf-footer-map-preview{
  display: block;
  width: 100%;
  border-radius: 18px;
  overflow: hidden;
  background: #0e2942;
  line-height: 0;
}
.gf-footer-map-preview iframe{
  display: block;
  width: 100%;
  height: 205px;
  border: 0;
  filter: saturate(.7) contrast(1.04) brightness(.82);
  transition: filter .25s ease;
}
.gf-footer-map-preview:hover iframe,
.gf-footer-map-preview:focus-within iframe{
  filter: saturate(.82) contrast(1.02) brightness(.9);
}
.gf-footer-map-meta{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: .4rem 1rem;
  margin-top: .78rem;
}
.gf-footer-map-action,
.gf-footer-map-attribution{
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  color: #69c5f4;
  font-family: var(--gf-font);
  font-size: .78rem;
  font-weight: 500;
  text-decoration: none;
}
.gf-footer-map-attribution{ color: #7f98a9; font-size: .66rem; font-weight: 450; }
.gf-footer-map-action:hover,
.gf-footer-map-attribution:hover{ color: #a6ddfa; }
.gf-footer-map-action i{ font-size: .7rem; }
.gf-footer-bottom{
  display: grid;
  grid-template-columns: minmax(0,1.25fr) minmax(280px,.75fr);
  align-items: end;
  gap: clamp(2rem,5vw,5rem);
  margin-top: clamp(2.4rem,3.5vw,3.5rem);
  padding: 0;
  color: #8198a8;
  font-size: .78rem;
  line-height: 1.8;
}
.gf-footer-bottom strong{ color: #c9dae5; font-weight: 550; }
.gf-footer-bottom > div:last-child{ text-align: right; }
.gf-footer-bottom a{ color: #a8c0cf; text-decoration: none; }
.gf-footer-bottom a:hover{ color: var(--gf-blue); }

@media (max-width: 1199.98px){
  .gf-footer-main{
    grid-template-columns: minmax(0,1.15fr) minmax(280px,.85fr);
  }
  .gf-footer-map{ grid-column: 1 / -1; max-width: 620px; }
  .pub-rail{ grid-template-columns: repeat(3,minmax(0,1fr)); row-gap: 2rem; }
  .pub-rail .pub-card:nth-child(3){ border-right: 0 !important; }
  .pubs-grid-5{ grid-template-columns: repeat(3,minmax(0,1fr)); }
}

@media (max-width: 767.98px){
  body{ font-size: 16px; line-height: 1.62; }
  .container{ --bs-gutter-x: 1.5rem; }
  .gf-home-stage{ padding-top: 2rem !important; }
  .gf-home-intro{
    display: block;
    padding: .5rem 0 3.5rem;
  }
  .gf-home-intro > .profile-header{
    flex-direction: column;
    justify-content: center;
    align-items: center;
    margin-bottom: 2.75rem !important;
    text-align: center;
  }
  .gf-home-intro > .profile-header > .min-w-0{ width: 100%; text-align: center; }
  .gf-home-intro > hr{ display: none; }
  .gf-home-intro > .mb-3{ margin-bottom: .6rem !important; text-align: center; }
  .gf-home-intro > h4,
  .gf-home-intro > .mb-3 + p{
    width: 100%;
    margin-right: auto;
    margin-bottom: 0;
    margin-left: auto;
    font-size: clamp(1.133333rem,4.666667vw,1.333333rem);
    line-height: 1.02;
    text-align: center;
  }
  .gf-home-intro > p:last-child{ margin-top: 1.6rem !important; padding: 0; font-size: 1.03rem !important; line-height: 1.75; }
  .profile-header .avatar-circle{ width: 112px; height: 112px; border-width: 5px; }
  .profile-header h1{ font-size: clamp(1.7rem,7vw,2rem); }
  .profile-header p{ font-size: .88rem !important; line-height: 1.65; text-align: center; }
  .gf-home-section{ padding: 2.8rem 0; }
  .gf-home-selected{ margin: 0 -.25rem; padding: 2.8rem 1rem; border-radius: 18px; }
  .gf-home-latest .gf-section-heading .badge{
    display: block;
    width: 100%;
    font-size: clamp(.9rem,4.5vw,1.03rem);
    line-height: 1.35;
    white-space: normal;
    text-wrap: balance;
  }
  .pub-rail{
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    width: 100%;
    padding: 0;
    overflow: visible;
  }
  .pub-rail .pub-card,
  .pub-rail .pub-card:first-child,
  .pub-rail .pub-card:last-child{
    display: grid;
    grid-template-columns: 86px minmax(0,1fr);
    gap: 1rem;
    width: 100%;
    padding: 1rem 0;
    border: 0 !important;
    border-bottom: 1px solid var(--gf-line) !important;
  }
  .pub-rail .pub-card:first-child{ padding-top: 0; }
  .pub-rail .pub-card:last-child{ padding-bottom: 0; border-bottom: 0 !important; }
  .pub-rail .pub-cover{ width: 86px; }
  .pub-rail .card-body{ padding: .15rem 0 !important; }
  .pub-rail .pub-card h6{ font-size: .91rem; line-height: 1.38; }
  .pubs-grid-5{ display: flex; flex-direction: column; gap: .25rem; }
  .pubs-grid-5 .pub-card{
    display: grid;
    grid-template-columns: 86px minmax(0,1fr);
    gap: 1rem;
    padding: .9rem 0;
    border-bottom: 1px solid var(--gf-line);
  }
  .pubs-grid-5 .pub-cover{ aspect-ratio: 4/5; }
  .pubs-grid-5 .pub-meta{ padding: .2rem 0; }
  .gf-home-blog .col-md-3{ margin-bottom: .75rem !important; }
  .gf-home-blog .card{ min-height: 0; padding: 1.2rem !important; }
  .gf-page-hero{ padding: 2.75rem 0 !important; }
  .gf-page-main{ padding-top: 2.5rem !important; }
  .gf-page-main > .container > .row{ --bs-gutter-x: 1.5rem; }
  .gf-page-content > .card,
  .gf-page-content > div.card{ padding: 1.25rem !important; border-radius: 14px !important; }
  #pubs-container > .border.rounded-4{ padding: 1rem 0 !important; }
  #pubs-container > .border.rounded-4 > .d-flex{ align-items: flex-start !important; }
  .related .list-group-item .d-flex{ gap: .75rem; align-items: flex-start; }
  .related .list-group-item small{ white-space: nowrap; }
  .site-footer{ text-align: center; }
  .gf-footer-main{
    grid-template-columns: 1fr;
    justify-items: center;
    gap: 2.5rem;
  }
  .gf-footer-primary,
  .gf-footer-contact,
  .gf-footer-map{ width: 100%; text-align: center; }
  .gf-footer-brand img{ width: 275px; margin-right: auto; margin-left: auto; }
  .footer-links{
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    justify-items: center;
    gap: .85rem 1.25rem;
    margin-top: 2rem;
  }
  .social-icons{ justify-content: center; gap: .45rem .6rem; margin-top: 1.8rem; }
  .social-icons a{ width: 34px; height: 34px; }
  .social-icons i{ font-size: 19px; }
  .gf-footer-contact address{ justify-items: center; }
  .gf-footer-contact address > a,
  .gf-footer-contact address > p{
    width: fit-content;
    max-width: 100%;
    justify-content: center;
    text-align: left;
  }
  .gf-footer-map{ max-width: none; }
  .gf-footer-map-preview iframe{ height: 210px; }
  .gf-footer-map-meta{ justify-content: center; }
  .gf-footer-bottom{ grid-template-columns: 1fr; gap: 1.15rem; margin-top: 2.6rem; }
  .gf-footer-bottom > div,
  .gf-footer-bottom > div:last-child{ text-align: center; }
}

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior: auto; }
  .pub-card,.card,#pubs-container > .border.rounded-4{ transition: none !important; }
}

/* =========================================================
   PEOPLE — editorial research directory
   ========================================================= */
.gf-people-shell{
  width: min(calc(100% - var(--gf-frame-gutter) - var(--gf-frame-gutter)), var(--gf-frame-max));
  max-width: var(--gf-frame-max);
  margin-right: auto;
  margin-left: auto;
  padding-right: 0;
  padding-left: 0;
}
.gf-people-kicker{
  margin: 0 0 1rem;
  color: var(--gf-blue-deep);
  font-size: .76rem;
  font-weight: 650;
  line-height: 1.2;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.gf-people-hero{
  position: relative;
  overflow: hidden;
  margin: 0;
  padding: clamp(2.75rem, 4vw, 4rem) 0;
  background:
    radial-gradient(circle at 82% 18%, rgba(67,167,226,.16), transparent 31%),
    linear-gradient(145deg, #f7fbfe 0%, #fff 56%, #f3f9fc 100%);
  border-bottom: 1px solid var(--gf-line);
}
.gf-people-hero::before{
  position: absolute;
  top: -230px;
  right: -150px;
  width: 420px;
  height: 420px;
  border: 1px solid rgba(67,167,226,.16);
  border-radius: 50%;
  content: '';
}
.gf-people-hero::after{
  position: absolute;
  right: 10%;
  bottom: -72px;
  width: 130px;
  height: 130px;
  border: 1px solid rgba(67,167,226,.22);
  border-radius: 50%;
  content: '';
}
.gf-people-hero-grid{
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(260px, .58fr) minmax(440px, 1.42fr);
  gap: clamp(3rem, 6vw, 6rem);
  align-items: center;
}
.gf-people-hero h1{
  margin: 0;
  color: var(--gf-ink);
  font-family: var(--gf-font);
  font-size: clamp(3.25rem, 4.8vw, 4.7rem);
  font-weight: 620;
  line-height: .95;
  letter-spacing: -.065em;
}
.gf-people-hero-copy > p{
  max-width: 760px;
  margin: 0;
  color: #536474;
  font-size: clamp(1.03rem, 1.12vw, 1.14rem);
  line-height: 1.65;
}
.gf-people-main{ padding: clamp(3rem, 4.5vw, 4.5rem) 0 clamp(4.5rem, 7vw, 7rem); }
.gf-people-intro{
  display: grid;
  grid-template-columns: 210px minmax(0, 1fr);
  gap: clamp(2.5rem, 5vw, 5rem);
  align-items: center;
  max-width: 1100px;
  margin: 0 auto clamp(3.5rem, 5vw, 5rem);
}
.gf-people-intro-portrait{
  position: relative;
  width: min(100%, 210px);
  aspect-ratio: 1;
  margin: 0 auto;
}
.gf-people-intro-portrait::before,
.gf-people-intro-ring{
  position: absolute;
  border-radius: 50%;
  content: '';
}
.gf-people-intro-portrait::before{
  inset: -16%;
  background: radial-gradient(circle, rgba(67,167,226,.12), rgba(67,167,226,0) 67%);
}
.gf-people-intro-ring{
  inset: -8%;
  border: 1px solid rgba(67,167,226,.25);
}
.gf-people-intro-portrait img{
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: 6px solid #fff;
  border-radius: 50%;
  box-shadow: 0 18px 48px rgba(16,63,91,.15);
}
.gf-people-intro-copy h2{
  max-width: 820px;
  margin: 0 0 1.15rem;
  color: var(--gf-ink);
  font-size: clamp(2.15rem, 3.25vw, 3.35rem);
  font-weight: 620;
  line-height: 1.06;
  letter-spacing: -.052em;
}
.gf-people-intro-copy > p:last-child{
  max-width: 790px;
  margin: 0;
  color: #5b6d7d;
  font-size: clamp(.96rem, 1vw, 1.05rem);
  line-height: 1.7;
}
.gf-people-intro-copy a{ color: var(--gf-blue-deep); text-underline-offset: .2em; }

@media (min-width: 992px){
  .gf-page-hero,
  .gf-people-hero{
    display: flex;
    box-sizing: border-box;
    width: 100%;
    height: clamp(255px, calc(450px - 14vw), 312px);
    min-height: 0;
    align-items: center;
  }
}

.gf-people-index{
  position: sticky;
  top: 112px;
  z-index: 20;
  isolation: isolate;
  display: block;
  align-items: center;
  max-width: 1100px;
  margin: 0 auto 4rem;
}
.gf-people-index::before{
  position: absolute;
  z-index: 0;
  top: -8px;
  left: 50%;
  width: 100vw;
  height: calc(100% + 20px);
  background: #fff;
  transform: translateX(-50%);
  pointer-events: none;
  content: '';
}
.gf-people-index > div{
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: center;
  gap: .15rem;
  overflow-x: auto;
  padding: .45rem .55rem;
  border: 1px solid rgba(198,220,233,.9);
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 13px 40px rgba(31,75,101,.09);
  scrollbar-width: none;
}
.gf-people-index > div::-webkit-scrollbar{ display: none; }
.gf-people-index a{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .46rem;
  padding: .58rem .85rem;
  border-radius: 999px;
  color: #3d4d5b;
  font-family: var(--gf-font);
  font-size: .9rem;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: -.015em;
  text-decoration: none;
  white-space: nowrap;
  transition: color .2s ease, background-color .2s ease;
}
.gf-people-index-icon{
  width: 1.1rem;
  color: #71808d;
  font-size: .96rem;
  text-align: center;
  transition: color .2s ease, transform .2s ease;
}
.gf-people-index a:hover,
.gf-people-index a:focus-visible{ background: var(--gf-ice-2); color: var(--gf-blue-deep); outline: 0; }
.gf-people-index a:hover .gf-people-index-icon,
.gf-people-index a:focus-visible .gf-people-index-icon{ color: var(--brand-accent); transform: translateY(-1px); }

.gf-people-section{
  scroll-margin-top: 197px;
  margin-top: clamp(3.75rem, 5.5vw, 5.5rem);
}
.gf-people-section:first-of-type{ margin-top: 0; }
.gf-people-section-head{
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1.2rem;
  align-items: end;
  margin-bottom: clamp(1.9rem, 3vw, 2.75rem);
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--gf-line-strong);
}
.gf-people-section-head span{ margin: 0 0 .25rem; color: #8293a0; font-size: .72rem; font-weight: 620; letter-spacing: .08em; text-transform: uppercase; }
.gf-people-section-head h2{
  margin: 0;
  font-size: clamp(1.8rem, 2.5vw, 2.65rem);
  font-weight: 620;
  line-height: 1;
  letter-spacing: -.05em;
}

.gf-people-feature-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 0 clamp(2rem, 4vw, 4.5rem);
}
.gf-person-feature{
  display: grid;
  grid-template-columns: 112px minmax(0,1fr);
  gap: 1.4rem;
  align-items: start;
  padding: 1.4rem 0 2rem;
  border-bottom: 1px solid var(--gf-line);
}
.gf-person-feature:nth-last-child(-n+2){ border-bottom: 0; }
.gf-person-avatar{
  position: relative;
  display: inline-grid;
  flex: 0 0 auto;
  place-items: center;
  overflow: hidden;
  width: 96px;
  height: 96px;
  border: 5px solid #fff;
  border-radius: 50%;
  background: linear-gradient(145deg, #e9f6fd, #d8edf8);
  box-shadow: 0 0 0 1px var(--gf-line-strong), 0 16px 38px rgba(20,76,109,.13);
  color: #0c7fbe;
  font-size: 1.35rem;
  font-weight: 650;
  letter-spacing: -.04em;
}
.gf-person-avatar img{ display: block; width: 100%; height: 100%; object-fit: cover; }
.gf-person-avatar--feature{ width: 112px; height: 112px; }
.gf-person-avatar--row{ width: 88px; height: 88px; }
.gf-person-avatar--alumni{ width: 74px; height: 74px; border-width: 4px; font-size: 1rem; }
.gf-person-role{
  margin: 0 0 .55rem;
  color: var(--gf-blue-deep);
  font-size: .7rem;
  font-weight: 650;
  letter-spacing: .11em;
  line-height: 1.3;
  text-transform: uppercase;
}
.gf-person-feature h3,
.gf-person-row h3,
.gf-alumni-person h3{
  margin: 0;
  color: var(--gf-ink);
  font-size: clamp(1.2rem, 1.35vw, 1.5rem);
  font-weight: 620;
  line-height: 1.18;
  letter-spacing: -.035em;
}
.gf-person-affiliation{
  margin: .6rem 0 1rem;
  color: #405263;
  font-size: .88rem;
  font-weight: 550;
  line-height: 1.5;
}
.gf-person-bio{
  margin: .9rem 0 0;
  color: #667583;
  font-size: .86rem;
  line-height: 1.65;
}
.gf-person-links{ display: flex; flex-wrap: wrap; gap: .5rem 1rem; margin-top: 1.25rem; }
.gf-person-links a{
  display: inline-flex;
  gap: .42rem;
  align-items: center;
  color: #617382;
  font-size: .73rem;
  font-weight: 620;
  text-decoration: none;
  transition: color .2s ease;
}
.gf-person-links a:hover,
.gf-person-links a:focus-visible{ color: var(--gf-blue-deep); outline: 0; }
.gf-person-links i{ color: var(--gf-blue); }

.gf-people-directory-grid{
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 0 clamp(2rem, 4vw, 4.5rem);
}
.gf-person-row{
  display: grid;
  grid-template-columns: 88px minmax(0,1fr);
  gap: 1.25rem;
  min-height: 0;
  padding: 1.35rem 0 1.85rem;
  border: 0;
  border-bottom: 1px solid var(--gf-line);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  transition: transform .24s ease;
}
.gf-person-row:nth-last-child(-n+2){ border-bottom: 0; }
.gf-person-row:hover{
  transform: translateY(-2px);
}
.gf-person-heading-line{ display: flex; gap: 1rem; justify-content: space-between; align-items: flex-start; }
.gf-person-location{
  display: inline-flex;
  flex: 0 0 auto;
  gap: .35rem;
  align-items: center;
  color: #81919e;
  font-size: .68rem;
  font-weight: 550;
  white-space: nowrap;
}
.gf-person-location i{ color: var(--gf-blue); }

.gf-alumni-archive{ border-top: 0; }
.gf-alumni-cohort{
  display: grid;
  grid-template-columns: minmax(135px, .32fr) minmax(0,1.68fr);
  gap: clamp(2rem, 4vw, 4.5rem);
  padding: 2.15rem 0;
  border-bottom: 1px solid var(--gf-line);
}
.gf-alumni-cohort:last-child{ border-bottom: 0; }
.gf-alumni-year{ display: flex; flex-direction: column; align-items: flex-start; }
.gf-alumni-year span{ color: #8293a0; font-size: .68rem; font-weight: 650; letter-spacing: .13em; text-transform: uppercase; }
.gf-alumni-year strong{ color: var(--gf-ink); font-size: clamp(1.3rem, 2vw, 2rem); letter-spacing: -.035em; }
.gf-alumni-list{ display: grid; gap: 2.1rem; }
.gf-alumni-person{
  display: grid;
  grid-template-columns: 74px minmax(0,1fr);
  gap: 1.2rem;
  align-items: start;
  padding-bottom: 1.6rem;
  border-bottom: 1px solid var(--gf-line);
}
.gf-alumni-person:last-child{ padding-bottom: 0; border-bottom: 0; }
.gf-alumni-person .gf-person-heading-line > span{
  padding: .42rem .72rem;
  border-radius: 999px;
  background: var(--gf-ice-2);
  color: #536779;
  font-size: .66rem;
  font-weight: 650;
  letter-spacing: .06em;
  text-transform: uppercase;
}

@media (max-width: 1199.98px){
  .gf-people-hero-grid,
  .gf-page-hero-grid{ grid-template-columns: minmax(230px,.55fr) minmax(420px,1.45fr); gap: 3rem; }
  .gf-people-index{ top: 90px; }
  .gf-people-feature-grid{ gap: 0 3.5rem; }
  .gf-person-feature{ grid-template-columns: 112px minmax(0,1fr); gap: 1.5rem; }
  .gf-person-avatar--feature{ width: 112px; height: 112px; }
  .gf-person-row{ grid-template-columns: 88px minmax(0,1fr); }
  .gf-person-avatar--row{ width: 88px; height: 88px; }
}

@media (max-width: 991.98px){
  .gf-people-shell{ width: min(calc(100% - var(--gf-frame-gutter) - var(--gf-frame-gutter)), var(--gf-frame-max)); }
  .gf-people-hero-grid,
  .gf-page-hero-grid{ grid-template-columns: 1fr; gap: 2.5rem; }
  .gf-people-hero h1,
  .gf-page-hero h1{ font-size: clamp(3.25rem, 10vw, 4.5rem); }
  .gf-people-hero-copy,
  .gf-page-hero-copy{ max-width: 720px; }
  .gf-people-intro{ grid-template-columns: 190px minmax(0,1fr); gap: 2.5rem; }
  .gf-people-index{
    top: 90px;
  }
  .gf-people-index > div{ border-radius: 20px; }
  .gf-people-feature-grid{ grid-template-columns: 1fr; }
  .gf-person-feature:nth-last-child(-n+2){ border-bottom: 1px solid var(--gf-line); }
  .gf-person-feature:last-child{ border-bottom: 0; }
  .gf-people-directory-grid{ grid-template-columns: 1fr; }
  .gf-person-row:nth-last-child(-n+2){ border-bottom: 1px solid var(--gf-line); }
  .gf-person-row:last-child{ border-bottom: 0; }
  .gf-person-row{ min-height: 0; }
}

@media (max-width: 767.98px){
  .gf-people-shell{ width: min(calc(100% - var(--gf-frame-gutter) - var(--gf-frame-gutter)), var(--gf-frame-max)); }
  .gf-people-hero,
  .gf-page-hero{ padding: 2.75rem 0 !important; }
  .gf-people-hero h1,
  .gf-page-hero h1{ font-size: clamp(3rem, 16vw, 4rem); }
  .gf-people-hero-copy > p,
  .gf-page-hero-copy > p{ font-size: 1rem; line-height: 1.65; }
  .gf-people-main{ padding-top: 3rem; }
  .gf-people-intro{ grid-template-columns: 1fr; gap: 1.8rem; text-align: center; }
  .gf-people-intro-portrait{ width: min(52vw, 190px); }
  .gf-people-intro-copy h2{ margin-right: auto; margin-left: auto; font-size: clamp(2.1rem, 10vw, 3rem); }
  .gf-people-intro-copy > p:last-child{ font-size: 1rem; }
  .gf-people-index{
    position: relative;
    top: auto;
    display: block;
    margin-bottom: 3.25rem;
  }
  .gf-people-index::before{ content: none; }
  .gf-people-index > div{
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    overflow-x: visible;
    padding: .55rem;
    border-radius: 16px;
  }
  .gf-people-index a{
    width: 100%;
    padding: .65rem .72rem;
    text-align: center;
    white-space: normal;
  }
  .gf-people-section{ scroll-margin-top: 115px; margin-top: 3.75rem; }
  .gf-people-section-head{ grid-template-columns: 1fr; gap: .75rem; }
  .gf-people-section-head > span{ display: none; }
  .gf-people-section-head h2{ font-size: clamp(2rem, 10vw, 3.1rem); }
  .gf-person-feature{
    grid-template-columns: 1fr;
    gap: 1.5rem;
    justify-items: center;
    padding: 1.7rem 0 2.25rem;
    text-align: center;
  }
  .gf-person-avatar--feature{ width: 112px; height: 112px; }
  .gf-person-links{ justify-content: center; }
  .gf-person-row{
    grid-template-columns: 1fr;
    justify-items: center;
    padding: 1.5rem;
    text-align: center;
  }
  .gf-person-heading-line{ display: block; }
  .gf-person-location{ margin-top: .8rem; }
  .gf-person-affiliation{ margin-top: .75rem; }
  .gf-person-avatar--row{ width: 92px; height: 92px; }
  .gf-alumni-cohort{ grid-template-columns: 1fr; gap: 1.8rem; padding: 2.5rem 0; }
  .gf-alumni-year{ align-items: center; text-align: center; }
  .gf-alumni-person{ grid-template-columns: 1fr; justify-items: center; gap: 1.25rem; text-align: center; }
  .gf-alumni-person .gf-person-heading-line{ display: flex; flex-direction: column; align-items: center; }
  .gf-person-avatar--alumni{ width: 88px; height: 88px; }
}

@media (max-width: 420px){
  .gf-people-shell{ width: min(calc(100% - var(--gf-frame-gutter) - var(--gf-frame-gutter)), var(--gf-frame-max)); }
  .gf-people-hero h1,
  .gf-page-hero h1{ font-size: 3.1rem; }
  .gf-person-row{ border-radius: 0; }
  .gf-person-bio{ font-size: .88rem; }
}

@media (prefers-reduced-motion: reduce){
  .gf-person-row{ transition: none; }
}

/* =========================================================
   SHARED SITE FRAME — one optical axis across every surface
   ========================================================= */
.gf-home-stage > .container{
  width: min(calc(100% - var(--gf-frame-gutter) - var(--gf-frame-gutter)), var(--gf-frame-max));
  max-width: var(--gf-frame-max);
  padding-right: 0;
  padding-left: 0;
}

/* Keyword rails continue through the full white content area. */
body:has(.gf-keywords) .site-footer{
  margin-top: 0 !important;
}

/* One compact hand-off from every inner-page hero to its content. */
:root{ --gf-content-start-gap: clamp(2rem, 2.7vw, 2.75rem); }
.gf-page-main{
  --gf-main-pad-top: var(--gf-content-start-gap);
  padding-top: var(--gf-content-start-gap) !important;
}
.gf-people-main{ padding-top: var(--gf-content-start-gap); }
.gf-page-content > :first-child{ margin-top: 0 !important; }

@media (max-width: 767.98px){
  :root{ --gf-content-start-gap: 1.75rem; }
  .gf-page-main,
  .gf-editorial-page{ padding-top: var(--gf-content-start-gap) !important; }
  .gf-people-main{ padding-top: var(--gf-content-start-gap); }
}

/* =========================================================
   DARK EDITORIAL LANGUAGE — pages, home hero and footer
   ========================================================= */
.gf-page-hero,
.gf-people-hero{
  isolation: isolate;
  background:
    radial-gradient(circle at 82% 8%, rgba(50,174,237,.22), transparent 29%),
    linear-gradient(135deg,#061a2d 0%,#092943 56%,#0c3958 100%) !important;
  border-bottom: 0;
  color: #fff;
}
.gf-page-hero::before,
.gf-people-hero::before{
  position: absolute;
  z-index: 0;
  inset: 0;
  width: auto;
  height: auto;
  border: 0;
  border-radius: 0;
  background-image:
    linear-gradient(rgba(255,255,255,.028) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.028) 1px,transparent 1px);
  background-size: 44px 44px;
  mask-image: linear-gradient(to right,transparent,black 45%,black);
  content: '';
  pointer-events: none;
}
.gf-page-hero::after,
.gf-people-hero::after{
  z-index: 0;
  right: -5%;
  bottom: -215px;
  width: 430px;
  height: 430px;
  border-color: rgba(113,207,255,.18);
}
.gf-page-hero .gf-page-hero-grid,
.gf-people-hero .gf-people-hero-grid{ position: relative; z-index: 1; }
.gf-page-hero .gf-people-kicker,
.gf-people-hero .gf-people-kicker{ color: #72cef8; }
.gf-page-hero h1,
.gf-people-hero h1{ color: #fff; }
.gf-page-hero-copy > p,
.gf-people-hero-copy > p{ color: #bfd0dc; }

/* Home hero: full-bleed research portrait with quiet motion. */
.gf-home-stage{ padding-top: 0 !important; }
.gf-home-intro{
  position: relative;
  isolation: isolate;
  width: 100vw;
  max-width: none;
  margin-right: calc(50% - 50vw);
  margin-left: calc(50% - 50vw);
  padding: clamp(3.5rem,6vw,6.5rem) var(--gf-frame-gutter) clamp(4.2rem,7vw,7rem);
  overflow: hidden;
  background:
    radial-gradient(circle at 82% 12%,rgba(50,174,237,.25),transparent 27%),
    linear-gradient(135deg,#061a2d 0%,#092943 58%,#0c3958 100%);
  color: #fff;
}
.gf-home-intro::before{
  position: absolute;
  z-index: -2;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);
  background-position: 0 0;
  background-size: 48px 48px;
  mask-image: linear-gradient(90deg,transparent 0,rgba(0,0,0,.85) 38%,#000 100%);
  content: '';
  animation: gf-home-grid-drift 22s linear infinite;
}
.gf-home-intro::after{
  position: absolute;
  z-index: -1;
  top: -260px;
  right: -140px;
  width: 620px;
  height: 620px;
  border: 1px solid rgba(113,207,255,.2);
  border-radius: 50%;
  box-shadow: 0 0 90px rgba(50,174,237,.08) inset;
  content: '';
  animation: gf-home-orbit 11s ease-in-out infinite alternate;
}
.gf-home-intro > *{ position: relative; z-index: 1; }
.gf-home-intro > .profile-header h1,
.gf-home-intro > h4,
.gf-home-intro > .mb-3 + p{ color: #fff; }
.gf-home-intro > .profile-header p,
.gf-home-intro > p:last-child{ color: #c1d2dd !important; }
.gf-home-intro > .mb-3 .badge{ color: #72cef8 !important; }
.gf-home-intro > .profile-header > .avatar-circle{
  box-shadow: 0 32px 80px rgba(0,0,0,.34), 0 0 0 1px rgba(117,207,255,.24) !important;
  animation: gf-home-portrait-float 7s ease-in-out infinite;
}
.gf-home-intro > .profile-header,
.gf-home-intro > .mb-3,
.gf-home-intro > h4,
.gf-home-intro > .mb-3 + p,
.gf-home-intro > p:last-child{
  animation: gf-home-enter .8s cubic-bezier(.22,1,.36,1) both;
}
.gf-home-intro > .mb-3{ animation-delay: .08s; }
.gf-home-intro > h4,
.gf-home-intro > .mb-3 + p{ animation-delay: .14s; }
.gf-home-intro > p:last-child{ animation-delay: .2s; }
@keyframes gf-home-enter{ from{ opacity: 0; transform: translateY(18px); } to{ opacity: 1; transform: translateY(0); } }
@keyframes gf-home-grid-drift{ to{ background-position: 48px 48px; } }
@keyframes gf-home-orbit{ to{ transform: translate(-42px,36px) scale(.95); opacity: .7; } }
@keyframes gf-home-portrait-float{ 0%,100%{ transform: translateY(0); } 50%{ transform: translateY(-8px); } }

@media (min-width: 1280px){
  .gf-home-intro{
    grid-template-columns: minmax(0,1fr) clamp(430px,37vw,540px);
    padding-right: var(--gf-frame-gutter);
    padding-left: var(--gf-frame-gutter);
  }
}
@media (max-width: 767.98px){
  .gf-home-intro{ display: block; padding: 3.4rem var(--gf-frame-gutter) 4.25rem; text-align: center; }
  .gf-home-intro > .profile-header h1{ color: #fff; font-size: clamp(2.2rem,9vw,2.75rem); font-weight: 600; }
  .gf-home-intro > .profile-header p{ color: #bdcfdb; }
  .gf-home-intro > h4,
  .gf-home-intro > .mb-3 + p{ max-width: 620px; font-size: clamp(1.4rem,6vw,1.5rem); }
  .gf-home-intro > p:last-child{ color: #bdcfdb; }
}

/* Footer repeats the editorial texture at a deeper tonal value. */
.site-footer{
  isolation: isolate;
  background:
    radial-gradient(circle at 82% 0,rgba(31,122,172,.14),transparent 31%),
    linear-gradient(135deg,#020b14 0%,#031525 58%,#061e32 100%) !important;
}
.site-footer::before{
  position: absolute;
  z-index: 0;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);
  background-size: 48px 48px;
  mask-image: linear-gradient(to right,transparent,black 40%,black);
  content: '';
  pointer-events: none;
}
.site-footer .container{ position: relative; z-index: 1; }

/* Contact: one integrated, edge-to-edge composition. */
.gf-about-content > .gf-about-card--contacts{ padding: 0 !important; overflow: hidden; }
.gf-about-content > .gf-about-card--contacts > .card-body{ padding: 0 !important; }
.gf-contact-captcha{
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(112px,.42fr) 42px;
  gap: .75rem;
  align-items: end;
  padding: .72rem;
  border: 1px solid #d8e5ed;
  border-radius: 15px;
  background: linear-gradient(135deg,#f4faff,#f8fbfd);
}
.gf-contact-captcha-question{
  display: flex;
  align-items: center;
  gap: .7rem;
  min-height: 48px;
}
.gf-contact-captcha-question > span{
  display: grid;
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  place-items: center;
  border-radius: 12px;
  background: rgba(67,167,226,.12);
  color: var(--gf-blue-deep);
}
.gf-contact-captcha-question small{
  display: block;
  color: #718392;
  font-size: .58rem;
  font-weight: 550;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.gf-contact-captcha-question strong{ display: block; margin-top: .12rem; color: #24394a; font-size: .78rem; font-weight: 550; }
.gf-contact-captcha label > span{ font-size: .58rem; }
.gf-contact-captcha input{ min-height: 42px; background: #fff; }
.gf-contact-captcha-refresh{
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border: 1px solid #d8e5ed;
  border-radius: 12px;
  background: #fff;
  color: var(--gf-blue-deep);
  transition: color .2s ease, background .2s ease, transform .2s ease;
}
.gf-contact-captcha-refresh:hover{ background: var(--gf-ice-2); transform: rotate(16deg); }
.gf-contact-captcha-refresh:disabled{ opacity: .45; }

/* Blog sharing rail: device-native first, then broad social choice. */
.gf-share-panel{ font-family: var(--gf-font); }
.gf-share-panel--desktop{ margin-top: 1.25rem; padding-top: .35rem; border-top: 0; }
.gf-share-panel-head{ display: flex; align-items: center; gap: .62rem; }
.gf-share-panel-head > span{
  display: grid;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  place-items: center;
  border-radius: 11px;
  background: var(--gf-ice-2);
  color: var(--gf-blue-deep);
}
.gf-share-panel-head small{ display: block; color: #80909d; font-size: .58rem; font-weight: 550; letter-spacing: .09em; text-transform: uppercase; }
.gf-share-panel-head strong{ display: block; color: var(--gf-ink); font-size: .8rem; font-weight: 600; line-height: 1.25; }
.gf-share-panel > p{ margin: .75rem 0 1rem; color: #71808c; font-size: .7rem; line-height: 1.55; }
.gf-share-actions{ display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .3rem; }
.gf-share-action{
  display: inline-flex;
  min-width: 0;
  min-height: 36px;
  align-items: center;
  gap: .65rem;
  padding: .42rem .45rem;
  border: 0;
  border-radius: 11px;
  background: transparent;
  color: #536675;
  font-size: .62rem;
  font-weight: 500;
  line-height: 1.1;
  text-decoration: none;
  transition: background .2s ease, color .2s ease, transform .2s ease;
}
button.gf-share-action{ width: 100%; font-family: var(--gf-font); text-align: left; }
.gf-share-action > span{ white-space: nowrap; text-transform: none; }
.gf-share-action i{
  display: grid;
  width: 1.5rem;
  height: 1.5rem;
  flex: 0 0 1.5rem;
  place-items: center;
  border-radius: 8px;
  background: #eef6fa;
  color: #728695;
  text-align: center;
}
.gf-share-action--native,
.gf-share-action[data-copy-share]{ background: #f5f9fb; }
.gf-share-action:hover,
.gf-share-action:focus-visible,
.gf-share-action.is-copied{ background: var(--gf-ice); color: var(--gf-blue-deep); transform: translateY(-1px); }
.gf-share-action:hover i,
.gf-share-action.is-copied i{ color: var(--gf-blue-deep); }
.gf-share-status{ display: block; min-height: 1em; margin-top: .55rem; color: #168057; font-size: .6rem; }
.gf-share-panel--mobile{
  margin-top: 2.5rem;
  padding: 1.25rem;
  border: 1px solid var(--gf-line);
  border-radius: 18px;
  background: linear-gradient(145deg,#f7fbfe,#fff);
}
.gf-share-panel--mobile .gf-share-actions{ grid-template-columns: repeat(3,minmax(0,1fr)); }

@media (max-width: 575.98px){
  .gf-contact-captcha{ grid-template-columns: 1fr 42px; }
  .gf-contact-captcha-question{ grid-column: 1 / -1; }
  .gf-share-panel--mobile .gf-share-actions{ grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (prefers-reduced-motion: reduce){
  .gf-home-intro::before,
  .gf-home-intro::after,
  .gf-home-intro > *,
  .gf-home-intro > .profile-header > .avatar-circle{ animation: none !important; }
}

/* =========================================================
   DIGILEARN — premium product story on Teaching
   ========================================================= */
.gf-digilearn-feature{
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: minmax(0,1.15fr) minmax(340px,.85fr);
  min-height: 430px;
  margin-bottom: clamp(3rem,5vw,4.75rem);
  overflow: hidden;
  border: 1px solid rgba(87,190,241,.2);
  border-radius: 28px;
  background:
    radial-gradient(circle at 80% 18%,rgba(61,190,246,.28),transparent 30%),
    linear-gradient(135deg,#061a2d 0%,#092b46 58%,#0b3d5d 100%);
  box-shadow: 0 30px 90px rgba(6,35,57,.16);
  color: #fff;
}
.gf-digilearn-feature::before,
.gf-digilearn-modal-hero::before{
  position: absolute;
  z-index: -1;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,.032) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.032) 1px,transparent 1px);
  background-size: 40px 40px;
  mask-image: linear-gradient(90deg,transparent,#000 35%,#000);
  content: '';
  pointer-events: none;
}
.gf-digilearn-feature-copy{
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(2.25rem,4.5vw,4.75rem);
}
.gf-digilearn-wordmark,
.gf-digilearn-modal-brand{
  display: inline-flex;
  align-items: center;
  gap: .72rem;
  color: #fff;
  font-size: .9rem;
  font-weight: 400;
  letter-spacing: .16em;
}
.gf-digilearn-wordmark strong,
.gf-digilearn-modal-brand strong{ color: #75d0f8; font-weight: 600; }
.gf-digilearn-mark{
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border: 1px solid rgba(126,213,252,.32);
  border-radius: 12px;
  background: rgba(94,197,244,.12);
  color: #75d0f8;
  box-shadow: 0 10px 30px rgba(50,174,237,.12);
}
.gf-digilearn-kicker{
  margin: 1.35rem 0 .75rem;
  color: #75d0f8 !important;
  font-size: .67rem !important;
  font-weight: 550;
  letter-spacing: .17em;
  text-transform: uppercase;
}
.gf-digilearn-feature h2{
  max-width: 720px;
  margin: 0;
  color: #fff;
  font: 580 clamp(2.35rem,4.4vw,4.35rem)/.99 var(--gf-font);
  letter-spacing: -.055em;
}
.gf-digilearn-feature-copy > p:not(.gf-digilearn-kicker){
  max-width: 650px;
  margin: 1.35rem 0 0;
  color: #bfd0dc;
  font-size: .98rem;
  line-height: 1.75;
}
.gf-digilearn-feature-actions{ display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.3rem; margin-top: 1.75rem; }
.gf-digilearn-button{
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  gap: .75rem;
  padding: .8rem 1.2rem;
  border: 0;
  border-radius: 999px;
  font: 550 .76rem/1 var(--gf-font);
  transition: transform .22s ease, box-shadow .22s ease, background .22s ease;
}
.gf-digilearn-button--primary{ background: #fff; color: #0a3150; box-shadow: 0 15px 35px rgba(0,0,0,.18); }
.gf-digilearn-button--primary:hover{ background: #eaf8ff; transform: translateY(-2px); box-shadow: 0 20px 45px rgba(0,0,0,.24); }
.gf-digilearn-feature-actions > span{ display: inline-flex; align-items: center; gap: .5rem; color: #9fb7c7; font-size: .69rem; font-weight: 450; }
.gf-digilearn-feature-actions > span i{ color: #71caf3; }
.gf-digilearn-orbit{ position: relative; min-height: 430px; }
.gf-digilearn-orbit::before,
.gf-digilearn-orbit::after{
  position: absolute;
  top: 50%;
  left: 50%;
  width: 330px;
  height: 330px;
  border: 1px solid rgba(113,207,255,.16);
  border-radius: 50%;
  content: '';
  transform: translate(-50%,-50%);
  animation: gf-digilearn-pulse 7s ease-in-out infinite;
}
.gf-digilearn-orbit::after{ width: 230px; height: 230px; animation-delay: -2.2s; }
.gf-digilearn-core{
  position: absolute;
  z-index: 2;
  top: 50%;
  left: 50%;
  display: grid;
  width: 142px;
  height: 142px;
  place-items: center;
  border: 1px solid rgba(134,219,255,.35);
  border-radius: 50%;
  background: radial-gradient(circle at 35% 28%,rgba(96,208,255,.32),rgba(12,53,82,.92));
  box-shadow: 0 28px 70px rgba(0,0,0,.25),0 0 50px rgba(63,185,239,.12) inset;
  color: #fff;
  text-align: center;
  transform: translate(-50%,-50%);
  animation: gf-digilearn-float 6s ease-in-out infinite;
}
.gf-digilearn-core i{ margin-bottom: -1.5rem; color: #79d4fa; font-size: 1.55rem; }
.gf-digilearn-core span{ font-size: .68rem; font-weight: 550; line-height: 1.35; letter-spacing: .03em; }
.gf-digilearn-node{
  position: absolute;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .62rem .8rem;
  border: 1px solid rgba(139,215,248,.18);
  border-radius: 999px;
  background: rgba(4,24,40,.68);
  box-shadow: 0 12px 32px rgba(0,0,0,.2);
  color: #d9e9f2;
  font-size: .67rem;
  font-weight: 500;
  backdrop-filter: blur(12px);
}
.gf-digilearn-node i{ color: #71cef7; }
.gf-digilearn-node--students{ top: 13%; left: 10%; }
.gf-digilearn-node--ai{ top: 20%; right: 4%; }
.gf-digilearn-node--research{ bottom: 17%; left: 4%; }
.gf-digilearn-node--manage{ right: 8%; bottom: 12%; }
@keyframes gf-digilearn-pulse{ 0%,100%{ opacity: .55; transform: translate(-50%,-50%) scale(.96); } 50%{ opacity: 1; transform: translate(-50%,-50%) scale(1.04); } }
@keyframes gf-digilearn-float{ 0%,100%{ transform: translate(-50%,-50%); } 50%{ transform: translate(-50%,calc(-50% - 8px)); } }

.gf-digilearn-modal .modal-dialog{ width: min(1120px,calc(100% - 2rem)); max-width: 1120px; }
.gf-digilearn-modal .modal-content{ overflow: hidden; border: 1px solid rgba(111,202,245,.22); border-radius: 28px; box-shadow: 0 45px 120px rgba(0,18,32,.42); }
.gf-digilearn-modal-hero{
  position: relative;
  flex: 0 0 auto;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(2.25rem,5vw,4.5rem);
  background:
    radial-gradient(circle at 86% 10%,rgba(70,194,249,.3),transparent 30%),
    linear-gradient(135deg,#061a2d,#0a3453 70%,#0b4669);
  color: #fff;
}
.gf-digilearn-modal-hero h2{ max-width: 850px; margin: 0; color: #fff; font: 580 clamp(2.2rem,4.6vw,4rem)/1.03 var(--gf-font); letter-spacing: -.055em; }
.gf-digilearn-modal-hero > p:not(.gf-digilearn-kicker){ max-width: 820px; margin: 1.25rem 0 0; color: #bfd0dc; font-size: .94rem; line-height: 1.72; }
.gf-digilearn-modal-close{
  position: absolute;
  z-index: 3;
  top: 1.25rem;
  right: 1.25rem;
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 50%;
  background: rgba(0,0,0,.16);
  color: #fff;
  backdrop-filter: blur(10px);
}
.gf-digilearn-modal-close:hover{ background: rgba(255,255,255,.14); }
.gf-digilearn-access-state{ display: flex; flex-wrap: wrap; gap: .55rem; margin-top: 1.6rem; }
.gf-digilearn-access-state span{ display: inline-flex; align-items: center; gap: .42rem; padding: .48rem .68rem; border: 1px solid rgba(255,255,255,.14); border-radius: 999px; background: rgba(255,255,255,.07); color: #d6e7f0; font-size: .64rem; font-weight: 500; }
.gf-digilearn-access-state i{ color: #73d2fa; }
.gf-digilearn-modal .modal-body{ padding: clamp(1.6rem,4vw,3.25rem); background: #f8fbfd; }
.gf-digilearn-modal-intro{ display: grid; grid-template-columns: minmax(250px,.6fr) minmax(0,1.4fr); gap: 2rem; align-items: end; margin-bottom: 1.65rem; }
.gf-digilearn-modal-intro .gf-digilearn-kicker{ margin: 0; }
.gf-digilearn-modal-intro > p:last-child{ margin: 0; color: #647987; font-size: .84rem; line-height: 1.65; }
.gf-digilearn-capabilities{ display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; overflow: hidden; border: 1px solid #dce8ef; border-radius: 20px; background: #dce8ef; }
.gf-digilearn-capabilities article{ position: relative; min-height: 260px; padding: 1.65rem; background: #fff; }
.gf-digilearn-capabilities article > span{ display: grid; width: 44px; height: 44px; place-items: center; margin-bottom: 1.25rem; border-radius: 14px; background: #eaf7fd; color: #1488c6; }
.gf-digilearn-capabilities small{ color: #1685bf; font-size: .61rem; font-weight: 550; letter-spacing: .1em; text-transform: uppercase; }
.gf-digilearn-capabilities h3{ margin: .6rem 0 0; color: var(--gf-ink); font: 580 clamp(1.2rem,2vw,1.55rem)/1.22 var(--gf-font); letter-spacing: -.035em; }
.gf-digilearn-capabilities p{ margin: .85rem 0 0; color: #6d7f8c; font-size: .78rem; line-height: 1.65; }
.gf-digilearn-modal-cta{ display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; margin-top: 1.4rem; padding: 1.25rem 1.4rem; border-radius: 18px; background: #071e31; }
.gf-digilearn-modal-cta small{ display: block; color: #73cdf6; font-size: .59rem; font-weight: 550; letter-spacing: .1em; text-transform: uppercase; }
.gf-digilearn-modal-cta strong{ display: block; max-width: 700px; margin-top: .28rem; color: #dceaf2; font-size: .74rem; font-weight: 450; line-height: 1.5; }
.gf-digilearn-modal-cta a{ display: inline-flex; flex: 0 0 auto; align-items: center; gap: .55rem; min-height: 44px; padding: .7rem 1rem; border-radius: 999px; background: #fff; color: #0a3150; font-size: .7rem; font-weight: 550; text-decoration: none; }
.gf-digilearn-modal-cta a:hover{ background: #eaf8ff; }

@media (max-width: 991.98px){
  .gf-digilearn-feature{ grid-template-columns: 1fr; }
  .gf-digilearn-orbit{ min-height: 340px; margin-top: -2rem; }
  .gf-digilearn-modal-intro{ grid-template-columns: 1fr; gap: .75rem; }
}
@media (max-width: 575.98px){
  .gf-digilearn-feature{ border-radius: 22px; }
  .gf-digilearn-feature-copy{ padding: 1.65rem; }
  .gf-digilearn-feature h2{ font-size: clamp(2rem,11vw,2.8rem); }
  .gf-digilearn-feature-actions{ align-items: flex-start; }
  .gf-digilearn-orbit{ min-height: 300px; }
  .gf-digilearn-orbit::before{ width: 270px; height: 270px; }
  .gf-digilearn-orbit::after{ width: 190px; height: 190px; }
  .gf-digilearn-core{ width: 118px; height: 118px; }
  .gf-digilearn-node{ padding: .52rem .64rem; font-size: .59rem; }
  .gf-digilearn-modal .modal-dialog{ width: calc(100% - 1rem); margin: .5rem auto; }
  .gf-digilearn-modal .modal-content{ border-radius: 22px; }
  .gf-digilearn-modal-hero{ padding: 3.25rem 1.35rem 2rem; }
  .gf-digilearn-modal-hero h2{ font-size: clamp(2rem,10vw,2.7rem); }
  .gf-digilearn-capabilities{ grid-template-columns: 1fr; }
  .gf-digilearn-capabilities article{ min-height: 0; }
  .gf-digilearn-modal-cta{ align-items: stretch; flex-direction: column; }
  .gf-digilearn-modal-cta a{ justify-content: center; }
}

@media (prefers-reduced-motion: reduce){
  .gf-digilearn-orbit::before,
  .gf-digilearn-orbit::after,
  .gf-digilearn-core{ animation: none !important; }
}

/* DIGILEARN compact edition: its own indigo / violet identity. */
.gf-digilearn-feature{
  grid-template-columns: minmax(0,1.28fr) minmax(300px,.72fr);
  min-height: 310px;
  margin-bottom: clamp(2.5rem,4vw,3.5rem);
  border-color: rgba(174,145,255,.24);
  border-radius: 24px;
  background:
    radial-gradient(circle at 86% 16%,rgba(96,221,210,.16),transparent 30%),
    linear-gradient(135deg,#171426 0%,#262041 58%,#1b3d46 100%);
  box-shadow: 0 24px 70px rgba(27,20,55,.13);
}
.gf-digilearn-feature-copy{ padding: clamp(2rem,3.6vw,3.25rem); }
.gf-digilearn-mark{
  width: 35px;
  height: 35px;
  border-color: rgba(181,156,255,.34);
  background: rgba(171,145,255,.13);
  color: #b8a1ff;
}
.gf-digilearn-wordmark strong,
.gf-digilearn-modal-brand strong{ color: #71ddd3; }
.gf-digilearn-kicker{ margin-top: 1rem; color: #aa96f3 !important; }
.gf-digilearn-feature h2{ max-width: 670px; font-size: clamp(2rem,3.3vw,3.15rem); line-height: 1.02; }
.gf-digilearn-feature-copy > p:not(.gf-digilearn-kicker){ margin-top: 1rem; font-size: .88rem; line-height: 1.65; }
.gf-digilearn-feature-actions{ margin-top: 1.3rem; }
.gf-digilearn-button{ min-height: 43px; padding: .68rem 1rem; }
.gf-digilearn-button--primary{ color: #211b3d; }
.gf-digilearn-feature-actions > span i,
.gf-digilearn-node i{ color: #72dcd2; }
.gf-digilearn-orbit{ min-height: 310px; }
.gf-digilearn-orbit::before{ width: 255px; height: 255px; border-color: rgba(183,158,255,.19); }
.gf-digilearn-orbit::after{ width: 176px; height: 176px; border-color: rgba(99,219,209,.18); }
.gf-digilearn-core{
  width: 108px;
  height: 108px;
  border-color: rgba(177,151,255,.38);
  background: radial-gradient(circle at 35% 28%,rgba(174,147,255,.3),rgba(34,29,63,.96));
}
.gf-digilearn-core i{ color: #75ddd4; font-size: 1.25rem; }
.gf-digilearn-core span{ font-size: .61rem; }
.gf-digilearn-node{ padding: .52rem .68rem; border-color: rgba(184,159,255,.18); background: rgba(24,20,43,.75); font-size: .61rem; }

.gf-digilearn-modal .modal-dialog{ width: min(920px,calc(100% - 2rem)); max-width: 920px; }
.gf-digilearn-modal .modal-content{ max-height: 84vh; border-color: rgba(179,153,255,.25); border-radius: 24px; }
.gf-digilearn-modal-hero{
  padding: clamp(1.75rem,3.5vw,2.75rem);
  background:
    radial-gradient(circle at 88% 8%,rgba(94,221,211,.18),transparent 31%),
    linear-gradient(135deg,#171426 0%,#282143 62%,#1a3c46 100%);
}
.gf-digilearn-modal-hero h2{ max-width: 760px; font-size: clamp(1.9rem,3.6vw,3rem); line-height: 1.02; }
.gf-digilearn-modal-hero > p:not(.gf-digilearn-kicker){ max-width: 760px; margin-top: .9rem; font-size: .82rem; line-height: 1.58; }
.gf-digilearn-access-state{ margin-top: 1.05rem; }
.gf-digilearn-access-state i{ color: #73ddd4; }
.gf-digilearn-modal .modal-body{ padding: clamp(1.25rem,2.8vw,2rem); }
.gf-digilearn-modal-intro{ gap: 1.25rem; margin-bottom: 1.05rem; }
.gf-digilearn-capabilities article{ min-height: 205px; padding: 1.25rem; }
.gf-digilearn-capabilities article > span{ width: 38px; height: 38px; margin-bottom: .85rem; border-radius: 12px; background: #f0ecff; color: #6d55c8; }
.gf-digilearn-capabilities small{ color: #6853ba; }
.gf-digilearn-capabilities h3{ margin-top: .45rem; font-size: clamp(1.05rem,1.8vw,1.3rem); }
.gf-digilearn-capabilities p{ margin-top: .65rem; font-size: .71rem; line-height: 1.55; }
.gf-digilearn-modal-cta{ margin-top: 1rem; padding: 1rem 1.1rem; background: #1d1932; }
.gf-digilearn-modal-cta small{ color: #9e8ae6; }
.gf-digilearn-modal-cta a{ min-height: 40px; color: #211b3d; }

@media (max-width: 991.98px){
  .gf-digilearn-feature{ grid-template-columns: 1fr; }
  .gf-digilearn-orbit{ min-height: 250px; margin-top: -2.6rem; }
}
@media (max-width: 575.98px){
  .gf-digilearn-feature-copy{ padding: 1.5rem; }
  .gf-digilearn-feature h2{ font-size: clamp(1.85rem,9.5vw,2.4rem); }
  .gf-digilearn-orbit{ min-height: 230px; }
  .gf-digilearn-orbit::before{ width: 220px; height: 220px; }
  .gf-digilearn-orbit::after{ width: 150px; height: 150px; }
  .gf-digilearn-core{ width: 96px; height: 96px; }
  .gf-digilearn-modal .modal-content{ max-height: calc(100vh - 1rem); }
  .gf-digilearn-modal-hero{ padding: 2.8rem 1.15rem 1.45rem; }
  .gf-digilearn-modal-hero h2{ font-size: clamp(1.75rem,8.5vw,2.2rem); }
  .gf-digilearn-capabilities article{ min-height: 0; padding: 1.1rem; }
}

/* =========================================================
   PEOPLE MANIFESTO — one hero, no redundant page preface
   ========================================================= */
.gf-people-hero.gf-people-manifesto{
  display: flex;
  width: 100%;
  height: auto;
  min-height: clamp(440px,43vw,590px);
  align-items: center;
  padding: clamp(3.4rem,6vw,6rem) 0;
  background:
    radial-gradient(circle at 17% 48%,rgba(54,185,242,.18),transparent 24%),
    radial-gradient(circle at 86% 8%,rgba(75,160,224,.2),transparent 29%),
    linear-gradient(135deg,#061a2d 0%,#092943 57%,#0d3c5c 100%) !important;
}
.gf-people-manifesto > .gf-people-shell{ position: relative; z-index: 2; }
.gf-people-manifesto-grid{
  display: grid;
  grid-template-columns: minmax(230px,.55fr) minmax(0,1.45fr);
  gap: clamp(3.25rem,6vw,6.5rem);
  align-items: center;
}
.gf-people-manifesto-portrait{
  position: relative;
  width: min(100%,310px);
  aspect-ratio: 1;
  justify-self: center;
}
.gf-people-manifesto-portrait::before{
  position: absolute;
  inset: -24%;
  border-radius: 50%;
  background: radial-gradient(circle,rgba(73,186,239,.17),transparent 65%);
  content: '';
}
.gf-people-manifesto-orbit{
  position: absolute;
  inset: -10%;
  border: 1px solid rgba(114,207,248,.27);
  border-radius: 50%;
  animation: gf-people-orbit-breathe 8s ease-in-out infinite;
}
.gf-people-manifesto-orbit::before,
.gf-people-manifesto-orbit::after{
  position: absolute;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #6fd2fb;
  box-shadow: 0 0 24px rgba(111,210,251,.72);
  content: '';
}
.gf-people-manifesto-orbit::before{ top: 14%; right: 10%; }
.gf-people-manifesto-orbit::after{ bottom: 10%; left: 15%; width: 6px; height: 6px; }
.gf-people-manifesto-portrait img{
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  border: 7px solid rgba(255,255,255,.94);
  border-radius: 50%;
  object-fit: cover;
  box-shadow: 0 34px 80px rgba(0,0,0,.32),0 0 0 1px rgba(105,204,247,.22);
  animation: gf-people-portrait-float 7s ease-in-out infinite;
}
.gf-people-manifesto-copy{ max-width: 940px; }
.gf-people-manifesto-copy .gf-people-kicker{
  margin-bottom: 1.15rem;
  color: #73cff8;
  font-size: .7rem;
  font-weight: 550;
  letter-spacing: .19em;
}
.gf-people-manifesto-copy h1{
  max-width: 920px;
  margin: 0;
  color: #fff;
  font: 580 clamp(2.65rem,4.7vw,5rem)/.98 var(--gf-font);
  letter-spacing: -.06em;
  text-wrap: balance;
}
.gf-people-manifesto-copy > p:last-child{
  max-width: 900px;
  margin: clamp(1.25rem,2vw,1.8rem) 0 0;
  color: #bfd1dc;
  font-size: clamp(.92rem,1.05vw,1.04rem);
  line-height: 1.72;
}
.gf-people-manifesto-copy a{ color: #74d0f8; text-decoration-color: rgba(116,208,248,.45); }
.gf-people-manifesto-grid > *{ animation: gf-home-enter .8s cubic-bezier(.22,1,.36,1) both; }
.gf-people-manifesto-copy{ animation-delay: .08s; }
.gf-people-main{ padding-top: clamp(2rem,3vw,2.75rem); }

@keyframes gf-people-orbit-breathe{ 0%,100%{ transform: rotate(0) scale(.97); opacity: .7; } 50%{ transform: rotate(12deg) scale(1.035); opacity: 1; } }
@keyframes gf-people-portrait-float{ 0%,100%{ transform: translateY(0); } 50%{ transform: translateY(-7px); } }

@media (max-width: 991.98px){
  .gf-people-hero.gf-people-manifesto{ min-height: 0; }
  .gf-people-manifesto-grid{ grid-template-columns: 190px minmax(0,1fr); gap: 2.75rem; }
  .gf-people-manifesto-copy h1{ font-size: clamp(2.5rem,6vw,3.75rem); }
}
@media (max-width: 767.98px){
  .gf-people-hero.gf-people-manifesto{ padding: 3.3rem 0 3.8rem !important; }
  .gf-people-manifesto-grid{ grid-template-columns: 1fr; gap: 2rem; text-align: center; }
  .gf-people-manifesto-portrait{ width: min(52vw,190px); }
  .gf-people-manifesto-copy{ margin: 0 auto; }
  .gf-people-manifesto-copy .gf-people-kicker{ margin-bottom: .9rem; }
  .gf-people-manifesto-copy h1{ margin: 0 auto; font-size: clamp(2.25rem,10.5vw,3.15rem); }
  .gf-people-manifesto-copy > p:last-child{ margin-right: auto; margin-left: auto; font-size: .94rem; }
  .gf-people-main{ padding-top: 1.75rem; }
}
@media (prefers-reduced-motion: reduce){
  .gf-people-manifesto-orbit,
  .gf-people-manifesto-portrait img,
  .gf-people-manifesto-grid > *{ animation: none !important; }
}

/* DIGILEARN light edition — luminous, calm and distinct from page heroes. */
.gf-digilearn-feature{
  border-color: #cfe4ef;
  background:
    radial-gradient(circle at 84% 18%,rgba(89,202,231,.2),transparent 28%),
    radial-gradient(circle at 18% 90%,rgba(129,205,242,.12),transparent 30%),
    linear-gradient(135deg,#fbfdff 0%,#f1f9fc 58%,#eaf7f7 100%);
  box-shadow: 0 24px 70px rgba(30,103,140,.1);
  color: var(--gf-ink);
}
.gf-digilearn-feature::before,
.gf-digilearn-modal-hero::before{
  background-image:
    linear-gradient(rgba(41,129,170,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(41,129,170,.05) 1px,transparent 1px);
}
.gf-digilearn-wordmark,
.gf-digilearn-modal-brand{ color: #173247; }
.gf-digilearn-wordmark strong,
.gf-digilearn-modal-brand strong{ color: #159db2; }
.gf-digilearn-mark{
  border-color: #c4e5ec;
  background: #e8f7fa;
  color: #168eaa;
  box-shadow: 0 10px 26px rgba(34,142,170,.1);
}
.gf-digilearn-kicker{ color: #188bae !important; }
.gf-digilearn-feature h2{ color: #10283b; }
.gf-digilearn-feature-copy > p:not(.gf-digilearn-kicker){ color: #5d7382; }
.gf-digilearn-button--primary{ background: #12344d; color: #fff; box-shadow: 0 13px 30px rgba(15,58,84,.16); }
.gf-digilearn-button--primary:hover{ background: #087d9c; color: #fff; }
.gf-digilearn-feature-actions > span{ color: #657b88; }
.gf-digilearn-feature-actions > span i,
.gf-digilearn-node i{ color: #1395a9; }
.gf-digilearn-orbit::before{ border-color: rgba(69,161,197,.22); }
.gf-digilearn-orbit::after{ border-color: rgba(26,171,170,.22); }
.gf-digilearn-core{
  border-color: rgba(68,166,195,.3);
  background: radial-gradient(circle at 35% 28%,#fff,#e6f6f8 72%);
  box-shadow: 0 24px 58px rgba(28,111,144,.14),0 0 42px rgba(61,186,202,.1) inset;
  color: #173247;
}
.gf-digilearn-core i{ color: #159cad; }
.gf-digilearn-node{
  border-color: #d4e9ef;
  background: rgba(255,255,255,.88);
  box-shadow: 0 12px 30px rgba(31,98,128,.1);
  color: #3d5868;
}

.gf-digilearn-modal .modal-content{ border-color: #cfe4ed; }
.gf-digilearn-modal-hero{
  background:
    radial-gradient(circle at 88% 8%,rgba(80,196,222,.2),transparent 31%),
    linear-gradient(135deg,#fbfdff 0%,#f0f9fc 62%,#eaf7f5 100%);
  color: var(--gf-ink);
}
.gf-digilearn-modal-hero h2{ color: #10283b; }
.gf-digilearn-modal-hero > p:not(.gf-digilearn-kicker){ color: #5c7280; }
.gf-digilearn-modal-close{ border-color: #c9e0ea; background: rgba(255,255,255,.78); color: #173247; }
.gf-digilearn-modal-close:hover{ background: #fff; }
.gf-digilearn-access-state span{ border-color: #cfe4eb; background: rgba(255,255,255,.72); color: #466171; }
.gf-digilearn-access-state i{ color: #1494a8; }
.gf-digilearn-capabilities article > span{ background: #e9f7fa; color: #148aa5; }
.gf-digilearn-capabilities small{ color: #157e9c; }
.gf-digilearn-modal-cta{ background: linear-gradient(135deg,#eaf7fa,#f5fbfc); border: 1px solid #cfe5ec; }
.gf-digilearn-modal-cta small{ color: #1888a5; }
.gf-digilearn-modal-cta strong{ color: #45606f; }
.gf-digilearn-modal-cta a{ background: #12344d; color: #fff; }
.gf-digilearn-modal-cta a:hover{ background: #087d9c; color: #fff; }

/* Final layout integration: DIGILEARN belongs to Teaching's content rail. */
.gf-teaching-content .gf-digilearn-feature{
  grid-template-columns: minmax(0,1.18fr) minmax(270px,.82fr);
  min-height: 350px;
  margin-bottom: clamp(2.25rem,3.5vw,3.25rem);
  border-radius: 24px;
}
.gf-teaching-content .gf-digilearn-feature-copy{ padding: clamp(1.65rem,3vw,2.55rem); }
.gf-teaching-content .gf-digilearn-feature h2{ max-width: 590px; font-size: clamp(1.8rem,2.75vw,2.6rem); }
.gf-teaching-content .gf-digilearn-orbit{ min-height: 270px; }

/* People uses the same main rail + continuous keyword/share sidebar. */
.gf-people-main.gf-page-main{
  --gf-main-pad-bottom: clamp(4rem,6vw,6rem);
  padding-bottom: var(--gf-main-pad-bottom);
}
.gf-people-main > .gf-people-shell{ width: 100%; max-width: none; }
.gf-people-main > .gf-people-shell > .row{
  --bs-gutter-x: 3.5rem;
  margin-right: 0;
  margin-left: 0;
}
.gf-people-content{ min-width: 0; }
.gf-people-content .gf-people-index{ max-width: none; }

/* The People selector begins inside the manifesto hero, then remains on its own. */
.gf-people-content .gf-people-index{
  top: 112px;
  margin-top: -68px;
  margin-bottom: clamp(3rem,4vw,4rem);
}
.gf-people-content .gf-people-index::before{
  top: -9px;
  height: calc(100% + 18px);
  opacity: 0;
  transition: opacity .18s ease;
}
.gf-people-content .gf-people-index.is-stuck::before{ opacity: 1; }
.gf-people-content .gf-people-index > div{
  border-color: rgba(119,203,241,.24);
  background: rgba(5,31,50,.92);
  box-shadow: 0 18px 50px rgba(2,25,42,.22);
  backdrop-filter: blur(18px) saturate(125%);
}
.gf-people-content .gf-people-index a{ color: #bfd0db; }
.gf-people-content .gf-people-index-icon{ color: #7ebbd8; }
.gf-people-content .gf-people-index a:hover,
.gf-people-content .gf-people-index a:focus-visible{
  background: rgba(95,198,242,.14);
  color: #fff;
}
.gf-people-content .gf-people-index a:hover .gf-people-index-icon,
.gf-people-content .gf-people-index a:focus-visible .gf-people-index-icon{ color: #70d0fa; }

/* Contact becomes one uninterrupted, edge-to-edge product-like surface. */
.gf-page-content.gf-about-content > .card.gf-about-card--contacts{
  display: block !important;
  padding: 0 !important;
  gap: 0 !important;
  overflow: hidden !important;
  border: 1px solid #c9deea !important;
  border-radius: 28px !important;
  background: #fff !important;
  box-shadow: 0 28px 80px rgba(12,53,80,.12) !important;
}
.gf-page-content.gf-about-content > .card.gf-about-card--contacts > .card-body{
  width: 100%;
  margin: 0 !important;
  padding: 0 !important;
}
.gf-about-card--contacts .gf-contact-layout{ overflow: hidden; border-radius: 27px; }
.gf-about-card--contacts .gf-contact-story,
.gf-about-card--contacts .gf-contact-form-panel{ margin-top: 0 !important; margin-bottom: 0 !important; }

@media (max-width: 1199.98px) and (min-width: 992px){
  .gf-teaching-content .gf-digilearn-feature{ grid-template-columns: 1fr; }
  .gf-teaching-content .gf-digilearn-orbit{ min-height: 220px; margin-top: -2rem; }
}
@media (max-width: 991.98px){
  .gf-people-main > .gf-people-shell > .row{ --bs-gutter-x: 1.5rem; }
  .gf-teaching-content .gf-digilearn-feature{ grid-template-columns: 1fr; }
}
@media (max-width: 767.98px){
  .gf-people-content .gf-people-index{
    margin-top: -44px;
    margin-bottom: 2.75rem;
  }
  .gf-people-content .gf-people-index > div{ border-radius: 18px; }
}

/* Institutional mastheads share the same cinematic scale as People. */
.gf-page-hero.gf-page-showcase{
  display: flex;
  width: 100%;
  height: auto;
  min-height: clamp(440px,43vw,590px);
  align-items: center;
  padding: clamp(3.4rem,6vw,6rem) 0 !important;
}
.gf-page-showcase > .gf-people-shell{ position: relative; z-index: 2; }
.gf-page-showcase-grid{
  display: grid;
  grid-template-columns: minmax(230px,.55fr) minmax(0,1.45fr);
  gap: clamp(3.25rem,6vw,6.5rem);
  align-items: center;
}
.gf-page-showcase-visual{
  position: relative;
  display: grid;
  width: min(100%,300px);
  aspect-ratio: 1;
  place-items: center;
  justify-self: center;
}
.gf-page-showcase-visual::before{
  position: absolute;
  inset: -24%;
  border-radius: 50%;
  background: radial-gradient(circle,rgba(73,186,239,.17),transparent 65%);
  content: '';
}
.gf-page-showcase-orbit{
  position: absolute;
  inset: -10%;
  border: 1px solid rgba(114,207,248,.27);
  border-radius: 50%;
  animation: gf-people-orbit-breathe 8s ease-in-out infinite;
}
.gf-page-showcase-orbit::before,
.gf-page-showcase-orbit::after{
  position: absolute;
  border-radius: 50%;
  background: #6fd2fb;
  box-shadow: 0 0 24px rgba(111,210,251,.72);
  content: '';
}
.gf-page-showcase-orbit::before{ top: 14%; right: 10%; width: 9px; height: 9px; }
.gf-page-showcase-orbit::after{ bottom: 10%; left: 15%; width: 6px; height: 6px; }
.gf-page-showcase-symbol{
  position: relative;
  z-index: 1;
  display: grid;
  width: 58%;
  aspect-ratio: 1;
  place-items: center;
  border: 1px solid rgba(124,211,249,.3);
  border-radius: 32%;
  background: linear-gradient(145deg,rgba(255,255,255,.12),rgba(86,192,235,.06));
  box-shadow: 0 34px 80px rgba(0,0,0,.23),inset 0 1px rgba(255,255,255,.16);
  color: #7bd5fa;
  transform: rotate(-7deg);
  backdrop-filter: blur(12px);
  animation: gf-page-symbol-float 7s ease-in-out infinite;
}
.gf-page-showcase-symbol::before{
  position: absolute;
  inset: 11%;
  border: 1px solid rgba(124,211,249,.16);
  border-radius: 27%;
  content: '';
}
.gf-page-showcase-symbol i{ font-size: clamp(2.6rem,4.4vw,4.6rem); transform: rotate(7deg); }
.gf-page-showcase-visual--portrait img{
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  border: 7px solid rgba(255,255,255,.94);
  border-radius: 50%;
  object-fit: cover;
  box-shadow: 0 34px 80px rgba(0,0,0,.32),0 0 0 1px rgba(105,204,247,.22);
  animation: gf-people-portrait-float 7s ease-in-out infinite;
}
.gf-page-showcase-copy{ max-width: 940px; }
.gf-page-showcase-copy .gf-people-kicker{ margin-bottom: 1.15rem; color: #73cff8; font-size: .7rem; font-weight: 550; letter-spacing: .19em; }
.gf-page-showcase-copy h1{
  max-width: 920px;
  margin: 0;
  color: #fff;
  font: 580 clamp(2.65rem,4.7vw,5rem)/.98 var(--gf-font);
  letter-spacing: -.06em;
  text-wrap: balance;
}
.gf-page-showcase-copy > p:last-child{
  max-width: 900px;
  margin: clamp(1.25rem,2vw,1.8rem) 0 0;
  color: #bfd1dc;
  font-size: clamp(.98rem,1.12vw,1.1rem);
  line-height: 1.72;
}
.gf-page-showcase-grid > *{ animation: gf-home-enter .8s cubic-bezier(.22,1,.36,1) both; }
.gf-page-showcase-copy{ animation-delay: .08s; }
@keyframes gf-page-symbol-float{ 0%,100%{ transform: rotate(-7deg) translateY(0); } 50%{ transform: rotate(-4deg) translateY(-9px); } }

@media (max-width: 991.98px){
  .gf-page-hero.gf-page-showcase{ min-height: 0; }
  .gf-page-showcase-grid{ grid-template-columns: 190px minmax(0,1fr); gap: 2.75rem; }
  .gf-page-showcase-copy h1{ font-size: clamp(2.5rem,6vw,3.75rem); }
}
@media (max-width: 767.98px){
  .gf-page-hero.gf-page-showcase{ padding: 3.3rem 0 3.8rem !important; }
  .gf-page-showcase-grid{ grid-template-columns: 1fr; gap: 2rem; text-align: center; }
  .gf-page-showcase-visual{ width: min(46vw,175px); }
  .gf-page-showcase-copy{ margin: 0 auto; }
  .gf-page-showcase-copy .gf-people-kicker{ margin-bottom: .9rem; }
  .gf-page-showcase-copy h1{ margin: 0 auto; font-size: clamp(2.25rem,10.5vw,3.15rem); }
  .gf-page-showcase-copy > p:last-child{ margin-right: auto; margin-left: auto; font-size: .98rem; }
}
@media (prefers-reduced-motion: reduce){
  .gf-page-showcase-orbit,
  .gf-page-showcase-symbol,
  .gf-page-showcase-visual--portrait img,
  .gf-page-showcase-grid > *{ animation: none !important; }
}

/* Functional toolbars follow People: born in the hero, isolated while sticky. */
.gf-page-function-bar{
  position: sticky;
  top: 112px;
  z-index: 20;
  isolation: isolate;
  margin-top: -68px !important;
  margin-bottom: clamp(3rem,4vw,4rem) !important;
  padding: .72rem .82rem !important;
  border: 1px solid rgba(119,203,241,.24) !important;
  border-radius: 22px !important;
  background: rgba(5,31,50,.92) !important;
  box-shadow: 0 18px 50px rgba(2,25,42,.22) !important;
  color: #bfd0db;
  backdrop-filter: blur(18px) saturate(125%);
}
.gf-page-function-bar::before{
  position: absolute;
  z-index: 0;
  top: -9px;
  left: 50%;
  width: 100vw;
  height: calc(100% + 18px);
  background: #fff;
  opacity: 0;
  transform: translateX(-50%);
  transition: opacity .18s ease;
  content: '';
  pointer-events: none;
}
.gf-page-function-bar.is-stuck::before{ opacity: 1; box-shadow: 0 16px 28px rgba(25,66,91,.06); }
.gf-page-function-bar > *{ position: relative; z-index: 1; }
.gf-page-function-bar.gf-about-tools{ align-items: center; }
.gf-page-function-bar.gf-about-tools > label > span{ color: #9fc5d8; }
.gf-page-function-bar.gf-about-tools > div{ padding-right: .4rem; }
.gf-page-function-bar.gf-about-tools a,
.gf-page-function-bar.gf-about-tools button{ color: #c6d6df; }
.gf-page-function-bar.gf-about-tools a:hover,
.gf-page-function-bar.gf-about-tools button:hover{ color: #fff; }
.gf-page-function-bar.gf-about-tools i{ color: #6acdf7; }
.gf-page-function-bar.gf-about-tools select,
.gf-page-function-bar .gf-pub-search input,
.gf-page-function-bar .gf-pub-filter select{
  border-color: rgba(159,208,231,.3);
  background-color: rgba(255,255,255,.96);
}
.gf-page-function-bar .gf-pub-tools-meta{ margin: .6rem .2rem 0; padding: 0; border: 0; }
.gf-page-function-bar .gf-pub-tools-meta p,
.gf-page-function-bar .gf-pub-tools-meta p:first-child{ color: #bcd0dc; }
.gf-page-function-bar .gf-pub-filter > span{ color: #9fc5d8; }
.gf-page-function-bar .gf-pub-reset{ border-color: rgba(164,211,232,.28); background: rgba(255,255,255,.08); color: #d5e4ec; }
.gf-page-function-bar .gf-pub-reset:hover{ background: rgba(104,202,243,.16); color: #fff; }

@media (max-width: 767.98px){
  .gf-page-function-bar{
    position: relative;
    top: auto;
    margin-top: -44px !important;
    margin-bottom: 2.75rem !important;
    border-radius: 18px !important;
  }
  .gf-page-function-bar::before{ content: none; }
}

/* Precision pass: one shorter cinematic height, light controls in the page. */
:root{ --gf-cinematic-hero-height: clamp(390px,36.55vw,500px); }

@media (min-width: 768px){
  .gf-people-hero.gf-people-manifesto,
  .gf-page-hero.gf-page-showcase,
  .gf-blog-hero{
    box-sizing: border-box;
    height: var(--gf-cinematic-hero-height);
    min-height: var(--gf-cinematic-hero-height);
    max-height: 500px;
  }
  .gf-people-hero.gf-people-manifesto,
  .gf-page-hero.gf-page-showcase{ padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; }
  .gf-blog-hero{ display: flex; align-items: center; padding-top: 2.35rem; padding-bottom: 2.35rem; }
}

.gf-people-content .gf-people-index{
  margin-top: -90px !important;
  margin-bottom: clamp(3rem,4vw,4rem);
  transition: filter .22s ease;
}
.gf-people-content .gf-people-index > div{
  border-color: rgba(198,220,233,.95);
  background: rgba(255,255,255,.96);
  box-shadow: 0 13px 40px rgba(31,75,101,.1);
  backdrop-filter: blur(18px) saturate(125%);
}
.gf-people-content .gf-people-index a{ color: #3d4d5b; }
.gf-people-content .gf-people-index-icon{ color: #71808d; }
.gf-people-content .gf-people-index a:hover,
.gf-people-content .gf-people-index a:focus-visible{ background: var(--gf-ice-2); color: var(--gf-blue-deep); }
.gf-people-content .gf-people-index a:hover .gf-people-index-icon,
.gf-people-content .gf-people-index a:focus-visible .gf-people-index-icon{ color: var(--brand-accent); }
.gf-people-content .gf-people-index.is-stuck > div{
  border-color: rgba(166,211,234,.98);
  box-shadow: 0 18px 52px rgba(24,80,112,.16),0 1px 0 rgba(255,255,255,.9) inset;
}

.gf-page-function-bar{
  margin-top: -90px !important;
  border-color: rgba(198,220,233,.95) !important;
  background: rgba(255,255,255,.96) !important;
  box-shadow: 0 13px 40px rgba(31,75,101,.1) !important;
  color: #3d4d5b;
  transition: border-color .22s ease, box-shadow .22s ease, background-color .22s ease;
}
.gf-page-content > .gf-page-function-bar:first-child{ margin-top: -90px !important; }
.gf-page-function-bar.is-stuck{
  border-color: rgba(166,211,234,.98) !important;
  box-shadow: 0 18px 52px rgba(24,80,112,.16),0 1px 0 rgba(255,255,255,.9) inset !important;
}
.gf-page-function-bar.gf-about-tools > label > span,
.gf-page-function-bar .gf-pub-filter > span{ color: #617381; }
.gf-page-function-bar.gf-about-tools a,
.gf-page-function-bar.gf-about-tools button{ color: #536675; }
.gf-page-function-bar.gf-about-tools a:hover,
.gf-page-function-bar.gf-about-tools button:hover{ color: var(--gf-blue-deep); }
.gf-page-function-bar.gf-about-tools i{ color: var(--brand-accent); }
.gf-page-function-bar.gf-about-tools select,
.gf-page-function-bar .gf-pub-search input,
.gf-page-function-bar .gf-pub-filter select{
  border-color: #d8e6ed;
  background-color: #f8fbfd;
}
.gf-page-function-bar .gf-pub-tools-meta p,
.gf-page-function-bar .gf-pub-tools-meta p:first-child{ color: #657785; }
.gf-page-function-bar .gf-pub-reset{ border-color: transparent; background: var(--gf-ice-2); color: #526876; }
.gf-page-function-bar .gf-pub-reset:hover{ background: var(--gf-ice); color: var(--gf-blue-deep); }

@media (max-width: 767.98px){
  .gf-people-hero.gf-people-manifesto,
  .gf-page-hero.gf-page-showcase,
  .gf-blog-hero{ height: auto; max-height: none; min-height: 0; }
  .gf-people-content .gf-people-index,
  .gf-page-function-bar,
  .gf-page-content > .gf-page-function-bar:first-child{ margin-top: -36px !important; }
}

/* Commands live naked in the hero; only the sticky state becomes a light panel. */
.gf-people-content .gf-people-index:not(.is-stuck) > div{
  border-color: transparent;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
}
.gf-people-content .gf-people-index:not(.is-stuck) a{ color: #d3e1e9; }
.gf-people-content .gf-people-index:not(.is-stuck) .gf-people-index-icon{ color: #84c6e4; }
.gf-people-content .gf-people-index:not(.is-stuck) a:hover,
.gf-people-content .gf-people-index:not(.is-stuck) a:focus-visible{ background: rgba(255,255,255,.1); color: #fff; }
.gf-people-content .gf-people-index.is-stuck a{ color: #3d4d5b; }
.gf-people-content .gf-people-index.is-stuck .gf-people-index-icon{ color: #71808d; }

.gf-about-content > .gf-page-function-bar:first-child{ margin-top: -130px !important; }
.gf-publications-content > .gf-page-function-bar:first-child{ margin-top: -155px !important; }
.gf-page-function-bar:not(.is-stuck){
  border-color: transparent !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #d2e1e9;
  backdrop-filter: none;
}
.gf-page-function-bar:not(.is-stuck).gf-about-tools > label > span,
.gf-page-function-bar:not(.is-stuck) .gf-pub-filter > span,
.gf-page-function-bar:not(.is-stuck) .gf-pub-tools-meta p,
.gf-page-function-bar:not(.is-stuck) .gf-pub-tools-meta p:first-child{ color: #bdd1dc; }
.gf-page-function-bar:not(.is-stuck).gf-about-tools a,
.gf-page-function-bar:not(.is-stuck).gf-about-tools button{ color: #d6e4eb; }
.gf-page-function-bar:not(.is-stuck).gf-about-tools i{ color: #76d2fa; }
.gf-page-function-bar:not(.is-stuck).gf-about-tools select,
.gf-page-function-bar:not(.is-stuck) .gf-pub-search input,
.gf-page-function-bar:not(.is-stuck) .gf-pub-filter select{
  border-color: rgba(189,222,238,.22);
  background-color: rgba(255,255,255,.1);
  box-shadow: inset 0 1px rgba(255,255,255,.06);
  color: #f5fbfe;
  backdrop-filter: blur(12px);
}
.gf-page-function-bar:not(.is-stuck) .gf-pub-search input::placeholder{ color: #c2d3dc; }
.gf-page-function-bar:not(.is-stuck) .gf-pub-reset{ border-color: transparent; background: rgba(255,255,255,.09); color: #d9e7ed; }
.gf-page-function-bar:not(.is-stuck) .gf-pub-reset:hover{ background: rgba(255,255,255,.15); color: #fff; }

@media (max-width: 767.98px){
  .gf-about-content > .gf-page-function-bar:first-child,
  .gf-publications-content > .gf-page-function-bar:first-child{ margin-top: -54px !important; }
}

/* About is a single profile story: the old in-page identity card now lives in its hero. */
.gf-about-content > .card:first-of-type{ display: none !important; }
.gf-page-showcase--about .gf-page-showcase-grid{
  grid-template-columns: minmax(220px,.48fr) minmax(0,1.52fr);
  gap: clamp(2.5rem,4.4vw,5rem);
}
.gf-page-showcase--about .gf-page-showcase-visual{ width: min(100%,260px); }
.gf-page-showcase--about .gf-page-showcase-copy .gf-people-kicker{ margin-bottom: .68rem; }
.gf-page-showcase--about .gf-page-showcase-copy h1{
  font-size: clamp(2.45rem,3.75vw,4rem);
  letter-spacing: -.052em;
}
.gf-page-showcase-profile{ margin-top: .85rem; }
.gf-page-showcase-role,
.gf-page-showcase-affiliation,
.gf-page-showcase-bio{ margin: 0; }
.gf-page-showcase-role{
  color: #f2f8fb;
  font-size: clamp(.96rem,1.15vw,1.12rem);
  font-weight: 560;
  line-height: 1.45;
}
.gf-page-showcase-affiliation{
  margin-top: .18rem;
  color: #b9cdd9;
  font-size: clamp(.92rem,1.02vw,1.03rem);
  line-height: 1.5;
}
.gf-page-showcase-affiliation a{ color: #6fd0fb; text-decoration: none; }
.gf-page-showcase-affiliation a:hover,
.gf-page-showcase-affiliation a:focus-visible{ color: #fff; }
.gf-page-showcase-bio{
  max-width: 940px;
  margin-top: .65rem;
  color: #b9cbd6;
  font-size: clamp(.87rem,.96vw,.98rem);
  line-height: 1.58;
}
.gf-page-showcase-bio strong{ color: #dce9ef; font-weight: 600; }
.gf-page-showcase-links{
  display: flex;
  flex-wrap: wrap;
  gap: .38rem .95rem;
  margin-top: .75rem;
}
.gf-page-showcase-links a{
  display: inline-flex;
  align-items: center;
  gap: .42rem;
  min-height: 30px;
  padding: 0;
  color: #d4e3eb;
  font-size: .78rem;
  font-weight: 540;
  text-decoration: none;
  transition: color .18s ease,transform .18s ease;
}
.gf-page-showcase-links a i{ color: #6fd0fb; font-size: .82rem; }
.gf-page-showcase-links a:hover,
.gf-page-showcase-links a:focus-visible{ color: #fff; transform: translateY(-1px); }

@media (max-width: 991.98px){
  .gf-page-showcase--about .gf-page-showcase-grid{ grid-template-columns: 175px minmax(0,1fr); gap: 2.25rem; }
  .gf-page-showcase--about .gf-page-showcase-visual{ width: 175px; }
  .gf-page-showcase--about .gf-page-showcase-bio{ line-height: 1.48; }
}
@media (max-width: 767.98px){
  .gf-page-showcase--about .gf-page-showcase-grid{ grid-template-columns: 1fr; gap: 1.55rem; }
  .gf-page-showcase--about .gf-page-showcase-copy{ text-align: center; }
  .gf-page-showcase--about .gf-page-showcase-visual{ width: min(42vw,160px); }
  .gf-page-showcase--about .gf-page-showcase-copy h1{ font-size: clamp(2.15rem,9.7vw,3rem); }
  .gf-page-showcase-links{ justify-content: center; gap: .3rem .85rem; }
}

/* One page menu language: naked in the hero, centred as a light second header. */
.gf-page-command-dock{
  position: fixed;
  z-index: 1025;
  top: var(--gf-page-command-top,112px);
  left: 50%;
  isolation: isolate;
  width: min(calc(100% - var(--gf-frame-gutter) - var(--gf-frame-gutter)),var(--gf-frame-max));
  max-width: var(--gf-frame-max);
  padding: .52rem 0;
  opacity: 0;
  visibility: hidden;
  transform: translate(-50%,-10px);
  transition: opacity .18s ease,transform .24s cubic-bezier(.22,1,.36,1),visibility 0s linear .24s;
  pointer-events: none;
}
.gf-page-command-dock::before{
  position: absolute;
  z-index: -1;
  top: -8px;
  left: 50%;
  width: 100vw;
  height: calc(100% + 16px);
  border-bottom: 1px solid rgba(190,214,228,.66);
  background: rgba(255,255,255,.96);
  box-shadow: 0 16px 30px rgba(24,69,95,.08);
  transform: translateX(-50%);
  content: '';
  backdrop-filter: blur(20px) saturate(140%);
  -webkit-backdrop-filter: blur(20px) saturate(140%);
}
.gf-page-command-dock.is-visible{
  opacity: 1;
  visibility: visible;
  transform: translate(-50%,0);
  transition-delay: 0s;
  pointer-events: auto;
}
.gf-page-command-dock-inner{
  display: flex;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  gap: clamp(.3rem,1vw,1.05rem);
}
.gf-page-command-dock a{
  display: inline-flex;
  min-height: 38px;
  align-items: center;
  justify-content: center;
  gap: .48rem;
  padding: .38rem .7rem;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: #425563;
  font-family: var(--gf-font);
  font-size: .84rem;
  font-weight: 520;
  line-height: 1;
  text-decoration: none;
  transition: color .18s ease,background-color .18s ease,transform .18s ease;
}
.gf-page-command-dock a i{ color: #6c808e; font-size: .88rem; }
.gf-page-command-dock a:hover,
.gf-page-command-dock a:focus-visible{
  background: var(--gf-ice-2);
  color: var(--gf-blue-deep);
  outline: 0;
  transform: translateY(-1px);
}
.gf-page-command-dock a:hover i,
.gf-page-command-dock a:focus-visible i{ color: var(--brand-accent); }

@media (min-width: 768px){
  .gf-people-main > .gf-people-shell > .gf-people-index,
  .gf-publications-page > .gf-page-function-bar{
    box-sizing: border-box;
    width: var(--gf-command-frame-width);
    max-width: none;
    margin-right: 0 !important;
    margin-left: 0 !important;
  }
  .gf-people-main > .gf-people-shell > .gf-people-index > div{ justify-content: center; }
  .gf-publications-page > .gf-page-function-bar .gf-pub-tools-grid,
  .gf-publications-page > .gf-page-function-bar .gf-pub-tools-meta{
    width: min(100%,1180px);
    margin-right: auto;
    margin-left: auto;
  }
  .gf-people-main > .gf-people-shell > .gf-people-index.is-stuck > div{
    justify-content: center;
    border-color: transparent;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
  }
  .gf-people-main > .gf-people-shell > .gf-people-index.is-stuck::before{
    border-bottom: 1px solid rgba(190,214,228,.66);
    background: rgba(255,255,255,.96);
    box-shadow: 0 16px 30px rgba(24,69,95,.08);
    backdrop-filter: blur(20px) saturate(140%);
    -webkit-backdrop-filter: blur(20px) saturate(140%);
  }
  .gf-publications-page > .gf-page-function-bar.is-stuck{
    padding-right: 0 !important;
    padding-left: 0 !important;
    border-color: transparent !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none;
  }
  .gf-publications-page > .gf-page-function-bar.is-stuck::before{
    border-bottom: 1px solid rgba(190,214,228,.66);
    background: rgba(255,255,255,.96);
    box-shadow: 0 16px 30px rgba(24,69,95,.08);
    backdrop-filter: blur(20px) saturate(140%);
    -webkit-backdrop-filter: blur(20px) saturate(140%);
  }
  .gf-people-main .gf-keywords > .sticky{ top: calc(var(--gf-command-top) + 72px); }
  .gf-publications-page .gf-keywords > .sticky{ top: calc(var(--gf-command-top) + 132px); }
}

.gf-people-main > .gf-people-shell > .gf-people-index{
  margin-top: -90px !important;
  margin-bottom: clamp(3rem,4vw,4rem);
}
.gf-people-main > .gf-people-shell > .gf-people-index:not(.is-stuck) > div{
  border-color: transparent;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
}
.gf-people-main > .gf-people-shell > .gf-people-index:not(.is-stuck) a{ color: #d3e1e9; }
.gf-people-main > .gf-people-shell > .gf-people-index:not(.is-stuck) .gf-people-index-icon{ color: #84c6e4; }
.gf-people-main > .gf-people-shell > .gf-people-index:not(.is-stuck) a:hover,
.gf-people-main > .gf-people-shell > .gf-people-index:not(.is-stuck) a:focus-visible{ background: rgba(255,255,255,.1); color: #fff; }
.gf-people-main > .gf-people-shell > .gf-people-index.is-stuck a{ color: #3d4d5b; }
.gf-people-main > .gf-people-shell > .gf-people-index.is-stuck .gf-people-index-icon{ color: #71808d; }

.gf-publications-page > .gf-page-function-bar{
  width: 100%;
  margin-top: -155px !important;
}

@media (max-width: 767.98px){
  .gf-page-command-dock{ display: none; }
  .gf-people-main > .gf-people-shell > .gf-people-index{
    margin-top: -36px !important;
    margin-bottom: 2.75rem;
  }
  .gf-publications-page > .gf-page-function-bar{
    margin-top: -54px !important;
  }
}

@media (prefers-reduced-motion: reduce){
  .gf-page-command-dock{ transition: none; }
}

/* =========================================================
   FINAL GLOBAL FRAME — identical left/right optical margins
   Header, heroes, page rails, sticky controls, home and footer
   all resolve against the same frame and never inherit Bootstrap
   container padding.
   ========================================================= */
.gf-home-stage.container-fluid{
  --bs-gutter-x: 0;
  padding-right: 0 !important;
  padding-left: 0 !important;
}

.gf-navbar-shell,
.gf-home-stage > .container,
.gf-page-main,
.gf-people-shell,
.gf-blog-hero-inner,
.site-footer > .container{
  box-sizing: border-box;
  width: min(calc(100% - var(--gf-frame-gutter) - var(--gf-frame-gutter)), var(--gf-frame-max)) !important;
  max-width: var(--gf-frame-max) !important;
  margin-right: auto !important;
  margin-left: auto !important;
}

.gf-navbar-shell,
.gf-home-stage > .container,
.gf-page-main.container,
.gf-people-shell,
.gf-blog-hero-inner,
.site-footer > .container{
  padding-right: 0 !important;
  padding-left: 0 !important;
}

.gf-page-main > .container{
  width: 100%;
  max-width: none;
  margin-right: 0;
  margin-left: 0;
  padding-right: 0;
  padding-left: 0;
}

/* A shell nested inside the already framed People main must not
   subtract the global gutter a second time. */
.gf-people-main > .gf-people-shell{
  width: 100% !important;
  max-width: none !important;
  margin-right: 0 !important;
  margin-left: 0 !important;
  padding-right: 0 !important;
  padding-left: 0 !important;
}

.gf-people-main > .gf-people-shell > .gf-people-index,
.gf-publications-page > .gf-page-function-bar{
  width: 100% !important;
  max-width: none !important;
}

/* Long DOI/URL strings must stay inside the same global frame on mobile. */
.gf-page-content{
  min-width: 0;
}

.gf-page-content a{
  overflow-wrap: anywhere;
}
