:root{
  --app-height:100vh;
  --ink:#eef7ff;
  --muted:#9cb1cb;
  --panel:rgba(10,24,52,.78);
  --panel-strong:rgba(7,18,40,.93);
  --line:rgba(151,207,255,.18);
  --line-strong:rgba(151,222,255,.34);
  --accent:#6ff3dd;
  --accent-2:#65a8ff;
  --warm:#ffc668;
  --danger:#ff9eb3;
  --focus:#fff0a6;
  --shadow:0 28px 80px rgba(0,4,20,.48);
  --board-size:min(70dvh,52vw,560px);
  --cell-gap:clamp(7px,1.15vw,12px);
  --radius:28px;
  --tile-settle-duration:380ms;
}
@supports(height:100svh){:root{--app-height:100svh}}
@supports(height:100dvh){:root{--app-height:100dvh}}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{width:100%;height:100%;min-height:0;overflow:hidden}
html{background:#040b19}
body{
  margin:0;
  color:var(--ink);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  background:
    radial-gradient(circle at 73% 21%,rgba(70,132,255,.22),transparent 31%),
    radial-gradient(circle at 19% 82%,rgba(68,242,219,.16),transparent 30%),
    linear-gradient(145deg,#030918 0%,#07162e 46%,#091b38 100%);
  overscroll-behavior:none;
}
body:before,body:after{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
}
body:before{
  opacity:.55;
  background-image:
    radial-gradient(circle at 12% 18%,#fff 0 1px,transparent 1.3px),
    radial-gradient(circle at 82% 12%,#fff 0 1px,transparent 1.3px),
    radial-gradient(circle at 33% 70%,#fff 0 1px,transparent 1.3px),
    radial-gradient(circle at 92% 67%,#fff 0 1px,transparent 1.3px),
    radial-gradient(circle at 61% 47%,#fff 0 1px,transparent 1.3px);
  background-size:230px 190px,280px 245px,260px 250px,310px 220px,300px 280px;
}
body:after{
  inset:-30%;
  opacity:.22;
  background:repeating-radial-gradient(ellipse at 68% 38%,transparent 0 72px,rgba(125,199,255,.12) 73px 74px,transparent 75px 112px);
  transform:rotate(-11deg);
}
button,select,input{font:inherit}
button{border:0;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
button:disabled{cursor:not-allowed;opacity:.48}
button:focus-visible,select:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
h1,h2,p{margin:0}
.app{
  position:relative;
  z-index:1;
  isolation:isolate;
  width:min(100%,1180px);
  height:var(--app-height);
  min-height:0;
  margin:0 auto;
  padding:max(9px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(9px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));
  display:grid;
  grid-template-columns:minmax(0,1fr);
  grid-template-rows:auto minmax(0,1fr);
  gap:10px;
  overflow:hidden;
}
.topbar{
  min-height:60px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:8px 10px 8px 15px;
  border:1px solid var(--line);
  border-radius:22px;
  background:linear-gradient(120deg,rgba(14,35,71,.88),rgba(5,16,37,.82));
  box-shadow:0 15px 44px rgba(0,4,20,.22),inset 0 1px 0 rgba(255,255,255,.07);
  backdrop-filter:blur(16px);
}
.brand-lockup{min-width:0;display:flex;align-items:center;gap:12px}
.brand-lockup>div{min-width:0}
.brand-lockup strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.brand-orbit{
  position:relative;
  width:43px;
  height:43px;
  flex:0 0 auto;
  border:1px solid rgba(143,231,255,.46);
  border-radius:50%;
  transform:rotate(-18deg);
  box-shadow:inset 0 0 19px rgba(77,193,255,.15),0 0 24px rgba(77,193,255,.16);
}
.brand-orbit:before{
  content:"";
  position:absolute;
  inset:8px -7px;
  border:2px solid rgba(111,243,221,.7);
  border-top-color:transparent;
  border-bottom-color:transparent;
  border-radius:50%;
}
.brand-orbit i{
  position:absolute;
  width:15px;
  height:15px;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  border-radius:50%;
  background:radial-gradient(circle at 34% 30%,#fff 0 8%,#a9fff4 16%,var(--accent) 55%,#249db3 100%);
  box-shadow:0 0 16px 5px rgba(111,243,221,.42);
}
.brand-kicker,.dialog-kicker{display:block;font-size:12px;line-height:1.15;letter-spacing:.14em;text-transform:uppercase;font-weight:900;color:#87dfe9}
.brand-lockup strong{display:block;margin-top:3px;font-size:clamp(20px,3vw,28px);line-height:1;letter-spacing:-.045em}
.brand-lockup em{font-style:normal;color:var(--warm)}
.header-actions{display:flex;flex:0 0 auto;gap:6px}
.icon-button,.dialog-close{
  width:44px;
  min-width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border-radius:14px;
  color:#e8f7ff;
  background:rgba(143,204,244,.1);
  box-shadow:inset 0 0 0 1px rgba(177,222,252,.16);
  font-size:18px;
  font-weight:900;
}
.icon-button:hover,.dialog-close:hover{background:rgba(143,204,244,.19)}
.mute-button[aria-pressed="true"]{color:#ffcad5;background:rgba(230,80,111,.16);box-shadow:inset 0 0 0 1px rgba(255,158,179,.24)}
.icon-button.help-button{width:auto;min-width:118px;grid-auto-flow:column;grid-template-columns:24px auto;gap:7px;padding:0 12px}
.help-button>span{display:grid;place-items:center;width:24px;height:24px;border-radius:8px;background:rgba(111,243,221,.13)}
.help-button strong{font-size:11px;letter-spacing:.02em;white-space:nowrap}
.game-layout{
  min-width:0;
  width:100%;
  min-height:0;
  display:grid;
  grid-template-columns:minmax(270px,.72fr) minmax(420px,1fr);
  gap:10px;
}
.command-panel,.board-panel{
  min-width:0;
  min-height:0;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:linear-gradient(155deg,rgba(14,37,75,.78),rgba(4,15,35,.84));
  box-shadow:var(--shadow),inset 0 1px 0 rgba(255,255,255,.06);
  backdrop-filter:blur(14px);
  overflow:hidden;
}
.command-panel{
  display:grid;
  grid-template-rows:auto auto auto auto auto;
  align-content:center;
  gap:15px;
  padding:clamp(18px,3vw,34px);
}
.intro-copy{max-width:390px}
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:7px 10px;
  border-radius:999px;
  color:#bdeff0;
  background:rgba(74,207,211,.1);
  box-shadow:inset 0 0 0 1px rgba(111,243,221,.14);
  font-size:12px;
  font-weight:900;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.eyebrow i{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 9px rgba(111,243,221,.8)}
.intro-copy h1{margin-top:16px;font-size:clamp(34px,4.3vw,57px);line-height:.94;letter-spacing:-.065em}
.intro-copy h1 span{display:block;color:var(--warm)}
.intro-copy p{margin-top:13px;max-width:360px;color:#bbcae0;font-size:14px;line-height:1.5}
.hud-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.hud-card{
  position:relative;
  min-width:0;
  min-height:76px;
  display:grid;
  align-content:center;
  padding:10px;
  border:1px solid rgba(160,211,246,.15);
  border-radius:17px;
  background:linear-gradient(150deg,rgba(124,178,224,.11),rgba(27,54,93,.08));
  text-align:center;
}
.hud-card span{color:#91a8c3;font-size:12px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.hud-card strong{display:block;margin-top:4px;overflow:hidden;text-overflow:ellipsis;color:#fff;font-size:clamp(19px,2.4vw,29px);line-height:1;font-variant-numeric:tabular-nums}
.score-card.bump{animation:scoreBump .28s ease}
.score-gain-badge{position:absolute;right:7px;top:6px;padding:3px 6px;border-radius:999px;color:#fff5ad;background:rgba(255,161,64,.2);box-shadow:inset 0 0 0 1px rgba(255,213,125,.24);font-size:14px;font-weight:1000;animation:scoreGain 1s ease forwards}
.target-panel{position:relative;min-width:0;overflow:hidden;padding:11px;border:1px solid rgba(111,243,221,.18);border-radius:19px;background:linear-gradient(145deg,rgba(35,88,119,.28),rgba(20,48,85,.2));box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.target-main{display:flex;align-items:center;gap:11px}
.target-core{width:52px;height:52px;flex:0 0 auto;display:grid;place-items:center;border-radius:16px;color:#092d48;background:radial-gradient(circle at 36% 27%,#f4ffff 0 8%,#baeaff 18%,#6ec5f5 62%,#397cc9 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.3),inset 0 -4px 0 rgba(0,0,0,.12),0 0 18px rgba(101,168,255,.18);font-size:18px;font-weight:1000;letter-spacing:-.04em}
.target-core[data-level="3"],.target-core[data-level="4"]{color:#302005;background:radial-gradient(circle at 36% 27%,#fff9e5 0 8%,#ffe2a0 18%,#ffbd5f 62%,#d87931 100%)}
.target-core[data-level="5"],.target-core[data-level="6"]{color:#fff;background:radial-gradient(circle at 36% 27%,#ffe5ff 0 8%,#f7a5f0 20%,#8b62df 64%,#3d468f 100%)}
.target-core[data-level="7"],.target-core[data-level="8"]{color:#fffbe7;background:radial-gradient(circle at 36% 27%,#fff 0 7%,#fff39a 18%,#ffbb38 58%,#e85e2d 100%)}
.target-core[data-level="9"],.target-core[data-level="10"],.target-core[data-level="11"],.target-core[data-level="12"],.target-core[data-level="13"],.target-core[data-level="14"],.target-core[data-level="15"],.target-core[data-level="16"]{color:#fff;background:radial-gradient(circle at 36% 27%,#fff 0 7%,#d6fff4 17%,#44e0b5 43%,#eb3d72 74%,#6124a2 100%);font-size:14px}
.target-copy{min-width:0;display:grid}
.target-copy span{color:#8dabc3;font-size:12px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.target-copy strong{color:#fff;font-size:24px;line-height:1.05;font-variant-numeric:tabular-nums}
.target-copy small{margin-top:2px;color:#b6cada;font-size:10px;font-weight:800}
.core-level-label{max-width:100%;overflow:hidden;color:#8fc9d1!important;white-space:nowrap;text-overflow:ellipsis}
.energy-track,.summary-energy{height:7px;margin-top:9px;overflow:hidden;border-radius:999px;background:rgba(2,12,29,.52);box-shadow:inset 0 0 0 1px rgba(148,213,245,.1)}
.energy-track i,.summary-energy i{display:block;width:100%;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent-2),var(--accent),var(--warm));box-shadow:0 0 12px rgba(111,243,221,.55);transform:scaleX(0);transform-origin:left center;transition:transform .24s ease}
.target-panel[data-ready="true"] .energy-track i{background:linear-gradient(90deg,var(--warm),#fff3a0);box-shadow:0 0 13px rgba(255,198,104,.66)}
.core-ladder{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:8px}
.core-ladder span{min-width:0;padding:5px 4px;border-radius:10px;text-align:center;background:rgba(143,204,244,.07)}
.core-ladder small{display:block;color:#7895ae;font-size:12px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}
.core-ladder b{display:block;margin-top:1px;overflow:hidden;text-overflow:ellipsis;color:#c9dbea;font-size:11px;font-variant-numeric:tabular-nums}
.core-ladder .current{background:rgba(111,243,221,.12);box-shadow:inset 0 0 0 1px rgba(111,243,221,.13)}
.core-ladder .current b{color:#8ffff0}
.streak-badge{position:absolute;right:9px;top:9px;padding:5px 8px;border-radius:999px;color:#2d2102;background:linear-gradient(145deg,#fff2a2,var(--warm));box-shadow:0 5px 18px rgba(255,169,67,.2);font-size:12px;font-weight:1000;animation:streakPop .3s ease}
.utility-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.utility-button{
  min-height:66px;
  display:grid;
  grid-template-columns:auto 1fr;
  grid-template-rows:1fr 1fr;
  column-gap:9px;
  align-items:center;
  padding:10px 12px;
  border-radius:17px;
  color:#e6f5ff;
  background:rgba(137,193,232,.11);
  box-shadow:inset 0 0 0 1px rgba(183,225,252,.14),inset 0 -4px 0 rgba(0,0,0,.08);
  text-align:left;
}
.utility-button>span{grid-row:1/3;width:31px;height:31px;display:grid;place-items:center;border-radius:11px;background:rgba(184,226,255,.11);font-size:20px}
.utility-button strong{align-self:end;font-size:13px}
.utility-button small{align-self:start;color:#8fa8c4;font-size:10px}
.utility-button--primary{color:#062837;background:linear-gradient(145deg,#a0fff1,var(--accent));box-shadow:inset 0 -4px 0 rgba(0,83,92,.13)}
.utility-button--primary>span{background:rgba(0,74,87,.1)}
.utility-button--primary small{color:#1c5d66}
.utility-button:active{transform:translateY(2px)}
.run-strip{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#94aac3;font-size:11px;font-weight:800}
.run-strip b{color:#eef8ff}
.run-state{display:inline-flex;align-items:center;gap:6px}
.run-state i{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 9px rgba(111,243,221,.7)}
.run-state[data-state="won"] i{background:var(--warm);box-shadow:0 0 9px rgba(255,198,104,.75)}
.run-state[data-state="game_over"] i{background:var(--danger);box-shadow:0 0 9px rgba(255,158,179,.7)}
.board-panel{
  position:relative;
  display:grid;
  grid-template-rows:minmax(0,1fr) auto;
  place-items:center;
  padding:14px;
}
.celebration-toast{position:absolute;z-index:20;top:20px;left:50%;min-width:min(84%,330px);max-width:calc(100% - 24px);padding:10px 15px;border:1px solid rgba(155,225,255,.3);border-radius:16px;color:#eaffff;background:linear-gradient(145deg,rgba(17,51,91,.96),rgba(5,19,43,.96));box-shadow:0 16px 40px rgba(0,4,20,.44),inset 0 1px 0 rgba(255,255,255,.09);text-align:center;transform:translate(-50%,-12px);opacity:0;pointer-events:none}
.celebration-toast.show{animation:celebrationToast 2.1s ease forwards}
.celebration-toast strong{display:block;color:#fff;font-size:15px}
.celebration-toast span{display:block;margin-top:2px;color:#b7cee1;font-size:10px;font-weight:750}
.celebration-toast[data-tone="record"]{border-color:rgba(255,217,119,.45);background:linear-gradient(145deg,rgba(105,54,72,.97),rgba(37,20,61,.97))}
.celebration-toast[data-tone="core"]{border-color:rgba(111,243,221,.42)}
.celebration-toast[data-tone="merge"]{border-color:rgba(255,174,91,.42)}
.celebration-toast[data-tone="radiant"]{border-color:rgba(255,219,116,.55);background:linear-gradient(145deg,rgba(96,67,25,.97),rgba(38,24,48,.97))}
.celebration-toast[data-tone="nova"]{border-color:rgba(106,229,255,.58);background:linear-gradient(145deg,rgba(13,83,112,.97),rgba(22,29,81,.97))}
.celebration-toast[data-tone="legendary"]{border-color:rgba(255,123,215,.58);background:linear-gradient(145deg,rgba(104,34,103,.97),rgba(27,20,68,.97))}
.celebration-toast[data-tone="ascendant"]{border-color:rgba(139,255,222,.62);background:linear-gradient(145deg,rgba(21,104,91,.97),rgba(77,29,94,.97))}
.input-cue{position:absolute;z-index:18;right:clamp(9px,2vw,26px);top:48%;min-width:58px;display:grid;place-items:center;gap:1px;padding:8px 9px;border:1px solid rgba(195,235,255,.16);border-radius:17px;color:#eaffff;background:linear-gradient(145deg,rgba(23,62,100,.52),rgba(5,20,46,.35));box-shadow:0 10px 28px rgba(0,4,20,.2),inset 0 1px 0 rgba(255,255,255,.08);opacity:0;transform:translate(8px,-50%) scale(.86);transition:opacity .22s ease,transform .22s ease,border-color .22s ease;pointer-events:none;backdrop-filter:blur(6px)}
.input-cue.is-visible{opacity:.68;transform:translate(0,-50%) scale(1);transition:none}
.input-cue[data-state="queued"]{opacity:.8;border-color:rgba(255,215,117,.3);transform:translate(0,-50%) scale(1.04)}
.input-cue-arrow{font-size:25px;font-weight:1000;line-height:1;text-shadow:0 0 13px rgba(111,243,221,.7)}
.input-cue small{color:#a9c9dc;font-size:7px;font-weight:1000;letter-spacing:.12em;white-space:nowrap}
.board-aura{
  position:absolute;
  width:min(78%,620px);
  aspect-ratio:1;
  left:50%;
  top:48%;
  transform:translate(-50%,-50%);
  border-radius:50%;
  background:radial-gradient(circle,rgba(70,178,255,.21),rgba(56,96,210,.08) 45%,transparent 70%);
  filter:blur(3px);
}
.board-shell{
  position:relative;
  width:var(--board-size);
  max-width:100%;
  aspect-ratio:1;
  align-self:center;
  padding:clamp(8px,1.3vw,13px);
  border:1px solid rgba(135,217,255,.32);
  border-radius:clamp(24px,3vw,38px);
  background:
    linear-gradient(150deg,rgba(28,68,114,.72),rgba(3,15,35,.9)),
    radial-gradient(circle at 25% 18%,rgba(111,243,221,.12),transparent 35%);
  box-shadow:0 25px 65px rgba(0,3,18,.48),inset 0 1px 0 rgba(255,255,255,.09),inset 0 0 45px rgba(67,149,255,.08);
}
.board-shell:before,.board-shell:after{
  content:"";
  position:absolute;
  pointer-events:none;
  border-radius:50%;
}
.board-shell:before{width:17px;height:17px;right:8%;top:5%;background:var(--accent);box-shadow:0 0 18px 6px rgba(111,243,221,.2)}
.board-shell:after{width:8px;height:8px;left:7%;bottom:8%;background:var(--warm);box-shadow:0 0 13px 4px rgba(255,198,104,.2)}
.board{
  position:relative;
  z-index:1;
  width:100%;
  height:100%;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  grid-template-rows:repeat(4,1fr);
  gap:var(--cell-gap);
  border-radius:calc(clamp(24px,3vw,38px) - 10px);
  touch-action:none;
  user-select:none;
  -webkit-user-select:none;
}
.board.no-shift{animation:noShift .24s ease}
.board.multi-merge-pulse{animation:multiMergePulse .4s ease}
.board.record-pulse{animation:recordPulse .42s ease}
.board.is-sliding .cell>.tile{opacity:0}
.motion-layer{position:absolute;inset:0;z-index:5;pointer-events:none;overflow:visible}
.motion-tile{inset:auto;margin:0;will-change:transform;pointer-events:none}
.motion-trail{position:absolute;z-index:1;display:block;border-radius:999px;pointer-events:none;will-change:transform,opacity;background:linear-gradient(90deg,rgba(111,243,221,.08),rgba(190,250,255,.92) 52%,rgba(79,177,255,.42));box-shadow:0 0 18px rgba(111,243,221,.58),inset 0 0 7px rgba(255,255,255,.34)}
.motion-trail[data-axis="y"]{background:linear-gradient(180deg,rgba(111,243,221,.06),rgba(141,231,255,.72),rgba(255,198,104,.2))}
.motion-trail[data-sign="negative"]{filter:hue-rotate(18deg)}
.impact-layer{position:absolute;inset:0;z-index:8;pointer-events:none;overflow:visible}
.merge-impact,.spawn-impact{position:absolute;width:0;height:0;pointer-events:none}
.merge-impact{--merge-color:#fff0a1;--merge-glow:rgba(255,198,104,.72)}
.merge-impact[data-tier="radiant"]{--merge-color:#ffd86f;--merge-glow:rgba(255,183,70,.82)}
.merge-impact[data-tier="nova"]{--merge-color:#74ecff;--merge-glow:rgba(63,194,255,.88)}
.merge-impact[data-tier="legendary"]{--merge-color:#ff86df;--merge-glow:rgba(238,74,210,.88)}
.merge-impact[data-tier="ascendant"]{--merge-color:#9dffe5;--merge-glow:rgba(77,244,205,.92)}
.merge-flash{position:absolute;left:0;top:0;width:calc(var(--impact-size)*.78);height:calc(var(--impact-size)*.78);border-radius:50%;background:radial-gradient(circle,#fff 0 8%,var(--merge-color) 18%,color-mix(in srgb,var(--merge-color) 35%,transparent) 42%,transparent 70%);filter:blur(.5px);transform:translate(-50%,-50%) scale(.15);animation:mergeFlash var(--tile-settle-duration) ease-out forwards}
.merge-wave{position:absolute;left:0;top:0;width:calc(var(--impact-size)*.84);height:calc(var(--impact-size)*.84);border:3px solid var(--merge-color);border-radius:50%;box-shadow:0 0 20px var(--merge-glow),inset 0 0 12px color-mix(in srgb,var(--merge-color) 45%,transparent);transform:translate(-50%,-50%) scale(.18);animation:mergeWave var(--tile-settle-duration) ease-out var(--wave-delay) both}
.merge-shard{position:absolute;left:calc(var(--shard-size)*-.5);top:calc(var(--shard-size)*-.2);width:var(--shard-size);height:calc(var(--shard-size)*.45);border-radius:999px;background:linear-gradient(90deg,#fff,var(--merge-color));box-shadow:0 0 10px var(--merge-glow);transform-origin:center;animation:mergeShard var(--tile-settle-duration) cubic-bezier(.18,.72,.28,1) var(--shard-delay) both}
.merge-result{position:absolute;left:0;top:0;width:calc(var(--impact-size)*.78);height:calc(var(--impact-size)*.78);display:grid;place-items:center;border-radius:24%;color:#fff;background:radial-gradient(circle at 36% 27%,#fff 0 8%,#ffe69b 19%,#ff9d52 58%,#b63e74 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.34),0 0 27px var(--merge-glow);font-size:clamp(20px,calc(var(--board-size)/14),42px);font-weight:1000;font-variant-numeric:tabular-nums;letter-spacing:-.05em;transform:translate(-50%,-50%) scale(.18);animation:mergeResult var(--tile-settle-duration) cubic-bezier(.18,.82,.24,1.18) forwards}
.merge-result[data-tier="radiant"]{background:radial-gradient(circle at 36% 27%,#fff 0 8%,#fff0a4 19%,#ffb94f 58%,#d96644 100%)}
.merge-result[data-tier="nova"]{background:radial-gradient(circle at 36% 27%,#fff 0 8%,#9ff8ff 19%,#39bdd9 58%,#3151a9 100%)}
.merge-result[data-tier="legendary"]{background:radial-gradient(circle at 36% 27%,#fff 0 8%,#ffc8f2 18%,#ed66ca 54%,#6331a7 100%)}
.merge-result[data-tier="ascendant"]{background:radial-gradient(circle at 36% 27%,#fff 0 7%,#bdfff0 17%,#43e5bd 50%,#d93b82 76%,#5f289f 100%)}
.merge-value{position:absolute;z-index:3;left:0;top:calc(var(--impact-size)*-.25);min-width:48px;text-align:center;color:#fff6b7;font-size:clamp(13px,calc(var(--board-size)/31),20px);font-weight:1000;text-shadow:0 2px 9px rgba(0,0,0,.65);transform:translate(-50%,-40%);animation:mergeValue var(--tile-settle-duration) ease-out forwards}
.spawn-ring{position:absolute;left:0;top:0;width:calc(var(--impact-size)*.72);height:calc(var(--impact-size)*.72);border:3px solid rgba(111,243,221,.86);border-radius:50%;box-shadow:0 0 18px rgba(111,243,221,.5);transform:translate(-50%,-50%) scale(.15);animation:spawnRing var(--tile-settle-duration) ease-out forwards}
.spawn-star{position:absolute;left:calc(var(--impact-size)*.28);top:calc(var(--impact-size)*-.28);color:#dffff8;font-size:calc(var(--impact-size)*.26);line-height:1;text-shadow:0 0 14px rgba(111,243,221,.85);transform:translate(-50%,-50%) scale(.2) rotate(-25deg);animation:spawnStar var(--tile-settle-duration) cubic-bezier(.2,.85,.3,1.25) forwards}
.cell{
  position:relative;
  min-width:0;
  min-height:0;
  display:grid;
  place-items:center;
  border-radius:24%;
  background:linear-gradient(145deg,rgba(145,190,225,.13),rgba(74,108,151,.1));
  box-shadow:inset 0 0 0 1px rgba(162,211,243,.1),inset 0 -5px 0 rgba(0,0,0,.08);
  overflow:hidden;
}
.cell:before{
  content:"";
  position:absolute;
  inset:11%;
  border:1px dashed rgba(147,203,239,.08);
  border-radius:50%;
}
.tile{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  border-radius:24%;
  color:#ecf8ff;
  background:linear-gradient(145deg,#1a4569,#102d4e);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25),inset 0 -6px 0 rgba(0,0,0,.14),0 8px 18px rgba(0,3,18,.24);
  font-size:clamp(22px,calc(var(--board-size)/12.5),47px);
  font-weight:950;
  letter-spacing:-.055em;
  font-variant-numeric:tabular-nums;
  transform:scale(1);
}
.tile:before{
  content:"";
  position:absolute;
  inset:9%;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.19);
  opacity:.7;
}
.tile[data-empty="true"]{opacity:0;transform:scale(.72);pointer-events:none}
.tile[data-level="1"]{color:#06333f;background:radial-gradient(circle at 36% 27%,#efffff 0 8%,#b9fff6 18%,#66e9dc 62%,#28a5b3 100%)}
.tile[data-level="2"]{color:#092d48;background:radial-gradient(circle at 36% 27%,#f4ffff 0 8%,#baeaff 18%,#6ec5f5 62%,#397cc9 100%)}
.tile[data-level="3"]{color:#2c1e05;background:radial-gradient(circle at 36% 27%,#fff9e5 0 8%,#ffe2a0 18%,#ffbd5f 62%,#d87931 100%)}
.tile[data-level="4"]{color:#fff6ee;background:radial-gradient(circle at 36% 27%,#fff0dc 0 8%,#ffb77c 20%,#f06f62 64%,#b83c64 100%)}
.tile[data-level="5"]{color:#fff2fb;background:radial-gradient(circle at 36% 27%,#ffe5ff 0 8%,#f7a5f0 20%,#b95bd4 64%,#683baf 100%)}
.tile[data-level="6"]{color:#f4f2ff;background:radial-gradient(circle at 36% 27%,#ebe8ff 0 8%,#aaa1ff 20%,#6a70dc 64%,#334294 100%)}
.tile[data-level="7"]{color:#eaffff;background:radial-gradient(circle at 36% 27%,#e8ffff 0 8%,#8df6ff 20%,#28b8cf 62%,#17629b 100%);box-shadow:0 0 22px rgba(74,223,255,.34),inset 0 -6px 0 rgba(0,0,0,.14)}
.tile[data-level="8"]{color:#fffbe7;background:radial-gradient(circle at 36% 27%,#fff 0 7%,#fff39a 18%,#ffbb38 58%,#e85e2d 100%);box-shadow:0 0 28px rgba(255,190,55,.38),inset 0 -6px 0 rgba(0,0,0,.12)}
.tile[data-level="9"]{color:#fff;background:radial-gradient(circle at 36% 27%,#fff 0 7%,#ffcfef 17%,#ff73c4 55%,#8d2ebc 100%);box-shadow:0 0 30px rgba(255,94,202,.4),inset 0 -6px 0 rgba(0,0,0,.13)}
.tile[data-level="10"]{color:#fff;background:radial-gradient(circle at 36% 27%,#fff 0 7%,#d8f8ff 17%,#68b7ff 54%,#3851d1 100%);box-shadow:0 0 32px rgba(85,147,255,.43),inset 0 -6px 0 rgba(0,0,0,.13)}
.tile[data-level="11"]{color:#fff;background:radial-gradient(circle at 36% 27%,#fff 0 7%,#d6fff4 17%,#44e0b5 53%,#148a87 100%);box-shadow:0 0 34px rgba(62,238,190,.46),inset 0 -6px 0 rgba(0,0,0,.13)}
.tile[data-level="12"],.tile[data-level="13"],.tile[data-level="14"],.tile[data-level="15"],.tile[data-level="16"]{color:#fff;background:radial-gradient(circle at 36% 27%,#fff 0 7%,#fff5b0 16%,#ff9f4a 47%,#eb3d72 74%,#6124a2 100%);box-shadow:0 0 38px rgba(255,101,152,.5),inset 0 -6px 0 rgba(0,0,0,.13);font-size:clamp(16px,calc(var(--board-size)/16),34px)}
.tile[data-tier="radiant"]{outline:1px solid rgba(255,226,137,.2);outline-offset:-4px}
.tile[data-tier="nova"]{outline:1px solid rgba(111,235,255,.28);outline-offset:-4px}
.tile[data-tier="legendary"]{outline:2px solid rgba(255,142,225,.28);outline-offset:-5px;filter:saturate(1.08)}
.tile[data-tier="ascendant"]{outline:2px solid rgba(144,255,225,.42);outline-offset:-5px;filter:saturate(1.12) brightness(1.04)}
.tile.spawn{animation:spawnTile var(--tile-settle-duration) cubic-bezier(.2,.9,.2,1.2)}
.tile.merge{animation:mergeTile var(--tile-settle-duration) cubic-bezier(.2,.9,.25,1.25)}
.feedback-zone{position:relative;z-index:2;min-height:55px;display:grid;align-content:center;gap:4px;text-align:center;padding:4px 10px 0}
.status-message{min-height:20px;color:#e8f6ff;font-size:13px;font-weight:800}
.status-message.error{color:var(--danger)}
.status-message.success{color:#8ffff0}
.control-hint{color:#879eb8;font-size:10px;font-weight:750;letter-spacing:.04em}
.control-hint span{margin-right:5px;color:#b8d2e9}
.app-dialog{
  width:min(94vw,560px);
  max-height:calc(var(--app-height) - 24px);
  padding:0;
  border:0;
  border-radius:27px;
  color:var(--ink);
  background:transparent;
  box-shadow:var(--shadow);
  overflow:visible;
}
.app-dialog::backdrop{background:rgba(1,5,17,.78);backdrop-filter:blur(8px)}
.dialog-card{
  max-height:calc(var(--app-height) - 24px);
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  overflow:hidden;
  border:1px solid rgba(155,220,255,.23);
  border-radius:27px;
  background:linear-gradient(155deg,#12305e,#06152f 70%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}
.dialog-header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 18px 12px}
.dialog-header h2{margin-top:4px;font-size:29px;line-height:1;letter-spacing:-.04em}
.dialog-close{font-size:27px}
.dialog-content{min-height:0;overflow:auto;padding:5px 18px 18px;color:#cedced;font-size:14px;line-height:1.48}
.dialog-content p{margin:0 0 11px}
.dialog-content h3{margin:18px 0 7px;color:#fff;font-size:16px}
.dialog-content ul{margin:7px 0 13px;padding-left:20px}
.dialog-content li+li{margin-top:5px}
.dialog-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;padding:12px 18px 18px;border-top:1px solid rgba(163,215,247,.1)}
.dialog-actions button{min-height:44px;padding:9px 15px;border-radius:13px;color:#e8f6ff;background:rgba(143,204,244,.13);box-shadow:inset 0 0 0 1px rgba(177,222,252,.15);font-weight:900}
.dialog-actions button.primary{color:#052a35;background:linear-gradient(145deg,#a2fff2,var(--accent));box-shadow:inset 0 -4px 0 rgba(0,82,90,.12)}
.dialog-actions button.danger{color:#ffe7ec;background:rgba(230,80,111,.16);box-shadow:inset 0 0 0 1px rgba(255,158,179,.2)}
.rule-cards{display:grid;gap:8px;margin:13px 0}
.rule-card{display:grid;grid-template-columns:44px 1fr;gap:11px;align-items:center;padding:10px;border-radius:15px;background:rgba(138,193,231,.09)}
.rule-card b{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;color:#062f3a;background:linear-gradient(145deg,#b8fff5,var(--accent));font-size:17px}
.rule-card strong{display:block;color:#fff}
.rule-card span{display:block;margin-top:2px;color:#aebfd4;font-size:12px}
.help-lead{color:#eaf7ff!important;font-weight:750}
.tutorial-demo{margin:13px 0 16px;padding:12px;border:1px solid rgba(140,222,255,.2);border-radius:18px;background:linear-gradient(150deg,rgba(40,85,132,.34),rgba(6,20,43,.72));box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
.tutorial-demo-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}
.tutorial-demo-header strong{display:block;color:#fff;font-size:14px}
.tutorial-demo-header small{display:block;margin-top:2px;color:#9eb4cc;font-size:10px}
.tutorial-replay{min-height:38px;padding:7px 10px;border-radius:11px;color:#092e3a;background:linear-gradient(145deg,#b9fff5,var(--accent));font-size:11px;font-weight:950;box-shadow:inset 0 -3px 0 rgba(0,83,92,.12)}
.tutorial-input-cue{display:flex;align-items:center;justify-content:center;gap:9px;margin:4px 0 9px;color:#c6d8e9;font-size:11px;font-weight:850}
.tutorial-input-cue kbd{width:39px;height:31px;display:grid;place-items:center;border:1px solid rgba(204,239,255,.25);border-radius:9px;color:#fff;background:rgba(142,200,239,.15);box-shadow:inset 0 -3px 0 rgba(0,0,0,.17);font-family:inherit;font-size:20px;animation:tutorialKey 1.1s ease-in-out infinite}
.tutorial-board{position:relative;width:min(100%,260px);aspect-ratio:1;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,1fr);gap:6px;padding:7px;border:1px solid rgba(143,220,255,.2);border-radius:18px;background:rgba(4,15,34,.72);overflow:hidden}
.tutorial-cell{position:relative;display:grid;place-items:center;border-radius:12px;background:rgba(145,190,225,.12);box-shadow:inset 0 0 0 1px rgba(162,211,243,.08)}
.tutorial-tile{position:absolute;inset:0;display:grid;place-items:center;border-radius:12px;color:#06333f;background:radial-gradient(circle at 36% 27%,#efffff 0 8%,#b9fff6 18%,#66e9dc 62%,#28a5b3 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.3),inset 0 -4px 0 rgba(0,0,0,.12),0 5px 11px rgba(0,3,18,.25);font-size:22px;font-weight:1000}
.tutorial-tile[data-empty="true"]{opacity:0}
.tutorial-tile[data-level="2"]{color:#092d48;background:radial-gradient(circle at 36% 27%,#f4ffff 0 8%,#baeaff 18%,#6ec5f5 62%,#397cc9 100%)}
.tutorial-board.is-demo-moving .tutorial-cell>.tutorial-tile:not([data-empty="true"]){opacity:0}
.tutorial-motion-layer{position:absolute;inset:7px;z-index:4;pointer-events:none}
.tutorial-motion-tile{inset:auto;will-change:transform}
.tutorial-trail{position:absolute;z-index:1;border-radius:999px;background:linear-gradient(90deg,rgba(111,243,221,.04),rgba(126,220,255,.78));box-shadow:0 0 10px rgba(101,168,255,.38);will-change:transform,opacity}
.tutorial-merge{animation:tutorialMerge .72s cubic-bezier(.2,.9,.25,1.25)}
.tutorial-spawn{animation:tutorialSpawn .78s cubic-bezier(.2,.85,.2,1.2)}
.tutorial-caption{min-height:34px;margin:9px 4px 0!important;color:#e9f7ff!important;text-align:center;font-size:12px;font-weight:800}
.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:8px 0 16px}
.stat-card{padding:11px 5px;border-radius:14px;text-align:center;background:rgba(138,193,231,.1)}
.stat-card strong{display:block;color:#fff;font-size:25px;line-height:1}
.stat-card span{display:block;margin-top:5px;color:#98aec6;font-size:9px;text-transform:uppercase;letter-spacing:.1em;font-weight:900}
.setting-row{display:grid;grid-template-columns:1fr minmax(130px,190px);gap:15px;align-items:center;padding:13px 0;border-bottom:1px solid rgba(158,213,247,.1)}
.setting-row strong{color:#fff}
.setting-row small{display:block;margin-top:3px;color:#91a7c0}
.setting-row select{min-height:42px;padding:7px 10px;border:1px solid rgba(160,216,250,.18);border-radius:11px;color:#eef8ff;background:#102b4f}
.music-track-picker{display:grid;gap:5px}
.music-track-picker select{width:100%}
.music-track-description{min-height:2.5em;line-height:1.25}
.audio-status{margin:10px 0 0;color:#91a7c0;font-size:11px;line-height:1.4}
.toggle-label{display:flex;align-items:center;justify-content:flex-end;gap:9px;color:#fff;font-weight:850}
.toggle-label input{width:23px;height:23px;accent-color:var(--accent)}
.milestone-hero{text-align:center;padding:7px 0 14px}
.milestone-core{width:104px;height:104px;margin:0 auto 12px;display:grid;place-items:center;border-radius:28px;color:#fff;background:radial-gradient(circle at 34% 27%,#fff 0 7%,#fff5b0 16%,#ff9f4a 47%,#eb3d72 74%,#6124a2 100%);box-shadow:0 0 38px rgba(255,101,152,.45);font-size:29px;font-weight:1000}
.milestone-hero p{max-width:390px;margin:0 auto;color:#b9cbe0}
.reset-confirmation{text-align:center}
.reset-core{width:78px;height:78px;margin:2px auto 12px;display:grid;place-items:center;border-radius:23px;color:#fff;background:radial-gradient(circle at 34% 27%,#fff 0 7%,#d6fff4 17%,#44e0b5 53%,#148a87 100%);box-shadow:0 0 28px rgba(62,238,190,.3);font-size:24px;font-weight:1000}
.reset-summary,.run-summary-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin-top:12px}
.run-summary-grid{grid-template-columns:repeat(3,1fr);margin:4px 0 13px}
.record-chips{display:flex;justify-content:center;flex-wrap:wrap;gap:6px;margin:-3px 0 13px}
.record-chip{padding:6px 9px;border-radius:999px;color:#352500;background:linear-gradient(145deg,#fff4ac,var(--warm));font-size:10px;font-weight:1000}
.summary-progress{padding:12px;border-radius:15px;background:rgba(138,193,231,.09)}
.summary-progress>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:8px}
.summary-progress strong{color:#fff;font-size:13px}
.summary-progress span{color:#a9bfd3;font-size:10px;font-weight:800}
.summary-energy{margin-top:8px}
html[data-theme="midnight"] body{
  background:radial-gradient(circle at 75% 18%,rgba(95,80,185,.2),transparent 30%),radial-gradient(circle at 17% 80%,rgba(37,129,158,.13),transparent 31%),linear-gradient(145deg,#02050e,#070d20 55%,#0a1026);
}
html[data-theme="midnight"] .command-panel,html[data-theme="midnight"] .board-panel{background:linear-gradient(155deg,rgba(15,21,48,.86),rgba(3,8,22,.9))}
html[data-theme="midnight"] .board-shell{background:linear-gradient(150deg,rgba(36,43,84,.78),rgba(3,8,22,.94))}
html[data-theme="midnight"] .brand-orbit i{background:radial-gradient(circle at 34% 30%,#fff 0 8%,#d6d0ff 16%,#8e82ff 55%,#5140a8 100%);box-shadow:0 0 16px 5px rgba(139,127,255,.37)}
html[data-motion-profile="instant"] *,html[data-motion-profile="instant"] *:before,html[data-motion-profile="instant"] *:after,html[data-motion="reduced"] *,html[data-motion="reduced"] *:before,html[data-motion="reduced"] *:after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
@media(prefers-reduced-motion:reduce){html[data-motion="system"] *,html[data-motion="system"] *:before,html[data-motion="system"] *:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
@keyframes mergeFlash{0%{opacity:0;transform:translate(-50%,-50%) scale(.12)}16%{opacity:1;transform:translate(-50%,-50%) scale(.82)}38%{opacity:.82;transform:translate(-50%,-50%) scale(1.12)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.45)}}
@keyframes mergeWave{0%{opacity:0;transform:translate(-50%,-50%) scale(.18)}22%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(var(--wave-scale))}}
@keyframes mergeShard{0%{opacity:0;transform:rotate(var(--shard-angle)) translateX(0) scale(.3)}20%{opacity:1}100%{opacity:0;transform:rotate(var(--shard-angle)) translateX(var(--shard-distance)) scale(.18)}}
@keyframes mergeResult{0%,18%{opacity:0;transform:translate(-50%,-50%) scale(.16) rotate(-7deg)}43%{opacity:1;transform:translate(-50%,-50%) scale(1.12) rotate(1deg)}68%{opacity:1;transform:translate(-50%,-50%) scale(.98)}100%{opacity:0;transform:translate(-50%,-50%) scale(.88)}}
@keyframes mergeValue{0%{opacity:0;transform:translate(-50%,-40%) scale(.72)}28%{opacity:1;transform:translate(-50%,-135%) scale(1.08)}100%{opacity:0;transform:translate(-50%,-260%) scale(.94)}}
@keyframes spawnRing{0%{opacity:0;transform:translate(-50%,-50%) scale(.15)}35%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(1.2)}}
@keyframes spawnStar{0%{opacity:0;transform:translate(-50%,-50%) scale(.15) rotate(-28deg)}45%{opacity:1;transform:translate(-50%,-50%) scale(1.18) rotate(6deg)}100%{opacity:0;transform:translate(-50%,-50%) scale(.72) rotate(20deg)}}
@keyframes tutorialKey{0%,100%{transform:translateX(0);background:rgba(142,200,239,.15)}45%{transform:translateX(-4px);background:rgba(111,243,221,.25)}}
@keyframes tutorialMerge{0%{transform:scale(.76)}48%{transform:scale(1.2);box-shadow:0 0 23px rgba(255,198,104,.48)}100%{transform:scale(1)}}
@keyframes tutorialSpawn{0%{opacity:0;transform:scale(.25) rotate(-12deg)}65%{opacity:1;transform:scale(1.12) rotate(2deg)}100%{transform:scale(1)}}
@keyframes spawnTile{0%{opacity:0;transform:scale(.35) rotate(-8deg)}70%{opacity:1;transform:scale(1.08) rotate(1deg)}100%{transform:scale(1)}}
@keyframes mergeTile{0%,34%{opacity:0;transform:scale(.3);filter:brightness(1.7)}56%{opacity:1;transform:scale(1.2);filter:brightness(1.2)}100%{opacity:1;transform:scale(1);filter:brightness(1)}}
@keyframes noShift{0%,100%{transform:translateX(0)}35%{transform:translateX(-4px)}70%{transform:translateX(4px)}}
@keyframes scoreBump{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
@keyframes scoreGain{0%{opacity:0;transform:translateY(5px) scale(.75)}22%{opacity:1;transform:translateY(0) scale(1.05)}100%{opacity:0;transform:translateY(-16px) scale(.92)}}
@keyframes streakPop{0%{opacity:0;transform:scale(.72)}70%{opacity:1;transform:scale(1.08)}100%{transform:scale(1)}}
@keyframes celebrationToast{0%{opacity:0;transform:translate(-50%,-12px) scale(.94)}12%,72%{opacity:1;transform:translate(-50%,0) scale(1)}100%{opacity:0;transform:translate(-50%,-8px) scale(.97)}}
@keyframes multiMergePulse{0%,100%{filter:none}45%{filter:drop-shadow(0 0 13px rgba(255,198,104,.72));transform:scale(1.008)}}
@keyframes recordPulse{0%,100%{filter:none}40%{filter:drop-shadow(0 0 18px rgba(111,243,221,.82));transform:scale(1.012)}}
.game-tip{position:absolute;left:50%;bottom:max(9px,env(safe-area-inset-bottom));z-index:12;width:max-content;max-width:min(calc(100% - 24px),520px);display:flex;align-items:center;gap:8px;padding:9px 13px;border:1px solid rgba(155,220,255,.24);border-radius:999px;color:#f1fbff;background:rgba(4,20,46,.92);box-shadow:0 12px 32px rgba(0,0,0,.3),inset 0 1px 0 rgba(255,255,255,.08);backdrop-filter:blur(14px);font-size:12px;font-weight:850;line-height:1.35;text-align:left;opacity:0;visibility:hidden;transform:translate(-50%,12px) scale(.98);transition:opacity .34s ease,transform .34s ease,visibility .34s ease;pointer-events:none;will-change:opacity,transform}
.game-tip.is-visible{opacity:1;visibility:visible;transform:translate(-50%,0) scale(1)}
.game-tip.is-fading{opacity:0;visibility:hidden;transform:translate(-50%,-6px) scale(.98)}
.game-tip-icon{flex:0 0 auto;color:var(--accent-2);text-shadow:0 0 12px rgba(111,243,221,.7)}
.game-tip-text{min-width:0}
html[data-motion-profile="instant"] .game-tip{transition:none}
@media(max-width:520px){.game-tip{max-width:calc(100% - 18px);padding:8px 11px;font-size:11px}}
@media(max-width:820px){
  :root{--board-size:min(88vw,calc(var(--app-height) - 282px),500px);--cell-gap:clamp(6px,2vw,10px)}
  .app{gap:6px;padding:max(5px,env(safe-area-inset-top)) max(5px,env(safe-area-inset-right)) max(5px,env(safe-area-inset-bottom)) max(5px,env(safe-area-inset-left))}
  .topbar{min-height:54px;padding:5px 6px 5px 10px;border-radius:18px}
  .brand-orbit{width:29px;height:29px}
  .brand-orbit i{width:10px;height:10px}
  .brand-kicker{display:none}
  .brand-lockup{gap:7px}
  .brand-lockup strong{font-size:15px;letter-spacing:-.055em}
  .header-actions{gap:2px}
  .icon-button{width:44px;min-width:44px;height:44px;border-radius:12px;font-size:16px}
  .icon-button.help-button{padding:0;width:44px;grid-template-columns:1fr;min-width:44px}
  .help-button strong{display:none}
  .game-layout{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);gap:6px}
  .command-panel,.board-panel{border-radius:20px}
  .command-panel{grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto auto;align-content:stretch;gap:5px;padding:6px}
  .intro-copy{display:none}
  .hud-grid{grid-column:1/2;grid-row:1/2;gap:4px}
  .hud-card{min-height:53px;padding:6px;border-radius:12px}
  .hud-card strong{font-size:20px}
  .target-panel{grid-column:1/2;grid-row:2/3;min-height:57px;padding:6px 7px;border-radius:13px}
  .target-main{gap:7px}
  .target-core{width:35px;height:35px;border-radius:11px;font-size:13px}
  .target-copy strong{font-size:17px}
  .target-copy span,.target-copy small{font-size:7px}
  .energy-track{height:5px;margin-top:5px}
  .core-ladder{gap:3px;margin-top:4px}
  .core-ladder span{padding:2px}
  .core-ladder small{display:none}
  .core-ladder b{font-size:9px}
  .streak-badge{right:6px;top:5px;padding:3px 5px;font-size:7px}
  .utility-grid{grid-column:2/3;grid-row:1/4;align-self:start;height:52px;display:grid;grid-template-columns:repeat(2,52px);gap:4px}
  .utility-button{min-height:52px;width:52px;display:grid;grid-template-columns:1fr;grid-template-rows:28px 12px;place-items:center;gap:1px;padding:5px;border-radius:12px;text-align:center;overflow:hidden}
  .utility-button>span{grid-column:1;grid-row:1;width:28px;height:28px;font-size:17px}
  .utility-button strong{grid-column:1;grid-row:2;align-self:center;max-width:100%;overflow:hidden;font-size:8px;line-height:1;white-space:nowrap;text-overflow:clip}
  .utility-button small{display:none}
  .run-strip{grid-column:1/2;grid-row:3/4;min-height:18px;padding:0 5px;font-size:9px}
  .board-panel{padding:5px;grid-template-rows:minmax(0,1fr) auto}
  .board-shell{border-radius:22px;padding:7px}
  .board{border-radius:15px}
  .feedback-zone{min-height:43px;padding-top:2px}
  .status-message{min-height:17px;font-size:11px}
  .celebration-toast{top:8px;padding:7px 10px;border-radius:12px}
  .celebration-toast strong{font-size:12px}
  .celebration-toast span{font-size:8px}
  .input-cue{right:7px;top:46%;min-width:44px;padding:6px;border-radius:13px}
  .input-cue-arrow{font-size:19px}
  .input-cue small{font-size:6px;letter-spacing:.08em}
  .control-hint{font-size:9px}
}
@media(max-width:370px){
  .topbar{padding-inline:5px}
  .header-actions{gap:2px}
  .icon-button{width:44px;min-width:44px;height:44px}
  .brand-lockup{gap:0}
  .brand-orbit{display:none}
  .brand-lockup strong{font-size:12px;letter-spacing:-.06em}
  .input-cue{right:5px;min-width:40px;padding:5px}
  .hud-card span{font-size:8px}
  .hud-card strong{font-size:17px}
  .utility-grid{height:47px;grid-template-columns:repeat(2,47px)}
  .utility-button{width:47px}
}
@media(max-height:620px) and (max-width:820px){
  :root{--board-size:min(78vw,calc(var(--app-height) - 262px),390px)}
  .topbar{min-height:50px}
  .brand-orbit{width:25px;height:25px}
  .brand-lockup strong{font-size:15px}
  .icon-button{width:44px;min-width:44px;height:44px}
  .command-panel{padding:4px;gap:3px}
  .hud-card{min-height:42px}
  .target-panel{min-height:48px;padding:4px 6px}
  .target-core{width:29px;height:29px}
  .target-copy small{display:block;font-size:6px}
  .core-ladder{margin-top:2px}
  .run-strip{min-height:14px}
  .utility-button{min-height:46px}
  .feedback-zone{min-height:20px;padding:0 10px}
  .control-hint{display:none}
}
@media(max-width:370px) and (max-height:620px){
  :root{--board-size:min(calc(78vw - 2px),calc(var(--app-height) - 262px),390px)}
  .core-ladder{display:none}
}
@media(min-width:821px) and (max-height:700px){
  :root{--board-size:min(68dvh,520px)}
  .app{gap:7px;padding:6px 8px}
  .topbar{min-height:49px;padding-block:5px}
  .brand-orbit{width:34px;height:34px}
  .brand-lockup strong{font-size:21px}
  .icon-button{width:44px;min-width:44px;height:44px}
  .game-layout{grid-template-columns:minmax(250px,.68fr) minmax(400px,1fr);gap:7px}
  .command-panel,.board-panel{border-radius:22px}
  .command-panel{gap:9px;padding:15px 20px}
  .intro-copy h1{margin-top:10px;font-size:34px}
  .intro-copy p{margin-top:7px;font-size:12px;line-height:1.35}
  .hud-card{min-height:58px}
  .target-panel{padding:7px 9px}
  .target-core{width:42px;height:42px}
  .target-copy strong{font-size:20px}
  .core-ladder{margin-top:5px}
  .utility-button{min-height:54px}
  .board-panel{padding:8px}
  .feedback-zone{min-height:42px}
}
@media(max-width:520px) and (orientation:landscape){
  :root{--board-size:min(57dvh,52vw)}
  .app{grid-template-rows:42px minmax(0,1fr)}
  .game-layout{grid-template-columns:180px minmax(0,1fr);grid-template-rows:1fr}
  .command-panel{grid-template-columns:1fr;grid-template-rows:auto auto auto auto;padding:5px}
  .hud-grid{grid-column:auto;grid-row:auto}
  .target-panel{grid-column:auto;grid-row:auto}
  .target-main,.energy-track{display:none}
  .core-ladder{margin-top:0}
  .utility-grid{grid-column:auto;grid-row:auto;grid-template-columns:1fr 1fr}
  .utility-button{width:auto}
  .run-strip{grid-column:auto;grid-row:auto}
  .feedback-zone{position:absolute;right:4px;bottom:3px;width:calc(100% - var(--board-size) - 15px);min-height:30px}
}

/* Shared game-standard readability floor: simplify compact layouts instead of shrinking essential text. */
.help-button strong{font-size:14px}
.intro-copy p{font-size:16px}
.target-copy small{font-size:14px;line-height:1.25}
.core-ladder b{font-size:14px}
.utility-button strong{font-size:14px}
.utility-button small{font-size:12px}
.run-strip{font-size:14px}
.celebration-toast strong{font-size:16px}
.celebration-toast span{font-size:14px}
.input-cue small{font-size:12px}
.status-message{min-height:22px;font-size:16px;line-height:1.35}
.control-hint{font-size:14px;line-height:1.35}
.dialog-content{font-size:16px}
.rule-card span{font-size:14px}
.tutorial-demo-header strong{font-size:16px}
.tutorial-demo-header small{font-size:14px}
.tutorial-replay{min-height:44px;font-size:14px}
.tutorial-input-cue{font-size:14px}
.tutorial-caption{font-size:14px}
.stat-card span{font-size:14px}
.audio-status{font-size:14px}
.record-chip{font-size:14px}
.summary-progress strong,.summary-progress span{font-size:14px}
.game-tip{min-height:44px;font-size:14px}

@media(max-width:820px){
  .hud-card span{font-size:12px}
  .target-copy span{font-size:12px}
  .target-copy small{font-size:14px}
  #coreLevelLabel{display:none}
  .core-ladder b{font-size:14px}
  .streak-badge{font-size:12px}
  .utility-grid{height:66px;grid-template-columns:repeat(2,64px)}
  .utility-button{min-height:66px;width:64px;grid-template-rows:27px 29px;padding:5px}
  .utility-button strong{font-size:14px;line-height:1;white-space:normal;overflow:visible;text-overflow:clip}
  .run-strip{min-height:20px;font-size:14px}
  .status-message{min-height:20px;font-size:14px}
  .celebration-toast strong,.celebration-toast span{font-size:14px}
  .control-hint{font-size:14px}
  .game-tip{font-size:14px}
}

@media(max-width:370px){
  .utility-grid{height:66px;grid-template-columns:repeat(2,58px)}
  .utility-button{width:58px;min-height:66px}
  .utility-button strong{font-size:14px}
  .run-strip{font-size:14px}
}

/* The portal owns browser fullscreen; Nova owns how its shell uses the granted viewport. */
html[data-webgames-display-mode="fullscreen"],html[data-webgames-display-mode="fullscreen"] body{
  width:100%;height:100%;min-height:100%;overflow:hidden
}
html[data-webgames-display-mode="fullscreen"] .app{
  width:100%;max-width:none;height:100dvh;margin:0;gap:clamp(6px,1vw,12px)
}
html[data-webgames-display-mode="fullscreen"] .game-layout{
  min-width:0;min-height:0;width:100%;height:100%
}
@media(min-width:900px) and (min-height:560px){
  html[data-webgames-display-mode="fullscreen"]{
    --board-size:min(calc(100dvh - 168px),62vw,700px)
  }
  html[data-webgames-display-mode="fullscreen"] .game-layout{
    grid-template-columns:minmax(320px,.72fr) minmax(560px,1.5fr);
    gap:clamp(10px,1.2vw,22px)
  }
  html[data-webgames-display-mode="fullscreen"] .command-panel{
    padding:clamp(20px,2vw,38px)
  }
  html[data-webgames-display-mode="fullscreen"] .board-panel{
    padding:10px
  }
}
