﻿:root {
  --ink:#202124;
  --muted:#5f6368;
  --line:#e0e3e7;
  --brand:#17324d;
  --soft:#f5f7fa;
  --accent:#9b2d30;
  --max:1120px;
  --radius:18px
}

* {
  box-sizing:border-box
}

body {
  margin:0;
  font-family:"Inter","Noto Sans TC","Noto Sans",Arial,sans-serif;
  color:var(--ink);
  background:#fff;
  line-height:1.65
}

a {
  color:#174f8a;
  text-decoration:none
}

a:hover {
  text-decoration:underline
}

.back-to-top {
  position: fixed;
  right: 5px;
  bottom: 75px;
  z-index: 1000;

  width: 125px;
  height: 125px;

  padding: 0;
  border: 0;
  background: transparent;

  display: flex;
  align-items: center;
  justify-content: center;

  cursor: pointer;

  opacity: 0;
  visibility: hidden;
  pointer-events: none;

  transition:
    opacity 0.5s ease,
    visibility 0.5s ease,
    transform 0.2s ease;
}

.back-to-top.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.back-to-top img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.back-to-top:hover {
  transform: translateY(-3px);
}

.back-to-top:active {
  transform: translateY(0);
}

.back-to-top:focus-visible {
  outline: 3px solid rgba(255, 255, 255, 0.95);
  outline-offset: 4px;
}

.site-header {
  position:sticky;
  top:0;
  background:rgba(255,255,255,.96);
  border-bottom:1px solid var(--line);
  z-index:100;
  backdrop-filter:blur(8px)
}

.nav {
  max-width:var(--max);
  margin:auto;
  display:flex;
  align-items:center;
  gap:22px;
  padding:12px 20px
}

.brand {
  font-weight:800;
  color:var(--brand);
  margin-right:auto
}

.nav a {
  font-size:14px;
  color:#28323c
}

.lang {
  border:1px solid var(--brand);
  border-radius:999px;
  padding:6px 12px;
  color:var(--brand)!important;
  font-weight:700
}

.hero {
  background: transparent;
  box-shadow: none;
  margin-top: 50px;
  margin-bottom: 20px;
  border: none;
}

.hero img {
  display: block;
  width: 60%;
  height: auto;
  margin: 0 auto;
  border-radius: 16px;
}

.subtitle {
  font-size:clamp(18px,2.6vw,28px);
  color:#334;
  margin:8px 0
}

.meta {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:20px
}

.pill {
  background:#fff;
  border:1px solid var(--line);
  border-radius:999px;
  padding:7px 14px;
  color:#26333f
}

.section {
  padding:36px 0
}

.section h1 {
  max-width: var(--content-max);
  margin-left: auto;
  margin-right: auto;
}

.section h2 {
  font-size:clamp(24px,3vw,34px);
  color:var(--brand);
  font-size: 1.5rem;
  margin:0 0 18px
}

.lead {
  font-size:18px;
  max-width: var(--content-max);
}

.home-intro-section {
  padding-top: 36px;
}

.home-image-strip {
  width: 85%;
  max-width: var(--content-max);
  margin: 0 auto 34px;

  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}

.home-image-strip img {
  display: block;
  width: 100%;
  height: 180px;
  object-fit: contain;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
}

.home-brief {
  max-width: var(--content-max);
  margin: 0 auto;
}

.home-brief h2 {
  margin-top: 34px;
  margin-bottom: 34px;
}

.topic-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
  margin-top: 18px;
}

.topic-card {
  padding: 22px 20px;
  min-height: 190px;

  background: rgba(255, 255, 255, 0.78);
  border: 1px solid var(--line);
  border-radius: 18px;
  box-shadow: 0 10px 26px rgba(0, 0, 0, 0.06);

  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.topic-card h3 {
  margin: 0 0 12px;
  min-height: 4.1em;

  display: flex;
  align-items: center;
  justify-content: center;

  font-size: 1.04rem;
  line-height: 1.35;
  text-align: center;
  color: var(--ink);
}

.topic-card p {
  margin: 0;
  line-height: 1.65;
  font-size: 0.96rem;
}

.home-highlight p,
.home-target p,
.home-note,
.home-closing {
  line-height: 1.7;
}

.home-target ul {
  margin: 0;
  padding-left: 1.4em;
  line-height: 1.7;
}

.home-buttons {
  margin-top: 34px;
}

.cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  max-width: var(--content-max);
  margin: 36px auto 0;
}

