/* Shared interaction polish; keep page layouts and media controls independent. */
:root {
    --ui-fast: 150ms;
    --ui-ease: cubic-bezier(.2, .7, .3, 1);
    scroll-padding-top: calc(var(--yz-nav-height, 72px) + 16px);
}
.main-content :is(a, button, input, select, textarea, summary):focus-visible {
    outline: 2px solid var(--linime-blue, #83c3ff);
    outline-offset: 3px;
}
:is(.anime-card, .manga-card, .season-card, .mc-card, .community-post-card) {
    transition: transform var(--ui-fast) var(--ui-ease), border-color var(--ui-fast) ease, background-color var(--ui-fast) ease;
}
:is(.btn, .info-tab, .community-tab, .pwa-nav-install) {
    transition: background-color var(--ui-fast) ease, border-color var(--ui-fast) ease, color var(--ui-fast) ease;
}
@media (hover: hover) and (pointer: fine) {
    :is(.anime-card, .manga-card, .season-card, .mc-card, .community-post-card):hover {
        transform: translateY(-2px);
        border-color: rgba(131, 195, 255, .28);
    }
}
/* Tab content stays immediately available; only its paint eases in. */
body:not(.watch-route) .info-tab-content.active { animation: ui-tab-in 150ms ease-out; }
@keyframes ui-tab-in { from { opacity: .7; } to { opacity: 1; } }
/* The public introduction has its own navigation and no catalog dependencies. */
.landing-page__login { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; max-width: 180px; flex-shrink: 0; }
.landing-page__login span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.landing-page__links a { display: inline-flex; align-items: center; min-height: 44px; }
.landing-page__hero::before { animation-duration: 1.2s; animation-iteration-count: 1; animation-fill-mode: both; }
@media (max-width: 960px) { .landing-page__links { display: none; } }
@media (max-width: 480px) {
    .landing-page h1 { font-size: clamp(2.25rem, 10.5vw, 3rem); }
    .landing-page__hero-inner { padding-top: 6rem; }
    .landing-page__login { max-width: 130px; padding-inline: 12px; }
    .landing-page__brand .linime-wordmark { font-size: 1.25rem; }
}
@media (max-width: 360px) {
    .landing-page__nav-inner { padding-inline: 12px; }
    .landing-page__brand .linime-domain { display: none; }
}
.site-navigation-progress {
    position: fixed; inset: 0 0 auto; height: 2px; z-index: 10001;
    pointer-events: none; overflow: hidden; background: rgba(131, 195, 255, .12);
}
.site-navigation-progress[hidden] { display: none; }
.site-navigation-progress::after {
    content: ''; display: block; width: 40%; height: 100%;
    background: var(--linime-blue, #83c3ff);
    animation: ui-navigation-progress 1.1s ease-in-out infinite;
}
@keyframes ui-navigation-progress {
    from { transform: translateX(-100%); }
    to { transform: translateX(350%); }
}
@media (max-width: 768px) {
    /* Prevent Safari zooming the layout when a form receives focus. */
    :is(.main-content, .header-search-overlay) :is(input, select, textarea) { font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) {
    :is(.anime-card, .manga-card, .season-card, .mc-card, .community-post-card, .btn, .info-tab, .community-tab, .pwa-nav-install) { transition: none; }
    :is(.anime-card, .manga-card, .season-card, .mc-card, .community-post-card):hover { transform: none; }
    body:not(.watch-route) .info-tab-content.active { animation: none; }
    .site-navigation-progress::after { width: 100%; animation: none; }
}

[data-media-favorite].is-favorited { color: #9cccff; border-color: rgba(131, 185, 250, .4); }
[data-media-favorite].is-favorited svg { fill: rgba(131, 185, 250, .15); }
.media-favorite-status { color: #9cccff; font-size: .8125rem; line-height: 1.6; }
.anime-actions .media-favorite-status { flex-basis: 100%; order: 3; margin: 0; }
[data-media-favorite][aria-busy=true] { cursor: progress; }
