/* Brain Break · polished arcade surfaces and comfortable tablet controls. */
:root{
  --bg:#080b17;--bg2:#11162b;--card:#141a30;--line:#303953;
  --text:#f5f7ff;--muted:#aeb8d0;--game-accent:#55e7ed;
}
html{scrollbar-color:#455073 #0c1020;scrollbar-width:thin}
body{background:radial-gradient(ellipse 70% 660px at 8% 0%,#14374470,transparent),radial-gradient(ellipse 65% 680px at 95% 15%,#3a23525e,transparent),#080b17;min-height:100svh}
button,input,select,textarea{-webkit-tap-highlight-color:transparent}
button,input,select{min-height:44px}
button{transition:background .18s,transform .12s,border-color .18s,box-shadow .18s}
button:focus-visible,a:focus-visible,[role=button]:focus-visible{outline:3px solid #e5ffbb;outline-offset:4px}
button:disabled{cursor:default}
input,select,textarea{font-size:max(16px,1em)}
input,textarea{-webkit-user-select:text!important;user-select:text!important;-webkit-touch-callout:default!important}
.btn{min-height:46px;border:1px solid #d6ffa24d;background:linear-gradient(180deg,#bbff7c,#9ce94b);border-radius:14px;box-shadow:0 4px 0 #4f8127,0 6px 20px #a5ff5b14}
.btn.ghost{background:linear-gradient(180deg,#2a3452,#202841);border:1px solid #475574;box-shadow:0 4px 0 #0e1323}
.btn.danger{background:linear-gradient(180deg,#ff7586,#ed475e);border:1px solid #ffa7b466;box-shadow:0 4px 0 #8d2334}
.btn.small{min-height:44px}
.top{padding-top:max(12px,env(safe-area-inset-top));padding-right:max(20px,env(safe-area-inset-right));padding-left:max(20px,env(safe-area-inset-left));background:#0b1020eb;border-color:#33415a80;box-shadow:0 4px 30px #0003;gap:12px}
.brand{letter-spacing:1.3px;font-size:1.05rem}
.logo{width:44px;height:44px;border-radius:14px;background:linear-gradient(135deg,#234331,#101f27);box-shadow:0 0 22px #a5ff5b25,inset 0 1px 0 #caff9144}
.tabs{gap:4px}
.tab{min-height:44px;padding:10px 13px}
.tab.active{background:#253149;box-shadow:inset 0 -2px 0 var(--lime);color:#fff}
.chip{min-height:44px;background:#141d31;border-color:#34415e;font-variant-numeric:tabular-nums}
.chip.icon{width:44px;height:44px;flex:none}
main{padding:30px max(20px,env(safe-area-inset-right)) 0 max(20px,env(safe-area-inset-left))}
.hero{gap:22px;margin-bottom:38px}
.hero-feature{border-radius:28px;border-color:#50654d80;box-shadow:0 16px 60px #0003,inset 0 1px 0 #ffffff14}
.hero-feature::after{background:linear-gradient(90deg,#090e1af5,#090e1ac7 45%,#090e1a15 85%)}
.hero-copy{padding:46px 38px}
.hero-copy h1{letter-spacing:1px;text-shadow:0 2px 28px #a5ff5b1a}
.hero-copy p:not(.kicker){color:#d5deee;line-height:1.6}
.kicker{font-weight:700;letter-spacing:1.8px}
.daily{border-radius:26px;background:linear-gradient(155deg,#252441,#151d32);border-color:#51507480;box-shadow:0 12px 38px #0002}
.daily h3{color:#f8f8ff}
.daily hr{border-color:#42486080}
.section-head h2{font-size:clamp(1.3rem,2.5vw,1.65rem)}
.section-head>span{line-height:1.5}
.grid{gap:22px}
.tile{border-color:#33405a;border-radius:23px;background:linear-gradient(155deg,#1a243b,#111a2d);box-shadow:0 8px 20px #0002,inset 0 1px 0 #ffffff08;isolation:isolate}
.tile canvas{border-bottom:1px solid #ffffff0b}
.tile-body{padding:18px;gap:7px}
.tile h3{font-size:1.32rem;line-height:1.25;color:#fff}
.tile p{color:#b1bfd5;font-size:.9rem}
.tile .tag{font-weight:700;font-size:10px;letter-spacing:1.3px;line-height:1.35}
.tile-foot{margin-top:12px;gap:8px;font-variant-numeric:tabular-nums}
.tile-foot .play{padding:9px 16px;min-height:36px;display:grid;place-items:center;border-radius:11px;box-shadow:inset 0 1px 0 #ffffff60,0 3px 0 #0003}
.tile .badge{padding:5px 10px;background:#0c1422e6;backdrop-filter:blur(8px);font-size:10px;box-shadow:0 3px 16px #0004}
.tile .fav-btn{min-width:44px;min-height:44px}
.grid-cats{gap:8px}
.grid-cats button,.seg button{min-height:44px;border-radius:11px}
.seg{border-radius:15px;background:#11182b;border-color:#37435e;padding:5px}
.seg button.active{background:#2b3854;box-shadow:inset 0 0 0 1px #56708a66}
.board,.pcard,.skin,.pass-head,.ptier,.badge-card,.bests>div{background:linear-gradient(160deg,#192238,#121a2d);border-color:#36435f;box-shadow:inset 0 1px 0 #ffffff08}
.board,.pcard,.pass-head{border-radius:23px}
.board .row{border-bottom-color:#2a3752;min-height:62px}
.board .row.me-row{background:linear-gradient(90deg,#a5ff5b1c,#55e7ed09)}
.row .sc{font-variant-numeric:tabular-nums}
.row .nm{min-width:0;overflow-wrap:anywhere}
.shop{gap:18px}.skin{border-radius:22px}
.skin.equipped{border-color:#b7ff78;background:linear-gradient(160deg,#22352e,#16242c)}
.xpbar{background:#0b1323;border-color:#33425c;box-shadow:inset 0 2px 4px #0004}
.xpbar i{box-shadow:0 0 14px #a5ff5b30}
.pass-prog{min-width:min(260px,100%)}
.recent button,.feat-mini,.pass-mini{min-height:48px}
footer{padding-bottom:max(36px,env(safe-area-inset-bottom));border-color:#33415a}

/* The stage follows Safari's visible viewport, including the address bar. */
.stage{height:100vh;height:100dvh;min-height:0;max-width:100%;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background:#050914;contain:layout;overscroll-behavior:none}
.stage-bar{flex:none;min-height:62px;padding:8px 12px;gap:12px;border-bottom:1px solid color-mix(in srgb,var(--game-accent) 30%,#27344b);background:linear-gradient(100deg,#132137,#0b1324 65%);box-shadow:0 4px 16px #0003}
.stage-title{min-width:0;gap:4px}
.stage-title span{font-size:9px;letter-spacing:1.4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stage-title b{font-size:1.1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stage-stats{gap:18px;flex:none;font-size:11px;align-items:center;font-variant-numeric:tabular-nums}
.stage-stats b{display:block;font-size:1rem;color:#f5f8ff}
.stage-bar .btn{min-width:44px;min-height:44px;padding:9px 13px;box-shadow:none;background:#1e2c43;border-color:#465a77;color:#ecf5ff}
.game-root{min-width:0;background:radial-gradient(ellipse at 50% 0%,#1b2b44,#080d1a 70%)}
.game-root canvas.full{touch-action:none}
.result{overflow:auto;overscroll-behavior:contain;padding:20px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#050b17ce}
.result-card{margin:auto;background:linear-gradient(155deg,#263550,#141d31 65%);border-color:#687d9c80;border-radius:28px;padding:28px;width:min(450px,100%);box-shadow:0 24px 80px #0008,inset 0 1px 0 #ffffff15}
.result-card h2{font-size:clamp(1.6rem,6vw,2.1rem);line-height:1.2}
.res-score{font-size:clamp(2.6rem,12vw,3.8rem);line-height:1.2;margin:8px 0;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.res-detail{color:#bfcbdf}
.res-actions{gap:12px;margin-top:18px}
.res-actions .btn{flex:1 1 135px;min-height:50px}
.res-row{gap:8px}
.res-coins,.res-rank,.res-xp{background:#0e1729;border-color:#3a4c68;font-size:.9rem}
.toast{max-width:calc(100% - 24px);white-space:normal;text-align:center;background:#1e2e48;border-color:#617594;box-shadow:0 10px 30px #0006;line-height:1.4}
dialog{padding:26px;border-radius:25px;max-height:calc(100dvh - 40px);overflow:auto;background:linear-gradient(150deg,#25344d,#121b2f);border-color:#59708d;box-shadow:0 25px 90px #0008}
dialog input{background:#0e1729;border-color:#465875;min-height:50px}
.name-ideas button{min-height:44px;padding:8px 12px}
.dlg-actions{margin-top:8px}

/* Extra specificity keeps these overrides above each game's injected styles. */
.game-root :is(.chs-menu,.gh-menu,.fu-menu,.dz-lobby,.sab-menu,.wo-menu,.wb-menu){overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:16px;place-items:safe center;background:radial-gradient(ellipse at 50% 0%,#26344cdb,#070c1af2 75%)}
.game-root :is(.chs-card,.gh-card,.fu-card,.dz-card,.sab-card,.wo-card,.wb-card){margin:auto;max-width:100%;border-radius:26px;border-color:#5b6e8980;background:linear-gradient(150deg,#23304a,#131c30 75%);box-shadow:0 24px 70px #0006,inset 0 1px 0 #ffffff14}
.game-root :is(.chs-card,.gh-card,.fu-card,.dz-card) p{color:#b5c3d8;line-height:1.5}
.game-root :is(.chs-seg,.wl-modes,.sdk-modes,.mns-modes){border-color:#3c4d68;background:#101a2d;border-radius:14px}
.game-root :is(.chs-seg,.wl-modes,.sdk-modes,.mns-modes) button{min-height:44px}
.game-root :is(.chs-lbl,.gh-label,.fu-label,.dz-label){color:#a7b6ce;font-size:11px;letter-spacing:1.5px}
.game-root .chs-ui button{min-height:46px;background:linear-gradient(180deg,#2b3b55,#1b2941);border-color:#4c6080;border-radius:13px;color:#eaf2ff}
.game-root .chs-promo>div{max-width:calc(100% - 24px);gap:8px;padding:12px;background:#1e2c43;border-color:#607593;border-radius:22px}
.game-root .chs-promo button{width:clamp(54px,16vw,72px);height:clamp(54px,16vw,72px);min-height:54px;flex-shrink:1}
.game-root .chs-promo img{max-width:100%;max-height:100%;object-fit:contain}
.game-root .pxd-sel{background:radial-gradient(ellipse at 50% 0%,#243355f2,#091020fa 70%)}
.game-root .pxd-wrap{gap:18px}
.game-root .pxd-lv{border-radius:18px;background:linear-gradient(150deg,#243653,#131d33);border-color:#405475;min-height:112px}
.game-root .pxd-lv.cur{box-shadow:0 0 0 2px var(--lime),0 8px 26px #a5ff5b28}
.game-root .pxd-help div{background:#15223a;border-color:#3a4a65;padding:12px;border-radius:13px;line-height:1.5}
.game-root .pxd-menu-btn{background:#1b2941e6;border-color:#57708e;box-shadow:0 4px 16px #0004}
.game-root :is(.wl,.sdk,.mns,.fz){background:radial-gradient(ellipse at 50% 0%,#1d2b49,#080f20 80%)}
.game-root :is(.wl,.sdk){overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.game-root .wl-grid{flex:none}
.game-root .wl-t{border-color:#445876;background:#111c32;border-radius:11px;box-shadow:inset 0 1px 0 #ffffff0a}
.game-root .wl-t.filled{border-color:#89a3c4}
.game-root .wl-k:not(.c):not(.p):not(.a){background:linear-gradient(180deg,#435775,#31435f);box-shadow:0 3px 0 #16243a}
.game-root .wl-k{min-height:44px;min-width:0;border-radius:10px}
.game-root .wl-t.c,.game-root .wl-k.c{background:linear-gradient(145deg,#96e761,#57bb36);border-color:#9cec63;color:#101e0a}
.game-root .wl-t.p,.game-root .wl-k.p{background:linear-gradient(145deg,#ffcf73,#f4a334);border-color:#ffcc70;color:#302107}
.game-root .wl-t.a{background:#24334a;border-color:#40516d;color:#bac5d7}
.game-root .wl-k.a{background:#1d2b41;color:#8fa1bd}
.game-root .wl-info{color:#bcc8dc;line-height:1.4}
.game-root .sdk-grid{border-color:#7893b5;background:#425574;border-radius:13px;box-shadow:0 12px 34px #0004;flex:none}
.game-root .sdk-c{background:#111c31;color:#83d8ff}
.game-root .sdk-c.given{color:#f5f8ff}
.game-root .sdk-c.peer{background:#1c2b43}.game-root .sdk-c.same{background:#253f63}.game-root .sdk-c.sel{background:#3c638a;box-shadow:inset 0 0 0 2px #8ce9ff}
.game-root .sdk-c.br{border-right-color:#8ba3c3}.game-root .sdk-c.bb{border-bottom-color:#8ba3c3}
.game-root .sdk-pad button{background:linear-gradient(180deg,#2f4464,#1e304c);box-shadow:0 3px 0 #101c30;border:1px solid #526b8b;min-height:48px}
.game-root .sdk-tools button{min-height:52px;background:#1c2c45;border-color:#496080;color:#d7e4f5}
.game-root .sdk-info{flex-wrap:wrap;justify-content:center;gap:8px 16px;line-height:1.4}
.game-root .mns-frame{border-color:#536b8e;border-radius:18px;background:#12203a;box-shadow:0 12px 34px #0005,0 0 28px #55e7ed14}
.game-root .mns-hint{color:#aebed5;line-height:1.5}
.game-root .mns-pill{background:#17263d;border-color:#3f5677;min-height:44px}
.game-root .mns-reset{background:#273c5c;border-color:#567497;min-height:46px}
.game-root .fz{overflow:auto;justify-content:safe center;gap:16px;touch-action:pan-y;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.game-root .fz-board{touch-action:none}
.game-root .fz-board{flex:none;border-color:#4b6080;background:#111d33;border-radius:22px;box-shadow:0 15px 44px #0005,inset 0 1px 0 #ffffff12}
.game-root .fz-cell{background:#21314c}
.game-root .fz-top{flex:none;flex-wrap:wrap;justify-content:center;max-width:100%;gap:8px}
.game-root .fz-pill{background:#17253d;border-color:#3e5575;min-height:48px}
.game-root .fz-btn{min-height:44px;background:#2c405e;border:1px solid #546b8c;border-radius:13px}
.game-root .fz-hint{color:#b1c1d8;line-height:1.5;flex:none}
.game-root .friends-pad button{min-width:44px!important;min-height:44px!important}
.game-root .friends-actions button{min-height:44px!important}

@media (hover:hover) and (pointer:fine){
  .tile:hover{transform:translateY(-5px);border-color:var(--c);box-shadow:0 16px 38px #0005,0 0 26px color-mix(in srgb,var(--c) 15%,transparent)}
  .chip:hover,.tab:hover{background:#25324a}
}
@media (max-width:1100px){
  .top{gap:10px}.tabs{margin-left:0}.tab{padding:10px}
  .hero{grid-template-columns:1fr 290px}.hero-copy{padding:38px 30px}.daily{padding:20px}
  .grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
}
@media (max-width:900px){
  .top{flex-wrap:wrap}.tabs{order:3;width:100%;justify-content:flex-start;overflow-x:auto;overscroll-behavior-x:contain;flex:none;padding-bottom:1px}
  .hero{grid-template-columns:1fr}.daily{display:grid;grid-template-columns:1fr 1fr;gap:12px 24px}.daily hr{grid-column:1/-1;width:100%;margin:2px 0}.daily .daily-foot{grid-column:2;grid-row:2}.daily .daily-done{grid-column:1/-1}.daily>h3{margin-bottom:0}
  .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:560px){
  main{padding-top:22px;padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}
  .top{padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right));gap:8px;padding-bottom:7px}
  .brand span:last-child{display:none}.me{gap:6px}.chip{padding:6px 9px;font-size:.84rem}.chip.icon{width:44px}.tab{padding:9px 12px;font-size:.9rem}
  .hero{gap:14px;margin-bottom:28px}.hero-feature{min-height:320px;border-radius:24px}.hero-copy{padding:30px 24px}.hero-copy h1{font-size:clamp(3.1rem,12vw,4.2rem)}.hero-copy p:not(.kicker){font-size:.96rem;max-width:290px}
  .daily{border-radius:22px;padding:18px;gap:10px 16px}.daily h3{font-size:1.08rem}.daily .kicker{font-size:10px}.daily .daily-foot{gap:8px;flex-wrap:wrap;justify-content:flex-end}
  .grid{gap:12px}.tile{border-radius:18px}.tile-body{padding:12px;gap:6px}.tile h3{font-size:1.03rem}.tile p{display:none}.tile .tag{font-size:9px;letter-spacing:1px}.tile-foot{font-size:10px;margin-top:8px;flex-wrap:wrap}.tile-foot .play{padding:8px 12px;font-size:.78rem}.tile .badge{font-size:8px;letter-spacing:.6px;padding:4px 7px;top:8px;left:8px}
  .stage-bar{gap:8px;min-height:58px;padding:7px 8px}.stage-title{flex:1}.stage-title b{font-size:.98rem}.stage-title span{font-size:8px;letter-spacing:.7px}.stage-stats{gap:9px;font-size:9px}.stage-stats b{font-size:.9rem}.stage-bar .btn{font-size:.82rem;min-width:44px;padding:8px 10px}
  .result{padding:12px}.result-card{padding:22px 18px;border-radius:24px}.res-detail{font-size:.92rem}.res-actions .btn{min-height:48px}
  .shop{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.skin{padding:14px;min-width:0}.skin .btn{padding:10px 8px;font-size:.85rem}.skin canvas{max-width:100%}
  .row{grid-template-columns:30px minmax(0,1fr) auto;gap:7px}.row .sc{font-size:.95rem}.row .nm{font-size:.88rem;gap:6px;flex-wrap:wrap}
  .game-root .sdk-pad{grid-template-columns:repeat(5,1fr);gap:6px}.game-root .sdk-side.wide .sdk-pad{grid-template-columns:repeat(3,1fr)}.game-root .sdk-pad button{height:46px;min-height:46px}.game-root .sdk-main{gap:12px}.game-root .sdk-modes button{padding:8px 9px;font-size:.85rem}
  .game-root .wl{gap:8px}.game-root .wl-kr{gap:4px}.game-root .wl-k{height:48px;font-size:.88rem}.game-root .wl-k.wide{font-size:.64rem}
  .game-root .fz-top{width:100%}.game-root .fz-pill{padding:6px 10px;flex:1 1 90px}.game-root .fz-btn{font-size:.82rem;padding:8px 10px}
  .game-root :is(.chs-card,.gh-card,.fu-card,.dz-card){padding:20px 16px}.game-root .chs-card h2{font-size:1.75rem}
  .game-root .mns-modes button{padding:8px 10px;font-size:.85rem}.game-root .mns-hud{gap:6px}.game-root .mns-pill{padding:4px 8px;min-width:64px;font-size:1.1rem}.game-root .mns-tog{min-width:98px;padding:0 8px;font-size:.9rem}
}
@media (max-height:560px) and (orientation:landscape){
  .stage-bar{min-height:54px;padding-top:5px;padding-bottom:5px}.stage-title{flex-direction:row;align-items:center;gap:10px}.stage-title span{font-size:8px}.stage-stats b{display:inline;margin-left:4px}
  .result{padding:10px}.result-card{padding:18px 22px;width:min(490px,100%)}.result-card h2{font-size:1.5rem}.res-score{font-size:2.4rem;margin:2px 0}.res-detail{margin:3px 0 8px;font-size:.85rem}.res-row{margin-bottom:8px}.res-actions{margin-top:12px}
  .game-root :is(.chs-menu,.gh-menu,.fu-menu,.dz-lobby){padding:12px}.game-root :is(.chs-card,.gh-card,.fu-card,.dz-card){padding:16px 20px}.game-root :is(.chs-lbl,.gh-label,.fu-label,.dz-label){margin-top:10px}.game-root :is(.chs-card,.gh-card,.fu-card) h2{font-size:1.7rem}.game-root :is(.chs-row,.gh-row,.fu-row) .btn{padding:10px 6px}
  .game-root .fz{flex-direction:row;flex-wrap:wrap;padding:12px;gap:14px}.game-root .fz-top{flex-direction:column;max-width:150px}.game-root .fz-pill,.game-root .fz-btn{width:100%}.game-root .fz-hint{width:130px;font-size:.8rem}.game-root .fz-top .fz-pill{flex:none}
  .game-root .wl{display:grid;grid-template-columns:1fr 1.1fr;grid-template-rows:auto auto 1fr;gap:8px 20px;padding:10px 18px;align-content:center}.game-root .wl-modes{justify-self:center}.game-root .wl-info{grid-column:1;grid-row:2;font-size:.8rem;max-width:330px;justify-self:center}.game-root .wl-grid{grid-column:1;grid-row:3;margin:0;justify-self:center;gap:4px}.game-root .wl-row{gap:4px}.game-root .wl-bottom{grid-column:2;grid-row:1/4;align-items:center}.game-root .wl-k{height:52px}.game-root .wl-t{border-radius:8px}
  .game-root .sdk{padding:8px 10px;gap:6px}.game-root .sdk-info{font-size:.82rem}.game-root .sdk-main{gap:16px;flex-wrap:nowrap}.game-root .sdk-side,.game-root .sdk-side.wide{width:min(330px,40vw)}.game-root .sdk-side .sdk-pad{grid-template-columns:repeat(3,1fr)}.game-root .sdk-pad button,.game-root .sdk-side.wide .sdk-pad button{height:44px;min-height:44px}.game-root .sdk-tools{grid-template-columns:repeat(4,1fr)}.game-root .sdk-tools button{min-height:44px;padding:5px 3px;flex-direction:column;font-size:.67rem;gap:2px}.game-root .sdk-tools button i{font-size:1rem}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
