:root {
        --gn-tsiartas-primary: #d90429;
        --gn-tsiartas-secondary: #1b4332;
        --gn-tsiartas-accent: #ffd166;
        --gn-tsiartas-deep: #073b4c;
        --gn-tsiartas-neutral: #f5f3f0;
        --gn-tsiartas-text: #1f1f1f;
        --gn-tsiartas-muted: #6c757d;
        --gn-tsiartas-shadow: rgba(8, 28, 21, 0.28);
        --gn-tsiartas-wheel-size: min(68vw, 28rem);
        --gn-tsiartas-sidebar-width: min(80vw, 22rem);
        --gn-tsiartas-spin-duration: 4.6s;
        --gn-tsiartas-transition: cubic-bezier(0.23, 1, 0.32, 1);
}

.gn-tsiartas-spin-to-win {
        --segment-angle: 0deg;
        --rotation-angle: 0deg;
        display: flex;
        flex-wrap: wrap;
        gap: 2.5rem;
        margin: 0 auto;
        padding: clamp(1.5rem, 2vw, 2.5rem);
        background: linear-gradient(135deg, rgba(255, 255, 255, 0.92), rgba(245, 243, 240, 0.95));
        border-radius: 2.5rem;
        box-shadow: 0 2rem 4rem -1.5rem rgba(7, 59, 76, 0.35);
        color: var(--gn-tsiartas-text);
        position: relative;
        overflow: hidden;
}

.gn-tsiartas-spin-to-win::before {
        content: '';
        position: absolute;
        inset: 2rem -40%;
        background: radial-gradient(circle at 10% 20%, rgba(217, 4, 41, 0.12), transparent 55%),
                radial-gradient(circle at 90% 50%, rgba(27, 67, 50, 0.12), transparent 60%);
        pointer-events: none;
        z-index: 0;
}

.gn-tsiartas-spin-to-win__wheel-area,
.gn-tsiartas-spin-to-win__sidebar {
        position: relative;
        z-index: 1;
}

.gn-tsiartas-spin-to-win__wheel-area {
        flex: 1 1 var(--gn-tsiartas-wheel-size);
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 1.75rem;
        min-width: min(20rem, 100%);
}

.gn-tsiartas-spin-to-win__wheel {
        position: relative;
        width: var(--gn-tsiartas-wheel-size);
        max-width: min(90vw, 30rem);
        aspect-ratio: 1 / 1;
        border-radius: 50%;
        background: conic-gradient(var(--gn-tsiartas-neutral), var(--gn-tsiartas-neutral));
        box-shadow: inset 0 0 0 0.35rem rgba(255, 255, 255, 0.6), inset 0 0 0 1.15rem rgba(7, 59, 76, 0.08),
                0 1rem 3rem -1rem rgba(7, 59, 76, 0.35);
        display: grid;
        place-items: center;
        overflow: hidden;
        transition: transform var(--gn-tsiartas-spin-duration, 4.6s) var(--gn-tsiartas-transition);
        transform: rotate(var(--rotation-angle));
        will-change: transform;
}

.gn-tsiartas-spin-to-win.is-spinning .gn-tsiartas-spin-to-win__wheel {
        cursor: wait;
}

.gn-tsiartas-spin-to-win__wheel::after {
        content: '';
        position: absolute;
        inset: 12%;
        border-radius: 50%;
        background: radial-gradient(circle at 30% 25%, rgba(255, 255, 255, 0.85), rgba(255, 255, 255, 0.45));
        border: 0.25rem solid rgba(255, 255, 255, 0.65);
        box-shadow: inset 0 0 1rem rgba(7, 59, 76, 0.25);
        z-index: 2;
}

.gn-tsiartas-spin-to-win__wheel::before {
        content: '';
        position: absolute;
        inset: 38%;
        border-radius: 50%;
        background: linear-gradient(135deg, rgba(217, 4, 41, 0.95), rgba(27, 67, 50, 0.85));
        box-shadow: inset 0 0 0 0.25rem rgba(255, 255, 255, 0.8), 0 1rem 2rem -1rem rgba(7, 59, 76, 0.45);
        z-index: 3;
}

