/* SOTA Lab redesign (Direction 2: clean grid + subtle geometry)
   Loaded AFTER Next/tailwind chunk css to override where needed.
*/

:root{
  --sota-ink:#0f172a;      /* slate-900 */
  --sota-ink-2:#334155;    /* slate-700 */
  --sota-muted:#64748b;    /* slate-500 */
  --sota-line:rgba(15,23,42,.10);
  --sota-soft:rgba(15,23,42,.04);
  --sota-accent:#0b3b8f;   /* deep blue (more "research" than "startup") */
  --sota-accent-2:#2563eb; /* hover */
}

html,body{background:#fff; color:var(--sota-ink);}

/* Nav: replace the "blue" hover vibe with a calmer academic slate/blue */
.hover\:text-blue-600:hover{color:var(--sota-accent) !important;}
.text-blue-700{color:var(--sota-accent) !important;}
.hover\:text-blue-800:hover{color:var(--sota-accent-2) !important;}
.bg-sky-200\/70{background:rgba(186,230,253,.55) !important;}

.sota-accent{
  color: var(--sota-accent);
  transition: color .2s ease;
}
.sota-accent:hover{
  color: var(--sota-accent-2);
}

/* Hero background: subtle geometric mesh */
.pnu-hero{
  position:relative;
  overflow:hidden;
  isolation:isolate;  
}
.pnu-hero-bg{
  position:absolute;
  inset:0;
  z-index:-1;        
  pointer-events:none;
}
/* geometric pattern overlay 
.pnu-hero-bg::before{
  content:"";
  position:absolute; inset:-2px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240' viewBox='0 0 240 240'%3E%3Cg fill='none' stroke='rgba(15,23,42,0.10)' stroke-width='1'%3E%3Cpath d='M20 40L120 0l100 40-100 40z'/%3E%3Cpath d='M20 120l100-40 100 40-100 40z'/%3E%3Cpath d='M20 200l100-40 100 40-100 40z'/%3E%3Cpath d='M-30 80l100-40 100 40-100 40z'/%3E%3Cpath d='M-30 160l100-40 100 40-100 40z'/%3E%3Cpath d='M70 80l100-40 100 40-100 40z'/%3E%3Cpath d='M70 160l100-40 100 40-100 40z'/%3E%3C/g%3E%3C/svg%3E");
  background-size:240px 240px;
  opacity:.35;
  transform:skewY(-2deg);
}
  */
/*삼각 메쉬 + 노드 점 + 얇은 라인*/
.pnu-hero-bg::before{
  content:"";
  position:absolute;
  inset:-2px;
  z-index: 0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='520' height='320' viewBox='0 0 520 320'%3E%3Cg fill='none' stroke='rgba(15,23,42,0.18)' stroke-width='1.8'%3E%3Cpath d='M10 70 L140 20 L250 80 L140 140 Z'/%3E%3Cpath d='M140 140 L250 80 L380 150 L260 220 Z'/%3E%3Cpath d='M250 80 L420 40 L510 120 L380 150 Z'/%3E%3Cpath d='M10 190 L140 140 L260 220 L120 290 Z'/%3E%3Cpath d='M260 220 L380 150 L510 240 L360 300 Z'/%3E%3Cpath d='M140 20 L300 10 L420 40'/%3E%3Cpath d='M120 290 L260 220 L360 300'/%3E%3C/g%3E%3Cg fill='rgba(15,23,42,0.22)'%3E%3Ccircle cx='140' cy='20' r='2.4'/%3E%3Ccircle cx='250' cy='80' r='2'/%3E%3Ccircle cx='380' cy='150' r='2'/%3E%3Ccircle cx='140' cy='140' r='2'/%3E%3Ccircle cx='260' cy='220' r='2'/%3E%3Ccircle cx='420' cy='40' r='2'/%3E%3Ccircle cx='510' cy='120' r='2'/%3E%3Ccircle cx='10' cy='70' r='2'/%3E%3Ccircle cx='10' cy='190' r='2'/%3E%3Ccircle cx='120' cy='290' r='2'/%3E%3Ccircle cx='360' cy='300' r='2'/%3E%3Ccircle cx='510' cy='240' r='2'/%3E%3C/g%3E%3C/svg%3E");
  background-size:520px 320px;
  background-repeat:repeat;
  opacity:.80;
  transform:skewY(-2deg);
  pointer-events:none;
}

.pnu-hero-bg::after{
  content:"";
  position:absolute;
  inset:0;
  z-index: 1;
  background:linear-gradient(180deg, rgba(255,255,255,.55), rgba(255,255,255,.72) 45%, rgba(255,255,255,86));
  pointer-events:none;
}

.pnu-hero > :not(.pnu-hero-bg){ position:relative; z-index:2; }

/* Button look (works even if elements keep tailwind classes) */
.pnu-btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:.75rem 1.05rem;
  border-radius:999px;
  font-weight:600;
  letter-spacing:-0.01em;
  border:1px solid var(--sota-line);
  background:rgba(255,255,255,.85);
  color:var(--sota-ink);
  box-shadow:0 10px 24px rgba(15,23,42,.08);
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease, color .15s ease;
}
.pnu-btn:hover{transform:translateY(-1px); box-shadow:0 16px 34px rgba(15,23,42,.10); border-color:rgba(15,23,42,.18);}
.pnu-btn-primary{background:var(--sota-ink); color:#fff; border-color:rgba(15,23,42,.9);}
.pnu-btn-primary:hover{color:#fff;}

/* Section titles: calmer underline */
.pnu-section-title{position:relative; display:inline-block; padding:0 .35rem;}
.pnu-section-title::after{
  content:"";
  position:absolute; left:.15rem; right:.15rem; bottom:.18em;
  height:.55em;
  background:rgba(37,99,235,.12);
  border-radius:.25rem;
  z-index:-1;
}

/* Card polish */
.pnu-card{
  border:1px solid var(--sota-line);
  border-radius:18px;
  background:#fff;
  box-shadow:0 12px 28px rgba(15,23,42,.06);
}
.pnu-card:hover{box-shadow:0 16px 38px rgba(15,23,42,.08);}

/* Footer neutral */
footer{background:#f8fafc !important;}

/* --- Hero photo stack (wide-short x3, vertical, stylish) --- */
/*가로로 길고 세로로 짧은 사진 세로로 정렬
.pnu-photo-stack{
  display:flex;
  flex-direction:column;
  gap:14px;
  margin-top:2px;
}
  
.pnu-photo{
  border:1px solid var(--sota-line);
  border-radius:18px;
  background:#fff;
  overflow:hidden;   //확대 시 바깥으로 안 삐져나오게
  position:relative;
  box-shadow:0 12px 28px rgba(15,23,42,.08);
  height:clamp(150px, 18vw, 220px);  wide + short 
}
*/

.pnu-photo-row{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:24px;
  margin-top:12px;
  /* 아이템 개수에 맞춰 컬럼 수가 자동으로 줄어듦 */
  grid-template-columns: repeat(auto-fit, minmax(220px, 260px));
  /* 남는 공간은 가운데로 모음 */
  justify-content:center;
  justify-items:center;
}

.pnu-photo{
  position:relative;
  border-radius:18px;
  overflow:hidden;
  border:1px solid var(--sota-line);
  background:#fff;
  aspect-ratio: 3 / 4;   /* 세로로 긴 형태 */
  box-shadow:0 14px 32px rgba(15,23,42,.08);
  transition:box-shadow .3s ease;
}

.pnu-photo img{
  display:block;  /* 이미지 아래 여백 제거 */
  width:100%;
  height:100%;
  object-fit:cover;
  transform:scale(1.01);
  transform-origin:center;
  transition:transform .35s ease;
  will-change:transform;
}

.pnu-photo::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(255,255,255,0) 55%, rgba(15,23,42,.08));
  pointer-events:none;
}

.pnu-photo:hover img{ transform:scale(1.06); }
.pnu-photo:hover{ box-shadow:0 20px 48px rgba(15,23,42,.12); }

/*조건부 css(이 조건을 만족할 때만 아래 스타일을 적용해라)
min-witdh : 화면이 1024px일 때만 적용
max-width : 화면이 900px 이하일 때만 적용*/
@media (min-width: 1024px){
  /* subtle offsets for a more editorial layout */
  .pnu-photo-row:has(.pnu-photo:nth-child(3)) .pnu-photo-2{
    transform:translateX(16px);
  }
  .pnu-photo-row:has(.pnu-photo:nth-child(3)) .pnu-photo-3{
    transform:translateX(32px);
  }
}

/* --- Footer: new, non-original, editorial grid --- */
.pnu-footer{
  border-top:1px solid var(--sota-line);
  background:
    linear-gradient(#ffffff, #f8fafc);
  position:relative;
}

.pnu-footer::before{
  content:"";
  position:absolute;
  left:0; right:0; top:0;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(15,23,42,.18), transparent);
}

/*footer를 더 고급스럽게*/
.pnu-footer-inner{
  padding:34px 0 22px;
  padding-left:clamp(28px, 5vw, 60px);
  padding-right:clamp(28px, 5vw, 60px);
}

/*가로 배열의 footer
.pnu-footer-inner{ padding:34px 0 22px; }
*/

.pnu-footer-grid{
  display:grid;
  grid-template-columns: 1.4fr .8fr 1fr;
  gap:26px;
  align-items:start;
}

/*왼쪽 여백 추가
.pnu-footer-brand{
  padding-left:24px;   
}*/
/*더 넓게 띄우고 싶으면
padding-left:clamp(24px, 4vw, 48px);
*/

.pnu-footer-title{
  font-size:18px;
  font-weight:750;
  letter-spacing:-0.02em;
  color:var(--sota-ink);
}

.pnu-footer-desc{
  margin-top:10px;
  color:var(--sota-muted);
  line-height:1.6;
  max-width:46ch;
}

.pnu-footer-head{
  font-size:12px;
  font-weight:750;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(15,23,42,.70);
  margin-bottom:10px;
}

.pnu-footer-links a{
  display:block;
  padding:6px 0;
  color:rgba(15,23,42,.72);
  text-decoration:none;
  transition:color .15s ease, transform .15s ease;
}

.pnu-footer-links a:hover{
  color:var(--sota-accent);
  transform:translateX(2px);
}

.pnu-footer-meta{
  color:rgba(15,23,42,.60);
  line-height:1.6;
  margin-bottom:6px;
}

.pnu-footer-mail{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--sota-accent);
  text-decoration:none;
  font-weight:650;
}

