/* hakonowa.com/lp の「半円の地球」をそのまま持ってきたもの。
   色変数だけ .st-globe の中に閉じ込めて、白い紙のサイトでも壊れないようにする。 */
.st-globe,.sx-gis{
  --mono:'Orbitron','Geist Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  --tx:#eafff2; --mut:#8aa197; --org:#7ce0a4;
  font-family:'Noto Sans JP',system-ui,sans-serif}
.st-globe{color:var(--tx)}
/* サービス面は紙の上に置く。
   地球の面（.gl-stage）だけ夜の色にして、その中の文字を白にする。
   国えらび（左の列）は紙の上なので、墨のまま。 */
.sx-gis .gl-stage{background:
  radial-gradient(120% 90% at 50% 105%,rgba(61,220,142,.16),transparent 62%), #0C1512}
.sx-gis .gl-now,.sx-gis .gl-now *,.sx-gis .gl-card,.sx-gis .gl-card *{color:var(--tx)}
.sx-gis .gl-now .l em{color:#8aa197}
.sx-gis .gl-lab{color:color-mix(in srgb, var(--gd-ink) 58%, transparent)}
.sx-gis .gl-list li{color:color-mix(in srgb, var(--gd-ink) 88%, transparent)}
.sx-gis .gl-list li .cd{color:color-mix(in srgb, var(--gd-ink) 52%, transparent)}
.sx-gis .gl-list li:hover{background:rgba(20,32,26,.06)}
.sx-gis .gl-list li.on{background:rgba(61,220,142,.16);
  border-color:rgba(46,155,105,.55);color:var(--gd-ink)}
.sx-gis .gl-list li.on .cd{color:#2E9B93}
/* ===== 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 6px 0 0;display:flex;flex-direction:column;gap:2px;
  /* 14か国が縦に伸びきらないよう、途中から送れるようにする */
  max-height:clamp(240px,46vh,420px);overflow-y:auto;overscroll-behavior:contain;
  scrollbar-width:thin}
.gl-list::-webkit-scrollbar{width:5px}
.gl-list::-webkit-scrollbar-thumb{background:rgba(130,255,190,.30);border-radius:3px}
.sx-gis .gl-list::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--gd-ink) 24%, transparent)}
.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-now{position:absolute;left:clamp(12px,1.6vw,20px);top:clamp(11px,1.4vw,18px);z-index:4;
  pointer-events:none;display:flex;flex-direction:column;gap:9px;max-width:min(56%,320px)}
.gl-now .c{display:flex;align-items:baseline;gap:9px}
.gl-now .c b{font-size:16px;font-weight:700;color:var(--tx);letter-spacing:.02em;line-height:1}
.gl-now .c i{font-style:normal;font-family:var(--mono);font-weight:700;font-size:10px;
  letter-spacing:.2em;color:var(--org)}
.gl-now .l{display:block}
.gl-now .l em{display:block;font-style:normal;font-family:var(--mono);font-weight:700;
  font-size:9px;letter-spacing:.22em;color:var(--mut);margin-bottom:5px}
.gl-now .l span{display:block;font-size:12px;line-height:1.6;color:var(--tx);
  text-shadow:0 1px 10px rgba(0,0,0,.6)}
