@import url('https://fonts.googleapis.com/css2?family=Josefin+Sans:wght@400;500;600;700&display=swap');

@font-face {
    font-family: 'DK Snemand';
    src: local('DK Snemand');
    font-display: swap;
}

body.gaemz-theme-spirit-island {
    --gaemz-spirit-body-font: 'Josefin Sans', 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    --gaemz-spirit-header-font: 'DK Snemand', 'Josefin Sans', 'Palatino Linotype', 'Book Antiqua', serif;
    --gaemz-spirit-card-image: url('images/gaemz/spirit_island/IP_background.png');
    --gaemz-spirit-title-frame-image: url('images/gaemz/spirit_island/title-row-frame.png');
    --gaemz-spirit-card-overlay: linear-gradient(180deg, rgba(255,255,255,0.94), rgba(251,250,246,0.9));
    --gaemz-spirit-card-overlay-soft: linear-gradient(180deg, rgba(255,255,255,0.86), rgba(251,250,246,0.8));
    background:
        radial-gradient(circle at top left, rgba(93, 173, 130, 0.18), transparent 28%),
        radial-gradient(circle at top right, rgba(61, 95, 138, 0.2), transparent 24%),
        linear-gradient(180deg, #eef5ef 0%, #f6f3ea 42%, #fbfaf6 100%);
    font-family: var(--gaemz-spirit-body-font);
}

body.gaemz-theme-spirit-island .content {
    position: relative;
}

body.gaemz-theme-spirit-island .content::before {
    content: '';
    position: fixed;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(135deg, rgba(12, 74, 110, 0.03), transparent 45%),
        linear-gradient(315deg, rgba(22, 101, 52, 0.04), transparent 38%);
    z-index: -1;
}

body.gaemz-theme-spirit-island .gaemz-detail-card {
    background-image: var(--gaemz-spirit-card-overlay), var(--gaemz-spirit-card-image);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

body.gaemz-theme-spirit-island .gaemz-theme-title-row {
    padding: 1.25rem 1.5rem;
    border-radius: 1.35rem;
    background-image: linear-gradient(180deg, rgba(255,255,255,0.12), rgba(255,255,255,0.08)), var(--gaemz-spirit-title-frame-image);
    background-position: center;
    background-repeat: no-repeat;
    background-size: 100% 100%;
}

body.gaemz-theme-spirit-island,
body.gaemz-theme-spirit-island .btn,
body.gaemz-theme-spirit-island .form-control,
body.gaemz-theme-spirit-island .form-select,
body.gaemz-theme-spirit-island .badge,
body.gaemz-theme-spirit-island .gaemz-theme-stat-context,
body.gaemz-theme-spirit-island .gaemz-analytics-table,
body.gaemz-theme-spirit-island .gaemz-analytics-result-meta,
body.gaemz-theme-spirit-island .gaemz-analytics-detail-stat-value,
body.gaemz-theme-spirit-island .gaemz-analytics-player-pill,
body.gaemz-theme-spirit-island .gaemz-analytics-token-pill {
    font-family: var(--gaemz-spirit-body-font);
}

body.gaemz-theme-spirit-island h1,
body.gaemz-theme-spirit-island h2,
body.gaemz-theme-spirit-island h3,
body.gaemz-theme-spirit-island h4,
body.gaemz-theme-spirit-island h5,
body.gaemz-theme-spirit-island h6,
body.gaemz-theme-spirit-island .gaemz-theme-eyebrow,
body.gaemz-theme-spirit-island .gaemz-theme-stat-label,
body.gaemz-theme-spirit-island .gaemz-theme-highlight-label,
body.gaemz-theme-spirit-island .gaemz-analytics-detail-stat-label,
body.gaemz-theme-spirit-island .gaemz-analytics-result-title,
body.gaemz-theme-spirit-island .gaemz-analytics-bar-label {
    font-family: var(--gaemz-spirit-header-font);
    letter-spacing: 0.04em;
}

body.gaemz-theme-spirit-island .gaemz-theme-module-card {
    border-color: rgba(26, 71, 42, 0.18);
    box-shadow: 0 16px 40px rgba(29, 78, 54, 0.12);
    background:
        radial-gradient(circle at top left, rgba(109, 180, 118, 0.12), transparent 32%),
        linear-gradient(180deg, rgba(246, 252, 246, 0.9), rgba(250, 247, 240, 0.84)),
        var(--gaemz-spirit-card-image);
    background-position: top left, center, center;
    background-repeat: no-repeat, no-repeat, no-repeat;
    background-size: auto, auto, cover;
}

body.gaemz-theme-spirit-island .gaemz-theme-stat-card,
body.gaemz-theme-spirit-island .gaemz-theme-callout,
body.gaemz-theme-spirit-island .gaemz-theme-highlight-item,
body.gaemz-theme-spirit-island .gaemz-analytics-panel,
body.gaemz-theme-spirit-island .gaemz-analytics-detail-list-item {
    background-image: var(--gaemz-spirit-card-overlay-soft), var(--gaemz-spirit-card-image);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

body.gaemz-theme-spirit-island .gaemz-theme-eyebrow {
    color: #2d6a4f;
}

body.gaemz-theme-spirit-island .gaemz-theme-chip.is-active {
    background: rgba(45, 106, 79, 0.18);
    color: #1b4332;
}

body.gaemz-theme-spirit-island .gaemz-theme-chip,
body.gaemz-theme-spirit-island .gaemz-analytics-status,
body.gaemz-theme-spirit-island .gaemz-analytics-table th {
    font-family: var(--gaemz-spirit-body-font);
    letter-spacing: 0.06em;
}

body.gaemz-theme-spirit-island .gaemz-theme-chip-row {
    gap: 0.7rem;
}

body.gaemz-theme-spirit-island .gaemz-theme-chip {
    justify-content: center;
    width: 3.35rem;
    height: 3.35rem;
    padding: 0.45rem;
    border: 1px solid rgba(26, 71, 42, 0.12);
    background: rgba(255,255,255,0.55);
    box-shadow: 0 8px 18px rgba(29, 78, 54, 0.08);
}

body.gaemz-theme-spirit-island .gaemz-theme-chip-icon {
    display: block;
    width: 2.1rem;
    height: 2.1rem;
    object-fit: contain;
    filter: grayscale(1);
    opacity: 0.42;
    transition: filter 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

body.gaemz-theme-spirit-island .gaemz-theme-chip:hover .gaemz-theme-chip-icon,
body.gaemz-theme-spirit-island .gaemz-theme-chip:focus-visible .gaemz-theme-chip-icon {
    opacity: 0.62;
}

body.gaemz-theme-spirit-island .gaemz-theme-chip.is-active {
    background: rgba(255,255,255,0.82);
    border-color: rgba(45, 106, 79, 0.26);
}

body.gaemz-theme-spirit-island .gaemz-theme-chip.is-active .gaemz-theme-chip-icon {
    filter: none;
    opacity: 1;
    transform: scale(1.04);
}

body.gaemz-theme-spirit-island .gaemz-theme-chip.is-disabled .gaemz-theme-chip-icon,
body.gaemz-theme-spirit-island .gaemz-theme-chip:disabled .gaemz-theme-chip-icon {
    opacity: 0.24;
}

body.gaemz-theme-spirit-island .gaemz-analytics-detail-stack {
    display: grid;
    gap: 1rem;
}

body.gaemz-theme-spirit-island .gaemz-analytics-detail-list {
    display: grid;
    gap: 0.6rem;
}

body.gaemz-theme-spirit-island .gaemz-analytics-detail-list-item {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.75rem;
    flex-wrap: wrap;
    padding: 0.65rem 0.8rem;
    border-radius: 0.9rem;
    border: 1px solid rgba(26, 71, 42, 0.08);
}

body.gaemz-theme-spirit-island .gaemz-analytics-detail-list-name {
    font-weight: 600;
}

body.gaemz-theme-spirit-island .gaemz-analytics-detail-list-meta {
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #355642;
}