body:not(.scheduleOpen){overflow:auto}
body:not(.scheduleOpen) .hero{
  height:auto;
  min-height:100svh;
  padding:410px 0 86px;
}
body:not(.scheduleOpen) .carouselScene{top:280px}
body:not(.scheduleOpen) .heroKy{
  top:110px;
  width:min(17.726386vw,308.081px);
  aspect-ratio:1;
  background-image:url("assets/home-hero-hades-moo.png");
}
body:not(.scheduleOpen) .heroMaGroup{
  position:absolute;
  z-index:1;
  right:2.5%;
  top:445px;
  width:min(25.261246vw,439.035322px);
  pointer-events:none;
}
body:not(.scheduleOpen) .heroMaGroup .heroMa{
  position:relative;
  inset:auto;
  width:100%;
  aspect-ratio:1;
  background-image:url("assets/home-hero-kero.png");
}
body:not(.scheduleOpen) .heroMaGroup .heroMeta{
  position:relative;
  z-index:2;
  inset:auto;
  display:block;
  width:100%;
  margin:16px 0 0;
  text-align:center;
}
body:not(.scheduleOpen) .heroMaGroup .heroMeta p{
  margin:0;
}
body:not(.scheduleOpen) .quickLinksSection{
  position:absolute;
  left:50%;
  top:8px;
  bottom:auto;
  width:max-content;
  max-width:calc(100vw - 430px);
  margin:0;
  transform:translateX(-50%);
}

