/* lotsof.games PRO — Landing Template CSS
   All colors come from theme.css custom properties:
   --ep (primary), --es (secondary), --et (tertiary),
   --ep-rgb, --es-rgb, --et-rgb,
   --font-heading, --font-body, --ring-glow */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-tap-highlight-color:transparent;scroll-behavior:smooth}
body{font-family:var(--font-body,'DM Sans'),sans-serif;background:var(--et,#000);color:var(--es,#fff);min-height:100dvh;overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}

/* ── Layout ── */
.page{max-width:420px;margin:0 auto;padding:28px 20px 48px;display:flex;flex-direction:column;align-items:center;gap:24px}

/* ── Logo ── */
.landing-logo{width:160px;border-radius:16px}

/* ── Tagline ── */
.tagline{font-family:var(--font-heading,'Amatic SC'),cursive;font-size:1.1rem;color:var(--text-dim,rgba(255,255,255,.45));text-align:center;line-height:1.5;max-width:320px;letter-spacing:.5px;filter:drop-shadow(0 0 12px var(--ep-dim,rgba(255,0,90,.15)));animation:fadeSlide .6s ease-out .2s both}

/* ── Headings ── */
.heading{font-family:var(--font-heading,'Amatic SC'),cursive;font-weight:700;font-size:2.8rem;text-align:center;line-height:1.1;letter-spacing:2px;background:linear-gradient(90deg,var(--ep),var(--ring-glow2,#ff3380),rgba(var(--es-rgb),.7),var(--ring-glow2,#ff3380),var(--ep));background-size:300% 100%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:headingShift 8s linear infinite;filter:drop-shadow(0 0 12px var(--ep-dim))}
@keyframes headingShift{0%{background-position:300% 50%}100%{background-position:0% 50%}}
.heading-sub{font-size:.7rem;color:var(--text-dim);text-align:center;margin-top:-6px;letter-spacing:1.5px;text-transform:uppercase;font-weight:500;position:relative;display:inline-block}
.sparkle{position:absolute;font-size:.55rem;pointer-events:none;animation:sparkle 2.5s ease-out infinite;opacity:0}
.sparkle:nth-child(odd){color:var(--ep)}
.sparkle:nth-child(even){color:var(--ep)}
.sparkle:nth-child(1){top:-6px;left:-14px;animation-delay:0s}
.sparkle:nth-child(2){top:-4px;right:-14px;animation-delay:.4s}
.sparkle:nth-child(3){bottom:-6px;left:-10px;animation-delay:.9s}
.sparkle:nth-child(4){bottom:-4px;right:-10px;animation-delay:1.3s}
.sparkle:nth-child(5){top:50%;left:-18px;animation-delay:1.7s}
.sparkle:nth-child(6){top:50%;right:-18px;animation-delay:2.1s}
@keyframes sparkle{0%{opacity:0;transform:scale(.4) rotate(0deg)}30%{opacity:1;transform:scale(1.2) rotate(90deg)}60%{opacity:.7;transform:scale(.8) rotate(180deg)}100%{opacity:0;transform:scale(.3) rotate(270deg)}}

/* ── Separator ── */
.sep{width:85%;height:1px;position:relative;margin:12px 0}
.sep::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,var(--ep),transparent);animation:sepPulse 3s ease-in-out infinite}
.sep::after{content:'';position:absolute;inset:-2px 20%;background:linear-gradient(90deg,transparent,var(--ep-dim),transparent);filter:blur(4px);animation:sepPulse 3s ease-in-out infinite}
@keyframes sepPulse{0%,100%{opacity:.25}50%{opacity:.7}}

/* ── Roulette stage ── */
.rl-stage{position:relative;width:286px;height:286px;margin:0 auto}
.rl-wheel-box{position:absolute;inset:0;transition:opacity .4s ease,transform .4s ease;will-change:opacity,transform}
.rl-wheel-box.hidden{opacity:0;transform:scale(.8);pointer-events:none}
.rl-ring{position:relative;width:286px;height:286px;border-radius:50%;overflow:hidden;filter:drop-shadow(0 0 18px rgba(var(--ep-rgb),.4)) drop-shadow(0 0 40px rgba(var(--ep-rgb),.15))}
.rl-ring::before{content:'';position:absolute;top:-80%;left:-80%;width:260%;height:260%;background:conic-gradient(var(--ep),var(--ring-glow2,var(--ep)),rgba(var(--es-rgb),.6),var(--ep),var(--ring-glow2,var(--ep)),rgba(var(--es-rgb),.6),var(--ep));opacity:1;animation:neon-spin 2.5s linear infinite;z-index:0}
.rl-ring::after{content:'';position:absolute;inset:3px;background:var(--et,#000);border-radius:50%;z-index:1}
@keyframes neon-spin{to{transform:rotate(360deg)}}
.rl-ring canvas{position:absolute;top:3px;left:3px;z-index:2;border-radius:50%;cursor:grab;touch-action:none;will-change:transform}
.rl-ring canvas:active{cursor:grabbing}
.rl-ptr{position:absolute;top:50%;right:-3px;transform:translateY(-50%);z-index:4;width:0;height:0;border-top:11px solid transparent;border-bottom:11px solid transparent;border-right:22px solid var(--es,#fff);filter:drop-shadow(-2px 0 8px var(--ep));transition:opacity .4s}
.rl-ptr.hidden{opacity:0}

/* Spin button */
.spin-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 32px;border-radius:50px;font-family:'JetBrains Mono',monospace;font-size:.8rem;font-weight:700;color:var(--es,#fff);background:var(--ep);border:none;box-shadow:0 0 20px rgba(var(--ep-rgb),.3);cursor:pointer;transition:transform .15s;margin-top:10px;animation:spinPulse 2s ease-in-out infinite}
@keyframes spinPulse{0%,100%{box-shadow:0 0 16px rgba(var(--ep-rgb),.25);transform:scale(1)}50%{box-shadow:0 0 30px rgba(var(--ep-rgb),.5),0 0 60px rgba(var(--ep-rgb),.25),0 0 90px rgba(var(--ep-rgb),.1);transform:scale(1.04)}}
.spin-btn:active{transform:scale(.96)}
.spin-btn:disabled{opacity:.4;cursor:default;animation:none}
@keyframes invitePulse{0%,100%{box-shadow:0 0 20px var(--ep-dim);transform:scale(1)}50%{box-shadow:0 0 35px var(--ep-glow);transform:scale(1.04)}}
.rl-hint-touch{font-size:.68rem;color:var(--text-dim);text-align:center;margin-top:4px;opacity:0;transition:opacity .4s}
.rl-hint-touch.vis{opacity:1}

/* ── Form overlay ── */
.form-overlay{position:absolute;inset:-20px;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:transparent;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);padding:24px 20px;transition:opacity .35s,transform .35s}
.form-overlay.gone{opacity:0;transform:scale(.92);pointer-events:none}
.form-overlay h3{font-family:var(--font-heading),cursive;font-weight:700;font-size:2.4rem;color:var(--ep);text-align:center}
.form-overlay p{font-size:.7rem;color:var(--text-dim);text-align:center;margin-top:-8px}
.form-field{width:100%;max-width:240px}
.form-field input{width:100%;padding:10px 14px;border-radius:10px;border:1.5px solid var(--ep-dim);background:rgba(255,255,255,.08);color:var(--es);font-family:var(--font-body),sans-serif;font-size:.85rem;outline:none;transition:border-color .2s;animation:inputGlow 2.5s ease-in-out infinite}
.form-field input::placeholder{color:var(--text-dim)}
.form-field input:focus{border-color:var(--ep);box-shadow:0 0 16px var(--ep-dim);animation:none}
@keyframes inputGlow{0%,100%{border-color:rgba(var(--ep-rgb),.2);box-shadow:0 0 6px rgba(var(--ep-rgb),.08)}50%{border-color:rgba(var(--ep-rgb),.5);box-shadow:0 0 20px rgba(var(--ep-rgb),.25)}}
.form-field input.valid{border-color:#22c55e;box-shadow:0 0 8px rgba(34,197,94,.1);animation:none}
.form-field input.invalid{border-color:#ef4444;box-shadow:0 0 8px rgba(239,68,68,.1);animation:none}
.form-btn{padding:11px 28px;border-radius:50px;border:none;font-family:var(--font-body),sans-serif;font-size:.82rem;font-weight:700;color:var(--es);background:var(--ep);cursor:pointer;transition:opacity .2s,transform .15s;margin-top:4px;box-shadow:0 2px 16px var(--ep-dim);opacity:.7;animation:btnPulse 2.5s ease-in-out infinite}
@keyframes btnPulse{0%,100%{box-shadow:0 2px 16px var(--ep-dim)}50%{box-shadow:0 2px 28px var(--ep-glow)}}
.form-btn:disabled{opacity:.25;cursor:default;animation:none}
.form-btn:active:not(:disabled){transform:scale(.96)}

/* ── Result card ── */
.rl-result{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;opacity:0;transform:scale(.85);transition:opacity .45s cubic-bezier(.23,1,.32,1),transform .45s cubic-bezier(.23,1,.32,1);pointer-events:none;background:rgba(var(--et-rgb),.95);border:1px solid rgba(var(--ep-rgb),.15);border-top:1px solid rgba(255,255,255,.12);box-shadow:0 0 12px rgba(var(--ep-rgb),.12);border-radius:18px;overflow:hidden;z-index:5;padding:28px 20px}
.rl-result::before{content:'';position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:linear-gradient(135deg,transparent 35%,rgba(255,255,255,.06) 42%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.06) 58%,transparent 65%);pointer-events:none}
.rl-result.vis{opacity:1;transform:scale(1);pointer-events:auto}
.rl-result .won-label{font-size:.58rem;font-weight:700;text-transform:uppercase;letter-spacing:3px;color:var(--text-dim);margin-bottom:4px}
.rl-result .won-emoji{font-size:2.4rem;animation:popIn .4s cubic-bezier(.23,1,.32,1);filter:drop-shadow(0 6px 12px var(--ep-dim))}
.rl-result .won-name{font-family:var(--font-heading),cursive;font-weight:700;font-size:2.6rem;color:var(--ep);text-align:center;line-height:1.1;text-shadow:0 0 25px var(--ep-glow),0 0 60px var(--ep-dim);animation:popIn .5s cubic-bezier(.23,1,.32,1) .1s both}
.rl-result .won-type{font-size:.72rem;color:var(--ep);text-align:center;font-weight:700;padding:5px 16px;border:1px solid var(--ep-dim);border-radius:20px;background:rgba(var(--ep-rgb),.06);animation:typePulse 2s ease-in-out infinite}
@keyframes typePulse{0%,100%{box-shadow:0 0 8px rgba(var(--ep-rgb),.1)}50%{box-shadow:0 0 16px rgba(var(--ep-rgb),.25)}}
.rl-result .won-sub{font-size:.72rem;color:var(--text-dim);text-align:center;margin-top:6px;line-height:1.5;font-weight:500}

/* ── Game cards ── */
.games-section{width:100%;max-width:340px}
.games-title{font-family:var(--font-heading),cursive;font-weight:700;font-size:2rem;text-align:center;line-height:1.1;letter-spacing:2px;background:linear-gradient(90deg,var(--ep),var(--ring-glow2,#ff3380),rgba(var(--es-rgb),.7),var(--ring-glow2,#ff3380),var(--ep));background-size:300% 100%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:headingShift 8s linear infinite;filter:drop-shadow(0 0 12px var(--ep-dim));margin-bottom:12px}
.games-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;width:100%}
.game-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;padding:22px 10px 18px;border-radius:16px;text-decoration:none;transition:transform .2s,box-shadow .2s,border-color .2s;background:rgba(var(--et-rgb),.85);border:1px solid rgba(var(--ep-rgb),.15);border-top:1px solid rgba(255,255,255,.12);box-shadow:0 0 8px rgba(var(--ep-rgb),.08);overflow:hidden}
.game-card::before{content:'';position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:linear-gradient(135deg,transparent 35%,rgba(255,255,255,.06) 42%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.06) 58%,transparent 65%);pointer-events:none}
.game-card:hover{transform:translateY(-2px);border-color:rgba(var(--ep-rgb),.3);box-shadow:0 0 20px rgba(var(--ep-rgb),.25),0 0 40px rgba(var(--ep-rgb),.08)}
.game-card:active{transform:scale(.96)}
.game-card img{width:58px;height:58px;object-fit:contain;filter:drop-shadow(0 2px 8px rgba(var(--ep-rgb),.25))}
.game-card .gc-name{font-family:var(--font-heading),cursive;font-weight:700;font-size:1.5rem;color:var(--es)}
.game-card .gc-desc{font-size:.62rem;color:var(--text-dim);text-align:center;line-height:1.35}

/* ── Google review ── */
/* ── Interaction blocks (avis google, boite a idees) — callout style ── */
.interact-block{width:100%;max-width:340px;padding:20px 20px 20px 28px;border-radius:0 14px 14px 0;border-left:none;background:rgba(var(--ep-rgb),.04);position:relative;overflow:hidden}
.interact-block::before{content:'';position:absolute;left:0;top:0;bottom:0;width:5px;border-radius:8px 0 0 8px;background:var(--ep);z-index:1}
.interact-block::after{content:'';position:absolute;left:0;top:0;bottom:0;width:5px;border-radius:8px 0 0 8px;background:linear-gradient(180deg,transparent 30%,rgba(255,255,255,.25) 50%,transparent 70%);background-size:100% 300%;animation:interactShine 8s ease-in-out infinite;z-index:2}
@keyframes interactBorder{0%,100%{background-position:0% 0%}50%{background-position:0% 100%}}
@keyframes interactShine{0%,100%{background-position:0% 0%;opacity:.3}50%{background-position:0% 100%;opacity:.8}}
.interact-block h3{font-family:var(--font-heading),cursive;font-size:1.3rem;color:var(--ep);margin-bottom:8px;text-align:center}
.interact-block p{font-size:.78rem;color:var(--text-dim);margin-bottom:12px;text-align:center}
.interact-block{text-align:center}

/* Legacy class alias */
.review-block{width:100%;max-width:340px;padding:20px 20px 20px 24px;border-radius:14px;border-left:3px solid var(--ep);background:rgba(var(--ep-rgb),.04)}
.review-block h3{font-family:var(--font-heading),cursive;font-size:1.3rem;color:var(--ep);margin-bottom:8px}
.review-block p{font-size:.78rem;color:var(--text-dim);margin-bottom:12px}
.review-link{display:inline-block;padding:8px 20px;border-radius:50px;background:var(--ep);color:var(--es);font-size:.78rem;font-weight:700;text-decoration:none}

/* ── Social + WiFi buttons (ring style) ── */
.social-btn{display:flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:50%;background:var(--et);border:none;cursor:pointer;position:relative;transition:transform .2s,box-shadow .2s;text-decoration:none;box-shadow:0 0 8px rgba(var(--ep-rgb),.15)}
.social-btn::before{content:'';position:absolute;inset:-3px;border-radius:50%;background:conic-gradient(var(--ep),rgba(var(--ep-rgb),.3),var(--ep));z-index:-1;animation:neon-spin 3s linear infinite}
.social-btn::after{content:'';position:absolute;inset:-1px;border-radius:50%;background:var(--et);z-index:-1}
.social-btn:hover{transform:scale(1.08);box-shadow:0 0 16px rgba(var(--ep-rgb),.3)}
.social-btn:active{transform:scale(.95)}
.social-btn svg{position:relative;z-index:1}

/* ── After-wheel form ── */
#afterWheelForm{animation:afterFormAppear .5s ease-out,afterFormPulse 2.5s ease-in-out .5s infinite}
@keyframes afterFormAppear{from{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:none}}
@keyframes afterFormPulse{0%,100%{box-shadow:0 0 12px rgba(var(--ep-rgb),.15);border-color:rgba(var(--ep-rgb),.2)}50%{box-shadow:0 0 28px rgba(var(--ep-rgb),.35),0 0 60px rgba(var(--ep-rgb),.1);border-color:rgba(var(--ep-rgb),.5)}}
#afterWheelForm h3{text-shadow:0 0 20px rgba(var(--ep-rgb),.3)}

/* ── Placeholder blocks ── */
.placeholder-block{width:100%;max-width:340px;text-align:center;padding:20px;border:1px dashed rgba(var(--ep-rgb),.2);border-radius:16px;color:var(--text-dim);font-size:.78rem;background:rgba(var(--et-rgb),.5)}

/* ── More link ── */
.more-link{font-size:.75rem;color:var(--ep);text-align:center;opacity:.7;text-shadow:0 0 10px var(--ep-dim)}

/* ── Footer ── */
.footer{font-size:.62rem;color:var(--es);text-align:center;padding-top:4px}
.footer a{background:linear-gradient(90deg,#ff6b6b,#ffd93d,#6BCB77,#4ecdc4,#74b9ff,#a29bfe,#fd79a8);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;background-size:200% 100%;animation:rainbow 3s linear infinite}
@keyframes rainbow{from{background-position:200% 50%}to{background-position:0% 50%}}

/* ── Landing modal (shared: menu, events) ── */
.landing-modal{position:fixed;inset:0;z-index:200;background:rgba(0,0,0,.7);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);align-items:center;justify-content:center;display:flex;padding:16px;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))}
.landing-modal-content{background:var(--et,#111);color:var(--es,#fff);width:100%;max-width:440px;max-height:85vh;border-radius:20px;padding:24px 16px 32px;overflow-y:auto;position:relative;animation:modalPop .3s ease-out}
@keyframes modalPop{from{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}
.landing-modal-close{position:absolute;top:12px;right:16px;background:none;border:none;color:var(--es);font-size:1.3rem;cursor:pointer;z-index:1;opacity:.6}
.landing-modal-close:hover{opacity:1}
.landing-modal-title{font-family:var(--font-heading,'Amatic SC'),cursive;font-size:2rem;color:var(--ep);text-align:center;margin-bottom:16px}

/* ── Menu tile (CTA on landing) ── */
.menu-tile{display:flex;align-items:center;gap:12px;width:90%;max-width:380px;padding:14px 18px;background:rgba(var(--ep-rgb),.08);border:1px solid rgba(var(--ep-rgb),.2);border-radius:16px;cursor:pointer;transition:all .2s;font-family:inherit;color:inherit;text-align:left}
.menu-tile:hover,.menu-tile:active{background:rgba(var(--ep-rgb),.15);transform:scale(1.02)}
.menu-tile-icon{font-size:1.8rem;flex-shrink:0}
.menu-tile-text{flex:1}
.menu-tile-title{font-family:var(--font-heading,'Amatic SC'),cursive;font-size:1.5rem;color:var(--ep);line-height:1}
.menu-tile-sub{font-size:.7rem;color:var(--text-dim,rgba(255,255,255,.45));margin-top:2px}
.menu-tile-arrow{font-size:1.8rem;color:var(--ep);opacity:.5;font-weight:300}

/* ── Menu categories nav ── */
.menu-cats-nav{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;padding:0 0 8px;margin-bottom:12px}
.menu-cat-btn{padding:8px 16px;border-radius:50px;border:1px solid rgba(var(--ep-rgb),.2);background:transparent;color:var(--es);font-size:.78rem;font-family:var(--font-body),sans-serif;cursor:pointer;transition:all .2s}
.menu-cat-btn.active{background:var(--ep);color:var(--et,#000);border-color:var(--ep);font-weight:600}

/* ── Menu panels ── */
.menu-cat-panel{display:none}
.menu-cat-panel.active{display:block}

/* ── Menu items ── */
.menu-item{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid rgba(var(--ep-rgb),.08)}
.menu-item:last-child{border-bottom:none}
.menu-item.recommended{background:rgba(var(--ep-rgb),.05);margin:0 -12px;padding:12px;border-radius:10px;border-bottom:none}
.menu-item-photo{width:72px;height:72px;object-fit:cover;border-radius:10px;flex-shrink:0}
.menu-item-info{flex:1;min-width:0}
.menu-item-header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.menu-item-name{font-weight:600;font-size:.85rem;color:var(--es)}
.menu-item-price{font-weight:700;font-size:.85rem;color:var(--ep);white-space:nowrap;flex-shrink:0}
.menu-item-desc{font-size:.72rem;color:var(--text-dim);margin-top:3px;line-height:1.4}
.menu-item-meta{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}
.menu-allergen{font-size:.7rem;opacity:.7}
.menu-tag{font-size:.6rem;padding:2px 6px;border-radius:8px;background:rgba(var(--ep-rgb),.12);color:var(--ep)}

/* ── Menu specials banner ── */
.menu-specials{background:rgba(var(--ep-rgb),.08);border:1px solid rgba(var(--ep-rgb),.2);border-radius:12px;padding:12px 16px;margin-bottom:16px}
.menu-specials-title{font-family:var(--font-heading,'Amatic SC'),cursive;font-size:1.3rem;color:var(--ep);margin-bottom:8px}
.menu-special-item{display:flex;justify-content:space-between;align-items:center;padding:4px 0;font-size:.82rem}

/* ── Events section ── */
.events-section{width:100%;max-width:340px}
.events-title{font-family:var(--font-heading),cursive;font-weight:700;font-size:2rem;text-align:center;line-height:1.1;letter-spacing:2px;background:linear-gradient(90deg,var(--ep),var(--ring-glow2,#ff3380),rgba(var(--es-rgb),.7),var(--ring-glow2,#ff3380),var(--ep));background-size:300% 100%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:headingShift 8s linear infinite;filter:drop-shadow(0 0 12px var(--ep-dim));margin-bottom:12px}
.events-list{display:flex;flex-direction:column;gap:12px}
.event-card{background:rgba(var(--ep-rgb),.06);border:1px solid rgba(var(--ep-rgb),.12);border-radius:14px;overflow:hidden}
.event-card-img{width:100%;height:140px;object-fit:cover}
.event-card-body{display:flex;gap:12px;padding:12px 14px}
.event-date-badge{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:48px;height:48px;border-radius:10px;background:var(--ep);color:var(--et,#000);flex-shrink:0}
.event-day{font-size:1.3rem;font-weight:700;line-height:1}
.event-month{font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}
.event-card-info{flex:1;min-width:0}
.event-card-title{font-weight:600;font-size:.88rem;color:var(--es);line-height:1.2}
.event-card-time{font-size:.7rem;color:var(--text-dim);margin-top:2px}
.event-card-desc{font-size:.72rem;color:var(--text-dim);margin-top:4px;line-height:1.4}
.event-cta{display:block;text-align:center;padding:10px;font-size:.78rem;font-weight:600;color:var(--ep);border-top:1px solid rgba(var(--ep-rgb),.1);transition:background .2s}
.event-cta:hover{background:rgba(var(--ep-rgb),.08)}
.events-more-btn{display:block;width:100%;padding:10px;margin-top:8px;border:1px solid rgba(var(--ep-rgb),.2);border-radius:50px;background:transparent;color:var(--ep);font-size:.78rem;font-family:var(--font-body),sans-serif;cursor:pointer;transition:all .2s}
.events-more-btn:hover{background:rgba(var(--ep-rgb),.1)}

/* ── News section ── */
.news-section{width:100%;max-width:340px}
.news-title{font-family:var(--font-heading),cursive;font-weight:700;font-size:2rem;text-align:center;line-height:1.1;letter-spacing:2px;background:linear-gradient(90deg,var(--ep),var(--ring-glow2,#ff3380),rgba(var(--es-rgb),.7),var(--ring-glow2,#ff3380),var(--ep));background-size:300% 100%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:headingShift 8s linear infinite;filter:drop-shadow(0 0 12px var(--ep-dim));margin-bottom:12px}
.news-list{display:flex;flex-direction:column;gap:10px}
.news-card{background:rgba(var(--ep-rgb),.06);border:1px solid rgba(var(--ep-rgb),.12);border-radius:14px;overflow:hidden}
.news-card.pinned{border-color:rgba(var(--ep-rgb),.3);background:rgba(var(--ep-rgb),.1)}
.news-card.alert{border-color:rgba(255,107,107,.3);background:rgba(255,107,107,.08)}
.news-card-img{width:100%;height:120px;object-fit:cover}
.news-card-body{padding:12px 14px}
.news-card-meta{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.news-type-badge{font-size:.65rem;padding:2px 8px;border-radius:8px;font-weight:600}
.news-type-badge.info{background:rgba(var(--ep-rgb),.12);color:var(--ep)}
.news-type-badge.promo{background:rgba(78,205,196,.15);color:#4ecdc4}
.news-type-badge.alert{background:rgba(255,107,107,.15);color:#ff6b6b}
.news-date{font-size:.65rem;color:var(--text-dim)}
.news-pin{font-size:.7rem}
.news-card-title{font-weight:600;font-size:.85rem;color:var(--es);line-height:1.2;margin-bottom:4px}
.news-card-content{font-size:.72rem;color:var(--text-dim);line-height:1.4}

/* ── Confetti ── */
.confetti{position:fixed;pointer-events:none;z-index:999;animation:cfall linear forwards}
@keyframes cfall{0%{opacity:1;transform:translateY(0) rotate(0)}100%{opacity:0;transform:translateY(100vh) rotate(720deg)}}

/* ── Scroll reveal ── */
.sr:not(.vis){opacity:0;transform:translateY(20px)}
.sr{transition:opacity .5s ease,transform .5s ease}
.sr.vis{opacity:1;transform:none}
.sr-d1{transition-delay:.05s}.sr-d2{transition-delay:.12s}.sr-d3{transition-delay:.2s}.sr-d4{transition-delay:.28s}

/* ── Utility animations ── */
@keyframes fadeSlide{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes popIn{from{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}

/* ── Reduced motion ── */
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}.sr{opacity:1;transform:none}}
