/* ============================================================
   SWEET BANANZA GUMMY RIPPLE — style.css
   Bright · Playful · Clean — NOT neon
   System font, rounded cards, candy palette
   ============================================================ */

:root {
  --candy-red:    #16a9de;
  --candy-orange: #3548de;
  --candy-yellow: #9845ec;
  --candy-green:  #d222bd;
  --candy-blue:   #e9295c;
  --candy-purple: #e2824f;
  --candy-pink:   #ded816;

  --bg:         #7bde35;
  --bg-panel:   #ffffff;
  --bg-board:   #45ec66;
  --separator:  rgba(255,45,120,0.14);
  --label:      #22d2b2;
  --label-2:    rgba(60,60,67,0.55);
  --label-3:    rgba(60,60,67,0.28);

  --shadow-sm:  0 1px 4px rgba(255,45,120,0.10), 0 1px 2px rgba(0,0,0,0.05);
  --shadow-md:  0 4px 16px rgba(255,45,120,0.12), 0 2px 6px rgba(0,0,0,0.06);
  --shadow-lg:  0 8px 32px rgba(255,45,120,0.14), 0 2px 8px rgba(0,0,0,0.08);
  --shadow-xl:  0 16px 56px rgba(255,45,120,0.18), 0 4px 14px rgba(0,0,0,0.10);

  --font: -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
  --radius-sm:  8px;
  --radius:     14px;
  --radius-lg:  20px;
  --radius-xl:  26px;
  --radius-pill:100px;

  /* board dims */
  --cell:   36px;
  --cols:   10;
  --rows:   20;
  --board-w:calc(var(--cell) * var(--cols));
  --board-h:calc(var(--cell) * var(--rows));
}

@media(prefers-color-scheme:dark){
  :root{
    --bg:        #2996e9;
    --bg-panel:  #564fe2;
    --bg-board:  #16a9de;
    --separator: rgba(255,45,120,0.2);
    --label:     #ffffff;
    --label-2:   rgba(235,235,245,0.55);
    --label-3:   rgba(235,235,245,0.28);
  }
}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  background:var(--bg);
  color:var(--label);
  font-family:var(--font);
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

/* ── HEADER ─────────────────────────────────────────────────── */
header{
  display:flex;align-items:center;justify-content:space-between;
  height:52px;padding:0 20px;
  background:rgba(255,245,248,0.88);
  backdrop-filter:saturate(160%) blur(20px);
  -webkit-backdrop-filter:saturate(160%) blur(20px);
  border-bottom:1px solid var(--separator);
  position:sticky;top:0;z-index:100;
}
@media(prefers-color-scheme:dark){header{background:rgba(28,10,20,0.88);}}
.logo{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:700;letter-spacing:0;color:var(--candy-red);text-decoration:none;}
.logo-icon{font-size:22px;}
nav{display:flex;align-items:center;}
nav a{font-size:15px;color:var(--candy-blue);text-decoration:none;padding:6px 10px;border-radius:var(--radius-sm);transition:background 0.15s;}
nav a:hover{background:rgba(0,122,255,0.08);}
#lang-switcher{position:relative;margin-left:4px;}
#lang-btn{display:flex;align-items:center;gap:4px;font-size:15px;color:var(--candy-blue);background:none;border:none;padding:6px 10px;border-radius:var(--radius-sm);cursor:pointer;transition:background 0.15s;}
#lang-btn:hover{background:rgba(0,122,255,0.08);}
#lang-btn .arrow{font-size:10px;opacity:0.6;transition:transform 0.18s;}
#lang-btn.open .arrow{transform:rotate(180deg);}
#lang-dropdown{display:none;position:absolute;top:calc(100%+6px);right:0;background:var(--bg-panel);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);overflow:hidden;z-index:200;min-width:160px;border:1px solid var(--separator);}
#lang-dropdown.open{display:block;}
.lang-option{display:flex;align-items:center;gap:10px;padding:12px 16px;font-size:15px;color:var(--label);cursor:pointer;transition:background 0.12s;}
.lang-option:not(:last-child){border-bottom:1px solid var(--separator);}
.lang-option:hover{background:rgba(255,45,120,0.06);}
.lang-option.active{color:var(--candy-red);font-weight:600;}
.lang-flag{font-size:18px;}