.card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  text-decoration: none;
  color: inherit;
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid var(--line);
  border-radius: 20px;
  padding: 26px 22px 24px;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.08);
  transition:
    transform 0.18s ease,
    box-shadow 0.18s ease,
    border-color 0.18s ease;
}

.card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.12);
  border-color: rgba(0, 91, 140, 0.35);
}

.feature-card {
  min-height: 300px;
}

.feature-card .iconbox {
  width: 250px;
  height: 250px;
  margin: 0 auto 10px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.feature-card .iconbox img {
  display: block;
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
}

.card h3 {
  margin: 0 0 8px;
}

.card p {
  margin: 0;
}

.iconbox,
.photobox,
.support-section {
  max-width: var(--content-max);
  margin: 0 auto;
}

.support-section h2 {
  margin-bottom: 36px;
  font-size: 1.6rem;}

.support-group {
  margin-top: 46px;
}

.support-group:first-of-type {
  margin-top: 0;
}

.support-group h3 {
  margin: 0 0 22px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--line);
  font-size: 1.5rem;
  font-weight: 700;
}

.support-card-grid {
  display: grid;
  gap: 24px;
}

.support-card-grid-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.support-card-grid-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.support-card {
  min-height: 250px;
  padding: 24px 18px 22px;
  background: rgba(255, 255, 255, 0.86);
  border: 1px solid var(--line);
  border-radius: 18px;
  box-shadow: 0 10px 26px rgba(0, 0, 0, 0.06);

  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.support-logo-box {
  height: 122px;
  width: 100%;

  display: flex;
  align-items: center;
  justify-content: center;
}

.support-logo-box img {
  display: block;
  max-width: 100%;
  max-height: 150px;
  width: auto;
  height: auto;
  object-fit: contain;
}

.support-logo-pair {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
}

.support-logo-pair .support-logo-link {
  flex: 1 1 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.support-logo-pair .support-logo-box {
  width: 100%;
  height: 130px;
}

.support-logo-pair .support-logo-box img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
}

.support-logo-link {
  width: 100%;
  height: 100%;

  display: flex;
  align-items: center;
  justify-content: center;

  color: inherit;
  text-decoration: none;
}

.support-logo-link:hover,
.support-logo-link:focus {
  text-decoration: none;
}

.support-logo-link .support-logo-box {
  width: 100%;
}

.support-card-name {
  margin-top: 18px;
  min-height: 52px;

  display: flex;
  align-items: center;
  justify-content: center;

  text-align: center;
  line-height: 1.35;
  font-size: 0.95rem;
  color: var(--ink);
}

.support-contact {
  margin: 0;
  line-height: 1.6;
}

.contact-group {
  margin-top: 48px;
}
.iconbox {
  height:140px
}

.photobox {
  width:140px;
  height:140px;
  border-radius:14px;
  flex:0 0 112px
}


.btnrow {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin:22px 0
}

.button {
  display:inline-block;
  background:var(--brand);
  color:#fff!important;
  border-radius:999px;
  padding:10px 18px;
  font-weight:700
}

.button.secondary {
  background:#fff;
  color:var(--brand)!important;
  border:1px solid var(--brand)
}
.organizer-text {
  margin-top: 48px;
}
.program-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px
}

.program-link {
  border:1px solid var(--line);
  border-radius:16px;
  padding:22px;
  background:var(--soft);
  text-align:center
}

.program-overview {
  margin-top: 24px;
}

.program-overview img {
  display: block;
  width: 75%;
  height: auto;
  margin: 0 auto;
  border-radius: 16px;
}

.program-link strong {
  display:block;
  font-size:22px;
  color:var(--brand)
}

.day-nav {
  display:flex;
  flex-wrap:wrap;
  justify-content: center;
  gap:15px;
  margin:0 0 28px
}

.day-nav a,
.day-nav span {
  border:1px solid var(--line);
  border-radius:999px;
  padding:8px 14px;
  background:#fff
}