.pnu-footer-mail:hover{ color:var(--sota-accent-2); }

/*글씨 중앙 정렬*/
.pnu-footer-bottom{
  margin-top:22px;
  padding-top:16px;
  border-top:1px solid rgba(15,23,42,.08);

  display:flex;
  flex-wrap:wrap;
  gap:10px;

  justify-content:center;   /* 🔥 변경 */
  text-align:center;        /* 🔥 추가 */

  color:rgba(15,23,42,.55);
  font-size:13px;
}

/*글씨 좌우 양 끝
.pnu-footer-bottom{
  margin-top:22px;
  padding-top:16px;
  border-top:1px solid rgba(15,23,42,.08);
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:space-between;
  color:rgba(15,23,42,.55);
  font-size:13px;
}
*/

.pnu-footer-sep{
  opacity:.45;
  margin:0 8px;
  font-weight:400;
  user-select:none;
}

@media (max-width: 900px){
  .pnu-footer-grid{ grid-template-columns:1fr; }
  .pnu-footer-bottom{ justify-content:flex-start; }
}

/* ============ Mobile Menu (glass dropdown, new style) ============ */
.pnu-mobile-backdrop{
  position:fixed;
  inset:0;
  background:rgba(2,6,23,.35);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  z-index:60;
  opacity:0;
  transition: opacity .22s ease;
}

