/* Menu Toggle (header button) */
.menu-toggle{
  display:none;
  background:#000;                      /* 토글 버튼 블랙 */
  border:1px solid rgba(255,255,255,.25);
  color:#fff;
  cursor:pointer;
  font-size:.875rem;
  font-family:var(--font-sans);
  padding:.5rem .9rem;
  border-radius:999px;
  transition:border-color .25s ease, opacity .25s ease;
  mix-blend-mode:normal;                /* difference 영향 방지 */
}
.menu-toggle:hover{border-color:rgba(255,255,255,.5)}
.menu-toggle:active{opacity:.85}
.menu-toggle:focus-visible{outline:2px solid #fff;outline-offset:2px}

/* Team */
.team-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:3rem;
  margin-top:2rem;
}
.team-member{text-align:center}
.team-photo{
  width:200px;height:200px;border-radius:50%;
  object-fit:cover;
  background:linear-gradient(135deg,#1a1a1a 0%,#2a2a2a 100%);
}
.team-member h4{
  font-family:var(--font-serif);
  font-size:1.5rem;
  font-weight:400;
  margin-bottom:.5rem;
}
.team-member .role{
  font-size:.875rem;
  color:var(--color-text-muted);
  margin-bottom:.5rem;
}
.team-member .email{
  font-size:.8125rem;
  color:var(--color-text-muted);
}
.team-member .email a:hover{color:var(--color-text);opacity:1}

/* Publications */
.publication-list{display:flex;flex-direction:column;gap:2rem}
.publication-item{
  padding-bottom:2rem;
  border-bottom:1px solid rgba(255,255,255,.1);
}
.publication-item:last-child{border-bottom:none}
.publication-year{
  font-size:.75rem;
  font-weight:500;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--color-text-muted);
  margin-bottom:.75rem;
}
.publication-title{
  font-family:var(--font-serif);
  font-size:1.25rem;
  font-weight:400;
  margin-bottom:.5rem;
  line-height:1.4;
}
.publication-authors,
.publication-journal{
  font-size:.9375rem;
  color:var(--color-text-muted);
}
.publication-journal{font-style:italic}

/* Activity */
.activity-timeline{position:relative;padding-left:2rem}
.activity-timeline::before{
  content:'';
  position:absolute;left:0;top:0;bottom:0;
  width:1px;background:rgba(255,255,255,.1);
}
.activity-item{position:relative;padding-bottom:2.5rem}
.activity-item::before{
  content:'';
  position:absolute;left:-2rem;top:.5rem;
  width:8px;height:8px;background:var(--color-text);
  border-radius:50%;
  transform:translateX(-50%);
}
.activity-date{
  font-size:.75rem;
  font-weight:500;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--color-text-muted);
  margin-bottom:.5rem;
}
.activity-title{
  font-family:var(--font-serif);
  font-size:1.25rem;
  font-weight:400;
  margin-bottom:.5rem;
}
.activity-description{
  font-size:.9375rem;
  color:var(--color-text-muted);
  line-height:1.7;
}

/* Activity cards + carousel */
.activity-list{display:flex;flex-direction:column;gap:4rem;max-width:900px}
.activity-card{
  padding-bottom:4rem;
  border-bottom:1px solid rgba(255,255,255,.1);
  position:relative;
}
.activity-card:last-child{border-bottom:none}

.activity-card.has-news{
  cursor:pointer;
  transition:transform .3s ease;
}
.activity-card.has-news:hover{transform:translateX(8px)}

.news-badge{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.2);
  padding:.4rem .75rem;
  border-radius:20px;
  font-size:.75rem;
  font-weight:500;
  letter-spacing:.05em;
  color:var(--color-text);
  margin-bottom:1rem;
  transition:background .3s ease,border-color .3s ease;
}
.activity-card.has-news:hover .news-badge{
  background:rgba(255,255,255,.15);
  border-color:rgba(255,255,255,.3);
}
.news-badge svg{width:14px;height:14px}
.news-badge span{text-transform:uppercase}

.news-arrow{
  position:absolute;
  right:0;top:50%;
  transform:translateY(-50%);
  opacity:0;
  transition:opacity .3s ease, transform .3s ease;
  color:var(--color-text-muted);
}
.activity-card.has-news:hover .news-arrow{
  opacity:1;
  transform:translateY(-50%) translateX(4px);
}
.news-arrow svg{width:24px;height:24px}

.activity-card-header{margin-bottom:2rem}
.activity-card .activity-title{font-size:1.5rem;margin-bottom:.75rem}
.activity-card .activity-description{max-width:600px}