.gn-tsiartas-spin-to-win__slice-label {
        position: absolute;
        top: 50%;
        left: 50%;
        transform-origin: center center;
        transform: translate(-50%, -50%) rotate(var(--slice-rotation)) translateY(calc(-1 * var(--slice-distance, 10.5rem)));
        width: min(9rem, 28vmin);
        text-align: center;
        font-weight: 600;
        font-size: clamp(0.7rem, 2.2vmin, 0.9rem);
        color: rgba(255, 255, 255, 0.95);
        text-shadow: 0 0.35rem 0.75rem rgba(0, 0, 0, 0.35);
        letter-spacing: 0.015em;
        padding: 0.4rem 0.2rem;
        line-height: 1.2;
        z-index: 4;
}

.gn-tsiartas-spin-to-win__slice-label span {
        display: block;
        transform: rotate(calc(-1 * var(--slice-rotation)));
}

.gn-tsiartas-spin-to-win__spin-button {
        position: relative;
        border: none;
        padding: 0.85rem 2.5rem 0.85rem 3.5rem;
        border-radius: 999px;
        background: linear-gradient(135deg, var(--gn-tsiartas-primary), #ef233c);
        color: #fff;
        font-size: clamp(1rem, 2.8vmin, 1.2rem);
        font-weight: 700;
        letter-spacing: 0.08em;
        text-transform: uppercase;
        cursor: pointer;
        transition: transform 250ms ease, box-shadow 250ms ease, filter 250ms ease;
        box-shadow: 0 1rem 2.5rem -1.5rem rgba(217, 4, 41, 0.6), 0 0.5rem 1rem -0.75rem rgba(0, 0, 0, 0.35);
}

.gn-tsiartas-spin-to-win__spin-button:hover,
.gn-tsiartas-spin-to-win__spin-button:focus-visible {
        transform: translateY(-0.2rem) scale(1.02);
        box-shadow: 0 1.25rem 2.75rem -1rem rgba(217, 4, 41, 0.65);
        filter: brightness(1.05);
        outline: none;
}

.gn-tsiartas-spin-to-win__spin-button:active {
        transform: translateY(0.05rem) scale(0.99);
}

.gn-tsiartas-spin-to-win__spin-button.is-disabled,
.gn-tsiartas-spin-to-win.has-spun .gn-tsiartas-spin-to-win__spin-button {
        cursor: not-allowed;
        opacity: 0.65;
        box-shadow: none;
        filter: grayscale(0.35);
}

.gn-tsiartas-spin-to-win__spin-pointer {
        position: absolute;
        inset: -1.75rem auto auto -1.1rem;
        width: 0;
        height: 0;
        border-left: 1.1rem solid transparent;
        border-right: 1.1rem solid transparent;
        border-bottom: 1.9rem solid rgba(255, 255, 255, 0.92);
        filter: drop-shadow(0 0.25rem 0.35rem rgba(0, 0, 0, 0.2));
        transform: translateX(-50%);
}

.gn-tsiartas-spin-to-win__spin-pointer::after {
        content: '';
        position: absolute;
        top: 1.55rem;
        left: -1.1rem;
        width: 2.2rem;
        height: 0.45rem;
        background: linear-gradient(90deg, rgba(217, 4, 41, 0.9), rgba(27, 67, 50, 0.9));
        border-radius: 999px;
        box-shadow: inset 0 0 0.2rem rgba(255, 255, 255, 0.45);
}

.gn-tsiartas-spin-to-win__spin-label {
        position: relative;
        z-index: 1;
}

.gn-tsiartas-spin-to-win__sidebar {
        flex: 1 1 var(--gn-tsiartas-sidebar-width);
        display: flex;
        flex-direction: column;
        gap: 1.75rem;
        padding: clamp(1rem, 2vw, 1.75rem);
        background: rgba(255, 255, 255, 0.84);
        border-radius: 1.75rem;
        box-shadow: inset 0 0 0 0.1rem rgba(7, 59, 76, 0.08);
}

.gn-tsiartas-spin-to-win__message {
        background: linear-gradient(135deg, rgba(255, 209, 102, 0.65), rgba(255, 255, 255, 0.4));
        border-radius: 1.5rem;
        padding: 1.25rem 1.5rem;
        box-shadow: 0 1rem 2.5rem -1.75rem rgba(0, 0, 0, 0.3);
        color: var(--gn-tsiartas-deep);
}

.gn-tsiartas-spin-to-win__message-text {
        margin: 0;
        font-size: clamp(1rem, 2.4vmin, 1.15rem);
        line-height: 1.6;
        font-weight: 600;
}

.gn-tsiartas-spin-to-win__heading {
        margin: 0 0 0.75rem;
        font-size: clamp(1.1rem, 2.8vmin, 1.4rem);
        color: var(--gn-tsiartas-deep);
        font-weight: 700;
        letter-spacing: 0.03em;
}

.gn-tsiartas-spin-to-win__prize-list {
        list-style: none;
        margin: 0;
        padding: 0;
        display: grid;
        gap: 0.75rem;
}

.gn-tsiartas-spin-to-win__prize-item {
        display: flex;
        flex-direction: column;
        gap: 0.35rem;
        padding: 0.9rem 1rem;
        border-radius: 1rem;
        background: rgba(7, 59, 76, 0.04);
        border: 0.08rem solid transparent;
        --prize-accent: rgba(217, 4, 41, 0.35);
        transition: transform 220ms ease, border-color 220ms ease, box-shadow 220ms ease;
        position: relative;
        overflow: hidden;
}

.gn-tsiartas-spin-to-win__prize-item::before {
        content: '';
        position: absolute;
        inset: 0;
        background: linear-gradient(135deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0)),
                linear-gradient(135deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.04));
        opacity: 0;
        pointer-events: none;
        transition: opacity 220ms ease;
}