/*네비게이트 창이 화면에 꽉차게
.pnu-mobile-sheet{
  position:fixed;
  left:12px;
  right:12px;
  top:72px;  헤더 h-16 기준(64px) + 여유 
  z-index:70;

  transform: translateY(-10px) scale(.98);
  opacity:0;
  pointer-events:none;
  transition: transform .22s ease, opacity .22s ease;
}
*/
.pnu-mobile-sheet{
  position:fixed;
  right: 16px;
  left:auto;
  transform: translateY(-10px) scale(.98);
  width:min(260px, 70vw);   
  top:72px;
  z-index:70;
  opacity:0;
  pointer-events:none;
  transition: transform .22s ease, opacity .22s ease;
}

@media (min-width: 768px){
  .pnu-mobile-sheet{ top:92px; } /* md:h-20(80px)일 때 여유 */
}
@media (min-width: 1024px){
  .pnu-mobile-sheet{ top:104px; } /* lg:h-24(96px)일 때 여유 */
}

.pnu-mobile-sheet-inner{
  border-radius:18px;
  border:1px solid rgba(15,23,42,.12);
  background:rgba(255,255,255,.75);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(14px);
  box-shadow: 0 18px 50px rgba(2,6,23,.18);
  overflow:hidden;
}

.pnu-mobile-sheet-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:14px 14px 10px;
  border-bottom:1px solid rgba(15,23,42,.08);
}

.pnu-mobile-sheet-title{
  font-weight:750;
  letter-spacing:-0.02em;
  color:#0f172a;
}

.pnu-mobile-close{
  width:38px;
  height:38px;
  border-radius:12px;
  border:1px solid rgba(15,23,42,.10);
  background:rgba(255,255,255,.75);
  cursor:pointer;
}

.pnu-mobile-links{
  display:grid;
  gap:10px;
  padding:12px 14px 14px;
}

