/* =====================================================
   Agentic AI Transformation Day 2026
   Microsoft Copilot-inspired LP
   ===================================================== */

:root {
  /* Palette — Copilot-inspired */
  --c-cyan:    #00B7FF;
  --c-blue:    #2563EB;
  --c-purple:  #7C3AED;
  --c-magenta: #E74694;
  --c-orange:  #F2A03D;

  /* Surfaces */
  --bg:        #F2F4FB;
  --surface:   #FFFFFF;
  --surface-2: #F4F5F9;
  --surface-3: #ECEEF5;

  /* Ink */
  --ink:       #14152A;
  --ink-2:     #2F3253;
  --muted:     #6B6F87;
  --line:      #E5E7EE;
  --line-2:    #D9DCE6;

  /* Brand gradient */
  --grad: linear-gradient(120deg, #00B7FF 0%, #2563EB 28%, #7C3AED 58%, #E74694 88%);
  --grad-soft: linear-gradient(120deg, rgba(0,183,255,.12), rgba(124,58,237,.14) 50%, rgba(231,70,148,.12));

  /* Type */
  --font-sans: 'Inter', 'Segoe UI', 'Noto Sans JP', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  --font-jp:   'Noto Sans JP', 'Segoe UI', 'Inter', system-ui, sans-serif;

  /* Radii */
  --r-sm: 8px;
  --r-md: 14px;
  --r-lg: 20px;
  --r-xl: 28px;

  /* Shadows */
  --sh-sm: 0 1px 2px rgba(20,21,42,.04), 0 1px 1px rgba(20,21,42,.04);
  --sh-md: 0 4px 16px rgba(20,21,42,.06), 0 1px 2px rgba(20,21,42,.04);
  --sh-lg: 0 24px 60px rgba(20,21,42,.10), 0 4px 12px rgba(20,21,42,.06);
  --sh-glow: 0 16px 48px rgba(124,58,237,.18);

  --container: 1240px;
  --pad-x: clamp(20px, 4vw, 56px);
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--font-jp);
  color: var(--ink);
  background: var(--bg);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  font-feature-settings: "palt" 1;
  letter-spacing: 0.01em;
}

a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; }
em { font-style: normal; }

/* ============ Layout helpers ============ */
.section-inner {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--pad-x);
}

.section-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.22em;
  color: var(--muted);
  margin-bottom: 22px;
}
.eyebrow-num {
  display: inline-grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--grad);
  color: #fff;
  font-weight: 700;
  letter-spacing: 0;
  font-size: 11px;
}
.eyebrow-label::before {
  content: "";
  display: inline-block;
  width: 20px;
  height: 1px;
  background: var(--line-2);
  vertical-align: middle;
  margin-right: 10px;
}

.section-title {
  font-family: var(--font-jp);
  font-weight: 800;
  font-size: clamp(28px, 4.2vw, 48px);
  line-height: 1.25;
  letter-spacing: -0.01em;
  margin: 0 0 24px;
  color: var(--ink);
}
.section-title em {
  background: var(--grad);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.section-desc {
  color: var(--muted);
  font-size: 15px;
  margin: 0 0 36px;
  max-width: 720px;
}

/* ============ NAV ============ */
.nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 50;
  backdrop-filter: saturate(180%) blur(18px);
  -webkit-backdrop-filter: saturate(180%) blur(18px);
  background: rgba(251, 251, 253, 0.72);
  border-bottom: 1px solid rgba(20,21,42,.06);
}
.nav-inner {
  max-width: var(--container);
  margin: 0 auto;
  padding: 12px var(--pad-x);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.nav-brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-weight: 800;
  font-family: var(--font-sans);
  font-size: 19px;
  color: var(--ink);
  letter-spacing: -0.02em;
}
.nav-title {
  background: var(--grad);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.nav-mark { display: inline-flex; }
.nav-links {
  display: flex;
  align-items: center;
  gap: 28px;
  font-size: 13px;
  font-weight: 500;
  color: var(--ink-2);
}
.nav-links a { transition: color .18s ease; }
.nav-links a:hover { color: var(--c-purple); }
.nav-cta {
  background: var(--ink);
  color: #fff !important;
  padding: 9px 18px;
  border-radius: 999px;
  font-weight: 600;
  transition: transform .18s ease, box-shadow .18s ease;
}
.nav-cta:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(20,21,42,.18);
}
.nav-burger {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
  width: 40px;
  height: 40px;
  padding: 0 9px;
  border: 1px solid var(--line-2);
  border-radius: 10px;
  background: #fff;
  cursor: pointer;
}
.nav-burger span {
  display: block;
  height: 2px;
  width: 100%;
  background: var(--ink);
  border-radius: 2px;
}
.nav-drawer {
  display: none;
  flex-direction: column;
  padding: 8px var(--pad-x) 16px;
  border-bottom: 1px solid var(--line);
  background: rgba(251, 251, 253, 0.96);
  -webkit-backdrop-filter: saturate(180%) blur(18px);
  backdrop-filter: saturate(180%) blur(18px);
}
.nav-drawer a {
  padding: 13px 4px;
  font-size: 15px;
  font-weight: 600;
  color: var(--ink);
  border-bottom: 1px solid var(--line);
}
.nav-drawer a:last-child { border-bottom: 0; }
@media (max-width: 800px) {
  .nav-links a:not(.nav-cta) { display: none; }
  .nav-links .nav-cta { display: none; }
  .nav-brand .nav-title { display: none; }
  .nav-burger { display: inline-flex; }
  .nav-drawer:not([hidden]) { display: flex; }
}