.gn-tsiartas-spin-to-win__prize-item:hover,
.gn-tsiartas-spin-to-win__prize-item:focus-within {
        transform: translateY(-0.15rem);
        border-color: var(--prize-accent);
        box-shadow: 0 1.1rem 2.2rem -1.7rem rgba(7, 59, 76, 0.45);
        color: var(--gn-tsiartas-deep);
}

.gn-tsiartas-spin-to-win__prize-item:hover::before,
.gn-tsiartas-spin-to-win__prize-item:focus-within::before {
        opacity: 1;
}

.gn-tsiartas-spin-to-win__prize-item.is-active {
        border-color: rgba(217, 4, 41, 0.65);
        border-color: color-mix(in srgb, var(--prize-accent) 65%, rgba(217, 4, 41, 0.85));
        background: rgba(255, 209, 102, 0.45);
        box-shadow: 0 1.25rem 3rem -2rem rgba(217, 4, 41, 0.55);
        color: var(--gn-tsiartas-deep);
}

.gn-tsiartas-spin-to-win__prize-item.is-active::before {
        opacity: 1;
        background: linear-gradient(135deg, rgba(255, 209, 102, 0.3), rgba(217, 4, 41, 0.35)),
                linear-gradient(135deg, rgba(255, 255, 255, 0.05), rgba(0, 0, 0, 0));
}

.gn-tsiartas-spin-to-win__prize-label {
        font-weight: 700;
        font-size: 1.05rem;
        color: var(--gn-tsiartas-deep);
}

.gn-tsiartas-spin-to-win__ctas {
        display: flex;
        flex-wrap: wrap;
        gap: 0.75rem;
        margin-top: auto;
}

