/*
 * TERRA ICON public theme adapter.
 *
 * The page styles keep their layout, typography and branded artwork. This
 * layer only maps public components to the semantic tokens defined for both
 * Dark Gold and Light Gold in variables.css.
 */

/* Home landing. */
.home-status-panel {
    background: var(--public-surface-subtle);
    box-shadow: var(--public-shadow-panel);
}

.home-status-badge.is-open,
.home-status-badge.is-live {
    box-shadow: var(--shadow-accent);
}

.home-participant-photo {
    background: var(--public-surface-featured);
}

.home-hero,
.home-hero h1 {
    color: var(--color-image-text);
}

.home-hero .home-hero-kicker,
.home-hero .home-hero-state-note {
    color: var(--color-image-accent);
}

.home-hero .home-hero-text {
    color: var(--color-image-text-secondary);
}

.home-hero .btn-outline {
    color: var(--color-image-text);
    border-color: var(--public-border-strong);
    background: var(--color-image-overlay-soft);
}

/* About, rules and contacts. */
.ti-about-hero,
.ti-rules-hero,
.ti-contacts-hero,
.ti-contacts-message,
.ti-about-final,
.ti-rules-principle {
    border-color: var(--public-border-medium);
    background: var(--public-surface-hero);
    box-shadow: var(--public-shadow-panel);
}

.ti-about-quote,
.ti-about-path,
.ti-rule-card.is-featured {
    border-color: var(--public-border-medium);
    background: var(--public-surface-featured);
}

.ti-about-icon,
.ti-about-path-icon,
.ti-about-step-icon,
.ti-about-value-list article > span,
.ti-rules-nav-icon,
.ti-rule-number,
.ti-rule-check,
.ti-rules-principle-icon,
.ti-contact-icon,
.ti-contacts-message-icon {
    border-color: var(--public-border-medium);
    color: var(--color-accent-text-strong);
}

.ti-about-icon,
.ti-about-step-icon,
.ti-rule-number,
.ti-contact-icon {
    background: var(--public-surface-subtle);
}

.ti-about-note,
.ti-about-step,
.ti-about-value-list article,
.ti-rule-list li,
.ti-contact-card {
    border-color: var(--public-border-soft);
    background: var(--public-surface-item);
}

.ti-about-path-number,
.ti-about-step-number,
.ti-contact-number,
.ti-rules-nav a span {
    color: var(--public-text-number);
}

.ti-rules-nav-head,
.ti-rule-card-head {
    border-bottom-color: var(--public-border-soft);
}

.ti-rules-nav a:hover,
.ti-rules-nav a:focus-visible {
    color: var(--color-accent-text-strong);
    background: var(--public-surface-item-hover);
}

.ti-rule-note {
    border-color: var(--public-border-medium);
    background: var(--public-surface-subtle);
}

.ti-rule-list li,
.ti-rule-note p {
    color: var(--color-text-secondary);
}

/* Participant catalog and mobile filters. */
.ti-catalog-summary-item {
    border-color: var(--public-border-medium);
    background: var(--public-surface-subtle);
}

.ti-catalog-filter {
    border-color: var(--public-border-soft);
    color: var(--color-text-secondary);
    background: var(--public-surface-item);
}

.ti-catalog-filter:hover,
.ti-catalog-filter:focus-visible,
.ti-catalog-filter.is-active {
    color: var(--color-text-on-accent);
    border-color: var(--color-accent);
    background: var(--gradient-button-primary);
}

.ti-catalog-filter-count {
    color: var(--color-text-on-accent);
    background: var(--gradient-button-primary);
}

.ti-catalog-filter-overlay {
    background: var(--color-backdrop);
}

.ti-catalog-filter-panel {
    border-color: var(--public-border-medium);
    background: var(--public-surface-sheet);
    box-shadow: var(--public-shadow-sheet);
}

.ti-catalog-filter-close,
.ti-catalog-filter-status {
    border-color: var(--public-border-medium);
    color: var(--color-accent-text-strong);
    background: var(--color-accent-soft);
}

.ti-catalog-field > span:first-child {
    color: var(--color-text-secondary);
}

