/* 惑星調査員 */
#game-root{--pl-c:#8ef4ff}
.pl-hud{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
#game-root .g3d-objective{white-space:pre-line;line-height:1.55;font-size:13px;max-width:min(78vw,360px);border-left-color:var(--pl-c)}
#game-root .g3d-toast{top:calc(118px + env(safe-area-inset-top))}
#game-root .g3d-banner{top:24%}
#game-root .g3d-banner__big{font-size:clamp(28px,5.4vw,56px);letter-spacing:.1em}
#game-root .g3d-prompt{top:64%}
#game-root .g3d-subtitle b{color:var(--pl-c)}

/* PC: 左上の目標は方位計の下 */
@media (pointer:fine){
  #game-root .g3d-hud__tl{top:calc(118px + env(safe-area-inset-top))}
}
/* スマホ: 左上は酸素計なので、目標はその下へ。字幕は画面の上寄り（スティックとボタンに重ねない） */
@media (pointer:coarse){
  #game-root .g3d-hud__tl{top:calc(150px + env(safe-area-inset-top));left:12px;max-width:58vw}
  #game-root .g3d-objective{font-size:11.5px;padding:6px 10px;max-width:58vw}
  #game-root .g3d-subtitle{bottom:auto;top:calc(318px + env(safe-area-inset-top));font-size:13.5px;max-width:92vw;padding:6px 12px}
  #game-root .g3d-prompt{top:auto;bottom:calc(48% + env(safe-area-inset-bottom));font-size:13px;padding:7px 14px}
  #game-root .g3d-toast{top:calc(104px + env(safe-area-inset-top));font-size:12.5px;max-width:86vw;white-space:normal;text-align:center}
}
@media (pointer:coarse) and (orientation:landscape){
  #game-root .g3d-hud__tl{top:calc(128px + env(safe-area-inset-top));max-width:34vw}
  #game-root .g3d-objective{max-width:34vw}
  #game-root .g3d-subtitle{top:auto;bottom:calc(10px + env(safe-area-inset-bottom));max-width:48vw;font-size:12.5px}
  #game-root .g3d-prompt{bottom:calc(30% + env(safe-area-inset-bottom))}
  #game-root .g3d-banner{top:30%}
}

/* タッチのボタン配置 */
#game-root .g3d-tbuttons{display:block;width:230px;height:360px;max-width:none}
#game-root .g3d-tbtn{position:absolute}
#game-root .g3d-tbtn[data-action="scan"]{right:0;bottom:0}
#game-root .g3d-tbtn[data-action="jump"]{right:94px;bottom:4px}
#game-root .g3d-tbtn[data-action="interact"]{right:8px;bottom:96px;border-color:#8effc0;color:#d8ffe8}
#game-root .g3d-tbtn[data-action="light"]{right:14px;bottom:176px}
#game-root .g3d-tbtn[data-action="beacon"]{right:14px;bottom:238px}
#game-root .g3d-tbtn[data-action="codex"]{right:14px;bottom:300px}
#game-root .g3d-tbtn[data-action="scan"]{border-color:rgba(142,244,255,.6);background:rgba(10,40,48,.55)}
@media (orientation:landscape){
  #game-root .g3d-tbuttons{width:300px;height:170px}
  #game-root .g3d-tbtn[data-action="interact"]{right:186px;bottom:8px}
  #game-root .g3d-tbtn[data-action="light"]{right:4px;bottom:96px}
  #game-root .g3d-tbtn[data-action="beacon"]{right:66px;bottom:100px}
  #game-root .g3d-tbtn[data-action="codex"]{right:128px;bottom:104px}
}

/* 登録カード */
.pl-card{position:absolute;left:calc(26px + env(safe-area-inset-left));top:44%;width:280px;display:flex;gap:12px;align-items:center;padding:10px;border-radius:14px;background:rgba(6,18,24,.72);border:1px solid color-mix(in srgb,var(--cat,#8ef4ff) 55%,transparent);box-shadow:0 0 30px -8px var(--cat,#8ef4ff);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.pl-card.is-in{animation:pl-card 4.2s ease both}
@keyframes pl-card{0%{opacity:0;transform:translateX(-16px)}8%{opacity:1;transform:none}85%{opacity:1}100%{opacity:0}}
.pl-card__img{flex:0 0 112px;height:70px;border-radius:8px;overflow:hidden;background:#0a1418}
.pl-card__img img{width:100%;height:100%;object-fit:cover;display:block}
.pl-card__k{margin:0;font-size:11px;letter-spacing:.12em;color:var(--cat);font-weight:800}
.pl-card__name{margin:2px 0 0;font-size:17px;font-weight:900;color:#fff}
.pl-card__sub{margin:2px 0 0;font-size:11.5px;opacity:.75}
@media (pointer:coarse){.pl-card{left:50%;top:calc(232px + env(safe-area-inset-top));transform:translateX(-50%);width:min(300px,86vw)}.pl-card.is-in{animation:pl-card-m 4.2s ease both}}
@keyframes pl-card-m{0%{opacity:0}8%{opacity:1}85%{opacity:1}100%{opacity:0}}
@media (pointer:coarse) and (orientation:landscape){.pl-card{top:calc(78px + env(safe-area-inset-top));bottom:auto;left:50%;width:300px;padding:7px}.pl-card__img{flex-basis:96px;height:60px}.pl-card__name{font-size:15px}}
.pl-rare{font-style:normal;font-size:10.5px;font-weight:800;padding:1px 6px;border-radius:99px;background:linear-gradient(90deg,#ffd46a,#ff9ad8);color:#241406;margin-left:4px}
.pl-pend{font-style:normal;font-size:10px;font-weight:800;padding:1px 6px;border-radius:99px;background:#ffe28a;color:#2a2008}

/* 調査図鑑 */
.pl-codex{position:absolute;inset:0;z-index:36;display:grid;place-items:center;padding:calc(58px + env(safe-area-inset-top)) 12px calc(12px + env(safe-area-inset-bottom));background:rgba(3,8,12,.62);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:g3d-fade .25s ease both}
.pl-codex__panel{width:min(1040px,100%);max-height:100%;display:flex;flex-direction:column;border-radius:18px;background:linear-gradient(180deg,rgba(10,26,32,.94),rgba(6,14,18,.94));border:1px solid rgba(142,244,255,.22);box-shadow:0 30px 80px -20px #000;overflow:hidden}
.pl-codex__head{display:flex;align-items:center;gap:16px;padding:14px 18px 8px}
.pl-codex__kicker{margin:0;font-size:10.5px;letter-spacing:.3em;color:var(--pl-c);opacity:.8}
.pl-codex__title{margin:0;font-size:20px;font-weight:900;letter-spacing:.1em}
.pl-codex__count{margin:0 0 0 auto;font-size:13px;opacity:.85}
.pl-codex__count b{color:var(--pl-c);font-size:18px}
.pl-codex__close{min-height:40px;padding:6px 16px}
.pl-tabs{display:flex;gap:6px;padding:4px 18px 10px;overflow-x:auto;scrollbar-width:none}
.pl-tabs button{flex:0 0 auto;display:flex;align-items:baseline;gap:6px;min-height:36px;padding:6px 14px;border-radius:99px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.04);color:#e8f4f4;font-weight:800;font-size:13px;cursor:pointer}
.pl-tabs button small{font-size:11px;opacity:.7}
.pl-tabs button[aria-selected="true"]{background:color-mix(in srgb,var(--cat,#8ef4ff) 25%,transparent);border-color:var(--cat,#8ef4ff)}
.pl-codex__body{display:grid;grid-template-columns:1fr 330px;gap:14px;padding:0 18px 18px;min-height:0;flex:1}
.pl-grid{list-style:none;margin:0;padding:2px;display:grid;grid-template-columns:repeat(auto-fill,minmax(122px,1fr));gap:8px;overflow:auto;align-content:start;max-height:min(62vh,560px)}
.pl-cell{position:relative;width:100%;display:flex;flex-direction:column;gap:4px;padding:6px;border-radius:12px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03);color:#e8f4f4;cursor:pointer;text-align:left}
.pl-cell:hover{background:rgba(255,255,255,.07)}
.pl-cell.is-sel{border-color:var(--cat);box-shadow:0 0 0 2px color-mix(in srgb,var(--cat) 40%,transparent)}
.pl-cell__img{display:grid;place-items:center;aspect-ratio:16/10;border-radius:8px;overflow:hidden;background:radial-gradient(circle,rgba(255,255,255,.06),rgba(0,0,0,.3));border-bottom:2px solid color-mix(in srgb,var(--cat) 60%,transparent)}
.pl-cell__img img{width:100%;height:100%;object-fit:cover;display:block}
.pl-cell__img i{font-style:normal;font-size:28px;font-weight:900;color:color-mix(in srgb,var(--cat) 50%,transparent)}
.pl-cell:not(.is-known){opacity:.62}
.pl-cell__name{font-size:12.5px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl-cell .pl-rare,.pl-cell .pl-pend{position:absolute;top:10px;left:8px;margin:0}
.pl-cell .pl-pend{left:auto;right:8px}
.pl-detail{padding:12px;border-radius:14px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.08);overflow:auto;max-height:min(62vh,560px)}
.pl-detail__img{aspect-ratio:16/10;border-radius:10px;overflow:hidden;display:grid;place-items:center;background:rgba(0,0,0,.35);border:1px solid color-mix(in srgb,var(--cat) 40%,transparent)}
.pl-detail__img img{width:100%;height:100%;object-fit:cover;display:block}
.pl-detail__img i{font-style:normal;opacity:.5;font-weight:800;letter-spacing:.2em}
.pl-detail__cat{margin:10px 0 0;font-size:12px;font-weight:800;letter-spacing:.14em}
.pl-detail__name{margin:2px 0 0;font-size:21px;font-weight:900}
.pl-detail__name small{margin-left:8px;font-size:12px;opacity:.6;font-weight:700}
.pl-detail__text{margin:8px 0 0;font-size:13.5px;line-height:1.8;opacity:.92}
.pl-detail__info{margin:10px 0 0;font-size:12px;line-height:1.7;opacity:.72}
.pl-pend-t{color:#ffe28a}
@media (max-width:760px){
  .pl-codex{padding-top:calc(52px + env(safe-area-inset-top));padding-left:6px;padding-right:6px}
  .pl-codex__body{grid-template-columns:1fr;grid-template-rows:auto 1fr;padding:0 10px 12px}
  .pl-detail{order:-1;max-height:none;display:grid;grid-template-columns:130px 1fr;gap:4px 12px;align-items:start}
  .pl-detail__img{grid-row:span 4}
  .pl-detail__cat{margin:0}.pl-detail__name{font-size:17px}.pl-detail__text{font-size:12.5px;line-height:1.65;margin:4px 0 0}.pl-detail__info{grid-column:1/-1;margin:4px 0 0}
  .pl-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));max-height:none}
  .pl-codex__head{padding:10px 12px 6px;gap:10px}.pl-codex__title{font-size:17px}
  .pl-tabs{padding:2px 12px 8px}
  .pl-codex__panel{height:100%}
}
@media (max-height:480px) and (orientation:landscape){
  .pl-codex{padding-top:calc(44px + env(safe-area-inset-top))}
  .pl-codex__body{grid-template-columns:1fr 250px}
  .pl-grid,.pl-detail{max-height:calc(100svh - 150px)}
  .pl-detail{display:block}
}

/* 依頼の一覧（タイトル画面） */
.pl-board{display:grid;gap:10px;justify-items:center}
.pl-board__stat{margin:0;font-size:13.5px;opacity:.92}
.pl-board__stat b{color:var(--pl-c);font-size:17px}
.pl-link{background:none;border:0;color:var(--pl-c);font:inherit;font-weight:800;text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:4px 6px}
.pl-resume{min-height:42px;font-size:14px;border-color:rgba(142,255,192,.5);background:rgba(20,60,40,.5)}
.pl-missions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;max-width:760px}
.pl-mission{display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-width:132px;padding:8px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.16);background:rgba(10,22,28,.55);color:#eef8f8;cursor:pointer;text-align:left;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.pl-mission:hover{background:rgba(30,50,60,.7)}
.pl-mission.is-sel{border-color:var(--pl-c);box-shadow:0 0 0 2px rgba(142,244,255,.35);background:rgba(20,52,60,.72)}
.pl-mission.is-lock{opacity:.45;cursor:not-allowed}
.pl-mission__n{font-size:10.5px;letter-spacing:.14em;opacity:.7;font-weight:700}
.pl-mission__name{font-size:14px;font-weight:900}
.pl-mission__rank{font-size:11px;opacity:.8;color:#ffe28a}
.pl-board__brief{margin:0;max-width:34em;font-size:13px;line-height:1.7;opacity:.9;text-shadow:0 1px 6px rgba(0,0,0,.8);min-height:2.2em}
@media (max-width:640px){
  .pl-mission{min-width:0;flex:1 1 40%;padding:6px 10px}.pl-mission__name{font-size:13px}
  .pl-board__brief{font-size:12px}
}
@media (max-height:480px) and (orientation:landscape){
  .pl-missions{flex-wrap:nowrap;overflow-x:auto;max-width:92vw;justify-content:flex-start;padding-bottom:4px}
  .pl-mission{flex:0 0 auto;min-width:118px;padding:5px 10px}
  .pl-board{gap:6px}.pl-board__brief{font-size:11.5px;min-height:0}
}

/* スマホ横（高さが低い）: タイトルを詰めて出発ボタンまで一画面に */
@media (max-height:480px) and (orientation:landscape){
  #game-root .g3d-title__kicker,#game-root .g3d-title__hint{display:none}
  #game-root .g3d-title__name{font-size:28px}
  #game-root .g3d-title__name small{display:none}
  #game-root .g3d-title__extra:not(:empty){margin-top:8px}
  #game-root .g3d-screen[data-screen="title"] .g3d-actions{margin-top:8px}
  #game-root .g3d-screen[data-screen="title"] .g3d-btn{min-height:40px;padding:6px 16px}
  .pl-board__brief{display:none}
  .pl-mission__rank{display:none}
  .pl-detail__img{max-height:92px;aspect-ratio:auto;height:92px}
  .pl-detail__text{font-size:12px;line-height:1.6}
  .pl-cell__img{aspect-ratio:2/1}
}

/* ---- 2026-10-06 チェックでの手直し ---- */
/* PC の背の低い画面（1366×768 のノートPCでブラウザの枠を除くと高さ 625px 前後）で「調査に出発」が画面の下の端にかかっていた → タイトルの文字と行間を少し詰める */
@media (min-width:641px) and (max-height:700px){
  #game-root .g3d-title__name{font-size:clamp(34px,8.6vh,60px)}
  #game-root .g3d-title__sub{margin-top:8px;line-height:1.7}
}
