.raffle-page {
    --raffle-red: #e63946;
    --raffle-red-deep: #9f1f2b;
    --raffle-cream: #f6eee2;
    --raffle-panel: #191919;
    --raffle-panel-raised: #222;
    --raffle-line: rgba(255, 255, 255, 0.12);
    overflow: hidden;
}

.raffle-shell {
    box-sizing: border-box;
    margin: 0 auto;
    max-width: 1120px;
    padding-left: 24px;
    padding-right: 24px;
    width: 100%;
}

.raffle-hero {
    background:
        linear-gradient(115deg, rgba(230, 57, 70, 0.17), transparent 38%),
        repeating-linear-gradient(135deg, transparent 0 14px, rgba(255, 255, 255, 0.018) 14px 15px),
        #101010;
    border-bottom: 1px solid var(--raffle-line);
    padding: 72px 0 62px;
    position: relative;
}

.raffle-hero-glow {
    background: var(--raffle-red);
    border-radius: 50%;
    filter: blur(110px);
    height: 230px;
    opacity: 0.12;
    position: absolute;
    right: 5%;
    top: -120px;
    width: 380px;
}

.raffle-eyebrow,
.raffle-card-kicker {
    color: var(--raffle-red);
    font-size: 0.78rem;
    font-weight: 900;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.raffle-eyebrow { margin-bottom: 16px; }
.raffle-eyebrow i { margin-right: 7px; transform: rotate(-8deg); }

.raffle-hero h1 {
    color: #fff;
    font-size: clamp(2.65rem, 7vw, 5.5rem);
    letter-spacing: -0.055em;
    line-height: 0.98;
    margin: 0;
    max-width: 900px;
}

.raffle-lead {
    color: #c8c8c8;
    font-size: clamp(1.05rem, 2vw, 1.25rem);
    line-height: 1.65;
    margin: 24px 0 0;
    max-width: 720px;
}

.raffle-price-line {
    align-items: baseline;
    display: flex;
    flex-wrap: wrap;
    gap: 12px 16px;
    margin-top: 28px;
}

.raffle-price-line strong {
    color: var(--raffle-cream);
    font-size: 1.8rem;
}

.raffle-price-line span { color: #999; font-size: 0.95rem; }

.raffle-layout {
    display: grid;
    gap: 34px;
    grid-template-columns: minmax(0, 0.92fr) minmax(420px, 1.08fr);
    padding-bottom: 46px;
    padding-top: 46px;
}

.raffle-prize-card,
.raffle-checkout-card {
    background: var(--raffle-panel);
    border: 1px solid var(--raffle-line);
    border-radius: 14px;
    box-shadow: 0 18px 48px rgba(0, 0, 0, 0.18);
    box-sizing: border-box;
    padding: clamp(24px, 4vw, 38px);
}

.raffle-prize-card { align-self: start; position: relative; }
.raffle-prize-card::before {
    background: var(--raffle-red);
    border-radius: 14px 14px 0 0;
    content: '';
    height: 4px;
    left: -1px;
    position: absolute;
    right: -1px;
    top: -1px;
}

.raffle-prize-card h2,
.raffle-checkout-card h2 {
    color: #fff;
    font-size: clamp(1.7rem, 3vw, 2.35rem);
    letter-spacing: -0.035em;
    line-height: 1.1;
    margin: 10px 0 18px;
}

.raffle-prize-card > p,
.raffle-form-intro,
.raffle-payment-options p,
.raffle-fine-print,
.raffle-closed-state p,
.raffle-success p {
    color: #aaa;
    line-height: 1.65;
}

.raffle-checks {
    border-top: 1px solid var(--raffle-line);
    list-style: none;
    margin: 28px 0 0;
    padding: 24px 0 0;
}

.raffle-checks li {
    align-items: flex-start;
    color: #d1d1d1;
    display: flex;
    gap: 11px;
    line-height: 1.45;
    margin-bottom: 14px;
}

.raffle-checks i {
    background: rgba(230, 57, 70, 0.16);
    border-radius: 50%;
    color: var(--raffle-red);
    font-size: 0.72rem;
    margin-top: 2px;
    padding: 5px;
}

.raffle-other-list {
    border-top: 1px solid var(--raffle-line);
    display: grid;
    gap: 10px;
    margin-top: 24px;
    padding-top: 22px;
}

.raffle-other-list strong { color: #eee; font-size: 0.9rem; }
.raffle-other-list a { color: #ccc; text-decoration: none; }
.raffle-other-list a:hover { color: var(--raffle-red); }

.raffle-directory { padding-bottom: 52px; padding-top: 46px; }
.raffle-directory-heading { margin-bottom: 24px; }
.raffle-directory-heading h2 {
    color: #fff;
    font-size: clamp(1.8rem, 4vw, 2.8rem);
    letter-spacing: -0.04em;
    margin: 9px 0 10px;
}
.raffle-directory-heading p { color: #999; line-height: 1.6; margin: 0; }
.raffle-directory-grid {
    display: grid;
    gap: 20px;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}
.raffle-directory-card {
    background: linear-gradient(145deg, rgba(230, 57, 70, .08), transparent 45%), var(--raffle-panel);
    border: 1px solid var(--raffle-line);
    border-radius: 14px;
    box-shadow: 0 18px 48px rgba(0, 0, 0, .16);
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: clamp(24px, 4vw, 34px);
}
.raffle-directory-price { color: var(--raffle-cream); font-size: 1.3rem; font-weight: 900; }
.raffle-directory-price span { color: #888; font-size: .75rem; font-weight: 700; }
.raffle-directory-card h3 {
    color: #fff;
    font-size: clamp(1.55rem, 3vw, 2.15rem);
    letter-spacing: -.035em;
    line-height: 1.1;
    margin: 16px 0 22px;
}
.raffle-directory-prize { border-left: 3px solid var(--raffle-red); display: grid; gap: 4px; padding-left: 13px; }
.raffle-directory-prize span { color: #888; font-size: .68rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.raffle-directory-prize strong { color: #eee; font-size: 1.05rem; line-height: 1.35; }
.raffle-directory-description {
    color: #aaa;
    display: -webkit-box;
    font-size: .9rem;
    line-height: 1.6;
    margin: 20px 0 0;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
}
.raffle-directory-action {
    align-items: center;
    background: var(--raffle-red);
    border-radius: 7px;
    color: #fff;
    display: flex;
    font-weight: 900;
    gap: 9px;
    justify-content: center;
    margin-top: auto;
    min-height: 48px;
    padding: 11px 16px;
    text-decoration: none;
}
.raffle-directory-description + .raffle-directory-action { margin-top: 24px; }
.raffle-directory-prize + .raffle-directory-action { margin-top: 28px; }
.raffle-directory-action:hover { background: #c92f3c; color: #fff; }

.raffle-form-intro { margin: -5px 0 24px; }
.raffle-form-grid { display: grid; gap: 18px; grid-template-columns: 1fr 1fr; }
.raffle-form-grid label,
.raffle-quantity-label { display: block; }
.raffle-form-grid label > span,
.raffle-quantity-label > span {
    color: #e8e8e8;
    display: block;
    font-size: 0.87rem;
    font-weight: 800;
    margin-bottom: 8px;
}

.raffle-page input[type="text"],
.raffle-page input[type="email"],
.raffle-page input[type="number"] {
    background: #101010;
    border: 1px solid #484848;
    border-radius: 7px;
    box-sizing: border-box;
    color: #fff;
    font: inherit;
    min-height: 48px;
    padding: 11px 13px;
    width: 100%;
}

.raffle-page input:focus {
    border-color: var(--raffle-red);
    box-shadow: 0 0 0 3px rgba(230, 57, 70, 0.16);
    outline: none;
}

.raffle-quantity-label { margin-top: 19px; }
.raffle-quantity-control { display: grid; grid-template-columns: 48px minmax(70px, 110px) 48px; }
.raffle-quantity-control input {
    border-left: 0 !important;
    border-radius: 0 !important;
    border-right: 0 !important;
    text-align: center;
}
.raffle-quantity-control button {
    background: #2b2b2b;
    border: 1px solid #484848;
    color: #fff;
    cursor: pointer;
    font-size: 1.35rem;
    min-height: 48px;
    padding: 0;
}
.raffle-quantity-control button:first-child { border-radius: 7px 0 0 7px; }
.raffle-quantity-control button:last-child { border-radius: 0 7px 7px 0; }
.raffle-quantity-control button:hover { background: #3a3a3a; }

.raffle-honeypot {
    height: 1px !important;
    left: -10000px !important;
    min-height: 0 !important;
    opacity: 0 !important;
    position: absolute !important;
    width: 1px !important;
}

.raffle-total {
    align-items: center;
    border-bottom: 1px solid var(--raffle-line);
    border-top: 1px solid var(--raffle-line);
    display: flex;
    justify-content: space-between;
    margin: 25px 0;
    padding: 17px 0;
}
.raffle-total span { color: #aaa; font-weight: 700; }
.raffle-total strong { color: var(--raffle-cream); font-size: 1.65rem; }

.raffle-final-sale {
    background: rgba(230, 57, 70, 0.08);
    border: 1px solid rgba(230, 57, 70, 0.48);
    border-radius: 8px;
    margin: 18px 0 0;
    padding: 11px 16px 15px;
}
.raffle-final-sale legend {
    color: #fff;
    font-size: 0.78rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    padding: 0 6px;
    text-transform: uppercase;
}
.raffle-final-sale label { align-items: center; color: #eee; cursor: pointer; display: inline-flex; font-weight: 800; gap: 9px; }
.raffle-final-sale input { accent-color: var(--raffle-red); height: 19px; margin: 0; width: 19px; }

.raffle-alert {
    border: 1px solid;
    border-radius: 7px;
    line-height: 1.45;
    margin: 0 0 18px;
    padding: 12px 14px;
}
.raffle-alert.is-error { background: rgba(230, 57, 70, 0.09); border-color: rgba(230, 57, 70, 0.55); color: #ffadb4; }

.raffle-payment-options { display: grid; gap: 22px; }
.raffle-payment-heading { color: #fff; font-size: 1rem; font-weight: 850; }
.raffle-payment-options p { font-size: 0.88rem; margin: 5px 0 14px; }
.raffle-sandbox-badge {
    background: rgba(243, 156, 18, 0.18);
    border: 1px solid rgba(243, 156, 18, 0.55);
    border-radius: 999px;
    color: #f8c56f;
    display: inline-block;
    font-size: 0.65rem;
    letter-spacing: 0.06em;
    margin-left: 5px;
    padding: 2px 7px;
    text-transform: uppercase;
    vertical-align: 1px;
}
.raffle-online-button-container { min-height: 45px; }
.raffle-online-button-status {
    color: #aaa;
    margin: 8px 0 0 !important;
}
.raffle-online-button-status.is-error {
    background: rgba(230, 57, 70, 0.09);
    border: 1px solid rgba(230, 57, 70, 0.4);
    border-radius: 7px;
    color: #ffadb4;
    padding: 10px 12px;
}
#venmo-button-container { margin-top: 10px; }
.raffle-manual-option {
    border-top: 1px solid var(--raffle-line);
    padding-top: 20px;
}
.raffle-manual-option.is-only { border-top: 0; padding-top: 0; }
.raffle-manual-button,
.raffle-secondary-button {
    background: transparent;
    border: 1px solid #777;
    border-radius: 7px;
    color: #eee;
    cursor: pointer;
    font-weight: 800;
    min-height: 46px;
    padding: 11px 18px;
    width: 100%;
}
.raffle-manual-button:hover,
.raffle-secondary-button:hover { background: #303030; border-color: #aaa; }
.raffle-manual-button:disabled { cursor: wait; opacity: 0.6; }
.raffle-fine-print { font-size: 0.76rem; margin: 22px 0 0; }

.raffle-closed-state,
.raffle-success { padding: 22px 2px; text-align: center; }
.raffle-closed-state > i,
.raffle-success-icon {
    align-items: center;
    background: rgba(230, 57, 70, 0.14);
    border: 1px solid rgba(230, 57, 70, 0.34);
    border-radius: 50%;
    color: var(--raffle-red);
    display: inline-flex;
    height: 62px;
    justify-content: center;
    margin-bottom: 20px;
    width: 62px;
}
.raffle-closed-state > i { font-size: 1.4rem; }
.raffle-success-icon { font-size: 1.35rem; }
.raffle-success-muted { font-size: 0.88rem; }
.raffle-success .raffle-secondary-button { margin-top: 14px; width: auto; }

.raffle-payment-reference {
    background: #101010;
    border: 1px solid var(--raffle-line);
    border-radius: 8px;
    display: grid;
    gap: 7px 16px;
    grid-template-columns: auto 1fr;
    margin: 22px 0;
    padding: 18px;
    text-align: left;
}
.raffle-payment-reference dt { color: #888; }
.raffle-payment-reference dd { color: #fff; font-family: monospace; font-weight: 800; margin: 0; overflow-wrap: anywhere; text-align: right; }

html[data-theme="light"] .raffle-page {
    --raffle-panel: #fff;
    --raffle-panel-raised: #f6f7f8;
    --raffle-line: rgba(23, 26, 31, 0.14);
}
html[data-theme="light"] .raffle-hero {
    background:
        linear-gradient(115deg, rgba(230, 57, 70, 0.11), transparent 40%),
        repeating-linear-gradient(135deg, transparent 0 14px, rgba(0, 0, 0, 0.018) 14px 15px),
        #f6f7f8;
}
html[data-theme="light"] .raffle-hero h1,
html[data-theme="light"] .raffle-prize-card h2,
html[data-theme="light"] .raffle-checkout-card h2,
html[data-theme="light"] .raffle-payment-heading,
html[data-theme="light"] .raffle-checks li,
html[data-theme="light"] .raffle-form-grid label > span,
html[data-theme="light"] .raffle-quantity-label > span,
html[data-theme="light"] .raffle-other-list strong,
html[data-theme="light"] .raffle-directory-heading h2,
html[data-theme="light"] .raffle-directory-card h3,
html[data-theme="light"] .raffle-directory-prize strong,
html[data-theme="light"] .raffle-directory-price { color: #171a1f; }
html[data-theme="light"] .raffle-lead,
html[data-theme="light"] .raffle-price-line span,
html[data-theme="light"] .raffle-prize-card > p,
html[data-theme="light"] .raffle-form-intro,
html[data-theme="light"] .raffle-payment-options p,
html[data-theme="light"] .raffle-fine-print,
html[data-theme="light"] .raffle-closed-state p,
html[data-theme="light"] .raffle-success p,
html[data-theme="light"] .raffle-directory-heading p,
html[data-theme="light"] .raffle-directory-description { color: #4f5a64; }
html[data-theme="light"] .raffle-price-line strong,
html[data-theme="light"] .raffle-total strong { color: #171a1f; }
html[data-theme="light"] .raffle-page input[type="text"],
html[data-theme="light"] .raffle-page input[type="email"],
html[data-theme="light"] .raffle-page input[type="number"],
html[data-theme="light"] .raffle-payment-reference { background: #f4f5f6; border-color: #b7bec5; color: #171a1f; }
html[data-theme="light"] .raffle-page input { color: #171a1f; }
html[data-theme="light"] .raffle-quantity-control button { background: #e8ebee; border-color: #b7bec5; color: #171a1f; }
html[data-theme="light"] .raffle-final-sale { background: rgba(230, 57, 70, 0.06); border-color: rgba(185, 31, 43, 0.42); }
html[data-theme="light"] .raffle-final-sale legend,
html[data-theme="light"] .raffle-final-sale label { color: #171a1f; }
html[data-theme="light"] .raffle-payment-reference dd { color: #171a1f; }
html[data-theme="light"] .raffle-manual-button,
html[data-theme="light"] .raffle-secondary-button { border-color: #65717c; color: #26313b; }
html[data-theme="light"] .raffle-online-button-status { color: #4f5a64; }
html[data-theme="light"] .raffle-online-button-status.is-error { color: #9b1c26; }

@media (max-width: 820px) {
    .raffle-layout { grid-template-columns: 1fr; }
    .raffle-prize-card { order: 2; }
    .raffle-checkout-card { order: 1; }
}

@media (max-width: 560px) {
    .raffle-shell { padding-left: 15px; padding-right: 15px; }
    .raffle-hero { padding: 48px 0 42px; }
    .raffle-layout { gap: 20px; padding-bottom: 20px; padding-top: 20px; }
    .raffle-prize-card,
    .raffle-checkout-card { border-radius: 10px; padding: 24px 18px; }
    .raffle-form-grid { grid-template-columns: 1fr; }
    .raffle-price-line { align-items: flex-start; flex-direction: column; }
    .raffle-directory { padding-bottom: 24px; padding-top: 24px; }
    .raffle-directory-grid { grid-template-columns: 1fr; }
}