/* ── GAME WRAPPER ────────────────────────────────────────────── */
#game-section{
  display:flex;flex-direction:column;align-items:center;
  padding:20px 16px 64px;gap:14px;
}

/* ── TOP HUD ──────────────────────────────────────────────────── */
#top-hud{
  display:flex;align-items:stretch;
  width:100%;max-width:520px;
  background:var(--bg-panel);
  border-radius:var(--radius-xl);
  box-shadow:var(--shadow-sm);
  overflow:hidden;
  border:1px solid var(--separator);
}
.hud-cell{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:12px 6px;gap:2px;
}
.hud-cell:not(:last-child){border-right:1px solid var(--separator);}
.hud-label{font-size:11px;font-weight:600;letter-spacing:0.5px;text-transform:uppercase;color:var(--label-2);}
.hud-val{font-size:22px;font-weight:700;letter-spacing:0;color:var(--label);}
#hud-score-val{color:var(--candy-red);}
#hud-level-val{color:var(--candy-purple);}
#hud-controls{
  display:flex;align-items:center;gap:5px;
  padding:0 12px;
  border-left:1px solid var(--separator);
  flex-shrink:0;
}
.diff-pill{
  font-size:13px;font-weight:600;
  padding:5px 12px;border-radius:var(--radius-pill);
  background:none;border:none;color:var(--label-2);cursor:pointer;
  transition:all 0.18s;
}
.diff-pill.active{background:var(--candy-red);color:#fff;}
#play-btn{
  font-size:15px;font-weight:600;
  padding:8px 18px;
  background:var(--candy-red);color:#fff;
  border:none;border-radius:var(--radius-pill);
  cursor:pointer;transition:opacity 0.15s;
  white-space:nowrap;
  box-shadow:0 2px 8px rgba(255,45,120,0.35);
}
#play-btn:active{opacity:0.82;}
#pause-btn{font-size:18px;background:none;border:none;cursor:pointer;padding:4px 8px;color:var(--label-2);}

/* ── GAME LAYOUT ─────────────────────────────────────────────── */
#game-layout{
  display:flex;align-items:flex-start;gap:12px;
  width:100%;max-width:520px;
}

/* ── SIDE PANELS ─────────────────────────────────────────────── */
.side-panel{
  width:88px;flex-shrink:0;
  display:flex;flex-direction:column;gap:10px;
}
.mini-panel{
  background:var(--bg-panel);
  border:1px solid var(--separator);
  border-radius:var(--radius-lg);
  padding:12px 8px 14px;
  display:flex;flex-direction:column;align-items:center;gap:8px;
  box-shadow:var(--shadow-sm);
}
.mini-label{
  font-size:11px;font-weight:600;letter-spacing:0.5px;
  text-transform:uppercase;color:var(--label-2);
}
.mini-canvas{
  width:72px;height:72px;
  border-radius:var(--radius-sm);
  background:var(--bg-board);
  border:1px solid var(--separator);
}
.next-canvas{height:140px;}
.score-badge{
  font-size:18px;font-weight:700;
  color:var(--candy-red);letter-spacing:0;
}

/* ── BOARD ───────────────────────────────────────────────────── */
#board-wrap{
  flex:1;
  position:relative;
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--shadow-lg);
  border:2px solid var(--separator);
  background:var(--bg-board);
}
#board-canvas{
  display:block;
  width:100%;
  /* height driven by JS */
}

/* Flash overlay for line clear */
#clear-flash{
  position:absolute;inset:0;
  background:rgba(255,204,0,0.25);
  pointer-events:none;
  opacity:0;border-radius:calc(var(--radius-lg) - 2px);
}
#clear-flash.pop{animation:flash-pop 0.35s ease-out forwards;}
@keyframes flash-pop{0%{opacity:1;}100%{opacity:0;}}

/* Clear label */
#clear-label{
  position:absolute;left:50%;top:38%;
  transform:translateX(-50%) scale(0);
  font-size:22px;font-weight:800;letter-spacing:0;
  color:#fff;text-align:center;white-space:nowrap;
  padding:8px 18px;
  background:var(--candy-red);
  border-radius:var(--radius-pill);
  box-shadow:0 4px 18px rgba(255,45,120,0.45);
  pointer-events:none;opacity:0;
}
#clear-label.show{animation:label-pop 1s cubic-bezier(0.34,1.56,0.64,1) forwards;}
@keyframes label-pop{
  0%{opacity:0;transform:translateX(-50%) scale(0.5);}
  20%{opacity:1;transform:translateX(-50%) scale(1.12);}
  80%{opacity:1;}
  100%{opacity:0;transform:translateX(-50%) scale(0.9);}
}

