/* Seasonal skin. Remove this stylesheet link and body class to restore the base theme. */
body.theme-halloween {
    color-scheme: dark;
    --color-primary: #ffab66;
    --color-primary-hover: #ffd0a0;
    --color-heading: #fff5e9;
    --color-text: #f0e6f4;
    --color-text-muted: #c4b5cd;
    --color-background: #140f1d;
    --color-surface: #241b31;
    --color-border: #493852;
    --color-input-border: #786185;
    --color-info-bg: #35233e;
    --color-success: #91deb0;
    --color-warning: #ffca72;
    --color-danger: #ffafc2;
    --color-danger-bg: #431d30;
    --color-danger-border: #a3506c;
    --shadow-soft: 0 8px 28px rgb(5 2 12 / 18%);
    --focus-ring: 0 0 0 3px rgb(255 171 102 / 38%);
    min-height: 100vh;
    background:
        radial-gradient(ellipse at 92% 5%, rgb(255 139 53 / 10%), transparent 32rem),
        radial-gradient(ellipse at 5% 24%, rgb(130 80 180 / 15%), transparent 38rem),
        var(--color-background);
}

.theme-halloween ::selection {
    background: #ffab66;
    color: #241326;
}

/* A small decoration shared by portal pages and standalone ad hoc views. */
.theme-halloween > main.container::before {
    content: "";
    display: block;
    width: 2rem;
    height: 2rem;
    margin: 0 0 0.5rem auto;
    background: url("halloween-pumpkin.e1b3b9233082.svg") center / contain no-repeat;
    pointer-events: none;
}

.theme-halloween .site-header {
    background: #1b1425;
    border-bottom-color: #61412f;
    box-shadow: 0 3px 22px rgb(0 0 0 / 16%);
}

.theme-halloween .brand {
    background: #fff7ee;
    border: 1px solid #e9c4a3;
    box-shadow: 0 0 22px rgb(255 155 74 / 8%);
}

.theme-halloween .brand::after {
    content: "";
    display: block;
    width: 2rem;
    height: 2rem;
    flex: 0 0 2rem;
    margin-left: 0.3rem;
    background: url("halloween-pumpkin.e1b3b9233082.svg") center / contain no-repeat;
}

.theme-halloween .site-header__menu > a,
.theme-halloween .site-header__menu--public > a,
.theme-halloween .site-header__brand-row .management-link {
    border-color: transparent;
}

.theme-halloween .site-header__menu > a:hover,
.theme-halloween .site-header__menu--public > a:hover {
    background: #35233e;
}

.theme-halloween .site-header select {
    padding: 0.35rem 0.45rem;
    border: 1px solid var(--color-input-border);
    border-radius: 7px;
    background: var(--color-surface);
    color: var(--color-text);
}

.theme-halloween .card {
    border-radius: 18px;
}

.theme-halloween .home-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(1.25rem, 3vw, 2.5rem);
    border: 1px solid #815236;
    border-radius: 24px;
    background:
        linear-gradient(100deg, #2b1c31 0%, #21182d 54%, rgb(39 23 45 / 55%) 100%),
        #21182d;
    box-shadow: 0 18px 70px rgb(0 0 0 / 20%), inset 0 1px 0 rgb(255 208 160 / 8%);
}

.theme-halloween .home-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: url("halloween-night.dbb8febb69b1.svg") right top / auto 100% no-repeat;
    pointer-events: none;
}

.theme-halloween .home-hero::after {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 7rem;
    height: 7rem;
    border-top: 2px solid rgb(255 208 160 / 22%);
    border-left: 2px solid rgb(255 208 160 / 22%);
    border-radius: 0 0 100% 0;
    pointer-events: none;
}

.theme-halloween .home-hero h1 {
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 3.6vw, 3.7rem);
    line-height: 1.08;
    letter-spacing: -0.035em;
    text-wrap: balance;
}

.theme-halloween .home-hero .eyebrow {
    color: #ffba79;
    letter-spacing: 0.12em;
}

.theme-halloween .home-hero__callout {
    border: 1px solid #705041;
    border-left: 3px solid #ffab66;
    background: rgb(255 171 102 / 6%);
    box-shadow: none;
}

.theme-halloween .home-badge {
    border: 1px solid rgb(255 171 102 / 24%);
    background: #4a2e34;
    color: #ffd0a0;
}

.theme-halloween .home-video-trigger,
.theme-halloween .home-video-player {
    outline: 1px solid rgb(255 171 102 / 45%);
    outline-offset: 5px;
    box-shadow: 0 12px 45px rgb(0 0 0 / 36%);
}

.theme-halloween :where(button:not(.google-sign-in-button), .button) {
    background: #ffab66;
    color: #28172a;
}

.theme-halloween :where(button:not(.google-sign-in-button), .button):hover {
    background: #ffc18d;
    color: #28172a;
}