.day-nav span {
  background:var(--brand);
  color:#fff;
  border-color:var(--brand)
}

.session {
  margin:30px 0 18px;
  padding:18px 20px;
  background:var(--soft);
  border-left:5px solid var(--brand);
  border-radius:12px
}

.session h2,
.session h3 {
  margin:0;
  color:var(--brand)
}

.talk {
  display:flex;
  gap:22px;
  align-items:flex-start;
  border-bottom:1px solid var(--line);
  padding:18px 0
}

.time {
  font-weight:700;
  color:var(--accent);
  min-width:112px
}

.talk-main {
  flex:1
}

.talk-title {
  font-size:18px;
  font-weight:700;
  color:#172b3a;
  line-height:1.4
}

.speaker {
  margin-top:5px
}

.affil {
  color:var(--muted);
  font-size:14px
}

.break {
  padding:12px 16px;
  margin:12px 0;
  background:#fff7e6;
  border:1px solid #f1dfba;
  border-radius:12px;
  color:#6a4a00
}

.demo {
  background:#f7faf7;
  border:1px solid #dfece2;
  border-radius:16px;
  padding:20px;
  margin:20px 0
}

.demo-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:16px
}

.demo-card {
  border:1px solid #dbe5dc;
  border-radius:14px;
  padding:16px;
  background:#fff
}

.footer {
  border-top:1px solid var(--line);
  padding:32px 20px;
  color:var(--muted);
  font-size:14px
}

.footer-inner {
  max-width:var(--max);
  margin:auto
}

.notice {
  background:#fffdf5;
  border:1px solid #eee1b8;
  border-radius:14px;
  padding:18px
}

.venue-hero {
  padding-bottom: 24px;
}

.venue-main {
  padding-top: 16px;
}

.venue-layout {
  display: grid;
  grid-template-columns: 3fr 2fr;
  gap: 28px;
  max-width: var(--content-max);
  margin: 0 auto;
  align-items: stretch;
}

.venue-text-card,
.venue-image-card,
.direction-card {
  background: rgba(255, 255, 255, 0.82);
  border: 1px solid var(--line);
  border-radius: 20px;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.08);
}

.venue-text-card {
  padding: 30px 28px;
}

.venue-text-card h2 {
  margin-top: 0;
  margin-bottom: 8px;
}

.venue-subtitle {
  margin-top: 0;
  margin-bottom: 24px;
  color: var(--muted);
  font-size: 1.05rem;
}

.venue-info-list {
  display: grid;
  gap: 0;
}

.venue-info-item {
  padding: 16px 0;
  border-top: 1px solid var(--line);
}

.venue-info-item:last-child {
  border-bottom: 1px solid var(--line);
}

.venue-label {
  display: block;
  margin-bottom: 6px;
  font-size: 1.00rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent);
}

.venue-value {
  display: block;
  color: var(--ink);
  line-height: 1.55;
}

.venue-buttons {
  margin-top: 26px;
}

.venue-image-card {
  padding: 12px;
  overflow: hidden;
}
.venue-image-stack {
  display: grid;
  grid-template-rows: 3fr 2fr;
  gap: 12px;
  min-height: 520px;
}

.venue-image-stack img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
  border-radius: 16px;
}

.venue-photo-main {
  aspect-ratio: 1 / 1;
}

.venue-photo-sub {
  aspect-ratio: 3 / 2;
}
.venue-map-block {
  max-width: var(--content-max);
  margin: 0 auto;
  background: rgba(255, 255, 255, 0.82);
  border: 1px solid var(--line);
  border-radius: 20px;
  padding: 12px;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.08);
}

.venue-map-block img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 16px;
}

.venue-lead {
  max-width: var(--content-max);
  margin-left: auto;
  margin-right: auto;
  padding-left: 0;
  padding-right: 0;

}

.direction-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  max-width: var(--content-max);
  margin: 28px auto 0;
}

.direction-card {
  padding: 24px 22px;
}

.direction-card h3 {
  margin-top: 0;
  margin-bottom: 12px;
}

.direction-card p {
  margin-bottom: 0;
}