/* Pause overlay */
#pause-overlay{
  position:absolute;inset:0;
  background:rgba(255,245,248,0.75);
  backdrop-filter:blur(12px) saturate(1.4);
  -webkit-backdrop-filter:blur(12px) saturate(1.4);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;
  border-radius:calc(var(--radius-lg) - 2px);
  pointer-events:none;opacity:0;
  transition:opacity 0.2s;
}
@media(prefers-color-scheme:dark){#pause-overlay{background:rgba(28,10,20,0.78);}}
#pause-overlay.show{opacity:1;pointer-events:all;}
.pause-icon{font-size:52px;}
.pause-title{font-size:26px;font-weight:800;color:var(--label);letter-spacing:0;}
.resume-btn{
  font-size:17px;font-weight:600;
  padding:14px 36px;
  background:var(--candy-red);color:#fff;
  border:none;border-radius:var(--radius-pill);
  cursor:pointer;
  box-shadow:0 4px 16px rgba(255,45,120,0.4);
  transition:opacity 0.15s;
}
.resume-btn:active{opacity:0.82;}

/* ── OVERLAY (start / game over) ─────────────────────────────── */
#overlay{
  position:fixed;inset:0;
  display:flex;align-items:center;justify-content:center;
  padding:24px;
  background:rgba(0,0,0,0.38);
  backdrop-filter:blur(20px) saturate(1.3);
  -webkit-backdrop-filter:blur(20px) saturate(1.3);
  z-index:200;
  transition:opacity 0.25s;
}
#overlay.hidden{opacity:0;pointer-events:none;}
#overlay-card{
  background:var(--bg-panel);
  border-radius:var(--radius-xl);
  padding:36px 32px 28px;
  max-width:360px;width:100%;
  box-shadow:var(--shadow-xl);
  display:flex;flex-direction:column;align-items:center;gap:14px;
  text-align:center;
}
.overlay-icon{font-size:60px;line-height:1;}
.overlay-title{font-size:28px;font-weight:800;letter-spacing:0;color:var(--label);}
.overlay-subtitle{font-size:14px;font-weight:500;color:var(--candy-red);letter-spacing:0.3px;}
.overlay-body{font-size:15px;color:var(--label-2);line-height:1.6;max-width:280px;}
.overlay-score{font-size:42px;font-weight:800;color:var(--candy-red);letter-spacing:0;}
.overlay-btn{
  width:100%;font-size:17px;font-weight:600;
  padding:16px 24px;
  background:var(--candy-red);color:#fff;
  border:none;border-radius:var(--radius-lg);
  cursor:pointer;transition:opacity 0.15s;
  box-shadow:0 4px 18px rgba(255,45,120,0.4);
  margin-top:4px;
}
.overlay-btn:active{opacity:0.82;}
.score-chips{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;}
.score-chip{
  display:flex;flex-direction:column;align-items:center;
  padding:10px 16px;
  background:rgba(255,45,120,0.07);
  border:1px solid var(--separator);
  border-radius:var(--radius);
  min-width:80px;
}
.chip-label{font-size:11px;font-weight:600;letter-spacing:0.4px;text-transform:uppercase;color:var(--label-2);}
.chip-val{font-size:22px;font-weight:700;color:var(--candy-red);}

