:root{
  --safe-top:env(safe-area-inset-top,0px);
  --safe-bottom:env(safe-area-inset-bottom,0px);
  --safe-left:env(safe-area-inset-left,0px);
  --safe-right:env(safe-area-inset-right,0px);
  --gold:#ffd979;
  --cream:#fff7de;
  --violet:#4c286f;
  --deep:#160f32;
  --glass:rgba(28,17,57,.82);
  --tile-w:72px;
  --tile-h:82px;
  --tile-gap:5px;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{width:100%;height:100%;margin:0;overflow:hidden;background:#120d27;color:#fff;font-family:Inter,Lato,"Trebuchet MS",Arial,sans-serif;touch-action:manipulation;overscroll-behavior:none}
button{font:inherit;color:inherit;border:0;cursor:pointer;user-select:none}
button:focus-visible{outline:3px solid #fff;outline-offset:3px}
#app,.screen{position:fixed;inset:0;width:100%;height:100%;height:var(--app-height,100dvh);max-width:100vw;overflow:hidden}
.screen{display:none}.screen.active{display:block}
.cover-screen{background:#25154b}
.cover-art{position:absolute;inset:-2%;background:url('assets/ui/cover.webp') center/cover no-repeat;transform:scale(1.04);animation:coverDrift 13s ease-in-out infinite alternate}
.cover-vignette{position:absolute;inset:0;background:linear-gradient(90deg,rgba(16,9,36,.12),rgba(16,9,36,.05) 45%,rgba(16,9,36,.55)),linear-gradient(0deg,rgba(15,10,33,.72),transparent 55%)}
.cover-content{position:absolute;left:max(4vw,var(--safe-left));top:calc(max(2vh,var(--safe-top)) + 1vh);bottom:calc(max(2vh,var(--safe-bottom)) + 1vh);width:min(52vw,760px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:clamp(7px,1.5vh,18px)}
.cover-logo{width:min(95%,680px);height:auto;filter:drop-shadow(0 12px 18px rgba(0,0,0,.35))}
.tagline{max-width:620px;margin:0;color:#f8eefc;font-size:clamp(13px,1.6vw,22px);line-height:1.3;text-shadow:0 2px 6px #1a1230}
.cover-actions{display:grid;grid-template-columns:1fr 1fr;gap:clamp(8px,1vw,14px);width:min(92%,520px)}
.cover-actions .btn-primary{grid-column:1/-1}
.btn{min-height:48px;border-radius:18px;padding:11px 18px;font-weight:900;letter-spacing:.06em;border:2px solid rgba(255,255,255,.28);box-shadow:0 7px 0 rgba(20,9,40,.65),0 12px 28px rgba(0,0,0,.22);transition:transform .12s,filter .12s;background:linear-gradient(#7a4da2,#4e2673)}
.btn:hover{filter:brightness(1.12)}.btn:active{transform:translateY(5px);box-shadow:0 2px 0 rgba(20,9,40,.65)}
.btn-xl{font-size:clamp(20px,2.4vw,32px);min-height:clamp(58px,8vh,82px);background:linear-gradient(180deg,#ff7b91,#d93b73);border-color:#ffc7d5}
.btn-secondary{background:linear-gradient(#6d8ed9,#4357a5)}
.btn-gold{background:linear-gradient(#ffd86e,#d88928);color:#492713;border-color:#fff0a7}
.cover-meta{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;font-weight:800;color:#fff5c8;font-size:clamp(13px,1.5vw,19px)}
.cover-meta span{background:rgba(35,15,62,.68);padding:7px 13px;border-radius:999px;border:1px solid rgba(255,226,151,.45)}
.cover-tools{display:flex;gap:10px}.icon-btn,.round-btn{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:rgba(36,18,66,.83);border:2px solid rgba(255,233,171,.65);box-shadow:0 5px 12px rgba(0,0,0,.25);font-weight:900;font-size:20px}
.branding{display:flex;align-items:center;justify-content:center;gap:clamp(7px,.7vw,12px);margin-top:clamp(2px,.45vh,7px);padding:clamp(8px,.85vh,12px) clamp(16px,1.8vw,28px);border:2px solid rgba(255,231,157,.78);border-radius:999px;background:linear-gradient(180deg,rgba(48,23,85,.90),rgba(27,13,56,.93));box-shadow:0 8px 20px rgba(0,0,0,.30),inset 0 1px 0 rgba(255,255,255,.12);font-weight:1000;color:#fff3bd;text-shadow:0 3px 6px rgba(26,8,47,.95);white-space:nowrap}.brand-site{font-size:clamp(18px,2.15vw,30px);letter-spacing:.035em;text-transform:none}.brand-year{font-size:clamp(14px,1.55vw,21px);letter-spacing:.08em;color:#ffd76f}
@keyframes coverDrift{from{transform:scale(1.04) translate3d(-.4%,0,0)}to{transform:scale(1.08) translate3d(.5%,-.4%,0)}}

.game-screen{background:#15253f}
.game-bg{position:absolute;inset:0;background:center/cover no-repeat;transition:background-image .35s;filter:saturate(1.04)}
.game-bg:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at center,transparent 15%,rgba(8,9,27,.32) 100%)}
.hud{position:absolute;z-index:10;display:flex;align-items:center;gap:clamp(5px,1vw,12px)}
.top-hud{left:calc(10px + var(--safe-left));right:calc(10px + var(--safe-right));top:calc(8px + var(--safe-top));height:clamp(52px,9vh,76px);justify-content:center}
.round-btn{flex:0 0 auto;width:clamp(42px,6vh,58px);height:clamp(42px,6vh,58px);background:linear-gradient(#57337b,#311c52);font-size:clamp(17px,2.2vh,24px)}
.hud-card,.timer-card,.remaining{background:var(--glass);border:2px solid rgba(255,218,125,.64);border-radius:17px;box-shadow:0 6px 18px rgba(0,0,0,.23),inset 0 1px rgba(255,255,255,.16);backdrop-filter:blur(8px)}
.hud-card{height:clamp(48px,7.6vh,66px);min-width:clamp(66px,9vw,120px);display:grid;place-content:center;text-align:center;padding:4px 10px}
.hud-card small,.remaining small{font-size:clamp(8px,1.15vh,12px);letter-spacing:.13em;color:#e8d6ff;font-weight:800}
.hud-card strong{font-size:clamp(18px,2.6vh,29px);line-height:1;color:#fff5c1}
.timer-card{height:clamp(48px,7.6vh,66px);width:min(31vw,380px);padding:6px 12px;display:flex;flex-direction:column;justify-content:center}
.timer-head{display:flex;justify-content:space-between;font-weight:900;font-size:clamp(10px,1.6vh,17px);color:#fff0c3}.timer-head b{font-variant-numeric:tabular-nums}
.timer-track{height:clamp(8px,1.2vh,13px);border-radius:999px;background:rgba(255,255,255,.16);overflow:hidden;border:1px solid rgba(255,255,255,.16);margin-top:5px}
.timer-fill{height:100%;width:100%;border-radius:inherit;background:linear-gradient(90deg,#ff5f83,#ffd65f,#6cf2c2);transform-origin:left;transition:width .2s linear}
.message-ribbon{position:absolute;z-index:12;top:calc(var(--safe-top) + clamp(67px,11vh,92px));left:50%;transform:translate(-50%,-15px);opacity:0;pointer-events:none;background:linear-gradient(90deg,rgba(51,23,92,.1),rgba(51,23,92,.94),rgba(51,23,92,.1));padding:8px 34px;font-weight:900;color:#fff2b8;letter-spacing:.05em;text-align:center;white-space:nowrap;transition:.25s}
.message-ribbon.show{opacity:1;transform:translate(-50%,0)}
.board-area{position:absolute;z-index:2;left:calc(8px + var(--safe-left));right:calc(8px + var(--safe-right));top:calc(var(--safe-top) + clamp(71px,11.5vh,98px));bottom:calc(var(--safe-bottom) + clamp(73px,12vh,100px));display:flex;align-items:center;justify-content:center;overflow:hidden}
.board-shell{position:relative;padding:clamp(6px,1.1vw,14px);border-radius:24px;background:linear-gradient(145deg,rgba(26,16,56,.74),rgba(76,38,98,.43));border:2px solid rgba(255,226,144,.43);box-shadow:0 16px 50px rgba(0,0,0,.28),inset 0 1px rgba(255,255,255,.2);backdrop-filter:blur(5px);max-width:100%;max-height:100%}
.board{position:relative;width:calc(var(--cols) * var(--tile-w) + (var(--cols) - 1) * var(--tile-gap));height:calc(var(--rows) * var(--tile-h) + (var(--rows) - 1) * var(--tile-gap));max-width:100%;max-height:100%}
.tile{position:absolute;width:var(--tile-w);height:var(--tile-h);padding:0;background:transparent;transform:translate(calc(var(--c) * (var(--tile-w) + var(--tile-gap))),calc(var(--r) * (var(--tile-h) + var(--tile-gap))));transition:transform .18s ease,opacity .22s ease,filter .16s;z-index:2}
.tile img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;filter:drop-shadow(0 4px 3px rgba(0,0,0,.28));transition:transform .14s,filter .14s}
.tile:hover img{transform:translateY(-3px) scale(1.035);filter:drop-shadow(0 7px 5px rgba(0,0,0,.35)) brightness(1.06)}
.tile.selected img{transform:translateY(-5px) scale(1.08);filter:drop-shadow(0 0 9px #fff4a2) drop-shadow(0 8px 6px rgba(0,0,0,.35))}
.tile.hint img{animation:hintPulse .72s ease-in-out 3}.tile.removing{opacity:0;transform:translate(calc(var(--c) * (var(--tile-w) + var(--tile-gap))),calc(var(--r) * (var(--tile-h) + var(--tile-gap)))) scale(.55) rotate(8deg)}
.tile.shake img{animation:tileShake .34s}.tile.ice:after{content:"";position:absolute;inset:9% 11%;border-radius:16%;background:linear-gradient(135deg,rgba(255,255,255,.7),rgba(110,211,255,.18) 45%,rgba(255,255,255,.55));border:2px solid rgba(200,245,255,.76);box-shadow:inset 0 0 14px rgba(255,255,255,.65);pointer-events:none}.tile.ice-crack:after{animation:iceBreak .42s forwards}
@keyframes hintPulse{50%{transform:translateY(-7px) scale(1.13);filter:drop-shadow(0 0 12px #fff) drop-shadow(0 0 20px #ffd85d)}}
@keyframes tileShake{25%{transform:translateX(-5px) rotate(-2deg)}75%{transform:translateX(5px) rotate(2deg)}}
@keyframes iceBreak{to{opacity:0;transform:scale(1.3) rotate(7deg)}}
.path-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:5;overflow:visible}.path-line{fill:none;stroke:#fff3a0;stroke-width:7;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 5px #ff648f);stroke-dasharray:14 8;animation:pathDash .38s linear infinite}@keyframes pathDash{to{stroke-dashoffset:-22}}
.board-sparkles{position:absolute;inset:0;pointer-events:none;z-index:6;overflow:hidden}.spark{position:absolute;width:9px;height:9px;border-radius:50%;background:#fff1a0;box-shadow:0 0 8px #ff7caa;animation:sparkFly .6s ease-out forwards}@keyframes sparkFly{to{transform:translate(var(--dx),var(--dy)) scale(0);opacity:0}}
.powerbar{position:absolute;z-index:10;left:calc(10px + var(--safe-left));right:calc(10px + var(--safe-right));bottom:calc(8px + var(--safe-bottom));height:clamp(58px,9.4vh,82px);display:flex;justify-content:center;align-items:stretch;gap:clamp(6px,1vw,12px)}
.power-btn{position:relative;min-width:clamp(88px,15vw,170px);border-radius:18px;background:linear-gradient(#5c3a85,#39215e);border:2px solid rgba(255,224,142,.62);box-shadow:0 5px 0 rgba(20,9,40,.62);display:grid;grid-template-columns:auto auto;grid-template-rows:1fr 1fr;align-items:center;justify-content:center;column-gap:7px;padding:6px 12px;font-weight:900;font-size:clamp(10px,1.55vh,15px)}
.power-btn:active{transform:translateY(4px);box-shadow:0 1px 0 rgba(20,9,40,.62)}.power-icon{grid-row:1/3;font-size:clamp(22px,3.5vh,34px);color:#ffe077}.power-btn b{color:#ffefac;font-size:clamp(11px,1.7vh,17px)}.power-btn.reward{background:linear-gradient(#ca4c73,#77305f)}
.remaining{width:clamp(68px,9vw,112px);display:grid;place-content:center;text-align:center}.remaining strong{font-size:clamp(21px,3vh,33px);color:#fff1a8}

.modal-root{position:fixed;inset:0;z-index:50;display:none;align-items:center;justify-content:center;padding:calc(18px + var(--safe-top)) calc(16px + var(--safe-right)) calc(18px + var(--safe-bottom)) calc(16px + var(--safe-left));background:rgba(11,8,27,.72);backdrop-filter:blur(8px)}.modal-root.open{display:flex}
.modal{width:min(92vw,620px);max-height:min(90dvh,760px);overflow:auto;border-radius:28px;background:linear-gradient(155deg,#5b347c,#2a174a);border:3px solid rgba(255,219,126,.78);box-shadow:0 22px 70px rgba(0,0,0,.52),inset 0 1px rgba(255,255,255,.17);padding:clamp(18px,3vw,32px);text-align:center}.modal h2{margin:0 0 10px;color:#fff0af;font-size:clamp(28px,6vw,48px);line-height:1}.modal p{line-height:1.45;color:#f3eaff}.modal-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:20px}.modal-actions .btn{min-width:130px}.stars{font-size:clamp(42px,8vw,70px);letter-spacing:.04em;color:#ffd95f;text-shadow:0 3px 0 #9a541d}.result-score{font-size:clamp(22px,4vw,34px);font-weight:900;color:#fff}.reward-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px}.reward-card{padding:13px 7px;border-radius:16px;background:rgba(18,12,41,.45);border:1px solid rgba(255,231,168,.35);font-weight:800}.reward-card b{display:block;color:#ffe17a;font-size:22px}.level-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:16px}.level-button{aspect-ratio:1;border-radius:14px;background:linear-gradient(#7950a2,#472768);border:2px solid rgba(255,228,159,.55);font-weight:900;font-size:17px}.level-button.locked{filter:grayscale(1);opacity:.48}.level-button.current{box-shadow:0 0 0 3px #fff6bc}.level-button .mini-stars{display:block;font-size:8px;color:#ffd95f;letter-spacing:-1px}.help-steps{text-align:left;display:grid;gap:10px;margin:16px 0}.help-step{background:rgba(19,12,42,.45);border-radius:15px;padding:12px 14px}.help-step b{color:#ffe286}.toast{position:fixed;z-index:100;left:50%;bottom:calc(18px + var(--safe-bottom));transform:translate(-50%,24px);opacity:0;pointer-events:none;background:rgba(18,12,40,.94);border:2px solid rgba(255,226,149,.68);border-radius:999px;padding:10px 18px;max-width:min(92vw,560px);text-align:center;font-weight:800;transition:.25s;box-shadow:0 8px 26px rgba(0,0,0,.34)}.toast.show{opacity:1;transform:translate(-50%,0)}

@media(max-aspect-ratio:4/5){
  .cover-art{background-position:68% center}.cover-vignette{background:linear-gradient(0deg,rgba(16,9,36,.78),rgba(16,9,36,.22) 80%)}
  .cover-content{left:3vw;right:3vw;top:auto;bottom:calc(2vh + var(--safe-bottom));width:auto;height:74%;justify-content:flex-end}.cover-logo{width:min(94%,520px)}.tagline{font-size:clamp(13px,3.4vw,19px)}.cover-actions{width:min(94%,460px)}
  .top-hud{gap:4px}.hud-card{min-width:58px;padding:3px 5px}.score-card{min-width:78px}.combo-card{display:none}.timer-card{width:auto;flex:1;min-width:110px;padding:5px 8px}.top-hud .round-btn{width:42px;height:42px}
  .board-area{top:calc(var(--safe-top) + 68px);bottom:calc(var(--safe-bottom) + 78px);left:4px;right:4px}.board-shell{padding:5px;border-radius:16px}
  .powerbar{gap:4px;left:4px;right:4px}.power-btn{min-width:0;flex:1;padding:5px 4px;column-gap:3px;border-radius:14px}.remaining{width:58px}.power-icon{font-size:22px}
}
@media(max-height:500px){
  .tagline,.cover-meta{display:none}.cover-content{gap:6px}.cover-logo{max-height:35vh;width:auto}.btn{min-height:39px;padding:7px 15px}.btn-xl{min-height:48px}.top-hud{top:4px;height:48px}.round-btn{width:40px;height:40px}.hud-card,.timer-card{height:43px}.board-area{top:56px;bottom:62px}.powerbar{height:52px;bottom:4px}.power-btn{border-radius:12px}.modal{max-height:94dvh}
}
@media(max-width:430px){.level-grid{grid-template-columns:repeat(5,1fr)}.reward-grid{grid-template-columns:1fr 1fr}.reward-card:last-child{grid-column:1/-1}}

/* Ultra-compact layout safeguards */
@media(max-width:350px){
  #soundBtnGame{display:none}
  .top-hud{left:4px;right:4px;gap:3px}
  .top-hud .round-btn{width:38px;height:38px}
  .hud-card{min-width:56px;padding:2px 4px}
  .score-card{min-width:70px}
  .timer-card{min-width:102px;padding:4px 6px}
}
@media(max-height:500px){
  .cover-logo{width:min(94%,520px);height:auto;max-height:35vh;object-fit:contain}
}

/* breymantech 2026 branding responsive safety */
@media (max-width:700px){.branding{padding:7px 14px;gap:7px}.brand-site{font-size:clamp(16px,4.3vw,23px)}.brand-year{font-size:clamp(13px,3.4vw,18px)}}
@media (max-height:560px){.branding{padding:5px 11px;margin-top:0}.brand-site{font-size:clamp(14px,2.8vh,19px)}.brand-year{font-size:clamp(12px,2.2vh,15px)}}


/* Live-resize safeguards: keep every control inside the current viewport. */
@media (max-width:600px){
  .top-hud{left:calc(4px + var(--safe-left));right:calc(4px + var(--safe-right));gap:3px}
  .hud-card{min-width:52px}
  .score-card{min-width:68px}
  .timer-card{min-width:94px}
  .board-area{left:calc(3px + var(--safe-left));right:calc(3px + var(--safe-right))}
}
@media (max-height:420px){
  .top-hud{top:calc(2px + var(--safe-top));height:40px}
  .top-hud .round-btn,.round-btn{width:36px;height:36px;font-size:16px}
  .hud-card,.timer-card{height:38px;border-radius:12px}
  .hud-card strong{font-size:17px}
  .hud-card small{font-size:8px}
  .timer-track{height:6px;margin-top:2px}
  .board-area{top:calc(var(--safe-top) + 44px);bottom:calc(var(--safe-bottom) + 49px)}
  .powerbar{height:43px;bottom:calc(2px + var(--safe-bottom));gap:3px}
  .power-btn{padding:2px 4px;border-radius:10px;min-width:0}
  .power-icon{font-size:18px}
  .remaining{width:50px}
  .message-ribbon{top:calc(var(--safe-top) + 44px);font-size:11px;padding:5px 18px}
}
@media (max-width:360px) and (max-height:560px){
  .cover-content{top:calc(2px + var(--safe-top));bottom:calc(2px + var(--safe-bottom));height:auto;gap:4px}
  .cover-logo{max-height:26vh}
  .cover-actions{gap:5px}
  .btn{min-height:36px;padding:5px 10px;border-radius:12px}
  .btn-xl{min-height:42px;font-size:18px}
  .branding{padding:4px 9px}
  .brand-site{font-size:15px}.brand-year{font-size:12px}
}