.map {
  width:100%;
  height:360px;
  border:0;
  border-radius:16px;
  border:1px solid var(--line)
}

.nav-links {
  display:flex;
  align-items:center;
  gap:22px
}

.nav-toggle {
  display:none;
  margin-left:auto;
  width:42px;
  height:42px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:5px;
  cursor:pointer
}

.nav-toggle span {
  display:block;
  width:20px;
  height:2px;
  background:var(--brand);
  border-radius:2px
}

.nav-toggle:focus-visible {
  outline:3px solid rgba(23,79,138,.25);
  outline-offset:2px
}

.google-form-wrap {
  max-width: var(--content-max);
  margin: 15px auto 0;
  background: transparent;
}

.google-form-wrap iframe {
  display: block;
  width: 100%;
  min-height: 6500px;
  border: 0;
}

@media (max-width: 800px) {
  .back-to-top {
    right: 18px;
    bottom: 18px;
    width: 75px;
    height: 75px;
  }
}

@media (max-width: 800px) {
  .direction-grid {
    grid-template-columns: 1fr;
    max-width: 100%;
    gap: 18px;
  }
}

@media(max-width:800px) {
  .site-header {
    position:sticky
  }

  .nav {
    padding:10px 16px;
    gap:12px;
    position:relative;
    flex-wrap:wrap
  }

  .brand {
    font-size:15px;
    line-height:1.25;
    max-width:calc(100% - 58px)
  }

  .nav-toggle {
    display:flex
  }

  .nav-links {
    display:none;
    width:100%;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:8px 0 4px;
    border-top:1px solid var(--line);
    margin-top:8px
  }

  .nav-open .nav-links {
    display:flex
  }

  .nav-links a {
    display:block;
    padding:11px 4px;
    font-size:16px;
    border-bottom:1px solid #eef1f4
  }

  .nav-links a:last-child {
    border-bottom:0
  }

  .lang {
    align-self:flex-start;
    margin-top:8px;
    padding:8px 14px
  }

  .program-grid {
    grid-template-columns:1fr
  }

  .cards {
    grid-template-columns: 1fr;
    gap: 18px;
    padding: 22px 18px;
    max-width: 100%;
  }

  .feature-card {
    min-height: auto;
  }

  .feature-card .iconbox {
    width: 160px;
    height: 160px;
    margin-bottom: 18px;
  }

  .hero-inner,.container {
    padding:34px 18px
  }

  .talk {
    display:block
  }

  .time {
    margin-bottom:8px;
    min-width:0
  }

  .photobox {
    margin-top:12px;
    width: 140px;
    height: 140px;
    max-width: 140px;
    object-fit: cover;
  }

  .program-link {
    padding:18px
  }

  .hero h1 {
    font-size:clamp(30px,10vw,44px)
  }

}

@media(min-width:801px) {
  .nav-links {
    display:flex!important
  }

}

@media (max-width: 800px) {
  .home-intro-section {
    padding-top: 24px;
  }

  .home-image-strip {
    width: 100%;
    grid-template-columns: repeat(4, 1fr);
    gap: 4px;
    margin-bottom: 26px;
  }

  .home-image-strip img {
    height: 90%;
    object-fit: contain;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
  }
  
  .home-brief {
    max-width: 100%;
  }

  .topic-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .topic-card {
    min-height: auto;
    padding: 18px 16px;
  }

  .topic-card h3 {
    min-height: 4.1em;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
  }

  .topic-card p {
    font-size: 0.95rem;
    line-height: 1.6;
  }
}

/* Mobile schedule refinement: convert multi-column talk rows into a single-column reading card. */
.talk-main {
  min-width:0
}

