:root {
  --ink: #3d2a26;
  --paper: #fff8e9;
  --stage: #f45f55;
  --shadow: 0 9px 0 rgba(61, 42, 38, .13);
  font-family: "Kosugi Maru", sans-serif;
  color: var(--ink);
  background: var(--paper);
}

* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; overscroll-behavior: none; }
button { font: inherit; color: inherit; }
.screen { min-height: 100dvh; }
.is-hidden { display: none !important; }

.home-screen {
  background:
    radial-gradient(circle at 10% 15%, #ffd742 0 3px, transparent 4px),
    radial-gradient(circle at 80% 12%, #f45f55 0 4px, transparent 5px),
    var(--paper);
  background-size: 45px 45px, 68px 68px, auto;
}

.hero { position:relative; min-height:min(78vh,760px); display:grid; align-items:center; overflow:hidden; border-bottom:5px solid var(--ink); background:#fff7e6; }
.hero-copy { position:relative; width:min(38%,520px); padding:clamp(34px,6vw,90px); z-index:3; }
.eyebrow, .section-heading p { font-weight: 700; letter-spacing: .18em; font-size: .78rem; }
h1 { margin: 12px 0 24px; font-family: "Mochiy Pop One", sans-serif; font-size: clamp(3.6rem, 8vw, 8rem); line-height: .9; letter-spacing: -.08em; }
h1 span { color: #f45f55; -webkit-text-stroke: 2px var(--ink); text-shadow: 6px 6px 0 #ffd742; }
.hero-lead { font-size: clamp(1rem, 2vw, 1.45rem); line-height: 1.8; font-weight: 700; }
.hero-art-wrap { position:absolute; inset:0; z-index:1; overflow:hidden; background:#fff7e6; }
.hero-art-wrap::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,247,230,.96) 0 19%,rgba(255,247,230,.7) 27%,transparent 46%);pointer-events:none}
.hero-art { width:100%; height:100%; object-fit:cover; object-position:center; filter:saturate(1.04) contrast(1.02); }
.burst { position:absolute;z-index:3;padding:10px 18px;border:3px solid var(--ink);background:white;border-radius:50%;font-family:"Mochiy Pop One";transform:rotate(-8deg);box-shadow:4px 4px 0 var(--ink); }
.burst-one { left:43%; top:12%; }.burst-two { right:4%; bottom:10%; font-size:2rem; }

.stage-section { max-width: 1020px; margin: auto; padding: 70px 22px 90px; }
.section-heading h2 { margin: 5px 0 30px; font-family: "Mochiy Pop One"; font-size: clamp(1.8rem, 5vw, 3.4rem); }
.stage-list { display: grid; gap: 16px; }
.stage-card { --stage:#f45f55; position: relative; display: grid; grid-template-columns: 52px 110px 1fr 34px; align-items: center; min-height: 130px; padding: 10px 20px; border: 4px solid var(--ink); border-radius: 28px; background: white; text-align: left; box-shadow: var(--shadow); cursor: pointer; overflow: hidden; transition: transform .16s, box-shadow .16s; }
.stage-card::before { content:""; position:absolute; inset:0 auto 0 0; width: 12px; background:var(--stage); }
.stage-card:hover { transform: translateY(-4px) rotate(-.4deg); box-shadow: 0 14px 0 color-mix(in srgb, var(--stage) 35%, transparent); }
.stage-card img { width: 100px; height: 100px; object-fit: contain; align-self: end; filter: drop-shadow(0 4px 0 color-mix(in srgb, var(--stage) 22%, transparent)); }
.card-number { font-family:"Mochiy Pop One"; color: var(--stage); font-size: 1.1rem; }
.card-copy { display:grid; gap:4px; padding-left:10px; }.card-copy small { font-weight:700; color:var(--stage); }.card-copy strong { font-family:"Mochiy Pop One"; font-size:clamp(1.1rem,3vw,1.5rem); }.card-copy b{width:max-content;max-width:100%;padding:3px 8px;border:2px solid var(--ink);border-radius:9px;background:color-mix(in srgb,var(--stage) 16%,white);font-size:.68rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-copy em { font-style:normal; color:#826b63; font-size:.85rem; }
.card-arrow { font-size: 2.5rem; color: var(--stage); }
footer { padding: 28px; text-align:center; background:var(--ink); color:white; font-size:.8rem; }

.game-screen { height: 100dvh; display:flex; flex-direction:column; overflow:hidden; background: color-mix(in srgb, var(--stage) 14%, var(--paper)); touch-action: manipulation; }
.game-topbar { display:grid; grid-template-columns:50px 1fr auto; align-items:center; gap:12px; padding:max(14px, env(safe-area-inset-top)) 16px 10px; }
.round-button { width:42px; height:42px; border:3px solid var(--ink); border-radius:50%; background:white; font-size:1.4rem; cursor:pointer; }
.home-settings{position:fixed;z-index:20;right:18px;top:max(18px,env(safe-area-inset-top));box-shadow:3px 3px 0 var(--ink)}
.stage-label { display:grid; }.stage-label small,.score-box small { font-size:.62rem; font-weight:700; letter-spacing:.12em; }.stage-label strong { font-family:"Mochiy Pop One"; font-size:clamp(.9rem,3vw,1.25rem); }
.score-box { display:grid; text-align:right; }.score-box strong { font-family:"Mochiy Pop One"; font-variant-numeric:tabular-nums; }
.progress-track { height:8px; margin:0 16px; border:2px solid var(--ink); border-radius:20px; background:white; overflow:hidden; }.progress-track span { display:block; height:100%; width:0; background:var(--stage); }
.play-field { position:relative; flex:1; min-height:0; overflow:hidden; cursor:pointer; perspective:900px; background:#e8dfca; }
.world-depth { position:absolute; inset:-5%; transform-style:preserve-3d; transform:rotateX(1.5deg) translateZ(0); transition:transform .22s cubic-bezier(.2,.8,.2,1); }
.world-backdrop { position:absolute; inset:0; transform:translateZ(-90px) scale(1.12); background:linear-gradient(155deg,color-mix(in srgb,var(--stage) 35%,#fff8e9),#fff8e9 60%,color-mix(in srgb,var(--stage) 18%,#fff)); background-size:cover; background-position:center; filter:saturate(.92) contrast(1.03); }
.world-backdrop::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 58%,rgba(61,42,38,.18)); }
.hype-sky{position:absolute;inset:-10%;z-index:1;transform:translateZ(-42px);opacity:0;pointer-events:none;background:radial-gradient(circle at 18% 25%,#fff 0 3%,transparent 3.5%),radial-gradient(circle at 78% 20%,#ffd742 0 4%,transparent 4.5%),conic-gradient(from 12deg at 50% 42%,transparent 0 8deg,rgba(255,255,255,.55) 9deg 15deg,transparent 16deg 35deg);transition:opacity .35s,transform .5s}
.world-floor { position:absolute; left:-12%; right:-12%; bottom:-19%; height:47%; transform-origin:50% 100%; transform:rotateX(67deg) translateZ(-28px); background:repeating-linear-gradient(90deg,rgba(255,255,255,.38) 0 2px,transparent 2px 13%),linear-gradient(180deg,color-mix(in srgb,var(--stage) 25%,#fff),color-mix(in srgb,var(--stage) 45%,#7b695f)); border-top:4px solid rgba(61,42,38,.65); }
.hype-crowd{position:absolute;z-index:2;left:5%;right:5%;bottom:14%;display:flex;justify-content:space-between;align-items:end;opacity:0;transform:translateZ(10px) translateY(80px);transition:opacity .35s,transform .55s cubic-bezier(.2,.8,.2,1)}.hype-crowd i{display:block;width:clamp(28px,7vw,62px);height:clamp(48px,10vw,88px);border:4px solid var(--ink);border-radius:50% 50% 12px 12px;background:color-mix(in srgb,var(--stage) 72%,white);box-shadow:inset 0 13px 0 white;transform-origin:50% 100%}.hype-crowd i:nth-child(even){height:clamp(38px,8vw,70px);background:#ffd742}.hype-crowd i::before,.hype-crowd i::after{content:"";position:absolute;width:13px;height:20px;margin-top:-8px;border:3px solid var(--ink);background:inherit;transform:rotate(-24deg)}.hype-crowd i::after{transform:translateX(30px) rotate(24deg)}
.beat-sun { position:absolute; width:26px; height:26px; left:14%; top:14%; transform:translateZ(-25px); border:3px solid var(--ink); border-radius:50%; background:#ffd742; box-shadow:0 0 0 12px color-mix(in srgb,#ffd742 22%,transparent); }
.stage-prop { position:absolute; left:50%; bottom:1%; transform:translateX(-50%) translateZ(42px); font-size:clamp(4rem,18vmin,8rem); filter:drop-shadow(0 9px 0 rgba(61,42,38,.13)); z-index:3; }
.play-field.action-impact .stage-prop{animation:prop-impact .38s cubic-bezier(.15,.8,.2,1.35)}.play-field[data-scene="mike"].action-impact .stage-prop{animation:pudding-launch .5s cubic-bezier(.15,.8,.2,1.2)}.play-field[data-scene="pochika"][data-action="left"].action-impact .puppet{animation:step-left .34s ease-out}.play-field[data-scene="pochika"][data-action="right"].action-impact .puppet{animation:step-right .34s ease-out}.play-field[data-scene="kon"][data-action="left"].action-impact .stage-prop{animation:tea-left .42s ease-out}.play-field[data-scene="kon"][data-action="right"].action-impact .stage-prop{animation:tea-right .42s ease-out}.play-field[data-scene="moko"][data-action="boom"].action-impact .world-depth{animation:thunder-crack .42s steps(2,end)}
.play-field.action-fail .stage-prop{animation:prop-fail .55s cubic-bezier(.3,.7,.4,1)}.play-field[data-scene="mike"].action-fail .stage-prop{animation:pudding-faceplant .72s ease-in}.play-field[data-scene="mike"][data-combo-band="hot"] .stage-prop{font-size:clamp(5rem,22vmin,10rem);filter:drop-shadow(0 9px 0 rgba(61,42,38,.13)) drop-shadow(0 0 18px #ffd742)}.play-field[data-scene="mike"][data-combo-band="max"] .stage-prop{font-size:clamp(6rem,27vmin,12rem);filter:drop-shadow(0 12px 0 rgba(61,42,38,.18)) drop-shadow(0 0 28px white)}
.play-field[data-scene="lala"][data-action="signal"].action-impact .hype-sky{opacity:1;animation:radio-ping .48s ease-out}.play-field[data-scene="lala"][data-action="mute"].action-impact .world-backdrop{animation:radio-cut .28s steps(2,end)}.play-field[data-scene="lala"][data-action="mute"].action-impact .beat-sun{animation:mute-blink .28s steps(2,end)}.play-field[data-scene="moko"][data-action="soft"].action-impact .stage-prop{animation:cloud-poof .38s ease-out}.play-field[data-scene="pochika"][data-combo-band="hot"] .world-floor{animation:floor-rush .55s linear infinite}.play-field[data-scene="kon"][data-combo-band="hot"] .stage-prop{filter:drop-shadow(0 0 20px #ffd742)}
@keyframes prop-impact{45%{transform:translateX(-50%) translateY(-42px) translateZ(90px) scale(1.22) rotate(-12deg)}}@keyframes prop-fail{45%{transform:translateX(-50%) translateY(20px) translateZ(10px) scale(1.35,.45) rotate(14deg)}}@keyframes pudding-launch{35%{transform:translateX(-50%) translateY(-160px) translateZ(130px) scale(.82,1.3) rotate(18deg)}70%{transform:translateX(-50%) translateY(-55px) translateZ(85px) scale(1.3,.72) rotate(-8deg)}}@keyframes pudding-faceplant{30%{transform:translateX(-50%) translateY(-210px) translateZ(150px) rotate(-18deg) scale(.85,1.2)}75%{transform:translateX(-50%) translateY(-95px) translateZ(190px) scale(1.5,.55) rotate(9deg);filter:blur(1px) drop-shadow(0 15px 0 rgba(61,42,38,.2))}}@keyframes step-left{45%{transform:translateX(-62%) translateY(-32px) translateZ(90px) rotate(-5deg) scale(.94,1.08)}}@keyframes step-right{45%{transform:translateX(-38%) translateY(-32px) translateZ(90px) rotate(5deg) scale(.94,1.08)}}@keyframes tea-left{50%{transform:translateX(-105%) translateY(-60px) translateZ(100px) rotate(-20deg)}}@keyframes tea-right{50%{transform:translateX(5%) translateY(-60px) translateZ(100px) rotate(20deg)}}@keyframes thunder-crack{35%{filter:brightness(2.2) contrast(1.4);transform:translateZ(85px) rotate(-1deg)}70%{filter:invert(.85);transform:translateZ(-25px) rotate(1deg)}}@keyframes radio-ping{from{transform:translateZ(-35px) scale(.2);opacity:1}to{transform:translateZ(85px) scale(1.65);opacity:0}}@keyframes radio-cut{50%{filter:grayscale(1) contrast(1.7);transform:translateZ(-110px) scale(1.14) translateX(8px)}}@keyframes mute-blink{50%{background:#5b5552;box-shadow:0 0 0 25px rgba(61,42,38,.22)}}@keyframes cloud-poof{45%{transform:translateX(-50%) translateY(-45px) translateZ(95px) scale(1.6,.65);filter:blur(2px) drop-shadow(0 12px 0 rgba(61,42,38,.12))}}
.paper-wing { position:absolute; top:-7%; bottom:-7%; width:12%; z-index:7; transform:translateZ(105px); background:repeating-linear-gradient(15deg,var(--ink) 0 5px,color-mix(in srgb,var(--stage) 75%,#fff) 5px 28px); opacity:.88; box-shadow:0 0 18px rgba(61,42,38,.3); }
.wing-left { left:-7%; transform:translateZ(105px) rotateY(13deg); }.wing-right { right:-7%; transform:translateZ(105px) rotateY(-13deg); }
.play-field.camera-hit .world-depth { animation:camera-pop .38s cubic-bezier(.2,.8,.2,1); }.play-field.camera-miss .world-depth { animation:camera-fall .42s ease; }
@keyframes camera-pop { 45%{transform:rotateX(0) translateZ(55px) rotateZ(-.5deg)} }
@keyframes camera-fall { 35%{transform:rotateX(4deg) translateZ(-28px) rotateZ(1.5deg)} 70%{transform:rotateX(0) translateZ(10px) rotateZ(-1deg)} }

.puppet { --fit:1; position:absolute; width:330px; height:470px; left:58%; bottom:1%; scale:var(--fit); transform:translateX(-50%) translateZ(62px); transform-origin:50% 100%; z-index:4; filter:drop-shadow(0 13px 3px rgba(61,42,38,.24)); }
.puppet>.fullbody{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transform-origin:50% 82%;animation:fullbody-poyon 1.05s ease-in-out infinite;will-change:transform}
.puppet[data-expression="perfect"]::after,.puppet[data-expression="maximum"]::after,.puppet[data-expression="miss"]::after{position:absolute;z-index:8;right:-4%;top:2%;font:900 48px/1 sans-serif;filter:drop-shadow(0 3px 0 white);animation:manga-pop .42s cubic-bezier(.2,.9,.2,1.35)}
.puppet[data-expression="perfect"]::after{content:"✨"}.puppet[data-expression="maximum"]::after{content:"‼️✨";right:-18%;font-size:58px}.puppet[data-expression="miss"]::after{content:"💦"}
@keyframes fullbody-poyon{0%,100%{transform:translateY(0) scale(1,1)}50%{transform:translateY(-7px) scale(1.018,.982)}}
@keyframes manga-pop{0%{transform:scale(.2) rotate(-18deg);opacity:0}100%{transform:scale(1) rotate(4deg);opacity:1}}
.part { position:absolute; pointer-events:none; user-select:none; transform-origin:50% 10%; }
.part:is(img),.body-piece{object-fit:contain}
.tail { width:34%; right:3%; top:48%; z-index:0; transform-origin:20% 60%; }
.body{inset:0;z-index:3;transform-origin:50% 72%}
.body-piece{position:absolute;pointer-events:none;user-select:none}
.legs{width:55%;left:22.5%;top:64%;z-index:1}
.torso{width:58%;left:21%;top:40%;z-index:3}
.arm{width:22%;top:42%;z-index:2}.arm-left{left:16%}.arm-right{right:16%}
.head { width:65%; left:17.5%; top:4%; z-index:5; transform-origin:50% 78%; }
.pochika .head{width:82%;left:9%;top:1%}.pochika .torso{width:62%;left:19%;top:36%}.pochika .legs{width:47%;left:26.5%;top:61%}.pochika .arm{width:24%;top:37%}.pochika .arm-left{left:14%}.pochika .arm-right{right:14%}.pochika .tail{width:29%}
.lala .head{width:57%;left:21.5%;top:-3%}.lala .torso{width:46%;left:27%;top:43%}.lala .legs{width:31%;left:34.5%;top:67%}.lala .arm{width:17%;top:44%}.lala .arm-left{left:22%}.lala .arm-right{right:21%}.lala .tail{width:20%;right:20%;top:61%}
.kon .head{width:68%;left:16%;top:2%}.kon .torso{width:68%;left:16%;top:39%}.kon .legs{width:45%;left:27.5%;top:58%}.kon .arm{width:22%;top:40%}.kon .arm-left{left:18%}.kon .arm-right{right:18%}.kon .tail{width:43%;right:-5%;top:43%}
.moko .head{width:76%;left:12%;top:8%}.moko .torso{width:73%;left:13.5%;top:39%}.moko .legs{width:57%;left:21.5%;top:59%}.moko .arm{width:31%;top:40%}.moko .arm-left{left:3%}.moko .arm-right{right:3%}.moko .tail{width:31%;right:7%;top:58%}
.pochika { width:355px; height:510px; }
.koro { width:345px; height:430px; }.koro .head{top:9%}.koro .tail{width:42%;right:-4%;top:52%}
.anzu { width:350px; height:440px; }.anzu .tail{width:46%;right:-7%;top:48%}
.kinako { width:325px; height:515px; }.kinako .head{width:58%;left:21%;top:2%}
.no-puppet { display:none; }

.puppet.hit { animation:hit-squish .36s cubic-bezier(.2,.8,.2,1.4); }.puppet.miss { animation:miss-shake .35s ease; filter:grayscale(.5); }

@keyframes hit-squish { 0%,100%{transform:translateX(-50%) translateZ(62px) scale(1)} 30%{transform:translateX(-50%) translateZ(75px) scale(1.14,.82)} 65%{transform:translateX(-50%) translateY(-26px) translateZ(95px) scale(.9,1.12)} }
@keyframes miss-shake { 20%{transform:translateX(-54%) translateZ(50px) rotateY(15deg) rotate(-4deg)} 40%{transform:translateX(-46%) translateZ(35px) rotateY(-13deg) rotate(4deg)} 70%{transform:translateX(-50%) translateZ(28px) rotateY(22deg)} }

.judgement { position:absolute; z-index:8; left:50%; top:12%; transform:translateX(-50%); font-family:"Mochiy Pop One"; font-size:clamp(1.4rem,6vw,2.7rem); color:var(--stage); white-space:nowrap; text-shadow:3px 3px 0 white; }.judgement[data-grade="miss"]{color:#827570}.combo { position:absolute; z-index:8; right:7%; top:25%; font-family:"Mochiy Pop One"; transform:rotate(8deg); }
.countdown { position:absolute; z-index:10; inset:24% 0 auto; text-align:center; font-family:"Mochiy Pop One"; font-size:clamp(3rem,16vw,7rem); color:var(--stage); -webkit-text-stroke:3px var(--ink); text-shadow:7px 7px 0 white; pointer-events:none; }.countdown.pop { animation:count-pop .5s ease-out; } @keyframes count-pop{from{transform:scale(.2) rotate(-8deg);opacity:0}60%{transform:scale(1.18)}to{transform:scale(1);opacity:1}}

.beat-target { position:absolute; z-index:9; left:15%; top:31%; bottom:auto; width:88px; height:88px; transform:translateX(-50%) translateZ(45px); border:5px solid white; outline:4px solid var(--ink); border-radius:50%; background:color-mix(in srgb,var(--stage) 18%,transparent); box-shadow:0 0 0 13px color-mix(in srgb,var(--stage) 25%,transparent); pointer-events:none; transition:transform .08s,background .08s,box-shadow .08s; }
.beat-target::before,.beat-target::after{content:"";position:absolute;background:var(--ink);opacity:.7}.beat-target::before{left:50%;top:-13px;width:4px;height:114px;transform:translateX(-50%)}.beat-target::after{top:50%;left:-13px;width:114px;height:4px;transform:translateY(-50%)}
.beat-target span{display:grid;place-items:center;position:absolute;inset:21px -8px auto;font:900 .7rem/1.1 "Mochiy Pop One";text-align:center;color:var(--ink);text-shadow:1px 1px white}
.beat-target.is-ready{animation:target-ready .48s ease-in-out infinite alternate}.beat-target.is-now{background:#ffd742;box-shadow:0 0 0 20px rgba(255,215,66,.46),0 0 42px #ffd742;transform:translateX(-50%) scale(1.12)}.beat-target.is-now span{background:#ffd742;font-size:1rem}
.beat-target.is-demo-hit{background:white;box-shadow:0 0 0 22px color-mix(in srgb,var(--stage) 52%,transparent),0 0 45px white;transform:translateX(-50%) scale(1.18)}
@keyframes target-ready{to{box-shadow:0 0 0 17px color-mix(in srgb,var(--stage) 35%,transparent)}}
.note-stream{position:absolute;inset:0;z-index:8;pointer-events:none}.note-stream::before{content:"あと少し → → → タイミング線";position:absolute;z-index:-1;left:10%;right:3%;top:calc(31% + 41px);height:8px;border:3px solid var(--ink);border-radius:10px;background:repeating-linear-gradient(90deg,#fff 0 16px,color-mix(in srgb,var(--stage) 38%,#fff) 16px 32px);font:900 .55rem/1 "Mochiy Pop One";color:var(--ink);text-align:right;padding:11px 5px 0}.note-stream i{position:absolute;width:26px;height:26px;border:4px solid var(--ink);border-radius:7px;background:var(--stage);box-shadow:3px 3px 0 white;will-change:left,top,transform}
.note-stream i.is-call{width:23px;height:23px;border-radius:50%;background:white;box-shadow:0 0 0 7px color-mix(in srgb,var(--stage) 55%,transparent)}.note-stream i::after{content:attr(data-symbol);position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);font:900 17px/1 "Mochiy Pop One";color:var(--ink);white-space:nowrap;text-shadow:1px 1px white}.note-stream i.action-boom{width:38px;height:38px;background:#ffd742}.note-stream i.action-mute{border-radius:50%;background:#c8c2bf}

/* V3 puppet: face + connected full body + tail. Face/body never move apart. */
.puppet>.body{inset:auto;width:60%;height:66%;left:20%;top:34%;z-index:3;object-fit:contain;transform-origin:50% 0}
.puppet>.head{width:72%;height:48%;left:14%;top:0;z-index:5;object-fit:contain;transform-origin:50% 84%}
.puppet>.tail{width:38%;height:38%;right:2%;top:49%;object-fit:contain}
.puppet.lala>.head{width:68%;height:53%;left:16%;top:-3%}
.puppet.lala>.body{width:54%;left:23%;top:38%}
.puppet.kinako>.body{width:58%;left:21%;top:31%}
.puppet.koro>.body,.puppet.anzu>.body{top:32%;height:70%}

/* ST1: a large pudding lands on a clear central plate; no decorative lane. */
.play-field[data-scene="mike"] .note-stream::before,
.play-field[data-scene="pochika"] .note-stream::before,
.play-field[data-scene="lala"] .note-stream::before,
.play-field[data-scene="kon"] .note-stream::before{display:none}
.play-field[data-scene="mike"] .beat-target{left:31%;top:59%;width:150px;height:64px;border-radius:50%;background:#fff7df;border-width:5px;box-shadow:inset 0 -12px 0 #e8d2ac,0 10px 0 rgba(61,42,38,.18),0 0 0 10px rgba(255,255,255,.55)}
.play-field[data-scene="mike"] .beat-target::before{content:"🍽️";left:50%;top:-45px;width:auto;height:auto;transform:translateX(-50%);background:none;font-size:56px;opacity:1}
.play-field[data-scene="mike"] .beat-target::after{display:none}
.play-field[data-scene="mike"] .beat-target span{inset:auto 0 -31px;font-size:.82rem}
.play-field[data-scene="mike"] .note-stream i{width:82px;height:82px;border:0;background:transparent;box-shadow:none}
.play-field[data-scene="mike"] .note-stream i::after{font-size:72px;text-shadow:0 6px 0 rgba(61,42,38,.2)}

/* ST2: two color-coded baskets receive matching falling socks. */
.sock-baskets{display:none;position:absolute;z-index:7;inset:0;pointer-events:none}
.play-field[data-scene="pochika"] .sock-baskets{display:block}
.sock-basket{position:absolute;top:61%;width:118px;height:76px;border:6px solid var(--ink);border-top-width:10px;border-radius:14px 14px 34px 34px;box-shadow:inset 0 -13px 0 rgba(61,42,38,.15),0 8px 0 rgba(61,42,38,.16)}
.sock-basket::before{content:"";position:absolute;left:12px;right:12px;top:-25px;height:22px;border:6px solid var(--ink);border-bottom:0;border-radius:22px 22px 0 0}
.sock-basket b{position:absolute;left:0;right:0;bottom:-29px;text-align:center;font:900 .76rem/1 "Mochiy Pop One";text-shadow:2px 2px white}
.basket-left{left:calc(22% - 59px);background:#66d8d0}.basket-right{left:calc(48% - 59px);background:#ffc83d}
.play-field[data-scene="pochika"] .beat-target{display:none}
.play-field[data-scene="pochika"] .note-stream i{width:72px;height:88px;border:6px solid var(--ink);border-radius:22px 22px 30px 16px;background:var(--note-color);box-shadow:inset 0 0 0 6px white,0 7px 0 rgba(61,42,38,.2)}
.play-field[data-scene="pochika"] .note-stream i::after{font-size:52px;text-shadow:none}
.play-field[data-scene="pochika"].action-impact[data-action="left"] .basket-left::after,
.play-field[data-scene="pochika"].action-impact[data-action="right"] .basket-right::after{content:"🧦 成功！";position:absolute;z-index:2;left:50%;top:7px;transform:translateX(-50%);font:900 1.05rem/1 "Mochiy Pop One";white-space:nowrap;animation:sock-land .52s cubic-bezier(.2,.9,.2,1.3)}
@keyframes sock-land{from{transform:translate(-50%,-110px) rotate(20deg);opacity:.2}to{transform:translate(-50%,0);opacity:1}}

/* ST3: right-side carrots arc into one large, color-coded lightning target. */
.play-field[data-scene="lala"] .beat-target{display:none}
.play-field[data-scene="lala"] .note-stream i{width:78px;height:104px;border:6px solid var(--ink);border-radius:50% 50% 38% 38%;background:var(--note-color);box-shadow:inset 0 0 0 5px white,0 8px 0 rgba(61,42,38,.2)}
.play-field[data-scene="lala"] .note-stream i::after{font-size:60px}
.play-field[data-scene="lala"] .note-stream i.action-signal{--note-color:#42d4cf!important;background:#42d4cf}.play-field[data-scene="lala"] .note-stream i.action-mute{--note-color:#ffc83d!important;background:#ffc83d}
.carrot-target{width:174px;height:174px;border:8px solid #fff;border-radius:50%;background:conic-gradient(from 0deg,#42d4cf 0 50%,#ffc83d 50% 100%);box-shadow:0 8px 0 #4b302b,0 0 0 6px #4b302b,0 0 0 22px rgba(255,255,255,.6),0 0 38px #ffd742;transition:transform .08s}.carrot-target>i{position:absolute;inset:14px;border:7px dashed white;border-radius:50%;background:rgba(255,255,255,.4)}.carrot-target>strong{position:absolute;z-index:2;inset:43px 0 auto;text-align:center;font:1000 20px/1.05 "Mochiy Pop One";color:#3d2a26;text-shadow:0 2px white}.carrot-target>small{position:absolute;z-index:2;left:-36px;right:-36px;bottom:-43px;display:flex;justify-content:space-between}.carrot-target em{min-width:72px;padding:7px 9px;border:4px solid #4b302b;border-radius:15px;background:white;font:900 13px/1.2 "Mochiy Pop One";color:#3d2a26;font-style:normal}.carrot-target em:first-child{box-shadow:0 5px 0 #42d4cf}.carrot-target em:last-child{box-shadow:0 5px 0 #ffc83d}.carrot-target.is-now{box-shadow:0 8px 0 #4b302b,0 0 0 6px #4b302b,0 0 0 30px rgba(255,255,255,.85),0 0 62px #ffd742}
.play-field[data-scene="lala"].action-impact .carrot-target>strong{opacity:.14}
.play-field[data-scene="lala"].action-impact::after{content:"⚡🥕⚡";position:absolute;z-index:13;left:35%;top:54%;font-size:74px;filter:brightness(.62) sepia(1) saturate(4);animation:carrot-zap-fall .72s ease-in forwards;pointer-events:none}
@keyframes carrot-zap-fall{0%{transform:translate(-50%,-50%) scale(.7);filter:brightness(2) drop-shadow(0 0 18px #fff)}32%{transform:translate(-50%,-50%) scale(1.25) rotate(-8deg);filter:brightness(.55) sepia(1) saturate(5)}100%{transform:translate(-50%,190px) scale(.72) rotate(75deg);opacity:0;filter:brightness(.25) sepia(1)}}
.phase-banner{position:absolute;z-index:11;left:50%;top:8%;transform:translateX(-50%) scale(.8);padding:10px 22px;border:4px solid var(--ink);border-radius:30px;background:white;font-family:"Mochiy Pop One";font-size:clamp(1rem,4vw,1.5rem);white-space:nowrap;opacity:0;pointer-events:none}.phase-banner.is-example,.phase-banner.is-turn,.phase-banner.is-controls{opacity:1;transform:translateX(-50%) scale(1);animation:phase-pop .35s ease-out}.phase-banner.is-example{background:#dff7ff}.phase-banner.is-turn{background:#ffd742}.phase-banner.is-controls{top:38%;background:white;box-shadow:7px 7px 0 var(--stage)}@keyframes phase-pop{from{transform:translateX(-50%) scale(.35) rotate(-5deg)}70%{transform:translateX(-50%) scale(1.1)}to{transform:translateX(-50%) scale(1)}}
.phase-banner.is-ready-gap{opacity:1;transform:translateX(-50%) scale(1);background:#fff;border-style:dashed;animation:ready-gap .55s ease-in-out infinite alternate}@keyframes ready-gap{to{transform:translateX(-50%) scale(1.06);box-shadow:0 0 0 8px color-mix(in srgb,#ffd742 45%,transparent)}}
.demo-cue{position:absolute;z-index:14;left:50%;bottom:22%;display:grid;grid-template-columns:auto auto;align-items:center;gap:0 10px;min-width:190px;padding:8px 18px;border:4px solid var(--ink);border-radius:22px;background:#fff;box-shadow:6px 7px 0 var(--stage);opacity:0;transform:translate(-50%,20px) scale(.7);pointer-events:none}.demo-cue small{grid-column:1;font-weight:900;color:var(--stage)}.demo-cue strong{grid-column:1;font:1.35rem/1.1 "Mochiy Pop One";white-space:nowrap}.demo-cue i{grid-column:2;grid-row:1/3;font-size:2.2rem;font-style:normal}.demo-cue.is-show{opacity:1;transform:translate(-50%,0) scale(1);animation:demo-cue-pop .22s cubic-bezier(.2,.9,.3,1.4)}@keyframes demo-cue-pop{from{transform:translate(-50%,12px) scale(.55)}to{transform:translate(-50%,0) scale(1)}}
.demo-cue{left:48%;top:15%;bottom:auto}
.play-field.action-impact .beat-target{background:#bfff5a;box-shadow:0 0 0 19px rgba(191,255,90,.5),0 0 38px #bfff5a}.play-field.action-fail .beat-target{background:#ff665e;box-shadow:0 0 0 19px rgba(255,80,74,.42),0 0 38px #ff504a}
.mode-callout{position:absolute;z-index:9;left:50%;top:31%;width:max-content;max-width:92%;transform:translate(-50%,-50%) scale(.2) rotate(-9deg);opacity:0;pointer-events:none;font-family:"Mochiy Pop One";font-size:clamp(2rem,10vw,5.5rem);color:#ffd742;-webkit-text-stroke:clamp(2px,.7vw,5px) var(--ink);text-shadow:7px 9px 0 white}.mode-callout.is-show{animation:mode-up .9s cubic-bezier(.15,.8,.2,1)}.mode-callout.is-down{color:#a9a19d;animation:mode-down .9s ease-out}@keyframes mode-up{0%{opacity:0;transform:translate(-50%,-50%) scale(.15) rotate(-12deg)}28%,72%{opacity:1;transform:translate(-50%,-50%) scale(1.12) rotate(3deg)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.45) rotate(-2deg)}}@keyframes mode-down{0%{opacity:1;transform:translate(-50%,-50%) scale(1.2) rotate(4deg)}55%{opacity:1;transform:translate(-50%,20%) scale(.82,.55) rotate(-7deg)}100%{opacity:0;transform:translate(-50%,90%) scale(.4,.2) rotate(12deg)}}
.hype-badge{position:absolute;z-index:12;left:14px;bottom:14px;display:grid;padding:7px 11px;border:3px solid var(--ink);border-radius:13px;background:rgba(255,255,255,.9);box-shadow:3px 3px 0 var(--ink);transform:rotate(-2deg);transition:background .25s,transform .25s}.hype-badge small{font-size:.48rem;letter-spacing:.12em}.hype-badge strong{font-family:"Mochiy Pop One";font-size:.75rem}.play-field[data-hype="groove"] .hype-badge{background:#ffd742;transform:rotate(2deg) scale(1.05)}.play-field[data-hype="fever"] .hype-badge{color:white;background:var(--stage);transform:rotate(-3deg) scale(1.12);animation:badge-beat .45s ease-in-out infinite alternate}
.rush-meter{position:absolute;z-index:12;right:14px;bottom:16px;width:min(34vw,150px);height:22px;border:3px solid var(--ink);border-radius:20px;background:white;overflow:hidden;box-shadow:3px 3px 0 var(--ink);transform:rotate(1deg)}.rush-meter span{position:absolute;z-index:2;inset:1px 7px auto;font:900 .55rem/1.4 "Mochiy Pop One";letter-spacing:.12em;color:var(--ink);text-shadow:1px 1px white}.rush-meter i{display:block;width:var(--rush,0%);height:100%;background:linear-gradient(90deg,var(--stage),#ffd742 72%,white);transition:width .18s cubic-bezier(.2,.8,.2,1)}.play-field[data-hype="fever"] .rush-meter{animation:rush-pulse .32s ease-in-out infinite alternate;box-shadow:3px 3px 0 var(--ink),0 0 22px #ffd742}
.mechanic-status{position:absolute;z-index:12;right:14px;top:21%;display:grid;min-width:116px;padding:7px 10px;border:3px solid var(--ink);border-radius:14px;background:rgba(255,255,255,.9);box-shadow:3px 3px 0 var(--ink);text-align:center;transform:rotate(2deg);transition:transform .2s}.mechanic-status small{font:800 .48rem/1.2 "Mochiy Pop One";letter-spacing:.08em;color:var(--stage)}.mechanic-status strong{font-family:"Mochiy Pop One";font-size:.78rem}.play-field.action-impact .mechanic-status{transform:rotate(-2deg) scale(1.08)}.play-field[data-scene="moko"][data-action="boom"].action-impact .mechanic-status{background:#20274c;color:white;box-shadow:3px 3px 0 var(--ink),0 0 22px #ffd742}
.control-deck{flex:0 0 auto;display:grid;gap:10px;margin:0 18px max(14px,env(safe-area-inset-bottom))}.control-deck[data-mode="single"]{grid-template-columns:1fr}.control-deck[data-mode="choice"]{grid-template-columns:1fr 1fr}.control-deck[data-mode="single"] .choice-button,.control-deck[data-mode="choice"] .tap-button{display:none}.tap-button { margin:0; min-height:72px; border:4px solid var(--ink); border-radius:24px; background:var(--stage); color:white; box-shadow:0 7px 0 var(--ink); cursor:pointer; display:flex; flex-direction:column; align-items:center; justify-content:center; touch-action:manipulation; }.tap-button:active{transform:translateY(5px);box-shadow:0 2px 0 var(--ink)}.tap-button span{font-family:"Mochiy Pop One";font-size:1.7rem;line-height:1}.tap-button small{font-size:.68rem;margin-top:5px}
.choice-button{position:relative;min-height:88px;border:5px solid var(--ink);color:var(--ink);box-shadow:0 8px 0 var(--ink);font-family:"Mochiy Pop One";font-size:clamp(1rem,4vw,1.45rem);cursor:pointer;touch-action:manipulation;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:8px 16px;overflow:hidden;isolation:isolate}.choice-button::after{content:"";position:absolute;z-index:-1;inset:0;opacity:.38;background:repeating-linear-gradient(115deg,transparent 0 16px,white 17px 20px)}.choice-left{border-radius:30px 12px 12px 30px;background:#66d8d0;transform:rotate(-1deg)}.choice-right{border-radius:12px 30px 30px 12px;background:#ffc83d;transform:rotate(1deg)}.choice-button b{font:900 clamp(2.2rem,8vw,4rem)/.8 "Mochiy Pop One";text-shadow:3px 3px 0 white}.choice-button span{font-size:clamp(1rem,4vw,1.45rem);text-align:center;text-shadow:1px 1px 0 white}.choice-button:active,.choice-button.is-now{transform:translateY(6px) scale(.97);box-shadow:0 2px 0 var(--ink);filter:saturate(1.35) brightness(1.08)}.choice-button.is-now{outline:7px solid white;z-index:5}.choice-button kbd{display:grid;place-items:center;width:30px;height:30px;border:3px solid var(--ink);border-radius:8px;background:white;font:800 .72rem monospace;box-shadow:2px 2px 0 var(--ink)}
.control-button.is-tutorial{animation:control-tutorial .4s cubic-bezier(.15,.8,.2,1.4);filter:brightness(1.08);box-shadow:0 2px 0 var(--ink),0 0 0 9px color-mix(in srgb,#ffd742 60%,transparent)}@keyframes control-tutorial{45%{transform:translateY(5px) scale(.93)}70%{transform:translateY(-5px) scale(1.05)}}
.control-button.is-demo{position:relative;z-index:20;opacity:1!important;filter:saturate(1.4) brightness(1.08)!important;animation:demo-button .28s cubic-bezier(.2,.85,.25,1.45);box-shadow:0 3px 0 var(--ink),0 0 0 9px #fff,0 0 0 16px #ffd742!important}.control-button.is-demo::after{content:"☝ ここ！";position:absolute;left:50%;top:-45px;transform:translateX(-50%);padding:4px 10px;border:3px solid var(--ink);border-radius:14px;background:#ffd742;color:var(--ink);font:900 .78rem/1.1 "Mochiy Pop One";white-space:nowrap}@keyframes demo-button{0%{transform:translateY(0) scale(.9)}55%{transform:translateY(5px) scale(1.06)}100%{transform:translateY(3px) scale(1)}}
.control-button.is-demo-ready{position:relative;z-index:19;opacity:1!important;filter:saturate(1.25)!important;box-shadow:0 7px 0 var(--ink),0 0 0 8px color-mix(in srgb,#ffd742 75%,transparent)!important}
.tap-button.is-holding { transform:translateY(5px) scaleX(.96); box-shadow:0 2px 0 var(--ink); background:#f19a42; }
.tap-button.is-now { background:#ffd742; color:var(--ink); box-shadow:0 7px 0 var(--ink),0 0 0 7px color-mix(in srgb,#ffd742 42%,transparent); }
.play-field[data-phase="call"] + .control-deck{filter:saturate(.68);opacity:.84}.play-field[data-phase="call"] .beat-target{background:rgba(255,255,255,.68);border-style:dashed}.play-field[data-phase="response"] .beat-target{border-style:solid}
.play-field[data-section="サビ"] .world-depth{filter:saturate(1.16) brightness(1.05)}.play-field[data-section="サビ"] .beat-sun{box-shadow:0 0 0 18px color-mix(in srgb,#ffd742 32%,transparent),0 0 35px #ffd742}.play-field[data-section="フィナーレ"] .paper-wing{width:18%;opacity:1}.play-field[data-section="フィナーレ"] .world-floor{filter:saturate(1.35)}
.play-field::after{content:"";position:absolute;z-index:6;inset:0;pointer-events:none;opacity:0;transition:opacity .5s;background-image:radial-gradient(circle,#ffd742 0 5px,transparent 6px),radial-gradient(circle,var(--stage) 0 4px,transparent 5px);background-size:74px 81px,93px 67px;background-position:5px 8px,37px 25px}
.play-field[data-hype="groove"] .world-backdrop{filter:saturate(1.08) contrast(1.06);animation:groove-breathe 1.2s ease-in-out infinite alternate}.play-field[data-hype="groove"] .hype-sky{opacity:.45;transform:translateZ(-20px) rotate(4deg)}.play-field[data-hype="groove"] .hype-crowd{opacity:.82;transform:translateZ(10px) translateY(25px)}.play-field[data-hype="groove"] .hype-crowd i{animation:crowd-bop .8s ease-in-out infinite alternate}.play-field[data-hype="groove"] .paper-wing{opacity:1}.play-field[data-hype="groove"]::after{opacity:.22}
.play-field[data-hype="fever"] .world-backdrop{filter:saturate(1.28) contrast(1.1);animation:fever-world .6s steps(2,end) infinite}.play-field[data-hype="fever"] .hype-sky{opacity:.9;transform:translateZ(4px) rotate(-5deg) scale(1.18);animation:sky-spin 3s linear infinite}.play-field[data-hype="fever"] .hype-crowd{opacity:1;transform:translateZ(34px) translateY(8px)}.play-field[data-hype="fever"] .hype-crowd i{animation:crowd-fever .32s ease-in-out infinite alternate}.play-field[data-hype="fever"] .hype-crowd i:nth-child(even){animation-delay:-.16s}.play-field[data-hype="fever"] .world-floor{background:repeating-linear-gradient(90deg,#ffd742 0 16px,var(--stage) 16px 32px,#fff 32px 48px);animation:floor-rush .45s linear infinite}.play-field[data-hype="fever"] .paper-wing{width:18%;opacity:1;filter:hue-rotate(35deg)}.play-field[data-hype="fever"]::after{opacity:.58;animation:confetti-fall .8s linear infinite}
.play-field[data-hype="maximum"] .world-backdrop{filter:saturate(1.55) contrast(1.18) brightness(1.08);animation:maximum-world .28s steps(2,end) infinite}.play-field[data-hype="maximum"] .hype-sky{opacity:1;transform:translateZ(25px) scale(1.35);animation:sky-spin 1.5s linear infinite}.play-field[data-hype="maximum"] .hype-crowd{opacity:1;transform:translateZ(55px) translateY(-4px)}.play-field[data-hype="maximum"] .hype-crowd i{animation:crowd-fever .2s ease-in-out infinite alternate}.play-field[data-hype="maximum"] .world-floor{background:repeating-linear-gradient(75deg,#fff 0 12px,#ffd742 12px 24px,var(--stage) 24px 36px,var(--ink) 36px 40px);animation:floor-rush .22s linear infinite}.play-field[data-hype="maximum"] .paper-wing{width:23%;opacity:1;filter:hue-rotate(80deg) saturate(1.5)}.play-field[data-hype="maximum"]::after{opacity:.82;animation:confetti-fall .35s linear infinite}.play-field[data-hype="maximum"] .hype-badge{color:white;background:var(--ink);transform:rotate(4deg) scale(1.18);box-shadow:4px 4px 0 #ffd742}.play-field[data-hype="maximum"] .rush-meter{animation:rush-pulse .2s ease-in-out infinite alternate;box-shadow:3px 3px 0 var(--ink),0 0 32px white}
@keyframes groove-breathe{to{transform:translateZ(-75px) scale(1.1)}}@keyframes fever-world{50%{transform:translateZ(-65px) scale(1.08) rotate(.7deg)}}@keyframes floor-rush{to{background-position:48px 0}}@keyframes confetti-fall{to{background-position:5px 89px,37px 92px}}@keyframes crowd-bop{to{transform:translateY(-10px) rotate(3deg)}}@keyframes crowd-fever{to{transform:translateY(-24px) scaleY(1.08) rotate(-5deg)}}@keyframes sky-spin{to{rotate:360deg}}@keyframes badge-beat{to{scale:1.18}} 
@keyframes maximum-world{50%{transform:translateZ(-35px) scale(1.12) rotate(-.8deg)}}
.play-field.hype-break{animation:break-flash .7s steps(2,end)}.play-field.hype-break .world-depth{animation:stage-collapse .8s cubic-bezier(.3,.8,.5,1)}.play-field.hype-break .hype-crowd{animation:crowd-drop .75s ease-in forwards}.play-field.hype-break .rush-meter{animation:meter-crack .55s ease-out}.play-field.hype-break .judgement{color:#6c625f;font-size:clamp(1.8rem,7vw,3.1rem);transform:translateX(-50%) rotate(-5deg)}
@keyframes rush-pulse{to{transform:rotate(-1deg) scale(1.06)}}@keyframes break-flash{25%{background:#fff}50%{background:#6c625f}}@keyframes stage-collapse{35%{filter:grayscale(1) contrast(1.5);transform:translateZ(-80px) rotateX(7deg) rotate(2deg)}70%{filter:grayscale(.8);transform:translateY(35px) translateZ(-120px) rotateX(-4deg) rotate(-1deg)}}@keyframes crowd-drop{to{opacity:0;transform:translateY(160px) rotate(12deg)}}@keyframes meter-crack{35%{transform:rotate(12deg) scale(1.18)}to{transform:translateY(55px) rotate(-9deg);opacity:0}}
.play-field[data-scene="bean"] .world-backdrop { filter:saturate(.7) contrast(1.16) sepia(.12); }.play-field[data-scene="bean"] .stage-prop{font-size:5.6rem;left:73%;bottom:7%;transform:translateX(-50%) translateZ(70px);filter:drop-shadow(0 9px 0 rgba(61,42,38,.22))}
.play-field[data-scene="bean"][data-action="left"].action-impact .stage-prop{animation:plate-spin-left .46s cubic-bezier(.2,.8,.2,1)}
.play-field[data-scene="bean"][data-action="right"].action-impact .stage-prop{animation:plate-spin-right .46s cubic-bezier(.2,.8,.2,1)}
@keyframes plate-spin-left{to{transform:translateX(-50%) translateZ(110px) rotate(-360deg) scale(1.16)}}
@keyframes plate-spin-right{to{transform:translateX(-50%) translateZ(110px) rotate(360deg) scale(1.16)}}

.result-dialog { width:min(460px,90vw); border:0; padding:0; border-radius:34px; background:transparent; }.result-dialog::backdrop{background:rgba(61,42,38,.62);backdrop-filter:blur(5px)}.result-card{padding:28px;text-align:center;border:5px solid var(--ink);border-radius:34px;background:var(--paper);box-shadow:0 12px 0 var(--ink)}.result-comment{font-family:"Mochiy Pop One"}.result-rank{font-family:"Mochiy Pop One";font-size:7rem;line-height:1;color:var(--stage);-webkit-text-stroke:3px var(--ink);text-shadow:7px 7px 0 #ffd742}.result-score{font-size:1.25rem}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:22px 0}.result-stats span{font-size:.65rem}.result-stats strong{display:block;font-family:"Mochiy Pop One";font-size:1.4rem}.result-button{width:100%;padding:15px;border:3px solid var(--ink);border-radius:18px;background:var(--stage);color:white;font-family:"Mochiy Pop One";cursor:pointer}
.result-rates{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:18px 0}.result-rates span{display:grid;align-content:center;min-height:66px;padding:7px 3px;border:2px solid var(--ink);border-radius:14px;background:white;font-size:.65rem}.result-rates strong{display:block;font-family:"Mochiy Pop One";font-size:1.15rem;color:var(--stage)}.result-rates b{font:inherit}
.result-actions{display:grid;grid-template-columns:1.15fr 1fr;gap:9px}.result-back{background:white;color:var(--ink)}.result-retry{box-shadow:0 5px 0 var(--ink)}
.settings-dialog{width:min(430px,90vw);border:0;padding:0;border-radius:30px;background:transparent}.settings-dialog::backdrop{background:rgba(61,42,38,.55);backdrop-filter:blur(5px)}.settings-card{padding:28px;border:5px solid var(--ink);border-radius:30px;background:var(--paper);box-shadow:0 10px 0 var(--ink)}.settings-card h2{margin:5px 0;font-family:"Mochiy Pop One"}.settings-card p:not(.eyebrow){line-height:1.6;font-size:.85rem}.settings-card output{display:block;margin:22px 0 8px;text-align:center;font-family:"Mochiy Pop One";font-size:2rem;color:var(--stage)}.settings-card input{width:100%;accent-color:var(--stage)}.latency-scale{display:flex;justify-content:space-between;margin:4px 0 24px;font-size:.7rem;color:#826b63}

@media (max-width: 720px) {
  .hero { min-height:690px;align-items:start; }
  .hero-copy { width:72%;padding:28px 22px 12px; }.hero-copy h1{font-size:3.6rem}.hero-lead{font-size:.95rem}
  .hero-art-wrap::after{background:linear-gradient(180deg,rgba(255,247,230,.95) 0 22%,rgba(255,247,230,.45) 38%,transparent 62%)}.hero-art{object-position:58% center}
  .burst-one{left:auto;right:5%;top:5%}.burst-two{right:5%;bottom:6%}
  .stage-card { grid-template-columns:54px 72px 1fr 20px; min-height:104px; padding:8px 10px; border-radius:21px; }.stage-card img{width:68px;height:88px}.card-number{font-size:.78rem}.card-copy em{display:none}.card-arrow{font-size:2rem}
  .puppet{--fit:.9;bottom:-2%}.paper-wing{width:16%}.world-floor{height:42%}.beat-target{scale:.9;transform-origin:50% 100%}
}

@media (max-width: 350px) { .puppet{--fit:.78}.beat-target{scale:.82}.tap-button{min-height:64px} }

@media (orientation:landscape) and (min-height:501px) and (max-height:700px) {
  .game-topbar{padding:7px 14px 5px}.progress-track{height:7px;margin:0 14px}
  .puppet{--fit:.64;left:70%;bottom:-4%}.pochika{--fit:.58}.paper-wing{width:9%}.world-floor{height:52%}
  .phase-banner{left:40%;top:5%;max-width:58%;padding:7px 16px;font-size:.9rem}
  .demo-cue{left:38%;top:auto;bottom:5%;min-width:165px;padding:6px 13px}.demo-cue strong{font-size:1rem}.demo-cue i{font-size:1.6rem}
  .beat-target{left:14%;top:36%;width:76px;height:76px}.beat-target::before{top:-11px;height:92px}.beat-target::after{left:-11px;width:92px}.beat-target span{inset:17px -7px auto;font-size:.62rem}
  .note-stream::before{left:13%;right:42%;top:calc(36% + 34px);height:7px;font-size:.48rem;padding-top:10px;overflow:hidden;white-space:nowrap}
  .mechanic-status{right:1.5%;top:4%}.judgement{left:39%;top:40%}.combo{right:4%;top:58%}
  .control-deck{margin-bottom:10px}.choice-button,.tap-button{min-height:70px}
}

@media (orientation:landscape) and (max-height:500px) {
  .game-topbar{grid-template-columns:38px 1fr auto;gap:9px;padding:5px 12px 4px}.game-topbar .round-button{width:34px;height:34px;font-size:1rem}.stage-label strong{font-size:.88rem}.score-box strong{font-size:.92rem}.progress-track{height:6px;margin:0 12px}
  .puppet{--fit:.48;left:68%;bottom:-5%}.pochika{--fit:.44}.paper-wing{width:8%}.world-floor{height:56%}
  .phase-banner{left:42%;top:4%;max-width:62%;overflow:hidden;text-overflow:ellipsis;padding:6px 13px;border-width:3px;font-size:.82rem}
  .demo-cue{left:39%;top:auto;bottom:4%;min-width:155px;padding:5px 11px;border-width:3px;box-shadow:4px 4px 0 var(--stage)}.demo-cue small{font-size:.62rem}.demo-cue strong{font-size:.92rem}.demo-cue i{font-size:1.45rem}
  .beat-target{left:14%;top:39%;width:70px;height:70px}.beat-target::before{top:-10px;height:86px}.beat-target::after{left:-10px;width:86px}.beat-target span{inset:15px -6px auto;font-size:.58rem}
  .note-stream::before{left:13%;right:42%;top:calc(39% + 31px);height:6px;font-size:.46rem;padding-top:9px;overflow:hidden;white-space:nowrap}
  .mechanic-status{right:1%;top:4%;min-width:100px;padding:4px 7px}.mechanic-status strong{font-size:.65rem}.mechanic-status small{font-size:.42rem}
  .hype-badge{left:10px;bottom:8px;padding:4px 7px}.rush-meter{right:10px;bottom:9px;height:18px}
  .judgement{top:42%;font-size:1.45rem}.combo{top:58%}
  .control-deck{gap:8px;margin:0 18px 10px}.choice-button,.tap-button{min-height:68px}
  .result-card{padding:12px 22px;border-width:4px;border-radius:25px;box-shadow:0 7px 0 var(--ink)}.result-comment{margin:0 0 2px;font-size:.72rem}.result-rank{font-size:4rem;line-height:.9;text-shadow:4px 4px 0 #ffd742}.result-score{margin:2px 0 7px;font-size:.92rem}.result-rates{gap:6px;margin:7px 0}.result-rates span{min-height:48px;padding:3px;font-size:.56rem}.result-rates strong{font-size:.88rem}.result-stats{gap:6px;margin:7px 0}.result-stats strong{font-size:1rem}.result-actions{gap:7px}.result-button{min-height:46px;padding:9px;font-size:.78rem}
}

@media (prefers-reduced-motion: reduce) { *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important} }
.note-stream::before{content:"タイミング線 ← ← ← ここへ来る"}

/* Fixed 16:9 game canvas. Devices scale the whole composition, never its parts. */
body:has(.game-screen:not(.is-hidden)){width:100vw;height:100vh;overflow:hidden;background:#241d1b}
.game-screen:not(.is-hidden){position:fixed;left:50%;top:50%;width:1024px;height:576px;min-height:576px;transform:translate(-50%,-50%) scale(var(--game-scale,1));transform-origin:center;box-shadow:0 0 0 2px rgba(255,255,255,.22),0 20px 80px #000;overflow:hidden}
.game-screen .game-topbar{grid-template-columns:50px 1fr auto;gap:12px;padding:10px 16px 7px}
.game-screen .progress-track{height:8px;margin:0 16px}
.game-screen .control-deck{gap:10px;margin:0 18px 12px}
.game-screen .choice-button,.game-screen .tap-button{min-height:76px}
.game-screen .puppet{--fit:.72;left:68%;bottom:-8%}
.game-screen .puppet.pochika{--fit:.68}
.game-screen .puppet>.head{width:66%;height:44%;left:17%;top:3%}
.game-screen .puppet>.body{width:52%;height:64%;left:24%;top:37%}
.game-screen .puppet>.tail{width:34%;height:34%;right:7%;top:52%}
.game-screen .puppet.lala>.head{width:61%;height:49%;left:19.5%;top:-1%}
.game-screen .puppet.lala>.body{width:47%;left:26.5%;top:39%}
.game-screen .puppet.moko>.head{width:70%;left:15%;top:4%}
.game-screen .puppet.moko>.body{width:57%;left:21.5%;top:38%}
.game-screen .puppet.koro>.body,.game-screen .puppet.anzu>.body{top:36%;height:66%}
.game-screen .puppet.anzu>.head{top:8%}
.game-screen .puppet.kinako>.head{top:10%}
.game-screen .play-field[data-scene="mike"] .stage-prop,
.game-screen .play-field[data-scene="pochika"] .stage-prop,
.game-screen .play-field[data-scene="lala"] .stage-prop{display:none}
.game-screen .phase-banner{left:40%;top:5%;max-width:58%;padding:7px 16px;font-size:.9rem}
.game-screen .demo-cue{left:39%;top:auto;bottom:5%;min-width:165px;padding:6px 13px}
.game-screen .mechanic-status{right:1.5%;top:4%}
.game-screen .judgement{left:39%;top:40%}
.game-screen .combo{right:4%;top:58%}
@media (orientation:portrait){body:has(.game-screen:not(.is-hidden))::after{content:"↻ スマホを横向きにしてね";position:fixed;z-index:9999;left:50%;bottom:8%;transform:translateX(-50%);padding:14px 22px;border:4px solid #3d2a26;border-radius:24px;background:#ffd742;color:#3d2a26;font:900 1rem/1 "Mochiy Pop One";white-space:nowrap;box-shadow:5px 5px 0 #fff}}

/* Canonical game layout: one fixed 1024 x 576 composition, uniformly scaled. */
.game-screen:not(.is-hidden){aspect-ratio:16/9}
.game-screen .play-field{container-type:size}

/* Large V3 puppets. Each face overlaps its connected body at the neck. */
.game-screen .puppet{--fit:.94;left:72%;bottom:-2%;width:330px;height:470px;max-height:calc(100% - 30px)}
.game-screen .puppet.mike{--neck-y:35%;--head-anchor-y:-86.43%;bottom:-5%}
.game-screen .puppet.pochika{--neck-y:34%;--head-anchor-y:-87.34%;--fit:.90;width:355px;height:510px;bottom:-5%}
.game-screen .puppet.lala{--neck-y:39%;--head-anchor-y:-88.68%}
.game-screen .puppet.kon{--neck-y:34%;--head-anchor-y:-85%}
.game-screen .puppet.moko{--neck-y:35%;--head-anchor-y:-85%}
.game-screen .puppet.koro{--neck-y:34%;--head-anchor-y:-81%;--fit:1.12;width:345px;height:430px;bottom:-2%}
.game-screen .puppet.anzu{--neck-y:35%;--head-anchor-y:-82.31%;--fit:1.12;width:350px;height:440px;bottom:-3%}
.game-screen .puppet.kinako{--neck-y:34%;--head-anchor-y:-81.67%;--fit:1.08;width:325px;height:515px;bottom:-9%}

.game-screen .puppet>.head,
.game-screen .puppet>.body,
.game-screen .puppet>.tail{object-fit:contain}
.game-screen .puppet>.head{
  left:50%!important;top:var(--neck-y)!important;object-position:center center;
  transform:translate(-50%,var(--head-anchor-y)) translate3d(var(--spring-x,0),var(--spring-y,0),0) rotate(var(--spring-angle,0deg)) scale(var(--spring-scale-x,1),var(--spring-scale-y,1))
}
.game-screen .puppet>.body{
  left:50%!important;top:var(--neck-y)!important;object-position:center top;
  transform:translateX(-50%) translate3d(var(--spring-x,0),var(--spring-y,0),0) rotate(var(--spring-angle,0deg)) scale(var(--spring-scale-x,1),var(--spring-scale-y,1))
}
.game-screen .puppet>.tail{
  transform:translate3d(var(--spring-x,0),var(--spring-y,0),0) rotate(var(--spring-angle,0deg)) scale(var(--spring-scale-x,1),var(--spring-scale-y,1))
}

.game-screen .puppet.mike>.head{width:68%;height:41.65%}
.game-screen .puppet.mike>.body{width:61%;height:66%;left:19.5%;top:35%}
.game-screen .puppet.mike>.tail{width:39%;height:35%;right:1%;top:53%}

.game-screen .puppet.pochika>.head{width:68%;height:39.95%}
.game-screen .puppet.pochika>.body{width:59%;height:66%;left:20.5%;top:34%}
.game-screen .puppet.pochika>.tail{width:35%;height:39%;right:2%;top:52%}

.game-screen .puppet.lala>.head{width:54.4%;height:48.45%}
.game-screen .puppet.lala>.body{width:55%;height:62%;left:22.5%;top:39%}
.game-screen .puppet.lala>.tail{width:24%;height:27%;right:12%;top:60%}

.game-screen .puppet.kon>.head{width:63.75%;height:42.5%}
.game-screen .puppet.kon>.body{width:64%;height:66%;left:18%;top:34%}
.game-screen .puppet.kon>.tail{width:48%;height:49%;right:-7%;top:45%}

.game-screen .puppet.moko>.head{width:69.7%;height:42.5%}
.game-screen .puppet.moko>.body{width:67%;height:66%;left:16.5%;top:35%}
.game-screen .puppet.moko>.tail{width:38%;height:36%;right:0;top:57%}

.game-screen .puppet.koro>.head{width:66.3%;height:42.5%}
.game-screen .puppet.koro>.body{width:66%;height:68%;left:17%;top:34%}
.game-screen .puppet.koro>.tail{width:50%;height:45%;right:-9%;top:48%}

.game-screen .puppet.anzu>.head{width:66.3%;height:44.2%}
.game-screen .puppet.anzu>.body{width:67%;height:68%;left:16.5%;top:35%}
.game-screen .puppet.anzu>.tail{width:50%;height:52%;right:-10%;top:44%}

.game-screen .puppet.kinako>.head{width:62.05%;height:43.35%}
.game-screen .puppet.kinako>.body{width:63%;height:67%;left:18.5%;top:34%}
.game-screen .puppet.kinako>.tail{width:46%;height:48%;right:-5%;top:48%}

/* ST1: the pudding has one unmistakable landing point — the oversized plate. */
.game-screen .play-field[data-scene="mike"] .beat-target{
  display:block;left:29%;top:57%;width:190px;height:86px;border:7px solid #fff;
  outline:5px solid var(--ink);background:#fff4cf;
  box-shadow:inset 0 -16px 0 #e7c98e,0 13px 0 rgba(61,42,38,.22),0 0 0 15px rgba(255,215,66,.42),0 0 42px rgba(255,215,66,.8)
}
.game-screen .play-field[data-scene="mike"] .beat-target::before{
  content:"◎";left:50%;top:50%;width:122px;height:48px;display:grid;place-items:center;
  transform:translate(-50%,-50%);border:4px dashed #f2a53a;border-radius:50%;
  background:rgba(255,255,255,.72);font:900 3.1rem/1 sans-serif;color:#f2a53a;opacity:1
}
.game-screen .play-field[data-scene="mike"] .beat-target span{
  inset:auto -16px -39px;padding:5px 8px;border:3px solid var(--ink);border-radius:14px;
  background:#ffd742;font-size:.9rem;box-shadow:3px 3px 0 white
}
.game-screen .play-field[data-scene="mike"] .beat-target.is-ready{animation:plate-ready .5s ease-in-out infinite alternate}
.game-screen .play-field[data-scene="mike"] .beat-target.is-now{transform:translateX(-50%) scale(1.13);background:#fff;box-shadow:inset 0 -16px 0 #e7c98e,0 13px 0 rgba(61,42,38,.22),0 0 0 24px rgba(191,255,90,.65),0 0 58px #bfff5a}
.game-screen .play-field[data-scene="mike"] .note-stream i{width:98px;height:98px}
.game-screen .play-field[data-scene="mike"] .note-stream i::after{font-size:88px;filter:drop-shadow(0 7px 0 rgba(61,42,38,.22))}
@keyframes plate-ready{to{filter:brightness(1.08);box-shadow:inset 0 -16px 0 #e7c98e,0 13px 0 rgba(61,42,38,.22),0 0 0 22px rgba(255,215,66,.58),0 0 55px #ffd742}}

/* ST2: vertical, color-locked sock lanes terminate exactly at their baskets. */
.game-screen .play-field[data-scene="pochika"] .sock-baskets::before,
.game-screen .play-field[data-scene="pochika"] .sock-baskets::after{
  content:"";position:absolute;z-index:-1;top:7%;bottom:26%;width:132px;transform:translateX(-50%);
  border:5px dashed var(--ink);border-radius:66px 66px 24px 24px;opacity:.82
}
.game-screen .play-field[data-scene="pochika"] .sock-baskets::before{left:22%;background:linear-gradient(180deg,rgba(102,216,208,.08),rgba(102,216,208,.62))}
.game-screen .play-field[data-scene="pochika"] .sock-baskets::after{left:48%;background:linear-gradient(180deg,rgba(255,200,61,.08),rgba(255,200,61,.66))}
.game-screen .play-field[data-scene="pochika"] .sock-basket{top:58%;width:150px;height:96px;border-width:7px;border-top-width:12px;box-shadow:inset 0 -17px 0 rgba(61,42,38,.16),0 11px 0 rgba(61,42,38,.2),0 0 0 8px white}
.game-screen .play-field[data-scene="pochika"] .basket-left{left:calc(22% - 75px);background:#66d8d0}
.game-screen .play-field[data-scene="pochika"] .basket-right{left:calc(48% - 75px);background:#ffc83d}
.game-screen .play-field[data-scene="pochika"] .basket-left b::before{content:"◀  "}
.game-screen .play-field[data-scene="pochika"] .basket-right b::after{content:"  ▶"}
.game-screen .play-field[data-scene="pochika"] .sock-basket b{bottom:-34px;padding:5px;border:3px solid var(--ink);border-radius:12px;background:white;font-size:.88rem}
.game-screen .play-field[data-scene="pochika"] .note-stream i{width:86px;height:108px;border-width:7px;box-shadow:inset 0 0 0 7px white,0 9px 0 rgba(61,42,38,.24),0 0 24px var(--note-color)}
.game-screen .play-field[data-scene="pochika"] .note-stream i.action-left{--note-color:#66d8d0!important;background:#66d8d0}
.game-screen .play-field[data-scene="pochika"] .note-stream i.action-right{--note-color:#ffc83d!important;background:#ffc83d}
.game-screen .play-field[data-scene="pochika"] .note-stream i::after{font-size:62px}
.game-screen .play-field[data-scene="pochika"][data-phase="response"] .sock-baskets{filter:saturate(1.18)}

/* One source of truth: JS target markers own the exact collision coordinates. */
.game-screen .play-field[data-scene="mike"]>.world-depth .beat-target,
.game-screen .play-field[data-scene="pochika"]>.world-depth .beat-target,
.game-screen .play-field[data-scene="pochika"]>.world-depth .sock-baskets{display:none}
.game-screen .play-field[data-scene="mike"] .object-target.pudding-target{width:190px!important;height:90px!important;border-width:9px!important;font:900 18px/1 "Mochiy Pop One"!important}
.game-screen .play-field[data-scene="pochika"] .object-target.sock-basket{top:auto;width:160px;height:104px}
.game-screen .note-stream i.is-call{width:52px!important;height:52px!important;border:7px solid white!important;border-radius:50%!important;background:#241d1b!important;box-shadow:0 0 0 6px var(--ink),0 0 0 14px rgba(255,255,255,.72)!important}
.game-screen .note-stream i.is-call::after{content:""!important;display:none!important}
.game-screen .note-stream i.is-call.is-choice-demo{width:58px!important;height:58px!important;border:9px solid var(--note-color)!important;background:#241d1b!important;box-shadow:0 0 0 5px #fff,0 0 0 10px var(--ink),0 0 28px var(--note-color)!important}
.game-screen .note-stream i.is-call.is-choice-demo.lane-left{--note-color:#42d4cf!important}
.game-screen .note-stream i.is-call.is-choice-demo.lane-right{--note-color:#ffc83d!important}
.game-screen .note-stream i.is-call.is-choice-demo::after{display:grid!important;place-items:center;content:"←"!important;left:-51px;top:50%;width:42px;height:42px;transform:translateY(-50%)!important;border:4px solid var(--ink);border-radius:50%;background:var(--note-color);color:var(--ink);font:1000 28px/1 "Mochiy Pop One"!important;text-shadow:0 2px white!important}
.game-screen .note-stream i.is-call.is-choice-demo.lane-right::after{content:"→"!important;left:auto;right:-51px}
.game-screen .note-stream i.is-response.approach-near{filter:brightness(1.12);box-shadow:0 0 0 12px rgba(255,255,255,.75),0 0 34px var(--note-color)!important}
.game-screen .note-stream i.is-response.approach-now{filter:brightness(1.22);box-shadow:0 0 0 18px #fff,0 0 52px #ffd742!important}

/* ST4: one giant tea cup; leaves spiral left/right into its center. */
.game-screen .play-field[data-scene="kon"]>.world-depth .beat-target{display:none}
.game-screen .play-field[data-scene="kon"] .tea-target{display:grid;place-items:center;width:206px;height:206px;border:8px solid var(--ink);border-radius:50%;background:conic-gradient(from 0deg,#42d4cf 0 50%,#ffc83d 50% 100%);box-shadow:0 12px 0 rgba(61,42,38,.22),0 0 0 18px rgba(255,255,255,.68),0 0 42px #ffd742;transform-origin:center;transition:filter .15s}
.game-screen .play-field[data-scene="kon"] .tea-target::before{content:"";position:absolute;inset:16px;border:7px solid white;border-radius:50%;background:radial-gradient(circle,#fff 0 48%,#dff4d2 49% 62%,rgba(255,255,255,.35) 63%)}
.game-screen .play-field[data-scene="kon"] .tea-target i{position:relative;z-index:2;font-style:normal;font-size:106px;filter:drop-shadow(0 8px 0 rgba(61,42,38,.18))}
.game-screen .play-field[data-scene="kon"] .tea-target strong{position:absolute;z-index:3;top:76px;font:1000 16px/1.05 "Mochiy Pop One";text-align:center;color:var(--ink);text-shadow:0 2px white}
.game-screen .play-field[data-scene="kon"] .tea-target span{position:absolute;z-index:3;left:-30px;right:-30px;bottom:-51px;display:flex;justify-content:space-between}
.game-screen .play-field[data-scene="kon"] .tea-target em{min-width:80px;padding:7px 9px;border:4px solid var(--ink);border-radius:15px;background:white;font:900 13px/1.15 "Mochiy Pop One";font-style:normal;color:var(--ink);text-align:center}.game-screen .play-field[data-scene="kon"] .tea-target em:first-child{box-shadow:0 5px 0 #42d4cf}.game-screen .play-field[data-scene="kon"] .tea-target em:last-child{box-shadow:0 5px 0 #ffc83d}
.game-screen .play-field[data-scene="kon"] .note-stream i.is-response{width:74px;height:104px;border:6px solid var(--ink);border-radius:100% 12% 100% 12%;background:var(--note-color);box-shadow:inset 0 0 0 5px rgba(255,255,255,.76),0 8px 0 rgba(61,42,38,.22),0 0 26px var(--note-color)}
.game-screen .play-field[data-scene="kon"] .note-stream i.is-response::before{content:"";position:absolute;left:50%;top:10%;bottom:10%;width:5px;border-radius:4px;background:white;transform:translateX(-50%) rotate(-35deg);opacity:.9}
.game-screen .play-field[data-scene="kon"] .note-stream i.is-response::after{font-size:31px;color:var(--ink);text-shadow:0 2px white}.game-screen .play-field[data-scene="kon"] .note-stream i.is-response.action-left{--note-color:#42d4cf!important;background:#42d4cf}.game-screen .play-field[data-scene="kon"] .note-stream i.is-response.action-right{--note-color:#ffc83d!important;background:#ffc83d}.game-screen .play-field[data-scene="kon"] .note-stream i.is-response.action-left::after{content:"↶"}.game-screen .play-field[data-scene="kon"] .note-stream i.is-response.action-right::after{content:"↷"}
.game-screen .play-field[data-scene="kon"] .judgement{left:73%;top:18%;font-size:clamp(1rem,3.2vw,1.55rem)}
.game-screen .play-field[data-scene="kon"].action-impact .tea-target{animation:tea-target-pulse .34s cubic-bezier(.2,.8,.2,1);filter:saturate(1.35) brightness(1.12);box-shadow:0 12px 0 rgba(61,42,38,.22),0 0 0 20px rgba(255,255,255,.9),0 0 48px #bfff5a}
.game-screen .play-field[data-scene="kon"][data-combo-band="hot"] .tea-target,.game-screen .play-field[data-scene="kon"][data-combo-band="max"] .tea-target{filter:saturate(1.4) brightness(1.14);box-shadow:0 12px 0 rgba(61,42,38,.22),0 0 0 18px #ffd742,0 0 70px #fff}
@keyframes tea-target-pulse{45%{transform:scale(1.1);filter:saturate(1.55) brightness(1.2)}100%{transform:scale(1)}}
@keyframes tea-spin-left{50%{transform:translate(-50%,-50%) rotate(-185deg) scale(1.18)}100%{transform:translate(-50%,-50%) rotate(-360deg)}}
@keyframes tea-spin-right{50%{transform:translate(-50%,-50%) rotate(185deg) scale(1.18)}100%{transform:translate(-50%,-50%) rotate(360deg)}}

/* Persistent hit layer: unlike note-stream children, this survives every animation frame. */
.game-screen .play-field[data-scene="pochika"].action-impact::before{
  position:absolute;z-index:18;pointer-events:none;display:grid;place-items:center;
  border:6px solid var(--ink);background:white;box-shadow:0 9px 0 rgba(61,42,38,.25),0 0 36px #ffd742
}
.game-screen .play-field[data-scene="pochika"].action-impact::before{
  content:"🧦 成功！";top:69%;width:154px;height:82px;border-radius:18px 18px 42px 42px;
  color:var(--ink);font:900 18px/1 "Mochiy Pop One";transform:translate(-50%,-50%);
  animation:sock-land .52s cubic-bezier(.2,.9,.2,1.3)
}
.game-screen .play-field[data-scene="pochika"][data-action="left"].action-impact::before{left:22%;background:#66d8d0}
.game-screen .play-field[data-scene="pochika"][data-action="right"].action-impact::before{left:48%;background:#ffc83d}
.game-screen .play-field[data-scene="mike"] .note-stream i.is-response.approach-near,
.game-screen .play-field[data-scene="mike"] .note-stream i.is-response.approach-now{box-shadow:none!important;filter:drop-shadow(0 0 9px #fff) drop-shadow(0 0 18px #ffd742) brightness(1.12)}
