/* ===== Core Theme ===== */
:root{
  --bg:#0a0b12;
  --panel:#0f1020aa;
  --panel-solid:#14162a;
  --txt:#e7ebff;
  --muted:#b7c0e3;
  --primary:#65d1ff;   /* 밝은 하늘-블루 */
  --secondary:#a96bff; /* 라벤더 퍼플 */
  --accent:#9ecbff;    /* ← 초록 대신 연한 블루톤으로 변경 */
  --grid:rgba(255,255,255,.06);
  --radius:18px;
  --shadow:0 12px 40px rgba(15,40,120,.35);
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0; font-family:'Pretendard',system-ui,-apple-system,Segoe UI,Roboto,'Noto Sans KR',Apple SD Gothic Neo,Helvetica,Arial,sans-serif;
  color:var(--txt);
  background:radial-gradient(1200px 800px at 80% -10%, #1b2a55 0%, transparent 60%),
             radial-gradient(1000px 700px at 0% 100%, #441a71 0%, transparent 60%),
             var(--bg);
  overflow-x:hidden;
}

.wrap{max-width:1200px;margin:0 auto;padding:0 20px}
h1,h2,h3{line-height:1.2;margin:0 0 12px}
.kicker{font-size:.9rem;letter-spacing:.18em;color:var(--accent);text-transform:uppercase}
.muted{color:var(--muted)}

.grad{background:linear-gradient(90deg,var(--primary),var(--secondary));-webkit-background-clip:text;background-clip:text;color:transparent}

.btn{display:inline-flex;gap:.6rem;align-items:center;padding:16px 24px;border-radius:999px;background:linear-gradient(90deg,var(--secondary),var(--primary));color:#081018;
  font-weight:800;font-size:1.05rem;letter-spacing:.02em;border:0;cursor:pointer;box-shadow:0 10px 28px rgba(80,125,255,.55);text-decoration:none;transform:translateZ(0)}
.btn.small{padding:10px 16px;font-size:.95rem;font-weight:700}
.btn.lg{padding:18px 26px;font-size:1.1rem}
.btn:active{transform:scale(.98)}
.btn.ghost{background:transparent;border:1px solid #3b4377;color:var(--txt);box-shadow:none}

.grid-bg::before{
  content:""; position:fixed; inset:0; pointer-events:none; background-image:linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);
  background-size: 80px 80px; mask-image: radial-gradient(65% 65% at 50% 30%, #000 65%, transparent 100%);
  z-index:0; opacity:.45
}
.glow{position:relative}
.glow::after{content:""; position:absolute; inset:-2px; border-radius:inherit; padding:2px; background:linear-gradient(130deg,var(--secondary),var(--primary),var(--accent));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; opacity:.7}

/* HEADER */
header{position:sticky;top:0;z-index:50;backdrop-filter:saturate(140%) blur(8px);background:linear-gradient(#0a0b12cc,#0a0b1200);border-bottom:1px solid #23264a}
header .nav{display:flex;align-items:center;justify-content:space-between;padding:14px 0}
header .brand{display:flex;align-items:center;gap:12px}
header .brand b{font-weight:800;letter-spacing:.02em}
header .menu{display:flex;gap:20px}
header .menu a{color:var(--muted);text-decoration:none;font-weight:600}
header .menu a:hover{color:var(--txt)}

/* HERO */
.hero{position:relative; padding:120px 0 80px; overflow:hidden}
.hero .fx-canvas{position:absolute; inset:0; z-index:0; opacity:.75; pointer-events:none; mix-blend:screen}
.hero .wrap{display:grid;grid-template-columns: 1.2fr .8fr; gap:40px; align-items:center; position:relative; z-index:1}
.orb{position:relative; aspect-ratio:1/1; border-radius:50%; background:radial-gradient(closest-side, rgba(15, 250, 250, .20), transparent 70%), radial-gradient(circle at 30% 30%, rgba(173, 122, 255,.35), transparent 60%), radial-gradient(circle at 70% 70%, rgba(39, 205, 255,.35), transparent 60%);
  box-shadow: inset 0 0 60px rgba(173,122,255,.2), inset 0 0 120px rgba(39,205,255,.25), 0 40px 120px rgba(40,80,220,.35); overflow:hidden}
.orb img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.95; mix-blend:screen}
.hero h1{font-size:clamp(36px,4.2vw,64px); font-weight:800}
.hero p{font-size:1.1rem; color:var(--muted)}
.hero .cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}

/* SECTIONS */
section{position:relative; padding:80px 0}
.card{background:var(--panel); border:1px solid #2a2f55; border-radius:var(--radius); box-shadow:var(--shadow)}
.card.pad {
  position: relative;
  padding: 28px;
  border-radius: 12px;             /* 라운드 추가 */
  overflow: hidden;                /* 배경이 라운드 밖으로 안나가게 */
  color: #fff;                     /* 글자 대비 */
  background: 
    linear-gradient(rgba(0,0,0,0.45), rgba(0,0,0,0.45)),
    url('./img/dragoncity-hotel-thumb.jpg') center/cover no-repeat;
  box-shadow: 0 2px 10px rgba(0,0,0,0.08);
  border: none;
}

/* 내부 텍스트와 요소들은 배경 위에서 보이게 */
.card.pad * {
  position: relative;
  z-index: 1;
}

/* 버튼 컬러 반전 */
.card.pad .btn.small {
  background: rgba(255,255,255,0.85);
  color: #003366;
  transition: all 0.25s ease;
}
.card.pad .btn.small:hover {
  background: #fff;
  color: #000;
}


.stack{display:grid;gap:18px}

/* INFO BAR */
.infobar{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:30px}
.infobar .i{padding:18px;border-radius:14px;background:linear-gradient(180deg,#12142a,transparent);border:1px solid #2a2f55}
.infobar .i b{display:block;margin-bottom:6px;color:var(--accent);font-size:.95rem}

/* PROGRAM TABLE */
.table-wrap{overflow:auto}
.timetable{width:100%; border-collapse:collapse; font-size:.98rem}
.timetable caption{position:absolute; left:-9999px}
.timetable th, .timetable td{border:1px solid #2a2f55; padding:14px 12px; vertical-align:top}
.timetable thead th{position:sticky; top:0; background:#0f1331; z-index:1; text-align:left}
.timetable tbody tr.section td{background:#111739; color:#a4b6ff; font-weight:700; text-align:center}

/* SPEAKERS */
.speakers{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.sp{padding:16px;border-radius:14px;background:linear-gradient(180deg,#12142a,transparent);border:1px solid #2a2f55;text-align:center}
.sp .ph{width:100%; aspect-ratio:1/1; border-radius:12px; background:#1a1d3a; margin-bottom:10px; display:grid; place-items:center; color:#6f79c9}

/* VENUE */
.venue{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}
.map img{display:block;width:100%;height:auto;border-radius:14px}

/* FOOTER */
footer{padding:60px 0 80px;color:var(--muted);border-top:1px solid #23264a}

/* RESPONSIVE */
@media (max-width: 980px){
  header .menu{display:none}
  .hero .wrap{grid-template-columns:1fr; gap:26px}
  .venue{grid-template-columns:1fr}
  .speakers{grid-template-columns:repeat(2,1fr)}
  .infobar{grid-template-columns:1fr}
  .timetable{font-size:.95rem}
}


/* === Section Background Variation === */
section:nth-of-type(odd) {
  background: radial-gradient(900px 600px at 80% -10%, rgba(169,107,255,0.22) 0%, transparent 70%),
              radial-gradient(900px 700px at 0% 100%, rgba(101,209,255,0.18) 0%, transparent 60%);
}

section:nth-of-type(even) {
  background: radial-gradient(900px 600px at 20% -10%, rgba(101,209,255,0.15) 0%, transparent 70%),
              radial-gradient(900px 700px at 100% 100%, rgba(169,107,255,0.25) 0%, transparent 60%);
}

/* ణ ð  ( а) */
section::before {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to bottom, rgba(15,20,40,0.3), transparent 30%, transparent 70%, rgba(15,20,40,0.3));
  pointer-events:none;
  z-index:0;
}
section > .wrap {
  position:relative;
  z-index:1;
}


/* === OVERVIEW Modern Grid-Table Style === */
.section-overview {
  padding: 100px 0;
}

.overview-wrap {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 28px;
  align-items: start;
}

.overview-card {
  background: rgba(24,30,60,.45);
  border: 1px solid rgba(143,193,255,.25);
  border-radius: 16px;
  box-shadow: 0 8px 28px rgba(0,0,0,.35);
  overflow: hidden;
}

/* table modern grid  */
.overview-table {
  display: grid;
  grid-template-columns: 150px 1fr;
  border-collapse: collapse;
}

.overview-table tbody {
  display: contents;
}

.overview-table tr {
  display: contents;
}

.overview-table th,
.overview-table td {
  padding: 16px 20px;
  border-bottom: 1px solid rgba(143,193,255,.12);
}

.overview-table th {
  color: #7fe9ff;
  font-weight: 700;
  background: rgba(127,233,255,.05);
}

.overview-table td {
  color: #e7ebff;
}

.overview-table tr:last-child th,
.overview-table tr:last-child td {
  border-bottom: none;
}

/* /ְ ΰ */
.sponsor-logos {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 18px;
  margin-top: 4px;
}
.sponsor-logos img {
  height: 40px;
  filter: drop-shadow(0 3px 8px rgba(0,0,0,.35));
  opacity: .95;
}

/*  ī */
.overview-map {
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid rgba(143,193,255,.25);
  background: rgba(24,30,60,.45);
  box-shadow: 0 8px 28px rgba(0,0,0,.35);
}
.overview-map img {
  width: 80%;
  height: auto;
  display: block;
}

/*  */
@media (max-width: 900px) {
  .overview-wrap {
    grid-template-columns: 1fr;
  }
  .overview-table {
    grid-template-columns: 120px 1fr;
  }
  .sponsor-logos {
    justify-content: flex-start;
  }
}


/* === OVERVIEW Modern Grid Table === */
.section-overview {
  padding: 100px 0;
}

/*   ߾ */
.overview-title {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  margin-bottom: 40px;
  text-align: center;
}
.overview-title i {
  font-size: 26px;
  color: #7fe9ff;
  filter: drop-shadow(0 0 6px rgba(127,233,255,.6));
}
.overview-title h2 {
  font-size: clamp(30px, 4vw, 42px);
  font-weight: 800;
  margin: 0;
  color: #e7ebff;
  letter-spacing: -0.02em;
}

.overview-wrap {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 28px;
  align-items: start;
}

.overview-card {
  background: rgba(24,30,60,.45);
  border: 1px solid rgba(143,193,255,.25);
  border-radius: 16px;
  box-shadow: 0 8px 28px rgba(0,0,0,.35);
  overflow: hidden;
}

/* Modern table-grid */
.overview-table {
  display: grid;
  grid-template-columns: 150px 1fr;
}
.overview-table tbody { display: contents; }
.overview-table tr { display: contents; }
.overview-table th,
.overview-table td {
  padding: 16px 10px;
  border-bottom: 1px solid rgba(143,193,255,.12);
}
.overview-table th {
  color: #7fe9ff;
  font-weight: 700;
  background: rgba(127,233,255,.05);
}
.overview-table td {
  color: #e7ebff;
}
.overview-table tr:last-child th,
.overview-table tr:last-child td {
  border-bottom: none;
}

/* /ְ ΰ */
.sponsor-logos {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 18px;
  margin-top: 4px;
}
.sponsor-logos img {
  height: 42px;
  filter: drop-shadow(0 3px 8px rgba(0,0,0,.35));
  opacity: .95;
  transition: transform .25s ease, opacity .25s ease;
}
.sponsor-logos img:hover {
  transform: scale(1.05);
  opacity: 1;
}

/*  ī ( ) */
.overview-map {
  border-radius: 16px;
  overflow: hidden;

}
.overview-map.no-border { background: transparent !important; border:none !important; box-shadow:none !important; }
.overview-map img {
  width: 80%;
  height: auto;
  display: block;
}

/*  */
@media (max-width: 900px) {
  .overview-wrap { grid-template-columns: 1fr; }
  .overview-table { grid-template-columns: 68px 1fr; }
  .overview-title { margin-bottom: 28px; }
  .overview-title h2 { font-size: clamp(26px, 6vw, 34px); }
}


/*  ڽ    */
.overview-map.no-border {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.overview-map.no-border img {
  display: block;
  width: 90%;
  height: auto;
  border-radius: 0; /* Ѵٸ 𼭸 ձ ȿ  */
}



/* === FX: section network canvas === */
.fx-net-wrap { position: relative; }
.fx-net-canvas {
  position: absolute; inset: 0; z-index: 0;
  pointer-events: none; mix-blend-mode: screen; opacity: 59.22;
}
.fx-net-mask {
  position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: radial-gradient(1200px 800px at 70% -10%, rgba(95,55,233,.10), transparent 60%),
              radial-gradient(900px 700px at 10% 110%, rgba(169,107,255,.10), transparent 60%);
  mix-blend-mode: screen; opacity: .95;
}
/* 섹션 안의 실제 콘텐츠가 항상 위로 오도록 */
section > .wrap { position: relative; z-index: 1; }



/* === PROGRAM (카드형 타임라인) === */
.section-program { padding: 100px 0; }

.program-title{
  display:flex; flex-direction:column; align-items:center; gap:8px;
  margin-bottom:32px; text-align:center;
}
.program-title i{
  font-size:26px; color:#7fe9ff;
  filter: drop-shadow(0 0 6px rgba(127,233,255,.6));
}
.section-program h2{
  font-size: clamp(30px, 4vw, 42px);
  font-weight: 800; margin:0; letter-spacing:-0.02em;
}

/* 리스트 래퍼 */
.agenda-list{
  list-style:none; margin:0; padding:0;
  display:grid; gap:12px;
}

/* 구분 라벨 */
.agenda-section{
  grid-column:1/-1;
  padding:10px 14px; font-weight:800; letter-spacing:.02em;
  color:#a4b6ff; text-align:center;
  background:rgba(14,18,34,.5);
  border:1px solid rgba(143,193,255,.25);
  border-radius:14px;
}

/* 카드 한 줄 */
.agenda-card{
  display:grid; grid-template-columns: 150px 1fr auto;
  gap:14px; align-items:start;
  padding:16px 18px; border-radius:16px;
  background:rgba(24,30,60,.45);
  border:1px solid rgba(143,193,255,.25);
  box-shadow:0 8px 28px rgba(0,0,0,.35);
}
.agenda-card time{
  font-family:'DINPro', system-ui, sans-serif;
  font-weight:700; opacity:.95; white-space:nowrap;
}
.agenda-card .agenda-main h3{
  margin:0 0 4px; font-size:18px; font-weight:800;
}
.agenda-card .agenda-main .meta{
  margin:0; opacity:.85; font-size:14px;
}
.agenda-card .badge{
  align-self:center;
  padding:6px 10px; font-size:12px; font-weight:900;
  color:#0b1424; border-radius:999px;
  background:linear-gradient(90deg, var(--primary, #65d1ff), var(--secondary, #a96bff));
  border:1.5px solid rgba(127,233,255,.55);
  box-shadow:0 6px 18px rgba(88,240,255,.25), 0 0 14px rgba(169,107,255,.18);
}

/* 반응형 */
@media (max-width: 900px){
  .agenda-card{ grid-template-columns: 120px 1fr; }
  .agenda-card .badge{ grid-column: 1/-1; justify-self:start; margin-top:6px; }
}
@media (max-width: 560px){
  .agenda-card{ grid-template-columns: 1fr; }
  .agenda-card time{ order:-1; opacity:.9; margin-bottom:2px; }
  .agenda-card .badge{ justify-self:flex-start; }
}



/* === PROGRAM: DIV 기반 표 그리드 === */
.section-program { padding: 100px 0; }

.program-title{
  display:flex; flex-direction:column; align-items:center; gap:8px;
  margin-bottom:22px; text-align:center;
}
.program-title i{
  font-size:26px; color:#7fe9ff;
  filter: drop-shadow(0 0 6px rgba(127,233,255,.6));
}
.section-program h2{
  font-size: clamp(30px, 4vw, 42px);
  font-weight: 800; margin:0; letter-spacing:-0.02em;
}

/* 표 래퍼 */
.tbl{
  width:100%;
  border:1px solid rgba(143,193,255,.25);
  border-radius:16px;
  overflow:hidden;
  background:rgba(14,18,34,.55);
  box-shadow:0 12px 32px rgba(0,0,0,.35);
}

/* 행: 각 행을 동일한 그리드로 */
.tbl-row{
  display:grid;
  grid-template-columns: 160px 1fr 220px 160px; /* 시간 | 세션 | 발표자 | 비고 */
  align-items:stretch;
  border-top:1px solid rgba(143,193,255,.18);
}
.tbl-row:first-child{ border-top:0; }

.tbl-head{
  background:linear-gradient(180deg, rgba(127,233,255,.10), rgba(169,107,255,.08));
  backdrop-filter: blur(2px);
  position:sticky; top:0; z-index:1;
}
.tbl-head .tbl-cell{
  font-weight:900; letter-spacing:.02em; text-transform:none;
  font-size:14px; color:#cfe8ff;
}

/* 셀 공통 */
.tbl-cell{
  padding:14px 16px;
  display:flex; align-items:center;
  gap:10px; min-height:48px;
  color:#e9f4ff;
}
.tbl-cell strong{ font-weight:800; }

/* 열 폭 보정 */
.col-time{ white-space:nowrap; font-variant-numeric: tabular-nums; font-weight:700; }
.col-speaker{ color:#d5e6ff; }
.col-etc{ color:#a9c6ff; }

/* 섹션 구분 라인(열 전체 병합 느낌) */
.tbl-divider{
  display:block;
  grid-column:1 / -1;
  padding:10px 16px;
  background:rgba(24,30,60,.65);
  color:#a4b6ff; font-weight:900; letter-spacing:.02em;
  border-top:1px solid rgba(143,193,255,.28);
  border-bottom:1px solid rgba(143,193,255,.18);
}

/* 줄무늬(가독성) */
.tbl-row:nth-child(odd):not(.tbl-head){ background:rgba(255,255,255,.01); }

/* 반응형: 폭 줄어들면 열 비율 조정 */
@media (max-width: 1100px){
  .tbl-row{ grid-template-columns: 140px 1fr 200px 140px; }
}
@media (max-width: 900px){
  .tbl-row{ grid-template-columns: 130px 1fr 180px 120px; }
}

/* 모바일: 카드형으로 자동 라벨 표시 */
@media (max-width: 640px){
  .tbl{ border-radius:14px; }
  .tbl-head{ display:none; } /* 모바일에선 라벨을 각 셀에 표시 */
  .tbl-row{
    grid-template-columns: 1fr; 
    border-top:1px solid rgba(143,193,255,.18);
    background:rgba(20,26,48,.6);
    margin:8px 10px; border-radius:12px; overflow:hidden;
  }
  .tbl-cell{
    position:relative; padding:12px 14px 12px 120px; min-height:46px;
  }
  .tbl-cell::before{
    content: attr(data-label);
    position:absolute; left:12px; top:12px;
    width:96px; font-size:12px; font-weight:800;
    color:#9ecbff; opacity:.9;
  }
  /* 맨 위 시간은 살짝 강조 */
  .tbl-row .col-time{ font-weight:900; }
  /* 섹션 구분은 카드 외부 느낌으로 */
  .tbl-divider{
    margin:16px 8px 6px; border-radius:10px; padding:8px 12px;
  }
}


/* ===== Hero-wide Lens Flare (No JS) ===== */
.hero{ position: relative; }
.hero-fx{
  position:absolute; inset:0; z-index:2;            /* 배경 위, 텍스트 아래 */
  pointer-events:none; mix-blend-mode:screen;
  overflow:hidden; isolation:isolate;
}

/* 공통 */
.hero-fx .fx{ position:absolute; will-change:transform, opacity; }

/* 링 글로우: 중앙에서 천천히 회전 */
.hero-fx .fx--ring{
  left:50%; top:50%; transform:translate(-50%,-50%);
  width:min(70vmin, 820px); aspect-ratio:1/1; border-radius:50%;
  background:
    radial-gradient(closest-side, rgba(255,255,255,.12), transparent 62%),
    conic-gradient(from 0deg, rgba(170,110,255,.45), rgba(101,209,255,.35),
                          rgba(127,233,255,.45), rgba(170,110,255,.45));
  -webkit-mask: radial-gradient(closest-side, transparent 56%, #000 58%);
          mask: radial-gradient(closest-side, transparent 56%, #000 58%);
  filter: blur(20px) drop-shadow(0 10px 26px rgba(0,0,0,.35));
  opacity:.55; animation:ringSpin 18s linear infinite;
}

/* 플레어 코어 2종: 은은한 호흡(drift) */
.hero-fx .fx--flare{
  width:48vmin; aspect-ratio:1/1; border-radius:50%;
  filter: blur(26px) saturate(115%); opacity:.55;
  animation: drift 7.2s ease-in-out infinite;
}
.hero-fx .fx--blue{
  left:68%; top:40%; transform:translate(-50%,-50%);
  background:
    radial-gradient(closest-side, rgba(120,210,255,.90), rgba(120,210,255,.35) 38%, transparent 72%),
    radial-gradient(130% 90% at 28% 32%, rgba(127,233,255,.5), transparent 60%);
}
.hero-fx .fx--magenta{
  left:78%; top:58%; transform:translate(-50%,-50%);
  width:36vmin;
  background:
    radial-gradient(closest-side, rgba(210,140,255,.85), rgba(210,140,255,.28) 45%, transparent 72%),
    radial-gradient(80% 120% at 70% 70%, rgba(169,107,255,.45), transparent 60%);
  filter: blur(30px);
  animation-duration: 8.4s; animation-delay:-.8s; opacity:.48;
}

/* 라이트 스트릭(빛 줄기) 두 개 */
.hero-fx .fx--streak{
  height:2.2vmin; width:60vmin; border-radius:999px;
  background: linear-gradient(90deg, transparent, rgba(127,233,255,.70), transparent);
  filter: blur(8px); opacity:.40;
  transform-origin:left center;
  animation: sweep 10s ease-in-out infinite;
}
.hero-fx .fx--cyan{
  left:12%; top:68%; transform:rotate(12deg);
}
.hero-fx .fx--pink{
  left:28%; top:34%; transform:rotate(-14deg);
  background: linear-gradient(90deg, transparent, rgba(210,140,255,.65), transparent);
  animation-duration: 12.5s; animation-delay:-1.2s; opacity:.35;
}

/* 키프레임 */
@keyframes ringSpin { to { transform: translate(-50%,-50%) rotate(360deg); } }
@keyframes drift {
  0%,100% { transform: translate(-50%,-50%) scale(1); }
  50%     { transform: translate(calc(-50% + 1%), calc(-50% - 2%)) scale(1.06); }
}
@keyframes sweep {
  0%,100% { transform: translateX(0) rotate(var(--rot, 0deg)) scaleX(1); opacity:.18; }
  50%     { transform: translateX(10vmin) rotate(var(--rot, 0deg)) scaleX(1.25); opacity:.5; }
}

/* 모바일 최적화 */
@media (max-width:560px), (orientation:portrait){
  .hero-fx .fx--ring{ width:88vmin; opacity:.48; filter:blur(16px); }
  .hero-fx .fx--flare{ width:58vmin; filter:blur(22px); }
  .hero-fx .fx--magenta{ width:44vmin; }
  .hero-fx .fx--streak{ width:80vmin; height:2.6vmin; filter:blur(7px); }
}


/* ====== Globe-only Anamorphic Lens Flare (no JS) ====== */
.fx-on-globe{ position:relative; isolation:isolate; z-index:5; }
.fx-on-globe .globe-img{ display:block; width:100%; height:auto; position:relative; z-index:1; }

.fx-on-globe .gflare{
  position:absolute; inset:0; pointer-events:none; z-index:2;
  mix-blend-mode:screen; will-change:transform,opacity,filter;
}

/* 1) 스펙트럼 스트릭 (아나모픽) */
.fx-on-globe .gflare--spectrum{
  /* 위치/크기 튜닝 포인트 */
  --rot: -10deg;   /* 스트릭 기울기 */
  --x: 62%;        /* 중심 x(%)  지구본 오른쪽 하이라이트 쪽 */
  --y: 52%;        /* 중심 y(%)  */

  width: 120%;
  height: 70%;
  left: var(--x); top: var(--y);
  transform: translate(-50%,-50%) rotate(var(--rot));
  /* 컬러 스펙트럼 + 타원 마스크로 아나모픽 형태 */
  background: linear-gradient(90deg,
      rgba(255,0,0,.22) 0%,
      rgba(255,165,0,.30) 15%,
      rgba(255,255,0,.35) 30%,
      rgba(0,255,128,.35) 50%,
      rgba(0,160,255,.35) 70%,
      rgba(127,0,255,.30) 85%,
      rgba(255,0,255,.22) 100%);
  -webkit-mask: radial-gradient(120% 60% at 50% 50%, #000 42%, transparent 65%);
          mask: radial-gradient(120% 60% at 50% 50%, #000 42%, transparent 65%);
  filter: blur(22px) saturate(118%);
  opacity: .58;
  animation: spectrumBreath 9s ease-in-out infinite;
}

/* 2) 코어 플레어(강한 블루밍) */
.fx-on-globe .gflare--core{
  --x: 60%;
  --y: 50%;
  width: 46%;
  aspect-ratio: 1/1;
  left: var(--x); top: var(--y);
  transform: translate(-50%,-50%);
  background:
    radial-gradient(closest-side, rgba(255,255,255,.95), rgba(200,240,255,.65) 35%, transparent 70%),
    radial-gradient(120% 90% at 35% 35%, rgba(120,210,255,.55), transparent 65%);
  filter: blur(24px) saturate(120%);
  opacity: .70;
  animation: corePulse 6.6s ease-in-out infinite;
}

/* 3) 고스트 오브(작은 원형 반사들) */
.fx-on-globe .gflare--ghost{
  width: 18%;
  aspect-ratio: 1/1;
  border-radius: 50%;
  filter: blur(14px);
  opacity: .42;
  background:
    radial-gradient(closest-side, rgba(120,210,255,.85), rgba(120,210,255,.25) 55%, transparent 80%),
    radial-gradient(130% 90% at 70% 70%, rgba(169,107,255,.35), transparent 60%);
}
.fx-on-globe .gflare--ghost-a{
  left: 42%; top: 38%;
  transform: translate(-50%,-50%);
  animation: ghostDriftA 8.5s ease-in-out infinite;
}
.fx-on-globe .gflare--ghost-b{
  width: 12%;
  left: 74%; top: 63%;
  transform: translate(-50%,-50%);
  filter: blur(18px);
  opacity: .36;
  animation: ghostDriftB 7.8s ease-in-out infinite;
}

/* 얇은 수평 줄무늬(아나모픽 느낌 강화) — 선택 */
.fx-on-globe .gflare--spectrum::after{
  content:"";
  position:absolute; inset:0;
  background:
    repeating-linear-gradient(0deg, rgba(255,255,255,.05) 0 2px, transparent 2px 6px);
  -webkit-mask: inherit; mask: inherit;
  filter: blur(0.6px);
  opacity:.45;
  pointer-events:none;
}

/* 애니메이션 */
@keyframes spectrumBreath{
  0%,100%{ transform: translate(-50%,-50%) rotate(var(--rot)) scaleX(1); opacity:.50; }
  50%    { transform: translate(-50%,-50%) rotate(calc(var(--rot) + 2deg)) scaleX(1.08); opacity:.62; }
}
@keyframes corePulse{
  0%,100%{ transform: translate(-50%,-50%) scale(1); }
  50%    { transform: translate(-50%,-50%) scale(1.07); }
}
@keyframes ghostDriftA{
  0%,100%{ transform: translate(-50%,-50%) translateX(-2%) scale(1); opacity:.40; }
  50%    { transform: translate(-50%,-50%) translateX(3%)  scale(1.08); opacity:.48; }
}
@keyframes ghostDriftB{
  0%,100%{ transform: translate(-50%,-50%) translateY(0%) scale(1); }
  50%    { transform: translate(-50%,-50%) translateY(-6%) scale(1.06); }
}

/* 모바일 보정 */
@media (max-width:560px), (orientation:portrait){
  .fx-on-globe .gflare--spectrum{ width: 140%; height: 80%; filter: blur(18px); opacity:.52; }
  .fx-on-globe .gflare--core{ width: 58%; filter: blur(22px); }
  .fx-on-globe .gflare--ghost{ width: 22%; filter: blur(12px); }
  .fx-on-globe .gflare--ghost-b{ width: 16%; }
}


@media (max-width:560px) {
  .globe-mobile .gflare { opacity: 0.45; filter: blur(16px); }
}


/* ====== Globe-only Anamorphic Lens Flare (no JS) ====== */
.fx-on-globe{ position:relative; isolation:isolate; z-index:5; }
.fx-on-globe .globe-img{ display:block; width:100%; height:auto; position:relative; z-index:999; }

.fx-on-globe .gflare{
  position:absolute; inset:0; pointer-events:none; z-index:2;
  mix-blend-mode:screen; will-change:transform,opacity,filter;
}

/* 1) 스펙트럼 스트릭 (아나모픽) */
.fx-on-globe .gflare--spectrum{
  /* 위치/크기 튜닝 포인트 */
  --rot: -10deg;   /* 스트릭 기울기 */
  --x: 62%;        /* 중심 x(%)  지구본 오른쪽 하이라이트 쪽 */
  --y: 52%;        /* 중심 y(%)  */

  width: 120%;
  height: 70%;
  left: var(--x); top: var(--y);
  transform: translate(-50%,-50%) rotate(var(--rot));
  /* 컬러 스펙트럼 + 타원 마스크로 아나모픽 형태 */
  background: linear-gradient(90deg,
      rgba(255,0,0,.22) 0%,
      rgba(255,165,0,.30) 15%,
      rgba(255,255,0,.35) 30%,
      rgba(0,255,128,.35) 50%,
      rgba(0,160,255,.35) 70%,
      rgba(127,0,255,.30) 85%,
      rgba(255,0,255,.22) 100%);
  -webkit-mask: radial-gradient(120% 60% at 50% 50%, #000 42%, transparent 65%);
          mask: radial-gradient(120% 60% at 50% 50%, #000 42%, transparent 65%);
  filter: blur(22px) saturate(118%);
  opacity: .58;
  animation: spectrumBreath 9s ease-in-out infinite;
}

/* 2) 코어 플레어(강한 블루밍) */
.fx-on-globe .gflare--core{
  --x: 60%;
  --y: 50%;
  width: 46%;
  aspect-ratio: 1/1;
  left: var(--x); top: var(--y);
  transform: translate(-50%,-50%);
  background:
    radial-gradient(closest-side, rgba(255,255,255,.95), rgba(200,240,255,.65) 35%, transparent 70%),
    radial-gradient(120% 90% at 35% 35%, rgba(120,210,255,.55), transparent 65%);
  filter: blur(24px) saturate(120%);
  opacity: .70;
  animation: corePulse 6.6s ease-in-out infinite;
}

/* 3) 고스트 오브(작은 원형 반사들) */
.fx-on-globe .gflare--ghost{
  width: 18%;
  aspect-ratio: 1/1;
  border-radius: 50%;
  filter: blur(14px);
  opacity: .42;
  background:
    radial-gradient(closest-side, rgba(120,210,255,.85), rgba(120,210,255,.25) 55%, transparent 80%),
    radial-gradient(130% 90% at 70% 70%, rgba(169,107,255,.35), transparent 60%);
}
.fx-on-globe .gflare--ghost-a{
  left: 42%; top: 38%;
  transform: translate(-50%,-50%);
  animation: ghostDriftA 8.5s ease-in-out infinite;
}
.fx-on-globe .gflare--ghost-b{
  width: 12%;
  left: 74%; top: 63%;
  transform: translate(-50%,-50%);
  filter: blur(18px);
  opacity: .36;
  animation: ghostDriftB 7.8s ease-in-out infinite;
}

/* 얇은 수평 줄무늬(아나모픽 느낌 강화) — 선택 */
.fx-on-globe .gflare--spectrum::after{
  content:"";
  position:absolute; inset:0;
  background:
    repeating-linear-gradient(0deg, rgba(255,255,255,.05) 0 2px, transparent 2px 6px);
  -webkit-mask: inherit; mask: inherit;
  filter: blur(0.6px);
  opacity:.95;
  pointer-events:none;
}

/* 애니메이션 */
@keyframes spectrumBreath{
  0%,100%{ transform: translate(-50%,-50%) rotate(var(--rot)) scaleX(1); opacity:.50; }
  50%    { transform: translate(-50%,-50%) rotate(calc(var(--rot) + 2deg)) scaleX(1.08); opacity:.62; }
}
@keyframes corePulse{
  0%,100%{ transform: translate(-50%,-50%) scale(1); }
  50%    { transform: translate(-50%,-50%) scale(1.07); }
}
@keyframes ghostDriftA{
  0%,100%{ transform: translate(-50%,-50%) translateX(-2%) scale(1); opacity:.40; }
  50%    { transform: translate(-50%,-50%) translateX(3%)  scale(1.08); opacity:.48; }
}
@keyframes ghostDriftB{
  0%,100%{ transform: translate(-50%,-50%) translateY(0%) scale(1); }
  50%    { transform: translate(-50%,-50%) translateY(-6%) scale(1.06); }
}

/* 모바일 보정 */
@media (max-width:560px), (orientation:portrait){
  .fx-on-globe .gflare--spectrum{ width: 140%; height: 80%; filter: blur(18px); opacity:.52; }
  .fx-on-globe .gflare--core{ width: 58%; filter: blur(22px); }
  .fx-on-globe .gflare--ghost{ width: 22%; filter: blur(12px); }
  .fx-on-globe .gflare--ghost-b{ width: 16%; }
}


@media (max-width:560px) {
  .globe-mobile .gflare { opacity: 0.45; filter: blur(16px); }
}

/* === Globe Lens Flare (match gflare-* in HTML) === */
/* 레이어 기준점 및 기본 레이어 정리 */
.globe-wrap{ position:relative; }
.globe-wrap .globe-core{ position:relative; z-index:2; }
.globe-wrap .globe-glow{ position:absolute; z-index:1; }

/* 플레어 컨테이너 */
.gflare-layer{
  position:absolute; inset:-8%;
  z-index:5;               /* globe 위로 */
  pointer-events:none;
  mix-blend-mode:screen;   /* 배경과 자연스럽게 섞임 */
  overflow:visible;
  isolation:isolate;
}

/* 공통 플레어 파츠 */
.gflare{
  position:absolute;
  left:50%; top:50%;
  transform:translate(-50%,-50%);
  will-change:transform, opacity;
}

/* 1) 스펙트럼 스트릭(아나모픽 가로 빛줄기) */
.gflare--spectrum{
  width: 180%;
  height: 14%;
  border-radius:999px;
  background:
    linear-gradient(90deg,
      rgba(255,255,255,0) 0%,
      rgba(120,210,255,.85) 45%,
      rgba(255,255,255,.98) 50%,
      rgba(210,140,255,.85) 55%,
      rgba(255,255,255,0) 100%);
  filter: blur(10px);
  opacity:.55;
  animation: gflare-sweep 3.6s ease-in-out infinite;
}

/* 2) 코어 글로우(숨쉬듯 번쩍) */
.gflare--core{
  width: 58%;
  aspect-ratio: 1/1;
  border-radius:50%;
  background:
    radial-gradient(closest-side, rgba(255,255,255,.95), rgba(255,255,255,.35) 38%, transparent 70%),
    radial-gradient(120% 90% at 35% 30%, rgba(127,233,255,.55), transparent 60%);
  filter: blur(24px) saturate(115%);
  opacity:.65;
  animation: gflare-pulse 1.8s ease-in-out infinite;
}

/* 3) 고스트 플레어(렌즈 내부 난반사 점광) */
.gflare--ghost{
  width: 26%;
  aspect-ratio: 1/1;
  border-radius:50%;
  background:
    radial-gradient(closest-side, rgba(210,140,255,.85), rgba(120,210,255,.25) 55%, transparent 75%);
  filter: blur(14px);
  opacity:.45;
  animation: gflare-drift 7s ease-in-out infinite;
}
.gflare--ghost-a{ transform:translate(-12%, -58%) scale(.9); }
.gflare--ghost-b{ transform:translate(42%, 24%) scale(.8); opacity:.38; animation-duration:8.4s; }

/* 애니메이션 */
@keyframes gflare-sweep{
  0%   { transform:translate(-120%, -50%) scaleX(1); opacity:0; }
  10%  { opacity:.55; }
  50%  { transform:translate(-50%, -50%) scaleX(1.15); opacity:.9; }
  90%  { opacity:0; }
  100% { transform:translate(60%, -50%) scaleX(1); opacity:0; }
}
@keyframes gflare-pulse{
  0%,100%{ transform:translate(-50%,-50%) scale(.95); opacity:.55; }
  40%    { transform:translate(-50%,-50%) scale(1.04); opacity:1; }
}
@keyframes gflare-drift{
  0%,100%{ transform:translate(42%, 24%) scale(.8); }
  50%    { transform:translate(46%, 20%) scale(.88); }
}

/* 모바일: 강도·각도 살짝 조정 */
@media (max-width:560px){
  .gflare--spectrum{ height:12%; animation-duration:3.2s; filter: blur(9px); }
  .gflare--core{ width:64%; filter: blur(20px); }
}

/* 모션 줄이기 옵션 존중 */
@media (prefers-reduced-motion: reduce){
  .gflare--spectrum, .gflare--core, .gflare--ghost{ animation:none !important; opacity:.35; }
}


/* ===== Speakers section ===== */
.section-speakers{ padding: clamp(40px,6vw,80px) 0; }
.speakers-title{ display:flex; align-items:center; justify-content:center; gap:12px; margin-bottom:36px; }
.speakers-title i{ font-size:1.6rem; color:#9ecbff; }
.speakers-title h2{ font-size:clamp(1.4rem,4vw,2rem); font-weight:800; color:#e9f4ff; letter-spacing:.04em; }

.speakers-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(18px,2vw,28px);
  text-align:center;
}
.sp{
  background:rgba(255,255,255,.04);
  border-radius:16px;
  padding:24px 16px;
  box-shadow:0 6px 24px rgba(0,0,0,.25);
  transition:transform .3s ease;
}
.sp:hover{ transform:translateY(-4px); }
.sp .ph{
  width:120px; height:120px; border-radius:50%;
  margin:0 auto 14px; background:#1b2445; display:flex; align-items:center; justify-content:center;
  color:#7782b9; font-weight:600;
}
.sp b{ display:block; font-size:1.1rem; margin-bottom:6px; color:#fff; }
.sp .muted{ font-size:.9rem; color:#aab8e0; line-height:1.4; }

/* Responsive */
@media (max-width: 980px){
  .speakers-grid{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px){
  .speakers-grid{ grid-template-columns: 1fr; }
  .sp{ padding:20px 14px; }
  .sp .ph{ width:100px; height:100px; }
}


.speakers-title{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:row;   /* ← 세로(column) → 가로(row) 변경 */
  gap:12px;
  margin-bottom:36px;
}
.speakers-title i{
  font-size:1.6rem;
  color:#9ecbff;
}
.speakers-title h2{
  font-size:clamp(1.4rem,4vw,2rem);
  font-weight:800;
  color:#e9f4ff;
  letter-spacing:.04em;
  margin:0;
}

/* ===== Merged inline styles from index1101_2.html ===== */

/* ====== Base & Variables ====== */
  @font-face{font-family:'DINPro';font-weight:300;font-style:normal;src:url('./fonts/D-DIN.woff2') format('woff2'), url('./fonts/D-DIN.woff') format('woff');font-display:swap;}
  @font-face{font-family:'DINPro';font-weight:700;font-style:normal;src:url('./fonts/D-DIN-Bold.woff2') format('woff2'), url('./fonts/D-DIN-Bold.woff') format('woff');font-display:swap;}
  @font-face{font-family:'KBO Dia';font-weight:700;font-style:normal;src:url('./fonts/KBO-Dia-Gothic_bold.woff') format('woff');font-display:swap;}
  @font-face{font-family:'KBO Dia';font-weight:500;font-style:normal;src:url('./fonts/KBO-Dia-Gothic_medium.woff') format('woff');font-display:swap;}

  :root{
    --container: 1280px;
    --gutter: 24px;
    --align-fix: -6px;
    --bg: #090a12; --txt:#e8ecff; --grid: rgba(255,255,255,.06);
    --cta-c1: #58F0FF; --cta-c2: #A96BFF; --cta-accent: #7FE9FF; --cta-tag:#FF3E7F;
  }

  *{box-sizing:border-box}
  html,body{height:100%}
  html{scroll-behavior:smooth}
  body{margin:0;background:var(--bg);color:var(--txt);font-family:'Pretendard',system-ui,sans-serif;overflow-x:hidden;}
  a{text-decoration:none}
  .wrap{width:min(100% - 2*var(--gutter), var(--container)); margin-inline:auto; padding-inline:var(--gutter);}

  /* ====== Header ====== */
  header{position:sticky;top:0;z-index:60;background:rgba(10,12,23,.85);backdrop-filter:blur(8px);border-bottom:1px solid #242a51;padding-top:max(env(safe-area-inset-top),0px);}
  .nav{display:flex;align-items:center;justify-content:space-between;padding:14px 0}
  .brand .title{font-family:'DINPro';font-weight:700;font-size:18px;margin:0;letter-spacing:.02em}
  .menu{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
  .pill{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:999px;font-weight:800;font-size:15px;color:#0b1424;position:relative;overflow:hidden;transition:transform .2s, box-shadow .2s, background .2s;border:1.5px solid var(--cta-accent);background:linear-gradient(90deg,var(--cta-c1),var(--cta-c2));box-shadow:0 6px 18px rgba(88,240,255,.25),0 0 14px rgba(169,107,255,.18)}
  .pill i{font-size:14px;color:#fff}
  .pill span{color:#0b1424}
  .pill:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(88,240,255,.35),0 0 18px rgba(169,107,255,.28)}
  .pill--outline{background:rgba(88,240,255,.08);border:1.5px solid rgba(100,180,255,.55);box-shadow:none;color:#e8ecff}  

  .pill--outline span{color:#e8ecff}
  .pill--outline:hover{background:linear-gradient(90deg,#58f0ff33,#a96bff33);box-shadow:0 0 20px rgba(127,233,255,.45)}

  /* ====== Hero ====== */
  .hero{position:relative; height:clamp(680px,92svh,100svh); display:flex; align-items:center; overflow:visible; color:#fff; padding-bottom:120px;}
  .hero-bg{position:absolute; inset:0; background:url('./img/bg_back.jpg') center/cover no-repeat; z-index:0;}
  #halo-bg{position:absolute; inset:0; z-index:1; mix-blend-mode:screen; opacity:.6; pointer-events:none;}
  .hero-grid{position:absolute; inset:0; z-index:2; background-image:linear-gradient(var(--grid) 1px, transparent 1px),linear-gradient(90deg, var(--grid) 1px, transparent 1px); background-size:80px 80px; opacity:.14;}
  .fx-layer{position:absolute; inset:0; z-index:2; mix-blend:screen; pointer-events:none;}

  /* Globe (single source of truth) */
  .globe-wrap{position:absolute; z-index:3; pointer-events:none; filter:drop-shadow(0 10px 26px rgba(0,0,0,.35));}
  .globe-core{width:100%; height:auto; display:block; filter:brightness(1.06) contrast(1.02);}
  .globe-glow{position:absolute; inset:-12%; border-radius:50%; background:
    radial-gradient(60% 60% at 62% 38%, rgba(127,233,255,.55) 0%, rgba(180,120,255,.35) 40%, rgba(0,0,0,0) 75%),
    radial-gradient(50% 50% at 30% 70%, rgba(255,255,255,.28) 0%, rgba(0,0,0,0) 60%);
    mix-blend-mode:screen; filter:blur(42px); animation:glowPulse 6s ease-in-out infinite; opacity:.85;}
  @keyframes glowPulse{0%,100%{opacity:.65; transform:scale(1);} 50%{opacity:1; transform:scale(1.05);} }

  /* Desktop globe position */
  .globe-desktop{ right:3vw; top:-5vh; width:48vw; max-width:700px; }
  .globe-mobile{ display:none; } /* hidden by default (desktop) */

  /* Intro / Titles */
  .hero .wrap{position:relative; z-index:4; display:grid; grid-template-columns:1fr; justify-items:start; align-items:center; gap:18px;}
  .intro-content{max-width:820px; text-align:left; transform:translateY(-70px); margin-left:var(--align-fix);}
  .title-top{display:flex; align-items:baseline; gap:16px; flex-wrap:nowrap}
  .title-top .year{font-family:'KBO Dia'; font-weight:700; font-size:clamp(34px,3.5vw,60px); line-height:1; margin:0}
  .title-top .eng{font-family:'DINPro'; font-weight:700; font-size:clamp(22px,2.5vw,42px); letter-spacing:.02em; color:#00e7ff}
  .ko-title{font-family:'KBO Dia'; font-weight:500; font-size:clamp(30px,4.5vw,54px); line-height:1.12; margin-top:10px;
   background: linear-gradient(to bottom, #ffffff 40%, #2bbcef 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;}
  .tech-day{font-family:'DINPro'; font-weight:300; font-size:clamp(18px,1.6vw,24px); opacity:.95; color:#cfeaff; margin-top:6px}
  .intro-info{margin-top:18px; font-size:17px; line-height:1.7}
  .intro-info b{color:#7fe9ff; margin-right:10px}

  /* CTA */
  .cta-row{margin-top:24px; display:flex; gap:12px; flex-wrap:wrap}
  .cta-card{
    display:flex; align-items:center; gap:18px; padding:22px 40px; border-radius:18px;
    background:linear-gradient(90deg,var(--cta-c1),var(--cta-c2));
    border:2px solid var(--cta-accent);
    box-shadow:0 8px 28px rgba(88,240,255,.25), 0 0 22px rgba(169,107,255,.22);
    color:#081018; position:relative; overflow:visible; text-decoration:none;
    transition:transform .22s ease, box-shadow .22s ease, filter .22s ease;
  }
  .cta-card:hover{ transform:translateY(-3px); box-shadow:0 10px 36px rgba(88,240,255,.35), 0 0 30px rgba(169,107,255,.32); filter:saturate(1.05); }
  .cta-card::before{ content:""; position:absolute; inset:1px; border-radius:16px; background:linear-gradient(180deg,rgba(255,255,255,.28),rgba(255,255,255,.06)); mix-blend-mode:overlay; pointer-events:none; }
  .cta-card .cta-icon{ color:#fff; font-size:30px; text-shadow:0 0 12px rgba(255,255,255,.35); flex:0 0 auto; line-height:1; }
  .cta-card .cta-text strong{ display:block; font-size:20px; font-weight:900; letter-spacing:-0.02em; color:#0a1424; }
  .cta-card .cta-text span{ display:block; font-size:14px; color:#0a1424; opacity:.9; margin-top:2px; }
  .cta-card .tag{ position:absolute; right:-10px; top:-14px; transform:rotate(8deg); background:var(--cta-tag); color:#fff; font-weight:900; font-size:13px; padding:6px 9px; border-radius:999px; box-shadow:0 6px 18px rgba(255,62,127,.45); z-index:5; pointer-events:none; }

  /* Sponsors */
  .sponsors{position:absolute; left:0; right:0; bottom:max(env(safe-area-inset-bottom) + 12px,14px); z-index:3;}
  .sponsors .wrap{display:flex; gap:36px; justify-content:center; align-items:center; opacity:.95; flex-wrap:wrap; padding-bottom:20px;}
  .sponsors img{height:40px; filter:drop-shadow(0 6px 14px rgba(0,0,0,.35)); opacity:.95}

  /* Floating CTA */
  .floating-cta{ position:fixed; right:22px; bottom:22px; z-index:70; display:flex; gap:10px; align-items:center; flex-direction:column; }
  .floating-cta .float-pill{ display:inline-flex; align-items:center; gap:10px; padding:14px 18px; border-radius:999px; background:linear-gradient(90deg,var(--cta-c1),var(--cta-c2)); border:1.5px solid var(--cta-accent); color:#0b1424; font-weight:900; box-shadow:0 10px 26px rgba(88,240,255,.35),0 0 24px rgba(169,107,255,.32); }
  .floating-cta .float-top{ background:rgba(88,240,255,.1); border:1.5px solid rgba(127,233,255,.55); color:#e8ecff; box-shadow:none; font-weight:700; }
  .floating-cta .float-top i{ color:#7fe9ff }
  .floating-cta .float-pill i{ color:#fff }

  /* Sections */
  section[id]{ scroll-margin-top:88px; }
  .section{padding:100px 0; border-top:1px solid #1b2140}
  .section .wrap h2{margin:0 0 12px; font-size:28px}
  .section .wrap p{opacity:.85; line-height:1.8}

  /* ====== Responsive ====== */
  @media (max-width: 1024px){
    .hero-grid{opacity:.12;}
    .intro-content{transform:translateY(-56px);}
  }

  /* Mobile (≤ 560px OR portrait) */
  @media (max-width:560px), (orientation:portrait){
    .menu{display:none}
    .floating-cta{ right:12px; bottom:12px; }
    .floating-cta .float-pill{ padding:12px 16px }

    /* layer order already consistent; just sizes/positions */
    .globe-desktop{ display:none; }
    .globe-mobile{
      display:block;
      position:absolute;
      top:0vh;                 /* 크게 보이도록 상단에서 내려오게 */
      left:50%;
      transform:translateX(-50%);
      width:80vw;               /* 임팩트 */
      max-width:none;
      aspect-ratio:1/1;
      z-index:3;
    }
    #halo-bg{ inset:0; opacity:.55; }

    .hero .wrap{justify-items:stretch;}
    .intro-content{
      position:relative; z-index:4;
      text-align:left; margin:20vh 0 18px; padding:20px 20px;
      background: linear-gradient(180deg, rgba(36,44,84,.28), rgba(18,22,40,.18));
      border: 1px solid rgba(143,193,255,.25);
      border-radius: 16px; backdrop-filter: blur(6px);
      box-shadow: 0 12px 36px rgba(0,0,0,.35);
    }
    .title-top .year{ font-size: clamp(28px, 7vw, 36px); }
    .title-top .eng{ font-size: clamp(14px, 35vw, 18px); }
    .ko-title{ font-size: clamp(22px, 6vw, 28px); }
    .tech-day{ font-size: clamp(13px, 3.8vw, 16px); opacity:.95; }

    .intro-info{ font-size:14px; line-height:1.65; }
    .intro-info b{ margin-right:8px; }

    .cta-row{ gap:10px; margin-top:16px; }
    .cta-card{ width:100%; justify-content:center; padding:16px 18px; border-radius:16px; }
    .cta-card .cta-icon{ font-size:26px; }
    .cta-card .tag{ top:-12px; right:-8px; }

    .hero{ height:auto; min-height:100svh; padding-bottom:120px; }
  }
  
/* ==== Injected blocks for legacy content styled to current theme ==== */
.section .wrap h3.sub{margin:18px 0 10px;font-size:22px;opacity:.95}
.overview-grid{display:grid;grid-template-columns:1fr 2fr;gap:12px 18px;background:rgba(24,30,60,.45);border:1px solid rgba(143,193,255,.25);border-radius:14px;padding:18px 18px}
.overview-grid .ov-item{display:contents}
.overview-grid b{color:#7fe9ff}
.overview-grid span{opacity:.95}

.timeline{list-style:none;margin:0;padding:0;border-left:2px solid rgba(127,233,255,.35)}
.timeline li{display:grid;grid-template-columns:120px 1fr auto;gap:12px;padding:12px 14px 12px 18px;position:relative}
.timeline li::before{content:"";position:absolute;left:-7px;top:20px;width:10px;height:10px;border-radius:50%;background:linear-gradient(90deg,var(--cta-c1),var(--cta-c2));box-shadow:0 0 12px rgba(127,233,255,.6)}
.timeline time{font-family:'DINPro';font-weight:700;opacity:.95}
.timeline span{font-weight:700}
.timeline em{opacity:.8; font-style:normal}
.timeline li:nth-child(odd){background:rgba(10,14,30,.35)}
.timeline li:nth-child(even){background:rgba(14,18,34,.35)}

.speaker-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}
.speaker-grid .sp{aspect-ratio:1/1;background:rgba(127,233,255,.12);border:1px dashed rgba(127,233,255,.4);border-radius:14px;display:flex;align-items:center;justify-content:center;opacity:.8}
.note{opacity:.7;margin-top:10px}

.map-card{background:rgba(24,30,60,.45);border:1px solid rgba(143,193,255,.25);border-radius:14px;padding:18px 18px}
.map-card h3{margin:0 0 8px;font-size:22px}
.map-card dl{margin:10px 0 0}
.map-card dt{font-weight:800;color:#7fe9ff;margin-bottom:4px}
.map-card dd{margin:0;opacity:.95}

.apply-box{display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:rgba(24,30,60,.45);border:1px solid rgba(143,193,255,.25);border-radius:14px;padding:18px 18px}
.apply-box .pill{transform:none}
.apply-box .pill span{color:#0b1424}
@media (max-width: 560px){
  .overview-grid{grid-template-columns:1fr;gap:8px}
  .timeline{border-left:none;border-top:2px solid rgba(127,233,255,.35)}
  .timeline li{grid-template-columns:1fr; padding-left:14px}
  .timeline li::before{left:14px}
  .speaker-grid{grid-template-columns:repeat(3,1fr)}
}

/* ===== Table & Speaker styling (v2) ===== */
.tbl{width:100%; border-collapse:separate; border-spacing:0; overflow:hidden; border:1px solid rgba(143,193,255,.25); background:rgba(14,18,34,.5); border-radius:14px}
.tbl thead th{font-weight:800; text-align:left; padding:14px 16px; background:linear-gradient(0deg, rgba(127,233,255,.08), rgba(127,233,255,.14)); border-bottom:1px solid rgba(143,193,255,.25)}
.tbl tbody th{width:140px; text-align:left; padding:14px 16px; color:#7fe9ff; border-bottom:1px solid rgba(143,193,255,.16)}
.tbl td{padding:14px 16px; border-bottom:1px solid rgba(143,193,255,.12)}
.tbl tr:last-child th,.tbl tr:last-child td{border-bottom:none}

.speakers-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px}
.speaker-card{display:grid; grid-template-columns:96px 1fr; gap:14px; padding:14px; border:1px solid rgba(143,193,255,.25); border-radius:16px; background:rgba(24,30,60,.45)}
.speaker-card .thumb{width:96px; height:96px; border-radius:12px; overflow:hidden; background:rgba(127,233,255,.15)}
.speaker-card img{width:100%; height:100%; object-fit:cover; display:block}
.speaker-card .name{font-size:18px; margin:0 0 4px}
.speaker-card .role{opacity:.8; margin:0 0 6px}
.speaker-card .talk{margin:0; font-weight:700}

.venue-wrap{display:grid; grid-template-columns:1.2fr .8fr; gap:18px; align-items:start}
.venue-map{margin:0; border-radius:16px; overflow:hidden; border:1px solid rgba(143,193,255,.25); background:rgba(24,30,60,.45)}
.venue-map img{width:100%; height:auto; display:block}
.venue-map figcaption{padding:10px 12px; font-size:14px; opacity:.9}
.apply-note{opacity:.9; margin:0}

@media (max-width: 900px){
  .speakers-grid{grid-template-columns:1fr 1fr}
  .venue-wrap{grid-template-columns:1fr; }
}
@media (max-width: 560px){
  .speaker-card{grid-template-columns:72px 1fr}
  .speaker-card .thumb{width:72px; height:72px; border-radius:10px}
  .tbl tbody th{width:110px}
}

/* ===== Container constraint fix (keep inside .wrap) ===== */
:root{--wrap:1180px; --gutter:5px}
section .wrap{max-width:var(--wrap); margin-left:auto; margin-right:auto; padding-left:var(--gutter); padding-right:var(--gutter); box-sizing:border-box}
.tbl, .speakers-grid, .venue-wrap, .apply-box, .overview-grid, .program, .map-card{max-width:100%; box-sizing:border-box}
/* Prevent any accidental full-viewport widths */
[class*="grid"], .timeline, .section-body{max-width:100%; box-sizing:border-box}

/* === Speakers responsive grid & title hierarchy (2025-11-01) === */
.speakers-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
  align-items: stretch;
}
@media (max-width: 980px){
  .speakers-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 620px){
  .speakers-grid { grid-template-columns: 1fr; }
}

.sp {
  text-align: center;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(143,193,255,.20);
  border-radius: 16px;
  padding: 20px 16px;
  box-shadow: 0 8px 24px rgba(0,0,0,.25);
  transition: transform .25s ease, box-shadow .25s ease;
}
.sp:hover { transform: translateY(-4px); box-shadow: 0 12px 30px rgba(0,0,0,.35); }

.sp .ph {
  width: 140px; height: 140px; margin: 0 auto 14px;
  border-radius: 50%; overflow: hidden;
  display: grid; place-items: center;
  background: radial-gradient(circle at 30% 30%, #0a1a3a, #030915);
  border: 1px solid rgba(255,255,255,.10);
}
.sp .ph img { width:100%; height:100%; object-fit:cover; object-position:center; border-radius:50%; }

/* Title hierarchy: talk title most prominent */
.sp .talk-title {
  font-size: 0.9rem;          /* 작게 */
  font-weight: 500;            /* 얇게 */
  color: #9ecbff;              /* 살짝 컬러 추가 */
  line-height: 1.4;
  margin: 8px 0 6px;
}
.sp .talk-time {
  font-variant-numeric: tabular-nums;
    display: inline-block;
  padding: 4px 10px;
  background: rgba(120, 180, 255, 0.15);  /* 은은한 배경 */
  border: 0px solid rgba(120, 200, 255, 0.35); /* 라인 추가 */
  border-radius: 8px;                     /* 둥근 모서리 */
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  color: #c8cdd3;
  margin-bottom: 6px;
  font-size: 0.7rem;
}

.sp b { display:block; font-size: 16px; font-weight: 800; margin-top: 6px; }
.sp .muted { font-size: 14px; opacity: .9; }


/* === Speakers session grouping (2025-11-01) === */
.session-title{
  font-size: 1.4rem;
  font-weight: 800;
  color: #a4d1ff;
  margin: 48px 0 16px;
  text-align: left;
  border-left: 4px solid #00b3ff;
  padding-left: 10px;
}
.session-title.keynote{ color: #ffd36a; border-color: #ffb400; }

.speakers-grid{ display:grid; gap:28px; }

/* Layout: Keynote 1 / Seminar1 2 / Seminar2 4 (responsive) */
.keynote-grid{ grid-template-columns: repeat(1,1fr); }
.seminar1-grid{ grid-template-columns: repeat(2,1fr); }
.seminar2-grid{ grid-template-columns: repeat(4,1fr); }
@media (max-width: 1200px){
  .seminar2-grid{ grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 700px){
  .seminar1-grid, .seminar2-grid{ grid-template-columns: 1fr; }
}

/* Card */
.sp{
  background: rgba(255,255,255,0.04);
  border-radius: 16px;
  text-align: center;
  padding: 20px 14px;
  border: 1px solid rgba(143,193,255,.20);
  box-shadow: 0 8px 24px rgba(0,0,0,.25);
  transition: transform .25s ease, box-shadow .25s ease;
}
.sp:hover{ transform: translateY(-4px); box-shadow: 0 12px 30px rgba(0,0,0,.35); }

/* Circle photo (any image fits) */
.sp .ph{
  width: 140px; height: 140px; margin: 0 auto 12px;
  border-radius: 50%; overflow: hidden; display: grid; place-items:center;
  background: radial-gradient(circle at 30% 30%, #0a1a3a, #030915);
  border: 1px solid rgba(255,255,255,.10);
}
.sp .ph img{ width:100%; height:100%; object-fit:cover; border-radius: 50%; }

/* Hierarchy: talk title > time > name > org */
.talk-title{ font-size: clamp(18px, 1.6vw, 22px); font-weight: 900; margin: 6px 0 4px; line-height:1.25; color:#fff; }
.talk-time{ font-variant-numeric: tabular-nums; font-weight:700; color:#9ecbff; margin-bottom:8px; }
.sp b{ display:block; font-size:16px; font-weight:800; margin-top:6px; }
.sp .muted{ font-size:14px; opacity:.9; }


.sp .ph {
  width: 140px;
  aspect-ratio: 1 / 1; /* 항상 정사각형 유지 */
  margin: 0 auto 12px;
  border-radius: 50%;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background: radial-gradient(circle at 30% 30%, #0a1a3a, #030915);
  border: 1px solid rgba(255,255,255,.10);
  box-shadow: 0 0 8px rgba(0,0,0,0.4) inset, 0 0 10px rgba(0,140,255,0.2);
}

.sp .ph img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  border-radius: 50%;
  transition: transform 0.4s ease;
}

.sp .ph:hover img {
  transform: scale(1.08); /* 살짝 확대 */
}


/* Venue 타이틀 (개요/프로그램과 동일 패턴) */
.venue-title {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 18px;
}
.venue-title i {
  font-size: 20px;
  opacity: .9;
}
.venue-title h2 {
  font-size: clamp(22px, 2.6vw, 28px);
  line-height: 1.2;
  margin: 0;
}

/* 지도 이미지가 카드 네모 안에서 넘치지 않도록 */
.venue .map.card {
  overflow: hidden;              /* 넘침 숨김 */
}
.venue .map.card img {
  display: block;
  width: 100%;
  height: auto;                  /* 비율 유지 */
  max-width: 100%;
  object-fit: contain;           /* 박스 안으로 맞춤(잘림 없이) */
}


/* === VENUE Title: icon top, title below (centered) === */
.venue-title{
  display:flex; flex-direction:column; align-items:center; gap:8px;
  margin-bottom:32px; text-align:center;
}
.venue-title i{
  font-size:26px; color:#7fe9ff;
  filter: drop-shadow(0 0 6px rgba(127,233,255,.6));
}
#venue h2{
  font-size: clamp(30px, 4vw, 42px);
  font-weight: 800; margin:0; letter-spacing:-0.02em; color:#e7ebff;
}


/* === Map containment === */
.map.tight{ overflow:hidden; border-radius:14px; }
.map.tight img{ display:block; width:100%; height:auto; }

.venue-title {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  margin-bottom: 40px;
  text-align: center;
}
.venue-title i {
  font-size: 26px;
  color: #7fe9ff;
  filter: drop-shadow(0 0 6px rgba(127,233,255,.6));
}
.venue-title h2 {
  font-size: clamp(30px, 4vw, 42px);
  font-weight: 800;
  margin: 0;
  color: #e7ebff;
  letter-spacing: -0.02em;
}


/* === Footer (centered) === */
footer{ padding:40px 0 60px; color:var(--muted); border-top:1px solid #23264a; }
footer .copyright{ margin:0; text-align:center; font-size:.95rem; letter-spacing:.02em; opacity:.9; }

footer {
  padding:60px 0 80px;
  color:var(--muted);
  border-top:1px solid #23264a;
  text-align:center;       /* 추가 */
}
footer .copyright {
  display:inline-block;    /* 중앙 정렬 시 가독성 향상 */
  font-size:.95rem;
  opacity:.9;
}



/* === Responsive venue map (picture) === */
#venue .map.card{padding:0; overflow:hidden; border-radius:16px;}
#venue .map.card picture{display:block; width:100%;}
#venue .map.card img{display:block; width:100%; height:auto; object-fit:contain;}
@media (min-width:900px){
  #venue .map.card img{object-fit:cover;} /* desktop 이미지가 여백 없이 꽉 차도록 */
}

/* 지도 버튼 소형화 */
.map-links.compact {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 12px;
}
.btn.small {
  background: #0052cc;
  color: #fff;
  font-size: 0.85rem;
  padding: 6px 12px;
  border-radius: 4px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  text-decoration: none;
  transition: background 0.2s ease;
}
.btn.small:hover {
  background: #003c99;
}
.btn.small i {
  font-size: 0.9em;
}


/* Responsive venue map (picture) */
#venue .map.card{padding:0; overflow:hidden; border-radius:16px;}
#venue .map.card picture{display:block; width:100%;}
#venue .map.card img{display:block; width:100%; height:auto; object-fit:contain;}
@media (min-width:900px){
  #venue .map.card img{object-fit:cover;} /* 데스크탑은 여백 없이 꽉 차게 */
}
.venue-thumb {
  margin-top: 14px;
  border-radius: 6px;
  overflow: hidden;
}
.venue-thumb img {
  width: 100%;
  display: block;
  border: 1px solid #eee;
}


/* ===== PROGRAM V2: 카드 타임라인 (별도 클래스, 기존과 충돌 X) ===== */
.section-program--v2 { padding-block: 56px; }
.program-title--v2{
  display:flex; align-items:center; gap:10px; margin-bottom:20px;
}
.program-title--v2 i{ color:#0052cc; font-size:1.2rem; }
.program-title--v2 h2{ margin:0; font-size:1.6rem; }

.agenda-list--v2{
  list-style:none; margin:0; padding:0;
  display:grid; gap:12px;
}

/* 카드 */
.agenda-card--v2{
  display:grid;
  grid-template-columns: 130px 1fr auto;
  align-items:center;
  gap:16px;
  padding:14px 16px;
  background:#fff;
  border:1px solid #e8ebf4;
  border-radius:12px;
  box-shadow:0 1px 6px rgba(0,0,0,0.04);
}
.agenda-card--v2 .agenda-time{
  font-variant-numeric: tabular-nums;
  font-weight:600; color:#0b2a66;
}
.agenda-card--v2 .agenda-main h3{
  margin:0 0 4px; font-size:1.05rem; font-weight:700; color:#102138;
}
.agenda-card--v2 .agenda-main .meta{
  margin:0; color:#63708a; font-size:0.92rem;
}
.badge--v2{
  justify-self:end;
  font-size:0.78rem; font-weight:700;
  padding:6px 10px; border-radius:999px;
  background:#eef2ff; color:#1f3fb0; border:1px solid #dbe2ff;
}
.badge--key{ background:#ffe; color:#8a6d00; border-color:#f6e9a8; }
.badge--perf{ background:#ecfdf5; color:#047857; border-color:#c7f0e1; }
.badge--award{ background:#fff7ed; color:#9a3412; border-color:#ffe1c7; }

/* 섹션 디바이더 */
.agenda-section--v2{
  margin:16px 0 8px;
  padding:8px 12px;
  border-left:4px solid #0052cc;
  background:linear-gradient(90deg, #f3f6ff 0%, #ffffff 70%);
  color:#0b2a66; font-weight:800; border-radius:8px;
}
.agenda-section--v2.tag--seminar{
  border-left-color:#7c3aed;
  background:linear-gradient(90deg, #f6f0ff 0%, #ffffff 70%);
}

/* 반응형 */
@media (max-width:900px){
  .agenda-card--v2{
    grid-template-columns: 110px 1fr auto;
    padding:12px 14px;
  }
}
@media (max-width:640px){
  .agenda-card--v2{
    grid-template-columns: 1fr;
    gap:6px;
  }
  .badge--v2{ justify-self:start; }
  .agenda-card--v2 .agenda-time{ order:-1; opacity:.9; }
}

/* 살짝 더 컴팩트하게 쓰고 싶을 때 옵션 */
.section-program--v2.compact .agenda-card--v2{ padding:12px 14px; }
.section-program--v2.compact .agenda-card--v2 .agenda-main h3{ font-size:1rem; }


.section-program--v2 {
  padding-block: 56px;
  background: linear-gradient(180deg, #0b1222 0%, #10182a 100%);
  color: #fff;
}

.agenda-card--v2 {
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.1);
  box-shadow: 0 2px 10px rgba(0,0,0,0.25);
}

.agenda-card--v2 .agenda-main h3 {
  color: #ffffff;
}
.agenda-card--v2 .agenda-main .meta {
  color: rgba(255,255,255,0.7);
}
.agenda-card--v2 .agenda-time {
  color: #a5b9ff;
}
.agenda-section--v2 {
  border-left-color: #5b7fff;
  background: rgba(255,255,255,0.05);
  color: #cfd6ff;
}
.agenda-section--v2.tag--seminar {
  border-left-color: #b48eff;
}
.badge--v2 {
  background: rgba(255,255,255,0.12);
  color: #ffffff;
  border-color: rgba(255,255,255,0.2);
}
.badge--key {
  background: #ffe08a;
  color: #3a2700;
}
.badge--perf {
  background: #a7f3d0;
  color: #064e3b;
}
.badge--award {
  background: #fed7aa;
  color: #4b2e05;
}


.agenda-section.part1 {
  background: linear-gradient(90deg, #004aad 0%, #0077ff 100%);
  box-shadow: 0 2px 8px rgba(0, 75, 173, 0.3);
}
.agenda-section.part2 {
  background: linear-gradient(90deg, #7a00b3 0%, #d2006b 100%);
  box-shadow: 0 2px 8px rgba(122, 0, 179, 0.3);
}



.agenda-main h3 {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
  color: #fff;
  line-height: 1.6;
}

.agenda-main h3 .title-pair {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
}

.agenda-main h3 .org {
  font-weight: 400;
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.7);
  margin-left: 10px;
}




/* 섹션 톤: 딥 네이비 계열 */
.section-program--board {
  padding-block: 56px;
  background: linear-gradient(180deg, #0b1222 0%, #10182a 100%);
  color: #fff;
}

/* 타이틀 */
.program-title--board {
  display: flex; align-items: center; gap: 10px; margin-bottom: 16px;
}
.program-title--board i { color:#8ab0ff; }
.program-title--board h2 { margin:0; font-size:1.6rem; }

/* 보드 컨테이너 */
.agenda-board {
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 12px;
  overflow: hidden;
  backdrop-filter: blur(4px);
}

/* 기본 행 */
.board-row {
  display: grid;
  grid-template-columns: 200px 1fr 160px; /* 시간 / 내용 / 비고 */
  gap: 12px;
  padding: 12px 16px;
  align-items: center;
  background: rgba(255,255,255,0.04);
  border-top: 1px solid rgba(255,255,255,0.06);
}
.agenda-board .board-row:first-child { border-top: none; }

/* 얇은 섹션 헤더 */
.board-row.header-slim {
  grid-template-columns: 1fr;
  background: rgba(255,255,255,0.06);
  font-weight: 800;
  color: #cfd6ff;
}

/* 파트 헤더(1부/2부) */
.board-part {
  background: rgba(255,255,255,0.06);
  font-weight: 800;
}
.board-part .col-time { font-weight:700; opacity:.85; }
.board-part.part1 { background: linear-gradient(90deg, rgba(90,130,255,.22), rgba(0,0,0,0)); }
.board-part.part2 { background: linear-gradient(90deg, rgba(187,120,255,.22), rgba(0,0,0,0)); }

/* 컬럼 */
.col-time {
  font-variant-numeric: tabular-nums;
  color: #a5b9ff;
  white-space: nowrap;
}
.col-body .title { font-weight: 700; }
.col-body .desc  { color: rgba(255,255,255,0.75); margin-top: 2px; }

/* ‘개회사 – NIPA’ 형식 */
.pair {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px;
  line-height: 1.5;
}
.pair .label { font-weight: 700; color: #e9ecff; }
.pair .org   { font-weight: 400; color: rgba(255,255,255,.75); }

/* 비고 */
.col-etc {
  text-align: right;
  color: #c8d2ff;
  font-weight: 600;
}

/* 라운드 · 음영 */
.agenda-board .board-row:not(.board-part):hover {
  background: rgba(255,255,255,0.065);
}

/* 반응형 */
@media (max-width: 980px) {
  .board-row { grid-template-columns: 160px 1fr 120px; }
}
@media (max-width: 720px) {
  .board-row {
    grid-template-columns: 1fr;
    gap: 6px;
  }
  .col-etc { text-align: left; }
}


.agenda-main h3 {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
  color: #fff;
  line-height: 1.6;
}

/* 왼쪽 정렬용 */
.agenda-main h3 .title-pair {
  display: block;              /* 줄단위 표시 */
  margin-bottom: 2px;
}

.agenda-main h3 .org {
  display: inline-block;       /* 옆에 자연스럽게 붙음 */
  font-weight: 400;
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.7);
  margin-left: 6px;            /* 살짝 간격만 */
}


/* 세미나 카드 강조(색 포인트만) */
.agenda-card.seminar { border-left: 4px solid currentColor; }
.agenda-card.seminar .meta.strong { font-weight: 700; opacity: .95; }

.seminar--s1 { color: #6aa6ff; }      /* 최신기술(블루 톤) */
.seminar--s2 { color: #c79bff; }      /* 빅테크(퍼플 톤) */

/* 연사 서브리스트 */
.agenda-sub {
  list-style: none;
  margin: 10px 0 0;
  padding: 10px 12px;
  border-radius: 10px;
  background: rgba(255,255,255,0.06);    /* 다크톤에서 유리 느낌 */
  border: 1px solid rgba(255,255,255,0.10);
  display: grid;
  gap: 10px;
}
.agenda-sub .talk {
  display: grid;
  grid-template-columns: 110px 1fr;      /* 시간 / 내용 */
  align-items: start;
  gap: 12px;
}
.mini-time {
  font-variant-numeric: tabular-nums;
  color: rgba(255,255,255,0.75);
  white-space: nowrap;
}
.talk-body .who {
  color: #fff;
  font-weight: 600;
  line-height: 1.45;
}
.talk-body .who .name {
  font-weight: 600;color:#7fe9ff;
}
.talk-body .topic {
  margin-top: 2px;
  color: rgba(255,255,255,0.75);
  line-height: 1.55;
  font-size: .95rem;
  /* 필요시 말줄임: */
  /* overflow:hidden; white-space:nowrap; text-overflow:ellipsis; */
}

/* 반응형 */
@media (max-width: 720px){
  .agenda-sub .talk { grid-template-columns: 1fr; gap: 4px; }
  .mini-time { order: -1; }
}



/* Keynote 전용 강조(다른 카드 영향 X) */
.agenda-card--keynote{
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(91,127,255,0.20);
  border-left: 4px solid #5b7fff;
  border-radius: 14px;
  box-shadow: 0 2px 10px rgba(0,0,0,.25);
}

/* 시간 · 타이틀 · 스피커 위계 */
.agenda-card--keynote time{
  color:#a5b9ff;
  font-variant-numeric: tabular-nums;
  font-weight:700;
}

.agenda-card--keynote .title{
  margin:0 0 4px;
  line-height:1.45;
}
.agenda-card--keynote .title .kicker{
  display:inline-block;
  font-size:.85rem;
  font-weight:800;
  letter-spacing:.02em;
  padding:2px 8px;
  border-radius:999px;
  background: rgba(91,127,255,.15);
  color:#cfd6ff;
  margin-right:8px;
  vertical-align:middle;
}
.agenda-card--keynote .title .subject{
  display:inline-block;
  font-size:1.06rem;
  font-weight:800;
  color:#ffffff;
  vertical-align:middle;
}

/* 소속 · 이름 한 줄 정리 */
.agenda-card--keynote .speaker{
  margin:6px 0 0;
  color: rgba(255,255,255,.75);
  font-size:.95rem;
}
.agenda-card--keynote .speaker .affil::after{
  content:" · ";
  opacity:.6;
  margin:0 .3ch;
}
.agenda-card--keynote .speaker .name{
  color:#7fe9ff;
  font-weight:700;
}

/* 배지 색감 */
.badge--key{
  background:#ffe08a;
  color:#3a2700;
  border:1px solid #f6e9a8;
}

/* 반응형 보정(모바일에서 간격 살짝 컴팩트) */
@media (max-width:640px){
  .agenda-card--keynote .title .subject{ font-size:1.02rem; }
  .agenda-card--keynote .speaker{ font-size:.92rem; }
}


/* 공통 */
.agenda-card--nipa,
.agenda-card--result {
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(255,255,255,0.05);
  box-shadow: 0 2px 8px rgba(0,0,0,0.25);
}

/* 인재양성 성과발표 */
.agenda-card--nipa {
  border-left: 4px solid #00bcd4;
}
.agenda-card--nipa .badge {
  background: rgba(0,188,212,0.15);
  color: #a8efff;
  border: 1px solid rgba(0,188,212,0.25);
}

/* 성과공유회 구조 */
.agenda-card--result {
  border-left: 4px solid #a86fff;
  background: linear-gradient(90deg, rgba(80,60,180,0.25), rgba(0,0,0,0.15));
}
.agenda-card--result .title {
  display: flex;
  flex-direction: column;
  margin-bottom: 6px;
}
.agenda-card--result .kicker {
  font-size: 1.05rem;
  font-weight: 800;
  color: #cba8ff;
}
.agenda-card--result .subject {
  font-size: 0.95rem;
  font-weight: 600;
  color: #ffffff;
  margin-top: 2px;
}
.agenda-card--result .desc {
  color: rgba(255,255,255,0.7);
  font-size: 0.9rem;
  margin: 4px 0 0;
}

/* 배지 */
.badge--result {
  background: linear-gradient(135deg, #6a4fff, #c79bff);
  color: #fff;
  border: 1px solid rgba(255,255,255,0.2);
  box-shadow: 0 0 10px rgba(160,120,255,0.4);
}

/* 반응형 */
@media (max-width:640px){
  .agenda-card--result .subject { font-size: 0.9rem; }
  .agenda-card--result .desc { font-size: 0.85rem; }
}


/* ===== 그룹 라벨(성과공유회 헤더) ===== */
.agenda-group-label {
  margin: 18px 0 8px;
  padding: 8px 12px;
  border-radius: 10px;
  font-weight: 800;
  display: flex; align-items: center; gap: 8px;
  background: rgba(255,255,255,0.06);
  color: #cfd6ff;
  position: relative;
}
.agenda-group-label .time {
  margin-left: auto;
  font-weight: 700;
  color: #9fb0ff;
  font-variant-numeric: tabular-nums;
  opacity: .9;
}
.agenda-group-label .dot{
  width: 8px; height: 8px; border-radius: 50%;
  background: linear-gradient(135deg,#6a4fff,#c79bff);
  box-shadow: 0 0 10px rgba(160,120,255,.5);
}
.agenda-group-label.result{
  border-left: 4px solid #a86fff;
  padding-left: 10px;
}

/* ===== 그룹 카드 공통(상하 붙이기) ===== */
.group-result{
  position: relative;
  border-left: 4px solid #8e7bff;    /* 좌측 포인트 라인 */
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.08);
  box-shadow: 0 2px 8px rgba(0,0,0,.25);
  margin: 0;                         /* 서로 붙도록 */
}
.group-result + .group-result{ margin-top: 0; }

/* 상/하 라운드 연결 */
.group-result.first{ border-radius: 14px 14px 0 0; }
.group-result.last { border-radius: 0 0 14px 14px; }

/* 살짝 보라빛 그라데이션(하단 카드 강조) */
.agenda-card--result.group-result{
  background: linear-gradient(90deg, rgba(80,60,180,.22), rgba(0,0,0,.12));
  border-left-color: #a86fff;
}

/* 기존 배지 컬러 유지(필요 시) */
.agenda-card--nipa { border-left-color:#00bcd4; }
.agenda-card--nipa .badge{
  background: rgba(0,188,212,0.15);
  color: #a8efff;
  border: 1px solid rgba(0,188,212,0.25);
}
.badge--result{
  background: linear-gradient(135deg,#6a4fff,#c79bff);
  color:#fff; border:1px solid rgba(255,255,255,.2);
  box-shadow: 0 0 10px rgba(160,120,255,.4);
}

/* 모바일 보정 */
@media (max-width:640px){
  .agenda-group-label{ padding:8px 10px; }
  .agenda-group-label .time{ font-size:.92rem; }
}




/* 그룹 카드 베이스 */
.agenda-card--group {
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.05);
  box-shadow: 0 2px 10px rgba(0,0,0,.25);
  padding: 0;                  /* 내부에서 여백 관리 */
  overflow: hidden;
  position: relative;
}

/* 상단 헤더(라벨 + 전체 시간) */
.agenda-card--group .group-head{
  display:flex; align-items:center; gap:10px;
  padding: 10px 14px;
  background: linear-gradient(90deg, rgba(80,60,180,.22), rgba(0,0,0,0));
  border-left: 4px solid #a86fff;
}
.agenda-card--group .group-head .label{
  font-weight: 800; color:#cba8ff;
}
.agenda-card--group .group-head .range{
  margin-left:auto; color:#9fb0ff; font-variant-numeric:tabular-nums; font-weight:700;
}

/* 3열 × N행 그리드 (시간 / 본문 / 비고) */
.agenda-card--group .group-table{
  display:grid; gap:0;         /* 행 사이 경계선으로 구분 */
}
.agenda-card--group .g-row{
  display:grid;
  grid-template-columns: 170px 1fr 180px;
  align-items:start;
  padding: 12px 14px;
  background: rgba(255,255,255,.04);
  border-top: 1px solid rgba(255,255,255,.07);
}

/* 세로 구분선(표 느낌) */
.agenda-card--group .g-time,
.agenda-card--group .g-body,
.agenda-card--group .g-etc{ padding: 2px 10px; }
.agenda-card--group .g-time{ 
  color:#a5b9ff; font-variant-numeric:tabular-nums; white-space:nowrap;
  border-right:1px solid rgba(255,255,255,.07);
}
.agenda-card--group .g-body{ 
  border-right:1px solid rgba(255,255,255,.07);
}
.agenda-card--group .g-etc{ 
  text-align:right; color:#cfd6ff; font-weight:700;
}

/* 텍스트 위계 */
.agenda-card--group .g-title{ 
  font-weight:800; color:#fff; line-height:1.45;
}
.agenda-card--group .g-desc{ 
  margin-top:2px; color:rgba(255,255,255,.75); line-height:1.55; font-size:.95rem;
}

/* 배지(우측 상단) */
.agenda-card--group .badge{
  position:absolute; right:10px; top:10px;
}
.badge--result{
  background: linear-gradient(135deg,#6a4fff,#c79bff);
  color:#fff; border:1px solid rgba(255,255,255,.2);
  box-shadow: 0 0 10px rgba(160,120,255,.4);
}

/* 반응형: 모바일에선 1열 스택 */
@media (max-width: 760px){
  .agenda-card--group .g-row{ grid-template-columns: 1fr; }
  .agenda-card--group .g-time,
  .agenda-card--group .g-body{ border-right:none; }
  .agenda-card--group .g-etc{ text-align:left; margin-top:4px; }
}


/* 한 카드 내부를 2행으로 나누는 스타일 */
.agenda-card--bundle{
  border-left: 4px solid #a86fff;            /* 성과 포인트 컬러 */
  background: linear-gradient(90deg, rgba(80,60,180,.20), rgba(0,0,0,.10));
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 14px;
  box-shadow: 0 2px 10px rgba(0,0,0,.25);
}

.agenda-card--bundle .bundle-title{
  margin: 0 0 6px;
  font-weight: 800;
  color: #cba8ff;
}

/* 내부 2행 리스트 */
.bundle-list{ 
  list-style: none; margin: 0; padding: 0; 
  display: grid; gap: 0;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 10px;
  overflow: hidden;
}
.bundle-item{ 
  padding: 10px 12px; 
  background: rgba(0,0,0,0); 
}
.bundle-item + .bundle-item{ 
  border-top: 1px solid rgba(255,255,255,.08);
}

/* 한 행: 좌측 라벨, 우측 비고(기관) */
.bundle-item .row{
  display: flex; align-items: baseline; gap: 12px;
  justify-content: space-between;
}
.bundle-item .label{
  font-weight: 800; color: #fff; line-height: 1.45;
}
.bundle-item .org{
  color: #cfd6ff; font-weight: 700; white-space: nowrap;
  opacity: .9;
}
.bundle-item .desc{
  margin-top: 4px; color: rgba(255,255,255,.7); 
  font-size: .95rem; line-height: 1.55;
}

/* 배지 유지 */
.badge--result{
  background: linear-gradient(135deg,#6a4fff,#c79bff);
  color:#fff; border:1px solid rgba(255,255,255,.2);
  box-shadow: 0 0 10px rgba(160,120,255,.4);
}

/* 모바일: 우측 비고를 다음 줄로 */
@media (max-width: 680px){
  .bundle-item .row{ flex-direction: column; gap: 4px; }
  .bundle-item .org{ align-self: flex-start; }
}



.program-note {
  text-align: right;
  margin-top: 8px;
  font-size: 0.85rem;
  color: rgba(255,255,255,0.5);
  font-style: italic;
  letter-spacing: -0.02em;
}

/* 배경이 어두운 경우 대비용 */
.section-program .program-note {
  padding-right: 4px;
  border-right: 2px solid rgba(255,255,255,0.1);
}


.talk-title {
  font-size: 0.5rem;               /* 조금 작게 */
  font-weight: 400;                 /* 두께 줄임 */
  color: #bca9ff;                   /* 보라빛 포인트 (세미나2 톤과 어울림) */
  letter-spacing: -0.01em;
  line-height: 1.4;
  margin: 4px 0 0;
  transition: color 0.3s ease;
}

.talk-title:hover {
  color: #d8c9ff;                   /* hover 시 부드럽게 밝아짐 */
}


h4.talk-title {
  all: unset;                     /* 모든 기본 스타일 제거 */
  display: block;                 /* 다시 블록 요소로 지정 */
  font-size: 0.9rem;              /* 작게 */
  font-weight: 400;               /* 얇게 */
  color: #bca9ff;                 /* 퍼플 포인트 */
  line-height: 1.4;
  margin: 4px 0 0;
  letter-spacing: -0.01em;
  cursor: default;
}
h4.talk-title:hover {
  color: #d8c9ff;
}


/* === TALK TITLE (연사 발표 주제 스타일 조정) === */
.talk-title {
  font-size: 0.95rem;          /* 작게 */
  font-weight: 500;            /* 얇게 */
  color: #9ecbff;              /* 살짝 컬러 추가 */
  line-height: 1.4;
  margin: 8px 0 6px;
}

/* 필요하면 모바일에서도 더 작게 */
@media (max-width:640px){
  .talk-title { font-size: 0.9rem; }
}



/* === OVERVIEW 레이아웃 강제 배치: 왼쪽(정보) | 오른쪽(그림) === */
.overview-wrap{
  display:grid;
  grid-template-columns: 1.1fr 0.9fr;      /* 왼쪽 넓게: 정보 카드 */
  grid-template-areas: "info visual";      /* 표(정보) 왼쪽, 그림 오른쪽 */
  gap: 28px;
  align-items: start;
}
.overview-card{   /* 표(정보) 카드 */
  grid-area: info;
}
.overview-visual{ /* 그림(키비) */
  grid-area: visual;
}

/* 반응형: 모바일에서는 위(그림) 아래(정보) 순서로 */
@media (max-width: 900px){
  .overview-wrap{
    grid-template-columns: 1fr;
    grid-template-areas:
      "visual"
      "info";
  }
}

/* === 키비 이미지 부드러운 플로팅 === */
.overview-visual{

  overflow: hidden;
 
 
 
  display: grid;
  place-items: center;
  padding: 18px;
}
.overview-visual .kv{
  width:100%;
  display:grid;
  place-items:center;
  will-change: transform;
  animation: floatY 6.2s ease-in-out infinite; /* ← 래퍼에 애니메이션 적용 */
}
.overview-visual .kv img{
  width: 88%;
  max-width: 520px;
  height: auto;
  display: block;
  filter: drop-shadow(0 12px 26px rgba(0,0,0,.25));
}

@keyframes floatY{
  0%,100%{ transform: translateY(0); }
  50%    { transform: translateY(-6px); }
}

/* 모바일 보정 */
@media (max-width:900px){
  .overview-visual{ padding:14px; }
  .overview-visual .kv img{ width:78%; max-width:440px; }
}
@media (max-width:560px){
  .overview-visual .kv img{ width:82%; }
}

/* ===== Overview A ===== */
.overviewA{ padding:100px 0; position:relative; }
.ovA-head{ display:flex; flex-direction:column; align-items:center; gap:8px; margin-bottom:32px; }
.ovA-head i{ font-size:26px; color:#7fe9ff; filter:drop-shadow(0 0 6px rgba(127,233,255,.6)); }
.ovA-head h2{ margin:0; font-size:clamp(30px,4vw,42px); font-weight:800; letter-spacing:-.02em; }

.ovA-grid{
  display:grid; grid-template-columns:1.1fr .9fr; gap:28px; align-items:start;
}
.ovA-card{
  background:linear-gradient(180deg, rgba(24,30,60,.55), rgba(24,30,60,.35));
  border:1px solid rgba(143,193,255,.25);
  border-radius:18px; box-shadow:0 10px 32px rgba(0,0,0,.35); overflow:hidden;
}
.ovA-row{
  display:grid; grid-template-columns:150px 1fr;
  border-bottom:1px solid rgba(143,193,255,.12);
}
.ovA-row:last-child{ border-bottom:none; }
.ovA-term{
  padding:16px 18px; background:rgba(127,233,255,.06); color:#7fe9ff; font-weight:800;
}
.ovA-desc{
  padding:16px 18px; color:#e7ebff;
}
.ovA-desc.logos img{ height:40px; margin-right:14px; filter:drop-shadow(0 3px 8px rgba(0,0,0,.35)); }

.ovA-visual{
  position:relative; display:grid; place-items:center;
  background:background: transparent !important;   /* 🔹 완전 투명 */
  border:0px solid rgba(143,193,255,.22); border-radius:18px; padding:26px;
  
.ovA-sticker{
  position:absolute; top:18px; left:18px; font-size:.78rem; font-weight:900; letter-spacing:.04em;
  color:#0b1424; background:linear-gradient(90deg,#7fe9ff,#a96bff);
  border:1px solid rgba(127,233,255,.55); border-radius:999px; padding:6px 10px;
}
.ovA-kv{ width:100%; display:grid; place-items:center; animation:ovFloat 6.2s ease-in-out infinite; }
.ovA-kv img{ width:86%; max-width:520px; height:auto; display:block; filter:drop-shadow(0 12px 26px rgba(0,0,0,.25)); }
.ovA-caption{ margin-top:8px; color:#cfe8ff; opacity:.9; }

@keyframes ovFloat{
  0%,100%{ transform:translateY(0) }
  50%{ transform:translateY(-6px) }
}

@media (max-width:900px){
  .ovA-grid{ grid-template-columns:1fr; }
  .ovA-row{ grid-template-columns:120px 1fr; }
  .ovA-kv img{ width:78%; max-width:440px; }
}
@media (max-width:560px){
  .ovA-row{ grid-template-columns:110px 1fr; }
  .ovA-sticker{ transform:scale(.95); }
}



/* ===== Intro (Titles & CTA) Responsive ===== */
.intro-content{
  max-width: 980px;
  margin: 0 auto;
  display: grid;
  gap: clamp(10px, 2.5vw, 16px);
}

/* 상단: 연도 + 영문 타이틀 */
.title-top{
  display: flex;
  align-items: baseline;
  gap: clamp(8px, 2vw, 16px);
  flex-wrap: wrap;
}
.year{
  margin: 0;
  line-height: .9;
  font-weight: 900;
  font-size: clamp(44px, 12vw, 128px);
  letter-spacing: -0.02em;
  background: linear-gradient(90deg, var(--secondary,#a96bff), var(--primary,#65d1ff));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  filter: drop-shadow(0 10px 24px rgba(0,0,0,.25));
}
.title-top .eng{
  font-family: 'DINPro', system-ui, sans-serif;
  font-weight: 700;
  letter-spacing: .06em;
  font-size: clamp(14px, 2.4vw, 28px);
  color: var(--muted, #b7c0e3);
  text-transform: uppercase;
  opacity: .95;
}

/* 한글 타이틀 */
.ko-title{
  font-size: clamp(22px, 4.6vw, 40px);
  font-weight: 800;
  letter-spacing: -0.015em;
  color: var(--txt,#e7ebff);
}
.tech-day{
  font-size: clamp(14px, 2.8vw, 18px);
  color: var(--muted,#b7c0e3);
  margin-top: -4px;
}

/* 정보 라인 (일시/장소) */
.intro-info{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(8px, 2vw, 14px);
  margin-top: 4px;
}
.intro-info p{
  margin: 0;
  padding: 10px 14px;
  border: 1px solid rgba(143,193,255,.22);
  background: rgba(24,30,60,.45);
  color: var(--txt,#e7ebff);
  border-radius: 12px;
  display: flex; gap: 10px; align-items: center;
}
.intro-info b{
  color: #9ecbff;
  font-weight: 800;
  white-space: nowrap;
}

/* CTA 정렬 */
.cta-row{
  margin-top: clamp(8px, 3vw, 18px);
  display: flex;
  flex-wrap: wrap;
}
.cta-card{
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 14px 18px;
  border-radius: 14px;
  text-decoration: none;
  color: #081018;
  background: linear-gradient(90deg, var(--secondary,#a96bff), var(--primary,#65d1ff));
  border: 1px solid rgba(127,233,255,.55);
  box-shadow: 0 10px 28px rgba(80,125,255,.45);
  transform: translateZ(0);
}
.cta-card:active{ transform: scale(.98); }
.cta-icon{ display:grid; place-items:center; font-size: 1.05rem; }
.cta-text{ display:flex; flex-direction:column; line-height:1.1; }
.cta-text strong{ font-size: clamp(14px, 2.8vw, 18px); }
.cta-text span{ font-size: clamp(12px, 2.4vw, 14px); opacity: .9; }
.cta-card .tag{
  margin-left: 4px;
  padding: 2px 8px;
  font-size: 12px;
  font-weight: 900;
  border-radius: 999px;
  color: #0b1424;
  background: rgba(255,255,255,.8);
  border: 1px solid rgba(0,0,0,.06);
}

/* ===== Breakpoints ===== */
@media (max-width: 980px){
  .intro-info{ grid-template-columns: 1fr; }
}

@media (max-width: 640px){
  .intro-content{ text-align: center; }
  .title-top{ justify-content: center; }
  .intro-info p{ justify-content: center; }
  .cta-row{ justify-content: center; }
  .cta-card{ width: 100%; justify-content: center; }
}


/* === Sponsors: 항상 보이기 (모바일 포함) === */
.sponsors{
  position: relative;
  z-index: 6;                 /* FX 캔버스(배경 레이어) 위로 */
  padding: 10px 0 0;
}
.sponsors .wrap{
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
}
.sponsors img{
  display: block;
  height: 38px;
  opacity: .95;
  filter: drop-shadow(0 3px 8px rgba(0,0,0,.35));
}

/* 모바일 크기·여백 보정 */
@media (max-width: 560px){
  .sponsors img{ height: 28px; }
  .hero{ padding-bottom: 24px; } /* 하단 잘림 방지 */
}

/* FX 레이어가 위로 덮지 않도록 (안전망) */
.fx-layer{ pointer-events: none; z-index: 0; }
.hero .wrap{ position: relative; z-index: 5; }  /* 텍스트/CTA 위상 고정 */
/* Overview 내부 로고도 모바일에서 확실히 보이도록 */
.sponsor-logos img{ height: 40px; }
@media (max-width:560px){
  .sponsor-logos img{ height: 30px; }
}


/* ----- HERO 레이어 정리: FX는 아래, 텍스트/스폰서는 위 ----- */
.hero { position: relative; }

/* 모든 FX 캔버스/레이어를 한 층 아래로 */
#halo-bg,
#fx-lightburst,
#fx-network,
#fx-scan,
#fx-burst,
.hero-grid,
.fx-layer {
  position: absolute;
  inset: 0;
  z-index: 1;          /* FX는 1층 */
  pointer-events: none;
}

/* 지구본/플레어도 FX 아래 단계로 고정 */
.globe-wrap { position: relative; z-index: 2; }
.gflare-layer { z-index: 3; }      /* 기존 5 → 아래로 한 단계 정렬 */

/* 히어로 본문(타이틀/CTA) 위상 고정 */
.hero .wrap { position: relative; z-index: 5; }

/* === 스폰서: 항상 맨 위로 보이게 === */
.hero > .sponsors {
  position: relative;
  z-index: 8;          /* 본문보다도 위 */
  padding: 10px 0 0;
}
.sponsors .wrap{
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
}
.sponsors img{
  display: block;
  height: 38px;
  opacity: .95;
  filter: drop-shadow(0 3px 8px rgba(0,0,0,.35));
}

/* 모바일 크기/여백 보정 */
@media (max-width: 560px){
  .sponsors img{ height: 28px; }
  .hero{ padding-bottom: 28px; }  /* 하단 잘림 방지 */
}


/* === [FIX] Hero sponsors always visible on mobile === */
.hero { position: relative; }

/* FX/플레어/캔버스는 아래층으로 고정 */
#halo-bg,
#fx-lightburst,
#fx-network,
#fx-scan,
#fx-burst,
.hero-grid,
.fx-layer,
.gflare-layer {            /* 플레어 컨테이너 */
  position: absolute;
  inset: 0;
  z-index: 1 !important;  /* FX = 1층 */
  pointer-events: none;
}

/* 본문 컨텐츠는 그 위로 */
.hero .wrap,
.globe-wrap {              /* 지구본 묶음 */
  position: relative;
  z-index: 4;
}

/* 스폰서는 최상단으로 */
.hero > .sponsors {
  position: relative;
  z-index: 9;              /* 최상단 고정 */
  padding: 10px 0 0;
}
.hero > .sponsors .wrap{
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
}
.hero > .sponsors img{
  display: block;
  height: 38px;
  opacity: .95;
  filter: drop-shadow(0 3px 8px rgba(0,0,0,.35));
}

/* 모바일 여백/크기 보정 + 잘림 방지 */
@media (max-width:560px){
  .hero { padding-bottom: 36px; } /* 스폰서 라인 여유 공간 */
  .hero > .sponsors img{ height: 28px; }
}



.sponsors .wrap {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: clamp(12px, 3vw, 24px);  /* ✅ 반응형 간격 */
  opacity: .95;
  padding-bottom: 20px;
}

/* 로고 크기 및 줄바꿈 보정 */
.sponsors img {
  height: 38px;
  max-width: 120px;             /* ✅ 폭 제한 */
  width: auto;
}

/* 모바일 (좁은 폭일 때) */
@media (max-width: 560px) {
  .sponsors .wrap {
    gap: 14px;                  /* 간격 줄이기 */
  }
  .sponsors img {
    height: 28px;
    max-width: 100px;
  }
}







/* ====== LEFT-GLOBE LAYOUT PATCH ====== */


/* === OVERRIDE: Hero layout — Globe left, Title right === */
@media (min-width: 781px){
  .hero{
    display: grid !important;
    grid-template-columns: 1.05fr .95fr;
    align-items: center;
    gap: 48px;
  }

  /* Make the title block a single grid item on the right */
  .hero > .wrap{
    grid-column: 2;
    grid-row: 1;
    display: block !important;     /* override previous grid on .hero .wrap */
    max-width: 640px;
    z-index: 5;
  }
  .hero > .wrap .intro-content{ text-align: left; }

  /* Put the desktop globe on the left */
  .hero > .globe-wrap.globe-desktop{
    grid-column: 1;
    grid-row: 1;
    justify-self: end;
    align-self: center;
    width: 100%;
    max-width: 560px;
    z-index: 4;
  }

  /* Hide mobile globe on desktop */
  .globe-mobile{ display: none !important; }

  /* Keep other layers spanning both columns */
  .hero > .sponsors{ grid-column: 1 / -1; }
  .hero > #halo-bg,
  .hero > canvas.fx-layer,
  .hero > .hero-grid{ grid-column: 1 / -1; }
}

/* Mobile stack */
@media (max-width: 780px){
  .globe-desktop{ display: none !important; }
  .globe-mobile{ display: block !important; }
}


/* ===== PATCH v2: LeftGlobe/RightTitle Bulletproof ===== */

/* ===== HERO: Left Globe / Right Title — BULLETPROOF OVERRIDE ===== */
@media (min-width: 781px){
  /* 1) Force the hero itself to a 2-col grid */
  section.hero#top{
    display: grid !important;
    grid-template-columns: 1.08fr 0.92fr !important;
    align-items: center !important;
    gap: 48px !important;
  }

  /* 2) Put the title (.wrap) into the RIGHT column */
  section.hero#top > .wrap{
    grid-column: 2 !important;
    grid-row: 1 !important;
    display: block !important;         /* neutralize the inner grid defined elsewhere */
    max-width: 640px !important;
    z-index: 5 !important;
  }
  section.hero#top > .wrap .intro-content{ text-align: left !important; }

  /* 3) Put the desktop globe into the LEFT column */
  section.hero#top > .globe-wrap.globe-desktop{
    grid-column: 1 !important;
    grid-row: 1 !important;
    justify-self: end !important;
    align-self: center !important;
    width: 100% !important;
    max-width: 560px !important;
    position: relative !important;
    z-index: 4 !important;
  }

  /* 4) Hide mobile globe on desktop */
  section.hero#top .globe-mobile{ display: none !important; }
}

/* Mobile stack keeps original visual intent */
@media (max-width: 780px){
  section.hero#top{
    display: block !important;
  }
  section.hero#top .globe-desktop{ display: none !important; }
  section.hero#top .globe-mobile{ display: block !important; }
}


/* ===== MOBILE FIX PATCH ===== */

/* === MOBILE OVERFLOW FIX (Hero Section) === */
@media (max-width: 780px) {
  .hero-flex {
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 28px;
    padding: 80px 20px 60px;
    overflow: hidden;
    box-sizing: border-box;
  }

  .hero-flex .globe-wrap.globe-desktop {
    display: none !important;
  }

  .hero-flex .intro-content {
    width: 100%;
    max-width: 100%;
    text-align: center;
  }

  .globe-mobile {
    display: block !important;
    width: 100%;
    max-width: 340px;
    height: auto;
    margin: 0 auto;
  }

  .globe-mobile img.globe-core {
    width: 100%;
    height: auto;
    object-fit: contain;
    display: block;
  }
}


/* === HERO 좌우 정렬 === */
.hero-flex {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 60px;
  flex-wrap: nowrap;
  padding: 120px 0 100px;
}

.hero-flex .globe-wrap.globe-desktop {
  flex: 1;
  max-width: 480px;
}

.hero-flex .intro-content {
  flex: 1;
  max-width: 520px;
  text-align: left;
}

@media (max-width: 780px) {
  .hero-flex {
    flex-direction: column;
    gap: 40px;
  }
  .hero-flex .globe-wrap.globe-desktop {
    display: none;
  }
  .globe-mobile {
    display: block;
  }
}


/* === HERO: Globe Left / Title Right (Final Alignment) === */
@media (min-width: 981px) {
  .hero-flex {
    flex-direction: row-reverse !important; /* 기존 반대로 → 지구본 왼쪽, 텍스트 오른쪽 */
    justify-content: center;
    align-items: center;
    gap: 60px;
    padding: 120px 0 100px;
  }

  .hero-flex .globe-wrap.globe-desktop {
    order: 1 !important;         /* 왼쪽 */
    flex: 1;
    max-width: 520px;
    display: flex;
    justify-content: flex-start;
    align-items: center;
  }

  .hero-flex .intro-content {
    order: 2 !important;         /* 오른쪽 */
    flex: 1;
    max-width: 540px;
    text-align: left;
  }
}


#halo-overview {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0; /* 이미지보다 뒤로 */
}

.overview-map {
  position: relative; /* HALO 위치 기준 */
  overflow: hidden;   /* 밖으로 번지는 빛 숨김 */
}

.overview-map img {
  position: relative;
  z-index: 1; /* HALO 위에 오도록 */
}


.overview-wrap {
  display: grid;
  grid-template-columns: 1.3fr 0.7fr;  /* ✅ 왼쪽 더 넓게, 오른쪽 좁게 */
  gap: 28px;
  align-items: start;
}

/* === Section Title (통일형) === */
.section-title{
  display:flex; align-items:center; justify-content:flex-start; gap:12px; margin-bottom:40px;
}
.section-title.is-centered{ justify-content:center; text-align:center; }
.section-title__icon{
  width:40px; height:40px; border-radius:50%;
  display:grid; place-items:center;
  background: radial-gradient(120% 120% at 50% 30%, rgba(127,233,255,.35), rgba(127,233,255,.12));
  box-shadow: 0 6px 16px rgba(0,0,0,.25), inset 0 0 10px rgba(127,233,255,.25);
}
.section-title__icon i{ color:#7fe9ff; filter:drop-shadow(0 0 6px rgba(127,233,255,.6)); }
.section-title__text{
  font-size: clamp(30px, 4vw, 42px);
  font-weight: 800; margin:0; color:#e7ebff; letter-spacing:-0.02em;
}

/* === Overview Visual (우측 글로브 + 카피) === */
.overview-visual{
  position:relative; border-radius:16px; overflow:hidden;
  border:1px solid rgba(143,193,255,.25);
  background: radial-gradient(900px 700px at 70% 40%, rgba(101,209,255,.10), transparent 60%),
              rgba(24,30,60,.45);
  min-height: 360px; display:grid; place-items:center;
}
.overview-visual__globe{ position:relative; z-index:1; width:92%; max-width:520px; }
.overview-visual__globe img{ width:100%; height:auto; display:block; filter: drop-shadow(0 12px 40px rgba(0,0,0,.45)); }

.overview-visual__copy{
  position:absolute; inset:0; display:grid; place-items:center; text-align:center;
  z-index:2; padding:24px;
}
.overview-visual__copy .kicker{
  margin:0 0 6px; color:#bfe9ff; font-weight:700; letter-spacing:.02em; opacity:.95;
}
.overview-visual__copy .headline{
  margin:0; font-size: clamp(28px, 4.6vw, 56px); font-weight:900; line-height:1.05; color:#fff;
}
.overview-visual__copy .headline span{
  color:#ffffff; text-shadow: 0 0 18px rgba(127,233,255,.35);
}

/* 데스크탑: 왼쪽 더 넓게 (요청 반영) */
@media (min-width:981px){
  .overview-wrap{ grid-template-columns: 1.3fr 0.7fr; }
}

/* 모바일 보정 */
@media (max-width:900px){
  .section-title{ margin-bottom:28px; }
  .overview-visual{ min-height: 300px; }
  .overview-visual__globe{ width:88%; max-width:420px; }
}

/* 데스크탑: 왼쪽(텍스트) 더 넓게 */
.overview-wrap { grid-template-columns: 1.25fr 0.75fr; }

/* 지도/지구본 이미지가 넘치지 않도록 */
.overview-map img { width: 100%; height: auto; object-fit: contain; display: block; }

/* 모바일(≤900px): 1열 + 가운데 정렬 */
@media (max-width: 900px) {
  .overview-wrap { grid-template-columns: 1fr; }
  .sponsor-logos { justify-content: center; } /* 로고 중앙 정렬(선택) */
}

/* === Section Title (통일형) === */
.section-title{display:flex;align-items:center;justify-content:flex-start;gap:12px;margin-bottom:40px}
.section-title.is-centered{justify-content:center;text-align:center}
.section-title__icon{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;
  background: radial-gradient(120% 120% at 50% 30%, rgba(127,233,255,.35), rgba(127,233,255,.12));
  box-shadow:0 6px 16px rgba(0,0,0,.25), inset 0 0 10px rgba(127,233,255,.25)}
.section-title__icon i{color:#7fe9ff;filter:drop-shadow(0 0 6px rgba(127,233,255,.6))}
.section-title__text{font-size:clamp(30px,4vw,42px);font-weight:800;margin:0;color:#e7ebff;letter-spacing:-.02em}

/* === Overview div-grid === */
.overview-card{background:rgba(24,30,60,.45);border:1px solid rgba(143,193,255,.25);
  border-radius:16px;box-shadow:0 8px 28px rgba(0,0,0,.35);overflow:hidden}
.overview-grid{display:grid}
.og-row{display:grid;grid-template-columns:160px 1fr;gap:0;border-bottom:1px solid rgba(143,193,255,.12)}
.og-row:last-child{border-bottom:none}
.og-key{padding:16px 20px;background:rgba(127,233,255,.05);color:#7fe9ff;font-weight:700}
.og-val{padding:16px 20px;color:#e7ebff}
.og-row--logos .sponsor-logos{display:flex;align-items:center;flex-wrap:wrap;gap:18px;margin:4px 0 0}
.og-row--logos .sponsor-logos img{height:42px;filter:drop-shadow(0 3px 8px rgba(0,0,0,.35));opacity:.95;transition:transform .25s ease, opacity .25s ease}
.og-row--logos .sponsor-logos img:hover{transform:scale(1.05);opacity:1}

/* 오른쪽 비주얼 */
.overview-visual{position:relative;border-radius:16px;overflow:hidden;border:1px solid rgba(143,193,255,.25);
  background:radial-gradient(900px 700px at 70% 40%, rgba(101,209,255,.10), transparent 60%), rgba(24,30,60,.45);
  min-height:360px;display:grid;place-items:center}
.overview-visual__globe{position:relative;z-index:1;width:92%;max-width:520px}
.overview-visual__globe img{width:100%;height:auto;display:block;filter:drop-shadow(0 12px 40px rgba(0,0,0,.45))}
.overview-visual__copy{position:absolute;inset:0;display:grid;place-items:center;text-align:center;z-index:2;padding:24px}
.overview-visual__copy .kicker{margin:0 0 6px;color:#bfe9ff;font-weight:700;letter-spacing:.02em;opacity:.95}
.overview-visual__copy .headline{margin:0;font-size:clamp(28px,4.6vw,56px);font-weight:900;line-height:1.05;color:#fff}
.overview-visual__copy .headline span{color:#fff;text-shadow:0 0 18px rgba(127,233,255,.35)}

/* 레이아웃 비율 — 데스크탑 왼쪽 더 넓게 */
@media (min-width:981px){ .overview-wrap{grid-template-columns:1.3fr .7fr} }

/* 반응형 */
@media (max-width:900px){
  .section-title{margin-bottom:28px}
  .og-row{grid-template-columns:120px 1fr}
  .overview-visual{min-height:300px}
  .overview-visual__globe{width:88%;max-width:420px}
}


/* Section title (기존 스타일 계승) */
.section-title{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:28px}
.section-title__icon{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;
  background: radial-gradient(120% 120% at 50% 30%, rgba(127,233,255,.35), rgba(127,233,255,.12));
  box-shadow:0 6px 16px rgba(0,0,0,.25), inset 0 0 10px rgba(127,233,255,.25)}
.section-title__icon i{color:#7fe9ff;filter:drop-shadow(0 0 6px rgba(127,233,255,.6))}
.section-title__text{font-size:clamp(30px,4vw,42px);font-weight:800;margin:0;color:#e7ebff;letter-spacing:-.02em}

/* 카드 프레임 — 기존 톤 그대로 */
.overview-card{
  background: rgba(20, 28, 55, .55);
  border: 1px solid rgba(143,193,255,.25);
  border-radius: 18px;
  box-shadow: 0 10px 30px rgba(0,0,0,.38);
  overflow: hidden;
}

/* div 기반 table-like rows */
.overview-grid{display:grid}
.og-row{display:grid;grid-template-columns: 180px 1fr;align-items:start}
.og-row:not(:last-child){border-bottom:1px solid rgba(143,193,255,.12)}

/* 좌측 key 셀 — 진한 네이비, 좌측 라운드 느낌 */
.og-key{
  padding:16px 20px;
  background: linear-gradient(180deg, rgba(18,27,52,.85), rgba(18,27,52,.75));
  color:#a9d8ff;
  font-weight:700;
  border-right:1px solid rgba(143,193,255,.12);
}

/* 우측 val 셀 */
.og-val{
  padding:7px 20px;
  color:#e7ebff;
}

/* 로고 행 */
.og-row--logos .sponsor-logos{display:flex;align-items:center;flex-wrap:wrap;gap:20px}
.og-row--logos .sponsor-logos img{
  height:42px; width:auto;
  filter:drop-shadow(0 3px 8px rgba(0,0,0,.35));
  opacity:.95; transition:transform .2s ease, opacity .2s ease
}
.og-row--logos .sponsor-logos img:hover{transform:scale(1.05);opacity:1}

/* 오른쪽 비주얼 — 기존 레이아웃/톤 */
.overview-visual{
  position:relative;border-radius:18px;overflow:hidden;
  border:1px solid rgba(143,193,255,.25);
  background:
    radial-gradient(900px 700px at 70% 40%, rgba(101,209,255,.10), transparent 60%),
    rgba(24,30,60,.45);
  min-height: 360px; display:grid; place-items:center;
}
.overview-visual__globe{position:relative;z-index:1;width:92%;max-width:520px}
.overview-visual__globe img{width:100%;height:auto;display:block;filter:drop-shadow(0 12px 40px rgba(0,0,0,.45))}
.overview-visual__copy{position:absolute;inset:0;display:grid;place-items:center;text-align:center;z-index:2;padding:24px}
.overview-visual__copy .kicker{margin:0 6px 8px;color:#bfe9ff;font-weight:700;letter-spacing:.02em;opacity:.95}
.overview-visual__copy .headline{margin:0;font-size:clamp(28px,4.6vw,56px);font-weight:900;line-height:1.05;color:#fff}
.overview-visual__copy .headline span{color:#fff;text-shadow:0 0 18px rgba(127,233,255,.35)}

/* 레이아웃 비율 — 데스크탑 왼쪽 더 넓게 (기존 유지) */
@media (min-width:981px){
  .overview-wrap{display:grid;grid-template-columns:1.3fr .7fr;gap:28px;align-items:start}
}

/* 모바일 최적화 */
@media (max-width:980px){
  .overview-wrap{display:grid;gap:16px}
  .og-row{grid-template-columns:130px 1fr}
  .overview-visual{min-height:300px}
  .overview-visual__globe{width:88%;max-width:420px}
}

/* === 주최/주관 사이 간격 제거 === */
.og-row.og-logos {
  margin-top: 0 !important;
  padding-top: 0 !important;
  border-top: 1px solid rgba(143,193,255,.12) !important;
}

/* 주최 아래, 주관 위 불필요한 공간 제거 */
.og-row.og-logos + .og-row.og-logos {
  border-top: none !important;
  margin-top: -1px !important;
}

/* sponsor logo 라인 여백도 최소화 */
.logo-line {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}



/* === OVERVIEW Glassmorphism Background (generated) === */
.glass-overview {
  position: relative;
  background:
    linear-gradient(180deg, rgba(10, 15, 35, 0.75), rgba(10, 15, 25, 0.85)),
    url('./overview_back.jpg') center/cover no-repeat;
  border-top: 1px solid rgba(255,255,255,0.10);
  border-bottom: 1px solid rgba(255,255,255,0.08);
  backdrop-filter: blur(14px) saturate(140%);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.45);
}
.glass-overview::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(800px 500px at 70% 20%, rgba(127,233,255,0.08), transparent 70%);
  mix-blend-mode: screen;
  pointer-events: none;
}
.glass-overview .overview-card {
  background: rgba(20, 28, 55, 0.45);
  border: 1px solid rgba(127,233,255,0.25);
  backdrop-filter: blur(10px) saturate(120%);
  -webkit-backdrop-filter: blur(10px) saturate(120%);
  box-shadow: 0 8px 30px rgba(0,0,0,0.45), inset 0 0 20px rgba(127,233,255,0.08);
}
/* keep title design as-is */



/* === Glass Overview Specificity Fix & Overrides === */
/* Increase specificity and add !important to defeat section:nth-of-type backgrounds */
.section-overview.glass-overview {
  position: relative;
  background:
    linear-gradient(180deg, rgba(10, 15, 35, 0.75), rgba(10, 15, 25, 0.85)),
    url('./overview_back.jpg') center/cover no-repeat !important;
  border-top: 1px solid rgba(255,255,255,0.10);
  border-bottom: 1px solid rgba(255,255,255,0.08);
  backdrop-filter: blur(14px) saturate(140%);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.45);
}

/* Ensure no other generic section backgrounds leak in */
.section-overview.glass-overview:nth-of-type(odd),
.section-overview.glass-overview:nth-of-type(even) {
  background:
    linear-gradient(180deg, rgba(10, 15, 35, 0.75), rgba(10, 15, 25, 0.85)),
    url('./overview_back.jpg') center/cover no-repeat !important;
}

/* Soften/replace the default section::before overlay only for this section */
.section-overview.glass-overview::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(800px 500px at 70% 20%, rgba(127,233,255,0.08), transparent 70%);
  mix-blend-mode: screen;
  pointer-events: none;
  z-index: 0;
}

/* Glass cards inside */
.section-overview.glass-overview .overview-card {
  background: rgba(20, 28, 55, 0.45);
  border: 1px solid rgba(127,233,255,0.25);
  backdrop-filter: blur(10px) saturate(120%);
  -webkit-backdrop-filter: blur(10px) saturate(120%);
  box-shadow: 0 8px 30px rgba(0,0,0,0.45), inset 0 0 20px rgba(127,233,255,0.08);
}



/* === ABOUT Section (Glassmorphism Style) === */
.section-overview.about {
  position: relative;
  background:
    linear-gradient(180deg, rgba(10, 15, 35, 0.75), rgba(10, 15, 25, 0.85)),
    url('./overview_back.jpg') center/cover no-repeat !important;
  border-top: 1px solid rgba(255,255,255,0.10);
  border-bottom: 1px solid rgba(255,255,255,0.08);
  backdrop-filter: blur(14px) saturate(140%);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.45);
}

.section-overview.about::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(800px 500px at 70% 20%, rgba(127,233,255,0.08), transparent 70%);
  mix-blend-mode: screen;
  pointer-events: none;
  z-index: 0;
}

.section-overview.about .overview-card {
  background: rgba(20, 28, 55, 0.45);
  border: 1px solid rgba(127,233,255,0.25);
  backdrop-filter: blur(10px) saturate(120%);
  -webkit-backdrop-filter: blur(10px) saturate(120%);
  box-shadow: 0 8px 30px rgba(0,0,0,0.45), inset 0 0 20px rgba(127,233,255,0.08);
}



/* === Glass Panel size/position + side-by-side rows (v2) === */
.glass-panel {
  position: relative;
  left: -60px;                  /* shift left a bit */
  width: 85%;
  max-width: 640px;
  background-color: rgba(20, 25, 40, 0.55);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 20px;
  backdrop-filter: blur(14px) saturate(150%);
  -webkit-backdrop-filter: blur(14px) saturate(150%);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.45);
  padding: 40px 48px;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.glass-panel:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 36px rgba(0,0,0,0.6);
}

/* One-line label/value */
.info-row {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 16px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  padding: 10px 0;
}
.info-row:last-child { border-bottom: none; }
.info-label {
  width: 140px;
  min-width: 120px;
  color: #64dfdf;
  font-weight: 600;
  text-align: left;
}
.info-value {
  flex: 1;
  color: #ffffff;
  font-weight: 400;
  line-height: 1.45;
}

/* Mobile stacking fallback */
@media (max-width: 560px){
  .glass-panel { left: 0; width: 100%; max-width: none; padding: 28px 18px; }
  .info-row { flex-wrap: wrap; }
  .info-label { width: 100%; min-width: 0; }
}


/* 기본(데스크탑)에서는 숨김 */
br.mobile-only { display: none; }

/* 모바일에서만 표시 */
@media (max-width: 980px) {
  br.mobile-only { display: inline; }
}


.spark {
  position: absolute;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,255,255,.95) 10%, rgba(255,255,255,.2) 60%, transparent 100%);
  filter: blur(.6px);
  opacity: 0;
  animation: sparkle 3.6s ease-in-out infinite;
}
.spark.s1 { left: 28%; top: 36%; animation-delay: .2s; }
.spark.s2 { left: 64%; top: 22%; animation-delay: .9s; }
.spark.s3 { left: 72%; top: 68%; animation-delay: 1.6s; }

@keyframes sparkle {
  0%,100% { transform: scale(.6); opacity: 0; }
  8% { transform: scale(1.2); opacity: .95; }
  16% { transform: scale(.8); opacity: .3; }
  24% { transform: scale(1.0); opacity: .75; }
  40% { opacity: 0; }
}