.weekScheduleSection{
  position:relative;
  z-index:24;
  width:calc(100% - 32px - 2.5vw - min(22.67vw,394px) - 12px);
  margin:0 0 0 32px;
}
.weekScheduleHeading{display:block;margin-bottom:16px}
.weekScheduleTitleGroup{display:grid;gap:6px}
.weekScheduleHeading .weekScheduleTitleGroup>span{color:#a46caf;font-size:9px;font-weight:900;letter-spacing:.2em}
.weekScheduleTitleRow{display:flex;align-items:baseline;gap:20px;min-width:0}
.weekScheduleHeading h2{margin:0;color:#49394e;font-size:22px;letter-spacing:-.04em}
.weekScheduleHeading button{flex:0 0 auto;padding:4px 0;color:#86628e;font-size:10px;font-weight:900}
.weekScheduleHeading button:hover{color:#a35db2}
.weekScheduleHeading button:focus-visible{outline:3px solid #e3b7ea;outline-offset:4px;border-radius:4px}
.homeTodayMemberLogos{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:center;gap:12px;margin-bottom:12px}
.homeTodayMemberLogo{display:flex;min-width:0;align-items:center;justify-content:center;height:46px}
.homeTodayMemberLogo img{display:block;width:auto;max-width:none;height:40px;object-fit:contain}
.weekScheduleGrid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;align-items:stretch}
.homeTodayMemberCard{--home-member-accent:#e3b7ea;display:block;min-width:0;min-height:168px;padding:14px;border:1px solid color-mix(in srgb,var(--home-member-accent) 74%,#fff);border-radius:18px;background:linear-gradient(180deg,#fff,color-mix(in srgb,var(--home-member-accent) 12%,#fff));box-shadow:0 8px 24px color-mix(in srgb,var(--home-member-accent) 16%,transparent)}
.homeTodayMemberCard[data-calendar="kyma"]{--home-member-accent:#e3b7ea}
.homeTodayMemberCard[data-calendar="ddinggul"]{--home-member-accent:#FFE27A}
.homeTodayMemberCard[data-calendar="chaenna"]{--home-member-accent:#89A4C9}
.homeTodayMemberCard[data-calendar="chorok"]{--home-member-accent:#CCDF8D}
.homeTodayMemberCard[data-calendar="jumeok"]{--home-member-accent:#F5BDD6}
.homeTodayMemberCard[data-calendar="kyma"],
.homeTodayMemberCard[data-calendar="chorok"],
.homeTodayMemberCard[data-calendar="jumeok"]{background:linear-gradient(180deg,#fff,color-mix(in srgb,var(--home-member-accent) 22%,#fff))}
.homeTodayMemberCard[data-calendar="ddinggul"]{background:linear-gradient(180deg,#fff,color-mix(in srgb,var(--home-member-accent) 36%,#fff))}
.homeTodayMemberCard .weekDayEvents{margin-top:0}
.homeTodayMemberCard .weekDayEvent{border-color:color-mix(in srgb,var(--home-member-accent) 42%,#fff);background:#fff}
.homeTodayMemberCard .weekDayEvent:hover{border-color:color-mix(in srgb,var(--home-member-accent) 84%,#72567a)}
.homeTodayEmpty{display:grid;min-height:138px;place-items:center;color:color-mix(in srgb,var(--home-member-accent) 62%,#79657e);font-size:14px;text-align:center}
.weekEventCard{position:relative;display:block;min-width:0;overflow:hidden;border:1px solid #d9addf70;border-radius:18px;background:#fff;color:#49394e;text-decoration:none;box-shadow:0 15px 40px #60416c12;transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease,background .22s ease}
.weekEventCard:hover{border-color:#cb8fd6;background:#fffafd;box-shadow:0 19px 46px #60416c20;transform:translateY(-3px)}
.weekEventCard:focus-visible{outline:3px solid #dca9e6;outline-offset:3px}
.weekEventCard.featured{border-color:#c988d5;box-shadow:inset 0 0 0 1px #efd5f3,0 15px 40px #60416c16}
.weekEventCard.ended{opacity:.68}
.weekEventPoster{display:block;width:100%;aspect-ratio:16/9;overflow:hidden;border-radius:17px 17px 0 0;background:#f7ecfa}
.weekEventPoster img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .3s ease}
.weekEventCard:hover .weekEventPoster img{transform:scale(1.025)}
.weekEventBody{display:block;padding:17px 18px 18px}
.weekEventCard.textOnly .weekEventBody{padding-top:20px}
.weekEventBadges{display:flex;flex-wrap:wrap;align-items:center;gap:5px;padding-right:20px}
.weekEventBadges b{display:inline-flex;align-items:center;min-height:22px;padding:5px 8px;border-radius:999px;font-size:8px;font-weight:900;letter-spacing:.04em}
.weekDday{background:#e3b7ea;color:#56345e}
.weekType{background:#f7ecfa;color:#76517e}
.weekImportant{border:1px solid #bd7bc8;background:#fff;color:#9653a3}
.weekState{margin-left:auto;background:#f4eef5;color:#88748c}
.weekState.today{background:#dba7e4;color:#583360}
.weekState.ended{background:#f1edef;color:#918790}
.weekState.upcoming{background:#f4e8f6;color:#795080}
.weekEventTitle{display:-webkit-box;margin-top:13px;overflow:hidden;font-size:16px;line-height:1.35;letter-spacing:-.025em;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.weekEventDate,.weekEventMembers{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.weekEventDate{margin-top:10px;color:#6f5b74;font-size:11px;font-weight:900}
.weekEventMembers{margin-top:7px;color:#927c97;font-size:10px}
.weekEventArrow{position:absolute;right:14px;bottom:14px;color:#a477ae;font-size:11px}
.weekScheduleEmpty{grid-column:1/-1;display:grid;min-height:150px;place-items:center;align-content:center;padding:28px;border:1px dashed #d9addf70;border-radius:18px;background:#ffffffb8;color:#8a748e;text-align:center}
.weekScheduleEmpty>span{color:#c185cc;font-size:20px}
.weekScheduleEmpty strong{margin-top:8px;color:#59475d;font-size:13px}
.weekScheduleEmpty p{margin:7px 0 0;font-size:10px}


/* Sunday-to-Saturday weekly board */
.weekDayCard{
  min-width:0;
  min-height:252px;
  padding:14px;
  border:1px solid #d9c5dd88;
  border-radius:18px;
  background:#ffffffc9;
  box-shadow:0 8px 24px #60416c0b;
}
.weekDayCard.today{
  border-color:#ca92d4;
  background:linear-gradient(180deg,#fff,#fbf1fd);
  box-shadow:inset 0 0 0 1px #eed7f2,0 10px 26px #60416c12;
}
.weekDayHead{
  display:flex;
  grid-template-columns:auto 1fr;
  align-items:baseline;
  gap:3px 8px;
  min-height:50px;
  padding-bottom:11px;
  border-bottom:1px solid #eaddec;
}
.weekDayName{
  color:#60436a;
  font-size:16px;
  font-weight:400;
}
.weekDayCard.sunday .weekDayName{color:#9a6478}
.weekDayCard.saturday .weekDayName{color:#75658f}
.weekDayDate{
  order:3;
  margin-left:auto;
  justify-self:end;
  color:#8b758f;
  font-family:var(--kyma-font);
  font-size:15px;
  font-weight:600;
}
.weekToday{
  order:2;
  grid-column:1/-1;
  justify-self:start;
  padding:3px 7px;
  border-radius:999px;
  background:#e8c5ed;
  color:#6c4775;
  font-size:13px;
  font-weight:400;
}
.weekDayEvents{
  display:grid;
  gap:9px;
  margin-top:10px;
}
.weekDayEmpty{
  display:grid;
  min-height:142px;
  place-items:center;
  align-content:center;
  gap:5px;
  color:#b09db4;
  text-align:center;
}
.weekDayEmpty>span{font-size:18px}
.weekDayEmpty small{font-size:14px}
.weekDayEvent{
  display:grid;
  gap:8px;
  min-width:0;
  padding:11px;
  border:1px solid #e1cee477;
  border-radius:12px;
  background:#fff;
  color:#4f4053;
  text-decoration:none;
  box-shadow:0 5px 14px #60416c08;
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.weekDayEvent:hover{
  border-color:#cfa7d5;
  box-shadow:0 8px 18px #60416c12;
  transform:translateY(-1px);
}
.weekDayEvent:focus-visible{
  outline:3px solid #dca9e6;
  outline-offset:2px;
}
.weekDayEvent.ended{opacity:.68}
.weekDayThumb{
  display:block;
  width:100%;
  height:72px;
  overflow:hidden;
  border-radius:10px;
  background:#f7ecfa;
}
.weekDayThumb img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.weekDayEventCopy{
  display:grid;
  min-width:0;
  gap:6px;
}
.weekDayBadges{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:4px;
}
.weekDayBadges b,
.weekDayState{
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  min-height:26px;
  padding:5px 8px;
  border-radius:999px;
  font-size:13px;
  font-weight:400;
  line-height:1.1;
}
.weekDayBadges .weekDday{background:#e3b7ea;color:#56345e}
.weekDayBadges .weekType{background:#f7ecfa;color:#76517e}
.weekDayBadges .weekImportant{border:1px solid #bd7bc8;background:#fff;color:#9653a3}
.weekDayEventTitle{
  overflow:hidden;
  color:#49394e;
  font-size:16px;
  font-weight:400;
  line-height:1.32;
  text-overflow:ellipsis;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}
.weekDayMeta{
  color:#806c85;
  font-family:var(--kyma-font);
  font-size:14px;
  line-height:1.38;
  white-space:normal;
  overflow-wrap:anywhere;
}
.weekDayState{
  min-height:0;
  padding:3px 7px;
  background:#f4eef5;
  color:#88748c;
  font-size:13px;
}
.weekDayState.today{background:#dba7e4;color:#583360}
.weekDayState.ended{background:#f1edef;color:#918790}
.weekDayState.upcoming{background:#f4e8f6;color:#795080}
.weekDayDescription{
  overflow:hidden;
  color:#88748c;
  font-size:13px;
  line-height:1.35;
  overflow-wrap:anywhere;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}
.weekDayMore{
  width:100%;
  padding:7px 6px;
  border-radius:10px;
  background:#f8f0fa;
  color:#795880;
  font-size:14px;
  text-align:center;
}
.weekDayMore:hover{background:#f2e3f5}

@media(max-width:1500px) and (min-width:901px){
  .homeTodayMemberLogos,.weekScheduleGrid{grid-template-columns:repeat(5,minmax(0,1fr))}
}

/* made in 수제비 now follows the MA artwork instead of the viewport bottom. */


/* Music typography consistency */
body:not(.scheduleOpen) .musicDock .compactTrack strong,
body:not(.scheduleOpen) .musicDock .trackCopy strong{
  font-family:"Jua",sans-serif;
  font-weight:400;
}
body:not(.scheduleOpen) .musicDock .trackCopy small{
  font-family:"Jua",sans-serif;
  font-weight:400;
}
body:not(.scheduleOpen) .musicDrawerToggle{
  font-family:"Jua",sans-serif;
  font-size:15px;
  font-weight:400;
  line-height:1.2;
}

/* Expanded player: keep compact info only for the collapsed state. */
.musicDock.expanded .compactTrack{display:none}
.musicDock.expanded .musicDockSummary{
  min-height:0;
  justify-content:flex-end;
  padding-top:12px;
}
.musicDock.expanded .musicDockDrawer>.trackCopy{margin-top:12px}

@media(max-width:900px){
  body:not(.scheduleOpen) .hero{
    min-height:0;
    padding:480px 0 84px;
  }
  body:not(.scheduleOpen) .carouselScene{top:320px}
  body:not(.scheduleOpen) .heroKy{
    top:92px;
    width:20vw;
  }
  body:not(.scheduleOpen) .heroMaGroup{
    right:1%;
    top:330px;
    width:20vw;
  }
  body:not(.scheduleOpen) .heroMaGroup .heroMeta{margin-top:14px}
  body:not(.scheduleOpen) .quickLinksSection{
    left:50%;
    top:74px;
    bottom:auto;
    width:max-content;
    max-width:calc(100% - 24px);
    margin:0;
    transform:translateX(-50%);
  }
  .weekScheduleSection{
    width:min(720px,calc(100% - 32px));
    margin:0 auto;
  }
  .homeTodayMemberLogos,.weekScheduleGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  body:not(.scheduleOpen) .musicDock{
    position:relative;
    left:auto;
    right:auto;
    top:auto;
    bottom:auto;
    width:min(520px,calc(100% - 4px));
    margin:42px auto 0;
  }

  .weekDayCard{min-height:220px;padding:13px}
  .weekDayThumb{height:68px}
  body:not(.scheduleOpen) .musicDrawerToggle{font-size:14px}
}

@media(max-width:560px){
  body:not(.scheduleOpen) .hero{
    padding:455px 0 78px;
  }
  body:not(.scheduleOpen) .carouselScene{top:310px}
  body:not(.scheduleOpen) .heroMaGroup{
    top:320px;
    width:24vw;
  }
  body:not(.scheduleOpen) .heroKy{width:24vw}
  body:not(.scheduleOpen) .heroMaGroup .heroMeta{margin-top:12px}
  body:not(.scheduleOpen) .quickLinksSection{
    top:70px;
    width:max-content;
    max-width:calc(100% - 16px);
    margin:0;
  }
  .weekScheduleSection{
    width:calc(100% - 32px);
    margin:0 auto;
  }
  .weekScheduleTitleRow{gap:14px;flex-wrap:wrap}
  .weekScheduleHeading h2{font-size:20px}
  .weekScheduleHeading button{font-size:9px}
  .homeTodayMemberLogos{grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin-bottom:10px}
  .homeTodayMemberLogo{height:36px}
  .homeTodayMemberLogo img{height:clamp(18px,5vw,29px)}
  .weekScheduleGrid{grid-template-columns:1fr;gap:10px}
  .homeTodayMemberCard{min-height:0}
  .weekEventPoster{aspect-ratio:16/8.7}
  .weekEventBody{padding:16px}
  body:not(.scheduleOpen) .musicDock{margin-top:36px}

  .musicDock.expanded .musicDockDrawer>.trackCopy{margin-top:10px}
  .weekDayCard{min-height:0;padding:13px}
  .weekDayThumb{height:76px}
}

@media(max-width:360px){
  .weekScheduleSection{width:calc(100% - 24px)}
  .weekScheduleTitleRow{gap:8px 12px}
}

/* PC home: share the exact viewport-center x-axis and enlarge only the player width. */
@media(min-width:901px){
  body:not(.scheduleOpen) .carouselScene,
  body:not(.scheduleOpen) .quickLinksSection{
    left:50vw;
  }

  /* The section can be max-width constrained on narrower PC widths.
     Re-center the fixed-column grid inside that section without changing columns, cards or gaps. */
  body:not(.scheduleOpen) .quickLinksGrid{
    position:relative;
    left:50%;
    transform:translateX(-50%);
  }

  /* With the current global border-box sizing, 18px dock padding and 1px borders,
     522px leaves an iframe content viewport of about 482 x 270.25px at 16:9. */
  body:not(.scheduleOpen) .musicDock{
    width:522px;
  }
}

/* PC home: navigation glyph alignment + KY display box matched to MA. */
@media(min-width:901px){
  /* Keep the existing nav pill box unchanged; shift only its inner text 1px farther down. */
  body:not(.scheduleOpen) .navPill>span{
    transform:translateY(2px);
  }

  /* Preserve the existing 41px account boxes and horizontal padding.
     Top/bottom padding total stays 14px, shifting only the glyph center about 1px downward. */
  body:not(.scheduleOpen) .accountLogin,
  body:not(.scheduleOpen) .accountName,
  body:not(.scheduleOpen) .accountAdmin,
  body:not(.scheduleOpen) .accountLogout{
    padding-top:8px;
    padding-bottom:6px;
  }

  /* Enlarge Hedes & Moo and Kero from the same square source scale.
     Matching responsive edge insets keep both pieces pulled equally inside the viewport. */
  body:not(.scheduleOpen) .heroKy{
    left:clamp(42px,3vw,58px);
    top:100px;
    width:min(20.725388vw,360px);
    aspect-ratio:1;
  }
}

/* PC home: move the weekly schedule down only enough to clear the enlarged KY. */
@media(min-width:901px){
  body:not(.scheduleOpen) .weekScheduleSection{
    margin-top:44px;
  }
}

/* PC home: remove only the excess bottom space and fine-tune MA position. */
@media(min-width:901px){
  body:not(.scheduleOpen) .hero{
    padding-bottom:20px;
  }

  body:not(.scheduleOpen) .heroMaGroup{
    right:clamp(42px,3vw,58px);
    top:auto;
    bottom:100px;
    width:min(20.725388vw,360px);
  }

  body:not(.scheduleOpen) .heroMaGroup .heroMeta{
    position:absolute;
    inset:auto 0 -88px;
    margin:0;
  }
}



/* v97 — larger home today schedule text */
.weekScheduleHeading h2{font-size:26px}
.weekScheduleHeading button{font-size:13px}
.homeTodayMemberCard .weekDayBadges b,
.homeTodayMemberCard .weekDayState{font-size:15px}
.homeTodayMemberCard .weekDayEventTitle{font-size:19px}
.homeTodayMemberCard .weekDayMeta{font-size:16px}
.homeTodayEmpty{font-size:17px}
@media(max-width:900px){
  .weekScheduleHeading h2{font-size:23px}
  .weekScheduleHeading button{font-size:12px}
  .homeTodayMemberCard .weekDayEventTitle{font-size:18px}
  .homeTodayMemberCard .weekDayMeta{font-size:16px}
  .homeTodayEmpty{font-size:16px}
}

/* v98 — stronger home schedule typography and dimensional cards */
.weekScheduleHeading h2{font-size:30px}
.weekScheduleHeading button{font-size:16px}
.homeTodayMemberCard{
  box-shadow:
    0 16px 30px color-mix(in srgb,var(--home-member-accent) 24%,transparent),
    0 5px 10px rgba(69,52,74,.08),
    inset 0 1px 0 rgba(255,255,255,.96);
  transform:translateY(-2px);
}
.homeTodayMemberCard .weekDayEvent{
  border-color:color-mix(in srgb,var(--home-member-accent) 48%,#fff);
  background:linear-gradient(180deg,#fff 0%,color-mix(in srgb,var(--home-member-accent) 5%,#fff) 100%);
  box-shadow:
    0 10px 20px color-mix(in srgb,var(--home-member-accent) 18%,transparent),
    0 3px 7px rgba(69,52,74,.08),
    inset 0 1px 0 #fff;
}
.homeTodayMemberCard .weekDayBadges b,
.homeTodayMemberCard .weekDayState{font-size:17px}
.homeTodayMemberCard .weekDayEventTitle{font-size:23px;line-height:1.38}
.homeTodayMemberCard .weekDayMeta{font-size:19px;line-height:1.46}
.homeTodayEmpty{font-size:20px}
@media(max-width:900px){
  .weekScheduleHeading h2{font-size:26px}
  .weekScheduleHeading button{font-size:14px}
  .homeTodayMemberCard .weekDayBadges b,
  .homeTodayMemberCard .weekDayState{font-size:16px}
  .homeTodayMemberCard .weekDayEventTitle{font-size:21px}
  .homeTodayMemberCard .weekDayMeta{font-size:18px}
  .homeTodayEmpty{font-size:18px}
}