.ti-catalog-control input,
.ti-catalog-control select {
    border-color: var(--color-border-control);
    color: var(--color-text-primary);
    background: var(--public-surface-control);
}

.ti-catalog-control input::placeholder {
    color: var(--color-placeholder);
}

.ti-catalog-control input:focus,
.ti-catalog-control select:focus {
    border-color: var(--color-border-control-hover);
    background: var(--public-surface-control-focus);
    box-shadow: 0 0 0 3px var(--color-accent-soft);
}

.ti-catalog-control select:disabled {
    color: var(--color-disabled-text);
}

.ti-catalog-control select option {
    color: var(--public-control-option-text);
    background: var(--public-control-option-surface);
}

.ti-catalog-filter-actions {
    background: var(--public-surface-filter-actions);
}

.ti-catalog-card {
    border-color: var(--public-border-medium);
    background: var(--public-surface-catalog-card);
    box-shadow: var(--public-shadow-card);
}

.ti-catalog-card:hover {
    border-color: var(--public-border-strong);
    box-shadow: var(--public-shadow-card-hover);
}

.ti-catalog-photo {
    border-right-color: var(--public-border-soft);
}

.ti-catalog-photo .ti-catalog-initials {
    color: var(--color-image-accent);
}

.ti-catalog-badge,
.ti-catalog-open {
    border-color: var(--public-border-medium);
    color: var(--color-accent-text-strong);
    background: var(--color-accent-soft);
}

/* Public participant profile. Photo and media viewers remain inverse islands. */
.ti-profile-shell {
    border-color: var(--public-border-medium);
    background: var(--public-surface-profile);
    box-shadow: var(--public-shadow-profile);
}

.ti-profile-toolbar,
.ti-profile-hero,
.ti-profile-details,
.ti-profile-support-wrap,
.ti-profile-media-section {
    border-bottom-color: var(--public-border-soft);
}

.ti-profile-main-photo {
    border-right-color: var(--public-border-soft);
}

.ti-profile-main-photo .ti-profile-initials {
    color: var(--color-image-accent);
}

.ti-profile-badges span,
.ti-profile-social-list a,
.ti-profile-community,
.ti-profile-empty-media {
    border-color: var(--public-border-soft);
    background: var(--public-surface-item);
}

.ti-profile-quote,
.ti-profile-duel-cta {
    border-color: var(--public-border-medium);
    background: var(--public-surface-subtle);
}

.ti-profile-social-list a:hover,
.ti-profile-social-list a:focus-visible {
    border-color: var(--public-border-strong);
    background: var(--public-surface-item-hover);
}

.ti-social-icon,
.ti-duel-icon {
    border-color: var(--public-border-medium);
    color: var(--color-accent-text-strong);
    background: var(--color-accent-soft);
}

.ti-profile-support-button {
    border-color: var(--color-border-strong);
    color: var(--color-text-on-accent);
    background: var(--gradient-button-primary);
    box-shadow: var(--shadow-button-primary);
}

.ti-profile-support-button.is-supported,
.ti-profile-support-button.is-disabled {
    color: var(--color-accent-text-strong);
    background: var(--color-accent-soft);
}

.ti-profile-back:focus-visible,
.ti-profile-social-list a:focus-visible,
.ti-profile-support-button:focus-visible,
.ti-media-controls button:focus-visible,
.ti-media-item:focus-visible,
.ti-profile-duel-button:focus-visible {
    outline: 2px solid var(--color-focus-ring);
    outline-offset: 3px;
}

/* Seasons, public results, rankings and archives. */
.ti-seasons-hero,
.ti-open-results-card {
    border-color: var(--public-border-medium);
    background: var(--public-surface-hero);
}

.ti-stage-chips span,
.ti-archive-ranks span,
.ti-dashboard-season-history a {
    border-color: var(--public-border-soft);
    background: var(--public-surface-item);
}

.ti-archive-tabs {
    border-color: var(--public-border-soft);
    background: var(--public-surface-tabs);
}

.ti-archive-tabs a:hover,
.ti-archive-tabs a:focus-visible {
    border-color: var(--public-border-strong);
    color: var(--color-accent-text-strong);
}

