/* 探索画面。地図・部隊の消耗・袋・操作だけを同じ視界に置く。 */
.expedition-launch {
  --exp-brass: #c7aa70;
  --exp-brass-soft: rgba(199, 170, 112, .38);
  --exp-panel: rgba(17, 24, 35, .96);
  --exp-panel-deep: rgba(10, 15, 23, .98);
  position: relative;
  isolation: isolate;
  max-width: 1180px;
  margin: 0 auto;
  color: var(--text);
}

.expedition-launch::before,
.expedition-launch::after {
  content: "";
  position: absolute;
  inset: -10px;
  z-index: -2;
  border-radius: calc(var(--radius) + 5px);
  pointer-events: none;
}

.expedition-launch::before {
  background-image: var(--expedition-scene, none);
  background-repeat: no-repeat;
  background-position: center top;
  background-size: cover;
  image-rendering: pixelated;
  opacity: .72;
}

.expedition-launch::after {
  z-index: -1;
  border: 1px solid rgba(199, 170, 112, .25);
  background:
    linear-gradient(180deg, rgba(8, 13, 20, .20), rgba(8, 13, 20, .68) 78%, rgba(8, 13, 20, .86)),
    radial-gradient(circle at 50% 28%, transparent 0 22%, rgba(5, 9, 15, .48) 82%);
  box-shadow: inset 0 0 70px rgba(0, 0, 0, .42), 0 12px 34px rgba(0, 0, 0, .2);
}

.expedition-hero {
  min-height: 92px;
  display: flex;
  align-items: flex-end;
  padding: 18px 20px;
  margin-bottom: 12px;
  background:
    linear-gradient(90deg, rgba(8, 13, 20, .88), rgba(8, 13, 20, .32) 72%, rgba(8, 13, 20, .58));
  border: 1px solid var(--exp-brass-soft);
  border-radius: var(--radius);
  box-shadow: inset 0 -36px 54px rgba(4, 7, 12, .48);
  image-rendering: pixelated;
}

.expedition-title {
  width: 100%;
  margin: 0;
  align-items: center;
  text-shadow: 0 2px 10px #05070b;
}

.expedition-title .name {
  font-family: ui-serif, "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(20px, 2.6vw, 29px);
  letter-spacing: .05em;
}

.expedition-title .meta {
  color: #ede4d1;
  font-size: 14px;
}

.expedition-layout {
  display: grid;
  grid-template-areas:
    "map"
    "bag"
    "lower";
  gap: 12px;
  min-width: 0;
}

.expedition-map-zone { grid-area: map; min-width: 0; }
.expedition-bag-zone { grid-area: bag; min-width: 0; }
.expedition-lower-zone { grid-area: lower; min-width: 0; }

.expedition-navigation { min-width: 0; }

.expedition-map-zone > .map-wrap {
  margin: 0;
  padding: 28px 10px 9px;
  border-color: var(--exp-brass-soft);
  background:
    radial-gradient(80% 90% at 50% 48%, rgba(109, 141, 152, .10), transparent 72%),
    rgba(7, 14, 22, .88);
  backdrop-filter: blur(2px);
  box-shadow: inset 0 0 36px rgba(0, 0, 0, .36);
}

.expedition-map-zone .map-floor {
  color: #a9a493;
  text-transform: uppercase;
}

