@media(max-width:1180px){
  .fg-home-shell{height:auto;min-height:calc(100dvh - 28px);overflow:visible;grid-template-rows:auto}
  .fg-mode-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fg-mode-panel{min-height:240px}
  .fg-home-hero{grid-template-columns:1fr}
  .fg-home-scene{min-height:170px}
  .fg-how-grid{grid-template-columns:repeat(2,1fr)}
}

@media(max-width:1000px){
  .fg-haptics-chip{display:inline-flex;align-items:center;justify-content:center}
  .fg-app-shell{grid-template-columns:1fr;padding:8px 8px 74px}
  .fg-sidebar{display:none}
  .fg-mobile-nav{position:fixed;left:8px;right:8px;bottom:max(8px,env(safe-area-inset-bottom));z-index:30;display:grid;grid-template-columns:repeat(5,1fr);gap:4px;padding:6px;border:1px solid var(--line-strong);border-radius:17px;background:rgba(255,255,255,.96);box-shadow:0 12px 30px rgba(20,63,82,.18);backdrop-filter:blur(10px)}
  .fg-mobile-nav button{min-width:0;padding:5px 2px;border:0;border-radius:10px;background:transparent;color:#4a6674;display:grid;place-items:center;gap:2px;font-size:.54rem;font-weight:800}
  .fg-mobile-nav button img{width:17px;height:17px}
  .fg-mobile-nav button.active{background:linear-gradient(135deg,#1a9cc9,#20aaa0);color:#fff}
  .fg-mobile-nav button.active img{filter:brightness(0) invert(1)}
  .fg-content-top{align-items:flex-start;flex-direction:column}
  .fg-how-grid{grid-template-columns:1fr 1fr}
  .journey-history-grid{grid-template-columns:repeat(4,1fr)}

  /* Mobile game shell: start at top; never vertically center a short frame. */
  body.game-active .game-shell{padding:max(4px,env(safe-area-inset-top)) 6px max(5px,env(safe-area-inset-bottom));align-items:center;justify-content:flex-start}
  .game-frame,.puzzle-frame,.arcade-frame,.mini-frame{width:100%;max-width:100%;max-height:100%;gap:4px;margin:0 auto}
  .game-topbar{min-height:50px;grid-template-columns:36px 1fr 36px;gap:5px;padding:4px 6px;border-radius:14px}
  .game-topbar h1{font-size:1.18rem;line-height:1}
  .game-topbar .eyebrow{font-size:.44rem}
  .screen-brand{font-size:.44rem}
  .icon-btn{width:32px;height:32px;border-radius:10px}

  /* Puzzle: full-width 8x8 board, pipe pieces directly underneath, actions last. */
  .puzzle-hud-row{display:none}
  .puzzle-layout{width:var(--board-size);grid-template-columns:var(--board-size);grid-template-rows:var(--board-size) 66px 52px;gap:4px;justify-content:center;margin:0 auto}
  .puzzle-stage{grid-column:1;grid-row:1;width:var(--board-size);height:var(--board-size)}
  .puzzle-right-rail{grid-column:1;grid-row:2;width:var(--board-size);height:66px;display:block}
  .puzzle-right-rail>.level-card,.puzzle-right-rail>.progress-card{display:none}
  .puzzle-right-rail .pipe-rack{width:100%;height:66px;padding:4px 5px;border-radius:12px;display:grid;grid-template-rows:13px 1fr;gap:2px}
  .pipe-rack-head{display:flex;align-items:center;justify-content:space-between;margin:0;padding:0 2px}
  .pipe-rack-head span{font-size:.44rem}
  .pipe-rack-head small{font-size:.42rem}
  .pipe-tray{display:flex;flex-direction:row;gap:4px;overflow-x:auto;overflow-y:hidden;align-items:stretch;padding:0;scrollbar-width:none}
  .pipe-tray::-webkit-scrollbar{display:none}
  .tray-pipe{flex:1 1 0;min-width:52px;max-width:84px;min-height:0;height:45px;padding:1px 2px;grid-template-columns:1fr;grid-template-rows:1fr auto;gap:0;text-align:center;border-radius:9px}
  .tray-pipe-art{width:100%;height:32px;min-height:0}
  .tray-pipe-label{display:none}
  .tray-pipe b{font-size:.50rem;line-height:1}
  .puzzle-left-rail{grid-column:1;grid-row:3;width:var(--board-size);height:52px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px}
  .puzzle-left-rail>.puzzle-mission,.puzzle-left-rail>.puzzle-move-goal{display:none}
  .puzzle-actions{margin:0;padding:3px;display:grid;grid-template-columns:repeat(3,1fr);gap:3px;border-radius:11px}
  .puzzle-actions .rail-label{display:none}
  .puzzle-actions button{min-height:44px;padding:0 5px;font-size:.58rem;border-radius:9px}
  .puzzle-tools-card{margin:0;padding:3px;border-radius:11px}
  .puzzle-tools-card>.rail-label{display:none}
  .toolbox{display:flex;gap:3px;margin:0;height:44px}
  .tool-btn{width:44px;height:44px;min-height:0;padding:1px;grid-template-columns:1fr;grid-template-rows:27px auto;text-align:center;justify-items:center;border-radius:8px}
  .tool-btn img{grid-row:auto;width:25px;height:25px}
  .tool-btn span{font-size:.44rem}
  .tool-btn b{display:none}
  .tool-empty{display:none}
  .board-heading{display:none}

  /* Arcade: same full-width 8x8 board; only compact live stats below. */
  .arcade-layout{width:var(--board-size);grid-template-columns:var(--board-size);grid-template-rows:var(--board-size) auto;gap:4px;justify-items:center;margin:0 auto}
  .arcade-left-rail{display:none}
  .arcade-stage{grid-column:1;grid-row:1;width:var(--board-size);height:var(--board-size)}
  .arcade-right-rail{grid-column:1;grid-row:2;width:var(--board-size);height:auto;display:grid;grid-template-columns:repeat(4,1fr);gap:4px}
  .arcade-score-grid{display:contents}
  .arcade-right-rail .rail-card{padding:5px 6px;border-radius:9px;min-height:34px}
  .arcade-right-rail .rail-card>span{font-size:.40rem}
  .arcade-right-rail .rail-card>b{font-size:.68rem;margin:1px 0}
  .arcade-right-rail .rail-card small{display:none}
  .arcade-detail{display:none}
  .arcade-pause-btn{grid-column:1/-1;margin:0;min-height:34px;border-radius:10px;font-size:.6rem}

  /* Survival / Rush: board stays identical; stats form two compact strips below. */
  .mini-layout{width:var(--board-size);grid-template-columns:var(--board-size);grid-template-rows:var(--board-size) auto auto;gap:4px;justify-items:center;margin:0 auto}
  .mini-stage{grid-column:1;grid-row:1;width:var(--board-size);height:var(--board-size)}
  .mini-left-rail,.mini-right-rail{width:var(--board-size);height:auto;display:grid;gap:4px}
  .mini-left-rail{grid-column:1;grid-row:2;grid-template-columns:repeat(2,1fr)}
  .mini-right-rail{grid-column:1;grid-row:3;grid-template-columns:repeat(3,1fr)}
  .mini-left-rail .rail-card,.mini-right-rail .rail-card{padding:5px 6px;border-radius:9px;min-height:34px}
  .mini-left-rail .rail-card>span,.mini-right-rail .rail-card>span{font-size:.40rem}
  .mini-left-rail .rail-card>b,.mini-right-rail .rail-card>b{font-size:.68rem;margin:1px 0}
  .mini-left-rail .rail-card small,.mini-right-rail .rail-card small{display:none}
  .mini-tip,.mini-right-rail .rail-card:not(.stat-card):not(.pressure-card){display:none}
  .mini-right-rail button{margin:0;min-height:34px;border-radius:10px;font-size:.58rem}
}

@media(max-width:700px){
  .fg-player-strip{grid-template-columns:1fr}
  .fg-player-stats{grid-template-columns:repeat(4,1fr)}
  .fg-home-hero{grid-template-columns:1fr;min-height:0}
  .fg-home-hero-copy>img{width:88px;height:88px}
  .fg-home-hero-copy h1{font-size:1.35rem}
  .fg-home-scene{min-height:130px}
  .fg-mode-grid{grid-template-columns:1fr}
  .fg-mode-panel{grid-template-columns:130px minmax(0,1fr);grid-template-rows:none;min-height:128px}
  .fg-mode-art{min-height:110px}
  .fg-mode-copy{padding:3px}
  .fg-mode-play{min-height:30px}
  .fg-section-title h2{font-size:1rem}
  .fg-how-grid{grid-template-columns:1fr}
  .journey-current-card{grid-template-columns:1fr auto}
  .journey-play{grid-column:1/-1;width:100%}
  .journey-history-grid{grid-template-columns:repeat(3,1fr)}
}

@media(max-width:520px){
  .fg-app-shell{padding:6px 6px 70px}
  .fg-player-strip{padding:6px;border-radius:16px}
  .fg-player-summary{display:none}
  .fg-player-stats>div{padding:6px}
  .fg-player-stats small{font-size:.42rem}
  .fg-player-stats b{font-size:.83rem}
  .fg-player-stats span{display:none}
  .fg-home-hero{padding:7px;border-radius:17px}
  .fg-home-hero-copy{padding:2px;gap:8px}
  .fg-home-hero-copy>img{width:74px;height:74px}
  .fg-home-hero-copy small{font-size:.45rem}
  .fg-home-hero-copy h1{font-size:1.08rem;margin:3px 0}
  .fg-home-hero-copy p{font-size:.67rem;margin-bottom:6px}
  .fg-home-hero-copy .ma-primary,.fg-home-hero-copy .ma-secondary{min-height:34px;padding:0 8px;font-size:.58rem}
  .fg-home-scene{min-height:105px}
  .fg-mode-panel{grid-template-columns:112px minmax(0,1fr);min-height:116px;padding:6px}
  .fg-mode-art{min-height:102px}
  .fg-mode-copy small{font-size:.44rem}
  .fg-mode-copy b{font-size:.84rem}
  .fg-mode-copy>span{font-size:.59rem}
  .fg-page-footer{font-size:.58rem}

  body.game-active .game-shell{padding:max(3px,env(safe-area-inset-top)) 4px max(4px,env(safe-area-inset-bottom))}
  .game-frame,.puzzle-frame,.arcade-frame,.mini-frame{gap:3px}
  .game-topbar{min-height:46px;height:46px;padding:3px 5px;border-radius:12px}
  .game-topbar h1{font-size:1.06rem}
  .game-topbar .eyebrow{font-size:.39rem}
  .screen-brand{display:none}
  .icon-btn{width:30px;height:30px;border-radius:9px}

  .tile small{display:none}
  .return-pipe{width:16px;height:16px}
  .return-pipe img{width:10px;height:10px}
  .game-board{padding:4px;border-width:3px;border-radius:11px}
  .tile,.a-tile{border-radius:5px}
  .pipe-rack-head small{display:none}
  .puzzle-layout{grid-template-rows:var(--board-size) 62px 48px;gap:3px}
  .puzzle-right-rail{height:62px}
  .puzzle-right-rail .pipe-rack{height:62px;grid-template-rows:11px 1fr;padding:3px 4px}
  .tray-pipe{height:43px;min-width:48px}
  .tray-pipe-art{height:31px}
  .puzzle-left-rail{height:48px}
  .puzzle-actions button{min-height:40px}
  .toolbox{height:40px}
  .tool-btn{width:40px;height:40px;grid-template-rows:24px auto}
  .tool-btn img{width:22px;height:22px}
}

@media(max-height:700px) and (min-width:1001px){
  .game-topbar{min-height:58px}
  .game-topbar h1{font-size:1.55rem}
  .game-topbar .eyebrow,.screen-brand{display:none}
  .game-shell{padding:6px}
  .game-frame{gap:5px}
}