/* ── MOBILE TOUCH CONTROLS ───────────────────────────────────── */
#touch-controls{
  display:none;
  width:100%;max-width:520px;
  background:var(--bg-panel);
  border:1px solid var(--separator);
  border-radius:var(--radius-xl);
  padding:12px 16px;
  gap:8px;
  justify-content:center;
  align-items:center;
}
@media(hover:none){#touch-controls{display:flex;}}
.touch-row{display:flex;gap:8px;justify-content:center;}
.t-btn{
  width:62px;height:52px;
  background:var(--bg-panel);
  border:1.5px solid var(--separator);
  border-radius:var(--radius);
  font-size:20px;color:var(--label);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:all 0.12s;
  -webkit-user-select:none;user-select:none;
  touch-action:manipulation;
  box-shadow:var(--shadow-sm);
}
.t-btn:active{background:rgba(255,45,120,0.1);border-color:var(--candy-red);transform:scale(0.95);}
.t-btn.wide{width:130px;}
#t-rotate{background:var(--candy-red);color:#fff;border-color:var(--candy-red);box-shadow:0 2px 10px rgba(255,45,120,0.35);}
.rotate-btn{width:100px;}
.controls-hint{font-size:13px;color:var(--label-3);text-align:center;font-weight:500;}

/* ── INDEX STORY ─────────────────────────────────────────── */
.index-story{max-width:980px;margin:0 auto 72px;padding:0 24px;display:grid;grid-template-columns:1.45fr .85fr;gap:1px;background:var(--separator);border:1px solid var(--separator);border-radius:8px;overflow:hidden;box-shadow:var(--shadow-md);}
.index-story>article,.index-story>aside{padding:34px;background:var(--bg-panel);}
.story-kicker,.page-kicker,.privacy-label{display:block;margin-bottom:9px;color:var(--candy-purple);font-size:12px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;}
.index-story h2{margin-bottom:12px;font-size:25px;letter-spacing:0;}
.index-story p{color:var(--label-2);font-size:15px;line-height:1.75;}
.index-contact{display:flex;flex-direction:column;align-items:flex-start;}
.index-contact a{margin-top:9px;color:var(--candy-blue);font-weight:600;text-decoration:none;overflow-wrap:anywhere;}

/* ── ABOUT / LEGAL ───────────────────────────────────────────── */
.page-hero{padding:52px 24px 40px;border-bottom:1px solid var(--separator);}
.page-hero h1{font-size:32px;font-weight:800;letter-spacing:0;color:var(--label);margin-bottom:10px;}
.hero-icon{font-size:46px;margin-bottom:16px;}
.page-hero p{font-size:17px;color:var(--label-2);max-width:560px;line-height:1.65;}
.content-wrap{max-width:720px;margin:0 auto;padding:40px 24px 80px;}
.section-title{font-size:22px;font-weight:800;letter-spacing:0;color:var(--label);margin:36px 0 14px;}
.section-title:first-child{margin-top:0;}
.card-list{display:flex;flex-direction:column;gap:1px;background:var(--separator);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:28px;box-shadow:var(--shadow-sm);}
.card-row{background:var(--bg-panel);padding:16px 18px;display:flex;align-items:flex-start;gap:14px;}
.card-row-icon{font-size:22px;flex-shrink:0;margin-top:1px;}
.card-row h4{font-size:17px;font-weight:600;color:var(--label);margin-bottom:3px;}
.card-row p{font-size:15px;color:var(--label-2);line-height:1.5;}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--separator);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);}
.col-card{background:var(--bg-panel);padding:18px;}
.col-card h3{font-size:15px;font-weight:700;color:var(--label);margin-bottom:10px;}
.col-card ul{list-style:none;display:flex;flex-direction:column;gap:6px;}
.col-card li{font-size:14px;color:var(--label-2);padding-left:14px;position:relative;}
.col-card li::before{content:'🍬';position:absolute;left:-2px;font-size:11px;}
.highlight-box{background:rgba(255,45,120,0.06);border-radius:var(--radius-lg);padding:16px 18px;margin:20px 0;font-size:15px;color:var(--label-2);}
.cta-btn{display:inline-block;font-size:17px;font-weight:600;padding:16px 44px;background:var(--candy-red);color:#fff;border-radius:var(--radius-pill);text-decoration:none;box-shadow:0 4px 18px rgba(255,45,120,0.4);transition:opacity 0.15s;}
.cta-btn:hover{opacity:0.88;}
.legal-body{font-size:15px;color:var(--label-2);line-height:1.75;}
.legal-body h2{font-size:17px;font-weight:700;color:var(--label);margin:28px 0 8px;}
.legal-body h2:first-child{margin-top:0;}
.legal-body p{margin-bottom:12px;}
body.inner-page{display:flex;min-height:100vh;flex-direction:column;}
.inner-page main{flex:1;}
.lead-copy{color:var(--label-2);font-size:16px;line-height:1.75;}
.score-ledger{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--separator);border-radius:8px;overflow:hidden;}
.score-ledger span{display:flex;justify-content:space-between;gap:12px;padding:16px;background:var(--bg-panel);border-bottom:1px solid var(--separator);}
.score-ledger span:nth-child(odd){border-right:1px solid var(--separator);}
.score-ledger span:nth-last-child(-n+2){border-bottom:0;}
.score-ledger strong{color:var(--candy-red);}
.difficulty-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.difficulty-row div{display:flex;flex-direction:column;gap:5px;padding:18px;border:1px solid var(--separator);border-radius:8px;background:var(--bg-panel);}
.difficulty-row strong{color:var(--candy-red);}.difficulty-row span{color:var(--label-2);font-size:13px;}
.center-action{text-align:center;margin-top:38px;}
.legal-hero{background:linear-gradient(90deg,rgba(191,90,242,.07),rgba(0,122,255,.05));}
.terms-route article{display:grid;grid-template-columns:54px 1fr;gap:20px;padding:24px 0;border-bottom:1px solid var(--separator);}
.terms-route h2,.privacy-board h2{margin:0 0 8px;color:var(--label);font-size:19px;}.terms-route p,.privacy-board p{margin:0;color:var(--label-2);font-size:15px;line-height:1.75;}
.term-number{display:grid;width:42px;height:42px;place-items:center;border-radius:50%;color:#fff;background:var(--candy-purple);font-size:12px;font-weight:800;}
.terms-route a,.privacy-board a{color:var(--candy-blue);}
.privacy-board{max-width:900px;display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--separator);padding:1px;}
.privacy-board section{padding:28px;background:var(--bg-panel);}.privacy-board .privacy-wide{grid-column:1/-1;}
.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.contact-grid a{display:flex;min-width:0;min-height:205px;flex-direction:column;padding:24px;border:1px solid var(--separator);border-radius:8px;background:var(--bg-panel);text-decoration:none;}
.contact-grid span{color:var(--candy-purple);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:1px;}.contact-grid strong{margin:auto 0 12px;color:var(--candy-red);font-size:16px;overflow-wrap:anywhere;}.contact-grid p{color:var(--label-2);font-size:14px;line-height:1.55;}
.contact-note{margin-top:24px;padding:20px;border-left:4px solid var(--candy-yellow);background:var(--bg-panel);}.contact-note p{margin-top:6px;color:var(--label-2);line-height:1.6;}
footer{border-top:1px solid var(--separator);padding:20px 24px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;}
.footer-label{font-size:13px;color:var(--label-3);}
.footer-links{display:flex;}
.footer-links a{font-size:13px;color:var(--candy-blue);text-decoration:none;padding:4px 10px;}

