:root {
  --lightGreen: #C1FF02;
  --darkBlue: #415d59;
  --lightBlue: #b8c39a;
  --darkGrey: #0b0b0b;
  --mediumGrey: #242424;
  --lightGrey: #373737;
  --lightGrey2: #a9a9a9;
  --darkGrey2: hsl(229, 100%, 15%);
  --greenBlue: #61c0e5;
  --greenBlue2: #0093bb;
  --oliveGreen: #4FA4B5;
  --breakLine: #777777;
  --breakPoint: #C1FF02;
  --black: #0b0b0b;
  --white: #e2e2e2;
  --linkButton: linear-gradient(90deg, var(--darkGrey), var(--lightGreen));
  --linkButtonColor: #C1FF02;
  --linkButtonBaseColor: #002e4e;
  --linkButtonTextColor: #C1FF02;
  --linkButtonHoverTextColor: #373A4E;
  --buttonText: #efffc0;
  --button: #455c00;
  --box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
  --japanese: "Noto Sans JP";
  --english: "Roboto Condensed";
}

* {
  margin: 0;
  box-sizing: border-box;
  text-decoration: none;
  scroll-behavior: smooth;
}

a { color: black; }

body {
  height: auto;
  color: var(--white);
  background: var(--black);
  font-family: var(--japanese), var(--english);
  font-weight: 400;
}

body > * {
  padding-left: .5em;
  padding-right: .5em;
}

button:hover { cursor: pointer; }

#speakers-list .speakers__person {
  margin-bottom: 4em;
}

/* Navbar */
.navbar__wrapper {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100vw;
  padding-top: 1em;
  padding-bottom: 1em;
  height: 5em;
  margin-bottom: 5em;
  position: fixed;
  z-index: 8999;
  backdrop-filter: blur(1em);
  -webkit-backdrop-filter: blur(1em);
}

.navbar__logolink { display: none; }
.navbar__logo { width: 100%; height: auto; }

.navbar__links {
  display: flex;
  align-items: center;
  gap: 3vw;
  font-size: 1em;
  letter-spacing: .15em;
  justify-content: center;
}

.navbar__links > a {
  color: white;
  text-wrap: nowrap;
  text-shadow: 0 2px 3px rgba(0, 0, 0, 0.8);
}

a.navbar__button {
  display: flex;
  text-wrap: nowrap;
  justify-content: space-between;
  letter-spacing: .1em;
  padding: .5em 1em;
  background-color: var(--linkButtonBaseColor);
  border: solid 2px var(--linkButtonColor);
  color: var(--linkButtonTextColor);
  border-radius: 3em;
  width: max-content;
  text-transform: uppercase;
  cursor: pointer;
  box-shadow: 0 0 5px var(--linkButtonColor), 0 0 10px var(--linkButtonColor), 0 0 20px var(--linkButtonColor);
  transition: 0.3s ease;
}
a.navbar__button:hover {
  color: var(--linkButtonHoverTextColor);
  background: var(--linkButtonColor);
  box-shadow: none;
}

.navbar__linkButton { display: none; }

.navbar__button > img {
  margin-left: .5em;
  width: 2.5em;
  padding-right: 1em;
}

/* ボタンと注釈のラッパー */
.entry-container {
  display: flex;
  flex-direction: column;
  align-items: center; /* 左右中央寄せ */
  margin: 3em 0 0 0;
}

/* 注釈のスタイル */
.entry-note {
  margin-top: 6px;
  font-size: 13px;
  text-align: center;
  line-height: 1.4;
}
/* Navbar内のボタンはレイアウトを崩さないように調整 */
.navbar__links .entry-container {
  margin: 0;
  display: inline-flex;
}
.navbar__links .entry-note {
  display: none; /* Navbar内は注釈を非表示にする場合 */
}

/* 必要に応じて：Navbar内だけは左寄せにしたい場合などの調整 */
.navbar__links .entry-container {
  align-items: flex-start;
}


/* Frontpage */
.frontpage {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  padding-top: 5em;
  padding-left: 0;
  padding-right: 0;
  background-image: url(assets/bk_A001.webp);
  background-repeat: no-repeat;
  background-size: cover;
}

