:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#101a30;color:#edf2ff;font-synthesis:none;--mint:#99e6ce;--muted:#8592ae}
*{box-sizing:border-box}body{margin:0;min-height:100svh;background:radial-gradient(ellipse at 50% 0,#21345688,transparent 65%);overflow-x:hidden}button,a,canvas{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;border:0;color:inherit;transition:background .18s,transform .18s}button:disabled{cursor:default}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid var(--mint);outline-offset:5px}button:hover:not(:disabled){filter:brightness(1.12)}button:active:not(:disabled){transform:translateY(1px)}[hidden]{display:none!important}.ambient{position:fixed;z-index:-1;pointer-events:none;border-radius:50%;filter:blur(90px);opacity:.16}.a{width:350px;height:400px;background:#338c90;left:-220px;top:180px}.b{width:400px;height:400px;background:#7b66cf;right:-280px;bottom:50px}
.shell{width:min(100% - 40px,436px);margin:0 auto;padding:29px 0 25px}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:33px}.brand{display:flex;align-items:center;gap:10px;color:#f5f6ff;text-decoration:none;font-size:15px;font-weight:820;letter-spacing:1.8px}.brand-light{font-weight:400;margin-left:4px;color:var(--mint)}.brandmark{display:grid;grid-template-columns:9px 9px;gap:3px;transform:rotate(-7deg)}.brandmark i{height:9px;background:var(--mint);border-radius:2px}.brandmark i:last-child{background:#f4b78d}.icon-button{height:36px;width:36px;border-radius:12px;background:#ffffff08;color:#a6b4ce;font-size:22px}.game-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:23px}.eyebrow{font-size:9px;letter-spacing:2px;font-weight:700;color:#8493b0}h1{font-size:34px;letter-spacing:-1.5px;line-height:1.2;margin:8px 0 0;font-weight:740}h1>span{color:var(--mint)}.offline{align-self:flex-end;margin-bottom:6px;font-size:8px;letter-spacing:1px;color:#9eacc4;white-space:nowrap}.offline i{display:inline-block;height:5px;width:5px;background:var(--mint);border-radius:50%;margin-right:4px;box-shadow:0 0 9px #99e6ce55}.modes{display:flex;background:#0a1428;padding:5px;border:1px solid #7286ae18;border-radius:14px;gap:4px}.modes button{width:50%;padding:12px 4px;border-radius:10px;background:transparent;color:#8798b6;font-size:12px;font-weight:600;white-space:nowrap}.modes button[aria-pressed=true]{background:#2a3d59;color:#f0f5ff;box-shadow:0 3px 8px #0002}.dot{display:inline-block;background:#f6be88;width:4px;height:4px;border-radius:50%;margin-left:4px;vertical-align:middle}.scorebar{display:flex;justify-content:space-between;align-items:center;padding:23px 5px 19px}.label{display:block;font-size:9px;font-weight:600;letter-spacing:1.5px;color:#8594b0}.scorebar strong{display:block;font-size:40px;font-weight:650;line-height:1.1;margin-top:6px;letter-spacing:-1.5px;font-variant-numeric:tabular-nums}.best{text-align:right}.best .label{color:#d2b78e}.best strong{font-size:25px;color:#e1c49b;margin-top:10px;letter-spacing:-.5px}.board-wrap{position:relative;padding:8px;background:#0a1426;border:1px solid #536b9528;border-radius:18px;box-shadow:0 16px 50px #0002,inset 0 1px #ffffff06}#board{display:block;width:100%;height:auto;aspect-ratio:1;border-radius:10px;touch-action:none;cursor:crosshair}.board-caption{display:flex;justify-content:space-between;margin:13px 3px 6px;font-size:10px;color:#8496b3;gap:8px}.combo{font-size:8px;letter-spacing:1.2px;color:#a5cfc3;white-space:nowrap}.combo.active{color:#ffcf9a}.tray{display:grid;grid-template-columns:repeat(3,1fr);height:108px;gap:8px;padding-top:8px}.piece{display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;border-radius:14px;touch-action:none;padding:0;position:relative;min-width:0}.piece.selected{background:#99e6ce08;border:1px solid #99e6ce65}.piece:disabled{opacity:.18}.piece.unfit{opacity:.38}.piece canvas{width:106px;height:90px;max-width:100%;pointer-events:none}.piece.dragging{opacity:.2}.instruction{color:#8e9db8;font-size:11px;text-align:center;margin:15px 0 23px}.instruction span{color:var(--mint);margin-right:5px;font-size:15px}footer{border-top:1px solid #ffffff0b;padding-top:17px;display:flex;align-items:center;gap:13px}footer button{background:none;padding:0;color:#9aabc5;font-size:10px}.footer-divider{height:10px;width:1px;background:#ffffff19}.session{margin-left:auto;font-size:7px;letter-spacing:1.2px;color:#637491}.daily-progress{padding:20px 0 0;display:flex;align-items:center;gap:10px;font-size:8px;letter-spacing:1px;color:#9eb0c9}.daily-progress div{flex:1;background:#263651;height:4px;border-radius:9px;overflow:hidden}.daily-progress i{display:block;background:var(--mint);height:100%;transition:width .4s}.daily-progress b{font-size:9px;font-weight:500;letter-spacing:0}
#toast{position:absolute;left:0;top:39%;width:100%;text-align:center;font-size:28px;font-weight:800;letter-spacing:-1px;color:#f2d6a5;pointer-events:none;text-shadow:0 3px 20px #000;opacity:0}#toast.show{animation:toast 1.35s both}@keyframes toast{0%{opacity:0;transform:translateY(10px) scale(.85)}20%,70%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(-20px)}}
.modal-shade{position:fixed;inset:0;background:#060d1ebd;backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;padding:24px;z-index:10}.modal{position:relative;width:min(100%,370px);max-height:90svh;overflow:auto;border:1px solid #91a9c62b;border-radius:25px;padding:32px 27px;background:linear-gradient(145deg,#243650,#16243c);box-shadow:0 30px 100px #0005;text-align:center}.close{position:absolute;right:15px;top:15px;background:transparent;font-size:27px}.modal-icon{width:64px;height:64px;display:grid;place-items:center;margin:2px auto 20px;border:1px solid #99e6ce28;background:#99e6ce09;border-radius:21px;color:var(--mint);font-size:30px}.modal .eyebrow{display:block}h2{font-size:29px;letter-spacing:-1px;margin:10px 0 13px}.modal p{font-size:13px;line-height:1.8;color:#acbbd2}.modal .big-score{font-size:56px;letter-spacing:-2px;color:#f1d0a1;font-weight:700;line-height:1.3}.primary,.secondary{display:block;width:100%;padding:14px 16px;border-radius:12px;margin-top:12px;font-weight:700;font-size:13px}.primary{background:var(--mint);color:#102f31}.secondary{background:#ffffff09;border:1px solid #ffffff13;color:#c3cfe1}.setting-row{display:flex;align-items:center;justify-content:space-between;width:100%;padding:16px 2px;background:none;border-bottom:1px solid #ffffff0d;font-size:13px;text-align:left}.setting-row b{font-size:10px;letter-spacing:1px;color:var(--mint)}.legend{display:flex;text-align:left;gap:14px;align-items:center;margin:20px 0}.legend span{display:grid;place-items:center;width:34px;height:34px;flex:none;background:#99e6ce10;color:var(--mint);border-radius:10px;font-weight:700}.legend p{margin:0;font-size:12px;line-height:1.6}.small{font-size:10px!important}.swatches{display:flex;justify-content:center;gap:10px;padding:16px 0}.swatches button{width:35px;height:35px;border:2px solid transparent;border-radius:12px}.swatches button.chosen{border-color:#fff;box-shadow:0 0 0 3px #ffffff1c}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}#drag-ghost{position:fixed;pointer-events:none;z-index:20;opacity:.95;filter:drop-shadow(0 8px 8px #0005)}
@media(min-width:760px){.shell{padding-top:35px}.topbar{margin-bottom:30px}.shell:before{content:'GOOD MOVES. GOOD MOOD.';position:fixed;left:38px;bottom:36px;color:#667893;font-size:9px;letter-spacing:3px;writing-mode:vertical-rl;transform:rotate(180deg)}}
@media(max-height:900px){.shell{padding-top:18px}.topbar{margin-bottom:20px}.game-heading{margin-bottom:16px}h1{font-size:30px}.scorebar{padding-top:17px;padding-bottom:15px}.tray{height:98px}.instruction{margin:8px 0 18px}}
@media(max-height:700px){.shell{width:min(100% - 36px,340px);padding-top:12px}.topbar{margin-bottom:12px}.game-heading .eyebrow{font-size:7px}h1{font-size:27px}.modes button{padding:9px 4px}.scorebar{padding:13px 3px}.scorebar strong{font-size:32px}.best strong{font-size:23px}.tray{height:82px}.piece canvas{width:95px;height:78px}.instruction{margin:5px 0 12px}footer{padding-top:12px}.board-caption{margin-top:9px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition:none!important}}
/* Keep the playfield and tray together on ordinary laptop and phone screens. */
@media(max-height:1000px){
 .shell{width:min(calc(100% - 32px),436px,max(280px,calc(100svh - 385px)));padding:14px 0}
 .topbar{margin-bottom:12px}
 .game-heading{margin-bottom:10px}
 .game-heading .eyebrow{display:none}
 h1{font-size:25px;margin:0;line-height:1.2}
 .offline{font-size:7px;margin-bottom:5px}
 .modes button{padding:8px 4px;font-size:11px}
 .scorebar{padding:12px 3px}
 .scorebar strong{font-size:30px;margin-top:3px}
 .scorebar .best strong{font-size:22px;margin-top:6px}
 .label{font-size:8px;letter-spacing:1.1px}
 .board-caption{margin:9px 2px 4px;font-size:9px}
 .tray{height:80px;padding-top:4px}
 .piece canvas{width:94px;height:76px}
 .instruction{font-size:10px;margin:5px 0 10px}
 .instruction span{font-size:13px}
 footer{padding-top:11px;gap:11px}
 .daily-progress{padding-top:12px}
}

/* Earned rotations add a tactical choice without a timer or purchase prompt. */
.boost-row{display:flex;align-items:center;justify-content:center;gap:13px;margin:7px 0 13px;min-height:39px}
.rotate-button{display:flex;align-items:center;justify-content:center;gap:7px;padding:9px 12px;border-radius:11px;border:1px solid #99e6ce55;background:#99e6ce12;color:#b5f0de;font-size:11px;font-weight:650;white-space:nowrap}
.rotate-button>span{font-size:19px;line-height:17px}
.rotate-button b{display:grid;place-items:center;min-width:19px;height:19px;background:#99e6ce;color:#183f3d;border-radius:6px;font-size:10px}
.rotate-button:disabled{border-color:#99e6ce20;background:#99e6ce07;color:#a0bdb3}
.rotate-button:disabled b{background:#35594f;color:#bbd7ce}
.boost-info{text-align:left;min-width:0}
.boost-info p{font-size:9px;color:#acbbd0;margin:0 0 6px;line-height:1.3}
.charge-caption{display:flex;align-items:center;gap:6px;font-size:8px;color:#8296b4}
.charge-track{display:block;height:3px;width:40px;flex:none;background:#2a3b53;overflow:hidden;border-radius:3px}
.charge-track i{display:block;height:100%;width:0;background:#99e6ce;transition:width .3s}
@media(max-height:1000px){.shell{width:min(calc(100% - 32px),436px,max(280px,calc(100svh - 407px)))}.boost-row{margin:6px 0 10px;min-height:36px}.rotate-button{padding:7px 10px}}

/* Missions and cheer squad stay behind compact controls. */
footer{gap:13px;justify-content:space-between}
footer button{display:flex;align-items:center;gap:4px;white-space:nowrap}
#missions{color:#b4e6d7;font-weight:650}
#mission-badge{display:inline-grid;place-items:center;min-width:16px;height:16px;border-radius:5px;background:#99e6ce;color:#153d38;font-size:9px;padding:0 3px}
#buddy-mini{display:inline-flex;width:18px;height:22px;overflow:hidden}
#buddy-mini svg{width:22px;height:25px;flex:none;transform:translateY(-2px)}
.squad-modal{width:min(100%,430px);padding:25px 22px}
.squad-modal .modal-icon{height:42px;width:42px;border-radius:14px;font-size:23px;margin:0 auto 12px}
.squad-modal h2{font-size:25px;line-height:1.15;margin:9px 0 12px}
.mission-summary{font-size:11px!important;line-height:1.6!important;margin-bottom:15px}
.mission-summary b{color:#b5e8d7}
.mission-card{display:flex;align-items:center;gap:11px;text-align:left;border:1px solid #9aafce20;border-radius:13px;padding:12px 10px;margin:8px 0;background:#ffffff03}
.mission-icon{display:grid;place-items:center;width:29px;height:29px;flex:none;border-radius:10px;background:#c6a3e216;color:#ccb5f1;font-size:18px}
.mission-copy{min-width:0;flex:1}
.mission-copy strong{display:block;font-size:12px;font-weight:650}
.mission-copy p{font-size:10px;line-height:1.3;margin:5px 0 7px;color:#a8b8d0}
.mission-copy small{font-size:8px;color:#91a5c0;display:block;margin-top:4px}
.mission-track{height:3px;border-radius:5px;background:#3b4a602e;overflow:hidden}
.mission-track i{display:block;background:#a9c1ed;height:100%;border-radius:5px}
.mission-reward{flex:none;font-size:16px;color:#f4d5a0;text-align:center;font-weight:750;width:43px}
.mission-reward small{display:block;font-size:6px;letter-spacing:.8px;font-weight:600;margin-top:2px}
.mission-done{border-color:#99e6ce30;background:#99e6ce05}
.mission-done .mission-icon{color:#9ee8d2;background:#99e6ce12}
.mission-done .mission-copy strong{color:#b4dacd}
.mission-done .mission-track i{background:#99d7c4}
.squad-intro{font-size:11px!important;line-height:1.6!important;margin-bottom:17px}
.squad-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.squad-card{border:1px solid #9eb3d425;border-radius:14px;background:#111d331f;padding:5px 4px 10px;display:flex;align-items:center;flex-direction:column;min-width:0}
.squad-card.chosen{border-color:#a4e7cf;background:#99e6ce10;box-shadow:inset 0 0 0 1px #99e6ce30}
.squad-card svg{display:block;width:85px;height:96px;max-width:100%}
.squad-card strong{font-size:11px;font-weight:650}
.squad-card small{font-size:7px;color:#94a7c4;margin-top:4px}
.selected-routine{font-size:10px!important;color:#b7dfd2!important;margin:12px 0 5px}
.celebration{position:fixed;right:18px;bottom:105px;width:190px;pointer-events:none;z-index:40;text-align:center;isolation:isolate;filter:drop-shadow(0 6px 12px #040b1d44)}
.cheer-glow{position:absolute;inset:40px -20px 30px;z-index:-1;background:radial-gradient(ellipse,#7ecfb62c,transparent 70%)}
.dance-box{height:221px;width:190px;position:relative}
.dance-box svg{display:block;width:100%;height:100%;overflow:visible}
.cheer-caption{position:relative;padding:10px 6px 11px;border-radius:13px;background:linear-gradient(120deg,#233d51ef,#25334def);border:1px solid #99e6ce35;box-shadow:0 9px 25px #050b1633}
.cheer-caption>span{display:block;font-size:7px;letter-spacing:1.4px;font-weight:700;color:#b8e7d5}
.cheer-caption strong{display:block;font-size:15px;line-height:1.2;margin-top:5px;color:#fff0ce}
.cheer-caption small{display:block;font-size:10px;line-height:1.3;margin-top:5px;color:#acdfcf}
.cheer-confetti{position:absolute;inset:0;overflow:hidden;z-index:-1}
.cheer-confetti i{position:absolute;top:4%;left:calc(5% + var(--n)*4%);display:block;width:5px;height:9px;border-radius:1px;background:var(--c);animation:cheer-rain 2.3s linear infinite;animation-delay:calc(var(--n)*-.12s);opacity:0}
@keyframes cheer-rain{0%{opacity:0;transform:translateY(-10px) rotate(0)}12%{opacity:.9}85%{opacity:.8}100%{opacity:0;transform:translateY(280px) rotate(450deg)}}
@media(max-width:460px){.celebration{right:5px;bottom:150px;width:146px}.dance-box{width:146px;height:175px}.cheer-caption{padding:8px 4px}.cheer-caption strong{font-size:12px}.cheer-caption small{font-size:8px}.squad-card svg{height:86px;width:76px}.squad-modal{padding:22px 16px}footer{gap:8px}footer button{font-size:9px}}
@media(prefers-reduced-motion:reduce){.cheer-confetti{display:none}}
/* One shared 3D context renders both cached portraits and the dance stage. */
.squad-card img.cheer-portrait{display:block;width:94px;height:108px;max-width:100%;object-fit:contain;margin:0 auto}
#buddy-mini img{height:26px;width:23px;object-fit:contain;transform:translate(-2px,-3px)}
.dance-box .cheer-3d-canvas{display:block;width:100%;height:100%;position:absolute;inset:0}
.dance-box.has-3d>svg{visibility:hidden}
.celebration{width:228px;right:16px;bottom:88px}
.dance-box{width:228px;height:276px}
@media(max-width:600px){.celebration{width:170px;right:5px;bottom:128px}.dance-box{width:170px;height:213px}}
@media(max-width:460px){.squad-card img.cheer-portrait{height:86px;width:76px}}
@media(min-width:461px){.squad-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.squad-card img.cheer-portrait{width:78px;height:90px}.squad-card small{font-size:6.5px}}
.squad-modal .squad-intro{margin:9px 0 13px}.squad-modal .primary,.squad-modal .secondary{padding:12px 14px;margin-top:10px}

/* Compact celebration: a separate dock preserves the complete phone playfield. */
.cheer-dock{height:0;position:relative}
.celebration{width:176px;right:16px;bottom:88px;z-index:8}
.dance-box{width:176px;height:212px}
.cheer-caption strong{font-size:13px}.cheer-caption small{font-size:9px}
@media(max-width:960px){
 .cheer-dock{height:126px;margin-top:8px;contain:layout}
 .cheer-dock .celebration{position:absolute;inset:0;width:100%;height:126px;display:flex;align-items:center;justify-content:center;gap:6px;filter:none}
 .cheer-dock .dance-box{width:104px;height:126px;flex:none}
 .cheer-dock .cheer-caption{flex:1;max-width:184px;padding:9px 8px}
 .cheer-dock .cheer-caption>span{font-size:6px;letter-spacing:1px}
 .cheer-dock .cheer-caption strong{font-size:12px;margin-top:4px}
 .cheer-dock .cheer-caption small{font-size:9px;margin-top:4px}
 .cheer-dock .cheer-glow{inset:0;max-width:130px}
 .cheer-dock .cheer-confetti{inset:0;max-width:115px}
 .cheer-dock .dance-box>svg{overflow:hidden}
 .squad-card img.cheer-portrait,.squad-card svg{width:68px;height:78px}
}
@media(max-width:960px) and (max-height:1000px){.shell{width:min(calc(100% - 32px),436px,max(280px,calc(100svh - 541px)))}}
@media(max-width:360px){footer{gap:5px}footer button{font-size:8px}}
/* Launch layout: compact game frame, visible squad, dedicated bottom advertising rail. */
:root{--ad-height:76px;--ad-safe:env(safe-area-inset-bottom,0px)}
body{padding-bottom:calc(var(--ad-height) + var(--ad-safe) + 18px)}
.shell{width:min(calc(100% - 32px),410px,max(240px,calc(100svh - 400px)));padding:14px 0 6px}
.shell:before,.game-heading,.offline{display:none!important}
.topbar{margin:0 0 12px;min-height:32px}.brand{font-size:13px;letter-spacing:1.4px;gap:8px}.brandmark{grid-template-columns:8px 8px;gap:2px}.brandmark i{height:8px}
.top-actions{display:flex;align-items:center;gap:7px}.top-actions .icon-button{width:28px;height:30px;background:transparent;font-size:19px;border-radius:8px}
.profile-chip{display:flex;align-items:center;gap:5px;border:1px solid #ffffff14;background:#ffffff05;padding:6px 8px;border-radius:20px;font-size:10px;max-width:106px}.profile-chip>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-dot{height:5px;width:5px;border-radius:50%;background:#b59ba6;flex:none}.profile-dot.connected{background:#99e6ce}
.modes{padding:4px;border-radius:11px}.modes button{padding:7px 4px;font-size:10px;border-radius:8px}
.scorebar{position:relative;height:83px;padding:8px 3px;gap:8px}.scorebar>div:first-child,.scorebar .best{min-width:75px;flex:1}.scorebar strong{font-size:30px;margin-top:4px}.scorebar .best strong{font-size:23px;margin-top:7px}.label{font-size:8px;letter-spacing:1.4px}
.cheer-stand{width:84px;height:83px;position:relative;flex:none;align-self:center;display:grid;place-items:center}
#idle-cheer{height:88px;width:78px;overflow:hidden}#idle-cheer img,#idle-cheer svg{display:block;width:78px;height:88px;object-fit:contain}
.cheer-stand:has(.celebration:not([hidden])) #idle-cheer{visibility:hidden}
.cheer-stand .celebration{position:absolute;inset:-3px -4px 0;width:92px;height:90px;pointer-events:none;z-index:2;filter:none;display:block}
.cheer-stand .dance-box{height:100px;width:92px;position:absolute;left:0;top:-6px}.cheer-stand .cheer-caption{display:none}.cheer-stand .cheer-confetti{inset:0;overflow:hidden}.cheer-stand .cheer-glow{inset:0}.cheer-stand svg{overflow:hidden}
.board-wrap{padding:6px;border-radius:15px;box-shadow:0 14px 35px #0002}.board-caption{margin:7px 2px 2px;min-height:13px;font-size:9px}.board-caption .combo{font-size:7px;letter-spacing:.7px}
.tray{height:76px;padding-top:3px;gap:6px}.piece canvas{width:90px;height:74px}.piece{border-radius:10px}
.boost-row{justify-content:space-between;margin:4px 0 9px;min-height:34px;gap:8px}.rotate-button{padding:7px 10px;font-size:10px}.boost-info{margin-left:auto}.boost-info #rotate-hint{display:none}.charge-caption{font-size:8px}.charge-track{width:32px}
footer{min-height:32px;padding-top:8px;gap:8px;justify-content:space-between}footer button{font-size:9px;padding:3px 0}.daily-progress{padding-top:8px;font-size:7px}.daily-progress b{font-size:8px}
.ad-bar{position:fixed;bottom:0;left:0;right:0;z-index:7;height:calc(var(--ad-height) + var(--ad-safe));padding:5px 12px calc(6px + var(--ad-safe));border-top:1px solid #8098bc22;background:#0c1526;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}
.ad-label{font-size:6px;letter-spacing:1.5px;color:#60738e;line-height:8px}.banner-slot{width:min(100%,320px);height:50px;flex:none;border:1px solid #ffffff0b;border-radius:5px;background:linear-gradient(110deg,#14243b,#1d3047);display:flex;align-items:center;justify-content:center;overflow:hidden}.banner-slot>span{font-size:9px;letter-spacing:1.2px;color:#8ca6bb;line-height:1.4;text-align:center;padding:0 10px}
.modal-shade{z-index:30}.modal .modal-icon:empty{display:none}.profile-label{display:block;text-align:left;font-size:10px;margin:20px 0 8px;color:#aabbd1}.nickname-input{width:100%;border:1px solid #859ec044;background:#111c30;color:#fff;border-radius:12px;padding:13px;font:inherit;font-size:16px;outline-color:var(--mint)}.profile-feedback{font-size:11px!important;color:#e8afbb!important;min-height:1em}.delete-profile{background:transparent;color:#b78e9b;font-size:10px;padding:15px 5px 0}
.rank-tabs{display:flex;gap:6px;padding:4px;background:#0b162b;border-radius:11px}.rank-tabs button{width:50%;padding:9px;background:none;color:#92a5bf;border-radius:8px;font-size:11px}.rank-tabs button.chosen{background:#2a4259;color:#d5f4e7}.rank-meta{font-size:10px!important;margin:12px 0}.rank-list{font-size:12px;color:#9fb2c9;max-height:45svh;overflow-y:auto}.rank-row{display:grid;grid-template-columns:28px 1fr auto;gap:8px;padding:12px 8px;border-bottom:1px solid #ffffff0c;text-align:left}.rank-row>span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rank-row>span:last-child{font-variant-numeric:tabular-nums;color:#e7d4ad}.rank-row.you{background:#99e6ce0d;border-radius:9px;color:#bce8d6}
@media(min-width:1000px){.shell{padding-top:22px}.topbar{margin-bottom:16px}}
@media(max-height:740px){.shell{padding-top:9px;width:min(calc(100% - 28px),370px,max(230px,calc(100svh - 370px)))}.topbar{margin-bottom:7px}.scorebar{height:70px}.cheer-stand{height:70px;transform:scale(.85)}.tray{height:64px}.piece canvas{height:62px;width:78px}.boost-row{margin:2px 0 5px;min-height:32px}footer{min-height:28px;padding-top:5px}.daily-progress{padding-top:6px}}
@media(max-width:360px){.brand{font-size:11px;gap:6px}.top-actions{gap:3px}.profile-chip{font-size:9px;max-width:85px;padding:6px}.scorebar>div:first-child,.scorebar .best{min-width:60px}.cheer-stand{width:74px}footer button{font-size:8px}.board-caption{font-size:8px}}
/* Keep the entire play frame above the ad rail at ordinary portrait heights. */
.shell{width:min(calc(100% - 32px),410px,max(230px,calc(100svh - 470px)))}
@media(max-height:740px){.shell{width:min(calc(100% - 28px),370px,max(230px,calc(100svh - 435px)))}}

.privacy-link{display:inline-block;color:#91aaae;text-decoration:none;font-size:10px;padding:16px 8px 0}

/* Play-first layout: fill the available width, with no instructional copy around the board. */
.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}
.shell{width:min(calc(100% - 16px),560px,max(280px,calc(100svh - 375px)));padding:10px 0 8px}
.topbar{margin-bottom:8px;min-height:30px}.modes button{padding:6px 4px}.scorebar{height:66px;padding:4px 3px}.cheer-stand{height:66px;transform:scale(.8)}
.board-wrap{padding:5px;border-radius:13px}.board-caption{position:relative;height:0;min-height:0;margin:0}.board-caption #progress{display:none}.board-caption .combo{display:none;position:absolute;right:12px;bottom:12px;background:#101a30db;border-radius:5px;padding:4px 6px;pointer-events:none}.board-caption .combo.active{display:block}
.tray{height:68px;padding-top:2px}.piece canvas{width:104px;height:66px}.boost-row{margin:2px 0 4px;min-height:34px}.boost-info,#howto{display:none}footer{padding-top:6px;min-height:32px}footer button{font-size:11px;padding:4px}.daily-progress{padding-top:6px}
@media(min-width:1000px){.shell{padding-top:12px}.topbar{margin-bottom:8px}}
@media(max-height:740px){.shell{width:min(calc(100% - 16px),560px,max(260px,calc(100svh - 375px)));padding-top:8px}.topbar{margin-bottom:6px}.scorebar{height:60px}.cheer-stand{height:60px;transform:scale(.74)}.tray{height:62px}.piece canvas{height:60px}.boost-row{margin:1px 0 3px}.daily-progress{padding-top:4px}}

/* Modes live in the header so the board gets the second navigation row back. */
.topbar{gap:6px}.top-actions{margin-left:auto;gap:4px}.brand{font-size:12px;letter-spacing:.9px;gap:6px}.mode-chip{display:flex;align-items:center;gap:3px;flex:none;font-size:10px;padding:5px 6px;border:1px solid #ffffff16;background:#ffffff06;border-radius:8px}.mode-chip img{width:18px;height:18px;object-fit:contain}.mode-chip>span{font-size:13px;color:#99e6ce}.shell{width:min(calc(100% - 12px),600px,max(270px,calc(100svh - 337px)))}.mode-options{display:grid;gap:10px}.mode-option{padding:17px;border:1px solid #ffffff18;background:#ffffff05;border-radius:12px;text-align:left;font-size:15px}.mode-option[aria-pressed=true]{border-color:#99e6ce99;background:#99e6ce12}.mode-option small{display:block;color:#96abc5;font-size:11px;margin-top:5px}.nickname-input{font-size:16px}.profile-chip{max-width:95px}
@media(max-height:740px){.shell{width:min(calc(100% - 12px),600px,max(260px,calc(100svh - 337px)))}}
@media(max-width:360px){.brand{font-size:10px;gap:4px}.brandmark{grid-template-columns:6px 6px}.brandmark i{height:6px}.mode-chip{font-size:9px;padding:4px}.mode-chip img{width:14px;height:14px}.top-actions{gap:2px}.profile-chip{max-width:74px;padding:5px;font-size:9px}.top-actions .icon-button{width:25px}}

/* Playtest fixes: no empty ad rail, visible goal and rotation cost. */
.ad-bar[hidden]{display:none!important}body.ads-off{padding-bottom:env(safe-area-inset-bottom,0px)}
.daily-progress{padding:3px 2px 8px;margin:0;min-height:25px}.daily-progress[hidden]{display:none}
.boost-info{display:block;min-width:0}.boost-info .charge-caption{display:none}.boost-info #rotate-hint{display:block;font-size:10px;line-height:1.35;margin:0;color:#aabbd1}
@media(max-height:740px){.shell{width:min(calc(100% - 12px),600px,max(230px,calc(100svh - 305px)))}.daily-progress{padding:2px 2px 5px;min-height:22px}}

.cancel-rotation{background:transparent;color:#b6cedc;font-size:10px;padding:6px;border:1px solid #ffffff22;border-radius:6px}.cancel-rotation[hidden]{display:none}.boost-row{flex-wrap:wrap}.boost-info{flex:1;min-width:110px}