/* ── RESPONSIVE ─────────────────────────────────────────────── */
@media(max-width:560px){
  header{padding:0 14px;}
  nav a{display:none;} nav a.always{display:block;}
  #game-section{padding:14px 10px 48px;gap:10px;}
  .side-panel{width:72px;}
  .mini-canvas{width:60px;height:60px;}
  :root{--cell:32px;}
  #top-hud{flex-wrap:wrap;}
  .hud-cell{min-width:calc(33% - 1px);}
  #hud-controls{width:100%;justify-content:center;border-left:none;border-top:1px solid var(--separator);padding:8px;}
  .two-col{grid-template-columns:1fr;}
  footer{padding:14px;flex-direction:column;text-align:center;}
  .content-wrap{padding:28px 14px 56px;}
  #overlay-card{padding:28px 18px 22px;}
  #touch-controls{display:flex;flex-direction:column;}
  .touch-row{width:100%;}
  .index-story{grid-template-columns:1fr;margin:0 14px 48px;padding:0;}.index-story>article,.index-story>aside{padding:25px 22px;}
  .score-ledger,.difficulty-row,.privacy-board,.contact-grid{grid-template-columns:1fr;}.score-ledger span:nth-child(odd){border-right:0}.score-ledger span:nth-last-child(2){border-bottom:1px solid var(--separator)}.privacy-board .privacy-wide{grid-column:auto}.terms-route article{grid-template-columns:42px 1fr;gap:14px}.contact-grid a{min-height:170px;}
}
@media(max-width:380px){
  .side-panel{display:none;}
  :root{--cell:30px;}
}
