/* Island projects share the game's controls; all content scrolls inside the window. */
.life-overlay[hidden], .life-hud[hidden], .life-greet[hidden], .life-toast[hidden], .life-hud button[hidden], .catalog-variants[hidden] { display: none !important; }
.life-overlay { position: absolute; inset: 0; z-index: 24; display: grid; place-items: center; padding: max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left)); background: #173e4b88; pointer-events: auto; }
.life-window { width: min(960px,100%); max-height: 100%; height: min(740px,100%); display: flex; flex-direction: column; overflow: hidden; padding: 18px; gap: 12px; color: #fff5dd; background: #087f94; border: 2px solid #9bdbda; border-radius: 14px; box-shadow: 0 18px 70px #12344266; }
.life-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-shrink: 0; }
.life-head h2 { margin: 0; font-size: clamp(18px,2.4vw,26px); line-height: 1.2; }
.life-close { min-width: 48px; min-height: 48px; font-size: 28px; }
.life-tabs { display: flex; gap: 8px; flex: 0 0 auto; }
.life-tabs .btn { flex: 1; min-width: 0; min-height: 48px; font-size: 14px; padding: 8px 10px; white-space: normal; }
.life-tab.is-active { background: #f3d284; color: #29454b; border-color: #fff2cb; }
.life-pet-modes { display:flex; flex-wrap:wrap; gap:6px; }
.life-pet-modes .btn { flex:1 1 90px; min-width:0; }
.life-pet-modes .btn[aria-pressed="true"] { background:#f3d284; color:#29454b; border-color:#806627; box-shadow:inset 0 0 0 2px #806627; }
.life-card .life-pet-note { color:#4d6864; font-size:13px; }
.life-body { flex: 1 1 auto; min-height: 0; overflow: auto; overscroll-behavior: contain; touch-action: pan-y; padding: 0 4px 8px; }
.life-lead { margin: 0 0 16px; line-height: 1.55; }
.life-lead p { margin: 0 0 10px; }
.life-help { color: #d0edf0; font-size: 13px; }
.life-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.life-card { min-width: 0; display: flex; flex-direction: column; gap: 10px; padding: 14px; background: #f4f1e6; color: #244449; border: 1px solid #c6dfd6; border-radius: 10px; box-shadow: 0 3px 0 #055e7026; }
.life-card h3 { margin: 0; font-size: 20px; line-height: 1.3; overflow-wrap: anywhere; }
.life-card p { margin: 0; font-size: 14px; line-height: 1.45; }
.life-card-meta { color: #4d6864; font-size: 12px; line-height: 1.5; margin-top: auto; }
.life-thumbnail { display: block; width: 100%; height: 164px; object-fit: contain; border-radius: 6px; background: #c1dccc; }
.life-card .btn { min-height: 48px; font-size: 14px; white-space: normal; padding: 10px 14px; }
.life-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.life-actions .btn { flex: 1 1 130px; min-width: 0; min-height: 48px; white-space: normal; }
.life-status { flex-shrink: 0; margin: 0; font-size: 13px; line-height: 1.4; }
.life-status:empty { display: none; }
.life-empty, .life-confirm-text { padding: 24px 8px; line-height: 1.6; font-size: 16px; }
.life-name { width: 100%; min-height: 48px; color: #244449; background: #fffdf4; border: 1px solid #89b5aa; border-radius: 5px; padding: 8px 10px; font: 600 16px var(--font); user-select: text; -webkit-user-select: text; touch-action: manipulation; }
.life-hud { position: absolute; top: calc(var(--edge,12px) + 58px); left: var(--edge,12px); max-width: calc(100% - 2 * var(--edge,12px)); display: flex; align-items: center; gap: 6px; padding: 6px; border-radius: 9px; background: #075469df; color: #fff9e9; pointer-events: auto; z-index: 3; box-shadow: 0 3px 14px #17394422; }
.life-hud .btn { min-height: 44px; min-width: 44px; padding: 8px 10px; font-size: 13px; }
.life-hud .life-next { background: #eecb75; color: #304848; font-size: 24px; }
.life-hud.is-pet-placement .life-hub { display:none; }
.life-hud-text { min-width: 0; width: min(26vw,220px); padding: 0 6px; line-height: 1.3; }
.life-hud-title, .life-hud-detail { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.life-hud-title { font-size: 13px; font-weight: 600; }.life-hud-detail { font-size: 11px; color: #bfdee0; margin-top: 3px; }
.life-greet { position: absolute; top: calc(var(--edge,12px) + 126px); left: var(--edge,12px); min-height: 44px; z-index: 3; pointer-events: auto; }
.life-toast { position: absolute; left: 50%; transform: translateX(-50%); top: max(18px,env(safe-area-inset-top)); width:max-content; max-width: min(560px,calc(100% - 24px)); padding: 12px 18px; border-radius: 8px; background: #fff0c9; color: #294d50; font-size: 14px; text-align: center; z-index: 30; box-shadow: 0 4px 20px #17394440; pointer-events: none; }
.life-window button:focus-visible,.life-window input:focus-visible,.life-hud button:focus-visible { outline: 3px solid #ffdd88; outline-offset: 2px; }
.catalog-filters { grid-column: 1 / -1; display: flex; gap: 8px; align-items: center; min-width: 0; }
.catalog-filters select,.catalog-variants { min-height: 44px; min-width: 0; border-radius: 5px; border: 1px solid #a6d9dc; color: #fff4d6; background: #126a7d; padding: 7px; font: 13px var(--font); touch-action: manipulation; }
.catalog-filters select { flex: 1; width: 0; }.catalog-variants { width: 140px; max-width: 23%; }
.catalog-favorite { flex: 0 0 44px; width: 44px; min-height: 44px; font-size: 25px; padding: 0; }
.catalog-favorite[aria-pressed="true"] { color: #ffe38f; }
@media (max-width: 540px) {
  .life-window { padding: 10px; gap: 8px; border-radius: 10px; }
  .life-grid { grid-template-columns: minmax(0,1fr); gap: 12px; }
  .life-tabs { gap: 4px; }.life-tabs .btn { font-size: 12px; padding: 6px; }
  .life-tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .life-card { padding: 12px; }.life-card h3 { font-size: 18px; }
  .life-hud { right: var(--edge,12px); }.life-hud-text { flex: 1; width: 0; }
  .life-hud .btn { padding: 6px; }.life-hud .life-hub { max-width: 84px; }
  .catalog-footer { gap: 5px; }.catalog-variants { width: 74px; max-width: 23%; font-size: 11px; }
  .catalog-footer .pick-icon { display: none; }
}
@media (max-height: 500px) and (orientation: landscape) {
  .life-overlay { padding: 6px max(8px,env(safe-area-inset-right)) 6px max(8px,env(safe-area-inset-left)); }
  .life-window { padding: 8px 12px; gap: 6px; }
  .life-head h2 { font-size: 18px; }.life-head,.life-close { min-height: 44px; }
  .life-tabs .btn { min-height: 44px; padding: 6px; }
  .life-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .life-hud { top: var(--edge,8px); left: 50%; transform: translateX(-50%); right: auto; max-width: 55%; padding: 3px; }
  .life-hud-text { width: 125px; }.life-hud .life-hub { display: none; }.life-hud .btn { min-width: 44px; padding: 4px; }
  .life-greet { top: 64px; font-size: 12px; }
}
.has-keyboard .life-overlay { top: var(--visual-top,0px); height: var(--visual-height); bottom: auto; }
@media (prefers-reduced-motion: reduce) { .life-window,.life-card,.life-hud { transition: none; } }
.life-hud.is-visiting .life-hub { display:block; }
.life-visiting > :not(.life-hud) { display:none !important; }
.life-hud.is-visiting { top:var(--edge,12px);left:var(--edge,12px);right:auto;transform:none;width:min(520px,calc(100% - 2 * var(--edge,12px)));max-width:calc(100% - 2 * var(--edge,12px)); }
.life-hud.is-visiting .life-hub { max-width:none;white-space:normal; }
.results-archive-status { font-size:14px;line-height:1.5;text-align:center;margin:8px 0;color:var(--text); }
.results-archive-status:empty { display:none; }