.ti-open-results-card h2,
.ti-open-results-page-head h1,
.ti-open-results-filter label,
.ti-ranking-intro h2,
.ti-lux-rating-section > h3 {
    color: var(--public-text-rich);
}

.ti-ranking-intro > p:last-child {
    color: var(--public-text-body);
}

.ti-open-results-filter select {
    border-color: var(--color-border-control);
    color: var(--color-text-primary);
    background: var(--public-surface-control);
}

.ti-open-results-table th,
.ti-open-results-table td,
.ti-ranking-table th,
.ti-ranking-table td,
.ti-lux-ranking-head,
.ti-lux-ranking-row,
.ti-duel-ranking-head,
.ti-duel-ranking-row {
    border-bottom-color: var(--public-divider);
}

.ti-open-results-table th {
    color: var(--color-text-secondary);
    background: var(--public-surface-table-head);
}

.ti-ranking-table tbody tr.is-winner {
    background: var(--public-surface-row-winner);
}

.ti-ranking-table tbody tr.is-finalist {
    background: var(--public-surface-row-finalist);
}

.ti-ranking-person {
    color: var(--color-text-primary);
}

.ti-ranking-status {
    border-color: var(--public-border-soft);
    color: var(--color-text-secondary);
}

/* Season winner presentation remains an intentional dark photographic island. */
.ti-duel-winner-card,
.ti-community-winner-card,
.ti-duel-archive-ranking .ti-duel-winner-card,
.ti-community-winner-copy,
.ti-duel-winner-copy {
    color: var(--color-image-text);
}

/* Journal: paper cards stay paper; the surrounding chrome follows the theme. */
.journal-masthead {
    border-color: var(--public-border-medium);
    color: var(--color-text-primary);
    background: var(--public-surface-editorial);
}

.journal-masthead h1 {
    color: var(--color-text-primary);
}

.journal-masthead-rule,
.journal-eyebrow {
    color: var(--color-accent-text);
}

.journal-subtitle {
    color: var(--public-text-editorial);
}

.journal-description,
.journal-unread-count {
    color: var(--public-text-soft);
}

.journal-back-link,
.journal-copy-button {
    border-color: var(--public-border-medium);
    color: var(--color-accent-text-strong);
    background: var(--public-surface-control);
}

.journal-back-link:hover,
.journal-copy-button:hover {
    border-color: var(--public-border-strong);
    background: var(--public-surface-item-hover);
}

.journal-related > header h2 {
    color: var(--color-text-primary);
}

.journal-related > header p:last-child,
.journal-copy-status {
    color: var(--color-text-secondary);
}

.journal-more,
.journal-status {
    border-color: var(--public-border-medium);
    color: var(--color-accent-text-strong);
    background: var(--public-surface-featured);
}

/* Prize fund is a branded inverse campaign card inside the selected page theme. */
.prize-fund-page {
    color: var(--color-text-primary);
    background: var(--background-page);
}

.prize-fund-shell {
    color: var(--color-image-text);
}

/* Theme changes are restrained and respect reduced motion. */
html.theme-transitioning .home-status-panel,
html.theme-transitioning .ti-catalog-card,
html.theme-transitioning .ti-catalog-filter-panel,
html.theme-transitioning .ti-profile-shell,
html.theme-transitioning .ti-seasons-hero,
html.theme-transitioning .journal-masthead {
    transition-duration: 200ms;
    transition-property: background-color, border-color, color, box-shadow;
    transition-timing-function: ease;
}

@media (max-width: 760px) {
    .ti-ranking-table tr {
        border-bottom-color: var(--public-divider);
    }
}

@media (prefers-reduced-motion: reduce) {
    html.theme-transitioning .home-status-panel,
    html.theme-transitioning .ti-catalog-card,
    html.theme-transitioning .ti-catalog-filter-panel,
    html.theme-transitioning .ti-profile-shell,
    html.theme-transitioning .ti-seasons-hero,
    html.theme-transitioning .journal-masthead {
        transition-duration: 1ms;
    }
}
