/* Text screens follow the visible phone area, including browser bars and zoom. */
.fitted-menu {
  inset:auto;
  right:auto;
  bottom:auto;
  transform-origin:0 0;
  min-width:0;
  max-width:none;
  overflow-x:hidden;
  overscroll-behavior:contain;
  touch-action:pan-y pinch-zoom;
}
.fitted-menu.shade {background:radial-gradient(ellipse at 50% 30%,#183052fc,#0b1128fc 85%);}
.fitted-menu [data-menu-scroll] {
  min-width:0;
  min-height:0;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  -webkit-overflow-scrolling:touch;
  touch-action:pan-y pinch-zoom;
}
.fitted-menu button,.fitted-menu summary {touch-action:manipulation;}
.menu-fit-button {
  position:absolute;
  z-index:30;
  top:max(6px,env(safe-area-inset-top));
  right:max(10px,env(safe-area-inset-right));
  min-width:80px;
  min-height:44px;
  padding:8px 12px;
  background:#183553;
  border:1px solid #8fcedf;
  border-radius:8px;
  color:#e9f8ff;
  font-size:13px;
}
.fitted-menu.menu-zoomed {padding-top:calc(56px + env(safe-area-inset-top));}
.menu-disclosure {border-top:1px solid #93b3d440;margin:0;}
.menu-disclosure>summary {
  cursor:pointer;
  min-height:44px;
  padding:13px 4px;
  color:#d9edff;
  font-size:14px;
  font-weight:700;
  line-height:1.35;
}
.menu-disclosure>summary:focus-visible {outline:2px solid #90e4f0;outline-offset:-2px;}
.menu-disclosure .help-note {border:0;padding:0 4px;margin:0 0 14px;}
.menu-disclosure .settings {margin:4px 0 12px;}
.menu-disclosure .settings label {display:flex;align-items:center;min-height:44px;gap:5px;font-size:13px;}
.menu-disclosure .settings input {width:18px;height:18px;flex-shrink:0;}
.pause-header .pause-lead,.results-content>p {font-size:13px;color:#cbd2df;line-height:1.6;}
.pause-content .phone-pause-guide {margin:4px 0 16px;}
#pause-screen.fitted-menu {display:flex;align-items:center;justify-content:center;}
#pause-screen .pause-wrap {display:flex;flex-direction:column;min-height:0;max-height:100%;}
.pause-header,.pause-actions {flex-shrink:0;}
.pause-content {overflow-y:auto;flex:1 1 auto;}
.pause-action-row {display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.pause-actions {padding-top:12px;border-top:1px solid #93b3d440;}
.pause-actions .primary,.pause-actions .secondary {min-width:0;width:100%;min-height:48px;margin:0;padding:12px 14px;font-size:14px;}
#pause-screen #save-status {font-size:11px!important;line-height:1.4;margin:8px 0 0!important;}
#pause-screen #save-leave {margin:0;}
#pause-screen .recent-notices {padding:0;background:none;margin:0 0 8px;}
.pause-content>#quit {margin:8px 0;min-height:44px;font-size:12px;}
.pause-action-row:has(#save-leave[hidden]) {grid-template-columns:1fr;}
.results-content {min-width:0;}
#results #victory-sky {position:absolute;height:100%;}
.results-content>.prototype-note {margin-bottom:6px;}
.run-details .results-detail {padding:7px 0 12px;}
.run-details[open]>summary {margin-bottom:4px;}
.treasure-body,.treasure-footer {display:contents;}

/* Use the menu's own fitted width, rather than the larger page behind it. */
.fitted-menu.menu-compact,.fitted-menu.menu-landscape {
  padding:max(14px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));
}
.fitted-menu.menu-compact.menu-zoomed,.fitted-menu.menu-landscape.menu-zoomed {padding-top:calc(56px + env(safe-area-inset-top));}
.menu-compact .primary,.menu-compact .secondary {min-width:0;max-width:100%;overflow-wrap:anywhere;}
.menu-compact .pause-wrap h2,.menu-compact .results-wrap h2,.menu-compact .choice-wrap h2 {font-size:30px;line-height:1.08;margin:9px 0 10px;}
.menu-compact .eyebrow {font-size:9px;letter-spacing:1.5px;}
.menu-compact .pause-header .pause-lead {font-size:13px;margin:0 0 12px;}
.menu-compact .phone-pause-guide,.menu-compact#pause-screen .help-note {font-size:13px;line-height:1.5;}
.menu-compact .pause-wrap {height:100%;padding:0;}
.menu-compact .pause-content .controls-grid {margin:8px 0 16px;gap:12px;}
.menu-compact .recent-notices {padding:0;background:none;margin:0 0 8px;}
.menu-compact .recent-notices ol {padding-left:18px;}
.menu-compact .settings {display:grid;grid-template-columns:1fr;gap:0;}
.menu-compact .pause-actions .primary,.menu-compact .pause-actions .secondary {gap:8px;font-size:14px;line-height:1.3;}
.menu-compact .pause-actions .primary span {display:none;}

.fitted-menu.menu-compact#results,.fitted-menu.menu-landscape#results {display:flex;align-items:center;justify-content:center;}
.menu-compact#results .results-wrap,.menu-landscape#results .results-wrap {display:flex;flex-direction:column;height:100%;max-height:100%;min-height:0;}
.menu-compact .results-content,.menu-landscape .results-content {overflow-y:auto;flex:1 1 auto;}
.menu-compact .results-content>p {font-size:13px;line-height:1.5;margin:10px 0;}
.menu-compact #result-next {font-size:12px;}
.menu-compact .result-stats {grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 10px;margin:17px 0;padding:14px 0;}
.menu-compact .result-stat {min-width:0;}
.menu-compact .result-stat strong {font-size:30px;overflow-wrap:anywhere;}
.menu-compact .result-stat span {font-size:9px;letter-spacing:.7px;margin-top:5px;}
.menu-compact .results-detail {grid-template-columns:minmax(0,1fr);gap:18px;}
.menu-compact .results-detail h3 {font-size:18px;margin-bottom:10px;}
.menu-compact .damage-row {grid-template-columns:minmax(65px,.85fr) minmax(20px,1fr) minmax(40px,.5fr);gap:8px;font-size:12px;}
.menu-compact .damage-row>span {overflow-wrap:anywhere;}
.menu-compact .results-detail p {font-size:12px;}
.menu-compact #victory-cast {width:120px;height:56px;max-width:42%;margin:0 0 7px 8px;}
.menu-compact #victory-goals {gap:5px;margin:12px 0;}
.menu-compact #victory-goals li {font-size:11px;padding:6px 8px;}
.menu-compact .result-actions,.menu-landscape .result-actions {
  flex-shrink:0;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:8px;
  margin:0;
  padding-top:12px;
  border-top:1px solid #93b3d440;
}
.menu-compact .result-actions>button,.menu-landscape .result-actions>button {width:100%;min-width:0;min-height:46px;padding:11px 12px;font-size:13px;gap:8px;line-height:1.3;justify-content:center;text-align:center;overflow-wrap:anywhere;}
.menu-compact .result-actions #next-stage {grid-column:1/-1;}
.menu-compact .result-actions #retry span {display:none;}

.menu-compact .choice-wrap {max-width:100%;}
.menu-compact .choice-wrap>p {font-size:12px;line-height:1.45;margin:0 0 15px;}
.menu-compact .choice-options,.menu-compact .alliance-options {grid-template-columns:minmax(0,1fr);gap:10px;}
.menu-compact .upgrade-card,.menu-compact .alliance-options .upgrade-card {padding:12px 12px 12px 78px;min-height:126px;min-width:0;}
.menu-compact .power-preview,.menu-compact .alliance-options canvas.power-preview {position:absolute;width:70px;height:80px;left:3px;top:20px;margin:0;}
.menu-compact .upgrade-card h3 {font-size:22px;line-height:1.08;margin:7px 0;overflow-wrap:anywhere;}
.menu-compact .upgrade-card p {font-size:12px;line-height:1.4;}
.menu-compact .upgrade-tag {font-size:8px;letter-spacing:.6px;max-width:85%;}
.menu-compact .choose-label {font-size:9px;padding-top:8px;}
.menu-compact .pause-note {font-size:9px;letter-spacing:.7px;margin-top:16px;}
.menu-compact .pause-note>span {font-size:12px;margin-top:5px;}

.fitted-menu.menu-compact.treasure-screen,.fitted-menu.menu-landscape.treasure-screen {display:flex;align-items:center;justify-content:center;}
.menu-compact .treasure-dialog,.menu-landscape .treasure-dialog {display:flex;flex-direction:column;width:100%;height:100%;max-height:100%;min-height:0;margin:0;padding:16px;gap:0;}
.menu-compact .treasure-header,.menu-landscape .treasure-header {flex-shrink:0;}
.menu-compact .treasure-title {font-size:28px;line-height:1.08;margin:7px 0 8px;}
.menu-compact .treasure-eyebrow {font-size:9px;letter-spacing:1.3px;}
.menu-compact .treasure-body,.menu-landscape .treasure-body {display:block;overflow-y:auto;flex:1 1 auto;}
.menu-compact .treasure-stage {height:clamp(70px,calc(var(--menu-height)*.18),145px);width:100%;object-fit:contain;margin:0 auto;}
.menu-compact .treasure-primary {margin:4px 0 12px;padding:12px;gap:10px;}
.menu-compact .treasure-primary-title {font-size:24px;line-height:1.1;overflow-wrap:anywhere;}
.menu-compact .treasure-primary-detail {font-size:13px;line-height:1.4;}
.menu-compact .treasure-primary-extra {font-size:11px;}
.menu-compact .treasure-primary-icon {font-size:30px;width:32px;flex-basis:32px;}
.menu-compact .treasure-rewards {grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0 0 8px;}
.menu-compact .treasure-item {display:block;padding:8px 6px;min-height:0;text-align:center;}
.menu-compact .treasure-loot-icon {display:block;width:28px;height:28px;margin:0 auto 4px;float:none;}
.menu-compact .treasure-amount {font-size:13px;overflow-wrap:anywhere;}
.menu-compact .treasure-detail {font-size:11px;line-height:1.3;}
.menu-compact .treasure-footer,.menu-landscape .treasure-footer {display:block;flex-shrink:0;padding-top:10px;border-top:1px solid #93b3d440;}
.menu-compact .treasure-pause-note {font-size:11px;line-height:1.4;margin:0 0 8px;}
.menu-compact .treasure-continue,.menu-landscape .treasure-continue {width:100%;min-height:46px;font-size:14px;margin:0;padding:11px 14px;}

/* Short landscape keeps the same visible action area and scrolls the details. */
.menu-landscape .pause-wrap {height:100%;padding:0;max-width:760px;}
.menu-landscape .pause-header h2,.menu-landscape .results-wrap h2 {font-size:28px;line-height:1.08;margin:6px 0;}
.menu-landscape .pause-header .pause-lead {font-size:12px;margin:0 0 8px;}
.menu-landscape .pause-content .phone-pause-guide {font-size:13px;line-height:1.4;margin:8px 0;}
.menu-landscape .pause-actions {padding-top:8px;}
.menu-landscape .pause-actions #save-status {font-size:10px;margin-top:5px;}
.menu-landscape .pause-content .controls-grid {margin:10px 0;gap:10px;}
.menu-landscape .result-stats {gap:14px;grid-template-columns:repeat(5,minmax(0,1fr));padding:12px 0;margin:14px 0;}
.menu-landscape .result-stat strong {font-size:28px;}
.menu-landscape .result-actions {grid-template-columns:repeat(3,minmax(0,1fr));padding-top:8px;}
.menu-landscape .result-actions:not(:has(#next-stage:not([hidden]))) {grid-template-columns:1fr 1fr;}
.menu-landscape #victory-cast {width:130px;height:61px;margin:0 0 6px 14px;}
.menu-landscape .results-content>p {font-size:12px;margin:8px 0;}
.menu-landscape .treasure-dialog {max-width:980px;padding:12px 16px;}
.menu-landscape .treasure-title {font-size:25px;margin:4px 0 8px;}
.menu-landscape .treasure-body {display:grid;grid-template-columns:minmax(100px,.6fr) minmax(0,1.4fr);gap:8px 14px;}
.menu-landscape .treasure-stage {grid-column:1;grid-row:1/3;align-self:center;width:100%;height:auto;max-height:190px;object-fit:contain;}
.menu-landscape .treasure-primary {grid-column:2;grid-row:1;margin:0;padding:10px 12px;gap:10px;}
.menu-landscape .treasure-primary-title {font-size:24px;}
.menu-landscape .treasure-primary-detail {font-size:12px;}
.menu-landscape .treasure-rewards {grid-column:2;grid-row:2;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0 0 5px;}
.menu-landscape .treasure-item {font-size:12px;min-height:60px;}
.menu-landscape .treasure-detail {font-size:11px;}
.menu-landscape .treasure-footer {display:flex;align-items:center;gap:18px;padding-top:8px;}
.menu-landscape .treasure-pause-note {font-size:11px;flex:1;margin:0;}
.menu-landscape .treasure-continue {width:45%;}
.menu-landscape .choice-wrap h2 {font-size:28px;line-height:1.08;}
.menu-landscape .choice-wrap>p {font-size:12px;margin-bottom:12px;}
.menu-landscape .upgrade-card {min-height:180px;padding:13px;}
.menu-landscape .upgrade-card h3 {font-size:22px;}
.menu-landscape .upgrade-card p {font-size:12px;line-height:1.4;}
.menu-landscape .power-preview {height:54px;}
.menu-landscape .pause-note {font-size:9px;margin-top:12px;}

/* Very large text still reflows instead of forcing horizontal panning. */
.menu-compact .menu-wrap,.menu-compact .hero-copy,.menu-compact .hero-card {min-width:0;max-width:100%;}
.menu-compact .menu-top,.menu-compact .menu-bottom,.menu-compact .launch-row {flex-wrap:wrap;}
.menu-compact .hero-number,.menu-compact .hero-trait {white-space:normal;}
.menu-compact .title-row h1 {font-size:38px;overflow-wrap:anywhere;}
.menu-compact .heroes {grid-template-columns:repeat(2,minmax(0,1fr));}
.menu-compact .combat-key {flex-wrap:wrap;}
.menu-compact .combat-key>span {min-width:110px;}
.menu-compact .saved-journey {min-width:0;}