.expedition-map-zone .map-floor b { color: #e3d6ba; }

.expedition-map-zone .map-scroll {
  max-height: min(43svh, 430px);
  min-height: 196px;
  padding: 4px;
}

.expedition-map-zone .map-legend {
  margin-top: 8px;
  gap: 4px 12px;
  color: #aaa795;
}

.expedition-alert {
  margin: 0 0 8px;
  padding-block: 8px;
}

.expedition-move {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin-top: 8px;
}

.expedition-move .dpad {
  width: 148px;
  margin: 0;
  gap: 5px;
}

.expedition-move .dpad button {
  min-width: 44px;
  border-color: var(--exp-brass-soft);
  background: linear-gradient(180deg, #273342, #18212d);
  box-shadow: inset 0 1px rgba(255, 255, 255, .04), 0 2px 6px rgba(0, 0, 0, .28);
}

.expedition-move .dpad button:disabled {
  background: rgba(12, 17, 24, .62);
  border-color: rgba(105, 113, 126, .22);
}

.expedition-move .dpad .c {
  width: 20px;
  height: 20px;
  place-self: center;
  border: 1px solid var(--exp-brass-soft);
  border-radius: 50%;
  background: radial-gradient(circle, var(--exp-brass) 0 2px, #1d2834 3px 100%);
  opacity: .72;
}

.expedition-stairs { width: 100%; margin-top: 8px; }

.expedition-party-card {
  margin: 0;
  border-color: var(--exp-brass-soft);
  background: rgba(15, 23, 34, .89);
  backdrop-filter: blur(3px);
}

.expedition-party-card .party-head {
  padding-bottom: 7px;
  border-bottom: 1px solid var(--line-soft);
}

.expedition-party-card > .rows {
  display: grid;
  gap: 8px;
  margin-top: 8px;
}

.expedition-party-card .hp-unit.with-face {
  min-width: 0;
  margin: 0;
  padding: 6px;
  border: 1px solid rgba(199, 170, 112, .16);
  border-radius: 8px;
  background: rgba(6, 10, 16, .42);
}

.expedition-party-card .hp-face {
  width: 42px !important;
  height: 42px !important;
  border-color: var(--exp-brass-soft);
  border-radius: 5px;
}

.expedition-party-card .hp-row {
  gap: 6px;
  flex-wrap: wrap;
}

.expedition-party-card .hp-row .nm {
  min-width: 0;
  max-width: calc(100% - 43px);
  color: #f0e7d6;
}

.expedition-party-card .hp-row .bar {
  order: 3;
  flex-basis: calc(100% - 66px);
}

.expedition-party-card .hp-row .hpv { order: 4; }
.expedition-party-card .hp-row .eta { order: 5; flex-basis: 100%; }

.expedition-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(104px, .34fr);
  gap: 8px;
  margin-top: 10px;
}

.expedition-actions > button { margin: 0; }

.expedition-bag {
  position: relative;
  height: 100%;
  min-height: 118px;
  margin: 0;
  padding: 14px;
  overflow: hidden;
  border-color: var(--exp-brass-soft);
  background:
    linear-gradient(155deg, rgba(199, 170, 112, .07), transparent 44%),
    rgba(8, 14, 22, .90);
  backdrop-filter: blur(3px);
  box-shadow: inset 0 0 34px rgba(0, 0, 0, .28);
}

.expedition-bag::before,
.expedition-bag::after {
  content: "";
  position: absolute;
  width: 18px;
  height: 18px;
  pointer-events: none;
  opacity: .55;
}

.expedition-bag::before {
  top: 5px;
  left: 5px;
  border-top: 1px solid var(--exp-brass);
  border-left: 1px solid var(--exp-brass);
}

.expedition-bag::after {
  right: 5px;
  bottom: 5px;
  border-right: 1px solid var(--exp-brass);
  border-bottom: 1px solid var(--exp-brass);
}

.expedition-bag-head {
  margin-bottom: 10px;
  padding-bottom: 9px;
  border-bottom: 1px solid var(--exp-brass-soft);
}

.expedition-bag-mark,
.expedition-sealed-bag {
  position: relative;
  display: inline-block;
  width: 28px;
  height: 30px;
  flex: 0 0 auto;
  border: 1px solid #b99b63;
  border-radius: 44% 44% 38% 38% / 28% 28% 52% 52%;
  background: linear-gradient(145deg, #9d8152, #5d472b 72%);
  box-shadow: inset 5px 0 rgba(255, 241, 195, .06), 0 3px 8px rgba(0, 0, 0, .32);
}

.expedition-bag-mark::before,
.expedition-sealed-bag::before {
  content: "";
  position: absolute;
  left: 4px;
  right: 4px;
  top: 5px;
  height: 3px;
  border-top: 2px solid #d2b878;
  border-bottom: 1px solid #4d3a25;
}

.expedition-bag-head .name {
  font-family: ui-serif, "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: 18px;
  letter-spacing: .08em;
}

.expedition-bag-empty {
  display: grid;
  min-height: 68px;
  place-items: center;
  color: var(--text-faint);
}

.expedition-bag > .rows {
  margin-bottom: 10px;
  padding: 7px 9px;
  border: 1px solid var(--line-soft);
  border-radius: 7px;
  background: rgba(0, 0, 0, .2);
}

.expedition-loot-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 8px;
}

.expedition-loot,
.expedition-sealed-loot {
  width: 100%;
  min-height: 66px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 10px;
  text-align: left;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(31, 40, 53, .72);
  color: var(--text);
}

button.expedition-loot:active {
  border-color: var(--exp-brass);
  background: rgba(49, 59, 72, .9);
}

.expedition-loot-icon {
  width: 36px;
  height: 36px;
  flex: 0 0 auto;
  border: 1px solid rgba(199, 170, 112, .44);
  border-radius: 50%;
  background:
    radial-gradient(circle at 38% 35%, #f4ddb0 0 8%, transparent 9%),
    conic-gradient(from 45deg, #9e8352, #554427, #b49b66, #554427, #9e8352);
  box-shadow: 0 0 12px rgba(199, 170, 112, .12);
}

.expedition-loot-copy,
.expedition-sealed-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.expedition-loot-name {
  overflow-wrap: anywhere;
  font-weight: 650;
  line-height: 1.3;
}

.expedition-loot-meta,
.expedition-sealed-copy small {
  color: var(--text-faint);
  font-size: 14px;
  line-height: 1.35;
}

.expedition-sealed-loot {
  border-color: var(--rare-line);
  background:
    radial-gradient(circle at 22% 50%, rgba(190, 131, 255, .14), transparent 35%),
    rgba(41, 28, 57, .72);
}

.expedition-sealed-loot.epic {
  border-color: #bc9650;
  background:
    radial-gradient(circle at 22% 50%, rgba(255, 204, 105, .17), transparent 35%),
    rgba(58, 42, 23, .76);
}

.expedition-sealed-loot .expedition-sealed-bag {
  width: 40px;
  height: 44px;
  border-color: #b47bd9;
  background: linear-gradient(145deg, #74518c, #35243f 72%);
}

.expedition-sealed-loot.epic .expedition-sealed-bag {
  border-color: #e1bc6a;
  background: linear-gradient(145deg, #a17b3d, #4d351c 72%);
  box-shadow: inset 6px 0 rgba(255, 241, 195, .08), 0 0 14px rgba(225, 188, 106, .17);
}

.expedition-sealed-loot .expedition-sealed-bag::after {
  content: "?";
  position: absolute;
  inset: 12px 0 0;
  color: #eadcf3;
  font: 700 17px/1 ui-serif, serif;
  text-align: center;
}

.expedition-sealed-loot.epic .expedition-sealed-bag::after { color: #ffe4a3; }
.expedition-sealed-copy b { color: #e7d7f1; }
.expedition-sealed-loot.epic .expedition-sealed-copy b { color: #ffe1a0; }

.expedition-bag-risk {
  margin-top: 10px;
  padding-top: 9px;
  border-top: 1px solid var(--line-soft);
  color: var(--text-faint);
  font-size: 14px;
  line-height: 1.45;
}

@media (min-width: 640px) {
  .expedition-party-card > .rows { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1100px) {
  .expedition-hero { min-height: 92px; padding: 18px 22px; }

  .expedition-layout {
    grid-template-areas:
      "bag map"
      "bag lower";
    grid-template-columns: minmax(300px, 342px) minmax(0, 1fr);
    align-items: start;
    gap: 14px;
  }

  .expedition-bag-zone {
    position: sticky;
    top: 0;
    max-height: calc(100dvh - var(--hud-h) - var(--tavern-height) - 154px);
  }

  .expedition-bag {
    display: flex;
    flex-direction: column;
    max-height: inherit;
  }

  .expedition-bag .expedition-loot-list {
    grid-template-columns: 1fr;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding-right: 3px;
  }

  .expedition-map-zone .map-scroll {
    max-height: min(42dvh, 400px);
    min-height: 260px;
  }

  .expedition-map-zone { --mcell: 34px; }

  .expedition-navigation {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 158px;
    align-items: center;
    gap: 12px;
  }

  .expedition-navigation .expedition-move { margin-top: 0; }

  .expedition-lower-zone {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 210px;
    align-items: start;
    gap: 10px;
  }

  .expedition-lower-zone .expedition-actions {
    grid-template-columns: 1fr;
    margin-top: 0;
  }
}

@media (max-width: 639px) {
  .expedition-hero {
    min-height: 76px;
    padding: 12px 14px;
    background-position: center 44%;
  }

  .expedition-title { gap: 6px; flex-wrap: wrap; }
  .expedition-title .name { font-size: 19px; }
  .expedition-title .meta { flex-basis: 100%; margin-left: 0; }

  .expedition-map-zone .map-scroll {
    max-height: min(42svh, 348px);
    min-height: 168px;
  }

  .expedition-map-zone .map-legend { font-size: 14px; }
  .expedition-move .dpad { width: 140px; }
  .expedition-loot-list { grid-template-columns: 1fr 1fr; }
  .expedition-loot, .expedition-sealed-loot { min-height: 62px; padding: 7px 8px; }
  .expedition-loot-icon { width: 31px; height: 31px; }
  .expedition-sealed-loot .expedition-sealed-bag { width: 34px; height: 39px; }
}

@media (max-width: 360px) {
  .expedition-loot-list { grid-template-columns: 1fr; }
  .expedition-actions { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .expedition-launch * { scroll-behavior: auto; }
}
/* 合格図の配置・面。地図は実グリッドのまま、背景／左の袋／右の地図・隊と移動へ接続。 */
body[data-screen="expedition"]:not(.is-gate) .screen { padding:0; }
.expedition-launch { min-height:100%; max-width:none; margin:0; padding:22px; display:flex; flex-direction:column; background:linear-gradient(#0f192999,#111e2cdc),var(--expedition-scene) center/cover; }
.expedition-launch::before,.expedition-launch::after { display:none; }
.expedition-hero { min-height:0; padding:0; margin:0 0 15px; border:0; border-radius:0; box-shadow:none; background:none; }
.expedition-title .name { font:23px/1.4 "Yu Mincho",serif; letter-spacing:0; }
.expedition-layout { display:grid; grid-template-columns:265px minmax(0,1fr); grid-template-areas:"bag map" "bag lower"; gap:10px 16px; align-content:start; flex:1; }
.expedition-map-zone { display:flex; flex-direction:column; }
.expedition-navigation { flex:1; display:flex; flex-direction:column; }
.expedition-navigation .map-wrap { margin:0; padding:12px; background:#0e172478; border:1px solid #74857b55; border-radius:0; box-shadow:none; backdrop-filter:none; flex:1; display:flex; flex-direction:column; }
.expedition-map-zone .map-scroll { min-height:220px; height:clamp(220px,38dvh,420px); max-height:420px; padding:4px; }
.expedition-map-zone .map-floor { position:static; font-size:14px; padding:0 0 8px; }
.expedition-lower-zone { display:flex; flex-direction:column; align-items:stretch; gap:10px; }
.expedition-party-card { padding:10px 12px; background:#1a242ee6; border:0; border-radius:0; box-shadow:none; }
.expedition-party-card .party-head { border:0; padding:0; margin-bottom:6px; font-size:14px; }
.expedition-party-card .party-head .name { font-size:14px; }
.expedition-party-card>.rows { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:0; }
.expedition-party-card .hp-row { padding:0; min-width:0; }
.expedition-movebar { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.expedition-move { margin:0; flex:0 0 auto; }
.expedition-move .dpad { display:flex; width:auto; gap:5px; margin:0; }
.expedition-move .dpad .c { display:none; }
.expedition-move .dpad button { min-width:38px; width:38px; height:34px; padding:4px; border:1px solid #69747a; background:#202b39; border-radius:0; box-shadow:none; }
.expedition-move .dpad .n { order:0; }.expedition-move .dpad .w { order:1; }.expedition-move .dpad .s { order:2; }.expedition-move .dpad .e { order:3; }
.expedition-actions { display:flex; gap:8px; margin:0; }
.expedition-actions button { width:auto; min-height:34px; padding:5px 12px; font-size:14px; white-space:normal; }
.expedition-bag-zone { display:flex; position:static; align-self:stretch; max-height:none; }
.expedition-bag { width:100%; margin:0; padding:16px; border:1px solid #ae987064; border-radius:0; background:linear-gradient(145deg,#29313cee,#171f29f5); box-shadow:inset 0 0 0 3px #17212d60; }
.expedition-bag-head { padding-bottom:7px; margin-bottom:12px; border-bottom:1px solid #786e5760; color:#e1c993; }
.expedition-bag-head .name { font-size:14px; color:#e1c993; }
.expedition-bag-head .meta { color:#e1c993; font-size:14px; }
.expedition-loot,.expedition-sealed-loot { border-radius:0; padding:12px 8px; margin:10px 0; border:1px solid #626973; background:#192330; font-size:14px; }
.expedition-loot-list { gap:0; }
.expedition-loot-icon:has(img) { background:none; border:0; box-shadow:none; }
.expedition-loot-icon:has(img)::before,.expedition-loot-icon:has(img)::after { display:none; }
.expedition-loot-icon .item-ico { width:32px; height:32px; object-fit:contain; }
.expedition-sealed-loot.rare { border-color:#c5a365; background:linear-gradient(100deg,#8b682b3d,#192330); }
@media(max-width:700px) {
 .expedition-launch { padding:16px 12px; }
 .expedition-layout { grid-template-columns:1fr; grid-template-areas:"map" "lower" "bag"; gap:10px; }
 .expedition-map-zone .map-scroll { height:215px; min-height:160px; max-height:32dvh; }
 .expedition-party-card { padding:8px 5px; }
 .expedition-party-card>.rows { gap:5px; }
 .expedition-party-card .hp-row { font-size:14px; }
 .expedition-party-card .hp-row .row { flex-wrap:wrap; gap:2px; }
 .expedition-movebar { gap:6px; }
 .expedition-move .dpad { gap:3px; }
 .expedition-move .dpad button { min-width:32px; width:32px; height:36px; }
 .expedition-actions { gap:4px; }
 .expedition-actions button { font-size:14px; padding:4px 6px; }
 .expedition-bag { padding:10px; }
 .expedition-loot-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
 .expedition-loot,.expedition-sealed-loot { margin:0; padding:7px 5px; font-size:14px; }
 .expedition-bag-head { margin-bottom:8px; }
}
.expedition-map-zone,.expedition-navigation,.expedition-navigation .map-wrap,.expedition-map-zone .map-scroll { min-width:0; max-width:100%; }
.expedition-mini-party { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.expedition-mini-unit { display:flex; gap:8px; align-items:center; min-width:0; }
.expedition-mini-unit>.tachie-face { border:1px solid #8d8166; border-radius:0; }
.expedition-mini-status { min-width:0; flex:1; }
.expedition-mini-status b { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:14px; }
.expedition-mini-status small { display:block; font-size:14px; color:#c5c8be; }
.expedition-mini-status .hpbar { height:4px; margin:3px 0; border:0; border-radius:0; }
.expedition-mini-unit>button { padding:2px 4px; font-size:14px; min-width:24px; }
.expedition-party-card .party-head button { margin-left:auto; padding:0 4px; min-height:24px; font-size:14px; }
@media(max-width:700px) {
 .expedition-mini-party { grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px 5px; }
 .expedition-mini-unit { gap:4px; flex-wrap:wrap; }
 .expedition-mini-status b { font-size:14px; }
 .expedition-mini-status small { font-size:14px; }
}
/* 地図と下の部隊・操作は約6:4。マスは表示領域に連動させない。 */
@media(min-width:701px) {
 .expedition-launch { height:100%; min-height:620px; }
 .expedition-layout { min-height:0; grid-template-rows:minmax(240px,3fr) minmax(270px,2fr); align-items:stretch; }
 .expedition-map-zone,.expedition-navigation,.expedition-navigation .map-wrap { min-height:0; }
 .expedition-navigation { align-items:stretch; }
 .expedition-navigation .map-wrap { width:100%; }
 .expedition-map-zone .map-scroll { flex:1; height:0; min-height:0; max-height:none; container-type:size; }
 .expedition-map-zone .map { --mcell:40px; }
 .expedition-bag { min-height:0; max-height:100%; }
 .expedition-bag .expedition-loot-list { overflow-y:auto; }
}
@media(max-width:700px) {
 .expedition-map-zone .map-scroll { height:clamp(180px,28dvh,260px); max-height:none; }
 .expedition-map-zone { --mcell:36px; }
}
.expedition-map-zone .map .tachie-chip { width:calc(var(--mcell) * .85)!important; height:calc(var(--mcell) * .85)!important; }

.expedition-lower-zone { min-height:0; justify-content:space-between; }
.expedition-mini-party { grid-template-columns:repeat(3,minmax(0,1fr)); }
.expedition-mini-unit { align-items:center; }
.expedition-mini-status b { white-space:normal; overflow-wrap:anywhere; }
.expedition-movebar { flex-wrap:wrap; }
.expedition-move .dpad button { min-width:44px; width:44px; height:44px; }
.expedition-map-zone > .expedition-move { flex:none; margin-top:10px; gap:8px; padding-bottom:var(--safe-b,0px); }
.expedition-actions { flex:1; justify-content:flex-end; flex-wrap:wrap; }
.expedition-actions button { min-height:44px; font-size:16px; }
@media(max-width:1000px) and (min-width:701px) {
 .expedition-launch { min-height:740px; }
 .expedition-mini-party { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:700px) {
 .expedition-layout { grid-template-rows:auto; }
 .expedition-map-zone .map-scroll { min-height:0; }
 .expedition-mini-party { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .expedition-actions { justify-content:flex-start; }
}

.expedition-party-card { margin:0; }
.expedition-mini-party { gap:6px 10px; }
.expedition-mini-heading { display:flex; align-items:baseline; flex-wrap:wrap; gap:0 7px; }
.expedition-mini-heading b { min-width:0; }
.expedition-mini-level { flex:0 0 auto; color:#c5c8be; font-size:14px; white-space:nowrap; }
.expedition-shortcuts { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:8px; width:100%; }
.expedition-bag-summary { display:flex; align-items:center; justify-content:space-between; gap:8px; width:100%; min-width:0; min-height:44px; margin:0; padding:7px 10px; color:#e1c993; border-color:#ae987064; font-size:13px; line-height:1.45; text-align:left; }
.expedition-bag-summary > span:first-child { min-width:0; overflow-wrap:anywhere; }
.expedition-bag-summary > span:last-child { flex:0 0 auto; font-size:20px; }
.expedition-bag-summary.is-overflow { color:#ffb09c; border-color:#b77965; }
.expedition-bag:focus-visible { outline:2px solid #e1c993; outline-offset:2px; }
.map-wrap .map > button.mcell.is-step { padding:0; margin:0; min-height:0; border:0; border-radius:0; font:inherit; cursor:pointer; }
.map-wrap .map > button.mcell.is-step:disabled { opacity:1; cursor:default; }
.map-wrap .map > button.mcell.is-step:active,
.map-wrap .map > button.mcell.is-step-pending { filter:brightness(1.25); outline:2px solid #e1c993; outline-offset:-2px; }
.map-wrap .map > button.mcell.is-step:focus-visible { outline:2px solid #e1c993; outline-offset:-2px; }
.expedition-shortcuts > button { min-width:0; min-height:44px; margin:0; padding:7px 8px; font-size:15px; }
.expedition-shortcuts > button:first-child { background:#293c47; border-color:#a7b5b7; color:#f0ecdf; }
.expedition-direction-row { display:flex; align-items:center; justify-content:center; gap:8px; width:100%; }
.expedition-direction-row[data-move-side="right"] { flex-direction:row-reverse; }
.move-side-choices { display:flex; gap:8px; margin-top:8px; }
.move-side-choices > button { flex:1; min-height:44px; }
.move-side-choices > button[aria-pressed="true"] { border-color:#d9b86f; color:#f3ecda; background:#4a4435; }
.escape-policy-controls { display:flex; align-items:center; gap:3px; flex:1; min-width:0; max-width:212px; }
.escape-policy-entry { position:relative; display:flex; align-items:center; justify-content:center; gap:3px; flex:1; min-width:0; min-height:44px; padding:4px; font-size:13px; line-height:1.35; white-space:normal; }
.escape-policy-entry > .ui-icon { flex:0 0 20px; width:20px; height:20px; margin:0; }
.escape-policy-entry .ui-icon-escape, .escape-choices .ui-icon-escape { flex:0 0 28px; min-width:28px; width:28px; height:28px; image-rendering:auto; transform:scale(1.2); }
.escape-policy-entry > span { min-width:0; }
.escape-policy-summary { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:2px 6px; width:100%; }
.escape-policy-action { display:inline-flex; align-items:center; gap:3px; white-space:nowrap; }
.escape-policy-condition { padding:1px 5px; border:1px solid #bc916566; border-radius:4px; background:#291f19a6; color:#ead4b1; font-size:11px; line-height:1.35; white-space:nowrap; }
.escape-policy-chevron { position:absolute; right:3px; bottom:0; font-size:10px; opacity:.7; }
.escape-choices button { display:flex; align-items:center; justify-content:center; gap:6px; }
.escape-encounter { text-align:center; }
.escape-enemies { display:grid; grid-template-columns:repeat(auto-fit,minmax(80px,1fr)); gap:8px; padding:12px 4px; background:linear-gradient(#15202c66,#15202ca8),var(--escape-scene,none) center/cover; }
.escape-enemy { min-width:0; font-size:13px; }
.escape-enemy .tachie-stack { max-width:100%; margin:0 auto; }
.escape-enemy .tachie-stack img { max-width:100%; }
.escape-enemy.is-attacking { animation:escape-pursuit .25s ease-out; }
.escape-encounter-message { font-size:19px; font-weight:bold; margin:16px 0 10px; }
.escape-pursuit-losses { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:8px; }
.escape-hit { display:grid; grid-template-columns:1fr auto; gap:2px 8px; text-align:left; font-size:14px; padding:6px 10px; background:#111b25; }
.escape-hit > b { color:#ffb09c; }
.escape-hit > progress { grid-column:1 / -1; width:100%; height:8px; align-self:center; accent-color:#82b99f; }
.escape-encounter-note { min-height:20px; }
@keyframes escape-pursuit { 50% { transform:translateY(6px); filter:brightness(1.4); } }
@media(prefers-reduced-motion:reduce) { .escape-enemy.is-attacking { animation:none; } }
.escape-hp-condition:not([hidden]) { display:flex; align-items:center; flex-wrap:wrap; gap:6px; }
.escape-hp-condition input { width:76px; }
@media(max-width:700px) and (max-height:700px) {
 .expedition-alert { font-size:13px; line-height:1.45; padding:4px 8px; margin-bottom:5px; }
}
.expedition-mini-unit { display:grid; grid-template-columns:36px minmax(0,1fr) auto; gap:4px; }
.expedition-mini-heading { grid-column:1 / -1; align-items:center; }
.expedition-mini-heading .expedition-growth { flex:0 1 auto; max-width:100%; white-space:normal; padding:3px 6px; margin:0; font-size:13px; }
.expedition-growth .icon-text { max-width:100%; }
.expedition-growth .expedition-growth-labels { display:grid; min-width:0; overflow-wrap:anywhere; text-align:left; }
@media(max-width:400px) {
 .expedition-mini-unit { grid-template-columns:36px minmax(0,1fr); }
 .expedition-mini-unit > button { grid-column:2; justify-self:start; }
}
@media(min-width:701px) {
 .expedition-direction-row { width:auto; flex:1; }
 .expedition-map-zone > .expedition-move { flex-direction:row; flex-wrap:wrap; justify-content:space-between; }
 .expedition-shortcuts { width:min(100%,380px); }
}

/* PCの地図と袋を少し広げ、下の操作に必要な高さは残す。 */
@media(min-width:1100px) {
 .expedition-layout { grid-template-columns:clamp(300px,20vw,340px) minmax(0,1fr); grid-template-rows:minmax(240px,13fr) minmax(270px,7fr); }
 .expedition-map-zone .map { --mcell:44px; }
}

/* 袋そのものを見せる。揺れは獲得時だけ、表示済みの中身に合わせて膨らむ。 */
.expedition-bag-hero { display:grid; place-items:center; flex:0 0 124px; height:124px; }
.expedition-bag-hero .expedition-bag-art { width:104px; height:104px; max-width:none; image-rendering:auto; transform-origin:50% 90%; transform:scale(var(--bag-scale-x),var(--bag-scale-y)); filter:drop-shadow(0 6px 5px #0007); }
.expedition-bag-hero.has-gained { animation:bag-gain .55s ease-out both; }
.expedition-bag-head .name { font-size:20px; }
@keyframes bag-gain { 0%,100% { transform:translateY(0) rotate(0); } 30% { transform:translateY(-9px) rotate(-5deg); } 60% { transform:translateY(0) rotate(4deg); } 80% { transform:rotate(-2deg); } }
@media(prefers-reduced-motion:reduce) { .expedition-bag-hero.has-gained { animation:none; } }
@media(max-width:700px) { .expedition-bag-hero { flex-basis:100px; height:100px; } .expedition-bag-hero .expedition-bag-art { width:88px; height:88px; } }

/* PK・賞金首(2026-09-22 契約 §5)。襲撃の設定と対人戦の結果文。390/1280 とも1列で折り返す */
.raid-policy-choices { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.raid-policy-choices button { flex:1 1 auto; min-height:38px; padding:6px 10px; font-size:14px; color:var(--text-dim); }
.raid-policy-choices button.is-active { background:var(--normal-bg); border-color:#d9b86f; color:var(--text); }
.raid-policy-choices.is-muted button:not(.is-active),.raid-policy .is-muted { opacity:.6; }
.raid-policy .note { font-size:14px; }
.raid-policy-line { justify-content:space-between; margin:6px 0 10px; }
.raid-policy-line .btn-sm { flex:0 0 auto; }
.raid-result .notice { margin-top:6px; }
.expedition-stamina-line .tag.wanted,.expedition-stamina-line .tag.pk { flex:0 0 auto; }

/* 最新結果は常に2行分。履歴は上のマップへ重ね、移動キーを押し下げない。 */
.expedition-log { position:relative; flex:none; margin-top:8px; min-width:0; z-index:6; }
.expedition-log-current { display:flex; align-items:center; gap:8px; height:58px; padding:6px 10px; background:#1e302b; border:1px solid #648575; border-radius:8px; }
.expedition-log-latest { flex:1; min-width:0; font-size:14px; line-height:21px; max-height:42px; overflow:hidden; overflow-wrap:anywhere; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.expedition-log-toggle { flex:none; min-height:44px; padding:6px 10px; white-space:nowrap; font-size:13px; }
.expedition-log-panel { position:absolute; left:0; right:0; bottom:100%; margin-bottom:4px; background:#1e302b; border:1px solid #799785; border-radius:9px; box-shadow:0 -6px 20px #0006; overflow:hidden; }
.expedition-log-panel[hidden] { display:none; }
.expedition-log-heading { font-size:12px; color:#b2c9bb; padding:8px 12px; border-bottom:1px solid #57725f; }
.expedition-log-list { list-style:none; margin:0; padding:0; height:132px; max-height:min(25dvh, calc(var(--expedition-log-panel-height, 200px) - 40px)); overflow-y:auto; overscroll-behavior:contain; touch-action:pan-y; scrollbar-width:thin; scrollbar-color:#8caa96 #1e302b; }
.expedition-log-entry { margin:0; padding:10px 12px; min-height:44px; font-size:14px; line-height:21px; overflow-wrap:anywhere; white-space:pre-wrap; border-bottom:1px solid #57725f55; }
.expedition-log [data-kind="err"] { color:#ffb7b0; }
.expedition-log [data-kind="warn"] { color:#efd39a; }
.expedition-log [data-kind="good"] { color:#b1e0ba; }
/* 探索メニューは見出しへ。地図の高さは移動・帰還が収まる範囲で決める。 */
.expedition-title { display:grid; grid-template-columns:minmax(0,1fr) max-content; align-items:start; gap:8px; }
.expedition-title .expedition-menu { grid-column:2; grid-row:1; margin:0; min-height:44px; padding:6px 10px; font-size:14px; white-space:nowrap; }
.expedition-title .name { grid-column:1; grid-row:1; min-width:0; align-self:center; white-space:normal; overflow-wrap:anywhere; }
@media(min-width:701px) {
 .expedition-launch { height:auto; min-height:100%; }
 .expedition-layout { flex:none; grid-template-rows:auto auto; }
 .expedition-navigation { flex:none; }
 .expedition-navigation .map-wrap { flex:none; }
 .expedition-map-zone .map-scroll { flex:none; height:clamp(220px,38dvh,420px); }
 .expedition-lower-zone { justify-content:flex-start; }
 /* PCは左の袋を直接見られるため、移動下の袋への重複導線を省く。 */
 .expedition-map-zone > .expedition-move > .expedition-bag-summary { display:none; }
}

/* 残量は数値と補助ゲージを1行に収め、増減で高さを変えない。 */
.expedition-hero { flex-direction:column; align-items:stretch; }
.expedition-stamina-line { display:flex; align-items:center; gap:4px 8px; min-height:26px; flex-wrap:wrap; flex:none; font-size:13px; line-height:20px; color:#e4e9df; font-variant-numeric:tabular-nums; }
.expedition-stamina-line > span { flex:none; white-space:nowrap; }
.expedition-stamina-gauge { appearance:none; -webkit-appearance:none; display:block; flex:0 1 160px; width:160px; min-width:40px; height:4px; border:0; border-radius:2px; overflow:hidden; background:#ffffff24; accent-color:#b6cf8a; }
.expedition-stamina-gauge::-webkit-progress-bar { background:#ffffff24; border-radius:2px; }
.expedition-stamina-gauge::-webkit-progress-value { background:#b6cf8a; border-radius:2px; }
.expedition-stamina-gauge::-moz-progress-bar { background:#b6cf8a; border-radius:2px; }
@media(max-width:700px) { .expedition-stamina-gauge { flex-basis:100px; width:100px; } }

/* 門番の後に残る煙。背景を残し、明滅させず左右から一度だけ流れ込む。 */
.overlay.hidden-presence-fx { padding:0; background:transparent; overflow:hidden; animation:presence-veil 6.4s ease both; }
.overlay.hidden-presence-fx.center-mode .overlay-panel { position:absolute; inset:0; width:100%; max-width:none; max-height:none; margin:0; border:0; border-radius:0; background:transparent; box-shadow:none; overflow:hidden; }
.overlay.hidden-presence-fx.center-mode .overlay-body { padding:0; position:absolute; inset:0; overflow:hidden; }
.hidden-presence-smoke { position:absolute; inset:0; width:100%; height:100%; filter:blur(5px); opacity:0; animation:presence-smoke 6.4s ease both; }
.hidden-presence-whisper { position:absolute; left:8%; right:8%; top:43%; transform:translateY(-50%); text-align:center; color:#ede7da; font-family:'Hiragino Mincho ProN','Yu Mincho',serif; text-shadow:0 2px 16px #000,0 0 35px #000; opacity:0; animation:presence-whisper 6.4s ease both; }
.hidden-presence-whisper-title { font-size:clamp(22px,6vw,32px); letter-spacing:.18em; line-height:1.8; margin-bottom:20px; }
.hidden-presence-whisper p { max-width:420px; margin:0 auto; font-size:15px; line-height:2; letter-spacing:.08em; }
.hidden-presence-fx.is-leaving { animation:none; opacity:0; transition:opacity .5s ease; }
@keyframes presence-veil { 0%,100%{background:#090b1400} 25%,70%{background:#090b1470} }
@keyframes presence-smoke { 0%,100%{opacity:0} 20%{opacity:.7} 45%,65%{opacity:1} 85%{opacity:.45} }
@keyframes presence-whisper { 0%,20%,100%{opacity:0;filter:blur(7px)} 35%,72%{opacity:1;filter:blur(0)} 88%{opacity:0;filter:blur(3px)} }
@media(prefers-reduced-motion:reduce) { .overlay.hidden-presence-fx,.hidden-presence-smoke,.hidden-presence-whisper{animation-duration:5s} .hidden-presence-smoke{filter:blur(8px)} }
