.msg-stage{position:relative;display:flex;flex-direction:column;align-items:center;gap:18px;
  padding:34px 18px 28px;border-radius:24px;overflow:hidden;
  background:radial-gradient(120% 90% at 50% 0,rgba(73,224,166,.16),transparent 60%),var(--cg-s1);
  border:1px solid var(--cg-line)}
.msg-glow{position:absolute;left:50%;top:38%;width:min(560px,90%);aspect-ratio:1;transform:translate(-50%,-50%);
  background:radial-gradient(circle,rgba(73,224,166,.26),transparent 68%);filter:blur(12px);pointer-events:none;
  transition:opacity .25s,transform .25s}
.msg-fx{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.msg-kicker{position:relative;margin:0;font-size:15.5px;color:var(--cg-muted);text-align:center}
.msg-btn{position:relative;width:min(280px,64vw);aspect-ratio:1;border-radius:50%;border:0;cursor:pointer;padding:0;
  background:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.msg-btn-face{position:absolute;inset:0;border-radius:50%;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:6px;color:#05281c;
  background:radial-gradient(circle at 34% 28%,#b8ffe4,#49e0a6 46%,#17a978 100%);
  box-shadow:0 18px 0 #0e7853,0 26px 46px rgba(0,0,0,.45),inset 0 -10px 22px rgba(0,0,0,.18);
  transition:transform .07s ease-out,box-shadow .07s ease-out}
.msg-btn:active .msg-btn-face,.msg-btn.down .msg-btn-face{transform:translateY(12px);
  box-shadow:0 6px 0 #0e7853,0 10px 22px rgba(0,0,0,.4),inset 0 -6px 16px rgba(0,0,0,.2)}
.msg-btn-emoji{font-size:clamp(46px,12vw,72px);line-height:1;filter:drop-shadow(0 3px 6px rgba(0,0,0,.2))}
.msg-btn-label{font:800 clamp(15px,3.6vw,20px)/1 inherit;letter-spacing:.22em}
.msg-btn-ring{position:absolute;inset:-14px;border-radius:50%;border:2px solid rgba(73,224,166,.4);
  animation:msgPulse 2.6s ease-out infinite}
@keyframes msgPulse{0%{transform:scale(.96);opacity:.75}70%{transform:scale(1.1);opacity:0}100%{opacity:0}}
.msg-combo{position:relative;display:flex;flex-direction:column;align-items:center;gap:7px;width:min(340px,86%)}
.msg-combo-bar{width:100%;height:9px;border-radius:999px;background:var(--cg-s2);border:1px solid var(--cg-line);overflow:hidden}
.msg-combo-bar i{display:block;height:100%;width:0;border-radius:999px;
  background:linear-gradient(90deg,#49e0a6,#2f8cff,#ffc93c);transition:width .12s linear}
.msg-combo span{font:700 15px/1 inherit;color:var(--cg-text);font-variant-numeric:tabular-nums}
.msg-counters{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;width:100%}
.msg-counters div{padding:12px 10px;border-radius:16px;text-align:center;min-width:0;
  background:var(--cg-s2);border:1px solid var(--cg-line)}
.msg-counters b{display:block;font-size:clamp(18px,4.2vw,25px);font-variant-numeric:tabular-nums;color:var(--cg-text)}
.msg-counters small{display:block;margin-top:3px;font-size:11.5px;letter-spacing:.03em;color:var(--cg-dim)}
.msg-hint{position:relative;margin:0;font-size:13.5px;color:var(--cg-dim);text-align:center}
.msg-hint kbd{padding:1px 6px;border-radius:6px;background:var(--cg-s2);border:1px solid var(--cg-line);font-size:12.5px}
.msg-panel h3{margin:0 0 10px;font-size:16px}
.msg-sub{color:var(--cg-muted);font-size:14.5px;margin:0 0 10px}
.msg-ach{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.msg-ach div{padding:12px;border-radius:14px;background:var(--cg-s2);border:1px solid var(--cg-line);opacity:.45;
  transition:opacity .25s,border-color .25s,transform .25s}
.msg-ach div.on{opacity:1;border-color:#49e0a6;transform:translateY(-2px)}
.msg-ach b{display:block;font-size:22px;line-height:1}
.msg-ach strong{display:block;margin-top:5px;font-size:14.5px;color:var(--cg-text)}
.msg-ach small{display:block;color:var(--cg-dim);font-size:12.5px;margin-top:2px}
.msg-nameform{display:flex;gap:10px;flex-wrap:wrap}
.msg-nameform input{flex:1 1 180px;min-width:0;padding:11px 14px;border-radius:12px;font:inherit;font-size:15px;
  color:var(--cg-text);background:var(--cg-s1);border:1px solid var(--cg-line)}
.msg-boards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.msg-table{width:100%;border-collapse:collapse;font-size:14.5px}
.msg-table td{padding:7px 8px;border-bottom:1px solid var(--cg-line)}
.msg-table td:first-child{width:30px;color:var(--cg-dim)}
.msg-table td:last-child{text-align:right;font-variant-numeric:tabular-nums}
.msg-table tr:last-child td{border-bottom:0}
.msg-table tr.me td{color:#49e0a6}
@media (max-width:760px){
  .msg-counters{grid-template-columns:repeat(2,minmax(0,1fr))}
  .msg-boards{grid-template-columns:1fr}
  .msg-stage{padding:24px 12px 22px;border-radius:18px}
}
@media (prefers-reduced-motion:reduce){.msg-btn-ring{animation:none}.msg-btn-face{transition:none}}


/* ---- standalone frame document (/most-satisfied-game/play/) ---- */
html.msg-frame,html.msg-frame body{margin:0;padding:0;background:transparent;overflow-x:hidden}
html.msg-frame body{padding:30px 2px 10px;color:var(--cg-text,#e8eef7)}
html.msg-frame .msg-stage{margin-top:0}
html.msg-frame .card{background:var(--cg-card,#141c2b);border:1px solid var(--cg-line,#223049);border-radius:14px;padding:16px 18px;margin:14px 0}
html.msg-frame h2{font-size:1.15rem;margin:0 0 10px}
html.msg-frame h3{font-size:1rem;margin:0 0 8px}
html.msg-frame a{color:var(--cg-accent,#49e0a6)}