/* ============ HERO ============ */
.hero {
  position: relative;
  min-height: 100vh;
  padding: 120px var(--pad-x) 80px;
  display: flex;
  align-items: center;
  overflow: hidden;
  isolation: isolate;
}
.hero-mesh {
  position: absolute;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  background:
    radial-gradient(ellipse 80% 60% at 20% 10%, rgba(0,183,255,.22), transparent 60%),
    radial-gradient(ellipse 70% 55% at 90% 25%, rgba(124,58,237,.20), transparent 60%),
    radial-gradient(ellipse 60% 50% at 75% 90%, rgba(231,70,148,.18), transparent 65%),
    radial-gradient(ellipse 70% 50% at 5% 95%, rgba(37,99,235,.18), transparent 60%),
    linear-gradient(180deg, #FBFBFD 0%, #F4F5FB 100%);
}
.blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(60px);
  opacity: .55;
  animation: float 14s ease-in-out infinite;
}
.blob-1 { width: 480px; height: 480px; left: -120px; top: -80px;
  background: radial-gradient(circle, #00B7FF, transparent 70%); }
.blob-2 { width: 520px; height: 520px; right: -160px; top: 80px;
  background: radial-gradient(circle, #7C3AED, transparent 70%);
  animation-delay: -3s; }
.blob-3 { width: 420px; height: 420px; right: 20%; bottom: -120px;
  background: radial-gradient(circle, #E74694, transparent 70%);
  animation-delay: -6s; }
.blob-4 { width: 380px; height: 380px; left: 30%; bottom: 10%;
  background: radial-gradient(circle, #F2A03D, transparent 70%);
  opacity: .35;
  animation-delay: -9s; }
@keyframes float {
  0%, 100% { transform: translate(0, 0) scale(1); }
  33% { transform: translate(30px, -40px) scale(1.05); }
  66% { transform: translate(-20px, 30px) scale(0.97); }
}
.grain {
  position: absolute; inset: 0;
  background-image:
    radial-gradient(rgba(0,0,0,.04) 1px, transparent 1px);
  background-size: 3px 3px;
  opacity: .4;
  mix-blend-mode: multiply;
  pointer-events: none;
}

.hero-inner {
  max-width: var(--container);
  width: 100%;
  margin: 0 auto;
  position: relative;
}

/* ============ Hero meta (editorial date block) ============ */
.hero-meta {
  display: inline-flex;
  align-items: stretch;
  gap: 18px;
  margin-bottom: 36px;
  font-family: var(--font-sans);
  color: var(--ink);
}
.hero-meta-year {
  writing-mode: vertical-rl;
  text-orientation: mixed;
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.32em;
  color: var(--muted);
  padding: 2px 0;
  border-left: 1px solid var(--ink);
  padding-left: 6px;
}
.hero-meta-block {
  display: inline-flex;
  flex-direction: column;
  gap: 4px;
}
.hero-meta-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.24em;
  color: var(--c-purple);
}
.hero-meta-date {
  font-family: var(--font-sans);
  font-size: 28px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--ink);
  display: inline-flex;
  align-items: baseline;
  gap: 2px;
}
.hero-meta-date i {
  font-style: normal;
  color: var(--c-purple);
  font-weight: 800;
}
.hero-meta-date em {
  font-style: normal;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.18em;
  color: var(--muted);
  margin-left: 10px;
  align-self: center;
  transform: translateY(-2px);
}
.hero-meta-arrow {
  display: inline-flex;
  align-items: center;
  color: var(--muted);
  opacity: 0.6;
}
.hero-meta-divider {
  width: 1px;
  background: var(--line-2);
  margin: 4px 4px;
}
.hero-meta-place {
  align-self: center;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.24em;
  color: var(--ink-2);
  position: relative;
  padding-left: 14px;
}
.hero-meta-place::before {
  content: "";
  position: absolute;
  left: 0; top: 50%;
  width: 8px; height: 8px;
  border-radius: 50%;
  background: #EF4444;
  transform: translateY(-50%);
  box-shadow: 0 0 0 4px rgba(239,68,68,.16);
  animation: pulse 2s ease-in-out infinite;
}
@keyframes pulse {
  0%, 100% { box-shadow: 0 0 0 4px rgba(239,68,68,.16); }
  50% { box-shadow: 0 0 0 7px rgba(239,68,68,.06); }
}
@media (max-width: 600px) {
  .hero-meta { gap: 12px; flex-wrap: wrap; }
  .hero-meta-date { font-size: 22px; }
}

.hero-title {
  margin: 0 0 18px;
  font-family: var(--font-sans);
  font-weight: 800;
  font-size: clamp(48px, 9vw, 128px);
  line-height: 1.02;
  letter-spacing: -0.035em;
  color: var(--ink);
  padding-bottom: 0.08em;
}
.hero-title-row {
  display: block;
  padding-bottom: 0.06em;
}
.hero-title-row--gradient {
  background: var(--grad);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  font-style: italic;
  font-weight: 800;
}
.hero-title-row--year {
  font-size: 0.55em;
  font-weight: 600;
  letter-spacing: 0.05em;
  color: var(--ink-2);
  margin-top: 8px;
}

.hero-subtitle {
  font-family: var(--font-jp);
  font-size: clamp(22px, 3vw, 36px);
  font-weight: 600;
  line-height: 1.5;
  color: var(--ink);
  margin: 0 0 30px;
  max-width: 820px;
}

.hero-support {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 18px;
}
.hero-support-label {
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.20em;
  text-transform: uppercase;
  color: var(--muted);
  padding-right: 14px;
  border-right: 1px solid var(--line-2);
}
.hero-support-logo {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.ms-sq { display: inline-block; width: 11px; height: 11px; }
.ms-sq--r { background: #F25022; }
.ms-sq--g { background: #7FBA00; margin-left: -6px; margin-top: -6px; }
.ms-sq--b { background: #00A4EF; margin-left: -6px; margin-bottom: -6px; }
.ms-sq--y { background: #FFB900; margin-left: -6px; margin-top: -6px; }
.hero-support-logo {
  display: inline-flex;
  align-items: center;
}
.hero-support-logo {
  font-family: 'Segoe UI', var(--font-sans);
}
.ms-text {
  font-family: 'Segoe UI', var(--font-sans);
  font-weight: 600;
  font-size: 19px;
  color: #5F6368;
  margin-left: 6px;
  letter-spacing: -0.005em;
}
/* tighter grid for the 2x2 logo */
.hero-support-logo {
  display: grid;
  grid-template-columns: auto auto;
  align-items: center;
  gap: 0 8px;
}
.hero-support-logo .ms-sq--r,
.hero-support-logo .ms-sq--g,
.hero-support-logo .ms-sq--b,
.hero-support-logo .ms-sq--y { margin: 0; }
.hero-support-logo {
  position: relative;
}
/* rewrite — use a proper 2x2 mark */
.hero-support-logo {
  display: inline-grid;
  grid-template-columns: 11px 11px auto;
  grid-template-rows: 11px 11px;
  column-gap: 2px;
  row-gap: 2px;
  align-items: center;
}
.hero-support-logo .ms-sq--r { grid-column: 1; grid-row: 1; }
.hero-support-logo .ms-sq--g { grid-column: 2; grid-row: 1; }
.hero-support-logo .ms-sq--b { grid-column: 1; grid-row: 2; }
.hero-support-logo .ms-sq--y { grid-column: 2; grid-row: 2; }
.hero-support-logo .ms-text  { grid-column: 3; grid-row: 1 / span 2; align-self: center; margin-left: 8px; }

.hero-cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 24px;
  margin-bottom: 72px;
}

.btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 26px;
  border-radius: 999px;
  font-weight: 600;
  font-size: 15px;
  border: 1px solid transparent;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
  font-family: var(--font-jp);
}
.btn-primary {
  background: var(--ink);
  color: #fff;
  box-shadow: 0 8px 24px rgba(20,21,42,.15);
}
.btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 32px rgba(124,58,237,.30);
  background: linear-gradient(120deg, #2563EB, #7C3AED 60%, #E74694);
}
.btn-ghost {
  background: rgba(255,255,255,.6);
  color: var(--ink);
  border-color: var(--line-2);
  backdrop-filter: blur(8px);
}
.btn-ghost:hover {
  background: #fff;
  border-color: var(--c-purple);
  color: var(--c-purple);
}
.btn-lg {
  padding: 18px 34px;
  font-size: 16px;
}

.hero-stats {
  list-style: none;
  display: inline-flex;
  gap: 40px;
  margin: 20px 0 0;
  padding: 28px 0 0;
  border-top: 1px solid rgba(20,21,42,.08);
  max-width: 720px;
}
.hero-stats li {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
}
.hero-stats .stat-num {
  font-family: var(--font-sans);
  font-size: 36px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--ink);
}
.hero-stats .stat-unit {
  font-family: var(--font-sans);
  font-size: 16px;
  font-weight: 500;
  color: var(--muted);
  letter-spacing: 0.02em;
}
@media (max-width: 600px) {
  .hero-stats { gap: 24px; flex-wrap: wrap; }
  .hero-stats .stat-num { font-size: 28px; }
  .hero-stats .stat-unit { font-size: 14px; }
}

.hero-scroll {
  display: none;
  position: absolute;
  left: var(--pad-x);
  right: auto;
  bottom: 32px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  font-family: var(--font-sans);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.3em;
  color: var(--muted);
}
.hero-scroll-line {
  width: 1px; height: 56px;
  background: linear-gradient(to bottom, var(--line-2), transparent);
  position: relative;
  overflow: hidden;
}
.hero-scroll-line::after {
  content: "";
  position: absolute;
  top: -20px; left: 0;
  width: 1px; height: 20px;
  background: var(--c-purple);
  animation: scrollDown 2s ease-in-out infinite;
}
@keyframes scrollDown {
  0% { top: -20px; }
  100% { top: 60px; }
}
@media (max-width: 800px) { .hero-scroll { display: none; } }

/* ============ CONCEPT ============ */
.concept {
  padding: 120px 0 100px;
  background: var(--surface);
  position: relative;
}
.concept::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--line-2), transparent);
}
.concept-lead {
  font-size: clamp(15px, 1.6vw, 18px);
  line-height: 2.0;
  color: var(--ink-2);
  max-width: 880px;
  margin: 0;
}
.concept-lead p {
  margin: 0 0 24px;
}
.concept-lead p:last-child { margin-bottom: 0; }
.concept-lead strong {
  font-weight: 700;
  color: var(--ink);
  background: linear-gradient(180deg, transparent 62%, rgba(124,58,237,.16) 62%);
  padding: 0 2px;
}
.concept-pillars {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.pillar {
  position: relative;
  padding: 32px 28px;
  background: var(--surface);
  border: 1px solid transparent;
  border-radius: var(--r-lg);
  box-shadow: var(--sh-lg);
}
.pillar::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: var(--r-lg);
  padding: 1px;
  background: var(--grad);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: 1;
  pointer-events: none;
}
.pillar-num {
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2em;
  color: var(--c-purple);
  margin-bottom: 16px;
}
.pillar h3 {
  margin: 0 0 10px;
  font-size: 18px;
  font-weight: 700;
  color: var(--ink);
}
.pillar p {
  margin: 0;
  font-size: 14px;
  line-height: 1.7;
  color: var(--muted);
}
@media (max-width: 800px) {
  .concept-pillars { grid-template-columns: 1fr; }
}

/* ============ SPEAKERS ============ */
.speakers {
  padding: 120px 0 100px;
  background: var(--bg);
}
.speaker-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 20px;
}
.speaker-card {
  position: relative;
  text-align: center;
  align-items: center;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: 34px 24px;
  cursor: pointer;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  display: flex;
  flex-direction: column;
  gap: 14px;
  overflow: hidden;
}
.speaker-card::after {
  content: "";
  position: absolute;
  inset: -1px;
  border-radius: var(--r-lg);
  padding: 1px;
  background: var(--grad);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: 0;
  transition: opacity .25s ease;
  pointer-events: none;
}
.speaker-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--sh-lg);
  border-color: transparent;
}
.speaker-card:hover::after { opacity: 1; }
.speaker-photo-wrap {
  display: flex;
  justify-content: center;
}
.speaker-logo-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 56px;
  margin: 12px 0;
}
.speaker-logo {
  max-width: 64%;
  max-height: 52px;
  width: auto;
  height: auto;
  object-fit: contain;
}
.speaker-logo.logo-kobayashi { max-width: 42%; max-height: 34px; }
.speaker-card-top {
  display: flex;
  align-items: center;
  gap: 14px;
}
.speaker-avatar {
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: #fff;
  font-family: var(--font-sans);
  font-weight: 700;
  letter-spacing: -0.01em;
  flex-shrink: 0;
  position: relative;
  overflow: hidden;
}
.speaker-avatar svg { display: block; position: relative; z-index: 1; }
.speaker-avatar-init {
  position: absolute;
  bottom: 6px; right: 6px;
  background: rgba(20,21,42,.78);
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.04em;
  padding: 2px 6px;
  border-radius: 4px;
  z-index: 2;
  font-family: var(--font-sans);
}
.speaker-day-chip {
  display: inline-block;
  font-family: var(--font-sans);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.15em;
  padding: 4px 8px;
  border-radius: 4px;
  background: var(--surface-2);
  color: var(--ink-2);
}
.speaker-day-chip.day-1 { background: rgba(0,183,255,.10); color: #0079B0; }
.speaker-day-chip.day-2 { background: rgba(231,70,148,.10); color: #B82F73; }
.speaker-time {
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 500;
  color: var(--muted);
  margin-top: 4px;
}
.speaker-meta { flex: 1; min-width: 0; }
.speaker-company {
  font-size: 14px;
  font-weight: 700;
  color: var(--c-purple);
  line-height: 1.4;
}
.speaker-name {
  font-size: 19px;
  font-weight: 800;
  color: var(--ink);
  margin: 0;
  line-height: 1.2;
}
.speaker-name-en {
  font-family: var(--font-sans);
  font-size: 11px;
  letter-spacing: 0.08em;
  color: var(--muted);
  text-transform: uppercase;
}
.speaker-org {
  font-size: 13px;
  color: var(--muted);
  line-height: 1.5;
  margin-top: 6px;
}
.speaker-org-name { color: var(--ink); font-weight: 700; font-size: 15px; }
.speaker-summary {
  font-family: var(--font-sans);
  font-size: 13.5px;
  font-weight: 400;
  line-height: 1.7;
  color: var(--ink-2);
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.speaker-topic {
  font-size: 16px;
  font-weight: 700;
  line-height: 1.55;
  color: var(--ink);
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.speaker-card-footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  width: 100%;
  border-top: 1px solid var(--line);
  padding-top: 16px;
  margin-top: auto;
}
/* sharp detail button (small radius) */
.btn-detail {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 700;
  color: #fff;
  background: var(--c-purple);
  padding: 8px 14px;
  border-radius: 4px;
  transition: background .15s ease, gap .15s ease;
}
.speaker-card:hover .btn-detail,
.tt-row--clickable:hover .btn-detail { background: #6a2fd0; gap: 9px; }
/* speaker card: subtle outline pill (less prominent) */
.btn-detail--ghost {
  background: transparent;
  color: var(--muted);
  border: 1px solid var(--line-2);
  border-radius: 999px;
  font-weight: 600;
}
.speaker-card:hover .btn-detail--ghost {
  background: transparent;
  color: var(--c-purple);
  border-color: var(--c-purple);
  gap: 9px;
}
.speaker-card-time-chip {
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 600;
  color: var(--ink-2);
  background: var(--surface-2);
  padding: 4px 10px;
  border-radius: 6px;
}

/* Modal */
.modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 100;
  background: rgba(20, 21, 42, 0.62);
  display: grid;
  place-items: center;
  padding: 24px;
  animation: fadeIn .12s ease;
}
@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}
.modal {
  background: var(--surface);
  border-radius: var(--r-xl);
  max-width: 820px;
  width: 100%;
  max-height: 88vh;
  overflow-y: auto;
  position: relative;
  animation: slideUp .16s cubic-bezier(.2,.8,.2,1);
  box-shadow: 0 40px 80px rgba(20,21,42,.30);
}
@keyframes slideUp {
  from { opacity: 0; transform: translateY(20px) scale(.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
.modal-close {
  position: absolute;
  top: 16px; right: 16px;
  width: 36px; height: 36px;
  border-radius: 50%;
  background: var(--surface-2);
  border: none;
  display: grid;
  place-items: center;
  color: var(--ink);
  transition: background .15s ease, transform .15s ease;
  z-index: 2;
}
.modal-close:hover {
  background: var(--ink);
  color: #fff;
  transform: rotate(90deg);
}
.modal-hero {
  padding: 40px 40px 28px;
  background: var(--grad-soft);
  border-radius: var(--r-xl) var(--r-xl) 0 0;
  display: flex;
  flex-direction: column;
  gap: 18px;
  align-items: flex-start;
}
.modal-hero > .modal-hero-org-name {
  font-size: 14px;
  font-weight: 700;
  color: var(--c-purple);
  letter-spacing: 0.01em;
}
.modal-people {
  display: flex;
  flex-direction: column;
  gap: 20px;
  width: 100%;
}
.modal-people--multi {
  flex-direction: column;
  flex-wrap: nowrap;
  gap: 28px;
}
.modal-people--multi .modal-person-head { flex: 1; min-width: 220px; }
.modal-person-head {
  display: flex;
  gap: 20px;
  align-items: center;
}
.modal-person-headmeta { min-width: 0; }
.modal-hero .speaker-avatar {
  box-shadow: 0 12px 28px rgba(20,21,42,.18);
}
.modal-hero-meta { flex: 1; }
.modal-hero-name {
  font-size: 24px;
  font-weight: 700;
  margin: 0 0 4px;
  color: var(--ink);
}
.hon { font-size: 0.66em; font-weight: 700; margin-left: 2px; }
.modal-hero-name-en {
  font-family: var(--font-sans);
  font-size: 12px;
  letter-spacing: 0.12em;
  color: var(--muted);
  margin-bottom: 12px;
  text-transform: uppercase;
}
.modal-hero-org {
  font-size: 14px;
  color: var(--ink-2);
}
.modal-hero-org-name { font-weight: 600; }
.modal-profile-block { margin-bottom: 16px; }
.modal-profile-name {
  font-size: 15px;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 6px;
}
.modal-body { padding: 32px 40px 40px; }
.modal-schedule {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 8px 14px;
  border-radius: 8px;
  background: var(--surface-2);
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 600;
  color: var(--ink-2);
  margin-bottom: 20px;
}
.modal-schedule strong { color: var(--ink); }
.modal-schedule { margin-top: 4px; margin-bottom: 0; }
.modal-topic-title {
  font-size: 22px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--ink);
  margin: 0 0 16px;
}
.modal-section-label {
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--c-purple);
  margin: 28px 0 10px;
}
.modal-text {
  font-size: 16px;
  line-height: 1.95;
  color: var(--ink-2);
  margin: 0;
  white-space: pre-line;
}
@media (max-width: 600px) {
  .modal-hero { padding: 28px 24px 20px; }
  .modal-people--multi { flex-direction: column; }
  .modal-body { padding: 24px; }
}

/* ============ TIMETABLE ============ */
.timetable {
  padding: 120px 0 100px;
  background: var(--surface);
}
.tt-tabs {
  display: inline-flex;
  background: var(--surface-2);
  border-radius: 12px;
  padding: 4px;
  margin-bottom: 40px;
  gap: 4px;
}
.tt-tab {
  border: none;
  background: transparent;
  padding: 12px 24px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  color: var(--muted);
  font-family: var(--font-jp);
  transition: all .2s ease;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  text-align: left;
}
.tt-tab small {
  font-family: var(--font-sans);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.14em;
  opacity: .7;
}
.tt-tab.active {
  background: var(--ink);
  color: #fff;
  box-shadow: var(--sh-sm);
}
.tt-tab:not(.active):hover { color: var(--ink); }

.tt-rows { border-top: 1px solid var(--line); }
.tt-row {
  display: grid;
  grid-template-columns: 160px 1fr 160px;
  gap: 28px;
  padding: 28px 0;
  border-bottom: 1px solid var(--line);
  align-items: center;
  transition: background .15s ease;
}
.tt-row:not(.tt-row--break):hover {
  background: linear-gradient(90deg, transparent, rgba(124,58,237,.03) 40%, rgba(231,70,148,.03) 100%);
}
.tt-row--break { opacity: .55; }
.tt-time {
  font-family: var(--font-sans);
  font-size: 18px;
  font-weight: 700;
  color: var(--ink);
  letter-spacing: -0.01em;
}
.tt-track {
  display: inline-block;
  font-family: var(--font-sans);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.15em;
  padding: 4px 8px;
  border-radius: 4px;
  background: var(--surface-2);
  color: var(--ink-2);
  text-transform: uppercase;
  margin-top: 8px;
}
.tt-track--keynote { background: linear-gradient(120deg, rgba(0,183,255,.18), rgba(124,58,237,.18)); color: #5B21B6; }
.tt-track--break { background: transparent; color: var(--muted); padding-left: 0; }
.tt-title {
  font-size: 17px;
  font-weight: 700;
  color: var(--ink);
  margin: 0 0 8px;
}
.tt-speakers {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 6px;
}
.tt-speaker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--ink-2);
  background: var(--surface-2);
  padding: 6px 12px 6px 6px;
  border-radius: 999px;
  cursor: pointer;
  transition: background .15s ease, color .15s ease;
}
.tt-speaker:hover {
  background: var(--ink);
  color: #fff;
}
.tt-speaker .mini-avatar {
  width: 24px; height: 24px;
  border-radius: 50%;
  display: grid; place-items: center;
  color: #fff;
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: 10px;
  flex-shrink: 0;
}
.tt-speaker-org {
  font-size: 11px;
  color: var(--muted);
  margin-left: 4px;
}
.tt-speaker:hover .tt-speaker-org { color: rgba(255,255,255,.7); }
.tt-cta {
  text-align: right;
  padding-right: 12px;
}
.tt-cta-text {
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 600;
  color: var(--c-purple);
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
@media (max-width: 800px) {
  .tt-row { grid-template-columns: 1fr; gap: 12px; }
  .tt-cta { text-align: left; }
}

/* ============ OVERVIEW ============ */
.overview {
  padding: 120px 0 100px;
  background: var(--bg);
}
.overview-list {
  margin: 0;
  border-top: 1px solid var(--line);
  max-width: 920px;
}
.overview-row {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 24px;
  padding: 24px 0;
  border-bottom: 1px solid var(--line);
}
.overview-row dt {
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--muted);
  padding-top: 4px;
}
.overview-row dd {
  margin: 0;
  font-size: 15px;
  line-height: 1.85;
  color: var(--ink);
}
.overview-row dd a {
  color: var(--c-purple);
  text-decoration: underline;
  text-decoration-color: rgba(124,58,237,.30);
  text-underline-offset: 3px;
}
.overview-row dd a:hover { text-decoration-color: var(--c-purple); }
.overview-sub {
  font-size: 13px;
  color: var(--muted);
}
@media (max-width: 700px) {
  .overview-row { grid-template-columns: 1fr; gap: 6px; }
}

/* ============ APPLY ============ */
.apply {
  padding: 120px 0 100px;
  background: var(--surface);
  position: relative;
  overflow: hidden;
}
.apply::before {
  content: "";
  position: absolute;
  right: -200px; top: -200px;
  width: 600px; height: 600px;
  background: radial-gradient(circle, rgba(124,58,237,.10), transparent 70%);
  pointer-events: none;
}
.apply .section-inner { position: relative; }
.steps {
  list-style: none;
  padding: 0;
  margin: 56px 0 64px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  position: relative;
}
.steps::before {
  content: "";
  position: absolute;
  top: 60px;
  left: 16%;
  right: 16%;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--c-purple), var(--c-magenta), transparent);
  opacity: .3;
  z-index: 0;
}
.step {
  position: relative;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: 32px 28px;
  z-index: 1;
}
.step-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
}
.step-num {
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2em;
  color: var(--muted);
}
.step-icon-line {
  color: var(--ink);
  display: inline-flex;
}
.step h3 {
  margin: 0 0 10px;
  font-size: 19px;
  font-weight: 700;
  color: var(--ink);
}
.step p {
  margin: 0 0 16px;
  font-size: 14px;
  line-height: 1.75;
  color: var(--ink);
}
.step-link {
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 600;
  color: var(--c-purple);
}
@media (max-width: 800px) {
  .steps { grid-template-columns: 1fr; }
  .steps::before { display: none; }
}

