:root{--ink:#171717;--paper:#f4efe6;--cream:#fffaf0;--red:#e84b40;--yellow:#ffd95a;--mint:#86d9b0;--blue:#cfe8f6;--line:#d5cbbb;--cell:clamp(58px,17.1vw,114px)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#272522;color:var(--ink);font-family:ui-rounded,"SF Pro Rounded","Avenir Next",system-ui,sans-serif;overscroll-behavior:none}
button,a{font:inherit;color:inherit}.rotate-notice{display:none}
.machine{width:min(100vw,720px);height:100dvh;max-height:1080px;margin:auto;padding:max(10px,env(safe-area-inset-top)) 14px max(10px,env(safe-area-inset-bottom));background:var(--paper);display:grid;grid-template-rows:auto auto auto auto minmax(78px,1fr) auto;gap:clamp(8px,1.35vh,15px);position:relative;overflow:hidden}
.machine::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#00000008 1px,transparent 1px),linear-gradient(#00000008 1px,transparent 1px);background-size:24px 24px;opacity:.22}
.machine>*{position:relative;z-index:1}.machine-head{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:8px}.back,.sound-toggle{width:42px;height:42px;border:2px solid var(--ink);border-radius:50%;background:var(--cream);display:grid;place-items:center;text-decoration:none;font-weight:950;font-size:20px;box-shadow:0 3px 0 var(--ink)}
.sound-toggle{padding:9px}.sound-toggle svg{width:100%;height:100%;fill:var(--ink)}.sound-toggle path.sound-wave{fill:none;stroke:var(--ink);stroke-width:2;stroke-linecap:round}.sound-toggle[aria-pressed="false"] .sound-wave{display:none}.sound-toggle[aria-pressed="false"]{opacity:.45}
.title-block{text-align:center;line-height:1}.title-block small{font-size:9px;font-weight:950;letter-spacing:.14em}.title-block h1{margin:4px 0 0;font-size:clamp(23px,7vw,48px);letter-spacing:-.055em;line-height:.85}
.bank{min-height:62px;border:3px solid var(--ink);border-radius:18px;background:var(--cream);box-shadow:0 5px 0 var(--ink);display:flex;align-items:center;justify-content:space-between;padding:7px 18px}.bank>span{font-size:11px;font-weight:950;letter-spacing:.12em}.bank>div{display:flex;align-items:center;gap:8px}.bank img{width:42px;height:42px;object-fit:contain}.bank strong{font-size:clamp(27px,8vw,48px);font-variant-numeric:tabular-nums;line-height:1}
.cabinet{min-height:0;aspect-ratio:1.55/1;display:grid;grid-template-columns:minmax(0,1fr) 58px;gap:8px;align-items:stretch}.reel-frame{min-width:0;min-height:0;border:4px solid var(--ink);border-radius:20px;background:#b92f2a;padding:9px;box-shadow:inset 0 0 0 4px #ff796e,0 6px 0 var(--ink);position:relative;overflow:hidden}.reels{height:100%;min-height:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;border:3px solid var(--ink);border-radius:10px;overflow:hidden;background:#e5ddd0}
.reel{min-width:0;display:grid;grid-template-rows:repeat(3,1fr);gap:2px;background:#c8bdae;overflow:hidden}.slot-cell{min-height:0;background:#fffdf7;display:grid;place-items:center;position:relative;overflow:hidden}.slot-cell img{width:88%;height:88%;object-fit:contain;filter:drop-shadow(0 2px 0 #0002);user-select:none;-webkit-user-drag:none}.reel.spinning .slot-cell img{animation:reelDrop .095s linear infinite;filter:blur(1.1px) drop-shadow(0 3px 0 #0002)}.reel.slow .slot-cell img{animation-duration:.17s}.reel.stopped{animation:reelStop .18s ease-out}.slot-cell.symbol-win{z-index:3;background:#fff4a5;box-shadow:inset 0 0 0 4px #ffcf33,0 0 18px 5px #ffe565;animation:symbolFlash .45s steps(2) 5}.slot-cell.symbol-win img{transform:scale(1.08)}
@keyframes reelDrop{from{transform:translateY(-16%);opacity:.72}to{transform:translateY(16%);opacity:1}}@keyframes reelStop{0%{transform:translateY(-8%)}60%{transform:translateY(4%)}100%{transform:none}}@keyframes symbolFlash{50%{background:#fff}}
.payline{position:absolute;left:5px;right:5px;height:4px;background:var(--yellow);box-shadow:0 0 0 2px var(--ink),0 0 12px 3px #fff28b;opacity:0;z-index:4;pointer-events:none}.payline-0{top:18.3%}.payline-1{top:50%}.payline-2{top:81.7%}.payline.win{opacity:1;animation:lineFlash .35s steps(2) 5}@keyframes lineFlash{50%{opacity:.2}}
.lever{min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;touch-action:none;user-select:none}.lever-track{height:78%;min-height:190px;width:28px;border:3px solid var(--ink);border-radius:20px;background:#302e2b;position:relative;box-shadow:inset 0 0 0 3px #67615a}.lever-stem{position:absolute;width:8px;height:calc(100% - 28px);left:50%;top:14px;transform:translateX(-50%);border:2px solid var(--ink);background:#b7b2aa}.lever-knob{position:absolute;left:50%;top:0;width:50px;height:50px;transform:translate(-50%,0);border:3px solid var(--ink);border-radius:50%;background:radial-gradient(circle at 35% 28%,#ff8b80 0 13%,var(--red) 14% 55%,#a92823 75%);box-shadow:0 4px 0 var(--ink);cursor:grab}.lever.dragging .lever-knob{cursor:grabbing}.lever small{font-size:9px;font-weight:950;letter-spacing:.16em;margin-top:7px}
.bet-panel{border:3px solid var(--ink);border-radius:18px;background:var(--blue);box-shadow:0 5px 0 var(--ink);padding:8px 11px}.bet-copy{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.bet-copy span{font-size:9px;font-weight:950;letter-spacing:.12em}.bet-copy strong{font-size:11px}.bet-copy b{font-size:17px}.line-buttons{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;justify-items:center}.line-buttons button{width:min(100%,72px);aspect-ratio:1;border:2px solid var(--ink);border-radius:50%;background:#fff;padding:6px 2px 4px;box-shadow:0 3px 0 var(--ink);font-size:7px;font-weight:950;line-height:1;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.line-buttons button svg{width:30px;height:18px;overflow:visible;fill:none;stroke:var(--ink);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.line-buttons button svg .ghost{opacity:.2;stroke-width:1.5}.line-buttons button b{font-size:inherit;letter-spacing:.02em}.line-buttons button[aria-pressed="true"]{background:var(--yellow);transform:translateY(2px);box-shadow:0 1px 0 var(--ink)}
.prize-area{min-height:0;border:3px solid var(--ink);border-radius:18px;background:var(--cream);padding:9px;display:flex;flex-direction:column;gap:8px;overflow:hidden}.message{min-height:48px;border-bottom:2px solid var(--line);padding:2px 4px 8px;display:flex;flex-direction:column;justify-content:center}.message strong{font-size:17px;line-height:1}.message span{font-size:10px;margin-top:4px;color:#665f56;font-weight:700}.message.win{color:#b22b25;animation:messagePop .35s ease-out}@keyframes messagePop{50%{transform:scale(1.025)}}
.paytable{min-height:0;display:grid;grid-template-rows:repeat(4,minmax(0,1fr));gap:6px}.prize-group{min-height:0;border:1.5px solid var(--line);border-radius:10px;background:#fff;display:grid;grid-template-columns:112px minmax(0,1fr);gap:8px;padding:5px}.prize-group-head{min-width:0;display:flex;justify-content:center;align-items:center}.group-icons{display:flex;align-items:center;justify-content:center;gap:5px;height:27px}.group-icons img{width:24px;height:24px;object-fit:contain}.group-icons.sushi-group-icon img{width:38px;height:30px}.rule-grid{min-width:0;display:grid;gap:5px}.rule-grid.five{grid-template-columns:repeat(5,1fr)}.rule-grid.three{grid-template-columns:repeat(3,1fr)}.rule{min-width:0;border:1px solid #d8d0c5;border-radius:7px;background:#faf8f3;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2px;text-align:center;position:relative}.rule img{width:20px;height:17px;object-fit:contain}.rule small{font-size:5.5px;font-weight:950;line-height:1.05;color:#786f65;white-space:nowrap}.rule b{font-size:11px;line-height:1;margin-top:2px}.rule.hit{z-index:2;background:#fff08a;border-color:#f0aa00;box-shadow:0 0 0 2px #ffc928,0 0 15px 4px #ffe46b;animation:ruleFlash .45s steps(2) 6}.rule.hit b{color:#c52720}@keyframes ruleFlash{50%{background:#fff}}
.test-note{text-align:center;font-size:8px;font-weight:900;letter-spacing:.12em;color:#857c71}
@media(min-width:721px){.machine{aspect-ratio:2/3;height:min(100dvh,1080px)}}
@media(max-height:690px) and (orientation:portrait){.machine{gap:6px;padding-top:max(5px,env(safe-area-inset-top));padding-bottom:max(5px,env(safe-area-inset-bottom))}.machine-head{grid-template-columns:36px 1fr 36px}.back,.sound-toggle{width:34px;height:34px}.bank{min-height:48px;padding:4px 13px;border-radius:13px}.bank img{width:34px;height:34px}.cabinet{grid-template-columns:minmax(0,1fr) 48px}.reel-frame{padding:6px}.lever-knob{width:42px;height:42px}.bet-panel{padding:5px 9px}.line-buttons{gap:4px}.line-buttons button{width:min(100%,54px);padding:4px 1px 3px;font-size:5.8px}.line-buttons button svg{width:24px;height:14px}.prize-area{padding:6px;gap:5px}.message{min-height:38px;padding:1px 3px 5px}.message strong{font-size:14px}.message span{font-size:8px}.paytable{gap:3px}.prize-group{padding:3px;grid-template-columns:94px minmax(0,1fr);gap:4px}.group-icons{height:20px;gap:3px}.group-icons img{width:19px;height:19px}.group-icons.sushi-group-icon img{width:30px;height:23px}.rule{border-radius:5px}.rule small{font-size:4.5px}.rule b{font-size:9px}}
@media(orientation:landscape) and (max-height:700px), (orientation:landscape) and (pointer:coarse) and (max-width:1400px){.rotate-notice{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:var(--paper);padding:30px}.phone-shape{width:52px;height:86px;border:4px solid var(--ink);border-radius:12px;margin-bottom:18px}.rotate-notice strong{font-size:22px}.rotate-notice span{font-size:11px;margin-top:6px;color:#726b62}}
@media(prefers-reduced-motion:reduce){.reel.spinning .slot-cell img,.reel.slow .slot-cell img,.reel.stopped,.payline.win,.message.win,.rule.hit,.slot-cell.symbol-win{animation:none}}

/* Test 03 skin layout — every control is anchored to the 1024 × 1536 artwork. */
html,body{display:grid;place-items:center;overflow:hidden;background:#8fd2f4}
.machine{
  container-type:inline-size;
  display:block;
  width:min(100vw,66.6667dvh);
  height:min(100dvh,150vw);
  max-height:none;
  aspect-ratio:2/3;
  margin:0;
  padding:0;
  overflow:hidden;
  background:url("assets/slot-skin-2x3.jpg") center/100% 100% no-repeat;
}
.machine::before{display:none}

.machine-head{
  position:absolute;left:3.2%;top:1.5%;width:93.6%;height:7%;
  display:grid;grid-template-columns:7cqw 1fr 7cqw;gap:1.3cqw;align-items:center;
}
.back,.sound-toggle{width:7cqw;height:7cqw;border-width:.3cqw;box-shadow:0 .5cqw 0 var(--ink);font-size:3.4cqw}
.sound-toggle{padding:1.35cqw}
.title-block small{font-size:1.25cqw;letter-spacing:.13em}
.title-block h1{margin:.5cqw 0 0;font-size:5.2cqw;line-height:.85}

.bank{
  position:absolute;left:10%;top:9.7%;width:80%;height:6.9%;min-height:0;
  border:0;border-radius:0;box-shadow:none;background:transparent;padding:0 4.2%;
}
.bank>span{font-size:1.55cqw;letter-spacing:.13em}
.bank>div{gap:1.1cqw}.bank img{width:5.5cqw;height:5.5cqw}.bank strong{font-size:5.2cqw}

.cabinet{position:absolute;inset:0;display:block;aspect-ratio:auto;min-height:0}
.reel-frame{
  position:absolute;left:14.1%;top:21.55%;width:66.4%;height:29.8%;
  border:0;border-radius:1.4cqw;background:transparent;padding:.55cqw;
  box-shadow:none;overflow:hidden;
}
.reels{height:100%;border:.28cqw solid #766f69;border-radius:1.2cqw;gap:.38cqw;background:#d8d1c8}
.reel{gap:.25cqw}.slot-cell{background:rgba(255,253,247,.93)}
.slot-cell img{width:91%;height:91%}
.payline{left:.8cqw;right:.8cqw;height:.45cqw;box-shadow:0 0 0 .22cqw var(--ink),0 0 1.5cqw .4cqw #fff28b}

.lever{
  position:absolute;left:82%;top:22%;width:11%;height:29%;min-height:0;
  display:flex;align-items:center;justify-content:center;
}
.lever-track{height:79%;min-height:0;width:3.8cqw;border-width:.35cqw;border-radius:2cqw;box-shadow:inset 0 0 0 .4cqw #67615a}
.lever-stem{width:1.1cqw;height:calc(100% - 3.2cqw);top:1.6cqw;border-width:.25cqw}
.lever-knob{width:7.5cqw;height:7.5cqw;border-width:.4cqw;box-shadow:0 .55cqw 0 var(--ink)}
.lever small{font-size:1.25cqw;margin-top:.8cqw;letter-spacing:.14em}

.bet-panel{
  position:absolute;left:4%;top:53.25%;width:92%;height:13.8%;
  border:0;border-radius:0;background:transparent;box-shadow:none;padding:0;
}
.bet-copy{position:absolute;left:4.2%;right:4.2%;top:1%;height:16%;margin:0;align-items:center}
.bet-copy span{font-size:1.2cqw}.bet-copy strong{font-size:1.25cqw}.bet-copy b{font-size:2cqw}
.line-buttons{
  position:absolute;left:7.3%;right:7.3%;top:20%;height:75%;
  display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1.2cqw;align-items:center;justify-items:center;
}
.line-buttons button{
  width:13.45cqw;max-width:none;aspect-ratio:1;min-height:0;
  border:0;border-radius:50%;background:transparent;box-shadow:none;
  padding:1.2cqw .25cqw .7cqw;gap:.35cqw;font-size:1.18cqw;
}
.line-buttons button svg{width:4.6cqw;height:3.1cqw;stroke-width:2.7}
.line-buttons button[aria-pressed="true"]{
  transform:none;background:rgba(255,220,91,.55);
  box-shadow:inset 0 0 0 .45cqw rgba(255,176,62,.8),0 0 1.8cqw rgba(255,217,90,.8);
}

.prize-area{
  position:absolute;left:10.1%;top:68.8%;width:79.8%;height:22.6%;min-height:0;
  border:0;border-radius:0;background:transparent;padding:1.6cqw 2cqw 1.3cqw;
  gap:.7cqw;overflow:hidden;
}
.message{min-height:5.2cqw;border-bottom:.18cqw solid #d8cdbc;padding:0 .5cqw .55cqw}
.message strong{font-size:2.25cqw}.message span{font-size:1.2cqw;margin-top:.3cqw}
.paytable{gap:.45cqw}.prize-group{border-width:.16cqw;border-radius:1.1cqw;grid-template-columns:19cqw minmax(0,1fr);gap:.65cqw;padding:.45cqw}
.group-icons{height:3.7cqw;gap:.7cqw}.group-icons img{width:3.5cqw;height:3.5cqw}.group-icons.sushi-group-icon img{width:5.2cqw;height:4.1cqw}
.rule-grid{gap:.45cqw}.rule{border-width:.14cqw;border-radius:.75cqw;padding:.18cqw}.rule img{width:2.8cqw;height:2.35cqw}
.rule small{font-size:clamp(4px,.82cqw,7px)}.rule b{font-size:clamp(8px,1.55cqw,14px);margin-top:.18cqw}
.rule.hit{box-shadow:0 0 0 .3cqw #ffc928,0 0 1.4cqw .4cqw #ffe46b}
.test-note{position:absolute;left:0;right:0;bottom:2.4%;font-size:1cqw;color:#746c68}

@media(max-height:690px) and (orientation:portrait){
  .machine{gap:0;padding:0}.machine-head{grid-template-columns:7cqw 1fr 7cqw}.back,.sound-toggle{width:7cqw;height:7cqw}
  .bank{min-height:0;padding:0 4.2%;border-radius:0}.bank img{width:5.5cqw;height:5.5cqw}
  .cabinet{display:block}.reel-frame{padding:.55cqw}.lever-knob{width:7.5cqw;height:7.5cqw}
  .bet-panel{padding:0}.line-buttons{gap:1.2cqw}.line-buttons button{width:13.45cqw;padding:1.2cqw .25cqw .7cqw;font-size:1.18cqw}.line-buttons button svg{width:4.6cqw;height:3.1cqw}
  .prize-area{padding:1.6cqw 2cqw 1.3cqw;gap:.7cqw}.message{min-height:5.2cqw;padding:0 .5cqw .55cqw}.message strong{font-size:2.25cqw}.message span{font-size:1.2cqw}
  .paytable{gap:.45cqw}.prize-group{padding:.45cqw;grid-template-columns:19cqw minmax(0,1fr);gap:.65cqw}.group-icons{height:3.7cqw;gap:.7cqw}.group-icons img{width:3.5cqw;height:3.5cqw}.group-icons.sushi-group-icon img{width:5.2cqw;height:4.1cqw}.rule small{font-size:clamp(4px,.82cqw,7px)}.rule b{font-size:clamp(8px,1.55cqw,14px)}
}

/* Test 03 control and alignment polish. */
.machine-head{z-index:20}
.machine-head .title-block{display:none}
.cabinet{pointer-events:none}
.bank{z-index:5}
.reel-frame,.lever{pointer-events:auto}
.bet-panel{z-index:10}
.prize-area{z-index:8}
.test-note{display:none}

.bet-copy{
  left:30%;
  right:30%;
  top:0;
  height:17%;
  justify-content:center;
  gap:.45em;
  text-align:center;
  white-space:nowrap;
  border-radius:999px;
  background:rgba(255,255,255,.68);
}
.bet-copy span{display:block}
.bet-copy b{font:inherit}

.line-buttons{
  left:6.2%;
  right:8.4%;
  top:14%;
  height:75%;
  transform:translateX(3px);
}
.lever{left:84%}
.lever-knob{
  background:radial-gradient(circle at 35% 28%,#ffe0ed 0 13%,#f58abc 14% 57%,#cb4f8d 76%);
}

@media(max-height:690px) and (orientation:portrait){
  .line-buttons{left:6.2%;right:8.4%;top:14%;height:75%}
}

.line-buttons button{position:relative;overflow:visible}
.line-buttons button::before{
  content:"";
  position:absolute;
  left:50%;
  top:8%;
  width:0;
  height:0;
  border-left:2.1cqw solid transparent;
  border-right:2.1cqw solid transparent;
  border-top:3.4cqw solid #fff;
  transform:translateX(-50%);
  filter:drop-shadow(0 .48cqw .28cqw rgba(22,54,96,.82)) drop-shadow(0 0 .35cqw #fff);
  animation:betHintFloat .85s ease-in-out infinite alternate;
  transition:opacity .15s ease;
  z-index:2;
}
.line-buttons button[aria-pressed="true"]::before{opacity:0;animation:none}
@keyframes betHintFloat{from{margin-top:-.18cqw}to{margin-top:.42cqw}}

.line-buttons button[aria-pressed="false"]{
  animation:betCircleGlow 1.15s ease-in-out infinite alternate;
}
@keyframes betCircleGlow{
  from{filter:drop-shadow(0 0 .12cqw rgba(255,255,255,.45)) brightness(1)}
  to{filter:drop-shadow(0 0 1.15cqw rgba(255,255,255,1)) brightness(1.16)}
}

.five-explosion{
  position:absolute;
  z-index:12;
  width:25%;
  height:auto;
  pointer-events:none;
  transform:translate(-50%,-50%) scale(.12) rotate(-12deg);
  opacity:0;
  animation:fiveBurst .92s cubic-bezier(.15,.75,.2,1) var(--burst-delay,0s) both;
}
.machine.five-match-shake{animation:fiveMatchShake .62s cubic-bezier(.36,.07,.19,.97) both}
@keyframes fiveBurst{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.12) rotate(-12deg)}
  18%{opacity:1;transform:translate(-50%,-50%) scale(1.18) rotate(5deg)}
  62%{opacity:1;transform:translate(-50%,-50%) scale(.96) rotate(-3deg)}
  100%{opacity:0;transform:translate(-50%,-50%) scale(1.35) rotate(8deg)}
}
@keyframes fiveMatchShake{
  0%,100%{transform:translate(0)}
  12%{transform:translate(-3px,2px) rotate(-.18deg)}
  25%{transform:translate(4px,-2px) rotate(.18deg)}
  38%{transform:translate(-4px,-1px)}
  52%{transform:translate(3px,2px)}
  68%{transform:translate(-2px,1px)}
  84%{transform:translate(2px,-1px)}
}

.leaderboard-open{
  position:absolute;
  right:2cqw;
  top:1.55cqw;
  z-index:3;
  min-width:10.5cqw;
  height:3.5cqw;
  border:.25cqw solid var(--ink);
  border-radius:999px;
  background:#fff;
  box-shadow:0 .35cqw 0 var(--ink);
  font-size:clamp(6px,1.05cqw,10px);
  font-weight:950;
  letter-spacing:.08em;
  cursor:pointer;
}
.prize-area>.message{padding-right:13cqw}

.g7-leaderboard-modal{
  position:absolute;
  inset:0;
  z-index:80;
  display:none;
  place-items:center;
  padding:5cqw;
  background:rgba(20,27,42,.68);
  backdrop-filter:blur(.8cqw);
}
.g7-leaderboard-modal.show{display:grid}
.g7-leaderboard-card{
  position:relative;
  display:flex;
  flex-direction:column;
  width:100%;
  max-height:92%;
  overflow:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  border:.55cqw solid var(--ink);
  border-radius:3cqw;
  background:#fffaf0;
  box-shadow:0 1.2cqw 0 var(--ink),0 2cqw 5cqw #0005;
  padding:4.5cqw 4cqw 3.5cqw;
}
.g7-leaderboard-card>small{order:0;font-size:clamp(7px,1.25cqw,11px);font-weight:950;letter-spacing:.16em;color:#746c68}
.g7-leaderboard-card>h2{order:1;margin:.25cqw 0 2cqw;font-size:clamp(28px,6.3cqw,52px);line-height:.86;letter-spacing:-.05em}
.g7-leaderboard-close{
  position:absolute;right:2cqw;top:2cqw;width:6.5cqw;height:6.5cqw;border:.3cqw solid var(--ink);border-radius:50%;background:#fff;font-size:4cqw;font-weight:900;line-height:1;cursor:pointer
}
.g7-exit-panel{order:2;border:.28cqw solid #dacfc1;border-radius:2cqw;background:#fff;padding:2.2cqw;margin:0 0 2.5cqw}
.g7-exit-panel[hidden]{display:none}
.g7-session-score{display:flex;align-items:center;justify-content:space-between;gap:2cqw;border-bottom:.2cqw solid #ddd2c4;padding-bottom:1.5cqw}
.g7-session-score>span{font-size:clamp(7px,1.15cqw,11px);font-weight:950;letter-spacing:.1em}
.g7-session-score strong{display:flex;align-items:center;font-size:clamp(24px,4.8cqw,40px);line-height:1}
.g7-session-score img{width:5cqw;height:5cqw;object-fit:contain;margin-right:.7cqw}
.g7-exit-panel>p{font-size:clamp(10px,1.65cqw,14px);line-height:1.35;margin:1.6cqw 0}
.g7-name-wrap{display:grid;grid-template-columns:1fr auto;gap:1cqw}
.g7-name-wrap label,.g7-name-privacy{grid-column:1/-1;font-size:clamp(7px,1.05cqw,10px);font-weight:900;letter-spacing:.08em}
.g7-name-privacy{color:#b4476a;margin-top:-.4cqw}
.g7-name-wrap input{min-width:0;height:7cqw;border:.3cqw solid var(--ink);border-radius:1.2cqw;background:#fff;padding:0 1.5cqw;font-size:clamp(11px,2cqw,17px);font-weight:800;text-transform:none}
.g7-name-wrap button,.g7-quit{border:.3cqw solid var(--ink);border-radius:1.2cqw;padding:0 2cqw;background:var(--ink);color:#fff;font-size:clamp(8px,1.25cqw,11px);font-weight:950;letter-spacing:.05em;cursor:pointer}
.g7-quit{width:100%;height:6cqw;margin-top:1.2cqw;background:#fff;color:var(--ink)}
.g7-submit-result{min-height:2.7cqw;margin-top:1cqw;font-size:clamp(8px,1.2cqw,11px);font-weight:900;color:#a62c45}
.g7-leaderboard-tabs{order:3;display:grid;grid-template-columns:repeat(3,1fr);gap:1cqw;margin-bottom:1.4cqw}
.g7-leaderboard-tabs button{height:5.2cqw;border:.25cqw solid var(--ink);border-radius:999px;background:#fff;font-size:clamp(7px,1.15cqw,10px);font-weight:950;cursor:pointer}
.g7-leaderboard-tabs button.is-active{background:var(--ink);color:#fff}
.g7-leaderboard-status{order:4;min-height:2.8cqw;font-size:clamp(8px,1.2cqw,11px);color:#746c68}
.g7-leaderboard-columns,.g7-leaderboard-list li{display:grid;grid-template-columns:8cqw minmax(0,1fr) 14cqw;gap:1.2cqw;align-items:center}
.g7-leaderboard-columns{order:5;border-bottom:.2cqw solid #aaa;padding:1cqw .5cqw;font-size:clamp(6px,.95cqw,9px);font-weight:950;letter-spacing:.1em;color:#777}
.g7-leaderboard-columns span:last-child{text-align:right}
.g7-leaderboard-list{order:6;list-style:none;margin:0;padding:0}
.g7-leaderboard-list li{min-height:4.8cqw;border-bottom:.16cqw solid #ddd;padding:.7cqw .5cqw;font-size:clamp(9px,1.45cqw,13px)}
.g7-leaderboard-list .rank,.g7-leaderboard-list .score{font-weight:950}.g7-leaderboard-list .score{text-align:right}.g7-leaderboard-list .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:800}.g7-leaderboard-list li.is-empty{color:#bbb}
.g7-leaderboard-period{order:7;margin:1.2cqw 0 0;font-size:clamp(6px,1cqw,9px);font-weight:850;letter-spacing:.05em;color:#777}

@media(prefers-reduced-motion:reduce){.line-buttons button::before,.machine.five-match-shake,.five-explosion{animation:none}}