@media(max-width:800px) {

  .talk {

    display:grid;

    grid-template-columns:1fr;

    gap:6px;

    border:1px solid var(--line);

    border-radius:14px;

    padding:14px 16px;

    margin:12px 0;

    background:#fff;

    box-shadow:0 1px 6px rgba(0,0,0,.025);

  }

  .talk .time {

    display:block;

    margin:0 0 4px;

    padding-bottom:5px;

    border-bottom:1px solid #eef1f4;

    font-size:15px;

    letter-spacing:.01em;

  }

  .talk-main {

    display:flex;

    flex-direction:column;

    gap:2px;

  }

  .talk-main .speaker {

    order:1;

    margin-top:0;

    font-weight:700;

    color:#202124;

  }

  .talk-main .affil {

    order:2;

    font-size:13.5px;

    line-height:1.45;

  }

  .talk-main .talk-title {

    order:3;

    margin-top:7px;

    font-size:16.5px;

    line-height:1.45;

    overflow-wrap:anywhere;

    word-break:normal;

  }

  .talk .photobox {

    justify-self:start;

    margin-top:8px;

  }

  .break {

    margin:12px 0;

    padding:12px 14px;

    font-weight:700;

  }

  .demo {

    padding:16px;

  }

  .demo .time {

    min-width:0;

    margin-bottom:8px;

    display:block;

  }

}

/* Desktop dropdown for Program / 議程. */
.nav-item {
  position:relative;
  display:flex;
  align-items:center
}

.nav-parent {
  display:inline-flex;
  align-items:center;
  gap:5px
}

.nav-parent::after {
  content:"▾";
  font-size:22px;
  line-height:1;
  opacity:.65
}

.submenu {
  position:absolute;
  top:calc(100% + 10px);
  left:0;
  min-width:190px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:14px;
  box-shadow:0 12px 32px rgba(0,0,0,.13);
  padding:8px;
  opacity:0;
  visibility:hidden;
  transform:translateY(-4px);
  transition:opacity .16s ease,transform .16s ease,visibility 0s linear .16s;
  z-index:150
}

.submenu a {
  display:block;
  padding:9px 12px;
  border-radius:10px;
  white-space:nowrap;
  color:#28323c
}

.submenu a:hover {
  background:var(--soft);
  text-decoration:none
}

.nav-dropdown.dropdown-open .submenu,
.nav-dropdown:focus-within .submenu {
  opacity:1;
  visibility:visible;
  transform:translateY(0);
  transition-delay:0s
}

.nav-dropdown.dropdown-open .nav-parent::after {
  transform:rotate(180deg)
}

@media(min-width:801px) {
  .nav-dropdown:hover .submenu {
    opacity:1;
    visibility:visible;
    transform:translateY(0);
    transition-delay:.5s
  }

  .nav-dropdown:hover .nav-parent::after {
    transform:rotate(180deg)
  }

}