.activity-carousel{position:relative;overflow:hidden;width:100%}
.carousel-track{
  display:flex;
  gap:1rem;
  animation:carouselScroll 20s linear infinite;
}
.activity-carousel:hover .carousel-track{animation-play-state:paused}
.carousel-slide{flex:0 0 calc(33.333% - .67rem);min-width:calc(33.333% - .67rem)}
.carousel-slide img{
  width:100%;
  height:200px;
  object-fit:cover;
  border-radius:4px;
  background:linear-gradient(135deg,#1a1a1a 0%,#2a2a2a 100%);
}

/* Research */
.research-areas{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:2rem;
}
.research-card{
  background:rgba(255,255,255,.02);
  border:1px solid rgba(255,255,255,.05);
  border-radius:12px;
  padding:1.5rem;
  transition:border-color .3s ease, background .3s ease;
}
.research-card:hover{
  border-color:rgba(255,255,255,.15);
  background:rgba(255,255,255,.04);
}
.research-card h4{
  font-family:var(--font-serif);
  font-size:1.5rem;
  font-weight:400;
  margin-bottom:1rem;
}
.research-card p{
  font-size:.9375rem;
  color:var(--color-text-muted);
  line-height:1.7;
}
.research-card-image{
  width:100%;
  height:180px;
  overflow:hidden;
  border-radius:8px;
  margin-bottom:1rem;
  background:var(--color-surface);
}
.research-card-image img{
  width:100%;height:100%;
  object-fit:cover;
  transition:transform .3s ease;
}
.research-card:hover .research-card-image img{transform:scale(1.05)}

/* Gallery thumbs */
.research-card-gallery{margin-bottom:1rem}
.gallery-main{
  width:100%;height:180px;
  overflow:hidden;
  border-radius:8px;
  margin-bottom:.5rem;
  background:var(--color-surface);
  cursor:pointer;
}
.gallery-main img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}
.gallery-main:hover img{transform:scale(1.05)}

.gallery-thumbs{display:flex;gap:.5rem}
.gallery-thumbs img{
  width:50px;height:50px;
  object-fit:cover;
  border-radius:4px;
  cursor:pointer;
  opacity:.7;
  transition:opacity .2s ease, transform .2s ease;
  border:2px solid transparent;
}
.gallery-thumbs img:hover{opacity:1;transform:scale(1.1)}
.gallery-thumbs img.active{opacity:1;border-color:var(--color-accent)}

/* Contact blocks/forms (페이지에서 쓰면 유지) */
.contact-info{display:flex;flex-direction:column;gap:3rem}
.contact-block h3{
  font-size:.75rem;
  font-weight:500;
  letter-spacing:.1em;
  text-transform:uppercase;
  margin-bottom:1rem;
  color:var(--color-text-muted);
}
.contact-block p,.contact-block address{
  font-style:normal;
  font-size:1rem;
  line-height:1.8;
}
.contact-block a{
  display:inline-block;
  border-bottom:1px solid transparent;
  transition:border-color .3s ease, opacity .3s ease;
}
.contact-block a:hover{border-bottom-color:var(--color-text);opacity:1}

.contact-form{display:flex;flex-direction:column;gap:2rem}
.form-group label{
  display:block;
  font-size:.75rem;
  font-weight:500;
  letter-spacing:.1em;
  text-transform:uppercase;
  margin-bottom:.75rem;
  color:var(--color-text-muted);
}
.form-group input,.form-group textarea{
  width:100%;
  background:transparent;
  border:none;
  border-bottom:1px solid rgba(255,255,255,.2);
  padding:.75rem 0;
  font-family:var(--font-sans);
  font-size:1rem;
  color:var(--color-text);
  transition:border-color .3s ease;
  outline:none;
}
.form-group input:focus,.form-group textarea:focus{border-bottom-color:var(--color-text)}
.form-group input::placeholder,.form-group textarea::placeholder{color:var(--color-text-muted);opacity:.5}
.form-group textarea{resize:none;min-height:120px}

.form-submit{
  align-self:flex-start;
  background:var(--color-text);
  color:#000;
  border:none;
  padding:1rem 2.5rem;
  font-size:.875rem;
  font-weight:500;
  letter-spacing:.02em;
  cursor:pointer;
  transition:transform .3s ease, opacity .3s ease;
  margin-top:1rem;
}
.form-submit:hover{transform:translateY(-2px);opacity:.9}

/* Grain */
.grain{
  position:fixed;top:0;left:0;
  width:100%;height:100%;
  pointer-events:none;
  z-index:1000;
  opacity:.04;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
}

/* ===========================
   Email Reveal Button
   =========================== */
/* ===========================
   Email reveal (minimal)
   =========================== */

/* 버튼을 '작은 링크'처럼 보이게 */
.email-reveal{
  appearance:none;
  background:transparent;
  border:0;
  padding:0;
  margin:0;

  font:inherit;
  color:inherit;

  cursor:pointer;
  opacity:.75;
  text-decoration:underline;
  text-underline-offset: 0.22em;
  text-decoration-thickness: 1px;

  transition: opacity .2s ease;
}

.email-reveal:hover{
  opacity:1;
}

.email-reveal:focus-visible{
  outline:2px solid rgba(255,255,255,.35);
  outline-offset:3px;
  border-radius:6px;
}

.email-reveal[disabled]{
  cursor:default;
  opacity:.55;
  text-decoration:none;
}

/* 이메일 텍스트 */
.email-out{
  margin-left:.5rem;
  opacity:.9;
  user-select:text;
  white-space:nowrap;
}

.form-status {
  margin-top: .75rem;
  font-size: .95rem;
  opacity: .85;
}

/* 모바일에서 줄바꿈 필요하면(선택)*/
@media (max-width: 520px){
  .email-out{ white-space:normal; overflow-wrap:anywhere; }
}
