:root{font-family:"Yu Gothic",Meiryo,sans-serif;color:#263238;background:#edf0ee;font-synthesis:none}*{box-sizing:border-box}body{margin:0}main{max-width:500px;margin:auto;padding:26px 16px 36px}header{text-align:center}.eyebrow{font-size:10px;letter-spacing:2px;color:#68736d;font-weight:700}h1{font-size:23px;line-height:1.5;margin:12px 0}h1 span{display:block;font-size:19px}header p{font-size:13px;line-height:1.8;color:#606c66}.stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:22px 0 16px}.stats div{background:#35413e;color:white;border-radius:12px;padding:14px}.stats small{display:block;font-size:11px;color:#d0d8d3}.stats strong{display:block;font-size:23px;margin-top:5px;font-variant-numeric:tabular-nums}.stats div:first-child{border-bottom:4px solid #eeb546}.board-head{display:flex;justify-content:space-between;font-size:12px;margin:12px 2px}#board{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;padding:9px;background:#77827b;border-radius:15px;touch-action:none;user-select:none;aspect-ratio:1}.cell{background:#8e9991;border-radius:9px;min-width:0;display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative}.tile{background:#faf8ee;box-shadow:0 2px 3px #25332825}.tile .icon{font-size:30px;line-height:1.2}.tile small{font-size:9px;font-weight:bold;color:#776955}.tile .name{font-size:10px;text-align:center;line-height:1.2;padding:4px 2px;overflow-wrap:anywhere;font-weight:700}.lv3,.lv4{background:#ffdf9b}.lv5,.lv6{background:#f4bf72}.lv7,.lv8{background:#e6a361}.lv9,.lv10,.lv11{background:#485b55;color:#fff}.lv9 small,.lv10 small,.lv11 small{color:#ffdc8e}.lv12{background:linear-gradient(135deg,#ffeec1,#efba45);border:2px solid #fff3d0}.pop{animation:merge .28s ease}.spawn{animation:appear .28s ease}@keyframes merge{0%{transform:scale(.8)}60%{transform:scale(1.07)}100%{transform:scale(1)}}@keyframes appear{from{opacity:.2;transform:scale(.6)}to{opacity:1;transform:scale(1)}}#feedback{min-height:38px;text-align:center;font-size:13px;font-weight:700;color:#7c541b;margin:12px 0}button{font:inherit;border:0;border-radius:9px;min-height:46px;padding:11px 14px;background:#e4e8e3;color:#263b32;font-weight:700;cursor:pointer}button:hover{filter:brightness(.96)}button:focus-visible,summary:focus-visible{outline:3px solid #dba32c;outline-offset:3px}button:disabled{opacity:.45;cursor:default}.actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}#restart,.primary{background:#eeb546}.direction-pad{text-align:center;margin:16px 0}.direction-pad button{min-width:52px;margin:3px}details{background:#fff;border-radius:12px;padding:15px;font-size:13px;line-height:1.9}summary{cursor:pointer;font-weight:700}ol{padding-left:27px}footer{text-align:center;font-size:10px;color:#758079;margin-top:22px}dialog{border:0;border-radius:16px;padding:26px;width:calc(100% - 32px);max-width:420px;color:#263b32}dialog::backdrop{background:#182a24a6}dialog h2{font-size:27px}#result-actions{display:grid;gap:9px;margin-top:20px}@media(max-width:350px){main{padding:16px 10px}.stats strong{font-size:19px}h1{font-size:20px}#board{gap:5px;padding:7px}.tile .icon{font-size:25px}.tile .name{font-size:9px}}@media(prefers-reduced-motion:reduce){.pop,.spawn{animation:none}}

#board{grid-template-rows:repeat(4,minmax(0,1fr))}

.tile .icon:has(img){width:100%;height:54%;display:flex;align-items:center;justify-content:center}.tile .icon img{width:100%;height:100%;object-fit:contain}
/* 画像の寸法は親マスから決まり、画像の固有サイズに影響されない。 */
.board-shell{position:relative}#board{width:100%;grid-template-rows:repeat(4,minmax(0,1fr))}.cell{min-height:0;overflow:hidden}.tile small{position:absolute;top:4px;left:6px;z-index:1}.machine-icon{display:flex;align-items:center;justify-content:center;position:relative;aspect-ratio:1;width:100%;min-width:0}.machine-icon img{display:block;width:100%;height:100%;object-fit:contain}.machine-icon img[hidden]{display:none}.tile>.machine-icon{position:absolute;width:78%;height:78%;inset:11%;aspect-ratio:auto}.tile.lv11>.machine-icon{width:80%;height:80%;inset:10%}.icon-fallback{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:3px;width:100%;height:100%}.icon-fallback>span:first-child{font-size:clamp(20px,7vw,34px)}.icon-fallback>span:last-child{font-size:11px;line-height:1.3;overflow-wrap:anywhere}.lv12{box-shadow:inset 0 0 14px #fff6cf,0 0 0 1px #d9a22e}.lv9,.lv10,.lv11{background:#d4ddd5;color:#263b32}.lv9 small,.lv10 small,.lv11 small{color:#46574e}#combo{position:absolute;top:8%;left:50%;z-index:5;pointer-events:none;white-space:nowrap;text-align:center;background:#fff5dcf5;border:1px solid #e7ad3b;border-radius:12px;padding:10px 22px;box-shadow:0 4px 15px #24392f30;transform:translateX(-50%)}#combo strong,#combo span{display:block}#combo strong{font-size:24px;color:#855300}#combo span{font-size:15px;color:#855300}#combo.show{animation:combo-rise 1s ease-out both}@keyframes combo-rise{0%{opacity:0;transform:translate(-50%,8px) scale(.85)}20%{opacity:1;transform:translate(-50%,0) scale(1.05)}40%{opacity:1;transform:translate(-50%,-3px) scale(1)}100%{opacity:0;transform:translate(-50%,-24px) scale(1)}}.catalog-open{width:100%;margin-bottom:14px;background:#dce4dc}dialog{max-height:88dvh;overflow:auto}dialog .machine-icon{width:min(210px,70%);margin:10px auto}dialog h3{font-size:15px}dialog p{font-size:14px;line-height:1.8}#discovery-body{text-align:center}#discovery-actions{display:grid;gap:8px}#catalog{max-width:600px}#catalog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:18px}.catalog-card{min-width:0;background:#edf1ec;display:flex;flex-direction:column;align-items:center;padding:10px}.catalog-card .machine-icon{width:100%;max-width:140px;margin:0 auto 8px}.catalog-card>span:last-child{font-size:13px}.catalog-card:disabled{opacity:1;color:#6e7972}.unknown{background:#dce2dc;border-radius:15px;color:#647269;font-size:48px;font-weight:bold}#catalog-close,#detail-close{width:100%}@media(prefers-reduced-motion:reduce){#combo.show{animation:none}.pop,.spawn{animation:none}}



/* 盤面直下の主要操作。56pxのタップ領域と十字配置を共通利用する。 */
.direction-pad{display:grid;justify-content:center;justify-items:center;gap:8px;width:100%;margin:14px 0 8px}
.direction-pad>div{display:grid;grid-template-columns:repeat(3,56px);gap:8px}
.direction-pad button{display:flex;align-items:center;justify-content:center;width:56px;height:56px;min-width:56px;min-height:56px;margin:0;padding:0;border:1px solid #ad7c20;border-radius:10px;background:linear-gradient(180deg,#f6c653,#eeb43c);color:#172c43;font-family:Arial,sans-serif;font-size:34px;font-weight:900;line-height:1;box-shadow:inset 0 1px 0 #ffe5a0,0 3px 0 #a87b29,0 5px 8px #26323818;touch-action:manipulation;transition:transform .1s,box-shadow .1s,filter .1s}
@media(hover:hover){.direction-pad button:hover{background:linear-gradient(180deg,#ffcf61,#f5be49);transform:translateY(-1px);box-shadow:inset 0 1px 0 #ffedba,0 4px 0 #a87b29,0 6px 10px #26323820;filter:none}}
.direction-pad button:active{background:linear-gradient(180deg,#e9ac31,#edb640);transform:translateY(2px);box-shadow:inset 0 1px 2px #8f651b28,0 1px 0 #a87b29;filter:none}
.direction-pad button:focus-visible{outline:3px solid #35413e;outline-offset:3px}
.actions{margin-bottom:16px}
@media(prefers-reduced-motion:reduce){.direction-pad button{transition:none}}

.direction-pad button{color:#172c43}
.direction-icon{display:block;width:32px;height:32px;fill:currentColor;pointer-events:none;flex:none}
[data-direction="up"] .direction-icon{transform:rotate(-90deg)}
[data-direction="down"] .direction-icon{transform:rotate(90deg)}
[data-direction="left"] .direction-icon{transform:rotate(180deg)}


.slide-layer{position:absolute;inset:0;pointer-events:none;z-index:3;overflow:hidden;border-radius:15px}
.sliding-tile{position:absolute;will-change:transform}
#board.in-motion>.tile{background:#8e9991;border:0;box-shadow:none}
#board.in-motion>.tile>*{visibility:hidden}
.pop{animation:merge-settle .1s ease-out}
.spawn{animation:appear .1s ease-out}
@keyframes merge-settle{0%{transform:scale(1)}45%{transform:scale(1.08)}100%{transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.pop,.spawn{animation:none}}

.mode-nav{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:20px}.mode-nav button{background:#dce4dc}.mode-nav span{display:block;font-size:12px;margin-top:3px}#mission-status{background:#fff5dc;border-left:4px solid #dca939;border-radius:8px;padding:10px 12px;margin:12px 0;font-size:13px}#mission-status p{margin:5px 0;line-height:1.5}#missions-list{max-width:600px}.mission-card{display:flex;flex-direction:column;gap:7px;width:100%;text-align:left;margin:8px 0;padding:14px;background:#eef2ec}.mission-card strong{font-size:14px}.mission-card span{font-size:12px;line-height:1.5}.mission-card:disabled{opacity:.65}#missions-close{width:100%}#brief-actions{display:grid;gap:8px}.final-mission{border:2px solid #e6b33b;background:linear-gradient(135deg,#fffdf4,#fff1ca)}