.apply-cta {
  text-align: center;
  padding-top: 12px;
}
.apply-note {
  margin: 16px 0 0;
  font-size: 13px;
  color: var(--muted);
}

/* ============ FOOTER ============ */
.footer {
  background: #100d18;
  color: #EEF0F8;
  padding: 64px 0 32px;
}
.footer-inner {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--pad-x);
}
.footer-brand {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 48px;
  padding-bottom: 32px;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.footer-title {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  line-height: 1.15;
  font-size: 26px;
  font-weight: 800;
  letter-spacing: 0.01em;
  color: #fff;
  margin-bottom: 8px;
}
.footer-logo { height: 30px; width: auto; max-width: 100%; display: block; }
.footer-host {
  font-size: 14px;
  font-weight: 600;
  color: #C6C9DA;
}
.footer-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 40px;
}
.footer-links a {
  color: #E4E6F0;
  transition: color .15s ease;
}
.footer-links a:hover { color: #fff; }
.footer-sep { color: #565A7E; }
.footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 600;
  color: #A9ADC6;
  padding-top: 24px;
  border-top: 1px solid rgba(255,255,255,.06);
}
.footer-copy { letter-spacing: 0.02em; }
.footer-supported { letter-spacing: 0.16em; text-transform: uppercase; }
@media (max-width: 600px) {
  .footer-bottom { flex-direction: column; gap: 8px; align-items: flex-start; }
}

/* ============ Hero presenter line ============ */
.hero-presenter {
  font-family: var(--font-jp);
  font-size: 14px;
  font-weight: 500;
  color: var(--ink-2);
  margin: 0 0 40px;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px 10px;
}
.hero-presenter strong {
  font-weight: 700;
  color: var(--ink);
}
.hero-presenter-note {
  font-size: 12px;
}
.st-br { display: none; }
@media (min-width: 760px) { .st-br { display: inline; } }

/* ============ Timetable — single day redesign ============ */
.tt-daycard {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 22px 28px;
  border-radius: var(--r-lg);
  background: var(--grad-soft);
  border: 1px solid var(--line);
  margin-bottom: 36px;
}
.tt-daycard-date {
  display: flex;
  align-items: baseline;
  gap: 10px;
}
.tt-daycard-md {
  font-family: var(--font-sans);
  font-size: 40px;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--ink);
  line-height: 1;
}
.tt-daycard-md i { font-style: normal; color: var(--c-purple); }
.tt-daycard-dow {
  font-family: var(--font-sans);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.16em;
  color: var(--muted);
}
.tt-daycard-meta {
  display: flex;
  flex-direction: column;
  gap: 4px;
  border-left: 1px solid var(--line-2);
  padding-left: 24px;
}
.tt-daycard-label {
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: var(--c-purple);
}
.tt-daycard-text {
  font-size: 14px;
  font-weight: 600;
  color: var(--ink);
}