.frontpage__left {
  display: flex;
  flex-direction: column;
  padding-bottom: 2em;
  width: 100%;
}

.frontpage__header img { display: block; }
.frontpage__image { object-fit: contain; margin-bottom: 1em; }

.frontpage__personImageOne, .frontpage__personImage { width: 8em; }

.frontpage__label {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  padding: 0;
  text-wrap: nowrap;
  align-self: center;
  width: 100%;
  color: #000;
}

.frontpage__label > img { width: 100%; }

.frontpage__line {
  width: 100%;
  padding: 1.5px;
  background: var(--lightGreen);
  box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.4);
  margin: 1em 1em 1em 0;
}

.frontpage__time {
  color: var(--white);
  text-shadow: 0 1px 5px rgba(0, 0, 0, 0.5);
  font-weight: 700;
  display: flex;
  align-items: center;
  align-self: center;
  margin: 0 auto;
  margin-top: 16px;
}

.frontpage__timestamp { font-size: 1.75em; }
.frontpage__kanji { font-size: 1em; margin-left: .5em; margin-right: 1em; }
.frontpage__arrow { margin: .75em; }

.frontpage__right { display: flex; flex-direction: column; padding: 0 2em; }
.frontpage__right div p { color: var(--white); font-size: small; }

.frontpage__person { display: flex; margin-top: 1em; padding-right: 1em; }

.frontpage__personTextLine {
  margin: .25em 1em .25em 0;
  padding: 1.5px;
  background: var(--lightGreen);
}

.frontpage__personText { text-wrap: nowrap; }
.frontpage__personInfo { font-size: .75em; letter-spacing: .125em; }
.frontpage__personName { margin-top: .5em; letter-spacing: .125em; }

.frontpage__personWrapper {
  display: flex;
  flex-direction: column;
  gap: 2em;
  justify-content: left;
}

.frontpage__personOne { margin-bottom: 2em; }
.frontpage__button { align-self: center; margin-bottom: 2em; }

.frontpage__bottom {
  width: 100%;
  background-color: rgba(0, 0, 0, 0.7);
  padding: 3em;
  text-align: center;
  font-size: 1.38em;
  color: var(--white);
}

/* Concept & Conference Text Base */
.concept__text, .conference__text {
  font-size: 1.1em;
  max-width: 50em;
  line-height: 2em;
  letter-spacing: .1em;
  margin-top: 2em;
}

/* 1日開催時のレイアウト調整 */
.is-oneday-mode .timetable__day-column {
  margin-left: auto;
  margin-right: auto;
  max-width: 600px; /* 必要に応じて適宜調整してください */
}

/* ===================================================
   ★ すべての見出し画像（header.svg）共通サイズ設定
   =================================================== */
.concept__header,
.conference-recommend__header,
.keyfeatures__header,
.speakers__header,
.timetable__header,
.outline__header,
.sponsor__header {
  display: block !important;
  width:  auto !important;
  height: 80px !important;
  padding-top: 0 !important;
  margin-top: 3em !important;
  margin-left: auto !important;
  margin-right: auto !important;
  max-width: 80% !important;
}

.conference__text.is-inview {
  margin: 2em auto 0;
}

/* Concept */
.concept {
  display: flex;
  flex-direction: column;
  align-items: center;
  color: #FFF;
  background: #000;
  padding: 6em 5vw;
}

.concept__text p {
  display: block;
  text-align: center;
  opacity: 0.6;
  transform: translateY(25px);
  transition: transform 0.9s cubic-bezier(0.25, 1, 0.5, 1),
              opacity 0.9s cubic-bezier(0.25, 1, 0.5, 1);
}

.concept__text span {
  display: inline-block;
  color: #999999;
  transition: color 0.9s cubic-bezier(0.25, 1, 0.5, 1);
}

/* 画面内に入ったとき（全面一斉に浮き上がり、純白に変化） */
.concept__text.is-inview p {
  opacity: 1;
  transform: translateY(0);
}
.concept__text.is-inview span {
  color: #ffffff;
}

/* スクロールを上に戻したとき（一斉に元の状態へスムーズに戻る） */
.concept__text:not(.is-inview) p {
  opacity: 0.6;
  transform: translateY(25px);
  transition: transform 0.5s ease, opacity 0.5s ease;
}
.concept__text:not(.is-inview) span {
  color: #999999;
  transition: color 0.5s ease;
}

