/* Additive hooks: higher specificity than the unchanged v1 modules, regardless
   of delivery order. No descendant element reset and no --mvp-* overrides. */
[data-app-design-v2] .appV2Home.appV2Home { min-height: 0; color: var(--app-v2-ink); font-family: var(--app-v2-font); }
[data-app-design-v2] .appV2HomeBody { max-width: var(--app-v2-max); padding: 0 var(--app-v2-edge); justify-content: flex-start; }
[data-app-design-v2] .appV2HomeTop { padding-top: 56px; }
[data-app-design-v2] .appV2HomeEyebrow { color: var(--app-v2-muted); font: 600 0.8125rem/1.5 var(--app-v2-font); }
[data-app-design-v2] .appV2HomeIdentity { color: var(--app-v2-muted); font: 400 0.875rem/1.6 var(--app-v2-font); }
[data-app-design-v2] .appV2HomeTitle { margin-top: 20px; font: 700 var(--app-v2-heading)/1.3 var(--app-v2-font-display); letter-spacing: -0.035em; overflow-wrap: anywhere; }
[data-app-design-v2] .appV2HomeRule { margin-top: 26px; background: var(--app-v2-rule); }
[data-app-design-v2] .appV2HomeSub { max-width: 560px; color: var(--app-v2-muted); font: 400 1rem/1.75 var(--app-v2-font); }
[data-app-design-v2] .appV2HomeWatermark { box-sizing: border-box; max-width: 100%; margin: 36px 0 12px; padding-inline: var(--app-v2-edge); font: 800 clamp(2rem, 8vw, 6rem)/1.2 var(--app-v2-font); letter-spacing: -0.065em; white-space: normal; overflow-wrap: anywhere; color: var(--app-v2-ink); opacity: 0.12; }
[data-app-design-v2] .appV2HomeFooter { max-width: var(--app-v2-max); padding: 26px var(--app-v2-edge); }
[data-app-design-v2] .appV2HomeButton { min-width: 44px; min-height: 54px; padding: 16px 20px; border-radius: var(--app-v2-radius-control); font: 600 1rem/1.5 var(--app-v2-font); overflow-wrap: anywhere; }
[data-app-design-v2] .appV2HomePrimary { background: var(--app-v2-gradient); color: var(--app-v2-on-night); }
[data-app-design-v2] .appV2HomeOutline { background: transparent; border-color: #aaa; color: var(--app-v2-ink); }
[data-app-design-v2] .appV2HomeButton + .appV2HomeButton { margin-top: 12px; }
[data-app-design-v2] .appV2HomeButton:not(:disabled):not([aria-disabled="true"]):hover,
[data-app-design-v2] .appV2HomeButton:not(:disabled):not([aria-disabled="true"]):active { background: var(--app-v2-action); border-color: var(--app-v2-action); color: var(--app-v2-action-ink); }
[data-app-design-v2] .appV2HomeButton:focus-visible { outline: var(--app-v2-focus); outline-offset: 5px; }
@media (min-width: 768px) {
  [data-app-design-v2] .appV2HomeTop { padding-top: 72px; }
  [data-app-design-v2] .appV2HomeFooter { display: flex; flex-wrap: wrap; gap: 12px; }
  [data-app-design-v2] .appV2HomeButton { width: auto; flex: 1 1 260px; }
  [data-app-design-v2] .appV2HomeButton + .appV2HomeButton { margin-top: 0; }
}

[data-app-design-v2] .appV2Home.appV2Home { display: flex; flex-direction: column; min-height: 70dvh; background: linear-gradient(180deg, var(--app-v2-hero), var(--app-v2-paper) 70%); }
[data-app-design-v2] .appV2HomeBody { width: 100%; max-width: 640px; box-sizing: border-box; margin: auto; }
[data-app-design-v2] .appV2HomeTop { padding-top: 28px; }
[data-app-design-v2] .appV2HomeStage { display: grid; place-items: center; padding: 28px 20px; min-height: 160px; }
[data-app-design-v2] .appV2HomeFooter { box-sizing: border-box; width: calc(100% - 24px); max-width: 616px; margin: 0 auto 12px; padding: 22px; border: 1px solid var(--app-v2-rule); border-radius: 28px; background: #fffdfb; backdrop-filter: blur(22px) saturate(170%); }

[data-app-design-v2] .appV2PlumHome { padding-bottom: 28px; }
[data-app-design-v2] .appV2HomeTiles { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; margin-top: 24px; }
[data-app-design-v2] .appV2HomeTile { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; min-height: 100px; min-width: 0; box-sizing: border-box; padding: 22px; border-radius: 22px; text-decoration: none; overflow-wrap: anywhere; font: 700 1.25rem/1.5 var(--app-v2-font-display); color: var(--app-v2-ink); }
[data-app-design-v2] .appV2HomeTileCreate { grid-column: 1 / -1; min-height: 200px; background: var(--app-v2-gradient); color: var(--app-v2-on-night); }
[data-app-design-v2] .appV2HomeTileCreate .appV2Mascot { width: 100px; margin: 0 0 16px auto; padding: 12px; border-radius: 50%; background: var(--app-v2-hero); }
[data-app-design-v2] .appV2HomeTileMy { background: var(--app-v2-night); color: var(--app-v2-on-night); }
[data-app-design-v2] .appV2HomeTileProducts { background: var(--app-v2-panel); }
[data-app-design-v2] .appV2HomeTile:focus-visible { outline: var(--app-v2-focus); outline-offset: 3px; }
[data-app-design-v2] .appV2HomeUtility { display: grid; gap: 8px; margin-top: 24px; }

[data-app-design-v2] .appV2HomeBody { position: relative; padding-top: calc(3rem + 40px); }
[data-app-design-v2] .appV2Home .appV2Logout { position: absolute; top: 20px; right: var(--app-v2-edge); }
[data-app-design-v2] .appV2Home .appV2LogoutGroup { align-items: flex-start; }
[data-app-design-v2] .appV2HomeFooter { max-height: 60vh; overflow: auto; }
@media (max-width: 320px) {
  [data-app-design-v2] .appV2HomeTiles { grid-template-columns: minmax(0, 1fr); }
}

/* PX-A: S07 prototype geometry, with real identity and presence. */
[data-app-design-v2] .appV2PlumHome.appV2Home { min-height: 0; background: transparent; }
[data-app-design-v2] .appV2PlumHome .appV2HomeBody { max-width: 480px; padding-top: 0; margin: 0 auto; }
[data-app-design-v2] .appV2HomeAppBar { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 56px; padding-block: 6px; }
[data-app-design-v2] .appV2PlumHome .appV2Logout { position: static; }
[data-app-design-v2] .appV2PlumHome .appV2LogoutGroup { align-items: flex-end; }
[data-app-design-v2] .appV2PlumHome .appV2HomeTop { padding-top: 4px; }
[data-app-design-v2] .appV2HomeAccount { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 4px 8px; min-height: 32px; box-sizing: border-box; padding: 6px 12px; border-radius: 16px; background: var(--app-v2-panel); }
[data-app-design-v2] .appV2HomeAccount .appV2HomeEyebrow, [data-app-design-v2] .appV2HomeAccount .appV2HomeIdentity { margin: 0; font-size: .75rem; overflow-wrap: anywhere; }
[data-app-design-v2] .appV2HomeEyebrow::before { content: ""; display: inline-block; width: 7px; height: 7px; margin-right: 8px; border-radius: 50%; background: #2f7a45; }
[data-app-design-v2] .appV2PlumHome .appV2HomeTitle { max-width: 5em; margin: 14px 0 0; font-size: 2.5rem; line-height: 1.22; word-break: keep-all; }
[data-app-design-v2] .appV2PlumHome .appV2HomeSub { margin: 14px 0 0; font-size: .9375rem; line-height: 1.65; }
[data-app-design-v2] .appV2PlumHome .appV2HomeTiles { gap: 10px; margin-top: 22px; }
[data-app-design-v2] .appV2PlumHome .appV2HomeTile { position: relative; min-height: 140px; border-radius: 24px; padding: 18px; justify-content: space-between; gap: 16px; }
[data-app-design-v2] .appV2HomeTileTitle { display: block; font: 700 1.25rem/1.3 var(--app-v2-font-display); letter-spacing: -.02em; }
[data-app-design-v2] .appV2HomeTileDescription { display: block; margin-top: 6px; font: 400 .8125rem/1.45 var(--app-v2-font); color: var(--app-v2-muted); }
[data-app-design-v2] .appV2PlumHome .appV2HomeTileCreate { min-height: 196px; background: linear-gradient(160deg, #f3d9cf, #ead0c4); color: var(--app-v2-ink); padding-right: 158px; }
[data-app-design-v2] .appV2HomeTileCreate .appV2HomeTileTitle { font-size: 1.625rem; }
[data-app-design-v2] .appV2PlumHome .appV2HomeTileCreate .appV2Mascot { position: absolute; right: 16px; bottom: 16px; width: 136px; margin: 0; padding: 0; background: transparent; border-radius: 0; transform: rotate(-6deg); }
[data-app-design-v2] .appV2PlumHome .appV2HomeTileMy { background: var(--app-v2-plum); }
[data-app-design-v2] .appV2HomeTileMy .appV2HomeTileDescription { color: var(--app-v2-on-night-muted); }
[data-app-design-v2] .appV2HomeTileIcon { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: #ffffff2e; }
[data-app-design-v2] .appV2HomeTileIcon .appV2Icon { width: 18px; height: 18px; }
[data-app-design-v2] .appV2HomeTileProducts .appV2HomeTileIcon { background: var(--app-v2-paper); }
[data-app-design-v2] .appV2HomeLogoutHint { margin: 16px 0 0; color: var(--app-v2-muted); font: 400 .8125rem/1.65 var(--app-v2-font); }
@media (max-width: 360px) {
  [data-app-design-v2] .appV2PlumHome .appV2HomeTitle { font-size: clamp(1.625rem, 8vw, 2.5rem); }
  [data-app-design-v2] .appV2PlumHome .appV2HomeTileCreate { padding-right: 132px; }
  [data-app-design-v2] .appV2PlumHome .appV2HomeTileCreate .appV2Mascot { width: 110px; }
}

/*
 * HOME_MESSAGE_SNS_01 (owner 10-25) — the app-v2 home: "하고 싶은 말, 노래로 보내세요". Picture header, one big button, four
 * message-to-song cards, the Shorts pair, the 20-second card, a thin season strip, the link row. Appended last: each rule
 * wins over the PX-A tile layout above by order (the tile rules are no longer rendered).
 */
[data-app-design-v2] .appV2PlumHome { --app-v2-edge: 16px; }
[data-app-design-v2] .appV2PlumHome.appV2PlumHome { padding-bottom: 8px; }
[data-app-design-v2] .appV2HomeHero { position: relative; box-sizing: border-box; height: 326px; margin-inline: calc(-1 * var(--app-v2-edge)); padding: 8px var(--app-v2-edge) 0; overflow: hidden; }
[data-app-design-v2] .appV2HomeHeroArt { position: absolute; inset: 0; z-index: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 30%; pointer-events: none; user-select: none; }
[data-app-design-v2] .appV2HomeHero > :not(.appV2HomeHeroArt) { position: relative; z-index: 1; }
[data-app-design-v2] .appV2HomeHero .appV2HomeAppBar { min-height: 52px; padding-block: 0; }
[data-app-design-v2] .appV2HomeMy { display: inline-flex; align-items: center; gap: 6px; box-sizing: border-box; min-height: 44px; padding: 8px 12px; border-radius: 12px; background: #ffffffcc; color: var(--app-v2-ink); font: 700 14px/1.2 var(--app-v2-font); text-decoration: none; white-space: nowrap; box-shadow: 0 1px 2px #231a1e14, 0 0 0 1px var(--app-v2-rule); }
[data-app-design-v2] .appV2HomeMy .appV2Icon { width: 18px; height: 18px; }
[data-app-design-v2] .appV2HomeMy:focus-visible { outline: var(--app-v2-focus); outline-offset: 3px; }
[data-app-design-v2] .appV2HomeHero .appV2HomeTitle { max-width: none; margin: 26px 0 10px; font: 700 clamp(27px, 7.9vw, 31px)/1.3 var(--app-v2-font-display); letter-spacing: -.02em; }
[data-app-design-v2] .appV2HomeTitleAccent { font-style: normal; color: var(--app-v2-secondary); }
[data-app-design-v2] .appV2HomeHero .appV2HomeSub { max-width: 62%; margin: 0; color: #5d4f55; font: 400 clamp(13.5px, 3.85vw, 15px)/1.6 var(--app-v2-font); }
[data-app-design-v2] .appV2HomeCta { display: flex; align-items: center; justify-content: center; gap: 8px; box-sizing: border-box; width: 100%; min-height: 58px; margin-top: 6px; border-radius: 18px; background: var(--app-v2-gradient); color: var(--app-v2-on-night); font: 800 17px/1 var(--app-v2-font); text-decoration: none; box-shadow: 0 10px 22px #4e2c3c38, inset 0 1px 0 #ffffff33; }
[data-app-design-v2] .appV2HomeCta:not(:disabled):not([aria-disabled="true"]):active { background: var(--app-v2-action); color: var(--app-v2-action-ink); }
[data-app-design-v2] .appV2HomeCta:focus-visible { outline: var(--app-v2-focus); outline-offset: 3px; }
[data-app-design-v2] .appV2HomeH2 { margin: 28px 0 4px; font: 700 21px/1.4 var(--app-v2-font-display); letter-spacing: -.02em; color: var(--app-v2-ink); }
[data-app-design-v2] .appV2HomeH2Sub { margin: 0 0 12px; color: var(--app-v2-muted); font: 400 14px/1.6 var(--app-v2-font); }
/* HOME_POLISH_02: the entry (/) waits for the home on the S01 intro's own ground, whole first screen, nothing drawn on it. */
[data-app-design-v2] .appV2EntryHold { box-sizing: border-box; min-height: 100dvh; background: radial-gradient(120% 80% at 50% 40%, #5e3346, #4e2c3c 45%, #2a1820); }
[data-app-design-v2] .appV2HomeSongs { scroll-margin-top: 8px; }
[data-app-design-v2] .appV2HomeSongRail { display: grid; grid-auto-flow: column; grid-auto-columns: 86%; align-items: stretch; gap: 10px; margin: 0 calc(-1 * var(--app-v2-edge)); padding: 2px var(--app-v2-edge) 4px; list-style: none; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding-inline: var(--app-v2-edge); scrollbar-width: none; -webkit-overflow-scrolling: touch; }
[data-app-design-v2] .appV2HomeSongRail::-webkit-scrollbar { display: none; }
[data-app-design-v2] .appV2HomeSong { display: flex; flex-direction: column; box-sizing: border-box; min-width: 0; margin: 0; padding: 16px; border-radius: 20px; background: var(--app-v2-surface); scroll-snap-align: start; box-shadow: 0 1px 2px #231a1e14, 0 0 0 1px var(--app-v2-rule); }
[data-app-design-v2] .appV2HomeSongGenre { margin: 0 0 10px; color: var(--app-v2-muted); font: 400 13px/1.5 var(--app-v2-font); }
[data-app-design-v2] .appV2HomeSongGenreName { color: var(--app-v2-secondary); font-weight: 700; }
[data-app-design-v2] .appV2HomeSongBubble { margin: 0; padding: 10px 14px; border-radius: 16px 16px 16px 4px; background: var(--app-v2-paper); font: 400 14.5px/1.55 var(--app-v2-font); }
[data-app-design-v2] .appV2HomeSongLine { display: block; }
[data-app-design-v2] .appV2HomeSongDown { margin: 10px 0; text-align: center; color: var(--app-v2-secondary); font: 700 12.5px/1.4 var(--app-v2-font); }
[data-app-design-v2] .appV2HomeSongPlayer { display: flex; align-items: center; margin-top: auto; gap: 12px; padding: 12px 14px; border-radius: 16px; background: var(--app-v2-night); color: var(--app-v2-on-night); }
[data-app-design-v2] .appV2HomeSongButton { display: grid; flex: none; place-items: center; box-sizing: border-box; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: var(--app-v2-action); cursor: pointer; box-shadow: 0 4px 10px #ff603855; -webkit-tap-highlight-color: transparent; }
[data-app-design-v2] .appV2HomeSongIcon { width: 16px; height: 16px; fill: #fff; }
[data-app-design-v2] .appV2HomeSongPlayer:not([data-playing]) .appV2HomeSongIcon { margin-left: 2px; }
[data-app-design-v2] .appV2HomeSongButton:focus-visible { outline: 3px solid var(--app-v2-on-night); outline-offset: 2px; }
[data-app-design-v2] .appV2HomeSongInfo { flex: 1 1 auto; min-width: 0; }
[data-app-design-v2] .appV2HomeSongTitle { margin: 0; font: 700 14.5px/1.4 var(--app-v2-font); }
[data-app-design-v2] .appV2HomeSongMeta { margin: 2px 0 0; color: var(--app-v2-on-night-muted); font: 400 12.5px/1.4 var(--app-v2-font); font-variant-numeric: tabular-nums; }
[data-app-design-v2] .appV2HomeSongWave { display: flex; flex: none; align-items: center; gap: 3px; margin-left: auto; }
[data-app-design-v2] .appV2HomeSongBar { display: block; width: 3px; border-radius: 2px; background: #ffffff88; }
[data-app-design-v2] .appV2HomeSongPlayer[data-playing] .appV2HomeSongBar { background: var(--app-v2-action); }
@media (prefers-reduced-motion: no-preference) {
  @keyframes appV2HomeWave { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(.45); } }
  [data-app-design-v2] .appV2HomeSongPlayer[data-playing] .appV2HomeSongBar { animation: appV2HomeWave .9s ease-in-out infinite; }
  [data-app-design-v2] .appV2HomeSongPlayer[data-playing] .appV2HomeSongBar:nth-child(2n) { animation-delay: .15s; }
  [data-app-design-v2] .appV2HomeSongPlayer[data-playing] .appV2HomeSongBar:nth-child(3n) { animation-delay: .3s; }
}
[data-app-design-v2] .appV2HomeDots { display: flex; justify-content: center; gap: 6px; margin-top: 10px; }
[data-app-design-v2] .appV2HomeDot { display: block; width: 6px; height: 6px; border-radius: 50%; background: var(--app-v2-rule); }
[data-app-design-v2] .appV2HomeDot[data-on] { width: 18px; border-radius: 3px; background: var(--app-v2-plum); }
@media (prefers-reduced-motion: no-preference) {
  [data-app-design-v2] .appV2HomeDot { transition: width .2s ease, background-color .2s ease; }
}
/* The Shorts pair: the shared sample card without its own frame, two to a view. */
[data-app-design-v2] .appV2HomeShorts.appV2SampleDemo { margin: 0; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; }
[data-app-design-v2] .appV2HomeShorts .appV2SampleDemoTrack { gap: 10px; margin: 0 calc(-1 * var(--app-v2-edge)); padding: 0 var(--app-v2-edge); scroll-padding-inline: var(--app-v2-edge); }
[data-app-design-v2] .appV2HomeShorts .appV2SampleDemoItem { flex: 0 0 calc((100% - 10px) / 2); }
[data-app-design-v2] .appV2HomeShorts .appV2SampleDemoMedia { border-radius: 16px; }
[data-app-design-v2] .appV2HomeShorts .appV2SampleDemoPlay { flex-direction: row; align-items: flex-end; justify-content: flex-end; padding: 10px; background: none; }
[data-app-design-v2] .appV2HomeShorts .appV2SampleDemoPlayIcon { inline-size: 36px; block-size: 36px; background: #ffffffd9; }
[data-app-design-v2] .appV2HomeShorts .appV2SampleDemoPlayIcon .appV2Icon { inline-size: 14px; block-size: 14px; margin-inline-start: 2px; }
[data-app-design-v2] .appV2HomeShorts .appV2SampleDemoPlayLabel { position: absolute; inline-size: 1px; block-size: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
[data-app-design-v2] .appV2HomeNote { margin: 8px 0 0; color: var(--app-v2-muted); font: 400 12.5px/1.5 var(--app-v2-font); }
/* The season strip (only while a season is on). */
[data-app-design-v2] .appV2HomeEvent { display: flex; align-items: center; gap: 12px; box-sizing: border-box; min-height: 64px; margin-top: 12px; padding: 12px 14px; border-radius: 18px; background: #2a1820; color: #f6f1ec; text-decoration: none; }
[data-app-design-v2] .appV2HomeEventThumb { flex: none; width: 46px; height: 40px; border-radius: 10px; object-fit: cover; }
[data-app-design-v2] .appV2HomeEventCopy { min-width: 0; }
[data-app-design-v2] .appV2HomeEventTitle { display: block; font: 700 14px/1.4 var(--app-v2-font); }
[data-app-design-v2] .appV2HomeEventText { display: block; margin-top: 2px; color: #c9b8bf; font: 400 12.5px/1.4 var(--app-v2-font); }
[data-app-design-v2] .appV2HomeEventGo { margin-left: auto; font: 400 18px/1 var(--app-v2-font); }
[data-app-design-v2] .appV2HomeEvent:focus-visible { outline: var(--app-v2-focus); outline-offset: 3px; }
[data-app-design-v2] .appV2HomeUtility:empty { display: none; }
/* The link row. */
[data-app-design-v2] .appV2HomeLinks { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0 2px; margin: 18px 0 0; color: var(--app-v2-muted); font: 400 12.5px/1.4 var(--app-v2-font); }
[data-app-design-v2] .appV2HomeLink { display: inline-flex; align-items: center; min-height: 44px; padding-inline: 5px; color: inherit; text-decoration: none; }
[data-app-design-v2] .appV2HomeLink:focus-visible { outline: var(--app-v2-focus); outline-offset: 0; }
