@charset "UTF-8";

.media-platform-mixed i { background: #176d9d; font-size: 9px; }

.home-theme-song { display: grid; grid-template-columns: minmax(190px, .55fr) minmax(0, 1.45fr); gap: 26px; align-items: center; margin-top: 28px; }
.home-theme-song-heading { display: grid; gap: 7px; }
.home-theme-song-heading > span { color: #2174aa; font-size: 10px; font-weight: 850; letter-spacing: .12em; }
.home-theme-song-heading > strong { color: #0b3157; font-size: clamp(19px, 2vw, 25px); line-height: 1.45; letter-spacing: -.03em; }
.home-theme-song-heading p { margin: 0; color: #526c80; font-size: 12px; line-height: 1.8; }
.home-theme-song-update { display: grid; gap: 3px; margin-top: 4px; padding: 10px 11px; color: #345e76; background: #edf7fb; border: 1px solid #c2deea; border-radius: 7px; }
.home-theme-song-update time { color: #18739e; font-size: 9px; font-weight: 850; letter-spacing: .05em; }
.home-theme-song-update > strong { color: #123f5c; font-size: 11px; line-height: 1.5; }
.home-theme-song-heading .home-theme-song-update p { color: #567184; font-size: 9px; line-height: 1.65; }
.home-theme-song-page-link { display: inline-flex; width: fit-content; min-height: 34px; margin-top: 5px; padding: 7px 11px 7px 13px; align-items: center; gap: 12px; color: #fff; background: #123f64; border: 1px solid #123f64; border-radius: 999px; box-shadow: 0 5px 12px rgba(9, 48, 78, .13); font-size: 9px; font-weight: 850; text-decoration: none; transition: color .16s ease, background-color .16s ease, transform .16s ease; }
.home-theme-song-page-link i { font-size: 13px; font-style: normal; transition: transform .16s ease; }
.home-theme-song-page-link:hover,
.home-theme-song-page-link:focus-visible { color: #fff; background: #197cae; border-color: #197cae; transform: translateY(-1px); }
.home-theme-song-page-link:hover i,
.home-theme-song-page-link:focus-visible i { transform: translateX(2px); }

.theme-song-player { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 18px 20px; align-items: center; padding: 20px 22px; background: linear-gradient(135deg, #fff, #e8f3f9); border: 1px solid #ccdee9; border-radius: 11px; box-shadow: 0 12px 28px rgba(15,58,88,.08); }
.theme-song-player .visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.theme-song-visual { position: relative; isolation: isolate; display: block; width: 76px; height: 76px; overflow: hidden; background: radial-gradient(circle at 50% 50%, transparent 0 9px, rgba(250,254,255,.94) 9.5px 11px, transparent 11.5px), radial-gradient(circle at 38% 30%, rgba(255,255,255,.88), transparent 23%), conic-gradient(from 16deg, #a8b7bd 0 6%, #faffff 10%, #a8bec7 15%, #d8f4fb 20%, #eadffd 25%, #a9bbc2 31%, #f7ffff 38%, #bce6e7 45%, #fff7ce 52%, #a4b7bf 59%, #f4fbfd 66%, #c7e5f6 72%, #eee7f8 79%, #a2b6bd 87%, #f8ffff 94%, #a8b7bd 100%); border: 1px solid rgba(65,91,103,.32); border-radius: 50%; box-shadow: inset 0 0 0 3px rgba(255,255,255,.45), inset 0 0 9px rgba(25,54,66,.2), 0 7px 16px rgba(13,60,98,.17); }
.theme-song-visual::before { position: absolute; z-index: 1; inset: 5px; background: repeating-radial-gradient(circle at center, transparent 0 1.8px, rgba(24,55,68,.15) 2.1px 2.35px, rgba(255,255,255,.34) 2.7px 3px, transparent 3.35px 4.8px), conic-gradient(from 224deg, transparent 0 8%, rgba(255,255,255,.72) 11%, rgba(113,219,242,.26) 14%, rgba(224,174,255,.22) 17%, transparent 24% 58%, rgba(255,246,166,.26) 63%, rgba(164,238,242,.25) 67%, transparent 74%); border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(255,255,255,.45); content: ""; mix-blend-mode: screen; }
.theme-song-visual::after { position: absolute; z-index: 3; top: 50%; left: 50%; width: 15px; height: 15px; background: radial-gradient(circle, #123b55 0 3px, #f7fcfd 3.5px 6px, #88a8b5 6.5px 7.5px); border: 1px solid rgba(32,71,90,.38); border-radius: 50%; box-shadow: 0 0 0 3px rgba(255,255,255,.24), 0 1px 3px rgba(7,38,54,.25); content: ""; transform: translate(-50%, -50%); }
.theme-song-visual i { display: none; }
.theme-song-player.is-playing .theme-song-visual { animation: theme-song-rotate 7s linear infinite; }
.theme-song-track { display: grid; gap: 3px; min-width: 0; }
.theme-song-track span { color: #2174aa; font-size: 9px; font-weight: 850; letter-spacing: .08em; }
.theme-song-track strong { color: #103b5d; font-size: 18px; line-height: 1.5; }
.theme-song-track small { color: #647d90; font-size: 10px; line-height: 1.6; }
.theme-song-library { grid-column: 1 / -1; display: grid; gap: 9px; }
.theme-song-library-group { overflow: hidden; background: rgba(255,255,255,.62); border: 1px solid #c6d9e5; border-radius: 7px; }
.theme-song-library-group summary { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 9px; align-items: center; padding: 9px 11px; color: #184e73; cursor: pointer; list-style: none; }
.theme-song-library-group summary::-webkit-details-marker { display: none; }
.theme-song-library-group summary::after { width: 18px; color: #4684a9; content: "+"; font-size: 16px; font-weight: 500; line-height: 1; text-align: center; }
.theme-song-library-group[open] summary::after { content: "−"; }
.theme-song-library-group summary > span { overflow: hidden; font-size: 11px; font-weight: 850; text-overflow: ellipsis; white-space: nowrap; }
.theme-song-library-group summary > small { color: #6a8293; font-size: 8px; font-weight: 700; white-space: nowrap; }
.theme-song-library-group > p { margin: 0; padding: 0 11px 8px; color: #765e43; font-size: 9px; line-height: 1.6; }
.theme-song-library-group.is-spinoff { background: #fbf7f0; border-color: #dbc9ad; }
.theme-song-library-group.is-spinoff summary { color: #6f5334; }
.theme-song-library-group.is-spinoff summary::after { color: #9a7547; }
.theme-song-library-group.is-ending { background: #f3f8fb; border-color: #c8dce8; }
.theme-song-library-group.is-ending summary { color: #285f7e; }
.theme-song-library-group.is-ending > .theme-song-ending-note { margin: 0 10px 7px; padding: 8px 9px; color: #3f647a; background: #e7f2f7; border-radius: 5px; font-size: 9px; line-height: 1.7; }
.theme-song-ending-note a { display: inline-flex; align-items: center; gap: 3px; margin-left: 5px; color: #176b98; font-weight: 850; white-space: nowrap; text-decoration: none; }
.theme-song-ending-note a:hover { text-decoration: underline; text-underline-offset: 3px; }
.theme-song-versions { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; max-height: 292px; padding: 0 10px; overflow-y: auto; border-top: 1px solid #d9e5ec; scrollbar-color: #9ab9cb transparent; scrollbar-width: thin; }
.theme-song-library-group.is-spinoff .theme-song-versions { max-height: none; border-top-color: #eadfce; }
.theme-song-category { position: sticky; z-index: 1; top: 0; grid-column: 1 / -1; margin: 0; padding: 7px 9px 6px; color: #effaff; background: linear-gradient(90deg, #0b314d, #145879); border-bottom: 1px solid #082a42; box-shadow: 0 3px 8px rgba(8,45,68,.2); font-size: 8px; font-weight: 850; letter-spacing: .05em; }
.theme-song-versions button { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: center; min-width: 0; padding: 8px 3px; color: #49677d; background: transparent; border: 0; border-bottom: 1px solid #dce6ec; border-radius: 0; cursor: pointer; font: inherit; text-align: left; transition: color .16s ease, background-color .16s ease; }
.theme-song-versions button:last-child { border-bottom: 0; }
.theme-song-versions button:hover { color: #164f73; background: rgba(225,241,249,.55); }
.theme-song-versions button:focus-visible { outline: 3px solid rgba(24,128,180,.25); outline-offset: 2px; }
.theme-song-versions button.is-current { color: #0b3a5e; background: #e5f3fa; box-shadow: none; }
.theme-song-player.is-playing .theme-song-versions button.is-current strong::before { margin-right: 5px; color: #1678a8; content: "♪"; }
.theme-song-versions strong { overflow: hidden; font-size: 10px; line-height: 1.45; text-overflow: ellipsis; white-space: nowrap; }
.theme-song-versions small { display: inline-flex; min-height: 18px; align-items: center; justify-self: end; padding: 2px 7px; color: #4d6d82; background: #edf5f9; border: 1px solid #d0e0e8; border-radius: 999px; font-size: 7px; font-weight: 750; line-height: 1.25; white-space: nowrap; }
.theme-song-versions button.is-current small { color: #174f70; background: #fff; border-color: #b8d5e5; }
.theme-song-origin-note { grid-column: 1 / -1; margin: 0; padding: 9px 11px; color: #577186; background: rgba(255,255,255,.55); border-radius: 5px; font-size: 10px; line-height: 1.65; }
.theme-song-origin-note strong { margin-right: 8px; color: #1d628d; font-size: 9px; letter-spacing: .04em; }
.theme-song-production-note { grid-column: 1 / -1; margin: -8px 2px 0; color: #6b7f8e; font-size: 9px; line-height: 1.6; }
.theme-song-end-mode { grid-column: 1 / -1; margin: -7px 0 0; color: #436579; font-size: 9px; font-weight: 800; text-align: right; }
.mobile-music-jump,
.theme-song-mobile-controls,
.theme-song-floating-controls { display: none; }
.mobile-music-jump[hidden],
.theme-song-mobile-controls[hidden],
.theme-song-floating-controls[hidden] { display: none !important; }
.theme-song-remote-buttons { display: flex; align-items: stretch; gap: 4px; }
.theme-song-mobile-controls button,
.theme-song-floating-controls button { display: grid; min-width: 42px; min-height: 42px; place-items: center; gap: 1px; padding: 5px 7px; color: #dcecf7; background: transparent; border: 1px solid rgba(255,255,255,.14); border-radius: 6px; cursor: pointer; font: inherit; transition: color .15s ease, background-color .15s ease, border-color .15s ease; }
.theme-song-mobile-controls button:hover,
.theme-song-mobile-controls button:focus-visible,
.theme-song-floating-controls button:hover,
.theme-song-floating-controls button:focus-visible { color: #fff; background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.3); outline: none; }
.theme-song-mobile-controls button.is-active,
.theme-song-floating-controls button.is-active { color: #082f4c; background: #a5def8; border-color: #a5def8; }
.theme-song-mobile-controls button > span,
.theme-song-floating-controls button > span { font-size: 12px; font-weight: 850; line-height: 1; }
.theme-song-mobile-controls button > small,
.theme-song-floating-controls button > small { font-size: 7px; font-weight: 750; line-height: 1.2; white-space: nowrap; }
.theme-song-remote-track { display: grid; min-width: 0; gap: 1px; overflow: hidden; border-radius: 4px; cursor: pointer; }
.theme-song-remote-track:hover { background: rgba(255,255,255,.07); }
.theme-song-remote-track:focus-visible { outline: 2px solid #a5def8; outline-offset: 3px; }
.theme-song-remote-track > strong { overflow: hidden; color: #fff; font-size: 10px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.theme-song-remote-track > small { overflow: hidden; color: #9fc7dc; font-size: 7px; font-weight: 750; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.theme-song-mobile-controls .theme-song-remote-close,
.theme-song-floating-controls .theme-song-remote-close { min-width: 34px; min-height: 34px; align-self: center; padding: 3px; border-radius: 50%; font-size: 16px; }
.theme-song-remote-progress { position: relative; grid-column: 1 / -1; width: 100%; height: 4px; margin-top: 2px; overflow: visible; background: rgba(255,255,255,.2); border-radius: 99px; }
.theme-song-remote-progress input { position: absolute; z-index: 2; inset: -9px 0; width: 100%; height: 22px; margin: 0; opacity: 0; cursor: pointer; }
.theme-song-remote-progress:focus-within { box-shadow: 0 0 0 3px rgba(165,222,248,.35); }
.theme-song-remote-progress i { position: absolute; top: -3px; left: 0; width: 2px; height: 10px; background: #a5def8; border-radius: 2px; box-shadow: 0 0 0 2px rgba(7,42,69,.62); transform: translateX(-1px); transition: left .08s linear; }
.utility-music-jump { display: grid; grid-template-columns: auto auto; gap: 6px; align-items: center; flex: 0 0 auto; min-height: 40px; padding: 7px 11px; color: #164f73; background: #f0f7fb; border: 1px solid #bfd6e4; border-radius: 999px; cursor: pointer; font: inherit; }
.utility-music-jump span { display: inline-block; font-size: 18px; line-height: 1; transform-origin: 50% 80%; }
.utility-music-jump small { font-size: 9px; font-weight: 800; }
.utility-music-jump:hover,
.utility-music-jump:focus-visible { color: #fff; background: #176f9f; border-color: #176f9f; outline: 3px solid rgba(23,111,159,.2); outline-offset: 2px; }
.music-jump.is-playing span { animation: theme-song-note-sway .62s ease-in-out infinite alternate; }
.theme-song-player audio { grid-column: 1 / -1; width: 100%; }
.theme-song-player.is-enhanced audio { display: none; }
.theme-song-controls { grid-column: 1 / -1; display: grid; grid-template-columns: auto minmax(220px, 1fr) auto; gap: 16px; align-items: center; padding-top: 15px; border-top: 1px solid #ccdde8; }
.theme-song-controls[hidden] { display: none; }
.theme-song-controls button { display: inline-flex; min-width: 88px; min-height: 43px; justify-content: center; align-items: center; gap: 8px; padding: 8px 14px; color: #fff; background: #123f64; border: 0; border-radius: 6px; box-shadow: 0 3px 0 #082b47; cursor: pointer; font: inherit; transition: background-color .16s ease, transform .16s ease, box-shadow .16s ease; }
.theme-song-controls button:hover { background: #197cae; transform: translateY(-1px); box-shadow: 0 4px 0 #0d4e72; }
.theme-song-controls button:active { transform: translateY(2px); box-shadow: 0 1px 0 #082b47; }
.theme-song-controls button:focus-visible { outline: 3px solid rgba(24,128,180,.25); outline-offset: 3px; }
.theme-song-controls button i { width: 13px; font-size: 14px; font-style: normal; line-height: 1; text-align: center; }
.theme-song-controls button strong { font-size: 11px; }
.theme-song-timeline { display: grid; grid-template-columns: 34px minmax(0, 1fr) 34px; gap: 8px; align-items: center; }
.theme-song-timeline > span { color: #526f84; font-size: 10px; font-variant-numeric: tabular-nums; text-align: center; }
.theme-song-controls input[type="range"] { width: 100%; height: 24px; margin: 0; accent-color: #2083b8; cursor: pointer; }
.theme-song-controls input[type="range"]:focus-visible { outline: 3px solid rgba(32,131,184,.22); outline-offset: 2px; border-radius: 4px; }
.theme-song-volume { display: grid; grid-template-columns: auto 80px; gap: 8px; align-items: center; }
.theme-song-volume > span { color: #46667e; font-size: 10px; font-weight: 800; }

@media (max-width: 1180px) {
  .home-theme-song { grid-template-columns: minmax(0, 1fr); gap: 15px; }
}

@media (max-width: 760px) {
  #theme-song { scroll-margin-top: 92px; }
  .utility-music-jump { display: none; }
  .mobile-music-jump { display: grid; width: 38px; height: 38px; flex: 0 0 auto; place-items: center; padding: 0; color: #0d466e; background: #edf7fc; border: 1px solid #9ec8df; border-radius: 50%; box-shadow: 0 3px 8px rgba(13,58,88,.1); cursor: pointer; font: inherit; }
  .mobile-music-jump:hover,
  .mobile-music-jump:focus-visible { color: #fff; background: #176f9f; border-color: #176f9f; outline: 3px solid rgba(23,111,159,.2); outline-offset: 2px; }
  .mobile-music-jump span { font-size: 18px; line-height: 1; transform: translateY(-1px); }
  .theme-song-mobile-controls:not([hidden]) { position: fixed; z-index: 90; right: 8px; bottom: calc(82px + env(safe-area-inset-bottom)); left: 8px; display: grid; grid-template-columns: auto minmax(48px, 1fr) auto; align-items: center; gap: 6px 8px; padding: 8px 9px 7px; color: #fff; background: rgba(7,42,69,.96); border: 1px solid rgba(153,211,240,.24); border-radius: 9px; box-shadow: 0 10px 24px rgba(4,31,51,.22); backdrop-filter: blur(12px); }
  .theme-song-mobile-controls .theme-song-remote-track { min-width: 0; max-width: none; }
  .theme-song-mobile-controls .theme-song-remote-buttons { flex: 0 0 auto; }
  .theme-song-mobile-controls button { min-width: 38px; min-height: 38px; padding: 4px 5px; }
  .home-theme-song { margin-top: 20px; }
  .home-theme-song-heading p { font-size: 11px; }
  .theme-song-player { grid-template-columns: 62px minmax(0, 1fr); gap: 14px; padding: 17px; border-radius: 9px; }
  .theme-song-visual { width: 62px; height: 62px; }
  .theme-song-track strong { font-size: 16px; }
  .theme-song-controls { grid-template-columns: auto minmax(0, 1fr); gap: 13px 10px; }
  .theme-song-controls button { min-width: 80px; }
  .theme-song-timeline { grid-template-columns: 30px minmax(0, 1fr) 30px; gap: 4px; }
  .theme-song-volume { grid-column: 1 / -1; grid-template-columns: auto minmax(0, 145px); }
  .theme-song-library-group summary { grid-template-columns: minmax(0, 1fr) auto; gap: 5px 8px; }
  .theme-song-library-group summary > small { grid-column: 1 / -1; grid-row: 2; white-space: normal; }
  .theme-song-library-group summary::after { grid-column: 2; grid-row: 1 / span 2; }
  .theme-song-versions { grid-template-columns: minmax(0, 1fr); max-height: 286px; }
  .theme-song-library-group.is-spinoff .theme-song-versions { max-height: none; }
}

@media (max-width: 480px) {
  .mobile-header-actions { gap: 5px; }
  .internal-mode-mobile small { display: none; }
  .mobile-music-jump { width: 36px; height: 36px; }
  .theme-song-mobile-controls { left: 6px; right: 6px; }
  .theme-song-mobile-controls .theme-song-remote-track > strong { font-size: 9px; }
  .theme-song-mobile-controls .theme-song-remote-buttons { gap: 3px; }
  .theme-song-mobile-controls button { min-width: 36px; min-height: 37px; }
}

@media (min-width: 761px) {
  .theme-song-floating-controls:not([hidden]) { position: fixed; z-index: 95; right: 20px; bottom: 20px; left: calc(var(--sidebar) + 20px); display: grid; grid-template-columns: auto minmax(76px, 1fr) auto; align-items: center; gap: 6px 13px; padding: 9px 10px 8px; color: #fff; background: rgba(7,42,69,.94); border: 1px solid rgba(153,211,240,.25); border-radius: 10px; box-shadow: 0 14px 32px rgba(4,31,51,.25); backdrop-filter: blur(12px); }
  .theme-song-floating-controls .theme-song-remote-track { min-width: 110px; max-width: 155px; }
}

@media (min-width: 1181px) {
  .theme-song-floating-controls:not([hidden]) { right: 28px; bottom: 24px; left: auto; max-width: min(560px, calc(100vw - var(--sidebar) - 56px)); }
}

@media (prefers-reduced-motion: reduce) {
  .theme-song-player.is-playing .theme-song-visual { animation: none; }
  .music-jump.is-playing span { animation: none; }
  .theme-song-controls button { transition: none; }
}

@keyframes theme-song-rotate { to { transform: rotate(360deg); } }
@keyframes theme-song-note-sway { from { transform: rotate(-13deg) translateY(1px); } to { transform: rotate(13deg) translateY(-1px); } }