/* Conference（特徴セクション） */
.keyfeatures {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 6em 5vw 0 5vw;
  background: linear-gradient(var(--darkGrey), var(--lightGrey));  
}

.conference__text {
  display: flex;
  text-align: left;
  flex-wrap: wrap;
  gap: 1em;
  padding-bottom: 6em;
  color: #555555;
}

.conference__text div { 
  background: #f4f4f4;
  padding: 30px 20px;
  box-sizing: border-box;
}
.conference__text span { display: inline-block; }
.conference__text div h2 { margin-bottom: 1em; }
.concept h2 {
    margin-bottom: 1.6em;
    text-align: center;
    color: var(--lightGreen);
}

/* ===================================================
   ★【追加】新設：このような方におすすめコーナー
   =================================================== */
.conference-recommend {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 6em 5vw 0 5vw;
  background: #000;
}

.conference-recommend__text {
  max-width: 60em;
  width: 100%;
  margin-top: 2em;
  padding-bottom: 6em;
  text-align: left;
}

.conference-recommend__lead {
  font-size: 1.15em;
  line-height: 1.8;
  letter-spacing: 0.1em;
  text-align: center;
  color: var(--white);
  margin-bottom: 3.5em;
}

.conference-recommend__list {
  list-style: none;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 1.8em;
}

.conference-recommend__item {
  position: relative;
  font-size: 1.05em;
  line-height: 1.7;
  letter-spacing: 0.08em;
  color: #e0e2e2;
  padding-left: 2em;
  display: flex;
  align-items: flex-start;
}

/* 上品な発光ダイヤモンド・ピン */
.conference-recommend__item::before {
  content: "";
  position: absolute;
  left: 0.3em;
  top: 0.45em;
  width: 7px;
  height: 7px;
  background: var(--lightGreen);
  box-shadow: 0 0 8px var(--lightGreen), 0 0 15px var(--lightGreen);
  transform: rotate(45deg);
}

/* PC大画面での美しい2カラム並列レイアウト化 */
@media only screen and (min-width: 1024px) {
  .conference-recommend__list {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 2.5em 6%;
  }
  .conference-recommend__item {
    width: 47%;
  }
}

/* Speakers */
.speakers {
  display: flex;
  flex-direction: column;
  align-items: center;
  color: var(--white);
  padding: 6em 5vw 6em 5vw;
  background: linear-gradient(var(--mediumGrey), var(--lightGrey));
}

.speakers__person {
  display: flex;
  flex-direction: column;
  gap: 1.5em;
  max-width: 85vw;
}

.speakers__image { width: 7.5em; height: 7.5em; }

.speakers__title, .speakers__name {
  font-weight: 700;
  letter-spacing: .1em;
  line-height: 1.5em;
}

.speakers__line {
  padding: 1px;
  background: var(--breakLine);
  width: 20em;
  margin-bottom: 1em;
}

.speakers__info { letter-spacing: .125em; line-height: 1.75em; }

.speakers__text {
  line-height: 1.5em;
  margin-top: 1em;
  letter-spacing: .1em;
  font-size: .875em;
}

/* Timetable */
.timetable {
  display: flex;
  align-items: center;
  flex-direction: column;
  padding-top: 7em;
  padding-bottom: 5em;
  background-image: linear-gradient(var(--lightGrey), var(--black));
  background-size: contain;
  background-position: top center;
  background-repeat: no-repeat;
}

.timetable__titleWrapper { width: fit-content; }

.timetable__timestamp {
  display: flex;
  align-items: center;
  margin: 1em 1em 1em -.2em;
}

.timetable__bubble {
  background: var(--breakPoint);
  padding: .25em;
  border-radius: .25em;
  z-index: 1;
}

.timetable__line {
  padding: .5px;
  margin-right: .5em;
  background: var(--breakLine);
}

.timetable__time {
  width: 4em;
  font-size: 1.25em;
  font-weight: 700;
  line-height: 1.5em;
  letter-spacing: .125em;
}

