:root{
  --c4-ink:#12233f;--c4-muted:#526174;--c4-teal:#087f7a;--c4-blue:#1268b3;--c4-blue-dark:#073d78;
  --c4-red:#e74646;--c4-red-dark:#a9182d;--c4-yellow:#ffd43b;--c4-yellow-dark:#c78300;
  --c4-cream:#fffdf7;--c4-line:#dce5ec;--c4-shadow:0 20px 60px rgba(4,45,74,.20)
}
*{box-sizing:border-box}
body{margin:0;background:
  radial-gradient(circle at 10% 10%,rgba(255,255,255,.24),transparent 28rem),
  linear-gradient(145deg,#0a8b83 0%,#086b77 52%,#074b6d 100%);color:var(--c4-ink);min-height:100vh}
button{font:inherit}
.skip-link{position:fixed;left:1rem;top:-5rem;z-index:9999;background:#fff;color:#071a34;padding:.8rem 1rem;border-radius:.7rem;font-weight:900}
.skip-link:focus{top:1rem}
.c4-page{width:min(1120px,calc(100% - 2rem));margin:0 auto;padding:1.5rem 0 4rem}
.game-hero{display:flex;justify-content:space-between;align-items:flex-end;color:#fff;margin:.5rem 0 1.25rem}
.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.75rem;font-weight:900;margin:0 0 .3rem;color:#b9fff1}
.game-hero h1{font:900 clamp(2.3rem,6vw,4.7rem)/.95 Poppins,sans-serif;margin:0;letter-spacing:-.06em;text-shadow:0 5px 20px rgba(0,0,0,.2)}
.game-hero h1 span{color:var(--c4-yellow)}
.tagline{font-weight:700;margin:.65rem 0 0;color:#e2fffa}
.help-button,.action{min-height:48px;border-radius:999px;border:2px solid rgba(255,255,255,.85);background:#fff;color:var(--c4-ink);padding:.7rem 1rem;font-weight:900;cursor:pointer;box-shadow:0 5px 14px rgba(0,0,0,.1)}
.help-button:hover,.action:hover{transform:translateY(-1px)}
.game-settings,.match-card,.stats-card{background:rgba(255,253,247,.98);border:1px solid rgba(255,255,255,.6);border-radius:24px;box-shadow:var(--c4-shadow)}
.game-settings{padding:1.1rem 1.25rem;display:grid;grid-template-columns:minmax(180px,.75fr) 2fr;gap:1rem;align-items:center;margin-bottom:1rem}
.game-settings h2,.stats-card h2{font:900 1.15rem Poppins,sans-serif;margin:0}
.game-settings p,.stats-card p{margin:.25rem 0 0;color:var(--c4-muted);font-weight:600;font-size:.88rem;line-height:1.4}
.mode-picker{display:grid;grid-template-columns:repeat(4,1fr);gap:.55rem}
.mode-button{min-height:68px;border:2px solid var(--c4-line);border-radius:15px;background:#fff;color:var(--c4-ink);display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:.45rem;align-items:center;text-align:left;padding:.55rem .7rem;cursor:pointer}
.mode-button>span{grid-row:1/3;font-size:1.35rem}.mode-button strong{font-size:.86rem}.mode-button small{color:var(--c4-muted);font-size:.68rem;font-weight:700}
.mode-button:hover{border-color:#78a5c8}.mode-button.active{background:#e7f4ff;border-color:var(--c4-blue);box-shadow:inset 0 0 0 1px var(--c4-blue)}
.match-card{padding:1rem 1.25rem 1.35rem;overflow:hidden}
.players-row{display:grid;grid-template-columns:1fr auto 1fr;gap:1rem;align-items:center;max-width:800px;margin:0 auto}
.player-card{display:flex;align-items:center;gap:.7rem;background:#fff;border:2px solid var(--c4-line);border-radius:18px;padding:.65rem .8rem;opacity:.72;transition:.2s ease}
.player-card.active{opacity:1;box-shadow:0 0 0 4px rgba(18,104,179,.15);transform:translateY(-2px)}
.player-card.yellow{justify-content:flex-end;text-align:right}.right-name{display:flex;flex-direction:column}
.player-card small{display:block;font-weight:900;font-size:.64rem;letter-spacing:.13em;color:var(--c4-muted)}
.player-card strong{display:block;font-size:1rem}.player-token{width:38px;height:38px;border-radius:50%;flex:0 0 auto;box-shadow:inset 0 -6px 9px rgba(0,0,0,.22),0 3px 6px rgba(0,0,0,.15)}
.token-red{background:radial-gradient(circle at 33% 26%,#ffad9f 0 9%,var(--c4-red) 45%,var(--c4-red-dark) 100%)}
.token-yellow{background:radial-gradient(circle at 33% 26%,#fffbd1 0 9%,var(--c4-yellow) 48%,var(--c4-yellow-dark) 100%)}
.score{font:900 1.5rem Poppins,sans-serif;margin-left:auto}.yellow .score{margin-left:0;margin-right:auto}
.round-state{text-align:center;color:var(--c4-muted);font-weight:800;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}.round-state strong{display:block;color:var(--c4-ink);font-size:.78rem;margin-top:.1rem}
.status-panel{display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:62px}.status{font:900 clamp(1rem,2.5vw,1.25rem) Poppins,sans-serif;text-align:center;margin:.7rem 0}.speak-status{width:44px;height:44px;flex:0 0 44px;border-radius:50%;border:1px solid var(--c4-line);background:#fff;cursor:pointer}
.board-shell{width:min(610px,100%);margin:0 auto;position:relative;filter:drop-shadow(0 18px 18px rgba(6,41,81,.24))}
.column-controls{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;background:linear-gradient(#1676c5,#1268b3);padding:12px 14px 7px;border-radius:24px 24px 0 0}
.column-button{height:52px;border:0;border-radius:13px;background:#f8fbff;color:var(--c4-blue);font-weight:900;cursor:pointer;position:relative;overflow:hidden;transition:transform .12s,background .12s}
.column-button::after{content:'▼';font-size:1.25rem}.column-button:hover,.column-button:focus-visible,.column-button.selected{background:#dff5ff;transform:translateY(-3px)}
.column-button[data-preview="red"]::before,.column-button[data-preview="yellow"]::before{content:'';position:absolute;width:34px;height:34px;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%);opacity:.28}
.column-button[data-preview="red"]::before{background:var(--c4-red)}.column-button[data-preview="yellow"]::before{background:var(--c4-yellow)}
.column-button:disabled{opacity:.38;cursor:not-allowed;transform:none}
.board{display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(6,1fr);gap:7px;background:linear-gradient(155deg,#1b7dcc,#075295);padding:7px 14px 16px;border:3px solid #06467f;border-top:0;border-radius:0 0 20px 20px;aspect-ratio:7/6}
.board-row{display:contents}
.cell{position:relative;border-radius:50%;background:linear-gradient(145deg,#c7d7e2,#f8fbfd 55%,#b0c5d3);box-shadow:inset 0 6px 11px rgba(1,34,69,.48),0 1px 1px rgba(255,255,255,.3)}
.cell::after{content:'';position:absolute;inset:5%;border-radius:50%;opacity:0;transform:scale(.45)}
.cell.red::after,.cell.yellow::after{opacity:1;transform:scale(1);box-shadow:inset 0 -8px 13px rgba(0,0,0,.22),0 3px 6px rgba(0,0,0,.18)}
.cell.red::after{background:radial-gradient(circle at 32% 25%,#ffb8aa 0 7%,var(--c4-red) 43%,var(--c4-red-dark) 100%)}
.cell.yellow::after{background:radial-gradient(circle at 32% 25%,#fffde1 0 7%,var(--c4-yellow) 45%,var(--c4-yellow-dark) 100%)}
.cell.red::before,.cell.yellow::before{position:absolute;inset:0;display:grid;place-items:center;z-index:2;font:900 clamp(.65rem,2vw,1.05rem)/1 Poppins,sans-serif}
.cell.red::before{content:'●';color:rgba(255,255,255,.72)}.cell.yellow::before{content:'✦';color:#765000}
.cell.last::before{content:'↓';inset:30%;border-radius:50%;background:#fff;color:#173b60;box-shadow:0 0 0 3px rgba(7,41,76,.35);font-size:.7rem}
.cell.win::after{outline:5px solid #fff;outline-offset:-3px;animation:winPulse .75s ease-in-out infinite alternate;z-index:1}
.cell.drop::after{animation:pieceDrop .34s cubic-bezier(.21,.86,.4,1.12)}
.board-feet{display:flex;justify-content:space-between;padding:0 42px}.board-feet span{width:92px;height:16px;background:#06467f;border-radius:0 0 12px 12px}
.keyboard-hint{text-align:center;color:var(--c4-muted);font-size:.78rem;font-weight:700;margin:.9rem auto .5rem}
.game-actions{display:flex;justify-content:center;gap:.55rem;flex-wrap:wrap;margin-top:.75rem}.action{border-color:var(--c4-line);min-width:130px}.action.primary{background:#0c9b72;color:#fff;border-color:#0c9b72}.action.danger{background:#b42335;color:#fff;border-color:#b42335}.action.quiet{background:transparent;box-shadow:none}.action:disabled{opacity:.45;cursor:not-allowed;transform:none}
.achievement{max-width:610px;margin:1rem auto 0;background:#fff3c4;border:2px solid #e8b51e;border-radius:14px;padding:.7rem 1rem;text-align:center;font-weight:900}
.stats-card{padding:1rem 1.25rem;margin-top:1rem;display:flex;justify-content:space-between;align-items:center;gap:1rem}.stats-card dl{display:flex;gap:.65rem;margin:0}.stats-card dl div{background:#f2f7fa;border-radius:13px;min-width:90px;padding:.55rem .75rem;text-align:center}.stats-card dt{font-size:.68rem;text-transform:uppercase;font-weight:900;color:var(--c4-muted)}.stats-card dd{font:900 1.35rem Poppins,sans-serif;margin:0}
.game-dialog{border:0;border-radius:24px;padding:0;width:min(500px,calc(100% - 2rem));color:var(--c4-ink);box-shadow:0 30px 90px rgba(0,0,0,.42)}.game-dialog::backdrop{background:rgba(2,17,39,.78);backdrop-filter:blur(3px)}.dialog-inner{position:relative;padding:2rem;text-align:center}.dialog-inner h2{font:900 1.75rem Poppins,sans-serif;margin:.3rem 0}.dialog-inner p,.dialog-inner li{color:var(--c4-muted);font-weight:600;line-height:1.55}.dialog-inner ol{text-align:left;max-width:390px;margin:1rem auto}.dialog-icon{font-size:3rem;margin:0}.dialog-close{position:absolute;right:.8rem;top:.8rem;width:44px;height:44px;border-radius:50%;border:1px solid var(--c4-line);background:#fff;font-size:1.5rem;cursor:pointer}.result-actions{display:flex;justify-content:center;gap:.6rem;flex-wrap:wrap;margin-top:1rem}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@keyframes pieceDrop{from{transform:translateY(-600%)}to{transform:translateY(0)}}
@keyframes winPulse{from{filter:brightness(1)}to{filter:brightness(1.25);transform:scale(.91)}}
@media(max-width:820px){.game-settings{grid-template-columns:1fr}.mode-picker{grid-template-columns:repeat(2,1fr)}.stats-card{align-items:flex-start;flex-direction:column}.stats-card dl{width:100%}.stats-card dl div{flex:1}}
@media(max-width:560px){.c4-page{width:min(100% - 1rem,480px);padding-top:.7rem}.game-hero{align-items:center}.game-hero h1{font-size:2.35rem}.eyebrow,.tagline{display:none}.help-button{min-width:48px;font-size:0;padding:.6rem}.help-button::first-letter{font-size:1rem}.game-settings{padding:.8rem}.game-settings>div:first-child{display:none}.mode-button{min-height:56px;padding:.4rem .5rem}.mode-button small{display:none}.match-card{padding:.7rem 0 1rem;border-radius:20px}.players-row,.status-panel,.game-actions{margin-left:.45rem;margin-right:.45rem}.players-row{gap:.35rem}.player-card{padding:.45rem;gap:.35rem;border-radius:14px}.player-token{width:29px;height:29px}.player-card small{font-size:.54rem}.player-card strong{font-size:.8rem}.score{font-size:1.15rem}.round-state{font-size:.58rem}.round-state strong{font-size:.61rem}.column-controls{gap:2px;padding:8px 5px 5px}.column-button{height:46px;border-radius:10px}.board{gap:3px;padding:4px 5px 10px}.board-feet{padding:0 25px}.board-feet span{width:65px}.keyboard-hint{display:none}.stats-card dl{gap:.3rem}.stats-card dl div{min-width:0;padding:.45rem .3rem}.game-actions .action{min-width:0}.status-panel{min-height:52px}.status{margin:.45rem 0}}
@media(max-width:360px){.c4-page{width:100vw}.mode-picker{gap:.35rem}.mode-button>span{font-size:1.1rem}.mode-button strong{font-size:.76rem}.player-token{display:none}.round-state{display:none}.players-row{grid-template-columns:1fr 1fr}.column-controls{gap:0;padding-left:6px;padding-right:6px}.column-button{height:44px;min-width:44px}.board{gap:2px;padding-left:6px;padding-right:6px}.game-actions{display:grid;grid-template-columns:1fr 1fr}.action{padding:.6rem .65rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
@media(prefers-contrast:more){.cell{outline:2px solid #001d3a}.mode-button,.player-card,.action{border-width:3px}}
