/* Original raster cabinet, mechanical sockets and character state sheets. */
#game-dialog[data-game="mole"]{width:min(760px,99vw);max-height:98dvh;padding:48px 12px 18px;background:transparent;border:0;border-radius:0;box-shadow:none;color:#fff3d9;overflow:auto}
#game-dialog[data-game="mole"] .game-top{position:absolute;right:16px;top:0;z-index:15;padding:0;border:0;background:none}
#game-dialog[data-game="mole"] .game-top>div,#game-dialog[data-game="mole"] .game-stats,#game-dialog[data-game="mole"] #overlay,#game-dialog[data-game="mole"] #mole-mascot{display:none!important}
#game-dialog[data-game="mole"] .game-content{display:block}
#game-dialog[data-game="mole"] .playfield{aspect-ratio:auto;min-height:0;background:none;border:0;box-shadow:none;overflow:visible}
#mole-board{position:relative;outline:none;width:100%;margin:auto}
.mole-cabinet{position:relative;width:min(580px,calc((100dvh - 85px)*.8));min-width:320px;max-width:100%;aspect-ratio:4/5;margin:auto;isolation:isolate;overflow:clip;filter:drop-shadow(0 12px 18px #0009)}
.mole-shell{position:absolute;left:0;top:0;width:100%;height:134%;pointer-events:none;z-index:-2}
.mole-marquee{position:absolute;left:23%;top:.5%;width:54%;height:25.5%;object-fit:contain;filter:drop-shadow(0 3px 3px #08272199);pointer-events:none}
.mole-scoreboard{position:absolute;top:28%;left:22%;right:22%;height:8%;display:grid;grid-template-columns:1fr 1fr;gap:22%;align-items:center;color:#ffe8ae}
.mole-scoreboard>div{display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.05;min-width:0}
.mole-scoreboard span{font:800 .875rem/1.2 Outfit,sans-serif;color:#ffefbb}
.mole-scoreboard strong{font:800 clamp(1rem,3.3vw,1.65rem)/1.2 monospace;font-variant-numeric:tabular-nums;color:#ffcc57;text-shadow:0 0 7px #ff5e1780;letter-spacing:.02em}
.mole-scoreboard>div:nth-child(2){height:100%}
.mole-scoreboard>div:nth-child(3){position:absolute;top:825%;right:0;color:#1c2f25;background:#fff2bc;border:1px solid #714d21;border-radius:4px;padding:4px 8px;flex-direction:row;gap:8px;min-height:28px}
.mole-scoreboard>div:nth-child(3) strong,.mole-scoreboard>div:nth-child(3) span{font-size:.875rem;color:#17382c;text-shadow:none}
.mole-wave-strip{position:absolute;top:37%;left:18%;right:18%;height:5%;display:flex;align-items:center;justify-content:space-between;gap:6px;color:#f8e7bc;font:800 .875rem/1.2 Outfit,sans-serif;text-shadow:0 1px 2px #000}
.mole-wave-strip strong{font-size:.875rem;color:#ffe17f}
.mole-deck{position:absolute;left:12%;right:12%;top:43%;height:36%;perspective:700px}
.mole-field{display:grid;grid-template-columns:repeat(3,minmax(44px,1fr));grid-template-rows:repeat(3,minmax(44px,1fr));height:100%;gap:3px 8px}
.mole-hole{position:relative;min-width:44px;min-height:44px;padding:0;background:none;border:0;border-radius:45%;cursor:pointer;touch-action:manipulation;user-select:none;-webkit-tap-highlight-color:transparent;isolation:isolate}
.mole-hole:disabled{opacity:1;cursor:default}.mole-hole:focus-visible{outline:3px solid #fff4af;outline-offset:1px}
.mole-socket,.mole-socket-front{position:absolute;inset:6% 0 -4%;background:url('/images/mole-props-v3.webp') 0 0/300% 200%;pointer-events:none;filter:drop-shadow(0 5px 2px #00271baa)}
.mole-socket-front{clip-path:inset(61% 0 0 0);z-index:3;filter:none}
.mole-hole[data-gold="true"]:is([data-kind="gold"],[data-feedback="hit"]) :is(.mole-socket,.mole-socket-front){background-position:50% 0}
.mole-body-clip{position:absolute;inset:-23% 4% 17%;overflow:hidden;pointer-events:none;z-index:2}
.mole-character{position:absolute;inset:0 3% -5%;background:url('/images/mole-characters-v3.webp') 0 0/300% 200%;transform:translateY(110%);transition:transform 130ms cubic-bezier(.2,.9,.3,1.3);pointer-events:none}
.mole-hole[data-variant="1"] .mole-character{background-position:50% 0}
.mole-hole[data-kind="normal"] .mole-character,.mole-hole[data-kind="gold"] .mole-character{transform:translateY(0)}
.mole-hole[data-kind="gold"] .mole-character{background-position:100% 0;filter:drop-shadow(0 0 5px #ffe166)}
.mole-hole[data-feedback="hit"] .mole-character{background-position:0 100%;transform:translateY(13%) rotate(-8deg);transition:transform 70ms}
.mole-hole[data-feedback="hit"][data-gold="true"] .mole-character{background-position:50% 100%}
.mole-impact{position:absolute;inset:-28% -7% 0;background:url('/images/mole-props-v3.webp') 0 100%/300% 200%;opacity:0;pointer-events:none;z-index:4}
.mole-mallet{position:absolute;width:76%;height:110%;right:-22%;top:-38%;background:url('/images/mole-props-v3.webp') 100% 0/300% 200%;opacity:0;transform-origin:80% 95%;pointer-events:none;z-index:5}
.mole-hole[data-feedback="hit"] .mole-impact{animation:mole-impact .28s ease-out}
.mole-hole:is([data-feedback="hit"],[data-feedback="miss"]) .mole-mallet{animation:mole-whack .25s ease-out}
.mole-key{position:absolute;left:3%;bottom:0;z-index:6;background:#03261fea;color:#fff0c2;border-radius:4px;padding:0 4px;font:700 .875rem/1.4 monospace;pointer-events:none}
.mole-points{position:absolute;left:-10%;right:-10%;top:-28%;text-align:center;z-index:7;color:#fff2a0;font:900 clamp(1rem,3vw,1.6rem)/1.3 Outfit,sans-serif;text-shadow:0 2px 2px #093527,0 0 4px #093527;pointer-events:none}
.mole-hole[data-feedback="hit"] .mole-points{animation:mole-points .3s ease-out}
.mole-hole[data-feedback="miss"] .mole-points{color:#ffe0d8}
.mole-screen{position:absolute;top:38%;left:14%;right:14%;height:41%;z-index:8;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff2d2;text-align:center;background:linear-gradient(130deg,#052f28f2,#041a20ed);border:2px solid #dab362;border-radius:12px;box-shadow:0 8px 20px #001c2680;padding:12px;overflow:auto}
.mole-ready-plate{display:flex;flex-direction:column;align-items:center;width:100%;gap:7px}
.mole-kicker{font:800 .875rem/1.25 Outfit,sans-serif;letter-spacing:.1em;color:#ffdd8b}
.mole-screen h3{font-size:1.35rem;line-height:1.4;margin:0;color:#fff0b9}
.mole-screen p{font-size:1rem;line-height:1.55;margin:0}
.mole-highscores{width:100%;border-top:1px solid #648071;border-bottom:1px solid #648071;padding:7px 0;font-size:.875rem}
.mole-highscores>strong{font:800 .875rem/1.2 Outfit,sans-serif;letter-spacing:.12em;color:#93d9cb}
.mole-highscores p{font-size:.875rem;margin-top:4px}.mole-highscores ol{padding:0;margin:0;list-style:none}.mole-highscores li{display:grid;grid-template-columns:24px 1fr auto;gap:6px;font-size:.875rem;line-height:1.4}.mole-highscores li span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}
.mole-press-start{font:900 1.35rem/1.3 Outfit,sans-serif;letter-spacing:.09em;color:#ffe4a0;animation:mole-start-pulse 2s ease-in-out infinite}
.mole-free{font-size:.875rem;color:#dcf2dc}
.mole-cabinet[data-mode="attract"] .mole-deck{opacity:.65}
.mole-countdown{position:absolute;top:42%;left:12%;right:12%;height:33%;z-index:9;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;color:#fff1ad;background:radial-gradient(ellipse,#0b342af5,#0b342acc 48%,transparent 73%)}
.mole-countdown::before{content:"";position:absolute;inset:-20% 0;background:url('/images/mole-props-v3.webp') 0 100%/300% 200%;opacity:.25}
.mole-countdown span{font-size:1rem;font-weight:800;text-shadow:0 2px 3px #05251e;z-index:1}
.mole-countdown strong{font:900 clamp(4rem,18vw,7rem)/1 Outfit,sans-serif;color:#fff1af;text-shadow:0 4px #a96521,0 7px #592310,0 0 35px #ffda6566;z-index:1;animation:mole-count-pop .7s cubic-bezier(.2,.8,.2,1)}
#mole-wave-flash{position:absolute;inset:20% -5% auto;z-index:8;opacity:0;color:#fff2bb;font:900 1.5rem/1.3 Outfit,sans-serif;text-align:center;text-shadow:0 3px 4px #002e23;background:#06372ee8;border-block:2px solid #d4b15b;padding:12px 3px;pointer-events:none}
.mole-cabinet[data-urgent="true"] #mole-timer{color:#fff4ab;text-shadow:0 0 9px #fa4626}
.mole-results{overflow:visible;background:linear-gradient(145deg,#062f29fa,#0e2822fa);gap:2px;animation:mole-result-in .4s ease-out}
.mole-trophy{position:absolute;top:-26%;left:calc(50% - 50px);width:100px;height:100px;background:url('/images/mole-characters-v3.webp') 100% 100%/300% 200%;z-index:2;filter:drop-shadow(0 4px 5px #001b23)}
.mole-result-burst{position:absolute;inset:-35% -10% 25%;z-index:-1;background:url('/images/mole-props-v3.webp') 50% 100%/300% 200%;opacity:.25;pointer-events:none;animation:mole-award-glow 2s ease-in-out infinite}
.mole-result-score{font:900 clamp(2rem,7vw,3.2rem)/1.1 Outfit,sans-serif;color:#ffe099;text-shadow:0 3px #81502c}
.mole-result-unit{font:800 .875rem/1.2 Outfit,sans-serif;color:#8ed5c5;letter-spacing:.16em}
#mole-new-best{font-size:.875rem;color:#ffe29a;font-weight:800;min-height:1.2em}
.mole-result-stats{display:grid;grid-template-columns:repeat(3,1fr);width:100%;gap:6px;margin:6px 0;border-block:1px solid #6f8872;padding:5px 0}
.mole-result-stats span{font-size:.875rem;line-height:1.4}.mole-result-stats b{display:block;font:800 1.35rem/1.3 Outfit,sans-serif;color:#fff1ca}
.mole-results #mole-result-tip{font-size:1rem;line-height:1.4}
.mole-pause-screen{height:26%;top:45%;gap:12px}
.mole-console{position:absolute;left:17%;right:17%;top:80.5%;height:12%;display:grid;grid-template-columns:repeat(3,1fr);align-items:start;justify-items:center;gap:14px;z-index:10}
.mole-speaker{position:absolute;top:85%;left:-18%;width:18%;height:60%;background:url('/images/mole-props-v3.webp') 100% 100%/300% 200%;pointer-events:none}
#game-dialog[data-game="mole"] .mole-console :is(#start,#pause,#game-sound){position:relative;background:none;box-shadow:none;border:0;border-radius:0;min-width:44px;min-height:64px;width:100%;max-width:82px;height:100%;padding:0 0 1px;display:flex;align-items:flex-end;justify-content:center;color:#122d26;font:900 .875rem/1.2 'Noto Sans JP',sans-serif;white-space:nowrap;text-shadow:0 1px #fff2b7;transform:none;opacity:1;cursor:pointer;transition:none}
#game-dialog[data-game="mole"] .mole-console :is(#start,#pause,#game-sound)::before{content:"";position:absolute;inset:-5% 0 18%;background:url('/images/arcade-hardware.webp') 100% 0/300% 100%;filter:drop-shadow(0 4px 2px #321d1266);pointer-events:none;transition:transform 80ms}
#game-dialog[data-game="mole"] .mole-console #start::before{background-position:50% 0}
#game-dialog[data-game="mole"] .mole-console button:active:not(:disabled)::before{transform:translateY(4px);filter:brightness(.85)}
#game-dialog[data-game="mole"] .mole-console button:disabled::before{filter:brightness(.55)}
#game-dialog[data-game="mole"] .mole-console button:focus-visible{outline:3px solid #fff5bd;outline-offset:3px}
.mole-bottom-label{position:absolute;top:96%;left:15%;right:55%;color:#fff2bc;text-align:center;font:800 .875rem/1.2 Outfit,sans-serif;letter-spacing:.08em}.mole-bottom-label span{display:none}
.mole-load-status{font-size:1rem;line-height:1.6;text-align:center;background:#0a2422;color:#fff3d6}.mole-load-status:empty{display:none}
#game-dialog[data-game="mole"] .control-panel{max-width:580px;margin:16px auto 0;background:#0b2426e8;border:1px solid #6b7455;border-radius:8px;padding:16px;color:#f3eddc}
#game-dialog[data-game="mole"] .game-bottom{margin:0;display:block}#game-dialog[data-game="mole"] #controls{font-size:1rem;color:#f6edda;margin:0 0 10px}#game-dialog[data-game="mole"] .game-actions{display:none}
#game-dialog[data-game="mole"] .save-note{color:#c5dbd5}#game-dialog[data-game="mole"]>.legal-links{max-width:580px;margin:14px auto;color:#ecdfc5}
.mole-preview-page{display:grid;grid-template-columns:1fr 1fr;gap:40px;max-width:1060px;margin:20px auto 40px;padding:0 24px;align-items:center;color:#fff2d8}
.mole-preview-intro>img{width:100%;max-width:440px;height:auto;filter:drop-shadow(0 10px 20px #001529)}
.mole-preview-tag{display:inline-block;border:1px solid #ddbd70;border-radius:5px;background:#11372de8;color:#ffe4a4;padding:8px 14px;font-size:.875rem;font-weight:800}
.mole-preview-intro h1{font-size:2rem;line-height:1.5;margin:0 0 14px;color:#fff0c4}.mole-preview-intro p{font-size:1rem;line-height:1.8}.mole-preview-features{display:flex;flex-wrap:wrap;gap:8px;font-size:.875rem}.mole-preview-features span{padding:5px 9px;border:1px solid #769c89;background:#0c332ee8;border-radius:4px}
.mole-preview-intro .mole-preview-play{margin-top:24px;min-height:54px;padding:14px 22px;background:#ffdf80;color:#18342c;border:1px solid #f7e8ad;border-radius:7px;font-size:1rem;font-weight:900;box-shadow:0 4px #987133}
.mole-preview-intro .mole-preview-note{font-size:.875rem;color:#cfddd3}
.mole-floor-machine{max-width:460px;margin:auto;text-align:center}.mole-floor-machine>p{font-size:1rem;margin:8px 0;background:#052a25cc;padding:10px;border-radius:5px}
.mole-floor-start{display:block;position:relative;width:100%;padding:0;border:0;background:none;box-shadow:none;cursor:pointer;filter:drop-shadow(0 15px 20px #0008);transition:translate .2s,filter .2s}
.mole-floor-start:hover,.mole-floor-start:focus-visible{translate:0 -7px;filter:drop-shadow(0 0 16px #ffde6380);outline:2px solid #ffdf85;outline-offset:6px;border-radius:16px}
.mole-floor-shell{display:block;width:100%;height:auto}.mole-floor-logo{position:absolute;top:0;left:23%;width:54%;height:20%;object-fit:contain}.mole-floor-led{position:absolute;top:21.5%;left:23%;right:23%;font:900 clamp(.875rem,2vw,1.2rem)/1.3 Outfit,sans-serif;color:#ffdf89;text-shadow:0 0 8px #ff7624}
.mole-floor-deck{position:absolute;left:14%;right:14%;top:31%;height:28%;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:3px}
.mole-floor-socket{position:relative;background:url('/images/mole-props-v3.webp') 0 0/300% 200%}.mole-floor-socket.with-mole::before{content:"";position:absolute;inset:-20% 9% 20%;background:url('/images/mole-characters-v3.webp') 0 0/300% 200%;animation:mole-floor-bob 3s ease-in-out infinite}
.mole-floor-socket:nth-child(6)::before{background-position:100% 0;animation-delay:.9s}.mole-floor-socket:nth-child(7)::before{background-position:50% 0;animation-delay:1.8s}
.mole-floor-call{position:absolute;top:65%;left:25%;right:25%;padding:8px 4px;border:1px solid #82501b;border-radius:5px;background:#fff1b9;color:#18352d;font-size:1rem;font-weight:900;box-shadow:0 3px #946229}
@keyframes mole-whack{0%{opacity:0;transform:rotate(35deg) translateY(-20%)}30%{opacity:1;transform:rotate(-15deg)}60%{opacity:1;transform:rotate(0)}100%{opacity:0;transform:rotate(30deg)}}
@keyframes mole-impact{0%{opacity:1;scale:.4}50%{opacity:1;scale:1.1}100%{opacity:0;scale:1.35}}
@keyframes mole-points{from{translate:0 12px;scale:.75}to{translate:0 -8px;scale:1.15}}
@keyframes mole-count-pop{0%{scale:1.8;opacity:0}25%{scale:.95;opacity:1}55%{scale:1.05}100%{scale:1;opacity:1}}
@keyframes mole-start-pulse{50%{opacity:.65;text-shadow:0 0 12px #ffd36f}}
@keyframes mole-award-glow{50%{scale:1.05;filter:brightness(1.2)}}
@keyframes mole-result-in{from{opacity:0;translate:0 15px;scale:.9}to{opacity:1;translate:0;scale:1}}
@keyframes mole-floor-bob{0%,100%{translate:0 8%;rotate:-3deg}50%{translate:0 -4%;rotate:3deg}}
@media(max-width:600px){
 #game-dialog[data-game="mole"]{padding:46px 0 12px}.mole-cabinet{width:100%;min-width:0;aspect-ratio:4/6.5}.mole-screen{left:10%;right:10%;top:36%;height:44%;padding:9px}.mole-screen h3{font-size:1.125rem}.mole-ready-plate{gap:5px}.mole-kicker{letter-spacing:.03em}.mole-highscores{padding:4px 0}.mole-screen p{font-size:1rem}.mole-press-start{font-size:1.125rem}.mole-free{font-size:.875rem}.mole-scoreboard{left:22%;right:22%;gap:22%}.mole-scoreboard strong{font-size:1.125rem}.mole-wave-strip{left:14%;right:14%;flex-direction:column;justify-content:center;gap:2px}.mole-deck{left:9%;right:9%;top:43%;height:36%}.mole-field{gap:3px 5px}.mole-console{left:17%;right:17%;gap:12px;top:81%;height:12%}.mole-trophy{width:80px;height:80px;left:calc(50% - 40px);top:-26%}.mole-result-stats{gap:3px}.mole-result-stats b{font-size:1.125rem}.mole-result-score{font-size:2rem}.mole-results #mole-result-tip{font-size:1rem}.mole-scoreboard>div:nth-child(3){top:825%;right:0;padding:2px 5px;min-height:24px}.mole-bottom-label{display:none}
 #game-dialog[data-game="mole"] .control-panel{margin-top:10px;padding:14px}#game-dialog[data-game="mole"] .game-top{right:7px}
 .mole-preview-page{grid-template-columns:1fr;gap:18px;padding:0 20px;text-align:center}.mole-preview-intro>img{max-width:280px;margin-inline:auto}.mole-preview-intro h1{font-size:1.5rem}.mole-preview-features{justify-content:center}.mole-preview-intro .mole-preview-play{margin:14px auto 0}.mole-floor-machine{max-width:350px}
}
#game-dialog[data-game="mole"].large-type .mole-cabinet{width:100%;min-width:0;aspect-ratio:auto;min-height:1450px;overflow:visible;background:#13362d;border:5px solid #d7a142;border-radius:18px;padding-top:210px}
#game-dialog[data-game="mole"].large-type .mole-shell{display:none}#game-dialog[data-game="mole"].large-type .mole-marquee{top:0;height:190px;left:5%;width:90%}
#game-dialog[data-game="mole"].large-type .mole-scoreboard{position:relative;inset:auto;height:auto;margin:0 10px;grid-template-columns:1fr 1fr}#game-dialog[data-game="mole"].large-type .mole-scoreboard>div:nth-child(3){position:static;grid-column:1/-1;flex-wrap:wrap;margin:10px 0}
#game-dialog[data-game="mole"].large-type .mole-wave-strip{position:relative;inset:auto;height:auto;padding:12px;flex-wrap:wrap}
#game-dialog[data-game="mole"].large-type .mole-deck{position:relative;inset:auto;height:420px;margin:20px 6px}
#game-dialog[data-game="mole"].large-type .mole-screen{position:relative;inset:auto;height:auto;min-height:630px;margin:60px 8px 15px;overflow:visible;padding:20px 10px}
#game-dialog[data-game="mole"].large-type .mole-console{position:relative;inset:auto;height:180px;margin:20px 6px;gap:8px}#game-dialog[data-game="mole"].large-type .mole-console button{min-height:140px;white-space:normal}
#game-dialog[data-game="mole"].large-type .mole-countdown{top:30%;height:30%}#game-dialog[data-game="mole"].large-type .mole-bottom-label{display:none}#game-dialog[data-game="mole"].large-type .mole-results{margin-top:90px}
@media(orientation:landscape) and (max-height:540px) and (min-width:600px){.mole-cabinet{width:440px;max-width:90vw}#game-dialog[data-game="mole"]{padding-top:45px}.mole-preview-page{gap:20px}.mole-preview-intro>img{max-width:220px}}
@media(prefers-reduced-motion:reduce){.mole-cabinet *,.mole-floor-machine *{animation:none!important;transition:none!important}.mole-hole[data-feedback="hit"] .mole-impact{opacity:.65}.mole-hole:is([data-feedback="hit"],[data-feedback="miss"]) .mole-mallet{opacity:1}}


#mole-ready{height:28%;overflow:auto}.mole-cabinet[data-mode="attract"] .mole-deck{opacity:1}@media(max-width:600px){#mole-ready{top:37%;height:34%}#mole-ready .mole-free{display:none}}



#game-dialog[data-game="mole"].large-type #mole-ready{height:auto;min-height:0;overflow:visible}

#game-dialog[data-game="mole"].large-type .mole-console :is(#start,#pause,#game-sound){color:#fff2d2;text-shadow:none;white-space:normal;max-width:none;overflow-wrap:anywhere;line-height:1.4;padding-top:84px;align-items:center}
#game-dialog[data-game="mole"].large-type .mole-console :is(#start,#pause,#game-sound)::before{width:76px;height:76px;inset:0 auto auto 50%;margin-left:-38px}
#game-dialog[data-game="mole"].large-type .mole-speaker{display:none}

#game-dialog[data-game="mole"] .game-top{position:sticky;top:0;width:max-content;height:44px;margin:-44px 4px 0 auto}
#game-dialog[data-game="mole"].large-type{overflow-x:hidden}