@media (max-width:860px){
  .gl-now{max-width:70%;gap:7px}
  .gl-now .c b{font-size:14px}
  .gl-now .l span{font-size:11px}
}
.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 .22s,transform .22s;backdrop-filter:blur(3px)}
/* ★消えるときは待たない。待たせていたので、次の国の中身が一瞬映っていた。 */
.gl-card.go{opacity:1;transform:none;transition:opacity .4s .18s,transform .4s .18s}
.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;max-height:none;overflow-y:visible}
  .gl-list li{flex:1 1 44%}
  /* 高さを決め打ちにしないと、カードのぶんだけ枠が伸びて球が画面の外へ落ちる */
  .gl-stage{aspect-ratio:auto;height:min(56vw,300px);min-height:0}
  .gl-lead{display:none}          /* 引き出し線の SVG。狭い画面では邪魔 */
  /* 国名と数値は地球の中に入れて重ねる（高さを当てずに bottom で置く）*/
  .gl-stage{position:relative}
  .gl-card{position:static;width:auto;margin-top:10px;transform:none;opacity:1;transition:none;
    border:0;background:transparent;padding:0;box-shadow:none}
  .gl-stage > .gl-cn,
  .gl-stage > .gl-kpi{position:absolute;left:14px;right:14px;z-index:4;margin:0;
    text-shadow:0 2px 14px rgba(0,0,0,.92)}
  .gl-stage > .gl-cn{bottom:58px}
  .gl-stage > .gl-kpi{bottom:13px;gap:11px;flex-wrap:nowrap;align-items:baseline}
  .gl-stage > .gl-kpi div{flex:0 1 auto;min-width:0;background:transparent;padding:0}
  .gl-stage > .gl-kpi b{font-size:20px;letter-spacing:-.02em;white-space:nowrap}
  .gl-stage > .gl-kpi small{font-size:8.5px;white-space:nowrap;letter-spacing:0;
    overflow:hidden;text-overflow:ellipsis;display:block}
  /* 下端を落として、重ねた文字を読めるようにする */
  .gl-stage::after{content:"";position:absolute;left:0;right:0;bottom:0;height:120px;z-index:3;
    background:linear-gradient(to top, rgba(4,10,7,.95) 16%, rgba(4,10,7,.6) 56%, transparent);
    pointer-events:none}
  .gl-card p{font-size:12.5px}
  .gl-tags{margin-top:9px}
}

/* データ台帳のページ用：折りたたみの中身 */
#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}


/* ── サービス面（データ可視化）の地球 ───────────────────
   スマホでは国の一覧が縦に14行も伸びるので、国旗だけの横送りにする。 */
@media (max-width:820px){
  .sx-gis .gl{grid-template-columns:minmax(0,1fr);gap:14px}
  .sx-gis .gl-pick,.sx-gis .gl-list{min-width:0;max-width:100%}
  .sx-gis .gl-pick{order:2}
  .sx-gis .gl-view{order:1}
  .sx-gis .gl-lab{display:none}
  .sx-gis .gl-flap{margin:0 0 10px;justify-content:center}
  .sx-gis .gl-list{flex-direction:row;flex-wrap:nowrap;gap:8px;max-height:none;overflow-y:visible;
    overflow-x:auto;scroll-snap-type:x proximity;
    padding:2px 0 6px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .sx-gis .gl-list::-webkit-scrollbar{display:none}
  .sx-gis .gl-list li{flex:0 0 auto;scroll-snap-align:center;
    width:52px;height:52px;padding:0;justify-content:center;border-radius:14px;
    font-size:0;                     /* 国名は出さない。国旗だけ */
    background:rgba(20,32,26,.06);border:1px solid rgba(20,32,26,.14)}
  .sx-gis .gl-list li .cd{display:none}
  .sx-gis .gl-list li .fg{font-size:26px;margin:0}
  .sx-gis .gl-list li.on{background:rgba(61,220,142,.20);border-color:rgba(46,155,105,.75);
    transform:scale(1.06)}
}

/* 狭い画面では、カードは地球の外（紙の上）へ出る。文字は墨に戻す。 */
@media (max-width:860px){
  .sx-gis .gl-card,.sx-gis .gl-card *{color:color-mix(in srgb, var(--gd-ink) 82%, transparent)}
  .sx-gis .gl-card p{color:color-mix(in srgb, var(--gd-ink) 70%, transparent)}
  .sx-gis .gl-tags i{color:color-mix(in srgb, var(--gd-ink) 60%, transparent);
    border-color:color-mix(in srgb, var(--gd-ink) 20%, transparent)}
  /* 地球の中に移った国名と数値は、白のまま */
  .sx-gis .gl-stage > .gl-cn b{color:var(--tx)}
  .sx-gis .gl-stage > .gl-cn span{color:#8aa197}
  .sx-gis .gl-stage > .gl-kpi b{color:var(--org)}
  .sx-gis .gl-stage > .gl-kpi small{color:#8aa197}
}