.gn-tsiartas-spin-to-win__cta-button {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 0.85rem 1.4rem;
        border-radius: 999px;
        background: linear-gradient(135deg, var(--gn-tsiartas-secondary), #2d6a4f);
        color: #fff;
        font-weight: 600;
        text-decoration: none;
        transition: transform 220ms ease, box-shadow 220ms ease;
        box-shadow: 0 0.85rem 2rem -1.4rem rgba(27, 67, 50, 0.6);
}

.gn-tsiartas-spin-to-win__cta-button:hover,
.gn-tsiartas-spin-to-win__cta-button:focus-visible {
        transform: translateY(-0.1rem);
        box-shadow: 0 1.25rem 2.75rem -1.75rem rgba(27, 67, 50, 0.65);
        outline: none;
}

.gn-tsiartas-spin-to-win__modal {
        position: fixed;
        inset: 0;
        display: grid;
        place-items: center;
        background: rgba(7, 59, 76, 0.35);
        backdrop-filter: blur(3px);
        padding: 2rem;
        opacity: 0;
        pointer-events: none;
        transition: opacity 220ms ease;
        z-index: 999;
}

.gn-tsiartas-spin-to-win__modal.is-open {
        opacity: 1;
        pointer-events: all;
}

.gn-tsiartas-spin-to-win__modal-content {
        background: #fff;
        border-radius: 1.75rem;
        padding: clamp(1.75rem, 2.8vw, 2.5rem);
        box-shadow: 0 2.5rem 4rem -2rem rgba(7, 59, 76, 0.45);
        max-width: 28rem;
        width: min(90vw, 28rem);
        text-align: center;
        position: relative;
}

.gn-tsiartas-spin-to-win__modal-title {
        margin: 0 0 0.75rem;
        font-size: clamp(1.35rem, 3.2vmin, 1.6rem);
        color: var(--gn-tsiartas-primary);
        font-weight: 800;
        letter-spacing: 0.03em;
}

.gn-tsiartas-spin-to-win__modal-message {
        margin: 0 0 1.5rem;
        font-size: clamp(1rem, 2.6vmin, 1.1rem);
        color: var(--gn-tsiartas-text);
        line-height: 1.6;
}

.gn-tsiartas-spin-to-win__modal-close {
        border: none;
        border-radius: 999px;
        background: linear-gradient(135deg, var(--gn-tsiartas-secondary), #2d6a4f);
        color: #fff;
        padding: 0.75rem 1.75rem;
        font-weight: 700;
        cursor: pointer;
        transition: transform 220ms ease, box-shadow 220ms ease;
        box-shadow: 0 0.85rem 2rem -1.2rem rgba(27, 67, 50, 0.65);
}

.gn-tsiartas-spin-to-win__modal-close:hover,
.gn-tsiartas-spin-to-win__modal-close:focus-visible {
        transform: translateY(-0.1rem);
        box-shadow: 0 1.35rem 2.85rem -1.75rem rgba(27, 67, 50, 0.6);
        outline: none;
}

.gn-tsiartas-spin-to-win__modal-close:active {
        transform: translateY(0.05rem);
}

.gn-tsiartas-spin-to-win__modal-close-label {
        pointer-events: none;
}

.gn-tsiartas-spin-to-win.is-spinning .gn-tsiartas-spin-to-win__spin-button:not(.is-disabled) {
        animation: gn-tsiartas-pulse 900ms ease-in-out infinite alternate;
}

@keyframes gn-tsiartas-pulse {
        from {
                filter: brightness(0.95);
        }

        to {
                filter: brightness(1.05);
        }
}

@media (max-width: 900px) {
        .gn-tsiartas-spin-to-win {
                gap: 2rem;
        }

        .gn-tsiartas-spin-to-win__wheel-area,
        .gn-tsiartas-spin-to-win__sidebar {
                flex: 1 1 100%;
        }

        .gn-tsiartas-spin-to-win__wheel {
                --rotation-angle: var(--rotation-angle);
        }

        .gn-tsiartas-spin-to-win__sidebar {
                padding: clamp(1rem, 4vw, 1.75rem);
        }
}

@media (max-width: 640px) {
        .gn-tsiartas-spin-to-win {
                padding: clamp(1.25rem, 5vw, 1.75rem);
        }

        .gn-tsiartas-spin-to-win__wheel-area {
                gap: 1.35rem;
        }

        .gn-tsiartas-spin-to-win__spin-button {
                width: 100%;
                justify-content: center;
        }

        .gn-tsiartas-spin-to-win__spin-pointer {
                left: 50%;
                inset: -2rem auto auto 50%;
        }

        .gn-tsiartas-spin-to-win__slice-label {
                --slice-distance: 8rem;
        }
}

@media (prefers-reduced-motion: reduce) {
        .gn-tsiartas-spin-to-win__wheel {
                transition-duration: 0.01ms !important;
        }

        .gn-tsiartas-spin-to-win__spin-button,
        .gn-tsiartas-spin-to-win__cta-button,
        .gn-tsiartas-spin-to-win__modal,
        .gn-tsiartas-spin-to-win__prize-item {
                transition: none !important;
        }

        .gn-tsiartas-spin-to-win.is-spinning .gn-tsiartas-spin-to-win__spin-button {
                animation: none;
        }
}