.timetable__event {
  font-size: 1.125em;
  font-weight: 700;
  letter-spacing: .1125em;
  line-height: 1.4em;
}

.timetable__image { width: 6em; }

.timetable__title {
  font-weight: 700;
  line-height: 1.5em;
  letter-spacing: .1em;
  margin-bottom: 0;
}

.timetable__breakline {
  margin-bottom: 1.25em;
  margin-top: .5em;
  width: 100%;
}

.timetable__info {
  font-size: .75em;
  line-height: 1.25em;
  letter-spacing: .075em;
}

.timetable__name {
  font-size: .875em;
  font-weight: 700;
  line-height: 1.375em;
  letter-spacing: .0875em;
  margin: 1em 0;
}

.timetable__profileButton {
  font-weight: 600;
  line-height: 1.5em;
  font-size: .875em;
  letter-spacing: .13em;
  padding: .5em 1em;
  border: none;
  border-radius: .5em;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.5);
  color: var(--buttonText);
  background: var(--button);
}

.timetable__button { align-self: center; margin: 0; }

/* 対談用のバツ印 */
.timetable__cross {
  display: block;
  position: relative;
  margin: 0 auto;
  width: 30px;
  height: 30px;
}
.timetable__cross::before, .timetable__cross::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1px;
  height: 2em;
  background: var(--darkGrey);
}
.timetable__cross::before { transform: translate(-50%,-50%) rotate(45deg); }
.timetable__cross::after { transform: translate(-50%,-50%) rotate(-45deg); }

/* Outline */
.outline {
  display: flex;
  flex-direction: column;
  align-items: center;
  color: #FFF;
  background-image: url(./assets/bk_A001.webp);
  background-repeat: no-repeat;
  background-size: cover;
  padding: 6em 5vw 5em 5vw;
}

.outline__wrapper { margin: 2em 0 5em 0; width: 100%; max-width: 50em; }
.outline__info { display: flex; flex-direction: column; align-items: start; }

.outline__title {
  font-size: 1.125em;
  font-weight: 700;
  line-height: 1.75em;
  letter-spacing: .175em;
  min-width: 12em;
  margin-bottom: .5em;
}

.outline__text { line-height: 2em; font-size: .875em; letter-spacing: .1em; }

.outline__line {
  padding: .5px;
  margin: 1em 0;
  width: 100%;
  background: white;
}

.outline__button { margin: 5em auto 0; }

/* Sponsor */
.sponsor {
  color:#ffffff;
  background: linear-gradient(0deg, var(--darkGrey), var(--darkGrey));
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 6em 5vw;
}

.sponsor__wrapper {
  background: white;
  border-radius: 2em;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3em;
  padding: 1em;
}

.sponsor__goldSponsors { margin-bottom: 4em; text-align: center; }

.sponsor__silverSponsors {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 1em;
}