@media(max-width:800px) {
  .nav-item {
    display:block
  }

  .nav-parent {
    display:block;
    padding:11px 4px;
    font-size:16px;
    border-bottom:1px solid #eef1f4
  }

  .nav-parent::after {
    float:right;
    margin-top:7px
  }

  .submenu {
    position:static;
    visibility:visible;
    opacity:1;
    transform:none;
    box-shadow:none;
    border:0;
    border-radius:0;
    padding:0 0 5px 14px;
    background:transparent;
    min-width:0
  }

  .submenu a {
    padding:8px 4px 8px 14px;
    border-bottom:1px solid #eef1f4;
    border-radius:0;
    font-size:15px;
    color:#4a5560
  }

  .submenu a::before {
    content:"— ";
    color:var(--muted)
  }

  
  .hero img {
    width: 100%;
  }
  
  .program-overview img {
    width: 100%;
  }

  .nav-dropdown.dropdown-open .nav-parent::after,.nav-dropdown:hover .nav-parent::after {
    transform:none
  }

}
@media (max-width: 800px) {
  .support-section {
    max-width: 100%;
  }

  .support-section h2 {
    margin-bottom: 28px;
  }

  .support-group {
    margin-top: 38px;
  }

  .support-group h3 {
    margin-bottom: 18px;
    font-size: 1.5rem;
  }

  .support-card-grid,
  .support-card-grid-3,
  .support-card-grid-4 {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .support-card {
    min-height: 200px;
    padding: 22px 18px;
  }

  .support-logo-box {
    height: 150px;
  }

  .support-logo-box img {
    max-height: 140px;
  }

  .support-logo-link img {
    max-height: 140px;
}  
  
  .support-card-name {
    margin-top: 14px;
    min-height: auto;
    line-height: 1.35;
    font-size: 0.94rem;
  }
  
    .support-logo-pair {
    flex-direction: column;
    gap: 12px;
  }

  .support-logo-pair .support-logo-link {
    width: 100%;
  }

  .support-logo-pair .support-logo-box {
    height: 150px;
  }

  .support-logo-pair .support-logo-box img {
    max-height: 140px;
  }
}

@media (max-width: 800px) {
  .venue-layout {
    grid-template-columns: 1fr;
    gap: 20px;
    max-width: 100%;
  }
}
/* Layout refinement: centered readable content on wide and ultrawide screens. */
:root {
  --content-max:960px;
  --wide-max:1120px;
  --nav-bg:#2f3337;
  --nav-active:#c8a15a;
  --nav-text:#f7f7f7;
  --nav-muted:#d7dbe0
}

html {
  min-height:100%
}

body {

  min-height:100%;

  background:linear-gradient(to bottom,#ffffff 0%,#f7f8fa 48%,#eceff2 100%) fixed;

  background-attachment:fixed;

}

.hero-inner {
  max-width:var(--wide-max)
}

.container {
  max-width:var(--content-max);
  margin-left:auto;
  margin-right:auto
}

.lead {
  max-width: var(--content-max);
  margin-left:auto;
  margin-right:auto
}

.section > p:not(.lead),
 .section > ul,
 .section > ol,
 .notice,
 .demo,
 .session,
 .day-nav,
 .program-grid,
 .program-overview,
 .btnrow {
  max-width:var(--content-max);
  margin-left:auto;
  margin-right:auto
}

.talk {
  max-width:var(--content-max);
  margin-left:auto;
  margin-right:auto
}

.cards {
  max-width:var(--wide-max);
  margin-left:auto;
  margin-right:auto
}

.map {
  max-width:var(--content-max);
  display:block;
  margin-left:auto;
  margin-right:auto
}


.venue-image-stack {
  min-height: auto;
  grid-template-rows: none;
}

.venue-image-stack img {
  height: auto;
}

.venue-photo-main {
  aspect-ratio: 1 / 1;
}

.venue-photo-sub {
  aspect-ratio: 16 / 9;
}
/* Dark sticky navigation and active-page indication. */
.site-header {
  background:var(--nav-bg);
  border-bottom:1px solid rgba(255,255,255,.12);
  box-shadow:0 3px 18px rgba(0,0,0,.16);
  backdrop-filter:none
}

.brand {
  color:#fff!important
}

.brand:hover {
  text-decoration:none;
  color:#fff!important
}

.nav a {
  color:var(--nav-text)
}

.nav a:hover {
  color:#fff;
  text-decoration:none
}

.nav-parent {
  color:var(--nav-text)!important
}

.nav a.active,
.nav-parent.active,
.submenu a.active {
  color:var(--nav-active)!important;
  font-weight:800
}

.lang {
  border-color:rgba(255,255,255,.55);
  color:#fff!important;
  background:rgba(255,255,255,.06)
}

.lang:hover {
  background:rgba(255,255,255,.12);
  color:#fff!important
}

.nav-toggle {
  background:transparent;
  border-color:rgba(255,255,255,.35)
}

.nav-toggle span {
  background:#fff
}

.submenu {
  background:#383d42;
  border-color:rgba(255,255,255,.14)
}

.submenu a {
  color:#f2f3f4
}

.submenu a:hover {
  background:rgba(255,255,255,.08);
  color:#fff
}

@media(max-width:800px) {
  .nav-links {
    border-top:1px solid rgba(255,255,255,.14)
  }

  .nav-links a {
    border-bottom:1px solid rgba(255,255,255,.10);
    color:#f7f7f7
  }

  .nav-parent {
    border-bottom:1px solid rgba(255,255,255,.10);
    color:#f7f7f7!important
  }

  .submenu a {
    border-bottom:1px solid rgba(255,255,255,.08);
    color:#dfe3e7
  }

  .submenu a::before {
    color:#aeb6be
  }

  .lang {
    align-self:flex-start
  }

  .hero-inner,.container {
    padding-left:20px;
    padding-right:20px
  }

  .section > p:not(.lead), .section > ul, .section > ol, .notice, .demo, .session, .day-nav, .program-grid, .program-overview, .btnrow,.talk {
    max-width:100%
  }

}

/* Scroll-aware navigation: white at page top,
 dark after scrolling. */
.site-header {

  background:rgba(255,255,255,.96)!important;

  border-bottom:1px solid var(--line)!important;

  box-shadow:none!important;

  backdrop-filter:blur(8px);

  transition:background-color .22s ease,border-color .22s ease,box-shadow .22s ease;

}

.site-header .brand {
  color:var(--brand)!important
}

.site-header .nav a {
  color:#28323c!important
}

.site-header .nav a:hover {
  color:#000!important;
  text-decoration:none
}

.site-header .nav-parent {
  color:#28323c!important
}

.site-header .nav a.active,

.site-header .nav-parent.active,

.site-header .submenu a.active {
  color:var(--nav-active)!important;
  font-weight:800
}

.site-header .lang {
  border-color:var(--brand)!important;
  color:var(--brand)!important;
  background:#fff!important
}

.site-header .lang:hover {
  background:#f4f6f8!important;
  color:var(--brand)!important
}

.site-header .nav-toggle {
  background:#fff!important;
  border-color:var(--line)!important
}

.site-header .nav-toggle span {
  background:var(--brand)!important
}

.site-header .submenu {
  background:#fff!important;
  border-color:var(--line)!important;
  box-shadow:0 12px 32px rgba(0,0,0,.13)!important
}

.site-header .submenu a {
  color:#28323c!important
}

.site-header .submenu a:hover {
  background:var(--soft)!important;
  color:#000!important
}

.site-header.nav-scrolled {

  background:var(--nav-bg)!important;

  border-bottom:1px solid rgba(255,255,255,.12)!important;

  box-shadow:0 3px 18px rgba(0,0,0,.16)!important;

  backdrop-filter:none;

}

.site-header.nav-scrolled .brand {
  color:#fff!important
}

.site-header.nav-scrolled .nav a {
  color:var(--nav-text)!important
}

.site-header.nav-scrolled .nav a:hover {
  color:#fff!important;
  text-decoration:none
}

.site-header.nav-scrolled .nav-parent {
  color:var(--nav-text)!important
}

.site-header.nav-scrolled .nav a.active,

.site-header.nav-scrolled .nav-parent.active,

.site-header.nav-scrolled .submenu a.active {
  color:var(--nav-active)!important;
  font-weight:800
}

.site-header.nav-scrolled .lang {
  border-color:rgba(255,255,255,.55)!important;
  color:#fff!important;
  background:rgba(255,255,255,.06)!important
}

.site-header.nav-scrolled .lang:hover {
  background:rgba(255,255,255,.12)!important;
  color:#fff!important
}

.site-header.nav-scrolled .nav-toggle {
  background:transparent!important;
  border-color:rgba(255,255,255,.35)!important
}

.site-header.nav-scrolled .nav-toggle span {
  background:#fff!important
}

.site-header.nav-scrolled .submenu {
  background:#383d42!important;
  border-color:rgba(255,255,255,.14)!important;
  box-shadow:0 12px 32px rgba(0,0,0,.18)!important
}

.site-header.nav-scrolled .submenu a {
  color:#f2f3f4!important
}

.site-header.nav-scrolled .submenu a:hover {
  background:rgba(255,255,255,.08)!important;
  color:#fff!important
}

@media(max-width:800px) {

  .site-header .nav-links {
    border-top:1px solid var(--line)!important
  }

  .site-header .nav-links a {
    border-bottom:1px solid #eef1f4!important;
    color:#28323c!important
  }

  .site-header .nav-parent {
    border-bottom:1px solid #eef1f4!important;
    color:#28323c!important
  }

  .site-header .submenu a {
    border-bottom:1px solid #eef1f4!important;
    color:#4a5560!important
  }

  .site-header .submenu a::before {
    color:var(--muted)!important
  }

  .site-header.nav-scrolled .nav-links {
    border-top:1px solid rgba(255,255,255,.14)!important
  }

  .site-header.nav-scrolled .nav-links a {
    border-bottom:1px solid rgba(255,255,255,.10)!important;
    color:#f7f7f7!important
  }

  .site-header.nav-scrolled .nav-parent {
    border-bottom:1px solid rgba(255,255,255,.10)!important;
    color:#f7f7f7!important
  }

  .site-header.nav-scrolled .submenu a {
    border-bottom:1px solid rgba(255,255,255,.08)!important;
    color:#dfe3e7!important
  }

  .site-header.nav-scrolled .submenu a::before {
    color:#aeb6be!important
  }

  .site-header .nav a.active,
  .site-header .nav-parent.active,
  .site-header .submenu a.active,
  .site-header.nav-scrolled .nav a.active,
  .site-header.nav-scrolled .nav-parent.active,
  .site-header.nav-scrolled .submenu a.active {
    color:var(--nav-active)!important
  }

}

/* Active-page color logic refinement: white nav at top uses deep blue;
 scrolled dark nav uses yellow-brown. */
:root {
  --nav-active-top:#17324d;
  --nav-active-scrolled:#c8a15a
}

.site-header .nav a.active,

.site-header .nav-parent.active,

.site-header .submenu a.active {

  color:var(--nav-active-top)!important;

  font-weight:800;

}

.site-header.nav-scrolled .nav a.active,

.site-header.nav-scrolled .nav-parent.active,

.site-header.nav-scrolled .submenu a.active {

  color:var(--nav-active-scrolled)!important;

  font-weight:800;

}

@media(max-width:800px) {

  .site-header .nav a.active,
  .site-header .nav-parent.active,
  .site-header .submenu a.active {

    color:var(--nav-active-top)!important;

    font-weight:800;

  }

  .site-header.nav-scrolled .nav a.active,
  .site-header.nav-scrolled .nav-parent.active,
  .site-header.nav-scrolled .submenu a.active {

    color:var(--nav-active-scrolled)!important;

    font-weight:800;

  }

}

/* Brand logo and favicon-ready header layout. */
.brand {
  display: flex;
  align-items: center;
  gap: 10px;

  flex: 0 0 auto;
  max-width: none;
  overflow: visible;

  text-decoration: none;
}

.brand-logo {
  width:99px;
  height:45px;
  display:block;
  flex:0 0 34px;
  border-radius:9px
}

.brand-text {
  display: inline-block;
  white-space: nowrap;

  overflow: visible;
  text-overflow: clip;

  font-size: 1.35rem;
  font-weight: 700;
}

.site-header .brand.active,
.site-header.nav-scrolled .brand.active {
  color:inherit!important
}

@media(max-width:800px) {

  .brand {
    max-width: calc(100vw - 90px);
    overflow: hidden;
  }

  .brand-logo {
    width:99px;
    height:45px;
    flex-basis:30px;
    border-radius:8px
  }

  .brand-text {
    font-size: 1.15rem;
    overflow: hidden;
    text-overflow: ellipsis;
  }

}

@media (max-width: 800px) {
  .google-form-wrap iframe {
    min-height: 7200px;
  }
}

.committee-list {
  max-width: var(--content-max);
  margin: 16px auto 0;
  line-height: 1.5;
  font-size: 1rem;
}

.committee-member {
  margin: 0 0 5px;
}

.member-name::after {
  content: " / ";
}

@media (max-width: 800px) {
  .committee-list {
    max-width: 100%;
    line-height: 1.45;
    font-size: 0.95rem;
  }

  .committee-member {
    margin-bottom: 10px;
  }

  .member-name,
  .member-affiliation {
    display: block;
  }

  .member-name {
    font-weight: 600;
  }

  .member-name::after {
    content: "";
  }

  .member-affiliation {
    margin-top: 2px;
    color: var(--muted);
    font-size: 0.92rem;
    line-height: 1.4;
  }
}

.embedded-map {
  max-width: var(--content-max);
  margin: 28px auto 0;
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid var(--line);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.08);
  background: rgba(255, 255, 255, 0.82);
}

.embedded-map iframe {
  display: block;
  width: 100%;
  height: 200px;
  border: 0;
}

@media (max-width: 800px) {
  .embedded-map {
    max-width: 100%;
    margin-top: 22px;
    border-radius: 16px;
  }

  .embedded-map iframe {
    height: 360px;
  }
}