/* めいろたんけん */
@media (max-width:480px){.game-header{padding:56px 10px 8px}.home-btn{width:40px;height:40px;font-size:1.2rem;top:10px;left:10px}}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{width:100%;height:100%;overflow:hidden;font-family:'Zen Maru Gothic',sans-serif;user-select:none}
body{background:linear-gradient(135deg,#E8F5E9 0%,#C8E6C9 40%,#A5D6A7 100%);touch-action:none}
.home-btn{position:fixed;top:12px;left:12px;width:48px;height:48px;background:#fff;border-radius:50%;display:flex;justify-content:center;align-items:center;font-size:1.4rem;text-decoration:none;box-shadow:0 4px 12px rgba(0,0,0,.15);z-index:9999;border:3px solid #4CAF50}

#game-container{width:100%;height:100%;display:flex;flex-direction:row;position:relative;overflow:hidden}

.side-panel{width:220px;flex-shrink:0;display:flex;flex-direction:column;padding:14px;gap:12px;background:rgba(255,255,255,.85);backdrop-filter:blur(6px);overflow-y:auto}
.game-header{display:flex;flex-direction:column;gap:8px}
.title-badge{background:#fff;padding:8px 12px;border-radius:16px;font-weight:700;font-size:.9rem;box-shadow:0 2px 0 #C8E6C9;display:flex;align-items:center;gap:6px}
.level-pill{background:#4CAF50;color:#fff;padding:6px 14px;border-radius:14px;font-weight:700;font-size:.85rem;text-align:center;box-shadow:0 2px 0 #2E7D32}

.item-section{background:#fff;border-radius:16px;padding:12px;box-shadow:0 2px 8px rgba(0,0,0,.06)}
.item-title{font-size:.85rem;font-weight:700;color:#2E7D32;margin-bottom:8px}
.item-list{display:flex;flex-direction:column;gap:6px}
.item-entry{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:10px;background:#F1F8E9;font-size:.9rem;transition:background .3s}
.item-entry.collected{background:#C8E6C9}
.item-emoji{font-size:1.3rem}
.item-label{flex:1;font-weight:500;color:#333}
.item-check{color:#2E7D32;font-weight:900;font-size:1.1rem}

.side-actions{display:flex;flex-direction:column;gap:8px}
.side-btn{font-family:inherit;font-weight:700;font-size:.85rem;padding:10px;border-radius:14px;border:none;background:#4CAF50;color:#fff;box-shadow:0 3px 0 #2E7D32;cursor:pointer;text-align:center}
.side-btn:active{transform:translateY(2px);box-shadow:0 1px 0 #2E7D32}
.side-btn.secondary{background:#78909C;box-shadow:0 3px 0 #546E7A}
.side-btn.secondary:active{box-shadow:0 1px 0 #546E7A}
.side-hint{font-size:.75rem;color:#666;text-align:center;line-height:1.4}

.maze-panel{flex:1;display:flex;align-items:center;justify-content:center;padding:10px}
.maze-wrap{display:flex;align-items:center;justify-content:center;width:100%;height:100%}
#maze-canvas{display:block;border-radius:12px;box-shadow:0 4px 20px rgba(0,0,0,.15);touch-action:none;cursor:crosshair}

.feedback{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:rgba(0,0,0,.85);color:#fff;padding:18px 30px;border-radius:18px;font-size:1.1rem;font-weight:700;z-index:5000;animation:fbPop .3s ease-out}
.feedback.hidden{display:none!important}
@keyframes fbPop{0%{transform:translate(-50%,-50%) scale(0)}100%{transform:translate(-50%,-50%) scale(1)}}

.overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:10000;padding:16px}
.overlay.hidden{display:none!important}
.overlay-card{background:#fff;border-radius:24px;padding:24px 20px;max-width:320px;width:100%;text-align:center;box-shadow:0 12px 40px rgba(0,0,0,.2);animation:modalPop .4s cubic-bezier(.68,-.55,.265,1.55)}
@keyframes modalPop{0%{transform:scale(0)}100%{transform:scale(1)}}
.overlay-title{font-size:1.4rem;font-weight:900;color:#2E7D32;margin-bottom:8px}
.overlay-stars{font-size:2rem;margin-bottom:16px}
.overlay-btn{display:block;width:100%;font-family:inherit;font-weight:700;padding:14px;border-radius:18px;border:none;background:#4CAF50;color:#fff;font-size:1.05rem;margin-bottom:10px;cursor:pointer;box-shadow:0 4px 0 #2E7D32}
.overlay-btn.secondary{background:#B0BEC5;box-shadow:0 4px 0 #78909C;color:#333}
.overlay-btn:active{transform:translateY(2px)}

.stage-list{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:10px}
.stage-list button{font-family:inherit;font-weight:700;padding:10px;border-radius:12px;border:none;background:#E8F5E9;color:#2E7D32;cursor:pointer;font-size:.9rem}
.stage-list button:active{background:#C8E6C9}

@media (orientation:portrait){
  #game-container{flex-direction:column}
  .side-panel{width:100%;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 14px}
  .game-header{flex-direction:row;align-items:center;gap:8px}
  .item-section{flex:1;min-width:140px}
  .side-actions{flex-direction:row}
  .side-hint{display:none}
  .maze-panel{flex:1;min-height:0}
}
@media screen and (max-height: 500px) {
  #game-container {
    margin-left: 80px !important;
    width: calc(100% - 80px) !important;
  }
  .side-panel{width:160px;padding:8px !important;gap:8px}
  .game-header{gap:4px}
  .title-badge{font-size:.75rem;padding:4px 8px}
  .level-pill{font-size:.7rem;padding:4px 10px}
  .item-section{padding:8px}
  .item-title{font-size:.7rem;margin-bottom:4px}
  .item-entry{padding:3px 6px;font-size:.75rem;gap:4px}
  .item-emoji{font-size:1rem}
  .side-btn{padding:8px;font-size:.75rem}
  .side-hint{display:none}
  .overlay-card { padding: 12px 15px !important; max-width: 480px !important; }
  .stage-list { grid-template-columns: repeat(5, 1fr) !important; gap: 5px !important; }
  .stage-list button { padding: 6px !important; font-size: 0.75rem !important; }
}

