/* Private prototypes only: shared framing, original painted characters. */
:is(.balloon-page,.acorn-page,.shell-page){font-family:ui-rounded,"Hiragino Maru Gothic ProN","Noto Sans JP",system-ui,sans-serif}
:is(.balloon-page,.acorn-page,.shell-page) .arcade-layout{grid-template-columns:minmax(0,480px) minmax(240px,1fr);gap:42px}
:is(.balloon-page,.acorn-page,.shell-page) .game-shell{width:100%;max-width:480px;margin-inline:auto;border-radius:24px;box-shadow:0 18px 55px #071c293b,0 1px 0 #ffffff30 inset}
:is(.balloon-page,.acorn-page,.shell-page) .arena{height:auto;min-height:0;aspect-ratio:4/5}
:is(.balloon-page,.acorn-page,.shell-page) .overlay{background:#152c46c9;backdrop-filter:blur(6px);padding:20px;overflow:auto}
:is(.balloon-page,.acorn-page,.shell-page) .overlay h1{font:850 clamp(23px,3vw,31px)/1.4 ui-rounded,system-ui,sans-serif;letter-spacing:.01em;margin:8px 0 10px}
:is(.balloon-page,.acorn-page,.shell-page) .overlay>div{max-width:320px;margin:auto}
:is(.balloon-page,.acorn-page,.shell-page) .button{border-radius:999px;min-height:48px}
:is(.balloon-page,.acorn-page,.shell-page) .result-time strong{font-size:48px}
:is(.balloon-page,.acorn-page,.shell-page) .intro>p{font-size:16px}
:is(.balloon-page,.acorn-page,.shell-page) .howto ol{font-size:15px}
:is(.balloon-page,.acorn-page,.shell-page) .best-row{display:flex;width:auto;gap:8px}
:is(.balloon-page,.acorn-page,.shell-page) .scorebar{gap:10px;padding:10px 13px;height:74px}
:is(.balloon-page,.acorn-page,.shell-page) .live-score{display:grid;grid-template-columns:auto auto;column-gap:4px;flex:1}
:is(.balloon-page,.acorn-page,.shell-page) .live-score>span:first-child{grid-column:1/-1;font-size:12px;line-height:1.15}
:is(.balloon-page,.acorn-page,.shell-page) .live-score strong{font-size:29px}
:is(.balloon-page,.acorn-page,.shell-page) .game-tools{gap:5px}
:is(.balloon-page,.acorn-page,.shell-page) .icon-btn{height:44px;min-width:44px;width:44px}
:is(.balloon-page,.acorn-page,.shell-page) .game-tools .icon-btn:first-child{width:50px;min-width:50px}
:is(.balloon-page,.acorn-page,.shell-page) .sound-state{font-size:12px}
:is(.balloon-stat,.acorn-stat) span,.shell-page .stage-label>span{font:12px/1.35 system-ui,sans-serif;letter-spacing:0;white-space:nowrap}
.shell-page .stage-label{min-width:58px;max-width:none}
.shell-page .stage-label small{display:none}
:is(.balloon-page,.acorn-page,.shell-page) .controlbar{padding:10px 12px;min-height:46px}
:is(.balloon-page,.acorn-page,.shell-page) .controlbar p{font-size:14px;line-height:1.5}
.shell-page .controlbar p::before{content:none}
.acorn-page .direction-button{flex-shrink:0;width:55px;height:46px;font-size:19px}
.art-status{color:#fff2bf;font-size:14px;margin:8px 0}
.mascot-badge{display:block;width:132px;height:132px;object-fit:contain;margin:0 auto 3px;filter:drop-shadow(0 7px 8px #091d4133)}
.balloon-page{--bg:#202f56;--panel:#293e63;--line:#526989;--text:#f9f6ee;--muted:#d0dced;background:radial-gradient(ellipse at 80% 0%,#4a6498,#202f56 70%)}
.balloon-page .site-header{background:#1e2d50e8}.balloon-page .overlay{background:#233554c9}.balloon-page .scorebar,.balloon-page .controlbar{background:#2b4268}.balloon-page .primary{background:#ffd789;color:#423248;box-shadow:0 3px 0 #b58b65}
.acorn-page .overlay{background:#21473bce}.acorn-page .game-shell{border-color:#8fba99}.acorn-page .primary{background:#ffdb8a;color:#344339;box-shadow:0 3px 0 #ac8656}
.shell-page{--bg:#133c42;--panel:#1d4d51;--line:#4b8181;--text:#f8f5df;--muted:#c5ded6;--mint:#c9f0b6;--yellow:#ffe49b;background:radial-gradient(ellipse at 85% 0%,#28655c,#133c42 70%)}
.shell-page .site-header{background:#12383de8;border-color:#3e7471}.shell-page .brand-symbol{background:#c9efb2;color:#244b43;box-shadow:3px 3px 0 #4d8172}.shell-page .brand b{color:#caefbb}.shell-page .language select{background:#204e50;border-color:#709890}.shell-page .game-heading,.shell-page .eyebrow,.shell-page .intro>p,.shell-page .howto ol{color:#c5ded6}
.shell-page .game-shell{background:#225750;border-color:#7da794}.shell-page .scorebar,.shell-page .controlbar{background:#204e50;border-color:#65928b}.shell-page .icon-btn{background:#306461;border-color:#7a9d8b}.shell-page .stage-label>span{color:#c9e3d5}.shell-page .overlay{background:#163e3bcf}.shell-page .primary{background:#ffe49c;color:#2c4d43;box-shadow:0 3px 0 #9e8657}.shell-page .best-panel,.shell-page .howto,.shell-page .collection,.shell-page footer{border-color:#467773}.shell-page .game-tile{background:#1f4e4d;border-color:#4f8179}
.balloon-card .card-scene{background:radial-gradient(circle at 65% 20%,#b2c5ff,#657fba 48%,#3b548c)}
.acorn-card .card-scene{background:linear-gradient(120deg,#18493955,#809f4966),url('/assets/orchard-field.webp') center 45%/cover}
.shell-card .card-scene{background:radial-gradient(ellipse at 65% 20%,#60bba0,#2a8c79 60%,#23605c)}
:is(.balloon-card,.acorn-card,.shell-card) .card-scene::before{content:none}
.prototype-card-mascot{position:absolute;height:84%;width:66%;object-fit:contain;left:15%;bottom:3%;filter:drop-shadow(0 12px 9px #122b4133);transition:transform .2s ease}
.prototype-card-object{position:absolute;width:21%;height:31%;object-fit:contain;right:7%;top:12%;transform:rotate(12deg);filter:drop-shadow(0 4px 6px #1b355944)}
.prototype-card-cloud{position:absolute;width:40%;height:30%;object-fit:contain;left:-6%;bottom:-5%;opacity:.8}
:is(.balloon-card,.acorn-card,.shell-card):hover .prototype-card-mascot{transform:translateY(-4px) rotate(-3deg)}
@media(max-width:760px){
 :is(.balloon-page,.acorn-page,.shell-page) .arcade-layout{display:block}
 :is(.balloon-page,.acorn-page,.shell-page) .game-shell{width:min(100%,calc((100svh - 218px)*.8));min-width:min(100%,280px)}
 .acorn-page .game-shell{width:min(100%,calc((100svh - 242px)*.8))}
 :is(.balloon-page,.acorn-page,.shell-page) .arena{height:auto;min-height:0}
 :is(.balloon-page,.acorn-page,.shell-page) .scorebar{height:64px;padding:6px 9px;gap:6px}
 :is(.balloon-page,.acorn-page,.shell-page) .live-score strong{font-size:24px}
 :is(.balloon-page,.acorn-page,.shell-page) .live-score .unit{display:none}
 :is(.balloon-page,.acorn-page,.shell-page) .game-tools .icon-btn:first-child{min-width:44px;width:44px}
 :is(.balloon-page,.acorn-page,.shell-page) .game-tools .pause-btn{min-width:40px;width:40px}
 .shell-page .stage-label{min-width:42px}.shell-page .stage-label>span{font-size:12px}.shell-page .stage-label strong{font-size:20px}
 :is(.balloon-page,.acorn-page,.shell-page) .overlay{padding:12px}
 :is(.balloon-page,.acorn-page,.shell-page) .overlay h1{font-size:24px;margin:4px 0 8px}
 .mascot-badge{width:110px;height:110px}
 :is(.balloon-page,.acorn-page,.shell-page) .start-tag{font-size:14px;margin-bottom:12px}
 :is(.balloon-page,.acorn-page,.shell-page) .controlbar p{font-size:14px}
 :is(.balloon-page,.acorn-page,.shell-page) .side-panel{margin-top:24px}
 :is(.balloon-page,.acorn-page,.shell-page) .intro h2{font-size:26px}
}
@media(max-height:700px) and (max-width:760px){.mascot-badge{width:84px;height:84px}:is(.balloon-page,.acorn-page,.shell-page) .overlay h1{font-size:21px}:is(.balloon-page,.acorn-page,.shell-page) .result-time strong{font-size:36px}:is(.balloon-page,.acorn-page,.shell-page) .controlbar p{font-size:13px}}
@media(max-height:500px){:is(.balloon-page,.acorn-page,.shell-page) .game-shell{width:min(100%,480px)}}
@media(prefers-reduced-motion:reduce){.prototype-card-mascot{transition:none}:is(.balloon-card,.acorn-card,.shell-card):hover .prototype-card-mascot{transform:none}}

/* Stage metadata occupies the existing space above the board. */
.shell-page .shell-stage-caption{position:absolute;inset:0 0 auto;z-index:1;display:flex;justify-content:space-between;gap:12px;padding:6px 18px 0;font-size:12px;color:#d6efcf;pointer-events:none;line-height:1.4}
.shell-page .shell-stage-caption b{color:#ffe6a3}.shell-page .overlay{z-index:2}
.shell-page .shell-clear-reward{color:#ffe9a9;font-size:16px}.shell-page .shell-clear-reward strong{font-size:26px}
.shell-page #stage-panel .mascot-badge{width:100px;height:100px}.shell-page #stage-clear-title{font-size:24px}
.shell-page #stage-panel .result-detail{margin:8px 0 20px}
@media(max-width:760px){.shell-page .shell-stage-caption{padding:1px 15px 0;line-height:1.2}.shell-page #stage-panel .mascot-badge{width:80px;height:80px}.shell-page #stage-clear-title{font-size:21px}}