.theme-halloween .button--ghost {
    border: 1px solid #896046;
    background: #2d2032;
    color: #ffc18d;
}

.theme-halloween .button--ghost:hover {
    background: #432a3b;
    color: #ffdfbb;
}

.theme-halloween .button--danger {
    background: #a8254c;
    color: #fff5e9;
}

.theme-halloween .button--danger:hover {
    background: #c12e59;
    color: #fff5e9;
}

.theme-halloween .home-video-trigger__play {
    background: #ffab66;
    color: #28172a;
}

.theme-halloween .course-row.course-card--featured {
    border-color: #a56b3b;
    background: linear-gradient(110deg, #392435, #251c32);
}

.theme-halloween .course-card--featured {
    background: linear-gradient(135deg, #392435, #241b31 70%);
}

.theme-halloween .course-badge,
.theme-halloween .topic-pill,
.theme-halloween .category-filter {
    --section-accent: #ffc18d;
    --section-soft: #382637;
    --section-border: #725045;
}

.theme-halloween .course-badge--polski,
.theme-halloween .topic-pill--polski,
.theme-halloween .category-filter--polski {
    --section-accent: #d5b6ff;
    --section-soft: #32253f;
    --section-border: #65517d;
}

.theme-halloween .course-badge--chemia,
.theme-halloween .topic-pill--chemia,
.theme-halloween .category-filter--chemia {
    --section-accent: #afe0aa;
    --section-soft: #26382d;
    --section-border: #4d6f51;
}

.theme-halloween .course-badge--jezyki_obce,
.theme-halloween .topic-pill--jezyki_obce,
.theme-halloween .category-filter--jezyki_obce {
    --section-accent: #ffb4c4;
    --section-soft: #3f2536;
    --section-border: #7d4d65;
}

.theme-halloween .course-badge--it,
.theme-halloween .topic-pill--it,
.theme-halloween .category-filter--it {
    --section-accent: #c5c3ff;
    --section-soft: #2c2947;
    --section-border: #605b88;
}

.theme-halloween .course-badge--iot,
.theme-halloween .topic-pill--iot,
.theme-halloween .category-filter--iot {
    --section-accent: #a1dfd3;
    --section-soft: #233a39;
    --section-border: #45706a;
}

.theme-halloween .course-badge {
    background: var(--section-soft);
}

.theme-halloween .topic-pill {
    box-shadow: none;
    transition: border-color 0.2s ease, background-color 0.2s ease;
}

.theme-halloween .topic-pill:hover {
    border-color: var(--section-accent);
}

.theme-halloween .message {
    border-color: #896046;
    background: #382637;
}

.theme-halloween .message.success,
.theme-halloween .payment-demo-notice {
    border-color: #53956d;
    background: #1e352b;
    color: #b5f0c9;
}

.theme-halloween .message.warning,
.theme-halloween .user-role--organizer {
    color: #ffcf8c;
}

.theme-halloween .message p,
.theme-halloween .payment-demo-notice p {
    color: inherit;
}

.theme-halloween .site-footer {
    border-color: #61412f;
    color: var(--color-text-muted);
}

.theme-halloween .adhoc-task .adhoc-pin {
    background: #ffab66;
    color: #28172a;
    border-color: #28172a;
}

.theme-halloween .adhoc-task .adhoc-letter-grid button {
    background: #2d2032;
    color: #f0e6f4;
    border-color: #786185;
}

.theme-halloween .adhoc-task .adhoc-letter-grid button:hover,
.theme-halloween .adhoc-task .adhoc-letter-grid button[aria-pressed="true"] {
    background: #ffab66;
    color: #28172a;
}

.theme-halloween a:focus-visible,
.theme-halloween button:focus-visible,
.theme-halloween input:focus-visible,
.theme-halloween textarea:focus-visible,
.theme-halloween select:focus-visible {
    outline: 2px solid #ffca8c;
    outline-offset: 3px;
}

@media (max-width: 640px) {
    .theme-halloween .home-hero::before {
        opacity: 0.5;
        background-size: auto 45%;
    }

    .theme-halloween .home-hero h1 {
        font-size: clamp(1.9rem, 8.5vw, 2.6rem);
    }

    .theme-halloween .brand::after {
        width: 1.6rem;
        height: 1.6rem;
        flex-basis: 1.6rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .theme-halloween .topic-pill {
        transition: none;
        transform: none;
    }
}

@media print {
    body.theme-halloween {
        color-scheme: light;
        --color-heading: #172033;
        --color-text: #172033;
        --color-text-muted: #465063;
        --color-surface: #fff;
        --color-primary: #70360e;
        --color-primary-hover: #70360e;
        background: white;
    }

    .theme-halloween .home-hero,
    .theme-halloween .card {
        background: white;
        box-shadow: none;
    }

    .theme-halloween .home-hero::before,
    .theme-halloween .home-hero::after,
    .theme-halloween > main.container::before,
    .theme-halloween .brand::after {
        display: none;
    }
}
