:root {
  --rwc-surface: #f8f9fa;
  --rwc-surface-container-lowest: #ffffff;
  --rwc-surface-container-low: #f3f4f5;
  --rwc-surface-container: #edeeef;
  --rwc-surface-container-high: #e7e8e9;
  --rwc-on-surface: #191c1d;
  --rwc-on-surface-variant: #5e3f3a;
  --rwc-primary: #9e0000;
  --rwc-primary-container: #cc0000;
  --rwc-secondary: #555e74;
  --rwc-tertiary: #23516c;
  --rwc-deep-navy: #212a3d;
  --rwc-tech-blue: #709bb9;
  --rwc-border: #e1e3e4;
  --rwc-site-header-height: 80px;
  --rwc-anchor-gap: 32px;
  --rwc-anchor-offset: calc(var(--rwc-site-header-height) + var(--rwc-anchor-gap)); }

@media (max-width: 575.98px) {
  :root {
    --rwc-site-header-height: 68px;
    --rwc-anchor-gap: 24px; } }
h1,
h2,
h3,
h4,
h5,
h6 {
  color: #191c1d;
  font-family: "Source Code Pro", "Noto Sans JP", monospace;
  letter-spacing: 0; }

.rwc-page-title {
  color: #191c1d;
  font-family: "Source Code Pro", "Noto Sans JP", monospace;
  letter-spacing: 0;
  margin: 0;
  font-size: clamp(2.25rem, 4.6vw, 3.35rem);
  font-weight: 700;
  line-height: 1.14; }

.rwc-section-title {
  color: #191c1d;
  font-family: "Source Code Pro", "Noto Sans JP", monospace;
  letter-spacing: 0;
  margin: 0;
  font-size: clamp(1.55rem, 3vw, 2.05rem);
  font-weight: 700;
  line-height: 1.28; }

.rwc-card-title {
  color: #191c1d;
  font-family: "Source Code Pro", "Noto Sans JP", monospace;
  letter-spacing: 0;
  margin: 0;
  font-size: clamp(1.2rem, 2vw, 1.55rem);
  font-weight: 700;
  line-height: 1.35; }

.rwc-lead,
.lead {
  margin: 0;
  color: #5e3f3a;
  font-size: 1.125rem;
  line-height: 1.75; }

.rwc-label,
.section-kicker,
.eyebrow {
  color: #cc0000;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  font-size: 0.78rem;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0.08em;
  text-transform: uppercase; }

.rwc-copy {
  color: #5e3f3a;
  font-size: 1rem;
  line-height: 1.75; }

.rwc-generic-page {
  width: calc(100% - 48px);
  max-width: 1200px;
  margin-inline: auto;
  padding: clamp(56px, 8vw, 96px) 0 128px; }

.rwc-generic-page__hero {
  display: grid;
  gap: 12px;
  margin-bottom: 48px; }

.rwc-generic-page__hero h1 {
  color: #191c1d;
  font-family: "Source Code Pro", "Noto Sans JP", monospace;
  letter-spacing: 0;
  margin: 0;
  font-size: clamp(2.25rem, 4.6vw, 3.35rem);
  font-weight: 700;
  line-height: 1.14; }

.rwc-generic-page__hero p {
  margin: 0;
  color: #5e3f3a;
  font-size: 1.125rem;
  line-height: 1.75;
  font-size: 1.16rem; }

.rwc-prose {
  color: #5e3f3a;
  font-size: 1.06rem;
  line-height: 1.9;
  letter-spacing: 0.01em; }

.rwc-prose > *:first-child {
  margin-top: 0; }

.rwc-prose > *:last-child {
  margin-bottom: 0; }

.rwc-prose p,
.rwc-prose ul,
.rwc-prose ol,
.rwc-prose dl,
.rwc-prose table,
.rwc-prose blockquote,
.rwc-prose pre,
.rwc-prose figure {
  margin: 0 0 1.45em; }

.rwc-prose h2,
.rwc-prose h3,
.rwc-prose h4,
.rwc-prose h5,
.rwc-prose h6 {
  max-width: 820px; }

.rwc-prose h2 {
  color: #191c1d;
  font-family: "Source Code Pro", "Noto Sans JP", monospace;
  letter-spacing: 0;
  margin: 0;
  font-size: clamp(1.55rem, 3vw, 2.05rem);
  font-weight: 700;
  line-height: 1.28;
  margin: 2.35em 0 0.8em;
  padding-top: 0.7em;
  border-top: 1px solid #e1e3e4;
  font-size: clamp(1.5rem, 2.5vw, 1.95rem);
  line-height: 1.34; }

.rwc-prose h3 {
  color: #191c1d;
  font-family: "Source Code Pro", "Noto Sans JP", monospace;
  letter-spacing: 0;
  margin: 0;
  font-size: clamp(1.2rem, 2vw, 1.55rem);
  font-weight: 700;
  line-height: 1.35;
  margin: 1.95em 0 0.7em;
  font-size: clamp(1.25rem, 1.9vw, 1.5rem); }

.rwc-prose h4 {
  margin: 1.65em 0 0.6em;
  color: #191c1d;
  font-size: 1.12rem;
  font-weight: 800;
  line-height: 1.45; }

.rwc-prose h5,
.rwc-prose h6 {
  margin: 1.6em 0 0.55em;
  color: #212a3d;
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.45; }

.rwc-prose a:not(.button):not(.btn-main-md) {
  color: #cc0000;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 0.18em;
  text-decoration-thickness: 1px; }

.rwc-prose a:not(.button):not(.btn-main-md):hover {
  color: #9e0000;
  text-decoration-thickness: 2px; }

.rwc-prose strong,
.rwc-prose b {
  color: #191c1d;
  font-weight: 800; }

.rwc-prose ul,
.rwc-prose ol {
  padding-left: 1.4em; }

.rwc-prose li {
  margin: 0.45em 0;
  padding-left: 0.15em; }

.rwc-prose li::marker {
  color: #cc0000;
  font-weight: 800; }

.rwc-prose li > ul,
.rwc-prose li > ol {
  margin: 0.45em 0 0.2em; }

.rwc-prose dl:not(.about-info) {
  display: grid;
  gap: 0;
  overflow: hidden;
  background: #ffffff;
  border: 1px solid #e1e3e4;
  border-radius: 8px; }

.rwc-prose dl:not(.about-info) dt {
  margin: 0;
  padding: 1rem 1.15rem 0.35rem;
  color: #191c1d;
  background: #ffffff;
  border-top: 1px solid #e1e3e4;
  font-weight: 900;
  line-height: 1.45; }

.rwc-prose dl:not(.about-info) dt:first-child {
  border-top: 0; }