.pnu-mobile-link{
  display:flex;
  align-items:center;
  /*글자가 양쪽 끝으로 벌어짐
  justify-content:space-between;*/
  justify-content:center;
  text-align:center;

  padding:12px 14px;
  border-radius:14px;
  text-decoration:none;

  color: rgba(15,23,42,.86);
  background: linear-gradient(180deg, #ffffff, #f8fafc);
  border: 1px solid rgba(15,23,42,.08);
  box-shadow:
    0 6px 16px rgba(2,6,23,.08),
    inset 0 1px 0 rgba(255,255,255,.9);
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

/* 오른쪽 화살표 표시
.pnu-mobile-link::after{
  content:"→";
  opacity:.55;
}*/
.pnu-mobile-link::after{
  content:"";
}

.pnu-mobile-link:hover{
  transform: translateY(-2px);
  box-shadow:
    0 14px 28px rgba(2,6,23,.14),
    inset 0 1px 0 rgba(255,255,255,1);
  border-color: rgba(15,23,42,.14);
}

html.pnu-mobile-open .pnu-mobile-backdrop{ opacity:1; }
html.pnu-mobile-open .pnu-mobile-sheet{
  transform: translateY(0) scale(1);
  opacity:1;
  pointer-events:auto;
}

/* Desktop에서는 모바일 메뉴 요소 숨김 */
@media (min-width: 768px){
  #mobileMenuBackdrop,
  #mobileMenuSheet{ display:none !important; }
}

/* =========================
   Header redesign (Floating Pill + Segmented Nav)
   ========================= */

.pnu-header{
  position:fixed;
  top:14px;
  left:0;
  right:0;
  z-index:50;
  pointer-events:auto;
}

.pnu-nav::before { pointer-events: none; }

.pnu-nav{
  pointer-events:auto;

  max-width: 1200px;
  margin: 0 auto;
  padding: 10px 12px;

  display:grid;
  grid-template-columns: 1fr auto; /* 왼쪽: 남는공간 / 오른쪽: 메뉴 */
  align-items:center;
  gap:12px;

  border-radius: 999px;
  border: 1px solid rgba(15,23,42,.10);
  background: rgba(255,255,255,.72);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);

  box-shadow:
    0 18px 50px rgba(2,6,23,.12),
    inset 0 1px 0 rgba(255,255,255,.9);

  position:relative;
}

/* subtle top accent line (not like original) */
.pnu-nav::before{
  content:"";
  position:absolute;
  left:18px; right:18px; top:6px;
  height:2px;
  border-radius:999px;
  background: linear-gradient(90deg,
    rgba(99,102,241,.0),
    rgba(99,102,241,.35),
    rgba(16,185,129,.25),
    rgba(99,102,241,.0)
  );
  opacity:.85;
  pointer-events:none;
}

/* brand */
.pnu-brand{
  display:flex;
  align-items:center;
  gap:10px;
  text-decoration:none;
  color: rgba(15,23,42,.92);
  padding: 8px 10px;
  border-radius: 999px;
  transition: transform .15s ease, background .15s ease;
  flex: 0 0 clamp(200px, 22vw, 280px);
  justify-content: center;
  justify-self:center; 
}

.pnu-brand:hover{
  background: rgba(255,255,255,.6);
  transform: translateY(-1px);
}

.pnu-brand-mark{
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  border-radius: 10px;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: rgba(15,23,42,.92);
  background: linear-gradient(180deg, #ffffff, #f1f5f9);
  border: 1px solid rgba(15,23,42,.10);
  box-shadow: 0 8px 18px rgba(2,6,23,.08);
}

.pnu-brand-text{
  font-weight: 750;
  letter-spacing: -0.02em;
  font-size: 16px;
}

/* segmented nav */
.pnu-nav-links{
  list-style:none;
  display:flex;
  align-items:center;
  gap:6px;
  margin:0;
  padding:6px;
  border-radius: 999px;
  border: 1px solid rgba(15,23,42,.08);
  background: rgba(255,255,255,.55);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
}

.pnu-nav-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 9px 12px;
  border-radius: 999px;
  text-decoration:none;
  font-weight: 650;
  color: rgba(15,23,42,.74);
  transition: background .15s ease, transform .15s ease, color .15s ease;
}

.pnu-nav-link:hover{
  background: rgba(255,255,255,.70);
  color: rgba(15,23,42,.92);
  transform: translateY(-1px);
}

/* CTA as a clean solid chip (still unified) */
.pnu-nav-link-cta{
  background: linear-gradient(180deg, rgba(15,23,42,.92), rgba(15,23,42,.86));
  color: rgba(255,255,255,.92);
  box-shadow: 0 10px 22px rgba(2,6,23,.18);
}
.pnu-nav-link-cta:hover{
  background: linear-gradient(180deg, rgba(15,23,42,.98), rgba(15,23,42,.86));
  color:#fff;
}

/* mobile burger */
.pnu-burger{
  width:44px;
  height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;

  border-radius: 999px;
  border: 1px solid rgba(15,23,42,.10);
  background: rgba(255,255,255,.65);
  color: rgba(15,23,42,.86);
  box-shadow: 0 10px 22px rgba(2,6,23,.10), inset 0 1px 0 rgba(255,255,255,.8);

  transition: transform .15s ease, background .15s ease;
}
.pnu-burger:hover{
  transform: translateY(-1px);
  background: rgba(255,255,255,.78);
}

/* responsive: hide segmented nav on small, show burger */
@media (max-width: 767px){
  .pnu-nav{ margin: 0 12px; grid-template-columns: 1fr auto;}
  .pnu-nav-links{ display:none; }
  .pnu-brand{
    justify-self: center; /* 모바일은 다시 자연스럽게 */
  }
}

/* on desktop hide burger */
@media (min-width: 768px){
  .pnu-burger{ display:none; }
}

/* prevent hero content from hiding behind fixed header */
body{ padding-top: 96px; }
@media (max-width: 767px){
  body{ padding-top: 86px; }
}

/* Sponsor marquee */
@keyframes pnu-sponsor-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* 움직일 대상 */
.animate-sponsor-scroll{
  display: flex;
  width: max-content;         /* 내용 길이만큼 */
  animation: pnu-sponsor-scroll 60s linear infinite;
  will-change: transform;
}

/* 사용자가 모션 줄이기 설정한 경우 배려 */
@media (prefers-reduced-motion: reduce){
  .animate-sponsor-scroll{ animation: none !important; }
}

/* Publications UI (SOTA / systems vibe) */
.pnu-chip{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  padding:.45rem .8rem;
  border-radius:999px;
  border:1px solid rgba(15,23,42,.12);
  background: rgba(255,255,255,.65);
  backdrop-filter: blur(8px);
  font-size:.875rem;
  font-weight:600;
  color:#0b1220;
  box-shadow: 0 10px 30px rgba(15,23,42,.06);
}

.pnu-year-block{
  display:grid;
  grid-template-columns: 180px 1fr;
  gap:24px;
  align-items:start;
}
@media (max-width: 900px){
  .pnu-year-block{ grid-template-columns: 1fr; }
}

.pnu-year-badge{
  position:sticky;
  top:100px;
  border-radius:20px;
  padding:18px 18px;
  border:1px solid rgba(15,23,42,.12);
  background: linear-gradient(180deg, rgba(255,255,255,.85), rgba(248,250,252,.85));
  box-shadow: 0 18px 50px rgba(15,23,42,.08);
}
@media (max-width: 900px){
  .pnu-year-badge{ position:relative; top:auto; }
}

.pnu-pub-list{
  display:flex;
  flex-direction:column;
  gap:14px;
}

/* Card */
.pnu-pub-card{
  position:relative;
  display:grid;
  grid-template-columns: 140px 1fr;
  gap:18px;
  padding:14px;
  border-radius:22px;
  border:1px solid rgba(15,23,42,.12);
  background: rgba(255,255,255,.85);
  backdrop-filter: blur(10px);
  box-shadow: 0 14px 40px rgba(15,23,42,.08);
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
  overflow:hidden;
}
.pnu-pub-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 24px 60px rgba(15,23,42,.12);
  border-color: rgba(37,99,235,.22);
}

