/* Landscape: a single light-filled gallery with suspended interpretation panels. */
@media (min-width: 851px) and (orientation: landscape) {
  #app { background:#efefe8; min-height:720px; }
  header { position:relative; z-index:10; border-bottom:1px solid #ffffffb3; background:#fafaf57a; backdrop-filter:blur(22px); -webkit-backdrop-filter:blur(22px); }
  #workspace { display:block; position:relative; isolation:isolate; --exhibition-height:clamp(280px,42vh,390px); background:radial-gradient(ellipse at 48% 8%,#ffffff 0, #f6f5ed80 37%,transparent 66%),linear-gradient(120deg,#eceee5,#f9f8f1 48%,#e9ece3); }
  #workspace:before { content:''; position:absolute; inset:0; pointer-events:none; background:linear-gradient(102deg,transparent 24%,#fff9 24.2%,#fff1 39%,transparent 39.2%),linear-gradient(78deg,transparent 70%,#fff6 70.2%,transparent 86%); opacity:.7; }
  .journey-bar { position:absolute; inset:0 0 auto; height:45px; z-index:6; background:linear-gradient(#f8f8f2bb,#f8f8f200); }
  #encounter { position:absolute; top:57px; left:24px; right:24px; height:var(--exhibition-height); padding:0; z-index:4; pointer-events:none; }
  .encounter-heading { height:22px; padding:0 9px; color:#71776b; }
  .encounter-heading button { pointer-events:auto; }
  .encounter-body { overflow:visible; min-height:0; gap:clamp(18px,3vw,48px); grid-template-columns:minmax(195px,1fr) minmax(200px,1.1fr) minmax(165px,.85fr); }
  #personIntro,#relationOrbit { pointer-events:auto; position:relative; border:1px solid #ffffffc7; border-radius:5px; background:linear-gradient(135deg,#ffffffe0,#fffffff5 1%,#fbfcf975 40%,#f3f4ef52); backdrop-filter:blur(20px) saturate(.75); -webkit-backdrop-filter:blur(20px) saturate(.75); box-shadow:0 1px 0 #ffffff inset,0 18px 50px -26px #4b544b5c,0 3px 12px #656c5010; }
  #personIntro { padding:22px 24px; max-height:100%; transform:translateY(-5px); }
  #personName h1 { font-size:clamp(32px,3.2vw,50px); }
  #personLead { font-size:12px; line-height:1.8; }
  #relationOrbit { padding:17px 19px; gap:9px 14px; transform:translateY(12px); max-height:90%; }
  .relation-card { border-color:#b8bfac58; }
  .relation-card strong { font-size:22px; }
  #exhibit { pointer-events:auto; transform:translate3d(var(--gallery-x,0px),var(--gallery-y,0px),0); transition:transform .7s cubic-bezier(.2,.7,.2,1); }
  #exhibitPoster { filter:drop-shadow(10px 16px 14px #6a6a5426); padding-top:0; }
  #exhibit.photo #exhibitPoster { padding:14px 10px 18px; filter:drop-shadow(8px 14px 10px #575c442b); }
  .exhibit-plinth { height:9px; background:linear-gradient(90deg,#ffffff00,#fffaf0bb,#ffffff00); border:0; box-shadow:0 14px 19px #62644d21; left:5%; right:5%; bottom:27px; }
  #exhibit:before { content:''; position:absolute; inset:12% -18% 18%; border-radius:50%; background:radial-gradient(ellipse,#ffffffbb,transparent 69%); filter:blur(12px); pointer-events:none; }
  .art-source { background:#ffffff66; padding:3px 10px; border:1px solid #ffffff91; border-radius:20px; backdrop-filter:blur(12px); }
  #modelToggle { right:0; bottom:29px; background:#ffffff85; border:0; border-radius:20px; padding:4px 8px; }
  .cast-line { flex-shrink:0; align-self:center; max-width:100%; min-height:37px; margin-top:12px; padding:0 13px; border:1px solid #ffffffa3; border-radius:24px; background:#ffffff61; backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); box-shadow:0 7px 22px #5c624511; pointer-events:auto; }
  #cast { gap:15px; }
  #collapseEncounter { padding-left:12px; border-left:1px solid #a6af9a44; }
  #treeRegion { position:absolute; inset:45px 0 0; background:transparent; overflow:hidden; padding-top:calc(var(--exhibition-height) + 20px); }
  #treeRegion:before { background:radial-gradient(ellipse at 50% 100%,#c9cdb54d,transparent 70%); }
  .tree-heading { height:37px; padding-top:0; background:none; }
  #treeWorld { min-height:150px; }
  .skill-medal { background:linear-gradient(140deg,#fffffff0,#f5f5e9b0); box-shadow:0 2px 0 #d4d8c799,0 11px 20px -8px #66705050; }
  .skill-node strong,.skill-node small { background:#f7f8efb3; backdrop-filter:blur(5px); -webkit-backdrop-filter:blur(5px); padding-left:5px; padding-right:5px; }
  .tree-tools,.map-controls { background:#ffffff70; border:1px solid #ffffffab; border-radius:24px; padding:3px 10px; backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); }
  .tree-bottom { height:42px; padding-bottom:12px; }
  #inspector { position:relative; z-index:5; margin:16px 12px 16px 0; padding:22px; border:1px solid #ffffffb8; border-radius:5px; background:#fcfcf687; backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px); box-shadow:0 12px 35px -24px #414c4050; }
  #wikiBody p { font-size:13px; }
  body.encounter-collapsed #treeRegion { padding-top:18px; }
  body.encounter-collapsed #encounter { visibility:hidden; }
}
@media (min-width:851px) and (max-height:780px) and (orientation:landscape) {
 #workspace { --exhibition-height:285px; }
 #personIntro { padding:15px 18px; }
 #personName h1 { font-size:34px; }
 #personRole { margin:7px 0 5px; }
 #personLead { font-size:11px; }
 #relationOrbit { padding:12px 15px; }
 .relation-card strong { font-size:19px; }
 .name-ja,.name-latin { font-size:11px; }
}
@media(prefers-reduced-motion:reduce){#exhibit{transform:none!important;transition:none!important}}
@supports not (backdrop-filter:blur(1px)){#personIntro,#relationOrbit{background:#f9faf4}}
@media(min-width:851px) and (orientation:landscape){
 #personIntro .name-ja,#personIntro .name-zh{display:inline-block;font-size:12px;margin:0 8px 0 0}
 #personIntro .name-latin{margin-top:4px}
 #relationOrbit:has(>.relation-card:last-child:nth-child(2)){grid-template-columns:minmax(0,1fr)}
 #personIntro{background:linear-gradient(135deg,#ffffffbc,#fbfcf96e 45%,#f3f4ef52)}
}
@media(min-width:851px) and (max-height:780px) and (orientation:landscape){
 #personIntro{padding:12px 16px}#personName h1{font-size:31px;margin-bottom:6px}#personRole{font-size:11px;margin:6px 0 4px}#personLead{-webkit-line-clamp:2}#futureLinks button{font-size:10px}
}

@media(min-width:851px) and (orientation:landscape){.map-dense .skill-node small{display:none}.map-dense .skill-medal{width:40px;height:40px}.map-dense .skill-medal img{width:33px;height:35px}.map-dense .skill-node strong{padding-top:6px;font-size:11px}}
/* Real scene nodes supply the visible geometry; HTML preserves keyboard access. */
.mesh-scene .skill-node{opacity:0;pointer-events:none}
.mesh-scene .skill-node:focus-visible{opacity:1;pointer-events:auto}
.tree-tools #overview:after{content:none}.tree-tools button{font-size:11px;white-space:nowrap;padding:6px 7px}.tree-tools{gap:3px}
.map-controls #orbitMode{width:auto;font-size:11px;white-space:nowrap;padding:0 6px}
#showEncounter{color:#76592d;background:#fff9;border-radius:12px}
@media(min-width:851px) and (orientation:landscape){
 #workspace{--exhibition-height:205px}
 #encounter{top:48px;left:25px;right:25px}
 .encounter-heading{height:18px;font-size:10px}
 .encounter-body{grid-template-columns:minmax(230px,1.3fr) minmax(130px,.65fr) minmax(190px,1fr);gap:20px}
 #personIntro{padding:10px 16px;transform:none}
 #personName h1{font-size:30px;margin:0 0 3px}
 #personIntro .name-ja,#personIntro .name-zh,#personIntro .name-latin{display:inline-block;font-size:10px;margin:0 7px 0 0}
 #personRole{font-size:10px;margin:5px 0 3px}#personLead{font-size:11px;line-height:1.6;-webkit-line-clamp:2}
 #futureLinks{margin-top:4px}#futureLinks button{font-size:10px}
 #relationOrbit{padding:10px 15px;transform:none;gap:4px 12px}.relation-card{padding:4px 0}.relation-card strong{font-size:18px}.relation-direction,.relation-card small{font-size:10px}
 .cast-line{min-height:28px;margin-top:5px}#cast{padding:3px 0}#cast img{height:21px;width:20px}
 #treeRegion{padding-top:calc(var(--exhibition-height) + 6px)}
 #exhibitPoster,#exhibitCanvas{height:calc(100% - 20px)}.art-source{font-size:9px;padding:1px 6px}#modelToggle{font-size:9px;bottom:21px}.exhibit-plinth{bottom:20px}
}
@media(max-width:600px){.tree-heading{height:65px;align-items:flex-start;flex-direction:column;gap:3px;padding-bottom:4px}.tree-tools{gap:0}.tree-tools button{padding:4px 5px;font-size:10px}.tree-tools{width:100%;justify-content:space-between}}
