/* DOBOX Asia · V154 · J1/J2/J4 narrative coherence */

/* J1 — airport baggage announcement · strict composition recovery */
.airport-v154{isolation:isolate}
.airport-v154-panel{
  position:absolute;
  z-index:34;
  left:clamp(20px,5vw,72px);
  bottom:calc(var(--hud-bottom-safe-area,24px) + 22px);
  width:min(560px,calc(100vw - 40px));
  max-height:calc(100vh - var(--hud-top-safe-area,76px) - var(--hud-bottom-safe-area,24px) - 48px);
  display:grid;
  gap:10px;
  padding:18px 20px;
  border-radius:22px;
  background:rgba(5,20,28,.84);
  backdrop-filter:blur(14px);
  color:#fff;
  box-shadow:0 18px 60px rgba(0,0,0,.28);
  overflow:auto;
}
.airport-v154-baggage-copy,
.airport-v154-announcement,
.airport-v154-transcript,
.airport-v154-panel .airport-v58-next{
  position:static!important;
  inset:auto!important;
  left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;
  width:100%!important;
  max-width:none!important;
  transform:none!important;
}
.airport-v154-baggage-copy{padding:0;background:none;box-shadow:none;color:inherit;backdrop-filter:none}
.airport-v154-baggage-copy small{letter-spacing:.12em;opacity:.72}
.airport-v154-baggage-copy h2{margin:.3rem 0 .45rem;font-size:clamp(1.45rem,2.3vw,2.25rem)}
.airport-v154-baggage-copy p{margin:0;line-height:1.5}
.airport-v154-announcement{height:42px;min-height:42px}
.airport-v154-transcript{
  padding:10px 12px;
  border-radius:14px;
  background:rgba(250,250,247,.96);
  color:#17252b;
  box-shadow:none;
}
.airport-v154-transcript summary{cursor:pointer;font-weight:750}
.airport-v154-transcript p{margin:.72rem 0 0;line-height:1.5}
.airport-v154-transcript .romaji{font-size:.92rem;color:#4e6066}
.airport-v154-panel .airport-v154-baggage-next{
  min-height:50px!important;
  padding:12px 16px!important;
  border-radius:14px!important;
}
.airport-stage-2 .airport-v154-wayfinding-next{top:auto!important}

/* Shuttle: keep copy stable while the world changes behind it */
.shuttle-v154 .shuttle-v154-cinematic{
  position:absolute;
  left:clamp(20px,5vw,72px);
  bottom:calc(var(--hud-bottom-safe-area,24px) + 28px);
  z-index:30;
  width:min(520px,calc(100vw - 40px));
  padding:18px 20px;
  border-radius:20px;
  background:rgba(5,20,28,.78);
  backdrop-filter:blur(14px);
  color:#fff;
}
.shuttle-v154 .shuttle-v154-cinematic small{opacity:.7;letter-spacing:.1em}
.shuttle-v154 .shuttle-v154-cinematic p{line-height:1.55}

/* J2 — Aoi becomes another traveller, not a guide */
.v154-aoi-panel{max-width:min(620px,calc(100vw - 40px))}
.v154-aoi-panel .d2-origin{margin-top:14px}
.v154-line-exchange,
.v154-aoi-departure{
  margin:12px auto;
  padding:14px 16px;
  border-radius:16px;
  background:rgba(250,250,247,.94);
  color:#17252b;
  box-shadow:0 10px 30px rgba(0,0,0,.14)
}
.v154-line-exchange p,.v154-aoi-departure p{line-height:1.5}

/* J4 — human fruit-stall conversation + SMS */
.d4-vendor-dialogue{
  display:grid;
  gap:4px;
  margin:10px 0;
  padding:12px 14px;
  border-left:3px solid rgba(255,255,255,.45);
  background:rgba(0,0,0,.14);
  border-radius:0 12px 12px 0;
}
.d4-vendor-dialogue b{font-size:clamp(1rem,1.6vw,1.2rem)}
.d4-vendor-dialogue span{font-size:.92rem;opacity:.84;line-height:1.45}
.d4-v154-write-reply{margin-top:12px}
.d4-v154-write-reply summary{cursor:pointer;font-weight:700}
.d4-v154-reply-row{display:flex;gap:8px;margin-top:10px}
.d4-v154-reply-row input{min-width:0;flex:1;padding:11px 12px;border-radius:12px;border:1px solid rgba(20,40,50,.18);font:inherit}
.d4-v154-yuki-sms{
  margin-top:12px;
  padding:14px;
  border-radius:16px;
  background:rgba(235,246,239,.95);
  color:#17352b
}
.d4-v154-yuki-sms small{letter-spacing:.1em;font-weight:800}

@media (max-width:700px){
  .airport-v154-panel{
    left:12px;right:12px;bottom:max(12px,calc(env(safe-area-inset-bottom) + 8px));
    width:auto;max-height:min(48svh,420px);padding:14px;border-radius:18px;gap:9px;
  }
  .airport-v154-baggage-copy h2{font-size:1.3rem}
  .airport-v154-baggage-copy p{font-size:.92rem;line-height:1.42}
  .airport-v154-transcript{max-height:28svh;overflow:auto}
  .shuttle-v154 .shuttle-v154-cinematic{left:14px;right:14px;bottom:calc(var(--hud-bottom-safe-area,20px) + 18px);width:auto;padding:14px 15px}
  .v154-aoi-panel{max-width:calc(100vw - 24px)}
  .v154-line-exchange,.v154-aoi-departure{margin:10px 12px;max-width:none}
  .d4-v154-reply-row{flex-direction:column}
}

@media (prefers-reduced-motion:reduce){
  .airport-v154 *, .shuttle-v154 *, .d4-v154-fruit-conversation *{animation-duration:.001ms!important;transition-duration:.001ms!important}
}

/* V154.3 strict: phase-0 CTA belongs to the narrative panel, never to the viewport. */
.chapter-day1 .airport-stage-0 .airport-v154-panel .airport-v58-next{position:static!important;inset:auto!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;width:100%!important;height:auto!important;min-height:50px!important;}

/* V154.3 strict visual recovery — J2/Aoi
   Neutralise les micro-tailles héritées V141 et donne à Aoi une vraie composition
   laptop/desktop sans transformer le panneau en billboard. */
@media (min-width:1181px){
  .experience.chapter-day2.d2-aoi .v154-aoi-panel{
    left:clamp(34px,4vw,74px)!important;
    right:auto!important;
    bottom:clamp(28px,4.5vh,56px)!important;
    width:clamp(500px,38vw,570px)!important;
    max-width:clamp(500px,38vw,570px)!important;
    max-height:min(66vh,650px)!important;
    padding:20px 22px 18px!important;
    border-left:3px solid #c36c5d!important;
    background:linear-gradient(90deg,rgba(4,24,33,.90),rgba(4,24,33,.68) 74%,rgba(4,24,33,.30))!important;
    backdrop-filter:blur(8px)!important;
    overflow:auto!important;
  }
  .experience.chapter-day2.d2-aoi .v154-aoi-panel .eyebrow{
    font-size:10px!important;
    line-height:1.35!important;
    letter-spacing:.16em!important;
  }
  .experience.chapter-day2.d2-aoi .v154-aoi-panel .d2-aoi-beat{
    margin:2px 0 10px!important;
    font:italic 16px/1.55 var(--font-display),Georgia,serif!important;
    color:rgba(255,255,255,.86)!important;
  }
  .experience.chapter-day2.d2-aoi .v154-aoi-panel .d2-aoi-speech{
    margin:8px 0 10px!important;
    padding:12px 0 12px 14px!important;
    background:rgba(4,24,33,.35)!important;
  }
  .experience.chapter-day2.d2-aoi .v154-aoi-panel .d2-aoi-speaker{
    font-size:9px!important;
    letter-spacing:.16em!important;
  }
  .experience.chapter-day2.d2-aoi .v154-aoi-panel .d2-aoi-meaning{
    font-size:18px!important;
    line-height:1.4!important;
  }
  .experience.chapter-day2.d2-aoi .v154-aoi-panel .d2-aoi-japanese small{
    font-size:9px!important;
  }
  .experience.chapter-day2.d2-aoi .v154-aoi-panel .d2-aoi-japanese b,
  .experience.chapter-day2.d2-aoi .v154-aoi-panel .d2-aoi-jp-first{
    font-size:21px!important;
    line-height:1.35!important;
  }
  .experience.chapter-day2.d2-aoi .v154-aoi-panel .d2-aoi-japanese span,
  .experience.chapter-day2.d2-aoi .v154-aoi-panel .d2-aoi-understand span{
    font-size:12px!important;
    line-height:1.4!important;
  }
  .experience.chapter-day2.d2-aoi .v154-aoi-panel .v129-human-choice{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
    margin:12px 0 2px!important;
    max-width:none!important;
  }
  .experience.chapter-day2.d2-aoi .v154-aoi-panel .v129-human-choice>button,
  .experience.chapter-day2.d2-aoi .v154-aoi-panel .d2-human-response{
    min-height:64px!important;
    padding:11px 13px!important;
    border-radius:14px!important;
    background:rgba(4,24,33,.72)!important;
    border:1px solid rgba(247,240,223,.28)!important;
    color:#fff!important;
  }
  .experience.chapter-day2.d2-aoi .v154-aoi-panel .v129-human-choice b{
    font-size:15px!important;
    line-height:1.28!important;
  }
  .experience.chapter-day2.d2-aoi .v154-aoi-panel .v129-human-choice small,
  .experience.chapter-day2.d2-aoi .v154-aoi-panel .d2-human-response small{
    font-size:12px!important;
    line-height:1.35!important;
    opacity:.8!important;
  }
  .experience.chapter-day2.d2-aoi .v154-aoi-panel .v129-social-whisper{
    font-size:14px!important;
    line-height:1.5!important;
  }
  .experience.chapter-day2.d2-aoi .v154-aoi-panel .d2-origin{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:8px!important;
  }
  .experience.chapter-day2.d2-aoi .v154-aoi-panel .d2-origin input{
    min-height:48px!important;
    font-size:15px!important;
  }
  .experience.chapter-day2.d2-aoi .v154-aoi-panel .d2-origin button,
  .experience.chapter-day2.d2-aoi .v154-aoi-panel .d2-primary{
    min-height:48px!important;
    font-size:14px!important;
  }
}

@media (max-width:700px){
  .experience.chapter-day2.d2-aoi .v154-aoi-panel{
    left:12px!important;
    right:12px!important;
    bottom:max(10px,calc(env(safe-area-inset-bottom) + 7px))!important;
    width:auto!important;
    max-width:none!important;
    max-height:43svh!important;
    padding:14px 14px 13px!important;
    background:linear-gradient(90deg,rgba(4,24,33,.90),rgba(4,24,33,.69))!important;
    overflow:auto!important;
  }
  .experience.chapter-day2.d2-aoi .v154-aoi-panel .eyebrow{font-size:9px!important}
  .experience.chapter-day2.d2-aoi .v154-aoi-panel .d2-aoi-beat{
    font:italic 13px/1.5 var(--font-display),Georgia,serif!important;
    color:rgba(255,255,255,.84)!important;
  }
  .experience.chapter-day2.d2-aoi .v154-aoi-panel .d2-aoi-meaning{font-size:16px!important}
  .experience.chapter-day2.d2-aoi .v154-aoi-panel .d2-aoi-japanese b,
  .experience.chapter-day2.d2-aoi .v154-aoi-panel .d2-aoi-jp-first{font-size:18px!important}
  .experience.chapter-day2.d2-aoi .v154-aoi-panel .d2-aoi-japanese span{font-size:11px!important}
  .experience.chapter-day2.d2-aoi .v154-aoi-panel .v129-human-choice{
    grid-template-columns:1fr!important;
    gap:7px!important;
    margin:10px 0 0!important;
  }
  .experience.chapter-day2.d2-aoi .v154-aoi-panel .v129-human-choice>button{
    min-height:54px!important;
    padding:9px 11px!important;
    color:#fff!important;
    background:rgba(4,24,33,.72)!important;
  }
  .experience.chapter-day2.d2-aoi .v154-aoi-panel .v129-human-choice b{font-size:14px!important}
  .experience.chapter-day2.d2-aoi .v154-aoi-panel .v129-human-choice small{font-size:11px!important}
}

/* V154.3 strict visual recovery — J2/konbini exit
   LINE, receipt memory and departure belong to one authored narrative rail. */
.v154-konbini-exit-panel{
  position:absolute;
  z-index:34;
  left:clamp(24px,5vw,72px);
  bottom:calc(var(--hud-bottom-safe-area,24px) + 24px);
  width:min(560px,calc(100vw - 48px));
  max-height:min(64vh,620px);
  overflow:auto;
  padding:18px 20px;
  border-left:3px solid #c36c5d;
  border-radius:0 20px 20px 0;
  background:linear-gradient(90deg,rgba(4,24,33,.91),rgba(4,24,33,.72));
  color:#fff;
  backdrop-filter:blur(10px);
  box-shadow:0 18px 54px rgba(0,0,0,.20);
}
.v154-konbini-exit-panel .v73-exit-caption,
.v154-konbini-exit-panel .v73-exit-memory,
.v154-konbini-exit-panel .v154-line-exchange,
.v154-konbini-exit-panel .v154-aoi-departure,
.v154-konbini-exit-panel .v73-street-continue{
  position:static!important;
  inset:auto!important;
  left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;
  transform:none!important;
  width:100%!important;
  max-width:none!important;
}
.v154-konbini-exit-panel .v73-exit-caption{
  padding:0!important;
  margin:0 0 10px!important;
  background:none!important;
  border:0!important;
  text-shadow:none!important;
}
.v154-konbini-exit-panel .v73-exit-caption b{
  display:block;
  font:500 clamp(24px,2.2vw,34px)/1.08 var(--font-display),Georgia,serif!important;
  color:#fff!important;
}
.v154-konbini-exit-panel .v73-exit-caption small{
  display:block;
  margin-top:5px;
  font-size:12px!important;
  line-height:1.4!important;
  color:rgba(255,255,255,.72)!important;
}
.v154-konbini-exit-panel .v73-exit-memory{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  margin:0 0 12px!important;
  padding:8px 10px!important;
  border:1px solid rgba(247,240,223,.18)!important;
  border-radius:12px!important;
  background:rgba(255,255,255,.06)!important;
  color:#fff!important;
  box-shadow:none!important;
}
.v154-konbini-exit-panel .v73-exit-memory span,
.v154-konbini-exit-panel .v73-exit-memory b{font-size:13px!important;color:#fff!important}
.v154-konbini-exit-panel .v73-exit-memory small{font-size:10px!important;opacity:.7!important}
.v154-konbini-exit-panel .v154-line-exchange,
.v154-konbini-exit-panel .v154-aoi-departure{
  margin:0!important;
  padding:12px 0 0!important;
  border-top:1px solid rgba(247,240,223,.16)!important;
  border-radius:0!important;
  background:transparent!important;
  color:#fff!important;
  box-shadow:none!important;
}
.v154-konbini-exit-panel .v154-line-exchange>p,
.v154-konbini-exit-panel .v154-aoi-departure>p{
  margin:0 0 10px!important;
  font-size:15px!important;
  line-height:1.5!important;
  color:#fff!important;
}
.v154-konbini-exit-panel .v129-human-choice{
  max-width:none!important;
  margin:10px 0 0!important;
}
.v154-konbini-exit-panel .v129-human-choice>button{
  min-height:54px!important;
  background:rgba(4,24,33,.68)!important;
  color:#fff!important;
}
.v154-konbini-exit-panel .v73-street-continue{
  min-height:50px!important;
  margin-top:10px!important;
  padding:11px 14px!important;
  border-radius:14px!important;
}

/* Kawabata: one observation/action, never two CTAs to the same next scene. */
.chapter-day2.d2-arcade .v78-arcade-walk{display:none!important}

@media (max-width:700px){
  .v154-konbini-exit-panel{
    left:12px;right:12px;
    bottom:max(12px,calc(env(safe-area-inset-bottom) + 8px));
    width:auto;
    max-height:48svh;
    padding:14px;
    border-radius:18px;
    border-left:2px solid #c36c5d;
  }
  .v154-konbini-exit-panel .v73-exit-caption b{font-size:23px!important}
  .v154-konbini-exit-panel .v73-exit-caption small{font-size:11px!important}
  .v154-konbini-exit-panel .v73-exit-memory{margin-bottom:9px!important;padding:7px 9px!important}
  .v154-konbini-exit-panel .v129-human-choice{grid-template-columns:1fr!important;gap:7px!important}
  .v154-konbini-exit-panel .v129-human-choice>button{min-height:50px!important}
  .v154-konbini-exit-panel .v154-line-exchange>p,
  .v154-konbini-exit-panel .v154-aoi-departure>p{font-size:14px!important}
}

/* V154.3 strict visual recovery — J2/Kushida and konbini optional info */
.experience.chapter-day2 :is(.v97-context-fold,.v97-context-fold.shrine){
  position:absolute!important;
  z-index:36!important;
  top:clamp(112px,15vh,150px)!important;
  right:clamp(18px,3vw,44px)!important;
  left:auto!important;
  bottom:auto!important;
  width:auto!important;
  max-width:min(390px,calc(100vw - 36px))!important;
  padding:0!important;
  border:0!important;
  border-radius:16px!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:visible!important;
}
.experience.chapter-day2 :is(.v97-context-fold,.v97-context-fold.shrine)>summary{
  display:flex!important;
  align-items:center!important;
  min-height:44px!important;
  padding:9px 13px!important;
  border:1px solid rgba(247,240,223,.26)!important;
  border-radius:999px!important;
  background:rgba(4,24,33,.78)!important;
  color:#fff!important;
  box-shadow:0 8px 24px rgba(0,0,0,.16)!important;
  backdrop-filter:blur(8px)!important;
  font-size:12px!important;
  line-height:1.2!important;
}
.experience.chapter-day2 :is(.v97-context-fold,.v97-context-fold.shrine)[open]{
  width:min(390px,calc(100vw - 36px))!important;
  padding:12px!important;
  background:rgba(4,24,33,.92)!important;
  color:#fff!important;
  box-shadow:0 18px 44px rgba(0,0,0,.24)!important;
  overflow:auto!important;
}
.experience.chapter-day2 :is(.v97-context-fold,.v97-context-fold.shrine)[open]>summary{
  margin:-3px 0 10px!important;
  min-height:38px!important;
  padding:5px 0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:#efb596!important;
}
.experience.chapter-day2 :is(.v97-context-fold,.v97-context-fold.shrine)[open]>p{
  margin:0!important;
  font-size:14px!important;
  line-height:1.5!important;
  color:rgba(255,255,255,.9)!important;
}
.experience.chapter-day2 :is(.v97-context-fold,.v97-context-fold.shrine)[open]>a{
  display:inline-block!important;
  margin-top:9px!important;
  color:#efb596!important;
  font-size:12px!important;
}

/* Prayer belongs below the HUD, never behind brand/time. */
.experience.chapter-day2.d2-prayer .d2-prayer-panel{
  position:absolute!important;
  z-index:34!important;
  left:clamp(34px,4vw,72px)!important;
  right:auto!important;
  top:auto!important;
  bottom:clamp(28px,4.5vh,56px)!important;
  width:clamp(460px,35vw,540px)!important;
  max-width:clamp(460px,35vw,540px)!important;
  max-height:min(64vh,620px)!important;
  padding:18px 20px!important;
  border-left:3px solid #c36c5d!important;
  border-radius:0 18px 18px 0!important;
  background:linear-gradient(90deg,rgba(4,24,33,.92),rgba(4,24,33,.70))!important;
  color:#fff!important;
  backdrop-filter:blur(9px)!important;
  overflow:auto!important;
}
.experience.chapter-day2.d2-prayer .d2-prayer-panel .eyebrow{font-size:10px!important;letter-spacing:.16em!important}
.experience.chapter-day2.d2-prayer .d2-prayer-panel h2{
  margin:6px 0 8px!important;
  font-size:clamp(30px,2.5vw,40px)!important;
  line-height:1.04!important;
  color:#fff!important;
}
.experience.chapter-day2.d2-prayer .d2-prayer-panel .d2-physical-copy{
  margin:0 0 12px!important;
  font-size:14px!important;
  line-height:1.5!important;
  color:rgba(255,255,255,.86)!important;
}
.experience.chapter-day2.d2-prayer .d2-offering-choices{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:8px!important;
  margin:12px 0!important;
}
.experience.chapter-day2.d2-prayer .d2-offering-choices button{
  min-height:52px!important;
  padding:9px!important;
  border-radius:12px!important;
  background:rgba(4,24,33,.68)!important;
  color:#fff!important;
  border:1px solid rgba(247,240,223,.28)!important;
  font-size:15px!important;
}
.experience.chapter-day2.d2-prayer .d2-info-fold{
  margin-top:10px!important;
  padding-top:10px!important;
}
.experience.chapter-day2.d2-prayer .d2-info-fold summary{font-size:12px!important}
.experience.chapter-day2.d2-prayer .d2-info-fold p{font-size:13px!important;line-height:1.5!important}

/* Real touch targets for konbini exploration. */
.experience.chapter-day2.d2-konbini .v73-zone,
.experience.chapter-day2.d2-konbini .v73-basket-chip{
  min-height:48px!important;
}
.experience.chapter-day2.d2-checkout .v73-response-pills button{
  min-height:48px!important;
  padding:8px 11px!important;
}
.experience.chapter-day2.d2-checkout .v73-response-pills button b{font-size:12px!important}
.experience.chapter-day2.d2-checkout .v73-response-pills button small{font-size:9px!important}

@media (max-width:700px){
  .experience.chapter-day2 :is(.v97-context-fold,.v97-context-fold.shrine){
    top:108px!important;
    right:12px!important;
    max-width:calc(100vw - 24px)!important;
  }
  .experience.chapter-day2 :is(.v97-context-fold,.v97-context-fold.shrine)>summary{
    min-height:42px!important;
    padding:8px 11px!important;
    font-size:11px!important;
  }
  .experience.chapter-day2 :is(.v97-context-fold,.v97-context-fold.shrine)[open]{
    position:fixed!important;
    top:auto!important;
    left:12px!important;
    right:12px!important;
    bottom:max(12px,calc(env(safe-area-inset-bottom) + 8px))!important;
    width:auto!important;
    max-width:none!important;
    max-height:42svh!important;
    z-index:70!important;
    padding:14px!important;
    border-radius:18px!important;
  }
  .experience.chapter-day2.d2-prayer .d2-prayer-panel{
    left:12px!important;
    right:12px!important;
    bottom:max(12px,calc(env(safe-area-inset-bottom) + 8px))!important;
    width:auto!important;
    max-width:none!important;
    max-height:50svh!important;
    padding:14px!important;
    border-left:2px solid #c36c5d!important;
    border-radius:18px!important;
  }
  .experience.chapter-day2.d2-prayer .d2-prayer-panel h2{font-size:27px!important}
  .experience.chapter-day2.d2-prayer .d2-prayer-panel .d2-physical-copy{font-size:13px!important}
  .experience.chapter-day2.d2-prayer .d2-offering-choices button{min-height:50px!important;font-size:14px!important}
}