.rwc-prose dl:not(.about-info) dd {
  color: #5e3f3a;
  font-size: 1rem;
  line-height: 1.75;
  margin: 0;
  padding: 0 1.15rem 1rem;
  background: #ffffff; }

.rwc-prose dl:not(.about-info) dd + dd {
  padding-top: 0.35rem; }

.rwc-prose blockquote {
  padding: 1rem 1.25rem;
  background: #f3f4f5;
  border-left: 4px solid #cc0000;
  border-radius: 0 6px 6px 0; }

.rwc-prose blockquote > :last-child {
  margin-bottom: 0; }

.rwc-prose hr {
  margin: 48px 0;
  border: 0;
  border-top: 1px solid #e1e3e4; }

.rwc-prose > img,
.rwc-prose p > img:only-child,
.rwc-prose figure img {
  margin: 24px 0;
  border-radius: 8px; }

.rwc-prose table {
  display: table;
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  font-size: 0.98rem;
  line-height: 1.7; }

.rwc-prose thead {
  background: #f3f4f5; }

.rwc-prose th,
.rwc-prose td {
  min-width: 8rem;
  padding: 0.85rem 1rem;
  vertical-align: top;
  border: 1px solid #e1e3e4; }

.rwc-prose th {
  color: #191c1d;
  background: #f3f4f5;
  font-weight: 800; }

.rwc-prose code {
  padding: 0.12em 0.35em;
  color: #212a3d;
  background: #edeeef;
  border-radius: 2px;
  font-size: 0.92em; }

.rwc-prose pre {
  overflow-x: auto;
  padding: 1rem 1.1rem;
  color: #f0f1f2;
  background: #2e3132;
  border-radius: 8px; }

.rwc-prose pre code {
  padding: 0;
  color: inherit;
  background: transparent; }

@media (max-width: 767.98px) {
  .rwc-lead,
  .lead {
    font-size: 1rem; }

  .rwc-generic-page {
    width: calc(100% - 32px);
    padding: 48px 0 88px; }

  .rwc-generic-page__hero {
    margin-bottom: 36px; }

  .rwc-generic-page__hero p,
  .rwc-prose {
    font-size: 1rem; }

  .rwc-prose h2 {
    margin-top: 2.1em;
    font-size: clamp(1.35rem, 6.4vw, 1.7rem); }

  .rwc-prose h3 {
    font-size: 1.2rem; }

  .rwc-prose table {
    table-layout: fixed; }

  .rwc-prose th,
  .rwc-prose td {
    min-width: 0;
    padding: 0.7rem 0.75rem;
    overflow-wrap: anywhere;
    word-break: normal; }

  .rwc-prose [style*="white-space"] {
    white-space: normal !important; } }
*,
*::before,
*::after {
  box-sizing: border-box; }

html {
  scroll-behavior: smooth; }

body.rwc-site {
  min-height: 100vh;
  margin: 0;
  color: #191c1d;
  background: #f8f9fa;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  font-size: 16px;
  line-height: 1.6;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased; }

body.rwc-site a {
  text-decoration: none; }

body.rwc-site a:not(.button):not(.btn-main-md):hover {
  color: #cc0000;
  text-decoration: none; }

body.rwc-site img,
body.rwc-site svg {
  max-width: 100%; }

body.rwc-site img {
  height: auto;
  display: block; }

body.rwc-site :focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(204, 0, 0, 0.22); }

.site-main {
  min-height: 60vh; }

.single-page .site-main {
  background: #f8f9fa; }

.single-page .site-main > .section:first-child,
.single-page .site-main > .container:first-child {
  padding-top: 80px; }

p {
  margin-top: 0; }

.rwc-container {
  width: calc(100% - 48px);
  max-width: 1200px;
  margin-inline: auto; }

.text-link {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  color: #cc0000;
  font-size: 0.875rem;
  font-weight: 800;
  line-height: 1.2; }

.text-link::after {
  content: "";
  width: 0.45rem;
  height: 0.45rem;
  margin-left: 0.45rem;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg); }

.text-link:hover {
  color: #9e0000; }

@media (max-width: 767.98px) {
  .rwc-container {
    width: calc(100% - 32px); } }
.button, .btn-main-md,
.btn-white-md,
.btn-transparent-md-dark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0.78rem 1.15rem;
  border: 1px solid transparent;
  border-radius: 4px;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  font-size: 0.875rem;
  font-weight: 800;
  line-height: 1;
  text-align: center;
  transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, box-shadow 160ms ease; }

.button:hover, .btn-main-md:hover,
.btn-white-md:hover,
.btn-transparent-md-dark:hover {
  text-decoration: none; }

.button--primary, .btn-main-md,
.btn-white-md {
  color: #ffffff;
  background: #cc0000;
  border-color: #cc0000; }

.button--primary:hover, .btn-main-md:hover,
.btn-white-md:hover {
  color: #ffffff;
  background: #212a3d;
  border-color: #212a3d; }

.button--secondary, .btn-transparent-md-dark {
  color: #212a3d;
  background: transparent;
  border-color: #212a3d; }

.button--secondary:hover, .btn-transparent-md-dark:hover {
  color: #cc0000;
  background: #ffffff;
  border-color: #cc0000; }

.button--secondary-on-dark {
  color: #ffffff;
  background: transparent;
  border-color: rgba(255, 255, 255, 0.88); }

.button--secondary-on-dark:hover {
  color: #212a3d;
  background: #ffffff;
  border-color: #ffffff; }

.button--sm {
  min-height: 38px;
  padding: 0.65rem 0.95rem;
  font-size: 0.8125rem; }

.button--lg {
  min-height: 52px;
  padding: 1rem 1.45rem;
  font-size: 1rem; }

.button--xl {
  min-width: 280px;
  max-width: 100%;
  min-height: 60px;
  padding: 1.1rem 2.2rem;
  font-size: 1.08rem; }

.button-action {
  margin: 2rem 0 1.6rem;
  text-align: center; }

.button-action small {
  display: block;
  margin-top: 0.85rem; }

.button[aria-disabled="true"], [aria-disabled="true"].btn-main-md,
[aria-disabled="true"].btn-white-md,
[aria-disabled="true"].btn-transparent-md-dark,
.button.is-disabled,
.is-disabled.btn-main-md,
.is-disabled.btn-white-md,
.is-disabled.btn-transparent-md-dark,
.btn.disabled {
  color: #555e74;
  pointer-events: none;
  background: #e7e8e9;
  border-color: #e1e3e4; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: rgba(255, 255, 255, 0.96);
  border-bottom: 1px solid rgba(225, 227, 228, 0.9);
  backdrop-filter: blur(18px); }

.site-header__inner {
  display: grid;
  grid-template-columns: auto 1fr auto auto;
  align-items: center;
  gap: 1.25rem;
  width: calc(100% - 48px);
  max-width: 1280px;
  min-height: var(--rwc-site-header-height);
  margin: 0 auto; }

.site-brand {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  min-width: max-content;
  color: #000; }

.site-brand:hover {
  color: #000; }

.site-brand__mark {
  width: 42px;
  height: 46px; }

.site-brand__text {
  display: grid;
  gap: 0.08rem;
  color: #000;
  font-family: "Source Code Pro", "Inter", "Noto Sans JP", sans-serif;
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.05; }

.site-nav {
  justify-self: end; }

.site-nav__list,
.site-menu__list {
  display: flex;
  align-items: center;
  gap: 0.2rem;
  padding: 0;
  margin: 0;
  list-style: none; }

.site-nav__link {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 0.55rem 0.62rem;
  border-bottom: 2px solid transparent;
  color: #555e74;
  font-size: 0.86rem;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
  transition: color 160ms ease, border-color 160ms ease, background-color 160ms ease; }

.site-nav__link:hover,
.site-nav__link.is-active {
  color: #cc0000;
  border-bottom-color: #cc0000; }

.site-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.65rem; }

.language-switch {
  display: inline-grid;
  grid-auto-flow: column;
  gap: 2px;
  padding: 3px;
  background: #edeeef;
  border: 1px solid #e1e3e4;
  border-radius: 4px; }

.language-switch a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  min-height: 30px;
  padding: 0 0.4rem;
  color: #555e74;
  border-radius: 2px;
  font-size: 0.75rem;
  font-weight: 800;
  line-height: 1; }

.language-switch a.is-active {
  color: #ffffff;
  background: #212a3d; }

.site-menu {
  display: none;
  position: relative; }

.breadcrumbs {
  width: calc(100% - 48px);
  max-width: 1200px;
  margin: 0 auto;
  padding-top: clamp(28px, 4vw, 48px); }

.breadcrumbs__list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0;
  padding: 0;
  margin: 0;
  color: #555e74;
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.5;
  list-style: none; }

.breadcrumbs__item {
  display: inline-flex;
  align-items: baseline;
  min-width: 0; }

.breadcrumbs__item:not(:last-child)::after {
  content: "/";
  margin: 0 0.75rem;
  color: #555e74;
  font-weight: 400; }

.breadcrumbs__item a {
  color: #555e74; }

.breadcrumbs__item a:hover {
  color: #cc0000; }

.breadcrumbs__item span {
  overflow: hidden;
  color: #212a3d;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap; }

.site-main > .breadcrumbs + * {
  padding-top: clamp(24px, 3vw, 40px); }

.site-menu__summary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 0.7rem 0.9rem;
  color: #212a3d;
  border: 1px solid #212a3d;
  border-radius: 4px;
  font-size: 0.82rem;
  font-weight: 800;
  line-height: 1;
  cursor: pointer;
  list-style: none; }

.site-menu__summary::-webkit-details-marker {
  display: none; }

.site-menu__panel {
  position: absolute;
  top: calc(100% + 0.75rem);
  right: 0;
  width: 86vw;
  max-width: 360px;
  padding: 1rem;
  background: #ffffff;
  border: 1px solid #e1e3e4;
  border-radius: 8px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05); }

.site-menu__list {
  display: grid;
  gap: 0.25rem; }

.site-menu__link {
  display: flex;
  padding: 0.78rem 0.85rem;
  color: #212a3d;
  border-radius: 4px;
  font-weight: 800;
  line-height: 1.2; }

.site-menu__link:hover,
.site-menu__link.is-active {
  color: #cc0000;
  background: #f3f4f5; }

.site-menu__actions {
  display: grid;
  gap: 0.65rem;
  padding-top: 0.95rem;
  margin-top: 0.95rem;
  border-top: 1px solid #e1e3e4; }

.site-menu__language {
  justify-self: center;
  color: #555e74;
  font-size: 0.82rem;
  font-weight: 800; }

@media (max-width: 1190px) {
  .site-header__inner {
    grid-template-columns: auto 1fr auto; }

  .site-nav,
  .site-actions {
    display: none; }

  .site-menu {
    display: block;
    justify-self: end; } }
@media (max-width: 575.98px) {
  .site-header__inner {
    width: calc(100% - 32px); }

  .breadcrumbs {
    width: calc(100% - 32px);
    padding-top: 24px; }

  .breadcrumbs__list {
    flex-wrap: nowrap;
    overflow: hidden;
    font-size: 0.82rem; }

  .breadcrumbs__item:not(:last-child) {
    flex: 0 0 auto; }

  .breadcrumbs__item:last-child {
    min-width: 0; }

  .breadcrumbs__item:not(:last-child)::after {
    margin: 0 0.5rem; }

  .site-brand__mark {
    width: 34px;
    height: 38px; }

  .site-brand__text {
    font-size: 0.82rem; } }
.card-grid {
  display: grid;
  gap: 24px; }

.card-grid--two {
  grid-template-columns: repeat(2, minmax(0, 1fr)); }

.card-grid--three {
  grid-template-columns: repeat(3, minmax(0, 1fr)); }

.card-grid--four {
  grid-template-columns: repeat(4, minmax(0, 1fr)); }

.card-grid--keynotes {
  grid-template-columns: repeat(2, minmax(260px, 360px));
  justify-content: center; }

.info-card,
.feature-card,
.speaker-card,
.news-item,
.faq-list details {
  background: #ffffff;
  border: 1px solid #e1e3e4;
  border-radius: 8px;
  transition: border-color 160ms ease, box-shadow 160ms ease; }

.info-card:hover,
.feature-card:hover,
.speaker-card:hover,
.news-item:hover,
.faq-list details:hover {
  border-color: #cc0000;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05); }

.info-card,
.feature-card {
  display: grid;
  align-content: start;
  gap: 12px;
  min-height: 220px;
  padding: 24px; }

.info-card__label,
.speaker-card__status {
  margin: 0;
  color: #cc0000;
  font-size: 0.78rem;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0.08em;
  text-transform: uppercase; }

.info-card h3,
.feature-card h3 {
  margin: 0;
  font-size: 1.35rem;
  font-weight: 700;
  line-height: 1.3; }

.info-card p,
.feature-card p {
  color: #555e74; }

.speaker-card {
  overflow: hidden; }

.speaker-card img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  background: #edeeef; }

.speaker-card > div {
  display: grid;
  gap: 0.45rem;
  padding: 24px;
  text-align: center; }

.speaker-card h3 {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.3; }

.speaker-card p:last-child {
  margin: 0;
  color: #555e74;
  font-size: 0.92rem; }

.speaker-card__name {
  margin: 0;
  color: #191c1d !important;
  font-size: 1.02rem !important;
  font-weight: 800; }

.speaker-card--placeholder img {
  opacity: 0.72; }

@media (max-width: 991.98px) {
  .card-grid--three,
  .card-grid--four {
    grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .card-grid--keynotes {
    grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767.98px) {
  .card-grid--two,
  .card-grid--three,
  .card-grid--four,
  .card-grid--keynotes {
    grid-template-columns: 1fr; }

  .info-card,
  .feature-card {
    min-height: auto; } }
.homepage .site-main {
  overflow: hidden; }

.home-hero {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: clamp(18px, 3.2vh, 28px);
  width: calc(100% - 48px);
  max-width: 1440px;
  min-height: calc(100vh - var(--rwc-site-header-height));
  margin: 0 auto;
  padding: clamp(36px, 6vh, 64px) clamp(16px, 4vw, 48px);
  border-bottom: 1px solid #e1e3e4;
  text-align: center; }

.home-hero__content {
  display: grid;
  justify-items: center;
  gap: clamp(10px, 1.8vh, 18px);
  width: 100%;
  max-width: 920px; }

.home-hero__visual {
  display: flex;
  justify-content: center;
  width: 100%; }

.home-hero__visual img,
.home-hero__morph {
  width: clamp(280px, 36vw, 560px);
  max-height: min(44vh, 420px);
  object-fit: contain;
  filter: drop-shadow(0 26px 48px rgba(95, 27, 57, 0.16)); }

.home-hero__morph {
  display: block;
  aspect-ratio: 700.099 / 784.521;
  overflow: visible; }

.home-hero h1 {
  margin: 0;
  font-family: "Source Code Pro", "Inter", "Noto Sans JP", sans-serif;
  font-size: clamp(2.75rem, 4.65vw, 4.25rem);
  font-weight: 700;
  line-height: 0.98;
  text-transform: none; }

.home-hero h1 span {
  display: block; }

.event-facts {
  display: grid;
  gap: 0.2rem;
  color: #191c1d;
  font-size: clamp(1rem, 1.7vw, 1.22rem);
  line-height: 1.35; }

.event-facts p {
  margin: 0; }

.home-hero__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.8rem;
  margin-top: 0.35rem; }

.home-hero--centered {
  display: block;
  width: 100%;
  max-width: none;
  min-height: 0;
  margin: 0;
  padding: clamp(28px, 2.8vw, 38px) 24px clamp(32px, 3.2vw, 44px);
  overflow: hidden;
  background: #ffffff;
  text-align: center;
  isolation: isolate; }

.home-hero--centered::before,
.home-hero--centered::after {
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  content: ""; }

.home-hero--centered::before {
  background-image: linear-gradient(to right, rgba(33, 42, 61, 0.055) 1px, transparent 1px), linear-gradient(to bottom, rgba(33, 42, 61, 0.055) 1px, transparent 1px);
  background-size: 24px 24px;
  opacity: 0.62; }

.home-hero--centered::after {
  background: radial-gradient(circle at 78% 14%, rgba(204, 0, 0, 0.13), transparent 36%), radial-gradient(circle at 22% 86%, rgba(204, 0, 0, 0.11), transparent 34%); }

.home-hero__inner {
  position: relative;
  z-index: 1;
  display: grid;
  justify-items: center;
  align-items: center;
  gap: clamp(12px, 1.4vw, 18px);
  width: 100%;
  max-width: 960px;
  margin: 0 auto; }

.home-hero--centered .home-hero__content {
  justify-items: center;
  gap: clamp(10px, 1.3vw, 16px);
  max-width: 900px;
  text-align: center; }

.home-hero--centered .home-hero__visual {
  align-items: center;
  justify-content: center;
  min-height: 0; }

.home-hero--centered .home-hero__visual img,
.home-hero--centered .home-hero__morph {
  width: clamp(250px, 23.5vw, 330px);
  max-height: none;
  filter: drop-shadow(0 34px 58px rgba(95, 27, 57, 0.18)); }

.home-hero--centered h1 {
  max-width: 900px;
  font-size: clamp(2.75rem, 4vw, 4rem);
  line-height: 1.02; }

.home-hero--centered .event-facts {
  justify-items: center;
  gap: 0.55rem;
  color: #191c1d;
  font-size: clamp(1rem, 1.35vw, 1.18rem);
  font-weight: 700; }

.event-facts__date {
  font-size: clamp(1.45rem, 2.1vw, 2rem);
  font-weight: 800;
  line-height: 1.3; }

.event-facts__venue {
  display: flex;
  align-items: center;
  gap: 0.75rem; }

.event-facts__venue i {
  flex: 0 0 auto;
  color: #cc0000;
  font-size: 1.35rem; }

.home-hero--centered .home-hero__actions {
  justify-content: center;
  gap: 1rem;
  margin-top: 0.2rem; }

.home-hero--centered .home-hero__actions--stacked {
  flex-direction: column;
  align-items: center; }

.home-hero--centered .home-hero__actions .button, .home-hero--centered .home-hero__actions .btn-main-md,
.home-hero--centered .home-hero__actions .btn-white-md,
.home-hero--centered .home-hero__actions .btn-transparent-md-dark {
  min-width: 164px; }

.home-hero__note {
  margin: -0.15rem 0 0;
  color: #5e3f3a;
  font-size: clamp(0.95rem, 1.2vw, 1.08rem);
  font-weight: 600;
  line-height: 1.6; }

.home-social {
  position: fixed;
  top: 50%;
  right: clamp(12px, 2.6vw, 36px);
  z-index: 900;
  display: grid;
  gap: 0.2rem;
  padding: 0.5rem 0.42rem;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(225, 227, 228, 0.84);
  border-radius: 8px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
  transform: translateY(-50%);
  backdrop-filter: blur(12px); }

.home-social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  color: #191c1d;
  border-radius: 4px;
  transition: color 160ms ease, background-color 160ms ease; }

.home-social a:hover {
  color: #cc0000;
  background: #f3f4f5; }

.home-social svg {
  width: 16px;
  height: 16px;
  fill: currentColor; }

.home-section {
  width: calc(100% - 48px);
  max-width: 1200px;
  margin: 0 auto;
  padding: 80px 0;
  border-bottom: 1px solid #e1e3e4; }

.home-section--surface {
  width: 100%;
  max-width: none;
  padding-right: 24px;
  padding-left: 24px;
  background: #ffffff; }

.home-section--surface > * {
  max-width: 1200px;
  margin-right: auto;
  margin-left: auto; }

.home-section--center {
  max-width: 820px;
  text-align: center; }

.home-section--center .section-kicker {
  margin-bottom: 12px; }

.home-section h2 {
  margin: 0;
  font-size: clamp(2rem, 4vw, 2.5rem);
  font-weight: 700;
  line-height: 1.2; }

.home-section--center h2 {
  margin-bottom: 24px; }

.section-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 48px; }

.section-header--center {
  justify-content: center;
  text-align: center; }

.section-header--center-title {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: end; }

.section-header--center-title > div {
  grid-column: 2;
  text-align: center; }

.section-header--center-title .text-link {
  grid-column: 3;
  justify-self: end; }

.news-list {
  display: grid;
  gap: 12px; }

.home-section__actions {
  display: flex;
  justify-content: center;
  margin-top: 48px; }

.news-item {
  display: grid;
  grid-template-columns: 8.5rem 1fr auto;
  align-items: center;
  gap: 24px;
  padding: 24px;
  color: #191c1d; }

.news-item:hover {
  color: #191c1d; }

.news-item time {
  color: #555e74;
  font-size: 0.88rem;
  font-weight: 800; }

.news-item span {
  min-width: 0; }

.news-item__status {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 0.32rem 0.55rem;
  border-radius: 4px;
  font-size: 0.75rem;
  font-weight: 800;
  line-height: 1; }

.news-item__status--process {
  color: #075c32;
  background: #d5f5e3; }

.news-item__status--close {
  color: #8c1d18;
  background: #ffdad6; }

.faq-list {
  display: grid;
  gap: 12px;
  max-width: 820px;
  margin: 0 auto; }

.faq-list details {
  padding: 24px; }

.faq-list summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  color: #191c1d;
  font-family: "Source Code Pro", "Noto Sans JP", monospace;
  font-size: 1.08rem;
  font-weight: 700;
  line-height: 1.35;
  cursor: pointer;
  list-style: none; }

.faq-list summary::-webkit-details-marker {
  display: none; }

.faq-list summary::after {
  content: "";
  flex: 0 0 auto;
  width: 0.65rem;
  height: 0.65rem;
  border-right: 2px solid #cc0000;
  border-bottom: 2px solid #cc0000;
  transform: rotate(45deg);
  transition: transform 160ms ease; }

.faq-list details[open] summary::after {
  transform: rotate(225deg); }

.faq-list p {
  margin: 12px 0 0;
  color: #555e74; }

.rubyweek-section {
  border-bottom: 0; }

.rubyweek-panel {
  display: grid;
  grid-template-columns: minmax(240px, 0.42fr) minmax(0, 0.58fr);
  align-items: center;
  gap: clamp(36px, 6vw, 80px);
  max-width: 980px;
  margin: 0 auto; }

.rubyweek-logo {
  display: grid;
  justify-items: center; }

.rubyweek-logo img {
  width: min(100%, 330px); }

.rubyweek-copy {
  display: grid;
  justify-items: start;
  gap: 24px; }

.rubyweek-copy p {
  margin: 0;
  color: #5e3f3a;
  font-size: 1.08rem;
  font-weight: 600;
  line-height: 1.9; }

@media (max-width: 991.98px) {
  .home-hero {
    min-height: auto;
    padding-top: 48px;
    padding-bottom: 56px; }

  .home-hero__visual img,
  .home-hero__morph {
    width: clamp(260px, 58vw, 430px); }

  .home-hero--centered {
    padding-top: 48px;
    padding-bottom: 60px; }

  .home-hero--centered .home-hero__inner {
    gap: 26px; }

  .home-hero--centered .home-hero__content {
    justify-items: center;
    max-width: 760px;
    margin: 0 auto;
    text-align: center; }

  .home-hero--centered .home-hero__visual img,
  .home-hero--centered .home-hero__morph {
    width: clamp(260px, 42vw, 360px); }

  .home-hero--centered .event-facts__venue,
  .home-hero--centered .home-hero__actions {
    justify-content: center; } }
@media (max-width: 767.98px) {
  .home-hero,
  .home-section {
    width: calc(100% - 32px); }

  .home-hero {
    min-height: calc(100svh - var(--rwc-site-header-height));
    padding: 34px 0 46px; }

  .home-hero--centered {
    width: 100%;
    min-height: 0;
    padding: 34px 16px 44px; }

  .home-hero--centered .home-hero__inner {
    gap: 20px; }

  .home-hero h1 {
    font-size: clamp(2.25rem, 9.8vw, 3.25rem); }

  .home-hero--centered h1 {
    font-size: clamp(2rem, 8.4vw, 2.55rem);
    line-height: 1.14; }

  .home-hero__visual img,
  .home-hero__morph {
    width: min(82vw, 360px);
    max-height: 40svh; }

  .home-hero--centered .home-hero__visual img,
  .home-hero--centered .home-hero__morph {
    width: min(64vw, 280px);
    max-height: none; }

  .home-hero--centered .event-facts {
    gap: 0.65rem; }

  .home-hero--centered .event-facts__date {
    font-size: 1.25rem; }

  .home-hero__actions {
    gap: 0.65rem; }

  .home-hero__actions .button, .home-hero__actions .btn-main-md,
  .home-hero__actions .btn-white-md,
  .home-hero__actions .btn-transparent-md-dark {
    min-width: 112px; }

  .home-hero--centered .home-hero__actions {
    width: 100%;
    flex-wrap: nowrap;
    gap: 0.6rem; }

  .home-hero--centered .home-hero__actions .button, .home-hero--centered .home-hero__actions .btn-main-md,
  .home-hero--centered .home-hero__actions .btn-white-md,
  .home-hero--centered .home-hero__actions .btn-transparent-md-dark {
    min-width: 0;
    padding-right: 1rem;
    padding-left: 1rem;
    font-size: 0.92rem; }

  .home-social {
    top: auto;
    right: 10px;
    bottom: 16px;
    padding: 0.42rem 0.34rem;
    transform: none; }

  .home-social a {
    width: 26px;
    height: 26px; }

  .home-section {
    padding: 56px 0; }

  .home-section--surface {
    width: 100%;
    padding-right: 16px;
    padding-left: 16px; }

  .section-header {
    align-items: flex-start;
    flex-direction: column; }

  .section-header--center {
    align-items: center; }

  .section-header--center-title {
    grid-template-columns: 1fr;
    justify-items: center; }

  .section-header--center-title > div,
  .section-header--center-title .text-link {
    grid-column: 1; }

  .section-header--center-title .text-link {
    justify-self: center; }

  .news-item {
    grid-template-columns: 1fr;
    gap: 0.7rem; }

  .event-facts {
    font-size: 1rem; }

  .rubyweek-panel {
    grid-template-columns: 1fr;
    gap: 48px;
    text-align: center; }

  .rubyweek-copy {
    justify-items: center; }

  .rubyweek-logo img {
    width: min(78vw, 300px); } }
@media (max-width: 420px) {
  .home-hero {
    gap: 16px; }

  .home-hero__visual img,
  .home-hero__morph {
    width: min(78vw, 300px); }

  .home-hero--centered {
    padding-top: 32px;
    padding-bottom: 40px; }

  .home-hero--centered .home-hero__visual img,
  .home-hero--centered .home-hero__morph {
    width: min(64vw, 250px); } }
.about-page {
  display: grid;
  gap: clamp(56px, 7vw, 88px); }

.about-section {
  display: grid;
  grid-template-columns: minmax(180px, 0.38fr) minmax(0, 0.62fr);
  gap: 24px;
  align-items: start; }

.about-section__title {
  color: #191c1d;
  font-family: "Source Code Pro", "Noto Sans JP", monospace;
  letter-spacing: 0;
  margin: 0;
  font-size: clamp(1.55rem, 3vw, 2.05rem);
  font-weight: 700;
  line-height: 1.28;
  position: sticky;
  top: 104px; }

.about-stack {
  display: grid;
  gap: 24px; }

.about-card,
.about-info,
.about-message-card {
  background: #ffffff;
  border: 1px solid #e1e3e4;
  border-radius: 8px; }

.about-card {
  display: grid;
  gap: 12px;
  padding: clamp(24px, 3vw, 36px);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05); }

.about-card h3 {
  color: #191c1d;
  font-family: "Source Code Pro", "Noto Sans JP", monospace;
  letter-spacing: 0;
  margin: 0;
  font-size: clamp(1.2rem, 2vw, 1.55rem);
  font-weight: 700;
  line-height: 1.35;
  color: #cc0000; }

.about-card p {
  color: #5e3f3a;
  font-size: 1rem;
  line-height: 1.75;
  margin: 0; }

.about-card .button, .about-card .btn-main-md,
.about-card .btn-white-md,
.about-card .btn-transparent-md-dark {
  justify-self: start;
  margin-top: 12px; }

.about-info {
  display: grid;
  gap: 0;
  overflow: hidden; }

.about-info__row {
  display: grid;
  grid-template-columns: minmax(150px, 0.32fr) minmax(0, 1fr);
  gap: 24px;
  margin: 0;
  padding: clamp(18px, 2.2vw, 26px);
  border-bottom: 1px solid #e1e3e4; }

.about-info__row:last-child {
  border-bottom: 0; }

.about-info__row:nth-child(even) {
  background: #f3f4f5; }

.about-info dt {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  margin: 0;
  color: #212a3d;
  font-size: 0.92rem;
  font-weight: 900;
  line-height: 1.45; }

.about-info dt i {
  color: #23516c;
  font-size: 1rem; }

.about-info dd {
  color: #5e3f3a;
  font-size: 1rem;
  line-height: 1.75;
  margin: 0;
  color: #191c1d; }

.about-info small {
  display: block;
  margin-top: 0.35rem;
  color: #555e74;
  font-size: 0.9rem;
  line-height: 1.5; }

.about-message-card {
  display: grid;
  grid-template-columns: minmax(180px, 0.34fr) minmax(0, 1fr);
  gap: clamp(20px, 3vw, 36px);
  padding: clamp(24px, 3vw, 36px);
  background: #f3f4f5; }

.about-message-card__profile {
  display: grid;
  align-content: start;
  gap: 0.8rem; }

.about-message-card__portrait {
  display: grid;
  place-items: center;
  width: 132px;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: #e7e8e9;
  border-radius: 4px; }

.about-message-card__portrait img {
  width: 100%;
  height: 100%;
  object-fit: cover; }

.about-message-card__portrait i {
  color: #5e3f3a;
  font-size: 2rem; }

.about-message-card h3 {
  color: #191c1d;
  font-family: "Source Code Pro", "Noto Sans JP", monospace;
  letter-spacing: 0;
  margin: 0;
  font-size: clamp(1.2rem, 2vw, 1.55rem);
  font-weight: 700;
  line-height: 1.35;
  font-size: clamp(1.25rem, 2vw, 1.65rem); }

.about-message-card__role {
  margin: 0;
  color: #23516c;
  font-size: 0.88rem;
  font-weight: 900;
  line-height: 1.45; }

.about-message-card__body {
  display: grid;
  gap: 1rem; }

.about-message-card__body p {
  color: #5e3f3a;
  font-size: 1rem;
  line-height: 1.75;
  margin: 0; }

.rwc-prose .about-page h2,
.rwc-prose .about-page h3,
.rwc-prose .about-page p,
.rwc-prose .about-page dl {
  max-width: none;
  margin-top: 0;
  margin-bottom: 0; }

@media (max-width: 991.98px) {
  .about-section {
    grid-template-columns: 1fr; }

  .about-section__title {
    position: static; } }
@media (max-width: 767.98px) {
  .about-info__row,
  .about-message-card {
    grid-template-columns: 1fr; }

  .about-message-card__profile {
    justify-items: start; } }
.venue-page {
  display: grid;
  gap: clamp(64px, 8vw, 104px); }

.venue-visual {
  display: grid;
  grid-template-columns: minmax(260px, 0.34fr) minmax(0, 0.66fr);
  gap: 24px; }

.venue-card,
.venue-map,
.venue-access-card {
  overflow: hidden;
  background: #ffffff;
  border: 1px solid #e1e3e4;
  border-radius: 8px; }

.venue-card {
  display: grid;
  grid-template-rows: auto 1fr auto;
  min-height: 640px; }

.venue-card__image {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover; }

.venue-card__body {
  display: grid;
  align-content: start;
  gap: 0.65rem;
  padding: 24px; }

.venue-card__label {
  width: fit-content;
  margin: 0;
  padding: 0.34rem 0.62rem;
  color: #23516c;
  background: #d9e2fc;
  border-radius: 6px;
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1; }

.venue-card h2 {
  color: #191c1d;
  font-family: "Source Code Pro", "Noto Sans JP", monospace;
  letter-spacing: 0;
  margin: 0;
  font-size: clamp(1.2rem, 2vw, 1.55rem);
  font-weight: 700;
  line-height: 1.35;
  font-size: clamp(1.35rem, 2.1vw, 1.75rem); }

.venue-card__body p:last-child {
  color: #5e3f3a;
  font-size: 1rem;
  line-height: 1.75;
  margin: 0; }

.venue-card__footer {
  display: flex;
  gap: 0.75rem;
  margin: 0 24px;
  padding: 24px 0;
  border-top: 1px solid #e1e3e4; }

.venue-card__footer i {
  margin-top: 0.2rem;
  color: #23516c; }

.venue-card__footer div {
  display: grid;
  gap: 0.25rem;
  color: #555e74;
  font-size: 0.95rem;
  line-height: 1.5; }

.venue-map {
  position: relative;
  min-height: 640px;
  background: #edeeef; }

.venue-map iframe {
  width: 100%;
  height: 100%;
  min-height: 640px;
  border: 0; }

.venue-map__button {
  position: absolute;
  bottom: 24px;
  left: 24px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 36px;
  padding: 0.55rem 0.85rem;
  color: #191c1d;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid #e1e3e4;
  border-radius: 4px;
  font-size: 0.86rem;
  font-weight: 800;
  line-height: 1;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05); }

.venue-map__button:hover {
  color: #cc0000;
  background: #ffffff; }

.venue-section {
  display: grid;
  gap: 48px; }

.venue-section__title {
  color: #191c1d;
  font-family: "Source Code Pro", "Noto Sans JP", monospace;
  letter-spacing: 0;
  margin: 0;
  font-size: clamp(1.55rem, 3vw, 2.05rem);
  font-weight: 700;
  line-height: 1.28;
  display: flex;
  align-items: center;
  gap: 0.85rem; }

.venue-section__title i {
  color: #cc0000;
  font-size: 1.1rem; }

.venue-floor {
  display: grid;
  place-items: center;
  min-height: clamp(260px, 34vw, 380px);
  color: #555e74;
  background: #e7e8e9;
  border-radius: 8px; }

.venue-floor i {
  color: #926e69;
  font-size: 3rem; }

.venue-floor p {
  margin: 0.85rem 0 0;
  font-size: 1.1rem;
  font-weight: 800; }

.venue-section--access {
  width: calc(100% + 48px);
  margin-inline: -24px;
  padding: clamp(56px, 7vw, 88px) 24px;
  background: #f3f4f5; }

.venue-section__inner {
  width: calc(100% - 48px);
  max-width: 1200px;
  margin-inline: auto;
  display: grid;
  gap: 48px; }

.venue-access-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px; }

.venue-access-card {
  display: grid;
  align-content: start;
  gap: 0.75rem;
  padding: 24px; }

.venue-access-card__icon {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  color: #23516c;
  background: #d9e2fc;
  border-radius: 6px; }

.venue-access-card h3 {
  color: #191c1d;
  font-family: "Source Code Pro", "Noto Sans JP", monospace;
  letter-spacing: 0;
  margin: 0;
  font-size: clamp(1.2rem, 2vw, 1.55rem);
  font-weight: 700;
  line-height: 1.35;
  font-size: 1.2rem; }

.venue-access-card p {
  margin: 0;
  color: #555e74;
  font-size: 0.88rem;
  line-height: 1.4; }

.venue-access-card ul {
  display: grid;
  gap: 0.65rem;
  margin: 0.45rem 0 0;
  padding: 1rem 0 0;
  border-top: 1px solid #e1e3e4;
  list-style: none; }

.venue-access-card li {
  display: grid;
  grid-template-columns: 1rem minmax(0, 1fr);
  gap: 0.6rem;
  color: #191c1d;
  font-size: 0.86rem;
  line-height: 1.45; }

.venue-access-card li i {
  margin-top: 0.2rem;
  color: #23516c; }

.venue-access-note {
  display: flex;
  gap: 0.6rem;
  max-width: 760px;
  margin: 0;
  color: #555e74;
  font-size: 0.95rem;
  line-height: 1.7; }

.venue-access-note i {
  margin-top: 0.3rem;
  color: #23516c; }

.rwc-prose .venue-page h2,
.rwc-prose .venue-page h3,
.rwc-prose .venue-page p,
.rwc-prose .venue-page ul {
  max-width: none;
  margin-top: 0;
  margin-bottom: 0; }

@media (max-width: 991.98px) {
  .venue-visual,
  .venue-access-grid {
    grid-template-columns: 1fr; }

  .venue-card,
  .venue-map,
  .venue-map iframe {
    min-height: 420px; } }
@media (max-width: 767.98px) {
  .venue-page {
    gap: 56px; }

  .venue-card,
  .venue-map,
  .venue-map iframe {
    min-height: 360px; }

  .venue-section--access {
    width: calc(100% + 32px);
    margin-inline: -16px;
    padding-inline: 16px; }

  .venue-access-card {
    padding: 20px; } }
.program-page {
  width: calc(100% - 48px);
  max-width: 1200px;
  margin-inline: auto;
  padding: clamp(56px, 8vw, 96px) 0 128px; }

.program-hero {
  display: grid;
  gap: 12px;
  margin-bottom: 48px; }

.program-hero h1 {
  color: #191c1d;
  font-family: "Source Code Pro", "Noto Sans JP", monospace;
  letter-spacing: 0;
  margin: 0;
  font-size: clamp(2.25rem, 4.6vw, 3.35rem);
  font-weight: 700;
  line-height: 1.14;
  line-height: 1.08; }

.program-hero p {
  margin: 0;
  color: #5e3f3a;
  font-size: 1.125rem;
  line-height: 1.75;
  font-size: 1.16rem; }

.program-day-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  margin-bottom: 48px;
  border-bottom: 1px solid #e1e3e4; }

.program-day-tabs a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  margin-bottom: -1px;
  color: #212a3d;
  border-bottom: 2px solid transparent;
  font-size: 0.92rem;
  font-weight: 800;
  line-height: 1; }

.program-day-tabs a:hover,
.program-day-tabs a.is-active {
  color: #cc0000;
  border-bottom-color: #cc0000; }

.program-schedule {
  overflow: visible; }

.program-schedule .program {
  display: block;
  width: 100%;
  margin: 0;
  border-collapse: separate;
  border-spacing: 0; }

.program-schedule .program tbody {
  position: relative;
  display: block; }

.program-schedule .program tbody::before {
  content: "";
  position: absolute;
  top: 34px;
  bottom: 34px;
  left: 138px;
  width: 1px;
  background: #e1e3e4; }

.program-schedule .program tr {
  position: relative;
  display: grid;
  grid-template-columns: 140px minmax(0, 1fr);
  gap: 24px;
  padding: 22px 0; }

.program-schedule .program th,
.program-schedule .program td {
  border: 0 !important; }

.program-schedule .program th {
  padding: 6px 24px 0 0 !important;
  color: #cc0000;
  background: transparent;
  font-size: 0.92rem;
  font-weight: 800;
  line-height: 1.2;
  text-align: right;
  white-space: nowrap; }

.program-schedule .program th br {
  display: none; }

.program-schedule .program th i {
  margin: 0 0.35rem;
  color: currentColor;
  font-size: 0.72rem; }

.program-schedule .program td {
  position: relative;
  overflow: visible;
  min-height: 116px;
  padding: 24px !important;
  color: #5e3f3a;
  background: #ffffff;
  border: 1px solid #e1e3e4 !important;
  border-radius: 8px;
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.02);
  transition: border-color 160ms ease, box-shadow 160ms ease; }

.program-schedule .program-card-link {
  position: absolute;
  inset: 0;
  z-index: 2;
  border-radius: 8px;
  text-indent: -9999px; }

.program-schedule .program-card-link:focus-visible {
  outline: 3px solid #cc0000;
  outline-offset: 3px; }

.program-schedule .program tr:has(.program-card-link) td {
  cursor: pointer; }

.program-schedule .program td::before {
  content: "";
  position: absolute;
  top: 9px;
  left: -32px;
  z-index: 1;
  width: 12px;
  height: 12px;
  background: #f8f9fa;
  border: 2px solid #23516c;
  border-radius: 50%; }

.program-schedule .program tr:hover td {
  border-color: #e8bdb6 !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05); }

.program-schedule .program tr:has(.program-card-link):hover .program-title {
  color: #cc0000; }

.program-schedule .anchor {
  position: relative;
  top: -96px; }

.program-schedule .cpyBtn {
  display: none; }

.program-schedule .program-title {
  color: #191c1d;
  font-family: "Source Code Pro", "Noto Sans JP", monospace;
  letter-spacing: 0;
  margin: 0;
  font-size: clamp(1.2rem, 2vw, 1.55rem);
  font-weight: 700;
  line-height: 1.35;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin: 0 0 1rem; }

.program-schedule .program-title a {
  color: inherit;
  text-decoration: none; }

.program-schedule .program-title a:hover {
  color: #cc0000;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em; }

.program-schedule .badge {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  margin: 0 0.55rem 0.85rem 0;
  padding: 0.32rem 0.55rem;
  border-radius: 2px;
  font-size: 0.78rem;
  font-weight: 800;
  line-height: 1; }

.program-schedule .badge-danger {
  color: #9e0000;
  background: #ffdad6; }

.program-schedule .badge-success {
  color: #185c37;
  background: #dff3e8; }

.program-schedule .badge-info {
  color: #23516c;
  background: #c7e7ff; }

.program-schedule .program td > ul {
  padding-left: 1.25rem;
  margin: 0.75rem 0 0; }

.program-schedule .program td > ul[style*="list-style:none"],
.program-schedule .program ul[style*="list-style:none"] {
  padding-left: 0 !important; }

.program-schedule .program li {
  line-height: 1.65; }

.program-schedule .program li + li {
  margin-top: 0.4rem; }

.program-schedule .program small {
  color: #5e3f3a;
  font-size: 0.86rem; }

.program-schedule .speaker-container {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #e1e3e4; }

.program-schedule .speaker {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  align-items: center;
  column-gap: 12px;
  max-width: 520px; }

.program-schedule .speaker .avatar {
  grid-row: span 2;
  width: 48px;
  height: 48px;
  background-color: #edeeef;
  background-position: center;
  background-size: cover;
  border-radius: 4px; }

.program-schedule .speaker-name {
  color: #191c1d;
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.25; }

.program-schedule .speaker-title {
  color: #5e3f3a;
  font-size: 0.84rem;
  line-height: 1.35; }

.program-schedule .program .row {
  row-gap: 12px;
  margin-top: 12px; }

.program-schedule .program .row .speaker-container {
  margin-top: 0; }

.program-schedule .program tr:has(#lunch-time-day1) th,
.program-schedule .program tr:has(#lunch-time-day2) th,
.program-schedule .program tr:has(#coffee-break-day1) th,
.program-schedule .program tr:has(#coffee-break-day2) th {
  color: #555e74; }

.program-schedule .program tr:has(#lunch-time-day1) td,
.program-schedule .program tr:has(#lunch-time-day2) td,
.program-schedule .program tr:has(#coffee-break-day1) td,
.program-schedule .program tr:has(#coffee-break-day2) td {
  min-height: 0;
  padding: 1rem 24px !important;
  background: #f3f4f5;
  border-color: transparent !important;
  box-shadow: none; }

.program-schedule .program tr:has(#lunch-time-day1) td::before,
.program-schedule .program tr:has(#lunch-time-day2) td::before,
.program-schedule .program tr:has(#coffee-break-day1) td::before,
.program-schedule .program tr:has(#coffee-break-day2) td::before {
  border-color: #e1e3e4; }

.program-schedule .program tr:has(#lunch-time-day1) .program-title,
.program-schedule .program tr:has(#lunch-time-day2) .program-title,
.program-schedule .program tr:has(#coffee-break-day1) .program-title,
.program-schedule .program tr:has(#coffee-break-day2) .program-title {
  margin-bottom: 0.5rem;
  color: #555e74;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  font-size: 1rem;
  font-weight: 700; }

.program-schedule .program tr:has(#ruby-biz-grand-prix-2025) td {
  overflow: hidden;
  min-height: 190px;
  padding: 24px 24px 48px !important;
  color: #191c1d;
  background: #ffafa7;
  border-color: #ffafa7 !important;
  box-shadow: 0 8px 20px rgba(158, 0, 0, 0.14); }

.program-schedule .program tr:has(#ruby-biz-grand-prix-2025) td::before {
  background: #cc0000;
  border-color: #ffffff;
  box-shadow: 0 0 0 3px #cc0000; }

.program-schedule .program tr:has(#ruby-biz-grand-prix-2025) td::after {
  content: "";
  position: absolute;
  top: -78px;
  right: -52px;
  width: 210px;
  height: 210px;
  background: rgba(255, 255, 255, 0.16);
  border-radius: 50%; }

.program-schedule .program tr:has(#ruby-biz-grand-prix-2025) .program-title {
  position: relative;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
  margin-bottom: 0.8rem; }

.program-schedule .program tr:has(#ruby-biz-grand-prix-2025) .program-title::before {
  content: "Special Event";
  display: inline-flex;
  align-items: center;
  align-self: center;
  min-height: 24px;
  padding: 0.35rem 0.65rem;
  color: #ffffff;
  background: #cc0000;
  border-radius: 999px;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  font-size: 0.76rem;
  font-weight: 800;
  line-height: 1; }

.program-schedule .program tr:has(#ruby-biz-grand-prix-2025) td > * {
  position: relative;
  z-index: 1; }

.program-schedule .program tr:has(#ruby-prize-award-2024) td,
.program-schedule .program tr:has(#reception) td,
.program-schedule .program tr:has(#opening-ceremony-day1) td,
.program-schedule .program tr:has(#opening-remarks-day2) td,
.program-schedule .program tr:has(#closing-ceremony) td {
  min-height: 96px; }

.session-page {
  width: calc(100% - 48px);
  max-width: 1200px;
  margin: 0 auto;
  padding: clamp(48px, 7vw, 72px) 0 128px; }

.session-hero {
  display: grid;
  gap: 24px; }

.session-back {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  width: fit-content;
  color: #555e74;
  font-size: 0.92rem;
  font-weight: 700;
  text-decoration: none; }

.session-back:hover {
  color: #cc0000;
  text-decoration: none; }

.session-hero h1 {
  color: #191c1d;
  font-family: "Source Code Pro", "Noto Sans JP", monospace;
  letter-spacing: 0;
  margin: 0;
  font-size: clamp(2.25rem, 4.6vw, 3.35rem);
  font-weight: 700;
  line-height: 1.14;
  max-width: 1120px;
  font-size: clamp(2.1rem, 3.8vw, 3rem);
  line-height: 1.12; }

.session-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  margin: 12px 0 48px;
  padding: 12px 0;
  background: #ffffff;
  border-top: 1px solid #e1e3e4;
  border-bottom: 1px solid #e1e3e4; }

.session-meta div {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  min-height: 44px;
  padding-right: 48px; }

.session-meta dt {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin: 0;
  color: #555e74;
  font-weight: 800; }

.session-meta dt span {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0; }

.session-meta dt i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  color: #ffffff;
  background: #555e74;
  border-radius: 50%;
  font-size: 0.9rem; }

.session-meta dd {
  margin: 0;
  color: #555e74;
  font-weight: 800; }

.session-meta__time {
  color: #cc0000 !important; }

.session-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 360px);
  gap: clamp(40px, 6vw, 72px); }

.session-main {
  display: grid;
  gap: 48px; }

.session-main section + section {
  padding-top: 48px;
  border-top: 1px solid #e1e3e4; }

.session-main h2,
.session-sidebar h2 {
  color: #191c1d;
  font-family: "Source Code Pro", "Noto Sans JP", monospace;
  letter-spacing: 0;
  margin: 0;
  font-size: clamp(1.55rem, 3vw, 2.05rem);
  font-weight: 700;
  line-height: 1.28;
  font-size: clamp(1.45rem, 2.5vw, 1.95rem); }

.session-summary {
  display: grid;
  gap: 24px;
  margin-top: 24px; }

.session-summary p,
.session-resources p,
.session-speaker__bio {
  margin: 0;
  color: #5e3f3a;
  font-size: 1.125rem;
  line-height: 1.75;
  margin: 0;
  color: #5e3f3a; }

.session-resources {
  display: grid;
  gap: 12px; }

.session-resource-links {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 12px; }

.session-resource-link {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  min-height: 52px;
  padding: 0.85rem 1.4rem;
  color: #ffffff;
  background: #cc0000;
  border: 2px solid #cc0000;
  border-radius: 4px;
  font-weight: 800;
  text-decoration: none; }

.session-resource-link:hover {
  color: #ffffff;
  opacity: 0.88;
  text-decoration: none; }

.session-resource-link--youtube {
  color: #cc0000;
  background: #ffffff; }

.session-resource-link--youtube:hover {
  color: #cc0000;
  background: #ffdad6; }

.session-sidebar {
  align-self: start; }

.session-sidebar > h2 {
  padding-bottom: 12px;
  border-bottom: 1px solid #e1e3e4; }

.session-speakers {
  display: grid;
  gap: 24px;
  margin-top: 24px; }

.session-speaker {
  padding: 24px;
  background: #ffffff;
  border: 1px solid #e1e3e4;
  border-radius: 8px; }

.session-speaker__head {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 12px;
  align-items: center; }

.session-speaker__head img {
  width: 72px;
  height: 72px;
  object-fit: cover;
  background: #edeeef;
  border: 1px solid #e1e3e4;
  border-radius: 4px; }

.session-speaker h3 {
  color: #191c1d;
  font-family: "Source Code Pro", "Noto Sans JP", monospace;
  letter-spacing: 0;
  margin: 0;
  font-size: clamp(1.2rem, 2vw, 1.55rem);
  font-weight: 700;
  line-height: 1.35;
  margin: 0 0 0.25rem;
  font-size: 1.45rem; }

.session-speaker__head p {
  margin: 0;
  color: #23516c;
  font-size: 0.92rem;
  font-weight: 800;
  line-height: 1.35; }

.session-speaker__bio {
  margin-top: 24px;
  font-size: 1rem; }

@media (max-width: 767.98px) {
  .program-page {
    width: calc(100% - 32px);
    padding-top: 48px;
    padding-bottom: 80px; }

  .program-hero {
    margin-bottom: 24px; }

  .program-hero p {
    font-size: 1rem; }

  .program-day-tabs {
    gap: 12px;
    margin-bottom: 24px;
    overflow-x: auto;
    flex-wrap: nowrap; }

  .program-day-tabs a {
    flex: 0 0 auto;
    font-size: 0.86rem; }

  .program-schedule .program tbody::before {
    display: none; }

  .program-schedule .program tr {
    grid-template-columns: 1fr;
    gap: 0.6rem;
    padding: 16px 0; }

  .program-schedule .program th {
    padding: 0 !important;
    text-align: left; }

  .program-schedule .program td {
    min-height: auto;
    padding: 1.15rem !important; }

  .program-schedule .program td::before {
    display: none; }

  .program-schedule .program-title {
    font-size: 1.28rem; }

  .program-schedule .speaker {
    grid-template-columns: 44px minmax(0, 1fr); }

  .program-schedule .speaker .avatar {
    width: 44px;
    height: 44px; }

  .program-schedule .program tr:has(#ruby-biz-grand-prix-2025) td {
    min-height: 0; }

  .session-page {
    width: calc(100% - 32px);
    padding: 40px 0 88px; }

  .session-hero h1 {
    font-size: clamp(2rem, 10vw, 2.7rem); }

  .session-meta {
    display: grid;
    gap: 0.4rem;
    padding: 12px 0; }

  .session-meta div {
    padding-right: 0; }

  .session-layout {
    grid-template-columns: 1fr;
    gap: 48px; }

  .session-resource-links,
  .session-resource-link {
    width: 100%; }

  .session-resource-link {
    justify-content: center; }

  .session-speaker__head {
    grid-template-columns: 64px minmax(0, 1fr); }

  .session-speaker__head img {
    width: 64px;
    height: 64px; } }
.news-index {
  width: calc(100% - 48px);
  max-width: 1200px;
  margin: 0 auto;
  padding: clamp(56px, 8vw, 96px) 0 112px; }

.news-index__header {
  display: grid;
  gap: 12px;
  padding-bottom: 48px;
  border-bottom: 1px solid #e1e3e4; }

.news-index__header h1 {
  color: #191c1d;
  font-family: "Source Code Pro", "Noto Sans JP", monospace;
  letter-spacing: 0;
  margin: 0;
  font-size: clamp(2.25rem, 4.6vw, 3.35rem);
  font-weight: 700;
  line-height: 1.14;
  line-height: 1.1; }

.news-index__header p {
  margin: 0;
  color: #5e3f3a;
  font-size: 1.125rem;
  line-height: 1.75;
  font-size: 1.18rem; }

.news-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin: 48px 0; }

.news-filter__button {
  min-height: 38px;
  padding: 0.62rem 1.25rem;
  color: #191c1d;
  background: #ffffff;
  border: 1px solid #e1e3e4;
  border-radius: 999px;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  font-size: 0.92rem;
  font-weight: 800;
  line-height: 1;
  cursor: pointer;
  transition: color 160ms ease, background-color 160ms ease, border-color 160ms ease; }

.news-filter__button:hover {
  border-color: #cc0000; }

.news-filter__button.is-active {
  color: #ffffff;
  background: #cc0000;
  border-color: #cc0000; }

.news-feed {
  display: grid;
  gap: 24px; }

.news-feed__item {
  position: relative;
  overflow: hidden;
  background: #ffffff;
  border: 1px solid #e1e3e4;
  border-radius: 8px;
  transition: border-color 160ms ease, box-shadow 160ms ease; }

.news-feed__item:hover {
  border-color: #cc0000;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05); }

.news-feed__item.is-featured {
  border-color: #e8bdb6; }

.news-feed__item.is-featured::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: #cc0000; }

.news-feed__item[hidden] {
  display: none; }

.news-feed__link {
  display: grid;
  grid-template-columns: minmax(150px, 200px) minmax(0, 1fr);
  gap: 24px;
  min-height: 150px;
  padding: 24px;
  color: #191c1d; }

.news-feed__link:hover {
  color: #191c1d; }

.news-feed__meta {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.75rem;
  padding-left: 0.25rem; }

.news-feed__meta time {
  color: #5e3f3a;
  font-size: 0.98rem;
  font-weight: 800;
  line-height: 1.2; }

.news-feed__tag {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0.3rem 0.55rem;
  border-radius: 2px;
  font-size: 0.78rem;
  font-weight: 700;
  line-height: 1; }

.news-feed__tag--process {
  color: #075c32;
  background: #d5f5e3; }

.news-feed__tag--close {
  color: #8c1d18;
  background: #ffdad6; }

.news-feed__body {
  display: grid;
  align-content: center;
  gap: 12px; }

.news-feed__body h2 {
  color: #191c1d;
  font-family: "Source Code Pro", "Noto Sans JP", monospace;
  letter-spacing: 0;
  margin: 0;
  font-size: clamp(1.2rem, 2vw, 1.55rem);
  font-weight: 700;
  line-height: 1.35;
  font-size: clamp(1.55rem, 3vw, 2.4rem);
  transition: color 160ms ease; }

.news-feed__item:not(.is-featured) .news-feed__body h2 {
  font-size: clamp(1.35rem, 2.4vw, 1.85rem); }

.news-feed__item:hover .news-feed__body h2 {
  color: #cc0000; }

.news-feed__body p {
  color: #5e3f3a;
  font-size: 1rem;
  line-height: 1.75;
  margin: 0; }

.news-index__empty {
  padding: 48px;
  margin: 0;
  color: #555e74;
  background: #ffffff;
  border: 1px solid #e1e3e4;
  border-radius: 8px;
  text-align: center; }

@media (max-width: 767.98px) {
  .news-index {
    width: calc(100% - 32px);
    padding-top: 48px;
    padding-bottom: 72px; }

  .news-index__header {
    padding-bottom: 24px; }

  .news-index__header p {
    font-size: 1rem; }

  .news-filter {
    gap: 0.55rem;
    margin: 24px 0; }

  .news-filter__button {
    padding-right: 1rem;
    padding-left: 1rem;
    font-size: 0.85rem; }

  .news-feed__link {
    grid-template-columns: 1fr;
    gap: 12px;
    min-height: auto; }

  .news-feed__meta {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding-left: 0; }

  .news-feed__body h2,
  .news-feed__item:not(.is-featured) .news-feed__body h2 {
    font-size: 1.45rem; } }
.news-article {
  width: calc(100% - 48px);
  max-width: 980px;
  margin: 0 auto;
  padding: clamp(48px, 7vw, 88px) 0 128px; }

.news-article__back {
  max-width: 760px;
  margin: 0 auto 48px; }

.news-article__back a {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  color: #555e74;
  font-size: 0.9rem;
  font-weight: 800;
  line-height: 1.2; }

.news-article__back a:hover {
  color: #cc0000; }

.news-article__card {
  max-width: 760px;
  margin: 0 auto;
  padding: clamp(28px, 4.5vw, 48px);
  background: #ffffff;
  border: 1px solid #e1e3e4;
  border-radius: 8px; }

.news-article__header {
  display: grid;
  gap: 12px;
  margin-bottom: 48px; }

.news-article__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.9rem; }

.news-article__badge {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0.42rem 0.8rem;
  color: #23516c;
  background: #c7e7ff;
  border-radius: 999px;
  font-size: 0.82rem;
  font-weight: 800;
  line-height: 1; }

.news-article__status {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0.42rem 0.8rem;
  border-radius: 999px;
  font-size: 0.82rem;
  font-weight: 800;
  line-height: 1; }

.news-article__status--process {
  color: #075c32;
  background: #d5f5e3; }

.news-article__status--close {
  color: #8c1d18;
  background: #ffdad6; }

.news-article__meta time {
  color: #555e74;
  font-size: 0.98rem;
  line-height: 1.4; }

.news-article__header h1 {
  color: #191c1d;
  font-family: "Source Code Pro", "Noto Sans JP", monospace;
  letter-spacing: 0;
  margin: 0;
  font-size: clamp(1.85rem, 3.8vw, 2.55rem);
  font-weight: 700;
  line-height: 1.22; }

.news-article__hero {
  width: 100%;
  aspect-ratio: 21 / 9;
  margin-bottom: 48px;
  object-fit: cover;
  background: #edeeef;
  border-radius: 4px; }

.news-article__content {
  color: #5e3f3a;
  font-size: 1rem;
  line-height: 1.75;
  color: #5e3f3a;
  font-size: 1.06rem;
  line-height: 1.85; }

.news-article__content > *:first-child {
  margin-top: 0; }

.news-article__content > *:last-child {
  margin-bottom: 0; }

.news-article__content p,
.news-article__content ul,
.news-article__content ol,
.news-article__content table,
.news-article__content .section {
  margin-bottom: 1.35rem; }

.news-article__content .button-action {
  margin: 2rem 0; }

.news-article__content h2 {
  padding-top: 1.25rem;
  margin: 24px 0 1rem;
  color: #191c1d;
  border-top: 1px solid #e1e3e4;
  font-size: 1.45rem;
  font-weight: 700;
  line-height: 1.35; }

.news-article__content h3 {
  margin: 24px 0 0.9rem;
  color: #191c1d;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.35; }

.news-article__content a:not(.button):not(.btn-main-md) {
  color: #cc0000;
  font-weight: 700;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em; }

.news-article__content ul,
.news-article__content ol {
  padding-left: 1.45rem; }

.news-article__content li + li {
  margin-top: 0.45rem; }

.news-article__content img {
  margin: 12px auto;
  border-radius: 4px; }

.news-article__content table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.92rem; }

.news-article__content th,
.news-article__content td {
  padding: 0.75rem;
  border: 1px solid #e1e3e4;
  vertical-align: top; }

.news-article__content th {
  color: #191c1d;
  background: #f3f4f5; }

.news-article__content .section {
  padding: 0; }

.news-article__content .section .container {
  width: 100%;
  max-width: none;
  padding: 0; }

.news-article__content .team-player {
  height: 100%;
  padding: 12px;
  background: #f3f4f5;
  border: 1px solid #e1e3e4;
  border-radius: 8px; }

.news-article__content .team-player p {
  margin-bottom: 0.75rem; }

.news-article__content .badge {
  border-radius: 2px; }

.news-article__share {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding-top: 24px;
  margin-top: 48px;
  border-top: 1px solid #e1e3e4; }

.news-article__share > span {
  color: #555e74;
  font-size: 0.86rem;
  font-weight: 800; }

.news-article__share-actions {
  display: flex;
  gap: 0.75rem; }

.news-article__share-actions a,
.news-article__share-actions button {
  display: inline-flex;
  position: relative;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  color: #5e3f3a;
  background: #f3f4f5;
  border: 0;
  border-radius: 50%;
  font: inherit;
  cursor: pointer;
  transition: color 160ms ease, background-color 160ms ease; }

.news-article__share-actions a:hover,
.news-article__share-actions button:hover,
.news-article__share-actions button.is-copied {
  color: #cc0000;
  background: #e1e3e4; }

.news-article__copy-feedback {
  position: absolute;
  right: 0;
  bottom: calc(100% + 0.5rem);
  width: max-content;
  padding: 0.35rem 0.55rem;
  color: #ffffff;
  background: #212a3d;
  border-radius: 2px;
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.3;
  opacity: 0;
  pointer-events: none;
  transform: translateY(0.25rem);
  transition: opacity 160ms ease, transform 160ms ease; }

.news-article__copy-feedback:not(:empty) {
  opacity: 1;
  transform: translateY(0); }

.news-article__pager {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  max-width: 760px;
  margin: 48px auto 0; }

.news-article__pager-link {
  display: grid;
  align-content: center;
  min-height: 116px;
  padding: 24px;
  background: #ffffff;
  border: 1px solid #e1e3e4;
  border-radius: 8px;
  transition: border-color 160ms ease, box-shadow 160ms ease; }

.news-article__pager-link:hover {
  border-color: #cc0000;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05); }

.news-article__pager-link span {
  margin-bottom: 0.5rem;
  color: #555e74;
  font-size: 0.78rem;
  font-weight: 700; }

.news-article__pager-link strong {
  color: #191c1d;
  font-size: 1rem;
  line-height: 1.45; }

.news-article__pager-link--next {
  text-align: right; }

@media (max-width: 767.98px) {
  .news-article {
    width: calc(100% - 32px);
    padding-top: 40px;
    padding-bottom: 80px; }

  .news-article__back {
    margin-bottom: 24px; }

  .news-article__card {
    padding: 24px; }

  .news-article__header,
  .news-article__hero {
    margin-bottom: 24px; }

  .news-article__header h1 {
    font-size: 2rem; }

  .news-article__hero {
    aspect-ratio: 16 / 9; }

  .news-article__content {
    font-size: 1rem; }

  .news-article__share {
    align-items: flex-start;
    flex-direction: column; }

  .news-article__pager {
    grid-template-columns: 1fr; }

  .news-article__pager-link--next {
    text-align: left; } }
.speakers-page {
  width: calc(100% - 48px);
  max-width: 1200px;
  margin-inline: auto;
  padding: clamp(56px, 8vw, 96px) 0 0;
  background: #f8f9fa; }

.speakers-section__inner {
  width: calc(100% - 48px);
  max-width: 1200px;
  margin-inline: auto; }

.speakers-hero {
  display: grid;
  gap: 12px;
  margin-bottom: 48px; }

.speakers-hero h1 {
  color: #191c1d;
  font-family: "Source Code Pro", "Noto Sans JP", monospace;
  letter-spacing: 0;
  margin: 0;
  font-size: clamp(2.25rem, 4.6vw, 3.35rem);
  font-weight: 700;
  line-height: 1.14; }

.speakers-hero p {
  margin: 0;
  color: #5e3f3a;
  font-size: 1.125rem;
  line-height: 1.75; }

.speakers-section {
  padding-bottom: clamp(56px, 7vw, 88px); }

.speakers-section__heading {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  margin-bottom: 48px; }

.speakers-section__heading i {
  color: #cc0000;
  font-size: 1rem; }

.speakers-section__heading h2 {
  color: #191c1d;
  font-family: "Source Code Pro", "Noto Sans JP", monospace;
  letter-spacing: 0;
  margin: 0;
  font-size: clamp(1.55rem, 3vw, 2.05rem);
  font-weight: 700;
  line-height: 1.28;
  display: flex;
  align-items: center;
  flex: 1;
  gap: 0.8rem; }

.speakers-section__heading h2::after {
  content: "";
  flex: 1;
  height: 1px;
  background: #e1e3e4; }

.speakers-keynote-list {
  display: grid;
  gap: 24px; }

.speakers-keynote-card,
.speakers-session-card {
  position: relative;
  background: #ffffff;
  border: 1px solid #e1e3e4;
  border-radius: 8px;
  transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease; }

.speakers-keynote-card:hover,
.speakers-session-card:hover {
  border-color: #e8bdb6;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
  transform: translateY(-2px); }

.speakers-card-link {
  position: absolute;
  inset: 0;
  z-index: 2;
  text-indent: -9999px; }

.speakers-card-link:focus-visible {
  outline: 3px solid #cc0000;
  outline-offset: -3px; }

.speakers-keynote-card {
  display: grid;
  grid-template-columns: minmax(260px, 360px) minmax(0, 1fr);
  align-items: stretch;
  overflow: hidden; }

.speakers-keynote-card__image {
  position: relative;
  z-index: 1;
  overflow: hidden;
  aspect-ratio: 4 / 5;
  background: #edeeef; }

.speakers-keynote-card__image img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 5;
  object-fit: cover; }

.speakers-keynote-card__body {
  display: grid;
  align-content: start;
  gap: 12px;
  padding: clamp(24px, 3.2vw, 36px); }

.speakers-keynote-card__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px; }

.speakers-keynote-card__meta span {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0.4rem 0.8rem;
  color: #cc0000;
  background: #ffdad6;
  border-radius: 999px;
  font-size: 0.82rem;
  font-weight: 800; }

.speakers-keynote-card__meta time,
.speakers-session-card__time {
  color: #555e74;
  font-size: 0.82rem;
  font-weight: 800; }

.speakers-keynote-card h3 {
  color: #191c1d;
  font-family: "Source Code Pro", "Noto Sans JP", monospace;
  letter-spacing: 0;
  margin: 0;
  font-size: clamp(1.55rem, 3vw, 2.05rem);
  font-weight: 700;
  line-height: 1.28;
  font-size: clamp(1.55rem, 2.2vw, 2rem); }

.speakers-affiliation {
  margin: 0;
  color: #23516c;
  font-weight: 800;
  line-height: 1.45; }

.speakers-session-title,
.speakers-abstract {
  display: grid;
  gap: 0.45rem; }

.speakers-session-title span,
.speakers-abstract span {
  color: #cc0000;
  font-size: 0.76rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase; }

.speakers-session-title strong {
  color: #191c1d;
  font-family: "Source Code Pro", "Noto Sans JP", monospace;
  letter-spacing: 0;
  margin: 0;
  font-size: clamp(1.2rem, 2vw, 1.55rem);
  font-weight: 700;
  line-height: 1.35;
  font-size: 1.28rem; }

.speakers-abstract p,
.speakers-session-card__abstract {
  color: #5e3f3a;
  font-size: 1rem;
  line-height: 1.75;
  margin: 0; }

.speakers-social {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  padding-top: 12px;
  border-top: 1px solid #e1e3e4; }

.speakers-social a {
  position: relative;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  color: #555e74;
  border-radius: 50%;
  text-decoration: none; }

.speakers-social a:hover {
  color: #cc0000;
  background: #f3f4f5;
  text-decoration: none; }

.speakers-sessions {
  width: calc(100% + 48px);
  max-width: none;
  margin-inline: -24px;
  padding: clamp(56px, 7vw, 88px) 0;
  background: #f3f4f5;
  border-top: 1px solid #e1e3e4; }

.speakers-sessions .speakers-section__heading i {
  color: #23516c; }

.speakers-session-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px; }

.speakers-session-card {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  overflow: hidden; }

.speakers-session-card__image {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  background: #edeeef; }

.speakers-session-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 12px;
  padding: 24px; }

.speakers-session-card h3 {
  color: #191c1d;
  font-family: "Source Code Pro", "Noto Sans JP", monospace;
  letter-spacing: 0;
  margin: 0;
  font-size: clamp(1.2rem, 2vw, 1.55rem);
  font-weight: 700;
  line-height: 1.35;
  font-size: 1.45rem; }

.speakers-session-card h4 {
  color: #191c1d;
  font-size: 1.05rem;
  font-weight: 900;
  line-height: 1.45; }

.speakers-session-card__abstract {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  font-size: 0.92rem; }

.speakers-session-card__footer {
  display: flex;
  align-items: end;
  justify-content: end;
  gap: 12px;
  margin-top: auto;
  padding-top: 12px; }

@media (max-width: 991.98px) {
  .speakers-keynote-card {
    grid-template-columns: 1fr; }

  .speakers-keynote-card__image {
    aspect-ratio: 1 / 1; }

  .speakers-keynote-card__image img {
    aspect-ratio: 1 / 1; }

  .speakers-session-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767.98px) {
  .speakers-session-grid {
    grid-template-columns: 1fr; }

  .speakers-sessions {
    width: calc(100% + 32px);
    margin-inline: -16px;
    padding-inline: 16px; }

  .speakers-section__inner {
    width: 100%; }

  .speakers-keynote-card {
    background: #ffffff;
    border: 1px solid #e1e3e4;
    border-radius: 8px;
    overflow: hidden; }

  .speakers-keynote-card__image {
    width: 100%; } }
.sponsors-page {
  width: calc(100% - 48px);
  max-width: 1200px;
  margin-inline: auto;
  padding: clamp(56px, 8vw, 96px) 0 128px; }

.sponsors-hero {
  display: grid;
  gap: 12px;
  margin-bottom: 48px; }

.sponsors-hero .rwc-label {
  margin: 0; }

.sponsors-hero h1 {
  color: #191c1d;
  font-family: "Source Code Pro", "Noto Sans JP", monospace;
  letter-spacing: 0;
  margin: 0;
  font-size: clamp(2.25rem, 4.6vw, 3.35rem);
  font-weight: 700;
  line-height: 1.14; }

.sponsors-hero p:last-child {
  margin: 0;
  color: #5e3f3a;
  font-size: 1.125rem;
  line-height: 1.75; }

.sponsors-notice,
.sponsors-intro {
  color: #5e3f3a;
  font-size: 1rem;
  line-height: 1.75;
  max-width: 880px;
  margin-bottom: 48px; }

.sponsors-notice {
  display: grid;
  gap: 0.45rem;
  padding: 24px;
  background: #d9e2fc;
  border: 1px solid rgba(35, 81, 108, 0.16);
  border-radius: 8px; }

.sponsors-notice p,
.sponsors-intro p {
  margin: 0; }

.sponsors-notice a,
.sponsors-intro a {
  color: #cc0000;
  font-weight: 800; }

.sponsors-intro {
  display: grid;
  gap: 12px; }

.sponsors-page h2 {
  color: #191c1d;
  font-family: "Source Code Pro", "Noto Sans JP", monospace;
  letter-spacing: 0;
  margin: 0;
  font-size: clamp(1.55rem, 3vw, 2.05rem);
  font-weight: 700;
  line-height: 1.28;
  display: flex;
  align-items: center;
  gap: 0.8rem;
  margin: 72px 0 24px; }

.sponsors-page h2::after {
  content: "";
  flex: 1;
  height: 1px;
  background: #e1e3e4; }

.sponsor-container {
  display: grid;
  gap: 24px;
  margin-bottom: 48px; }

.sponsor-container > a[id^="sponsor-"] {
  display: block;
  margin-top: -96px;
  padding-top: 96px; }

.company {
  display: grid;
  min-width: 0;
  gap: 0.85rem; }

.company .panel {
  margin: 0;
  background: transparent;
  border: 0;
  box-shadow: none; }

.company .panel a {
  display: block;
  color: inherit; }

.company .panel-body {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 16 / 9;
  padding: clamp(1rem, 2.2vw, 1.5rem);
  background: #ffffff;
  border: 1px solid #e1e3e4;
  border-radius: 8px;
  transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease; }

.company .panel-body:hover {
  border-color: #cc0000;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
  transform: translateY(-2px); }

.company img {
  width: 100%;
  max-width: 82%;
  max-height: 78%;
  margin: 0 auto;
  object-fit: contain; }

.company-name {
  min-height: 2.7em;
  margin: 0;
  color: #191c1d;
  font-size: 0.95rem;
  font-weight: 800;
  line-height: 1.45;
  text-align: center; }

.company-name a {
  color: inherit; }

.company-name a:hover {
  color: #cc0000; }

.company-name span {
  display: inline-block;
  white-space: nowrap; }

.company-description {
  margin: -0.1rem 0 0;
  color: #5e3f3a;
  font-size: 0.92rem;
  font-weight: 600;
  line-height: 1.75; }

.ruby-sponsors {
  grid-template-columns: repeat(2, minmax(0, 1fr)); }

.ruby-sponsors .company .panel-body {
  aspect-ratio: 2.25 / 1; }

.ruby-sponsors .company-name {
  font-size: 1.05rem; }

.ruby-sponsors .company-description {
  max-width: 34rem;
  margin-right: auto;
  margin-left: auto;
  text-align: left; }

.platinum-sponsors {
  grid-template-columns: repeat(4, minmax(0, 1fr)); }

.platinum-sponsors .company .panel-body {
  aspect-ratio: 1.75 / 1; }

.gold-sponsors {
  grid-template-columns: repeat(5, minmax(0, 1fr)); }

.gold-sponsors .company .panel-body {
  aspect-ratio: 1.55 / 1; }

.silver-sponsors {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 1.25rem; }

.silver-sponsors .company .panel-body {
  aspect-ratio: 1.35 / 1;
  padding: 0.9rem; }

.silver-sponsors .company-name {
  font-size: 0.84rem;
  font-weight: 700; }

@media (max-width: 1199.98px) {
  .platinum-sponsors {
    grid-template-columns: repeat(3, minmax(0, 1fr)); }

  .gold-sponsors {
    grid-template-columns: repeat(4, minmax(0, 1fr)); }

  .silver-sponsors {
    grid-template-columns: repeat(5, minmax(0, 1fr)); } }
@media (max-width: 991.98px) {
  .ruby-sponsors {
    grid-template-columns: 1fr; }

  .platinum-sponsors {
    grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .gold-sponsors {
    grid-template-columns: repeat(3, minmax(0, 1fr)); }

  .silver-sponsors {
    grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 767.98px) {
  .sponsors-page {
    width: calc(100% - 32px);
    padding-top: 48px;
    padding-bottom: 80px; }

  .sponsors-hero,
  .sponsors-notice,
  .sponsors-intro {
    margin-bottom: 24px; }

  .sponsors-page h2 {
    margin-top: 48px;
    font-size: 1.8rem; }

  .ruby-sponsors,
  .platinum-sponsors,
  .gold-sponsors,
  .silver-sponsors {
    grid-template-columns: 1fr;
    gap: 1rem; }

  .company .panel-body,
  .ruby-sponsors .company .panel-body,
  .platinum-sponsors .company .panel-body,
  .gold-sponsors .company .panel-body,
  .silver-sponsors .company .panel-body {
    aspect-ratio: 2 / 1; }

  .platinum-sponsors .company {
    width: 92%;
    margin: 0 auto; }

  .gold-sponsors .company {
    width: 84%;
    margin: 0 auto; }

  .silver-sponsors .company {
    width: 76%;
    margin: 0 auto; }

  .company-name {
    min-height: auto;
    font-size: 0.86rem; }

  .silver-sponsors .company-name {
    font-size: 0.78rem; } }
.sponsorship-page {
  background: #f8f9fa; }

.sponsorship-hero,
.sponsorship-section,
.sponsorship-cta {
  width: calc(100% - 48px);
  max-width: 1200px;
  margin: 0 auto; }

.sponsorship-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 0.92fr);
  align-items: center;
  gap: clamp(32px, 6vw, 72px);
  padding: 0 0 clamp(56px, 8vw, 96px); }

.sponsorship-hero__copy {
  display: grid;
  gap: 24px; }

.sponsorship-hero__copy .rwc-label {
  margin: 0; }

.sponsorship-hero h1 {
  color: #191c1d;
  font-family: "Source Code Pro", "Noto Sans JP", monospace;
  letter-spacing: 0;
  margin: 0;
  font-size: clamp(2.25rem, 4.6vw, 3.35rem);
  font-weight: 700;
  line-height: 1.14;
  font-size: clamp(2.35rem, 4.8vw, 3.4rem); }

.sponsorship-hero h1 span {
  color: #cc0000; }

.sponsorship-hero__copy > p:not(.rwc-label) {
  margin: 0;
  color: #5e3f3a;
  font-size: 1.125rem;
  line-height: 1.75; }

.sponsorship-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem; }

.sponsorship-hero__visual {
  position: relative;
  overflow: hidden;
  min-height: 390px;
  margin: 0;
  background: #2e3132;
  border: 1px solid #e1e3e4;
  border-radius: 8px; }

.sponsorship-hero__visual img {
  width: 100%;
  height: 100%;
  min-height: 390px;
  object-fit: cover;
  opacity: 0.78; }

.sponsorship-hero__visual::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 45%, rgba(0, 0, 0, 0.58)); }

.sponsorship-hero__visual figcaption {
  position: absolute;
  right: 24px;
  bottom: 24px;
  left: 24px;
  z-index: 1;
  display: grid;
  gap: 0.25rem;
  color: #f0f1f2; }

.sponsorship-hero__visual figcaption span {
  font-size: 0.78rem;
  font-weight: 800; }

.sponsorship-hero__visual figcaption strong {
  font-size: 1rem;
  line-height: 1.35; }

.sponsorship-status {
  color: #5e3f3a;
  font-size: 1rem;
  line-height: 1.75;
  display: grid;
  gap: 0.4rem;
  width: calc(100% - 48px);
  max-width: 1200px;
  margin: 0 auto 48px;
  padding: 24px;
  background: #ffdad6;
  border: 1px solid rgba(204, 0, 0, 0.18);
  border-radius: 8px; }

.sponsorship-status p {
  margin: 0; }

.sponsorship-status strong {
  color: #9e0000; }

.sponsorship-section {
  padding: clamp(56px, 7vw, 88px) 0; }

.sponsorship-section--surface {
  width: 100%;
  max-width: none;
  padding-right: max(24px, calc((100vw - 1200px) / 2));
  padding-left: max(24px, calc((100vw - 1200px) / 2));
  background: #f3f4f5; }

.sponsorship-section__header {
  display: grid;
  gap: 0.4rem;
  margin-bottom: 48px; }

.sponsorship-section__header--center {
  justify-items: center;
  text-align: center; }

.sponsorship-section__header h2,
.sponsorship-cta h2 {
  color: #191c1d;
  font-family: "Source Code Pro", "Noto Sans JP", monospace;
  letter-spacing: 0;
  margin: 0;
  font-size: clamp(1.55rem, 3vw, 2.05rem);
  font-weight: 700;
  line-height: 1.28; }

.sponsorship-section__header p,
.sponsorship-cta p {
  color: #5e3f3a;
  font-size: 1rem;
  line-height: 1.75;
  margin: 0; }

.sponsorship-benefits {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px; }

.sponsorship-benefits article,
.sponsorship-tier,
.sponsorship-detail-notes article,
.sponsorship-apply aside {
  background: #ffffff;
  border: 1px solid #e1e3e4;
  border-radius: 8px; }

.sponsorship-benefits article {
  display: grid;
  gap: 12px;
  padding: 24px; }

.sponsorship-benefits span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  color: #cc0000;
  background: #ffdad6;
  border-radius: 4px;
  font-size: 0.72rem;
  font-weight: 800; }

.sponsorship-benefits article:nth-child(2) span {
  color: #23516c;
  background: #c7e7ff; }

.sponsorship-benefits h3,
.sponsorship-tier h3,
.sponsorship-detail-notes h3,
.sponsorship-apply h3,
.sponsorship-schedule h3 {
  color: #191c1d;
  font-family: "Source Code Pro", "Noto Sans JP", monospace;
  letter-spacing: 0;
  margin: 0;
  font-size: clamp(1.2rem, 2vw, 1.55rem);
  font-weight: 700;
  line-height: 1.35;
  font-size: 1.35rem; }

.sponsorship-benefits p,
.sponsorship-tier li,
.sponsorship-detail-notes li,
.sponsorship-apply p,
.sponsorship-schedule p {
  color: #5e3f3a;
  font-size: 1rem;
  line-height: 1.75;
  margin: 0; }

.sponsorship-note {
  color: #5e3f3a;
  font-size: 1rem;
  line-height: 1.75;
  max-width: 880px;
  margin: -24px 0 48px; }

.sponsorship-tiers {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 24px; }

.sponsorship-tier {
  grid-column: span 4;
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding: 24px;
  transition: border-color 160ms ease, box-shadow 160ms ease; }

.sponsorship-tier:hover {
  border-color: #cc0000;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05); }

.sponsorship-tier--featured {
  position: relative;
  grid-column: span 8;
  overflow: hidden;
  border-top: 4px solid #cc0000; }

.sponsorship-tier--featured::after {
  content: "";
  position: absolute;
  top: -72px;
  right: -56px;
  width: 180px;
  height: 180px;
  background: linear-gradient(135deg, rgba(204, 0, 0, 0.18), rgba(35, 81, 108, 0.08));
  transform: rotate(45deg); }

.sponsorship-tier > * {
  position: relative;
  z-index: 1; }

.sponsorship-tier__head {
  display: flex;
  justify-content: space-between;
  gap: 24px; }

.sponsorship-tier__head p {
  display: grid;
  justify-items: end;
  margin: 0;
  color: #191c1d; }

.sponsorship-tier__head strong {
  font-family: "Source Code Pro", "Noto Sans JP", monospace;
  font-size: 1.35rem;
  line-height: 1.2; }

.sponsorship-tier__head span {
  color: #555e74;
  font-size: 0.78rem;
  font-weight: 700; }

.sponsorship-tier__badge {
  display: inline-flex;
  width: fit-content;
  min-height: 24px;
  padding: 0.35rem 0.65rem;
  margin-bottom: 0.45rem;
  color: #cc0000 !important;
  background: #ffdad6;
  border-radius: 2px;
  font-size: 0.76rem !important;
  font-weight: 800 !important;
  line-height: 1; }

.sponsorship-tier__columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px; }

.sponsorship-tier h4 {
  padding-bottom: 0.6rem;
  margin: 0 0 0.75rem;
  border-bottom: 1px solid #e1e3e4;
  font-size: 0.9rem;
  font-weight: 800; }

.sponsorship-tier ul {
  display: grid;
  gap: 0.75rem;
  padding: 0;
  margin: 0;
  list-style: none; }

.sponsorship-tier li {
  position: relative;
  padding-left: 1.35rem; }

.sponsorship-tier li::before {
  content: "";
  position: absolute;
  top: 0.62em;
  left: 0;
  width: 0.45rem;
  height: 0.45rem;
  border-right: 2px solid #23516c;
  border-bottom: 2px solid #23516c;
  transform: rotate(45deg); }

.sponsorship-tier .button, .sponsorship-tier .btn-main-md,
.sponsorship-tier .btn-white-md,
.sponsorship-tier .btn-transparent-md-dark {
  justify-content: center;
  margin-top: auto; }

.sponsorship-table-wrap {
  overflow-x: auto;
  background: #ffffff;
  border: 1px solid #e1e3e4;
  border-radius: 8px; }

.sponsorship-table {
  width: 100%;
  min-width: 960px;
  border-collapse: collapse; }

.sponsorship-table th,
.sponsorship-table td {
  padding: 1rem;
  border-bottom: 1px solid #e1e3e4;
  border-left: 1px solid #e1e3e4;
  vertical-align: top; }

.sponsorship-table th:first-child,
.sponsorship-table td:first-child {
  border-left: 0; }

.sponsorship-table td:first-child {
  width: 34%;
  color: #191c1d;
  font-weight: 700; }

.sponsorship-table th {
  color: #191c1d;
  background: #edeeef;
  font-weight: 800; }

.sponsorship-table td:not(:first-child),
.sponsorship-table th:not(:first-child) {
  text-align: center; }

.sponsorship-table td:not(:first-child) {
  color: #191c1d;
  font-size: 0.92rem;
  font-weight: 700; }

.sponsorship-table td:not(:first-child) > span:not(.sponsorship-check) {
  display: block;
  margin-top: 0.25rem; }

.sponsorship-table a {
  color: #cc0000;
  font-weight: 800;
  text-decoration: none; }

.sponsorship-table__tag {
  display: inline-flex;
  width: fit-content;
  margin: 0.4rem 0.45rem 0 0;
  padding: 0.25rem 0.55rem;
  color: #cc0000;
  background: #ffdad6;
  border-radius: 2px;
  font-size: 0.78rem;
  font-weight: 800;
  line-height: 1.2; }

.sponsorship-check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.25rem;
  height: 1.25rem;
  margin: 0 auto;
  background: #23516c;
  border-radius: 50%; }

.sponsorship-check::before {
  content: "";
  width: 0.38rem;
  height: 0.68rem;
  border-right: 2px solid #ffffff;
  border-bottom: 2px solid #ffffff;
  transform: rotate(45deg) translate(-1px, -1px); }

.sponsorship-muted {
  color: #555e74 !important;
  font-weight: 600 !important; }

.sponsorship-detail-notes {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  margin-top: 24px; }

.sponsorship-detail-notes article,
.sponsorship-apply aside {
  padding: 24px; }

.sponsorship-detail-notes ul {
  display: grid;
  gap: 0.6rem;
  padding-left: 1.2rem;
  margin: 12px 0 0; }

.sponsorship-apply {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 24px; }

.sponsorship-apply ol {
  display: grid;
  gap: 24px;
  padding: 0;
  margin: 0;
  list-style: none;
  counter-reset: apply-step; }

.sponsorship-apply li {
  position: relative;
  padding-left: 4rem;
  counter-increment: apply-step; }

.sponsorship-apply li::before {
  content: counter(apply-step,decimal-leading-zero);
  position: absolute;
  top: 0;
  left: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.8rem;
  height: 2.8rem;
  color: #ffffff;
  background: #cc0000;
  border-radius: 50%;
  font-weight: 800; }

.sponsorship-apply strong {
  display: block;
  margin-bottom: 0.4rem;
  color: #191c1d;
  font-size: 1.1rem; }

.sponsorship-apply__downloads {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 12px; }

.sponsorship-schedule {
  position: relative;
  display: grid;
  gap: 48px;
  max-width: 800px;
  margin: 0 auto;
  padding-left: 2rem; }

.sponsorship-schedule::before {
  content: "";
  position: absolute;
  top: 0.5rem;
  bottom: 0.5rem;
  left: 0.45rem;
  width: 2px;
  background: rgba(35, 81, 108, 0.32); }

.sponsorship-schedule article {
  position: relative; }

.sponsorship-schedule article::before {
  content: "";
  position: absolute;
  top: 0.35rem;
  left: -2rem;
  width: 0.9rem;
  height: 0.9rem;
  background: #23516c;
  border: 3px solid #f3f4f5;
  border-radius: 50%; }

.sponsorship-schedule time {
  color: #23516c;
  font-size: 0.82rem;
  font-weight: 800; }

.sponsorship-cta {
  display: grid;
  justify-items: center;
  gap: 24px;
  width: 100%;
  max-width: none;
  padding: clamp(56px, 7vw, 88px) 24px;
  color: #ffffff;
  background: #23516c;
  text-align: center; }

.sponsorship-cta h2,
.sponsorship-cta p {
  color: #ffffff; }

.sponsorship-cta p {
  max-width: 720px;
  opacity: 0.92; }

@media (max-width: 991.98px) {
  .sponsorship-hero,
  .sponsorship-apply {
    grid-template-columns: 1fr; }

  .sponsorship-hero__visual {
    min-height: 300px; }

  .sponsorship-hero__visual img {
    min-height: 300px; }

  .sponsorship-benefits {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }

  .sponsorship-tier,
  .sponsorship-tier--featured {
    grid-column: span 12; }

  .sponsorship-detail-notes {
    grid-template-columns: 1fr; } }
@media (max-width: 767.98px) {
  .sponsorship-hero,
  .sponsorship-section,
  .sponsorship-status {
    width: calc(100% - 32px); }

  .sponsorship-section--surface {
    width: 100%;
    padding-right: 16px;
    padding-left: 16px; }

  .sponsorship-hero__actions,
  .sponsorship-tier__head,
  .sponsorship-tier__columns {
    grid-template-columns: 1fr;
    flex-direction: column; }

  .sponsorship-benefits {
    grid-template-columns: 1fr; }

  .sponsorship-hero__actions .button, .sponsorship-hero__actions .btn-main-md,
  .sponsorship-hero__actions .btn-white-md,
  .sponsorship-hero__actions .btn-transparent-md-dark,
  .sponsorship-tier .button,
  .sponsorship-tier .btn-main-md,
  .sponsorship-tier .btn-white-md,
  .sponsorship-tier .btn-transparent-md-dark {
    width: 100%; }

  .sponsorship-tier__head p {
    justify-items: start; }

  .sponsorship-apply li {
    padding-left: 0;
    padding-top: 3.5rem; } }
.site-footer {
  color: #191c1d;
  background: #f3f4f5;
  border-top: 1px solid #e1e3e4; }

.site-footer__container {
  width: calc(100% - 48px);
  max-width: 1200px;
  margin: 0 auto; }

.site-footer__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  padding: 64px 0 48px; }

.site-footer__brand {
  display: inline-flex;
  align-items: center;
  gap: 0.9rem;
  color: #191c1d;
  font-family: "Source Code Pro", "Noto Sans JP", monospace;
  font-size: 1.35rem;
  font-weight: 700;
  line-height: 1.2; }

.site-footer__brand img {
  width: 42px;
  height: 46px; }

.site-footer__social {
  display: flex;
  gap: 0.75rem; }

.site-footer__social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  color: #5e3f3a;
  background: #e1e3e4;
  border-radius: 999px;
  transition: color 160ms ease, background-color 160ms ease; }

.site-footer__social a:hover {
  color: #cc0000;
  background: #ffffff; }

.site-footer__social svg {
  width: 16px;
  height: 16px;
  fill: currentColor; }

.site-footer__links {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(32px, 6vw, 72px);
  padding-bottom: 56px; }

.site-footer__links h2,
.site-footer__local h2 {
  margin: 0 0 1.25rem;
  font-family: "Source Code Pro", "Noto Sans JP", monospace;
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1.35; }

.site-footer__links ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem 1rem;
  padding: 0;
  margin: 0;
  list-style: none; }

.site-footer__links a {
  color: #5e3f3a;
  font-size: 0.92rem;
  font-weight: 600; }

.site-footer__links a:hover {
  color: #cc0000; }

.site-footer__history {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }

.site-footer__partners {
  display: grid;
  grid-template-columns: repeat(auto-fit, calc((100% - 48px) / 3));
  justify-content: center;
  gap: 24px;
  padding-bottom: 64px; }

.site-footer__partners a,
.site-footer__local-links a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 112px;
  padding: 1rem;
  background: #ffffff;
  border: 1px solid #e1e3e4;
  border-radius: 8px;
  transition: border-color 160ms ease, box-shadow 160ms ease; }

.site-footer__partners a:hover,
.site-footer__local-links a:hover {
  border-color: #cc0000;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05); }

.site-footer__partners img,
.site-footer__local-links img {
  max-height: 72px;
  object-fit: contain; }

.site-footer__local {
  padding: 48px 0;
  text-align: center;
  background: #edeeef;
  border-top: 1px solid #e1e3e4;
  border-bottom: 1px solid #e1e3e4; }

.site-footer__local h2 {
  margin-bottom: 24px;
  letter-spacing: 0.08em;
  text-transform: uppercase; }

.site-footer__local-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 24px; }

.site-footer__local-links a {
  width: 280px;
  min-height: 100px; }

.site-footer__bottom {
  display: grid;
  gap: 0.25rem;
  justify-items: center;
  padding: 28px 24px;
  color: #f0f1f2;
  background: #2e3132;
  text-align: center; }

.site-footer__bottom p {
  margin: 0;
  font-size: 0.86rem; }

.site-footer__bottom a {
  color: #f0f1f2;
  font-weight: 800;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px; }

@media (max-width: 767.98px) {
  .site-footer__container {
    width: calc(100% - 32px); }

  .site-footer__top,
  .site-footer__links {
    grid-template-columns: 1fr;
    flex-direction: column; }

  .site-footer__links ul {
    grid-template-columns: 1fr; }

  .site-footer__history {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }

  .site-footer__partners {
    grid-template-columns: 1fr; }

  .site-footer__partners a {
    min-height: 96px; } }
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0; }

.body-wrapper {
  overflow-x: hidden; }

.rwc-prose [id],
.sponsorship-detail-notes article {
  scroll-margin-top: var(--rwc-anchor-offset); }

.bg-gray {
  background: #f3f4f5; }

.section-title {
  max-width: 780px;
  margin: 0 auto 48px;
  text-align: center; }

.section-title h2 {
  margin: 0 0 12px;
  font-size: 2rem;
  font-weight: 700; }

.section-title .description,
.section-title p {
  color: #555e74; }