/* left rail */
.pnu-pub-side{
  display:flex;
  flex-direction:column;
  gap:10px;
  align-items:flex-start;
  padding:10px;
  border-radius:18px;
  background: linear-gradient(180deg, rgba(248,250,252,.9), rgba(255,255,255,.9));
  border:1px solid rgba(15,23,42,.08);
}
.pnu-venue-pill{
  display:inline-flex;
  align-items:center;
  padding:.45rem .75rem;
  border-radius:999px;
  font-weight:800;
  letter-spacing:-.01em;
  font-size:.95rem;
  border:1px solid rgba(15,23,42,.12);
}
.pnu-venue-meta{
  font-size:.8rem;
  color:rgba(15,23,42,.6);
  font-weight:700;
}

/* venue styles */
.pnu-venue-conf{ background: rgba(16,185,129,.10); color:#065f46; border-color: rgba(16,185,129,.18); }
.pnu-venue-top{ background: rgba(37,99,235,.10); color:#1d4ed8; border-color: rgba(37,99,235,.20); }

/* main */
.pnu-pub-main{ min-width:0; display:flex; flex-direction:column; gap:10px; padding:6px 6px; }
.pnu-pub-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.pnu-badges{ display:flex; flex-wrap:wrap; gap:8px; }
.pnu-badge{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  padding:.35rem .65rem;
  border-radius:999px;
  font-size:.78rem;
  font-weight:800;
  border:1px solid rgba(15,23,42,.12);
  background: rgba(248,250,252,.9);
  color:#0b1220;
}
.pnu-badge-award{
  background: rgba(251,191,36,.18);
  border-color: rgba(251,191,36,.35);
  color:#92400e;
}

.pnu-links{ display:flex; flex-wrap:wrap; gap:8px; }
.pnu-link{
  display:inline-flex;
  align-items:center;
  padding:.40rem .70rem;
  border-radius:999px;
  font-weight:800;
  font-size:.8rem;
  border:1px solid rgba(15,23,42,.12);
  transition: transform .18s ease, background .18s ease, border-color .18s ease;
}
.pnu-link:hover{ transform: translateY(-1px); }
.pnu-link-paper{ background: rgba(56,189,248,.12); color:#075985; border-color: rgba(56,189,248,.22); }
.pnu-link-code{ background: rgba(167,139,250,.12); color:#5b21b6; border-color: rgba(167,139,250,.22); }

.pnu-title{
  font-size: 1.02rem;
  line-height: 1.25;
  font-weight: 900;
  color:#0b1220;
  letter-spacing:-.01em;
}
@media (min-width: 1024px){
  .pnu-title{ font-size: 1.12rem; }
}

.pnu-authors{
  font-size:.86rem;
  line-height:1.15;
  color: rgba(15,23,42,.70);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.pnu-authors-strong{ color:#0b1220; font-weight:900; }

.pnu-meta-row{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.pnu-meta{ font-size:.78rem; color: rgba(15,23,42,.55); font-weight:800; }
.pnu-dot{ color: rgba(15,23,42,.35); font-weight:900; }

/* Awarded card accent (subtle left glow) */
.pnu-pub-awarded::before{
  content:"";
  position:absolute;
  inset:0;
  background: radial-gradient(900px 220px at 0% 50%, rgba(251,191,36,.18), transparent 55%);
  pointer-events:none;
}
@media (max-width: 900px){
  .pnu-pub-card{ grid-template-columns: 1fr; }
  .pnu-pub-side{ flex-direction:row; align-items:center; justify-content:space-between; }
  .pnu-authors{ white-space:normal; }
}

.pnu-chip{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  padding:.5rem .8rem;
  border-radius:999px;
  border:1px solid rgba(15,23,42,.14);
  background: rgba(255,255,255,.75);
  backdrop-filter: blur(8px);
  color:#0b1220;
  font-weight:700;
  font-size:.85rem;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.pnu-chip:hover{ transform: translateY(-1px); box-shadow: 0 10px 25px rgba(2,6,23,.08); }

.pnu-chip.is-active{
  background: linear-gradient(180deg, rgba(221,214,254,.75), rgba(255,255,255,.85));
  border-color: rgba(109,40,217,.25);
  box-shadow: 0 12px 28px rgba(109,40,217,.15);
}

/* =========================
   Members Directory (NEW)
   ========================= */

.pnu-members-wrap{
  position:relative;
}

/* Featured professor banner */
.pnu-featured{
  border-radius:28px;
  border:1px solid rgba(15,23,42,.10);
  background:
    radial-gradient(1200px 280px at 15% 20%, rgba(99,102,241,.14), transparent 58%),
    radial-gradient(900px 260px at 85% 55%, rgba(16,185,129,.12), transparent 55%),
    linear-gradient(180deg, rgba(255,255,255,.92), rgba(248,250,252,.92));
  box-shadow: 0 18px 60px rgba(2,6,23,.10);
  overflow:hidden;
}

.pnu-featured-inner{
  display:grid;
  grid-template-columns: 220px 1fr;
  gap:22px;
  padding:22px;
  align-items:center;
}

@media (max-width: 900px){
  .pnu-featured-inner{ grid-template-columns: 1fr; }
}

.pnu-featured-photo{
  width: 200px;
  border-radius: 26px;
  overflow:hidden;
  border:1px solid rgba(15,23,42,.10);
  background:#fff;
  box-shadow: 0 14px 40px rgba(2,6,23,.12);
}

.pnu-featured-photo img{
  width:100%; height:auto; object-fit:block;
}

.pnu-featured-title{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
}

.pnu-featured-name{
  font-size: 28px;
  font-weight: 900;
  letter-spacing: -0.03em;
  color: rgba(15,23,42,.96);
  line-height:1.05;
}

.pnu-featured-role{
  margin-top:10px;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}

.pnu-tag{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  padding:.42rem .78rem;
  border-radius:999px;
  border:1px solid rgba(15,23,42,.12);
  background: rgba(255,255,255,.70);
  font-weight: 800;
  font-size: 12px;
  color: rgba(15,23,42,.80);
}

.pnu-tag.is-lead{
  background: linear-gradient(180deg, rgba(15,23,42,.94), rgba(15,23,42,.86));
  border-color: rgba(15,23,42,.90);
  color: rgba(255,255,255,.92);
  box-shadow: 0 12px 26px rgba(2,6,23,.18);
}

.pnu-featured-desc{
  margin-top:14px;
  color: rgba(15,23,42,.70);
  line-height:1.65;
  font-size: 14px;
  max-width: 72ch;
  white-space: pre-line;
}

.pnu-featured-links{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:16px;
}

.pnu-linkbtn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  height:40px;
  padding:0 14px;
  border-radius: 999px;
  border:1px solid rgba(15,23,42,.12);
  background: rgba(255,255,255,.78);
  font-weight: 850;
  font-size: 13px;
  color: rgba(15,23,42,.84);
  text-decoration:none;
  box-shadow: 0 10px 24px rgba(2,6,23,.08);
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.pnu-linkbtn:hover{
  transform: translateY(-1px);
  box-shadow: 0 16px 40px rgba(2,6,23,.12);
  border-color: rgba(15,23,42,.18);
}

.pnu-linkbtn img{
  width:18px; height:18px;
}

/* Group section: headline + rail line */
.pnu-member-group{
  position:relative;
  padding-top: 6px;
}

.pnu-member-head{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:14px;
  margin-bottom: 14px;
}

.pnu-member-title{
  font-size: 18px;
  font-weight: 900;
  letter-spacing: -0.02em;
  color: rgba(15,23,42,.92);
}

.pnu-member-sub{
  font-size: 12px;
  font-weight: 800;
  color: rgba(15,23,42,.55);
  letter-spacing: .08em;
  text-transform: uppercase;
}

/* New card grid */
.pnu-member-grid{
  display:grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 16px;
}

.pnu-member-card{
  grid-column: span 4;
  border-radius: 22px;
  border:1px solid rgba(15,23,42,.10);
  background: rgba(255,255,255,.86);
  box-shadow: 0 14px 40px rgba(2,6,23,.08);
  overflow:hidden;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.pnu-member-card:hover{
  transform: translateY(-2px);
  border-color: rgba(37,99,235,.22);
  box-shadow: 0 22px 62px rgba(2,6,23,.12);
}

@media (max-width: 1024px){
  .pnu-member-card{ grid-column: span 6; }
}
@media (max-width: 640px){
  .pnu-member-card{ grid-column: span 12; }
}

/* Card header strip (non-original look) */
.pnu-member-strip{
  height: 64px;
  background:
    linear-gradient(135deg, rgba(99,102,241,.12), rgba(16,185,129,.10)),
    linear-gradient(180deg, rgba(2,6,23,.02), rgba(2,6,23,0));
  border-bottom: 1px solid rgba(15,23,42,.06);
}

.pnu-member-body{
  padding: 16px;
  display:flex;
  gap: 12px;
  align-items:flex-start;
}

.pnu-member-avatar{
  width: 64px;
  border-radius: 18px;
  overflow:hidden;
  border:1px solid rgba(15,23,42,.10);
  background:#f1f5f9;
  box-shadow: 0 12px 28px rgba(2,6,23,.10);
  flex: 0 0 auto;
  margin-top: -26px; /* overlap into strip */
}

.pnu-member-avatar img{
  width:100%; height:auto; object-fit:contain;
}

.pnu-member-info{
  min-width:0;
  flex: 1 1 auto;
  display:flex;
  flex-direction:column;
  gap: 8px;
}

.pnu-member-name{
  font-size: 16px;
  font-weight: 950;
  letter-spacing: -0.02em;
  color: rgba(15,23,42,.94);
  line-height:1.1;
}

.pnu-member-meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  font-size: 12px;
  font-weight: 800;
  color: rgba(15,23,42,.62);
}

.pnu-member-email{
  font-weight: 850;
  color: rgba(15,23,42,.62);
}

.pnu-member-note{
  padding-top: 10px;
  border-top: 1px dashed rgba(15,23,42,.14);
  color: rgba(15,23,42,.66);
  font-size: 13px;
  line-height: 1.55;
  white-space: pre-line;
}

.pnu-member-actions{
  margin-top: 10px;
  display:flex;
  flex-wrap:wrap;
  gap: 8px;
}

.pnu-mini{
  display:inline-flex;
  align-items:center;
  gap:8px;
  height: 34px;
  padding: 0 12px;
  border-radius: 999px;
  border:1px solid rgba(15,23,42,.10);
  background: rgba(248,250,252,.92);
  text-decoration:none;
  font-weight: 900;
  font-size: 12px;
  color: rgba(15,23,42,.78);
  transition: transform .15s ease, border-color .15s ease;
}
.pnu-mini:hover{
  transform: translateY(-1px);
  border-color: rgba(15,23,42,.18);
}
.pnu-mini img{ width:16px; height:16px; }

/* Optional: small count badge (if you want later) 
.pnu-count{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width: 32px;
  height: 22px;
  padding: 0 8px;
  border-radius: 999px;
  border:1px solid rgba(15,23,42,.10);
  background: rgba(255,255,255,.70);
  font-size: 12px;
  font-weight: 950;
  color: rgba(15,23,42,.72);
}*/

.pnu-research{--bg:#0b1220;--card:rgba(255,255,255,.06);--bd:rgba(255,255,255,.10);--txt:#e8eefc;--mut:rgba(232,238,252,.72);--acc:#60a5fa;--acc2:#22c55e;
      background:radial-gradient(900px 380px at 20% 0%, rgba(96,165,250,.20), transparent 60%),
                 radial-gradient(760px 360px at 85% 15%, rgba(34,197,94,.14), transparent 55%),
                 linear-gradient(180deg, #070b14, var(--bg));
      color:var(--txt); border-radius:28px; padding:40px 22px; overflow:hidden; border:1px solid rgba(255,255,255,.08);
    }
    .pnu-research .wrap{max-width:1100px;margin:0 auto}
    .pnu-research .kicker{display:inline-flex;gap:8px;align-items:center;font-weight:700;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--mut)}
    .pnu-research .dot{width:8px;height:8px;border-radius:999px;background:linear-gradient(135deg,var(--acc),var(--acc2))}
    .pnu-research h2{margin:10px 0 10px;font-size:34px;line-height:1.1;letter-spacing:-.02em}
    .pnu-research p{margin:0;color:var(--mut);font-size:15px;line-height:1.6}
    .pnu-research .hero{display:grid;grid-template-columns:1.1fr .9fr;gap:18px;align-items:stretch;margin-top:18px}
    @media (max-width:900px){.pnu-research .hero{grid-template-columns:1fr}}
    .pnu-research .card{background:var(--card);border:1px solid var(--bd);border-radius:22px;padding:18px;backdrop-filter: blur(10px)}
    .pnu-research .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:12px}
    @media (max-width:900px){.pnu-research .grid{grid-template-columns:1fr}}
    .pnu-research .pill{display:inline-flex;gap:8px;align-items:center;padding:7px 10px;border-radius:999px;border:1px solid var(--bd);background:rgba(0,0,0,.18);color:var(--mut);font-size:12px}
    .pnu-research .pill b{color:var(--txt)}
    .pnu-research .steps{margin-top:12px;display:grid;gap:10px}
    .pnu-research .step{display:flex;gap:10px;align-items:flex-start}
    .pnu-research .num{flex:0 0 auto;width:28px;height:28px;border-radius:10px;
      background:linear-gradient(135deg, rgba(96,165,250,.25), rgba(34,197,94,.18));
      border:1px solid rgba(255,255,255,.14);display:flex;align-items:center;justify-content:center;font-weight:800}
    .pnu-research .step h4{margin:0 0 2px;font-size:14px}
    .pnu-research .step p{margin:0;font-size:13px}
    .pnu-research .footer{margin-top:14px;display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}
    .pnu-research .btn{display:inline-flex;gap:10px;align-items:center;padding:10px 12px;border-radius:14px;
      border:1px solid rgba(255,255,255,.14);background:rgba(0,0,0,.22);color:var(--txt);text-decoration:none;font-weight:700}
    .pnu-research .btn:hover{transform:translateY(-1px);transition:.15s}
    .pnu-research .mini{font-size:12px;color:var(--mut)}
    .pnu-research .spark{position:absolute;inset:auto -120px -160px auto;width:420px;height:420px;border-radius:999px;
      background:radial-gradient(circle at 30% 30%, rgba(96,165,250,.20), transparent 55%);
      filter: blur(2px);opacity:.9;pointer-events:none}