/* Override generic tt-row grid for the new 3-column layout */
.tt-rows {
  border-top: 1px solid rgba(255,255,255,.5);
  background: rgba(255,255,255,.55);
  border-radius: 16px;
  padding: 8px 28px;
  box-shadow: 0 1px 0 rgba(255,255,255,.6) inset;
}
.tt-row {
  display: grid;
  grid-template-columns: 116px 1fr auto;
  gap: 28px;
  padding: 40px 4px;
  border-bottom: 1px solid var(--line);
  align-items: flex-start;
}
.tt-col-action {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: flex-end;
  align-self: stretch;
}
.tt-row:hover {
  background: linear-gradient(90deg, transparent, rgba(124,58,237,.025) 40%, rgba(231,70,148,.025) 100%);
}
.tt-col-time { display: flex; flex-direction: column; gap: 10px; align-items: flex-start; }
.tt-time {
  font-family: var(--font-sans);
  font-size: 22px;
  font-weight: 700;
  color: var(--ink);
  letter-spacing: -0.01em;
}
.tt-track {
  display: inline-block;
  font-family: var(--font-jp);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  padding: 4px 10px;
  border-radius: 999px;
  background: var(--surface-2);
  color: var(--ink-2);
  white-space: nowrap;
}
.tt-track--keynote { background: linear-gradient(120deg, rgba(0,183,255,.16), rgba(124,58,237,.16)); color: #5B21B6; }
.tt-track--panel { background: rgba(231,70,148,.10); color: #B82F73; }
.tt-track--talk { background: rgba(37,99,235,.12); color: #1D4ED8; }
.tt-track--case { background: rgba(242,160,61,.16); color: #B5701A; }
.tt-col-body { min-width: 0; }
.tt-title {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.45;
  color: var(--ink);
  margin: 0 0 10px;
  text-wrap: pretty;
}
.tt-summary {
  font-size: 16px;
  line-height: 1.85;
  color: var(--ink);
  margin: 14px 0 14px;
  text-wrap: pretty;
}
.tt-speaker-line {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-start;
  gap: 20px;
  margin-top: 16px;
}
.tt-logo-box {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  padding: 15px;
  border-radius: 8px;
  align-self: flex-start;
}
.tt-logo {
  display: block;
  max-height: 62px;
  max-width: 180px;
  width: auto;
  height: auto;
  object-fit: contain;
}
.tt-logo[src*="nyk"] { max-height: 44px; max-width: 150px; }
.tt-logo[src*="scsk"] { max-height: 34px; max-width: 130px; }
.tt-people {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 18px 32px;
  min-width: 0;
}
.tt-person {
  display: flex;
  align-items: center;
  gap: 14px;
}
.tt-person .tt-photo { flex-shrink: 0; }
.tt-person-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  text-align: left;
  align-items: flex-start;
}
.tt-speaker-name {
  font-size: 18px;
  font-weight: 700;
  color: var(--ink);
  text-align: left;
}
.tt-speaker-org {
  font-size: 15px;
  font-weight: 700;
  margin: 0;
  color: var(--ink);
  text-align: left;
}
.tt-speaker-role-txt {
  font-size: 11.5px;
  font-weight: 500;
  color: var(--muted);
  text-align: left;
}
.tt-speaker-role {
  font-size: 11px;
  color: var(--muted);
}
.tt-col-photo { display: flex; justify-content: flex-end; }
.tt-people { flex-wrap: nowrap; }
.tt-people .tt-person { flex: 1 1 0; min-width: 0; }
.tt-person .tt-person-info { min-width: 0; }
.tt-person .tt-person-info > span { overflow-wrap: anywhere; }
@media (max-width: 640px) {
  .tt-people { flex-direction: column; flex-wrap: wrap; }
  .tt-people .tt-person { flex: none; }
  .tt-speaker-line { flex-wrap: wrap; }
}

/* =====================================================
   2026-08 UPDATE: nav logo / hero recomposition / heads
   ===================================================== */

/* --- Nav logo --- */
.nav-logo { height: 22px; width: auto; display: block; }
@media (max-width: 800px) { .nav-logo { height: 19px; } }

/* --- Section heads: eyebrow + JP title on one row --- */
.section-head {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 6px 24px;
  margin-bottom: 34px;
}
.section-head .section-eyebrow { margin-bottom: 0; flex-shrink: 0; }
.section-head .section-title { margin: 0; }
@media (max-width: 720px) {
  .section-head { gap: 10px 16px; }
}

/* --- Hero: decorative title (演出) + highlighted subtitle (main) --- */
.hero-deco-title {
  font-family: var(--font-sans);
  font-weight: 800;
  line-height: 1.06;
  letter-spacing: -0.02em;
  margin: 0 0 20px;
  font-size: clamp(20px, 3.4vw, 42px);
}
.hero-deco-row { display: block; }
.hero-deco-row:first-child {
  background: linear-gradient(100deg, #1E63E6 0%, #3A78E8 45%, #7C3AED 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  opacity: 1;
}
.hero-deco-row--gradient {
  background: linear-gradient(100deg, #1E63E6 0%, #7C3AED 45%, #E74694 90%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}

/* subtitle is now the visual main */
.hero .hero-subtitle {
  font-family: var(--font-jp);
  font-weight: 800;
  line-height: 1.5;
  color: var(--ink);
  margin: 0 0 clamp(24px, 4dvh, 40px);
  max-width: 940px;
  font-size: clamp(30px, 3.8vw, 40px);
  text-shadow: none;
}
.hero-hl {
  background: linear-gradient(94deg, rgba(0,183,255,.26), rgba(124,58,237,.22) 55%, rgba(231,70,148,.20));
  color: var(--ink);
  padding: 0.08em 0.34em;
  border-radius: 8px;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}
@media (max-height: 780px) {
  .hero-deco-title { font-size: clamp(18px, 2.8vw, 34px); margin-bottom: 14px; }
  .hero .hero-subtitle { font-size: clamp(20px, 2.7vw, 34px); }
}

/* --- Nav logo nudged left --- */
.nav-brand { margin-left: 0; }

/* --- Hero CTA: larger, wider --- */
.hero .btn-primary {
  padding: 18px 40px;
  font-size: 18px;
  min-width: 300px;
  justify-content: center;
}

/* --- Concept title: slightly smaller --- */
.concept .section-title { font-size: clamp(23px, 3.2vw, 37px); }
/* align concept lead text with the title (offset past eyebrow) */
.concept .concept-lead { padding-left: 173px; }
@media (max-width: 720px) { .concept .concept-lead { padding-left: 0; } }

/* --- Speakers: tighten top padding --- */
.speakers { padding-top: clamp(56px, 8dvh, 88px); }

/* --- Concept: 主催 / 後援 orgs (separate white plates, wider) --- */
.concept-orgs {
  display: flex;
  align-items: stretch;
  gap: 20px;
  margin: 48px 0 44px;
  width: fit-content;
  max-width: 100%;
  flex-wrap: wrap;
  justify-content: flex-start;
  background: none;
  border: 0;
  padding: 0;
  box-shadow: none;
}
.concept-org {
  flex: 0 0 auto;
  min-width: 280px;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 22px;
  padding: 44px 56px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  box-shadow: 0 2px 12px rgba(20,21,42,.05);
}
.concept-org-label {
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--muted);
  padding: 5px 14px;
  border: 1px solid var(--line-2);
  border-radius: 999px;
  flex-shrink: 0;
}
.concept-org-logo { display: block; width: auto; }
.concept-org-logo--host { height: 30px; }
.concept-org-logo--keidanren { height: 50px; }
@media (max-width: 560px) {
  .concept-org { flex: 1 1 100%; }
}
.tt-photo {
  position: relative;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: var(--sh-md);
  flex-shrink: 0;
}
.tt-photo svg { display: block; }
.tt-photo--real { background: var(--surface-2); }
.tt-photo-tag {
  position: absolute;
  bottom: 5px; left: 50%;
  transform: translateX(-50%);
  background: rgba(20,21,42,.72);
  color: #fff;
  font-family: var(--font-sans);
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 0.14em;
  padding: 2px 7px;
  border-radius: 4px;
}
@media (max-width: 760px) {
  .tt-row {
    grid-template-columns: 1fr auto;
    grid-template-areas:
      "time photo"
      "body body";
    gap: 14px 16px;
  }
  .tt-col-time { grid-area: time; flex-direction: row; align-items: center; gap: 12px; }
  .tt-col-photo { grid-area: photo; }
  .tt-col-body { grid-area: body; }
  .tt-daycard { flex-direction: column; align-items: flex-start; gap: 14px; }
  .tt-daycard-meta { border-left: none; padding-left: 0; }
}

/* ============ Hero credits (supported by / Presented by) ============ */
.visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0);
  white-space: nowrap; border: 0;
}
.hero-credits {
  position: absolute;
  right: 0;
  bottom: -18px;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  text-align: right;
  gap: 4px;
  margin: 0;
}
.hero-credit {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: nowrap;
  white-space: nowrap;
}
.hero-credit-label {
  flex-shrink: 0;
  white-space: nowrap;
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--muted);
}
.hero-credit-logo {
  height: 15px;
  width: auto;
  display: block;
}
.hero-credit-value {
  font-family: var(--font-jp);
  font-size: 14.5px;
  font-weight: 700;
  color: var(--ink);
  letter-spacing: 0.01em;
}
.hero-credit .ms-text { font-size: 14.5px; }
.hero-presenter-note {
  display: inline-block;
  align-self: flex-end;
  width: fit-content;
  max-width: 100%;
  font-size: 12.5px;
  font-weight: 700;
  color: #fff;
  background: #2563EB;
  padding: 6px 13px;
  border-radius: 5px;
  letter-spacing: 0.01em;
  margin-top: 2px;
}
@media (max-width: 600px) {
  .hero-credit-label { width: auto; }
  .hero-credit .hero-presenter-note { padding-left: 0; flex-basis: auto; }
}

/* ============ Timetable tweaks ============ */
.tt-title { font-size: 21px; }
.tt-row--clickable { cursor: pointer; }
.tt-more {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-top: 14px;
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 600;
  color: var(--c-purple);
}
.tt-row--clickable:hover .tt-more { gap: 8px; }
.tt-speaker-role {
  display: inline-block;
  font-family: var(--font-sans);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #fff;
  background: var(--grad);
  padding: 3px 9px;
  border-radius: 999px;
}

/* =====================================================
   FULL-SCREEN SNAP + FV FIT (laptop-safe)
   ===================================================== */
html {
  scroll-snap-type: y mandatory;
  scroll-padding-top: 0;
}
.hero,
.concept,
.speakers,
.timetable,
.overview,
.apply,
.footer {
  scroll-snap-align: start;
  scroll-snap-stop: always;
}

/* ---- HERO: fits exactly within the laptop viewport ---- */
.hero {
  height: 78dvh;
  min-height: 78dvh;
  padding-top: clamp(52px, 6dvh, 72px);
  padding-bottom: clamp(12px, 2dvh, 22px);
  align-items: center;
}
.hero-inner {
  max-height: 720px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
}
.hero-title {
  font-size: clamp(46px, 7.4vw, 96px);
  line-height: 1.02;
  margin: 0 0 clamp(10px, 1.6dvh, 16px);
}
.hero-meta { margin-bottom: clamp(14px, 2.6dvh, 26px); }
.hero-subtitle {
  font-size: clamp(18px, 2.3vw, 26px);
  margin: 0 0 clamp(14px, 2.4dvh, 24px);
}
.hero-credits { margin: 0; gap: 4px; }
.hero-cta-row { margin-top: clamp(8px, 1.4dvh, 20px); margin-bottom: clamp(18px, 3dvh, 36px); }
.hero-stats { padding-top: clamp(14px, 2.2dvh, 24px); margin-top: clamp(34px, 5.5dvh, 56px); }
.hero-stats .stat-num { font-size: clamp(26px, 3vw, 34px); }

@media (max-height: 760px) {
  .hero-title { font-size: clamp(40px, 6vw, 72px); }
  .hero-subtitle { font-size: 20px; }
  .hero-stats .stat-num { font-size: 26px; }
}

/* ---- Content sections: one screen each, centered ---- */
.concept,
.speakers,
.timetable,
.overview,
.apply {
  min-height: 100dvh;
  display: flex;
  align-items: center;
  padding-top: clamp(84px, 12dvh, 120px);
  padding-bottom: clamp(48px, 8dvh, 96px);
}
.concept .section-inner,
.speakers .section-inner,
.timetable .section-inner,
.overview .section-inner,
.apply .section-inner {
  width: 100%;
}

/* ---- SP (mobile) relayout ---- */
@media (max-width: 640px) {
  /* sections: no forced full-screen, tighter vertical rhythm */
  .hero {
    height: auto;
    min-height: auto;
    padding-top: 84px;
    padding-bottom: 40px;
  }
  .hero-inner { max-height: none; }
  .concept,
  .speakers,
  .timetable,
  .overview,
  .apply {
    min-height: 0;
    padding-top: 52px;
    padding-bottom: 52px;
  }
  .speakers { padding-top: 52px; }
  .section-head { margin-bottom: 24px; }

  /* supported/presented block flows below stats instead of overlapping */
  .hero-credits {
    position: static;
    align-items: flex-start;
    text-align: left;
    margin-top: 28px;
  }
  .hero-credit { justify-content: flex-start; }
  .hero-presenter-note { align-self: flex-start; }

  /* timetable: tighten time column + opening/closing rows */
  .tt-col-time { gap: 6px; }
  .tt-time { font-size: 18px; }
  .tt-row { padding-top: 22px; padding-bottom: 22px; }

  /* 主催/後援: stack label above logo (logo regulation) */
  .concept-org {
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
    padding: 24px 28px;
    min-width: 0;
    width: 100%;
  }

  /* timetable 詳細を見る: bottom-right under speaker name */
  .tt-row {
    grid-template-areas:
      "time photo"
      "body body"
      "action action";
  }
  .tt-col-action { grid-area: action; text-align: right; }

  /* apply CTA: reduce gap above the button */
  .steps { margin-bottom: 24px; }
  .apply-cta { padding-top: 4px; }
}

/* =====================================================
   ROUNDED-PARALLELOGRAM BACKGROUND MOTIF (Copilot hues)
   ===================================================== */
.hero-mesh {
  background: linear-gradient(180deg, #FFFFFF 0%, #F5F6FB 100%);
}
.hero-mesh .grain { opacity: .10; }

/* rounded-squares graphic on a bright KV */
.hero-photo {
  position: absolute;
  inset: 0;
  background-image: url("https://www.skillupai.com/conference/agenticai_2026/hero-ribbon.jpg");
  background-repeat: no-repeat;
  background-position: right 2% center;
  background-size: 62% auto;
  opacity: 1;
}
/* light scrim protecting the left text zone — kept minimal so the ribbon stays vivid */
.hero-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(252,252,254,.98) 0%, rgba(252,252,254,.86) 28%, rgba(252,252,254,.3) 46%, rgba(252,252,254,0) 60%);
}
@media (max-width: 820px) {
  .hero-photo { opacity: .45; }
  .hero-photo::after {
    background: linear-gradient(180deg, rgba(248,249,253,.72), rgba(248,249,253,.9));
  }
}

.blob,
.hero-mesh::before,
.hero-mesh::after { display: none; }

/* =====================================================
   HERO LIGHT THEME (over neon graphic) — dark readable text
   ===================================================== */
.hero-meta-label { color: var(--c-purple); }
.hero-meta-date { color: var(--ink); }
.hero-meta-date i { color: var(--c-purple); }
.hero-meta-date em { color: var(--muted); }
.hero-meta-divider { background: var(--line-2); }
.hero-meta-place { color: var(--ink-2); }
.hero-meta-year { color: var(--muted); }

.hero-title { color: var(--ink); text-shadow: none; }
.hero-title-row--gradient {
  background: linear-gradient(110deg, #00A0DC, #2563EB 42%, #7C3AED 72%, #E74694);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  filter: none;
}
.hero-title-row--year { color: var(--muted); }
.hero-subtitle { color: var(--ink-2); text-shadow: none; }

.hero-credit-label { color: var(--muted); }
.hero-credit-value { color: var(--ink); }
.hero-credit-logo { filter: none; }

.hero-stats { border-top-color: var(--line); }
.hero-stats .stat-num { color: var(--ink); }
.hero-stats .stat-unit { color: var(--muted); }

.hero .btn-primary {
  background: var(--grad);
  color: #fff;
  box-shadow: 0 10px 26px rgba(20,21,42,.20);
  padding: 18px 40px;
  font-size: 18px;
  min-width: 300px;
  justify-content: center;
}
.hero .btn-primary:hover {
  background: linear-gradient(120deg, #2563EB, #7C3AED 60%, #E74694);
  color: #fff;
}
.hero .btn-ghost {
  background: rgba(255,255,255,.7);
  color: var(--ink);
  border-color: var(--line-2);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.hero .btn-ghost:hover {
  background: #fff;
  border-color: var(--c-purple);
  color: var(--ink);
}

.hero-scroll { color: var(--muted); }
.hero-scroll-line { background: linear-gradient(to bottom, var(--line-2), transparent); }
.hero-scroll-line::after { background: var(--c-purple); }

@media (prefers-reduced-motion: reduce) {
  .blob { animation: none; }
}

/* --- Hero logo (replaces gradient wordmark) --- */
.hero-logo {
  width: clamp(210px, 22vw, 250px);
  height: auto;
  display: block;
}
@media (max-height: 780px) { .hero-logo { width: clamp(190px, 20vw, 230px); } }

/* --- Hero: "Microsoft Copilot" gradient emphasis --- */
.hero-cp-grad {
  color: #1E63E6;
  font-weight: 900;
}

/* --- Yellow highlighter marker --- */
.hl-yellow {
  background-image: linear-gradient(rgba(230,255,0,.5), rgba(230,255,0,.5));
  background-repeat: no-repeat;
  background-size: 100% 74%;
  background-position: 0 84%;
  padding: 0 0.06em;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

/* --- Speakers: peek into the fold, tighter top --- */
.speakers { padding-top: clamp(48px, 7dvh, 76px); }

/* --- Concept: neon-yellow underline highlight --- */
.concept-hl-yellow {
  background-image: linear-gradient(#E6FF00, #E6FF00);
  background-repeat: no-repeat;
  background-size: 100% 0.16em;
  background-position: 0 96%;
  padding: 0 0.02em 0.06em;
}

/* --- Concept host card: stacked logo + certification badge --- */
.concept-org-main {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 42px;
}
.concept-org-cert {
  transform: translateY(9px);
  font-family: var(--font-sans);
  font-size: 12.5px;
  font-weight: 700;
  color: #fff;
  background: #2563EB;
  padding: 6px 13px;
  border-radius: 5px;
  letter-spacing: 0.01em;
  text-align: center;
}

/* =====================================================
   SPEAKERS: bigger photos (1.5x) + 4-column grid
   ===================================================== */
.speaker-grid {
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}
.speaker-card-top {
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 14px;
}
.speaker-meta { text-align: center; flex: none; }
.speaker-org { text-align: center; }
@media (max-width: 1100px) {
  .speaker-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 820px) {
  .speaker-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 540px) {
  .speaker-grid { grid-template-columns: 1fr; }
  .speaker-card-top { flex-direction: row; text-align: left; }
  .speaker-meta, .speaker-org { text-align: left; }
}

/* =====================================================
   LIGHT OFF-WHITE CONTENT THEME (bright, not pure white)
   ===================================================== */
.speakers  { background: #F2F4FB; }
.concept   { background: #F8F9FD; }
.timetable { background: #F2F4FB; }
.overview  { background: #F8F9FD; }
.apply     { background: #F2F4FB; }

/* CONCEPT tags (light) */
.concept-tags {
  list-style: none; margin: 28px 0 0; padding: 0;
  display: flex; flex-wrap: wrap; gap: 10px;
}
.concept-tags li {
  font-family: var(--font-sans); font-size: 13px; font-weight: 600; letter-spacing: 0.01em;
  color: #5B3FBE; padding: 7px 16px; border-radius: 999px;
  border: 1px solid rgba(124,58,237,.26); background: rgba(124,58,237,.08);
}
.concept-tags li::before { content: "#"; opacity: .5; margin-right: 2px; }

/* TIMETABLE tags (light) */
.tt-tags {
  list-style: none; margin: 8px 0 0; padding: 0;
  display: flex; flex-wrap: wrap; gap: 7px;
}
.tt-tags li {
  font-family: var(--font-sans); font-size: 11px; font-weight: 600; letter-spacing: 0.01em;
  color: #5B3FBE; padding: 3px 10px; border-radius: 999px;
  border: 1px solid rgba(124,58,237,.22); background: rgba(124,58,237,.07);
}
.tt-tags li::before { content: ""; margin-right: 0; }

/* speaker role line (smaller than the name) */
.speaker-role-line {
  font-size: 13.5px;
  font-weight: 600;
  color: var(--muted);
  line-height: 1.4;
  margin-top: -2px;
}
.speaker-avatars { display: flex; gap: 12px; justify-content: center; }

.modal-hero-role {
  font-size: 13px;
  font-weight: 600;
  color: var(--muted);
  margin: 2px 0 2px;
}
.modal-person { margin: 14px 0 4px; }
.modal-person-head { display: flex; align-items: flex-start; gap: 20px; margin-bottom: 0; }
.modal-person-headmeta { text-align: left; flex: 1; min-width: 0; }
.modal-hero-bio {
  font-size: 13.5px;
  line-height: 1.8;
  color: var(--ink-2);
  margin: 12px 0 0;
  text-align: left;
  text-wrap: pretty;
}
.modal-profiles { text-align: left; }
.modal-person-name { font-weight: 700; color: var(--ink); font-size: 15px; }
.modal-person-role {
  font-family: var(--font-sans); font-size: 12px; font-weight: 600; color: var(--muted); margin-top: 2px;
}
