:root{--color-primary:#2E7D32;--color-primary-dark:#1B5E20;--color-primary-light:#4CAF50;--color-secondary:#F1F8E9;--color-secondary-dark:#DCEDC8;--color-accent:#FFC107;--color-accent-dark:#FFA000;--color-text-primary:#212121;--color-text-secondary:#616161;--color-text-light:#9E9E9E;--color-white:#FFFFFF;--color-gray-light:#F5F5F5;--color-gray:#E0E0E0;--color-gray-dark:#757575;--color-gray-darker:#424242;--radius-sm:5px;--spacing-xs:4px;}
        
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;color:var(--color-text-primary)}
.public-raffles-page{position:relative;background:radial-gradient(rgba(46,125,50,0.07) 1.5px,transparent 1.5px) 0 0/24px 24px,linear-gradient(180deg,#f5f9f5 0%,#e8f5e8 15%,#d4edd4 35%,#b8e0b8 60%,var(--color-primary-light) 85%,var(--color-primary) 100%);min-height:100vh;padding:0;overflow-x:hidden;z-index:0}
.public-raffles-page > main{position:relative;z-index:1}
.public-hero{max-width:960px;margin:0 auto;padding:36px 20px 44px;animation:hero-enter 0.6s cubic-bezier(0.22,1,0.36,1) both;position:relative}
@keyframes hero-enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.public-hero h1{margin:0 0 16px;font-size:3.2rem;font-family:'DM Serif Display',Georgia,serif;color:var(--color-text-primary);background:linear-gradient(135deg,var(--color-text-primary) 0%,var(--color-primary-dark) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-0.5px;line-height:1.15}
.public-hero .lead{font-size:1.15rem;margin:0 0 24px;max-width:640px;color:var(--color-text-secondary)}
.public-hero .badge{display:inline-flex;flex-direction:column;gap:4px;padding:10px 18px;border-radius:14px;background:linear-gradient(120deg,rgba(46,125,50,0.2),rgba(46,125,50,0.05));border:1px solid rgba(46,125,50,0.3);box-shadow:0 12px 24px rgba(15,23,42,0.15);font-size:0.95rem;margin-bottom:18px;color:var(--color-text-primary)}
.public-hero .badge-label{display:inline-flex;align-items:center;gap:8px;font-weight:700;letter-spacing:0.8px;text-transform:uppercase}
.public-hero .badge-label i{color:var(--color-primary)}
.public-hero .badge-subtitle{display:block;min-height:1.2em;font-size:0.85rem;color:var(--color-text-secondary);letter-spacing:0.4px}

.status-dot {
    width: 10px;
    height: 10px;
    background-color: #2E7D32;
    border-radius: 50%;
    display: inline-block;
    box-shadow: 0 0 0 0 rgba(46, 125, 50, 0.7);
    animation: pulse-green 2s infinite;
    margin-right: 6px;
}

@keyframes pulse-green {
    0% {
        transform: scale(0.95);
        box-shadow: 0 0 0 0 rgba(46, 125, 50, 0.7);
    }
    70% {
        transform: scale(1);
        box-shadow: 0 0 0 6px rgba(46, 125, 50, 0);
    }
    100% {
        transform: scale(0.95);
        box-shadow: 0 0 0 0 rgba(46, 125, 50, 0);
    }
}

.raffles-section{max-width:1200px;margin:0 auto;padding:0 20px 20px;min-height:auto}
.raffles-section header{margin-bottom:20px}
.raffles-section h2{color:var(--color-text-primary);margin:0;font-size:1.8rem;font-family:'DM Serif Display',Georgia,serif;display:flex;align-items:center;gap:10px;letter-spacing:-0.3px}
.raffles-section p{color:var(--color-text-secondary);margin:6px 0 0}
/* Desktop: 2 columns so 7 cards = 4+3 (balanced). 3 columns only on very wide screens. */
.raffle-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;min-height:300px}
/* When one card is alone on the last row: span full width + banner so it reads as a row, not a floating box */
.raffle-grid--lone-2col > .raffle-card:last-child{grid-column:1/-1;justify-self:stretch}
.raffle-grid--lone-2col > .raffle-card:last-child .raffle-card-image{aspect-ratio:21/9;max-height:220px}
.raffle-grid--lone-2col > .raffle-card:last-child .raffle-card-image img{aspect-ratio:21/9;object-fit:cover}
@media(min-width:1400px){.raffle-grid{grid-template-columns:repeat(3,1fr);gap:24px}.raffle-grid--lone-2col > .raffle-card:last-child{grid-column:auto;justify-self:stretch}.raffle-grid--lone-2col > .raffle-card:last-child .raffle-card-image{aspect-ratio:1/1;max-height:none}.raffle-grid--lone-2col > .raffle-card:last-child .raffle-card-image img{aspect-ratio:1/1}.raffle-grid--last-full > .raffle-card:last-child:nth-child(3n+1){grid-column:1/-1;justify-self:stretch}.raffle-grid--last-full > .raffle-card:last-child:nth-child(3n+1) .raffle-card-image{aspect-ratio:21/9;max-height:220px}.raffle-grid--last-full > .raffle-card:last-child:nth-child(3n+1) .raffle-card-image img{aspect-ratio:21/9;object-fit:cover}}
@media(max-width:960px){.raffle-grid{grid-template-columns:repeat(2,1fr);gap:20px}.raffle-grid--last-full > .raffle-card:last-child:nth-child(3n+1){grid-column:auto;justify-self:stretch}.raffle-grid--last-full > .raffle-card:last-child:nth-child(3n+1) .raffle-card-image{aspect-ratio:1/1;max-height:none}.raffle-grid--last-full > .raffle-card:last-child:nth-child(3n+1) .raffle-card-image img{aspect-ratio:1/1}.raffle-grid--lone-2col > .raffle-card:last-child{grid-column:1/-1;justify-self:stretch}.raffle-grid--lone-2col > .raffle-card:last-child .raffle-card-image{aspect-ratio:21/9;max-height:180px}.raffle-grid--lone-2col > .raffle-card:last-child .raffle-card-image img{aspect-ratio:21/9;object-fit:cover}}
@media(max-width:600px){.raffle-grid{grid-template-columns:1fr;gap:20px}.raffle-grid--lone-2col > .raffle-card:last-child{grid-column:auto;justify-self:stretch}.raffle-grid--lone-2col > .raffle-card:last-child .raffle-card-image{aspect-ratio:1/1;max-height:none}.raffle-grid--lone-2col > .raffle-card:last-child .raffle-card-image img{aspect-ratio:1/1}}
.raffle-card{background:var(--color-white);border-radius:16px;padding:0;border:1px solid rgba(15,23,42,0.08);box-shadow:0 12px 30px rgba(15,23,42,0.2);display:flex;flex-direction:column;gap:0;color:var(--color-text-primary);overflow:hidden;position:relative}
/* Square images on public page (override dashboard.min.css) */
.public-raffles-page .raffle-card-image{aspect-ratio:1/1}
.public-raffles-page .raffle-card-image img{aspect-ratio:1/1}
.raffle-card-image{width:100%;aspect-ratio:1/1;overflow:hidden;background:linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);background-size:200% 100%;animation:skeleton-loading 1.5s infinite;display:flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:16px 16px 0 0;min-height:0;position:relative}
.raffle-card-image img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;border-radius:16px 16px 0 0;aspect-ratio:1/1}
/* All raffle card images: keep painted when scrolled off-screen so they don't "reload" on scroll */
.public-raffles-page .raffle-card-image,.public-raffles-page .raffle-card-image img{content-visibility:visible}
/* First card image should render immediately (LCP element) - optimize for fastest render */
.raffle-grid > .raffle-card:first-child{will-change:auto;transform:none}
.raffle-grid > .raffle-card:first-child .raffle-card-image{contain:none;content-visibility:visible}
.raffle-grid > .raffle-card:first-child .raffle-card-image img{content-visibility:visible;transform:none;backface-visibility:visible}
/* Other cards: keep images painted when scrolled off-screen so they don't "reload" on scroll back */
.raffle-grid > .raffle-card:not(:first-child){will-change:transform;transform:translateZ(0)}
.raffle-grid > .raffle-card:not(:first-child) .raffle-card-image{content-visibility:visible}
.raffle-grid > .raffle-card:not(:first-child) .raffle-card-image img{content-visibility:visible;transform:translateZ(0);backface-visibility:hidden}
.raffle-card>.raffle-card-header,.raffle-card>h3,.raffle-card>dl,.raffle-card>.raffle-actions,.raffle-card>.raffle-card-urgency-wrap{padding:0 20px}
.raffle-card>.raffle-card-header{padding-top:20px;padding-bottom:12px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.raffle-card>h3{padding-top:0;padding-bottom:12px;margin:0;color:var(--color-text-primary);font-size:1.25rem;font-family:'DM Serif Display',Georgia,serif;letter-spacing:-0.2px;line-height:1.3}
.raffle-card>dl{padding-top:0;padding-bottom:12px;display:flex;gap:16px;margin:0}
.raffle-card dt{font-size:0.8rem;text-transform:uppercase;letter-spacing:0.4px;color:var(--color-text-secondary)}
.raffle-card dd{margin:2px 0 0;font-size:1.4rem;font-weight:800;color:var(--color-text-primary);letter-spacing:-0.5px}
.raffle-actions {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    padding-bottom: 20px;
    padding-top: 0;
    margin-top: auto;
    width: 100%;
    margin-left: 0;
}

.raffle-buttons-group {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0; /* Allow flex children to shrink/truncate */
}

.raffle-buttons-group .btn {
    justify-content: flex-start;
    text-align: left;
}

.raffle-actions .btn {
    width: 100%; /* Fill group width */
    margin: 0;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
}

/* Share Button */
.raffle-actions .btn-share {
    background: transparent;
    color: var(--color-primary);
    border: 1px solid var(--color-primary);
    padding: 0;
    width: 44px;
    height: 44px;
    flex: 0 0 auto;
    border-radius: var(--radius-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
}
.raffle-card .emoji{font-size:1.5rem}
.platform-badge,.status-badge{font-size:0.75rem;padding:4px 10px;border-radius:999px;text-transform:uppercase;letter-spacing:0.5px}
.platform-badge{background:rgba(46,125,50,0.12);color:var(--color-primary);display:inline-flex;align-items:center;gap:6px;padding:4px 12px}
.platform-badge i{font-size:0.85rem}
.platform-badge[data-platform="email"]{background:rgba(123,31,162,0.12);color:#7B1FA2}
.platform-badge[data-platform="hearts"]{background:rgba(76,175,80,0.15);color:#2E7D32}
.platform-badge .platform-label{font-weight:700}
.status-badge{background:rgba(239,68,68,0.12);color:#c53030}
.external-hint{font-size:0.85rem;color:var(--color-text-secondary);font-style:italic}
.raffle-card.external{position:relative}
.raffle-card.external:not(.featured)::before{content:"";position:absolute;inset:0;border-radius:16px;opacity:0;transition:opacity 0.2s ease;pointer-events:none;z-index:1;will-change:opacity;transform:translateZ(0)}
.raffle-card.external:not(.featured):hover::before{opacity:0.05;background:rgba(46,125,50,0.1)}
/* Featured card - gold glow only, no outline (scoped so we override dashboard.css) */
.public-raffles-page .raffle-card.featured,
.public-raffles-page .raffle-card.external.featured,
.public-raffles-page .raffle-card.featured.external{
    border:none !important;
    position:relative;
    overflow:visible;
    box-shadow:0 0 20px rgba(255,193,7,0.45),0 0 40px rgba(255,193,7,0.25),0 0 60px rgba(255,215,0,0.12),0 4px 16px rgba(0,0,0,0.08) !important;
    background-color:#fffef5 !important;
    background:#fffef5 !important;
    animation:none !important;
}
@supports (background:linear-gradient(135deg,#fffef5,#fffbe6)){
    .public-raffles-page .raffle-card.featured:not([style*="background"]),
    .public-raffles-page .raffle-card.external.featured:not([style*="background"]),
    .public-raffles-page .raffle-card.featured.external:not([style*="background"]){
        background:linear-gradient(135deg,#fffef5 0%,#fffbe6 50%,#fffef5 100%) !important;
    }
}
.public-raffles-page .raffle-card.featured::after{
    content:"";
    position:absolute;
    inset:-16px;
    border-radius:28px;
    background:radial-gradient(ellipse 70% 70% at 50% 50%,rgba(255,193,7,0.35) 0%,rgba(255,215,0,0.12) 35%,transparent 65%);
    filter:blur(16px);
    z-index:-1;
    pointer-events:none;
}
.public-raffles-page .raffle-card.featured:hover{
    transform:translateY(-4px) scale(1.01) translateZ(0);
    box-shadow:0 0 28px rgba(255,193,7,0.5),0 0 56px rgba(255,193,7,0.28),0 0 80px rgba(255,215,0,0.15),0 8px 24px rgba(0,0,0,0.08);
}
/* Featured badge - gold star + "Featured" */
.featured-badge{
    position:absolute !important;
    top:12px !important;
    right:12px !important;
    background-color:#FFC107 !important;
    background:#FFC107 !important;
    color:#1a1a1a !important;
    padding:8px 16px !important;
    border-radius:24px !important;
    font-size:0.9em !important;
    font-weight:700 !important;
    letter-spacing:0.5px !important;
    box-shadow:0 4px 12px rgba(255,193,7,0.5),inset 0 1px 0 rgba(255,255,255,0.35) !important;
    z-index:10 !important;
    pointer-events:none !important;
    display:inline-flex !important;
    align-items:center !important;
    gap:6px !important;
    text-shadow:0 1px 0 rgba(255,255,255,0.4) !important;
}
.featured-badge i{color:#FFD700 !important}
@supports (background:linear-gradient(135deg,#FFA000,#FFD700)){
    .featured-badge:not([style*="background"]){
        background:linear-gradient(135deg,#FFA000 0%,#FFC107 50%,#FFD700 100%) !important;
        background-size:200% 200% !important;
        animation:badge-shimmer 3s ease-in-out infinite;
    }
}
@keyframes badge-shimmer{
    0%,100%{background-position:0% 50%;transform:scale(1)}
    50%{background-position:100% 50%;transform:scale(1.02)}
}
.raffle-card:hover{transform:translateY(-4px) scale(1.008) translateZ(0);box-shadow:0 20px 50px rgba(15,23,42,0.22),0 0 0 1px rgba(46,125,50,0.1)}
.btn{padding:10px 20px;border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:14px;font-weight:600;transition:transform 0.2s ease,filter 0.2s ease;box-shadow:0 2px 4px rgba(0,0,0,0.1);min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-xs);position:relative;will-change:transform;transform:translateZ(0);text-decoration:none}
.btn i{margin-right:var(--spacing-xs);font-size:0.9em}
.btn-primary{background:var(--color-primary);color:var(--color-white)}
.btn-primary:hover{background:var(--color-primary-dark);transform:translateY(-2px) translateZ(0);filter:drop-shadow(0 6px 12px rgba(46,125,50,0.3))}
.btn-secondary{background:var(--color-gray-dark);color:var(--color-white)}
.btn-secondary:hover{background:var(--color-gray-darker);transform:translateY(-2px) translateZ(0);filter:drop-shadow(0 4px 6px rgba(0,0,0,0.1))}
.public-footer{background:linear-gradient(180deg,var(--color-primary-dark) 0%,#0d3311 100%);color:var(--color-white);padding:48px 20px 36px;margin-top:0;border-top:none;position:relative}
.public-footer::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.2),transparent)}
.footer-banner-wrap{width:100%;max-width:100%;overflow:hidden;margin:0;line-height:0}
.footer-banner-img{width:100%;height:auto;display:block;object-fit:cover;object-position:center}
.footer-content{max-width:1200px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:24px}
.footer-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
.footer-actions .btn{min-width:160px}
.footer-actions .btn-primary{background:var(--color-white);color:var(--color-primary);border:2px solid var(--color-white)}
.footer-actions .btn-primary:hover{background:rgba(255,255,255,0.9);transform:translateY(-2px) translateZ(0);filter:drop-shadow(0 8px 16px rgba(0,0,0,0.2))}
.footer-actions .btn-secondary{background:transparent;color:var(--color-white);border:2px solid var(--color-white)}
.footer-actions .btn-secondary:hover{background:rgba(255,255,255,0.1);transform:translateY(-2px) translateZ(0);filter:drop-shadow(0 8px 16px rgba(0,0,0,0.2))}
.footer-copyright{margin:0;font-size:0.9rem;color:rgba(255,255,255,0.8);text-align:center}
.empty-state{color:var(--color-text-secondary);font-style:italic}

/* ===== CARD BASE ===== */
.raffle-card{background:linear-gradient(135deg,#f5f8f5 0%,#ecf2ec 100%) !important;backdrop-filter:blur(10px);border:1px solid rgba(46,125,50,0.15) !important;transition:transform 0.35s cubic-bezier(0.22,1,0.36,1),box-shadow 0.35s cubic-bezier(0.22,1,0.36,1),border-color 0.3s ease,background 0.3s ease;animation:card-enter 0.5s cubic-bezier(0.22,1,0.36,1) both}
.raffle-card:nth-child(1){animation-delay:0s}
.raffle-card:nth-child(2){animation-delay:0.06s}
.raffle-card:nth-child(3){animation-delay:0.12s}
.raffle-card:nth-child(4){animation-delay:0.18s}
.raffle-card:nth-child(5){animation-delay:0.24s}
.raffle-card:nth-child(6){animation-delay:0.3s}
.raffle-card:nth-child(n+7){animation-delay:0.36s}
@keyframes card-enter{from{opacity:0;transform:translateY(24px) scale(0.97)}to{opacity:1;transform:translateY(0) scale(1)}}
.raffle-card:hover{background:linear-gradient(135deg,#ecf2ec 0%,#e3ede3 100%) !important;box-shadow:0 16px 40px rgba(15,23,42,0.2);border-color:rgba(46,125,50,0.25) !important}

/* ===== HERO ENHANCEMENTS ===== */
.public-hero .badge{background:linear-gradient(120deg,rgba(46,125,50,0.2),rgba(46,125,50,0.05));border:1px solid rgba(46,125,50,0.3)}
.public-hero .badge-label i{color:var(--color-primary)}
.trust-stats{display:flex;flex-wrap:wrap;gap:8px 16px;margin:0 0 8px;font-size:0.9rem;color:var(--color-text-secondary)}
.trust-stats span{display:inline-flex;align-items:center;gap:4px;font-weight:600;color:var(--color-primary-dark)}
.trust-stats span::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--color-primary);opacity:0.5}
.trust-stats span:first-child::before{display:none}
.raffles-section h2 .fa-star{color:var(--color-accent);margin-left:8px}

/* ===== CLOSED CARD OVERLAY ===== */
.raffle-card.closed:not(.featured) .raffle-card-image img{filter:grayscale(40%) brightness(0.95);transition:filter 0.3s ease}
.raffle-card.closed:not(.featured):hover .raffle-card-image img{filter:grayscale(0%) brightness(1)}

/* ===== LOAD MORE ===== */
.raffle-card.hidden-raffle{display:none!important}
.load-more-container{text-align:center;margin-top:24px}
.load-more-btn{padding:12px 32px;font-size:15px}

/* ===== UTILITY ===== */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ===== BACK TO TOP ===== */
.back-to-top{position:fixed;bottom:24px;right:24px;width:44px;height:44px;border-radius:50%;background:var(--color-primary);color:white;border:none;cursor:pointer;font-size:1.2rem;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(0,0,0,0.2);opacity:0;visibility:hidden;transition:opacity 0.3s,visibility 0.3s,transform 0.2s;z-index:9999}
.back-to-top.visible{opacity:1;visibility:visible}
.back-to-top:hover{transform:translateY(-3px);background:var(--color-primary-dark)}

/* ===== FOOTER CLASSES ===== */
.footer-section-title{color:white;font-size:1.3em;margin-bottom:20px;display:flex;align-items:center;justify-content:center;gap:10px}
.social-links-grid{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;margin-bottom:10px}
.social-link{display:flex;align-items:center;justify-content:center;width:60px;height:60px;background:rgba(255,255,255,0.15);color:white;border-radius:50%;text-decoration:none;font-size:1.8em;transition:all 0.3s;border:2px solid rgba(255,255,255,0.3)}
.social-link:hover{background:rgba(255,255,255,0.25);transform:scale(1.1);border-color:rgba(255,255,255,0.5)}
.footer-social-caption{color:rgba(255,255,255,0.8);font-size:0.9em;margin-top:10px}
.email-optin-card{text-align:center;padding:24px;background:linear-gradient(135deg,rgba(255,255,255,0.18) 0%,rgba(255,255,255,0.08) 100%);border-radius:16px;border:1px solid rgba(255,255,255,0.25);backdrop-filter:blur(10px)}
.email-optin-card-form{display:flex;flex-direction:column;justify-content:center}
.email-optin-icon{font-size:2.5em;margin-bottom:12px;color:rgba(255,255,255,0.95)}
.email-optin-heading{color:white;font-size:1.2em;margin-bottom:10px;font-weight:600}
.email-optin-desc{color:rgba(255,255,255,0.85);font-size:0.9em;line-height:1.5;margin:0}
.email-optin-input{width:100%;padding:14px 16px;border:2px solid rgba(255,255,255,0.35);border-radius:10px;background:rgba(255,255,255,0.12);color:white;font-size:14px;outline:none;transition:all 0.3s;box-sizing:border-box}
.email-optin-input:focus{border-color:rgba(255,255,255,0.6);background:rgba(255,255,255,0.18)}
.email-optin-input::placeholder{color:rgba(255,255,255,0.65)}
.email-optin-input::-webkit-input-placeholder{color:rgba(255,255,255,0.65)}
.email-optin-input::-moz-placeholder{color:rgba(255,255,255,0.65);opacity:1}
.email-optin-input:-ms-input-placeholder{color:rgba(255,255,255,0.65)}
.email-optin-btn{padding:14px 24px;border:2px solid white;border-radius:10px;background:white;color:var(--color-primary);font-size:15px;font-weight:600;cursor:pointer;transition:all 0.3s;display:flex;align-items:center;justify-content:center;gap:8px;width:100%}
.email-optin-btn:hover{background:rgba(255,255,255,0.95);transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,0.2)}
.email-optin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-bottom:24px;max-width:800px;margin-left:auto;margin-right:auto}

@media (max-width:768px){body{overflow-x:hidden;max-width:100vw}.public-hero h1{font-size:2rem}.public-raffles-page .raffle-card-image{aspect-ratio:1/1}.raffle-card dl{flex-direction:column}.email-optin-grid{grid-template-columns:1fr !important;max-width:calc(100% - 20px) !important;padding:0 10px;gap:15px !important;margin-left:10px;margin-right:10px}.email-optin-grid>div{max-width:100%;box-sizing:border-box;padding:20px !important}.email-optin-grid input,.email-optin-grid button{width:100% !important;box-sizing:border-box;max-width:100%}}

/* ===== ENHANCEMENTS ===== */
/* Filter Controls */
.filter-controls {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 20px;
    justify-content: center;
}
.filter-btn {
    padding: 8px 20px;
    border: 1px solid var(--color-primary);
    background: transparent;
    color: var(--color-primary);
    border-radius: 50px;
    cursor: pointer;
    font-weight: 600;
    transition: all 0.2s;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.filter-btn i {
    font-size: 1.1em;
}
.filter-btn:hover, .filter-btn.active {
    background: var(--color-primary);
    color: white;
    box-shadow: 0 4px 12px rgba(46,125,50,0.2);
    transform: translateY(-1px);
}
/* Search box styles removed */

/* Share Button - Handled in .raffle-actions block now */
/*.btn-share { ... } removed to avoid duplication */
.raffle-actions .btn-share:hover {
    background: rgba(46,125,50,0.1);
}

/* Skeleton Loading */
.skeleton {
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
    background-size: 200% 100%;
    animation: skeleton-loading 1.5s infinite;
}
@keyframes skeleton-loading {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* Toast Notification */
.toast-notification {
    position: fixed;
    bottom: 24px;
    left: 50%;
    transform: translateX(-50%) translateY(100px);
    background: rgba(0,0,0,0.8);
    color: white;
    padding: 12px 24px;
    border-radius: 30px;
    font-size: 0.9rem;
    z-index: 10000;
    transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    display: flex;
    align-items: center;
    gap: 8px;
}
.toast-notification.show {
    transform: translateX(-50%) translateY(0);
}

/* Raffle Urgency Elements */
.raffle-urgency {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px solid #f0f0f0;
}
.urgency-timer {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.9rem;
    font-weight: 600;
    color: #E65100;
}
/* Under 24h: no box – live countdown feel with motion */
.urgency-timer.urgency-under-24h {
    color: #C62828;
    font-weight: 700;
    background: none;
    border: none;
    padding: 0;
    margin: 0;
    animation: urgency-glow 2s ease-in-out infinite;
}
.urgency-timer.urgency-under-24h .raffle-meta-icon {
    color: #C62828;
    animation: urgency-clock-tick 2.5s ease-in-out infinite;
}
.urgency-timer.urgency-under-24h .draw-countdown {
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.02em;
}
@keyframes urgency-glow {
    0%, 100% { text-shadow: 0 0 12px rgba(198, 40, 40, 0.35); }
    50%      { text-shadow: 0 0 20px rgba(198, 40, 40, 0.55); }
}
@keyframes urgency-clock-tick {
    0%, 100% { transform: rotate(0deg); }
    25%      { transform: rotate(-6deg); }
    75%      { transform: rotate(6deg); }
}
/* Card under 24h: same as other cards – urgency only from timer animation */
.raffle-card:has(.urgency-timer.urgency-under-24h) {
    background: var(--color-white);
    border-color: rgba(15, 23, 42, 0.08);
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.2);
}
.raffle-card:has(.urgency-timer.urgency-under-24h):hover {
    box-shadow: 0 16px 40px rgba(15, 23, 42, 0.25);
}
/* Animation removed */
.urgency-entries {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.85rem;
    font-weight: 500;
    color: #2E7D32;
}
/* Align clock/users icons with card text; prevent FA extra spacing */
.raffle-card .raffle-meta-icon {
    flex-shrink: 0;
    margin: 0;
}

/* ===== LATEST RAFFLE SCROLLING BANNER ===== */
.latest-raffle-banner {
    background: linear-gradient(135deg, rgba(46, 125, 50, 0.12) 0%, rgba(155, 89, 182, 0.08) 100%);
    border-top: 1px solid rgba(46, 125, 50, 0.2);
    border-bottom: 1px solid rgba(46, 125, 50, 0.2);
    padding: 12px 0;
    overflow: hidden;
    margin-bottom: 0;
}
.latest-raffle-banner-inner {
    display: flex;
    align-items: center;
    gap: 20px;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}
.latest-raffle-label {
    flex-shrink: 0;
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--color-primary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.latest-raffle-label i {
    color: var(--color-primary);
}
.latest-raffle-ticker-wrap {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    mask-image: linear-gradient(90deg, transparent 0%, black 40px, black calc(100% - 40px), transparent 100%);
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, black 40px, black calc(100% - 40px), transparent 100%);
}
.latest-raffle-ticker {
    display: inline-flex;
    align-items: center;
    gap: 16px;
    animation: latest-raffle-scroll 40s linear infinite;
    white-space: nowrap;
    width: max-content;
}
.latest-raffle-ticker:hover {
    animation-play-state: paused;
}
/* Banner: under-24h raffles show urgency (color + weight, same size) */
.latest-raffle-item.urgency-under-24h {
    color: #B71C1C;
    font-weight: 700;
}
.latest-raffle-item.urgency-under-24h:hover {
    color: #8B0000;
}
.latest-raffle-item {
    color: var(--color-text-primary);
    text-decoration: none;
    font-weight: 600;
    font-size: 0.95rem;
    padding: 4px 0;
    transition: color 0.2s;
}
.latest-raffle-item:hover {
    color: var(--color-primary);
}
.latest-raffle-sep {
    color: var(--color-text-light);
    font-weight: 400;
    user-select: none;
}
@keyframes latest-raffle-scroll {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}
@media (max-width: 768px) {
    .latest-raffle-banner-inner {
        flex-direction: column;
        gap: 10px;
        align-items: flex-start;
    }
    .latest-raffle-ticker-wrap {
        width: 100%;
    }
}

/* ── Search bar (hidden — sort is sufficient for public page) ── */
.search-wrapper{display:none}
.search-empty{text-align:center;padding:40px 20px;color:var(--color-text-light, #888);font-size:1rem;display:none}

/* ── Sort select ─────────────────────────────────────── */
.sort-select{padding:8px 16px;border-radius:50px;border:1px solid var(--color-primary, #2E7D32);background:var(--color-white, #fff);color:var(--color-text, #222);font-size:0.9rem;font-weight:600;cursor:pointer;outline:none;transition:border-color 0.2s}
.sort-select:hover,.sort-select:focus{border-color:var(--color-primary-dark, #1B5E20)}

/* ── Skip-to-content ─────────────────────────────────── */
.skip-to-content{position:absolute;top:-100px;left:50%;transform:translateX(-50%);background:var(--color-primary, #2E7D32);color:#fff;padding:12px 24px;border-radius:0 0 8px 8px;z-index:10000;font-weight:600;text-decoration:none;transition:top 0.2s}
.skip-to-content:focus{top:0}

/* ── Card reveal animation ───────────────────────────── */
.reveal-card{animation:card-reveal 0.4s ease-out forwards}
@keyframes card-reveal{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.load-more-container{transition:opacity 0.3s ease}

/* ── Mobile filter layout ────────────────────────────── */
@media(max-width:600px){
    .sort-select{display:none}
}
@media(max-width:480px){
    .filter-controls{gap:6px}
    .filter-controls .filter-btn{padding:6px 12px;font-size:0.85rem}
}
@media(max-width:360px){
    .filter-controls{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
    .filter-controls .filter-btn{padding:6px 8px;font-size:0.8rem;justify-content:center;text-align:center}
    .filter-controls .search-wrapper{grid-column:1/-1}
    .filter-controls .sort-select{grid-column:1/-1}
}

/* ── prefers-reduced-motion ──────────────────────────── */
@media(prefers-reduced-motion:reduce){
    .public-hero,
    .raffle-card,
    .status-dot,
    .raffles-section h2 .fa-star,
    .featured-badge,
    .urgency-timer.urgency-under-24h,
    .urgency-timer.urgency-under-24h .raffle-meta-icon,
    .latest-raffle-ticker,
    .raffle-card-image,
    .reveal-card{animation:none !important}
    .latest-raffle-ticker{overflow-x:auto;white-space:normal;display:flex;flex-wrap:wrap;gap:8px 16px}
    .raffle-card:hover,
    .btn-primary:hover,
    .btn-secondary:hover,
    .back-to-top:hover,
    .social-link:hover,
    .email-optin-btn:hover,
    .footer-actions .btn-primary:hover,
    .footer-actions .btn-secondary:hover,
    .public-raffles-page .raffle-card.featured:hover{transform:none !important}
    *{transition-duration:0.01ms !important}
}

/* ══════════════════════════════════════════════════════════════════════
   DARK MODE
   ══════════════════════════════════════════════════════════════════════ */

/* Theme toggle button — sits in filter-controls row */
.theme-toggle{width:36px;height:36px;border-radius:50%;border:1px solid var(--color-primary, #2E7D32);background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:0.95rem;transition:all 0.2s;color:var(--color-primary, #2E7D32);padding:0;flex-shrink:0}
.theme-toggle:hover{transform:scale(1.1);box-shadow:0 4px 16px rgba(0,0,0,0.15);border-color:rgba(46,125,50,0.5)}
.theme-toggle .icon-sun,.theme-toggle .icon-moon{position:absolute;transition:opacity 0.3s,transform 0.3s}
.theme-toggle .icon-moon{opacity:0;transform:rotate(-90deg) scale(0.5)}
[data-theme="dark"] .theme-toggle .icon-sun{opacity:0;transform:rotate(90deg) scale(0.5)}
[data-theme="dark"] .theme-toggle .icon-moon{opacity:1;transform:rotate(0) scale(1)}

/* Dark theme overrides */
[data-theme="dark"] .public-raffles-page{background:radial-gradient(rgba(76,175,80,0.04) 1.5px,transparent 1.5px) 0 0/24px 24px,linear-gradient(180deg,#0f1a0f 0%,#121e12 15%,#152015 35%,#1a2a1a 60%,#1B3E1B 85%,#1B5E20 100%)}
[data-theme="dark"] .theme-toggle{background:rgba(30,30,30,0.85);border-color:rgba(76,175,80,0.3);color:#81C784}
[data-theme="dark"] .theme-toggle:hover{border-color:rgba(76,175,80,0.5);box-shadow:0 4px 16px rgba(0,0,0,0.3)}

/* Hero */
[data-theme="dark"] .public-hero h1{background:linear-gradient(135deg,#e8f5e9 0%,#81C784 100%);-webkit-background-clip:text;background-clip:text}
[data-theme="dark"] .public-hero .lead{color:#94a3b8}
[data-theme="dark"] .public-hero .badge{background:linear-gradient(120deg,rgba(76,175,80,0.15),rgba(76,175,80,0.05));border-color:rgba(76,175,80,0.25);color:#e2e8f0;box-shadow:0 8px 20px rgba(0,0,0,0.3)}
[data-theme="dark"] .public-hero .badge-label{color:#e2e8f0}
[data-theme="dark"] .public-hero .badge-label i{color:#81C784}
[data-theme="dark"] .public-hero .badge-subtitle{color:#94a3b8}
[data-theme="dark"] .trust-stats{color:#94a3b8}
[data-theme="dark"] .trust-stats span{color:#81C784}
[data-theme="dark"] .trust-stats span::before{background:#81C784}
[data-theme="dark"] .status-dot{background-color:#4CAF50}

/* Section headers */
[data-theme="dark"] .raffles-section h2{color:#e2e8f0}
[data-theme="dark"] .raffles-section p{color:#94a3b8}

/* Cards */
[data-theme="dark"]{--urgency-border: rgba(255,255,255,0.06)}
[data-theme="dark"] .raffle-card{background:#161b16 !important;border:1px solid rgba(255,255,255,0.06) !important;box-shadow:0 2px 12px rgba(0,0,0,0.3)}
[data-theme="dark"] .raffle-card:hover{background:#1a1f1a !important;box-shadow:0 8px 24px rgba(0,0,0,0.4);border-color:rgba(255,255,255,0.09) !important}
[data-theme="dark"] .raffle-card>h3{color:#f1f5f9}
[data-theme="dark"] .raffle-card dt{color:#a1a7b0}
[data-theme="dark"] .raffle-card dd{color:#e5e7eb}
[data-theme="dark"] .raffle-card .emoji{filter:none}
[data-theme="dark"] .raffle-card-image{background:#141814}
[data-theme="dark"] .platform-badge{background:rgba(76,175,80,0.1);color:#81C784}
[data-theme="dark"] .platform-badge[data-platform="email"]{background:rgba(167,139,250,0.12) !important;color:#c4b5fd !important}
[data-theme="dark"] .platform-badge[data-platform="hearts"]{background:rgba(76,175,80,0.2) !important;color:#81C784 !important}
[data-theme="dark"] .status-badge{background:rgba(239,68,68,0.12);color:#fca5a5}
[data-theme="dark"] .external-hint{color:#a1a7b0}

/* Featured card — neutral dark base, gold accents */
[data-theme="dark"] .public-raffles-page .raffle-card.featured,
[data-theme="dark"] .public-raffles-page .raffle-card.external.featured{background:#1a1c18 !important;border:1px solid rgba(255,193,7,0.2) !important;box-shadow:0 0 16px rgba(255,193,7,0.12),0 4px 16px rgba(0,0,0,0.3) !important}
[data-theme="dark"] .public-raffles-page .raffle-card.featured::after{display:none !important}
[data-theme="dark"] .public-raffles-page .raffle-card.featured:hover{background:#1e201c !important;box-shadow:0 0 24px rgba(255,193,7,0.18),0 8px 24px rgba(0,0,0,0.4) !important;border-color:rgba(255,193,7,0.3) !important}
[data-theme="dark"] .public-raffles-page .raffle-card.featured>h3{color:#faf6eb}
[data-theme="dark"] .public-raffles-page .raffle-card.featured dt{color:#a8a294}
[data-theme="dark"] .public-raffles-page .raffle-card.featured dd{color:#f1f5f9}
[data-theme="dark"] .public-raffles-page .raffle-card.featured .urgency-timer{color:#fff !important}
[data-theme="dark"] .public-raffles-page .raffle-card.featured .platform-badge[data-platform="email"]{background:rgba(255,255,255,0.1) !important;color:#d4d4d8 !important}
[data-theme="dark"] .public-raffles-page .raffle-card.featured .raffle-actions .btn-share{border-color:rgba(255,193,7,0.3) !important;color:#fbbf24 !important}
[data-theme="dark"] .public-raffles-page .raffle-card.featured .raffle-actions .btn-share:hover{background:rgba(255,193,7,0.06) !important}

/* Buttons */
[data-theme="dark"] .btn-primary{background:#34913a;color:#fff;transition:background 0.15s,box-shadow 0.15s}
[data-theme="dark"] .btn-primary:hover{background:#3a9e40;box-shadow:0 0 12px rgba(76,175,80,0.2)}
[data-theme="dark"] .btn-secondary{background:#4b5563;color:#e2e8f0}
[data-theme="dark"] .btn-secondary:hover{background:#6b7280}
[data-theme="dark"] .raffle-actions .btn-share{border-color:#4CAF50;color:#81C784}
[data-theme="dark"] .raffle-actions .btn-share:hover{background:rgba(76,175,80,0.08)}

/* Urgency */
[data-theme="dark"] .urgency-timer{color:#fee2b3 !important}
[data-theme="dark"] .urgency-timer.urgency-under-24h{color:#fca5a5 !important}
[data-theme="dark"] .urgency-entries{color:#86efac !important}

/* Filter controls */
[data-theme="dark"] .filter-btn{border-color:rgba(76,175,80,0.3);color:#81C784;background:transparent}
[data-theme="dark"] .filter-btn:hover,[data-theme="dark"] .filter-btn.active{background:#2E7D32;color:#fff;border-color:#2E7D32}
[data-theme="dark"] .search-wrapper input{background:#161b16;border-color:rgba(255,255,255,0.08);color:#e2e8f0}
[data-theme="dark"] .search-wrapper input::placeholder{color:#64748b}
[data-theme="dark"] .search-wrapper input:focus{border-color:#4CAF50;box-shadow:0 0 0 3px rgba(76,175,80,0.15)}
[data-theme="dark"] .search-wrapper .search-icon{color:#64748b}
[data-theme="dark"] .sort-select{background:#161b16;border-color:rgba(255,255,255,0.08);color:#e2e8f0}

/* Latest raffle banner */
[data-theme="dark"] .latest-raffle-banner{background:linear-gradient(135deg,rgba(76,175,80,0.08) 0%,rgba(30,40,30,0.5) 100%);border-color:rgba(76,175,80,0.15)}
[data-theme="dark"] .latest-raffle-label{color:#81C784}
[data-theme="dark"] .latest-raffle-label i{color:#81C784}
[data-theme="dark"] .latest-raffle-item{color:#cbd5e1}
[data-theme="dark"] .latest-raffle-item:hover{color:#81C784}
[data-theme="dark"] .latest-raffle-sep{color:#4b5563}

/* Footer */
[data-theme="dark"] .public-footer{background:linear-gradient(180deg,#0a1a0a 0%,#050d05 100%)}

/* Email opt-in */
[data-theme="dark"] .email-optin-card{background:linear-gradient(135deg,rgba(255,255,255,0.08) 0%,rgba(255,255,255,0.03) 100%);border-color:rgba(255,255,255,0.12)}
[data-theme="dark"] .email-optin-input{background:rgba(255,255,255,0.06);border-color:rgba(255,255,255,0.2);color:#e2e8f0}
[data-theme="dark"] .email-optin-input:focus{background:rgba(255,255,255,0.1);border-color:rgba(255,255,255,0.4)}

/* Toast & misc */
[data-theme="dark"] .toast-notification{background:rgba(30,30,30,0.9)}
[data-theme="dark"] .back-to-top{background:#2E7D32;box-shadow:0 4px 12px rgba(0,0,0,0.4)}
[data-theme="dark"] .back-to-top:hover{background:#388E3C}
[data-theme="dark"] .empty-state{color:#94a3b8}
[data-theme="dark"] .search-empty{color:#64748b}
[data-theme="dark"] .load-more-btn{background:#2E7D32;color:#fff}
