:root{--gold:#ffd970;--hot:#f963cf;--ice:#70efff}
body{background:#070b1b;background-image:radial-gradient(circle at 50% -20%,#4a2869 0,transparent 48%),linear-gradient(110deg,#070b1b,#101b38 50%,#080b1b)}
.app{position:relative}.app:before,.app:after{content:"";position:absolute;z-index:-1;top:90px;bottom:20px;width:3px;background:linear-gradient(transparent,#6eeaff77 25%,#f470d17a 72%,transparent);box-shadow:0 0 18px #68deff}
.app:before{left:-15px}.app:after{right:-15px}
.topbar{border-bottom-color:#66dbfc85;box-shadow:0 12px 28px -25px #75eaff;height:88px}.brand strong{font-size:30px;letter-spacing:2.2px;text-shadow:0 0 16px #9fe9ff}.brand strong span{color:#ffb9e8}.brand-icon{border-color:var(--gold);color:var(--gold);box-shadow:0 0 22px #ffc76280,0 0 40px #f969db55}.brand small{color:#a9c3db;letter-spacing:2.2px}
.arcade-marquee{height:36px;display:flex;align-items:center;justify-content:center;gap:28px;border-bottom:2px solid #f4bd65;background:linear-gradient(90deg,#32153c,#172c4d 30%,#221a4f 70%,#371735);color:#86ecf7;box-shadow:0 8px 28px #ff58cd2f,inset 0 1px #ffffff27;overflow:hidden;white-space:nowrap}.arcade-marquee strong{font:900 18px 'Barlow Condensed',sans-serif;letter-spacing:4px;color:#fff7d2;text-shadow:0 0 8px #ffc569,0 0 22px #fd6bac}.arcade-marquee span{font-size:10px;font-weight:800;letter-spacing:2px;color:#7deeff}.arcade-marquee span:first-child,.arcade-marquee span:last-child{color:#ffce7e;text-shadow:0 0 10px #ffb453;animation:lightStrip 1.6s ease-in-out infinite alternate}@keyframes lightStrip{to{opacity:.45;text-shadow:0 0 20px #f454ca}}
.rank-button{height:40px;padding:0 14px;border:1px solid #d598ff;border-radius:8px;background:linear-gradient(135deg,#32204c,#1a2a4d);color:#ffe4a4;font:800 14px 'Barlow Condensed',sans-serif;letter-spacing:1.7px;box-shadow:0 0 18px #e16cff44}.rank-button:hover{color:#fff;border-color:#ffe098;box-shadow:0 0 25px #ffbc6199}.top-actions{align-items:center}
.card{border-color:#6c6c9a;background:linear-gradient(145deg,#1c2946f2,#11172ff2);box-shadow:0 0 0 1px #81d9fb1a,0 14px 35px #0007,inset 0 1px #ffffff32}.card-title{color:#e6d5ff}.card-title small{color:#83d8eb}.board-bezel{border-color:#ffc771;box-shadow:0 0 0 1px #ffbd6899,0 0 30px #ffb44e77,0 0 85px #f656c078,0 30px 70px #000d}.board-bezel:before{border-color:#f9cb8d9e;box-shadow:inset 0 0 18px #65edff55,0 0 25px #f9bd6d77}.puzzle-panel{border-color:#dc89ee;box-shadow:0 0 0 1px #e470ef47,0 0 35px #ef67d542,0 20px 50px #0009,inset 0 1px #ffffff35}.puzzle-head h2{color:#fff;text-shadow:0 0 16px #74eaff88}.puzzle-progress{background:#111d34}.puzzle-stage{border-color:#ac81e8}.puzzle-tray{border-color:#f4b9689a;background:#15162be3}.puzzle-tray:before{color:#ffd78a}.page-footer{border-top:1px solid #c974d452;color:#9d80b6}.board-footer{color:#c29dbd}.board-footer i{background:#ffd373;box-shadow:0 0 10px #ffc664}
.puzzle-stage.piece-missed{animation:missFlash .36s ease-out}@keyframes missFlash{0%{box-shadow:inset 0 0 60px #ff416a,0 0 22px #ff456b;border-color:#ff516b}100%{box-shadow:none}}
.score-dialog{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:20px;background:#030613db;backdrop-filter:blur(9px)}.score-dialog[hidden]{display:none}.score-dialog-card{position:relative;width:min(480px,100%);max-height:min(92vh,800px);overflow:auto;padding:27px;border:2px solid #ffcd79;border-radius:15px;background:linear-gradient(145deg,#26324f,#111b34 55%,#2a1b44);box-shadow:0 0 0 5px #14213d,0 0 35px #ffc37788,0 0 95px #d361e266}.score-dialog-card:before{content:"";position:absolute;inset:7px;pointer-events:none;border:1px solid #ffeac33d;border-radius:8px}.score-close{position:absolute;right:16px;top:12px;width:32px;height:32px;border:0;background:transparent;color:#e1dded;font-size:27px;line-height:1}.score-eyebrow{text-align:center;color:#ffda8a;font-size:11px;font-weight:800;letter-spacing:2.5px}.score-dialog h2{text-align:center;margin:7px 0 8px;font:900 56px/.95 'Barlow Condensed',sans-serif;letter-spacing:2px;color:#fff;text-shadow:0 0 15px #fff7,0 0 30px #ee72d9}.score-summary{text-align:center;color:#8feef6;font:700 16px 'Barlow Condensed',sans-serif;letter-spacing:1px;min-height:18px}.score-form{margin:19px 0}.score-form[hidden]{display:none}.score-form label{display:block;color:#ffdd96;font-size:10px;font-weight:800;letter-spacing:1.5px;margin-bottom:7px}.score-form-row{display:flex;gap:8px}.score-form input{min-width:0;flex:1;height:43px;border:1px solid #7fb4d9;border-radius:6px;background:#091628;color:#fff;font:700 17px 'DM Sans',sans-serif;padding:0 12px;outline:none}.score-form input:focus{border-color:#ffe0a2;box-shadow:0 0 12px #ffc27766}.score-form button{border:0;border-radius:6px;background:linear-gradient(100deg,#77f0f6,#ffd478);color:#0b1930;font:800 15px 'Barlow Condensed',sans-serif;letter-spacing:.5px;padding:0 16px}.score-form button:disabled{opacity:.5;cursor:wait}.score-message{text-align:center;min-height:17px;color:#b4cbe2;font-size:11px}.score-list{list-style:none;margin:16px 0 6px;padding:0;counter-reset:rank}.score-list li{counter-increment:rank;display:flex;align-items:center;gap:11px;padding:9px 10px;border-bottom:1px solid #ffffff1a;color:#d2e4f5;font-size:13px}.score-list li:before{content:counter(rank,decimal-leading-zero);color:#a6eafa;font:800 19px 'Barlow Condensed',sans-serif;letter-spacing:1px;width:28px}.score-list li:nth-child(1){background:#ffe39117;color:#fff5d2}.score-list li:nth-child(1):before{color:#ffdd82}.score-list .score-name{flex:1;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.score-list .score-value{font:800 21px 'Barlow Condensed',sans-serif;color:#fff;letter-spacing:1px}.score-list .empty{justify-content:center;color:#8299b4}.score-list .empty:before{content:none}.score-mode{text-align:right;font-size:9px;color:#86a8bb;letter-spacing:1.5px;font-weight:800}
@media(max-width:700px){.topbar{height:66px}.brand strong{font-size:20px}.brand-icon{width:31px;height:31px;font-size:23px}.rank-button{font-size:0;width:36px;padding:0}.rank-button:before{content:"★";font-size:19px}.arcade-marquee{height:27px;gap:12px}.arcade-marquee strong{font-size:13px;letter-spacing:2px}.arcade-marquee span{font-size:7px}.arcade-marquee span:nth-last-child(2){display:none}.app:before,.app:after{display:none}.score-dialog-card{padding:20px}.score-dialog h2{font-size:45px}}
@media(prefers-reduced-motion:reduce){.arcade-marquee span:first-child,.arcade-marquee span:last-child,.puzzle-stage.piece-missed{animation:none}}
