/* hakonowa.com/lp の「半円の地球」をそのまま持ってきたもの。
   色変数だけ .st-globe の中に閉じ込めて、白い紙のサイトでも壊れないようにする。 */
.st-globe{
  --mono:'Orbitron','Geist Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  --tx:#eafff2; --mut:#8aa197; --org:#7ce0a4;
  color:var(--tx);font-family:'Noto Sans JP',system-ui,sans-serif}
/* ===== GLOBAL：半円の地球と国えらび ===== */
.gl{display:grid;grid-template-columns:minmax(220px,300px) 1fr;gap:clamp(20px,3vw,48px);align-items:start;margin-top:clamp(24px,3vw,44px)}
.gl-lab{font-family:var(--mono);font-size:10px;letter-spacing:.24em;color:var(--mut)}
.gl-flap{display:flex;gap:2px;margin:10px 0 18px;min-height:32px}
.gl-flap i{display:inline-flex;align-items:center;justify-content:center;width:20px;height:30px;
  background:#0f1a15;border:1px solid rgba(130,255,190,.22);border-radius:4px;color:#eafff2;
  font-family:var(--mono);font-size:14px;font-weight:700;font-style:normal;
  transform-origin:50% 50%;backface-visibility:hidden;position:relative;overflow:hidden}
.gl-flap i::after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:rgba(0,0,0,.55)}
.gl-flap i.turn{animation:flap .09s linear}
@keyframes flap{0%{transform:rotateX(0)}49%{transform:rotateX(-90deg)}50%{transform:rotateX(90deg)}100%{transform:rotateX(0)}}
.gl-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.gl-list li{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:9px;cursor:pointer;
  border:1px solid transparent;color:var(--mut);font-size:13.5px;transition:background .18s,border-color .18s,color .18s}
.gl-list li:hover{background:rgba(130,255,190,.07);color:var(--tx)}
.gl-list li.on{background:rgba(61,220,142,.13);border-color:rgba(61,220,142,.45);color:var(--tx)}
.gl-list li .fg{font-size:17px;line-height:1;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif}
.gl-list li .cd{margin-left:auto;font-family:var(--mono);font-size:10.5px;color:var(--mut);letter-spacing:.1em}
.gl-list li.on .cd{color:var(--org)}
.gl-view{position:relative}
.gl-stage{position:relative;aspect-ratio:16/9.6;min-height:400px;overflow:hidden;border-radius:14px;
  background:radial-gradient(120% 90% at 50% 105%,rgba(61,220,142,.14),transparent 60%)}
.gl-stage canvas{position:absolute;inset:0;width:100%;height:100%}
.gl-lead{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.gl-lead path{fill:none;stroke:var(--org);stroke-width:1.4;stroke-dasharray:var(--len);stroke-dashoffset:var(--len)}
.gl-lead path.go{transition:stroke-dashoffset .55s cubic-bezier(.4,0,.2,1);stroke-dashoffset:0}
.gl-lead circle{fill:var(--org);opacity:0;transition:opacity .3s}
.gl-lead circle.go{opacity:1}
.gl-card{position:absolute;right:0;top:6%;width:min(330px,54%);max-height:88%;overflow-y:auto;background:rgba(10,17,14,.92);
  border:1px solid rgba(130,255,190,.26);border-radius:12px;padding:14px 16px;
  opacity:0;transform:translateY(10px);transition:opacity .4s .35s,transform .4s .35s;backdrop-filter:blur(3px)}
.gl-card.go{opacity:1;transform:none}
.gl-cn b{display:block;font-size:17px;color:var(--tx);line-height:1.3}
.gl-cn span{font-family:var(--mono);font-size:10px;letter-spacing:.2em;color:var(--mut)}
.gl-kpi{display:flex;gap:8px;margin:11px 0 9px;flex-wrap:wrap}
.gl-kpi div{flex:1 1 84px;background:rgba(130,255,190,.07);border-radius:8px;padding:7px 9px}
.gl-kpi b{display:block;font-family:var(--mono);font-size:17px;color:var(--org);line-height:1.15}
.gl-kpi small{display:block;font-size:10px;color:var(--mut);margin-top:2px}
.gl-card p{margin:0;font-size:12.5px;line-height:1.8;color:var(--mut)}
.gl-tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:10px}
.gl-tags i{font-style:normal;font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;color:var(--mut);
  border:1px solid rgba(130,255,190,.22);border-radius:5px;padding:3px 7px}
@media (max-width:860px){
  .gl{grid-template-columns:1fr}
  .gl-list{flex-direction:row;flex-wrap:wrap}
  .gl-list li{flex:1 1 44%}
  /* 高さを決め打ちにしないと、カードのぶんだけ枠が伸びて球が画面の外へ落ちる */
  .gl-stage{aspect-ratio:auto;height:min(56vw,300px);min-height:0}
  .gl-lead{display:none}
  .gl-card{position:static;width:auto;margin-top:12px;transform:none;opacity:1;transition:none}

/* データ台帳のページ用：折りたたみの中身 */
#glMore{margin-top:10px;border-top:1px solid rgba(130,255,190,.16);padding-top:9px}
#glMore summary{cursor:pointer;list-style:none;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;
  color:var(--org);padding:3px 0}
#glMore summary::-webkit-details-marker{display:none}
#glMore summary::before{content:"＋ ";}
#glMore[open] summary::before{content:"− ";}
#glMore ul{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
#glMore li{font-size:12px;line-height:1.75;color:var(--mut);padding-left:13px;position:relative}
#glMore li::before{content:"";position:absolute;left:0;top:9px;width:5px;height:5px;border-radius:50%;background:var(--org);opacity:.6}
#glMore li b{color:var(--tx)}

/* 折りたたみを開いても枠からはみ出さないよう、カードの中で送る */
.gl-card::-webkit-scrollbar{width:5px}
.gl-card::-webkit-scrollbar-thumb{background:rgba(130,255,190,.3);border-radius:3px}
@media (max-width:860px){ .gl-card{max-height:none;overflow:visible} }

/* ===== 右の枠（地球の上）に、国名・英語名・数値・タグを出す ===== */
.gl-card{padding:16px 18px}
.gl-cn{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:2px}
.gl-cn b{font-size:19px;line-height:1.3}
.gl-cn span{font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;color:var(--mut)}
.gl-kpi{display:flex;gap:16px;flex-wrap:wrap;margin:12px 0 10px}
.gl-kpi div{flex:0 0 auto;display:flex;align-items:baseline;gap:5px;background:none;padding:0}
.gl-kpi b{font-family:var(--mono);font-size:19px;color:var(--org);line-height:1.1}
.gl-kpi small{font-size:10.5px;color:var(--mut);margin:0}
.gl-tags{margin-top:11px;padding-top:10px;border-top:1px solid rgba(130,255,190,.16)}
.gl-tags i{font-size:10px;padding:4px 9px}