.sponsor__gold, .sponsor__silver { font-weight: 700; font-size: 3.75em; }
.sponsor__gold { color: #CBAB00; }
.sponsor__silver { color: #9D9D9D; }

.TProject__logo, .JMS__logo { width: 10em; }
.BroadLeaf__logo { width: 6em; padding-bottom: 1em; }
.Hacobu__logo { width: 15em; }

/* Footer */
.footer {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  background: linear-gradient(var(--lightGrey), var(--darkGrey));
  padding:3em;
}

.footer__logo { height: auto; width: 15em; margin-bottom: 2em; }
.footer__text { display: flex; flex-direction: column; align-items: start; justify-content: end; }
.footer__title, .footer__linkText { font-size: .875em; line-height: 1.625em; letter-spacing: .05em; }
.footer__link { display: flex; flex-direction: column; }
.footer__line { padding: 1px; margin: .5em 0; background: var(--breakLine); }
.footer__linkAdress { line-height: 1.5em; text-decoration: underline; color: var(--lightGrey2); }

/* Popup */
.popup {
  width: 100vw;
  height: 100vh;
  position: fixed;
  z-index: 9999;
  background: var(--black);
  justify-content: center;
  overflow-y: scroll;
}

.popup__wrapper { width: 80%; display: flex; flex-direction: column; margin: 3em auto; }
.popup__cross { position: absolute; top: 2em; right: 2em; }
.popup__close { background: none; border: none; }

.popup__headerWrapper { font-weight: 700; font-size: 1.5em; line-height: 2.125em; letter-spacing: .175em; }
.popup__line { padding: 1px; margin: 1em 0; background-color: var(--breakLine); }
.popup__personWrapper { display: flex; flex-direction: column; align-items: center; margin-bottom: 2em; }

div.popup__speakerWrapper div.popup__personWrapper:last-child, 
div.popup__speakerWrapper div.popup__personWrapper:nth-child(n+3) { display: none; }

.popup__personImage, .popup__personImage_2, .popup__personImage_3 { width: 15em; margin: 2em 0 2em 2em; margin-left: 0; }
.popup__personHeader, .popup__personHeader_2, .popup__personHeader_3 { font-size: 1.25em; line-height: 1.75em; letter-spacing: .125em; }
.popup__personName, .popup__personName_2, .popup__personName_3 { font-size: 1.75em; line-height: 2.5em; letter-spacing: .175em; }
.popup__personText, .popup__personText_2, .popup__personText_3 { font-size: .875em; line-height: 1.5em; letter-spacing: .025em; }

.popup__footerHeader { font-weight: 700; font-size: 1.5em; line-height: 2em; letter-spacing: .2em; margin-top: 2em; }
.popup__footerText { margin-top: 2em; line-height: 1.75em; letter-spacing: .1em; }

.popup__button {
  color: white;
  font-weight: 600;
  font-size: 1.25em;
  line-height: 1.5em;
  letter-spacing: .13em;
  background: var(--button);
  margin: 4em auto 0 auto;
  padding: .25em 3em;
  border-radius: .5em;
  box-shadow: var(--box-shadow);
}

.hidden { display: none; }

/* Media Queries - Mobile / Tablet adjustments */
@media only screen and (max-width: 1024px) {
  .timetable__dialogue { display: flex; justify-content: flex-start; }
  .timetable__cross { display: inline-block; margin: auto 0.6em; }
  .frontpage__left { width: 100%; gap: 0; padding: 0 5vw; margin-bottom: 6em; }
  .navbar__wrapper { height: auto; }
  .navbar__links { font-size: 1em; padding: 0 2.6em; width: 100%; flex-wrap: wrap; }
}

@media only screen and (min-width: 375px) { 
  .sponsor__wrapper { padding: 2.6em; }
  .sponsor__goldLogo, .sponsor__goldSponsors, .sponsor__silverSponsors { width: 100%; gap: 3em; }
  img.sponsor__silverLogo, img.sponsor__goldLogo { display: block; padding: 0; width: 50%; max-width: 300px; height: auto; }
  .BroadLeaf__logo { width: 40vw; }
}

@media only screen and (max-width: 480px) {
  .frontpage__line { width: 65%; }
  span.frontpage__timestamp { font-size: 8vw; }
  .frontpage__wrap { padding-left: 0; padding-right: 0; background-position: 7em 0; }
}

@media only screen and (min-width: 480px) {
  .frontpage__personTwo, .frontpage__personThree { width: 100%; }
  .frontpage__personImageOne { width: 13em; }
  .frontpage__timestamp { white-space: nowrap;  }
  .timetable__wrapper { max-width: 30em; }
}

@media (max-width: 763px) {
  .frontpage__left { padding-top: 4em; }
}

@media only screen and (min-width: 768px) {
  .speakers__person { flex-direction: row; }
  .frontpage__personWrapper { display: flex; flex-wrap: wrap; }
  .frontpage__personTwo, .frontpage__personThree { width: auto; }
  .popup__personWrapper { flex-direction: row; gap: 2em;}
  .sponsor__wrapper { padding: 5em 8em; }
  .sponsor__silverSponsors { gap: 5em; }
  .last__logo { margin-bottom: 0; }
  .conference__text div { 
    width: calc((100% - 40px) / 3);
  border: solid 1px var(--linkButtonColor);
  box-shadow: 0 0 5px var(--linkButtonColor), 0 0 10px var(--linkButtonColor), 0 0 20px var(--linkButtonColor);
  }
}

/* Media Queries - Large Desktop */
@media only screen and (min-width: 1024px) {
  .frontpage__image { align-self: flex-start; margin: 0; width: 100%; max-width: 960px; }
  .frontpage__personWrapper { flex-direction: row; justify-content: space-between; }
  .navbar__logolink { min-width: 7em; max-width: 7em; display: block; margin-right: 2em; }
  .navbar__wrapper { padding-left: 5em; padding-right: 5em; justify-content: space-between; }
  .navbar__button { padding: .75em 1.5em; font-size: 1.25em; }
  .navbar__button > img { margin-left: 1em; width: 3.5em; padding-right: 1.5em; }
  .navbar__linkButton { display: block; }
  .navbar__links { padding: 0; }
  body > * { padding-left: 3em; padding-right: 3em; }
  .frontpage__kanji { font-size: 1.25em; }
  .frontpage__time {  align-self: flex-start; }
  .frontpage__personImageOne { width: 12vw; }
  .frontpage__personImage { width: 14em; }
  .frontpage__left, .frontpage__right {  justify-content: center; }
  .frontpage__right { flex-grow: 1; }
  .frontpage__button { align-self: last baseline; }
  .frontpage__wrap { max-width: 1920px; margin: 0 auto; padding: 0 5em; display: flex; flex-direction: row; flex-grow: 1; gap: 2em; }
  .frontpage__personTwo, .frontpage__personThree { width: 16vw; }
  .frontpage__personTwo img, .frontpage__personThree img { width: 100%; position: relative; }
  .concept, .keyfeatures, .conference-recommend { padding: 8em 5em; }
  .speakers__image { width: 16em; height: 16em; }
  .speakers__person { gap: 3em; width: 100%; max-width: 70em; }
  .speakers__title, .speakers__name { font-size: 1.25em; letter-spacing: .2em; line-height: 2em; }
  .speakers__text { letter-spacing: .1em; font-size: 1em; }
  .timetable__wrapper { max-width: 70em; }
  .timetable__speaker { margin: 1em 2em 2em 2em; gap: 1em; }
  .timetable__image { width: 10em; }
  .timetable__title { font-size: 1.5em; letter-spacing: .15em; color: var(--lightGrey2); font-weight: 400; }
  .timetable__profileButton { font-size: 1.125em; }
  .outline__info { display: flex; flex-direction: row; align-items: center; }
  .outline__title { font-size: 1.25em; line-height: 1.75em; letter-spacing: .175em; margin-bottom: 0; }
  .outline__text { font-size: 1.125em; line-height: 2em; letter-spacing: .2em; }
  .footer {  margin: 0em; padding: 8em ; flex-direction: row; justify-content: space-around; }
  .footer__logo { margin-bottom: 0; }
}

/* 共通レイアウトクラス */
.l-inner, .l-container {
  width: min(95%, 1200px);
  margin-inline: auto;
}
.p-speaker-list, .p-session-detail, .p-event-outline, .p-footer-inner {
  width: min(95%, 1200px);
  margin-inline: auto;
}
section[class*="section-"] { width: 100%; }
img { max-width: 100%; height: auto; vertical-align: bottom; }
.l-header__inner, .l-footer__inner {
  width: min(95%, 1200px);
  margin-inline: auto;
}

/* ===================================================
   ★【共通設定】見出し以外のコンテンツ一括 浮き上がり（初期状態）
   =================================================== */
.concept__text,
.conference__text,
.conference-recommend__text,
#speakers-list,
.timetable__wrapper,
.outline__wrapper {
  opacity: 0;
  transform: translateY(35px);
  transition: transform 1.0s cubic-bezier(0.25, 1, 0.5, 1),
              opacity 1.0s cubic-bezier(0.25, 1, 0.5, 1);
}

/* 画面内に入ったとき */
.concept__text.is-inview,
.conference__text.is-inview,
.conference-recommend__text.is-inview,
#speakers-list.is-inview,
.timetable__wrapper.is-inview,
.outline__wrapper.is-inview {
  opacity: 1;
  transform: translateY(0);
  margin-top: 4em;
}

/* スクロールを上に戻したとき */
.concept__text:not(.is-inview),
.conference__text:not(.is-inview),
.conference-recommend__text:not(.is-inview),
#speakers-list:not(.is-inview),
.timetable__wrapper:not(.is-inview),
.outline__wrapper:not(.is-inview) {
  opacity: 0;
  transform: translateY(35px);
  transition: transform 0.6s ease, opacity 0.6s ease;
}

/* --- 各セクション固有のレイアウトスタイル --- */
.concept__text span {
  display: inline-block;
  color: #999999;
  transition: color 1.0s cubic-bezier(0.25, 1, 0.5, 1);
}
.concept__text.is-inview span {
  color: #ffffff;
}
.concept__text:not(.is-inview) span {
  color: #999999;
  transition: color 0.6s ease;
}

/* ===================================================
   ★【追加】2Days 左右2カラム並列（PC）/ 上下（スマホ）切り替え
   =================================================== */

/* 1. 元のラッパーの左縦線を一旦無効化 */
.timetable__wrapper::after {
  display: none !important;
}

/* 2. スマホ・タブレット表示（基本レイアウト：上下並び） */
.timetable__wrapper {
  display: flex !important;
  flex-direction: column;
  gap: 5em;
  width: 100%;
  max-width: 95vw;
}

/* 日程ごとのカラム枠 */
.timetable__day-column {
  position: relative;
  width: 100%;
}

/* 新設：日程見出しタイトル */
.timetable__day-title {
  font-size: 4.4em;
  font-weight: 700;
  color: #ffffff;
  padding-top: 0.5em;
  letter-spacing: 0.15em;
  text-align: left;
}
.timetable__day-title span {
  font-size: 0.3em;
  font-weight: 400;
  color: var(--lightGrey2);
}

/* 3. PC表示限定：1024px以上で左右2カラム並列化 */
@media only screen and (min-width: 1024px) {
  .timetable__wrapper {
    flex-direction: row !important;
    align-items: flex-start;
    gap: 8vw;
    max-width: 75em !important;
    margin: 0 auto;
  }

  .timetable__day-column {
    flex: 1;
    min-width: 0;
  }
}

/* ===================================================
   ★【追加】タイムテーブル：タイトルを上、写真とプロフィールの横並び化
   =================================================== */
.timetable__speaker {
  display: flex !important;
  flex-direction: column !important;
  gap: 1.2em !important;
  margin: 1em 1em 7em 2em !important;
}

.timetable__breakline {
  margin-bottom: 0.5em !important;
}

.timetable__speakerMeta {
  display: flex;
  align-items: flex-start;
  gap: 1.5em;
  width: 100%;
}

.timetable__speakerInfo {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5em;
  flex: 1;
}

.timetable__name {
  margin: 0.3em 0 !important;
}

.timetable__profileButton {
  margin-top: 0.5em;
}

.timetable__dialogue {
  display: flex !important;
  align-items: center !important;
  gap: 0.5em;
}
.timetable__dialogue .timetable__cross {
  margin: 0 0.2em !important;
}

@media only screen and (min-width: 1024px) {
  .timetable__image {
    width: 7.5em !important;
  }
}

@media only screen and (max-width: 480px) {
  .timetable__speakerMeta {
    gap: 1em;
  }
  .timetable__image {
    width: 4.8em !important;
  }
  .timetable__title {
    font-size: 1.25em !important;
  }
}

/* ===================================================
   ★【修正】タイムテーブル縦線のはみ出しを100%完璧に防ぐ設定（一本化）
   =================================================== */
.timetable__timeline-body {
  position: relative;
  width: 100%;
}

.timetable__timeline-body::after {
  content: "";
  position: absolute;
  top: 1em;
  bottom: 1em;
  border-left: 2px solid var(--breakLine) !important;
  z-index: 0 !important;
}

.timetable__timestamp,
.timetable__speaker {
  position: relative;
  z-index: 1;
}
.timetable__bubble {
  position: relative;
  z-index: 2;
  box-shadow: none !important;
}

/* ===================================================
   ★【追加】タイムテーブルおよびおすすめ内ボタン限定 センター揃え設定
   =================================================== */
.timetable .timetable__button,
.conference-recommend .navbar__button {
  align-self: center !important;
  display: flex !important;     
}

/* ===================================================
   ★ 追加・修正箇所 1：ハンバーガーボタンの基本設定
   =================================================== */
.navbar__wrapper {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100vw;
  padding: 1em 1.5em; /* 左右の余白を調整 */
  height: 5em;
  position: fixed;
  z-index: 8999;
  backdrop-filter: blur(1em);
  -webkit-backdrop-filter: blur(1em);
  background: rgba(11, 11, 11, 0.7);
}

.navbar__logolink {
  display: block;
  min-width: 7em;
  max-width: 7em;
}

/* ハンバーガーボタン本体（3本線） */
.navbar__hamburger {
  display: none; /* デスクトップでは隠す */
  background: none;
  border: none;
  width: 28px;
  height: 22px;
  position: relative;
  cursor: pointer;
  z-index: 9000;
}
.navbar__hamburger span {
  display: block;
  position: absolute;
  width: 100%;
  height: 2px;
  background-color: #fff;
  transition: all 0.3s cubic-bezier(0.25, 1, 0.5, 1);
}
.navbar__hamburger span:nth-child(1) { top: 0; }
.navbar__hamburger span:nth-child(2) { top: 10px; }
.navbar__hamburger span:nth-child(3) { top: 20px; }

/* タップ展開時（3本線から×印へ滑らかに変形） */
.navbar__hamburger.is-active span:nth-child(1) { transform: translateY(10px) rotate(45deg); }
.navbar__hamburger.is-active span:nth-child(2) { opacity: 0; }
.navbar__hamburger.is-active span:nth-child(3) { transform: translateY(-10px) rotate(-445deg); }

/* ===================================================
   ★ 追加・修正箇所 2：各種ボタン・注釈用テキスト（ entry-container ）共通設定
   =================================================== */
.entry-container {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 2.5em auto !important;
  width: max-content;
}
.entry-note {
  margin-top: 10px !important;
  font-size: 13px !important;
  color: var(--lightGrey2) !important;
  text-align: center !important;
  letter-spacing: 0.05em !important;
  line-height: 1.4 !important;
}
.timetable .entry-container, .conference-recommend .entry-container {
  margin: 4em auto 2em auto !important;
}


/* ===================================================
   ★ 追加・修正箇所 3：1日開催（1Day）モード時の一発中央寄せ命令
   =================================================== */
.is-oneday-mode .timetable__day-column {
  margin-left: auto !important;
  margin-right: auto !important;
  max-width: 650px !important;
}


/* ===================================================
   ★ 追加・修正箇所 4：メディアクエリ内のスマホ用メニュー開閉制御
   =================================================== */
@media only screen and (max-width: 1023px) {
  .navbar__hamburger {
    display: block; /* スマホ・タブレット表示の時にハンバーガーボタンを出現させる */
  }

  /* タップ展開時の全画面ドロップダウンメニュー設定 */
  .navbar__links {
    display: none; /* 通常時は非表示 */
    position: fixed;
    top: 5em;
    left: 0;
    width: 100vw;
    height: calc(100vh - 5em);
    background: rgba(11, 11, 11, 0.96);
    backdrop-filter: blur(1.5em);
    -webkit-backdrop-filter: blur(1.5em);
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    gap: 3.5em;
    padding-top: 4em;
    z-index: 8998;
    overflow-y: auto;
  }

  /* JSで開閉クラス「is-active」がついたときに全画面表示 */
  .navbar__links.is-active {
    display: flex !important;
  }

  .navbar__links > a {
    font-size: 1.2em;
    letter-spacing: 0.2em;
  }

  .navbar__wrapper { height: 5em; }
  .navbar__links .entry-container { margin-top: 1em; }
  .navbar__links .entry-note { display: none; } /* スマホメニュー内は注釈を非表示にしてスッキリさせる */
}


/* ===================================================
   ★ 追加・修正箇所 5：メディアクエリ内のデスクトップ用（横並び維持）設定
   =================================================== */
@media only screen and (min-width: 1024px) {
  .navbar__hamburger { display: none !important; } /* PCではボタンを強制非表示 */
  .navbar__links {
    display: flex !important; /* PCでは常に横並びで表示 */
    position: static;
    width: auto;
    height: auto;
    background: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    flex-direction: row;
    padding-top: 0;
    gap: 3vw;
  }
}