.range-globe-card{position:relative;overflow:visible;background:linear-gradient(180deg,#f5fbf7 0%,#fff 48%)}
.range-globe-intro,.range-globe-note{max-width:62ch;margin:0 auto 14px;color:var(--ink-700);font-size:.86rem;line-height:1.55;text-align:center}
.range-globe-stage{position:relative;width:min(100%,360px);aspect-ratio:1;margin:0 auto;display:grid;place-items:center;overflow:hidden;border-radius:50%;background:radial-gradient(circle at 36% 30%,#235d73 0,#123b50 58%,#082739 100%);box-shadow:0 18px 38px rgba(7,43,48,.2),inset -18px -14px 28px rgba(0,0,0,.22);touch-action:pan-y;user-select:none;-webkit-user-select:none}
.range-globe-stage canvas{display:block;width:100%;height:100%;cursor:grab}
.range-globe-stage canvas:active{cursor:grabbing}
.range-globe-loading{position:absolute;inset:auto 20px 20px;padding:8px 12px;border-radius:999px;background:rgba(7,35,43,.82);color:#fff;font-size:.75rem;font-weight:800;text-align:center;transition:opacity .2s}
.range-globe-loading[hidden]{display:none}
.range-globe-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:14px auto;width:min(100%,460px)}
.range-globe-controls button{min-height:48px;padding:8px 12px;border:1px solid #b9d7c8;border-radius:14px;background:var(--mint-100);color:var(--forest-800);font-size:.78rem;font-weight:850;line-height:1.2}
.range-globe-controls button:focus-visible,.range-globe-close:focus-visible{outline:3px solid var(--forest-700);outline-offset:3px}
.range-view-controls{width:min(100%,460px);margin:4px auto 10px;padding:4px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;border:1px solid #cfe0d6;border-radius:14px;background:#edf6f1}
.range-view-controls button{min-height:44px;padding:8px 10px;border:0;border-radius:10px;background:transparent;color:var(--ink-700);font-size:.76rem;font-weight:830}
.range-view-controls button[aria-pressed="true"]{background:#fff;color:var(--forest-800);box-shadow:0 2px 8px rgba(7,55,43,.12)}
.range-view-controls button:focus-visible{outline:3px solid var(--forest-700);outline-offset:2px}
.range-time-control{width:min(100%,460px);margin:4px auto 14px;padding:12px 14px;border:1px solid #d3e4da;border-radius:16px;background:#fff}
.range-time-control.is-disabled{opacity:.48}.range-time-control label{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--ink-700);font-size:.78rem;font-weight:820}
.range-time-control output{color:var(--forest-800);font-size:.9rem}.range-time-control input{width:100%;height:48px;margin:0;accent-color:var(--forest-700);cursor:pointer}
.range-month-ticks{display:flex;justify-content:space-between;margin-top:-8px;color:var(--ink-500);font-size:.62rem;font-weight:750}
.range-layer-controls{width:min(100%,460px);margin:0 auto 10px;padding:0;border:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.range-layer-controls legend{width:100%;margin:0 0 8px;color:var(--ink-700);font-size:.75rem;font-weight:850;text-align:center}
.range-layer-controls label{min-height:48px;padding:8px 10px;display:flex;align-items:center;gap:8px;border:1px solid #d3e4da;border-radius:14px;background:#fff;color:var(--ink-700);font-size:.72rem;font-weight:790;cursor:pointer}
.range-layer-controls input{width:20px;height:20px;margin:0;accent-color:var(--forest-700)}.range-layer-controls label:has(input:focus-visible){outline:3px solid var(--forest-700);outline-offset:2px}.range-layer-controls label:has(input:not(:checked)){opacity:.58}
.range-globe-card--audouin .range-layer-disclosure{width:min(100%,460px);margin:0 auto 12px;border:1px solid #d3e4da;border-radius:14px;background:#f4faf6}
.range-globe-card--audouin .range-layer-disclosure summary{min-height:48px;padding:10px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none;color:var(--forest-800);font-size:.78rem;font-weight:850;cursor:pointer}
.range-globe-card--audouin .range-layer-disclosure summary::-webkit-details-marker{display:none}
.range-globe-card--audouin .range-layer-disclosure summary::after{content:'⌄';font-size:1.3rem;line-height:1;transition:transform .2s}
.range-globe-card--audouin .range-layer-disclosure[open] summary::after{transform:rotate(180deg)}
.range-globe-card--audouin .range-layer-disclosure summary:focus-visible{outline:3px solid var(--forest-700);outline-offset:2px}
.range-globe-card--audouin .range-layer-disclosure .range-layer-controls{padding:0 10px 10px;margin-bottom:0}
.range-layer-status{min-height:1.3em;margin:0 auto 12px;color:var(--forest-800);font-size:.72rem;font-weight:820;text-align:center}
.range-season-story{width:min(100%,460px);margin:0 auto 14px;padding:14px;border:1px solid #cfe0d6;border-radius:18px;background:linear-gradient(145deg,#eef8f3,#fff);box-shadow:0 8px 22px rgba(7,55,43,.08)}
.range-season-story__heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.range-season-story__heading div{display:grid;gap:3px}.range-season-story__heading small{color:var(--ink-500);font-size:.62rem;font-weight:850;letter-spacing:.08em}.range-season-story__heading strong{color:var(--forest-800);font-size:.95rem}
.range-season-story__heading button{min-height:44px;padding:8px 12px;border:1px solid #b9d7c8;border-radius:12px;background:#fff;color:var(--forest-800);font-size:.72rem;font-weight:850}.range-season-story__heading button[aria-pressed="true"]{background:var(--forest-800);color:#fff}.range-season-story__heading button:focus-visible{outline:3px solid var(--forest-700);outline-offset:2px}
.range-season-story>p{min-height:3.9em;margin:10px 0;color:var(--ink-700);font-size:.76rem;line-height:1.55}.range-season-story__steps{margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:5px;list-style:none}.range-season-story__steps li{padding:6px 2px;border-radius:9px;background:#e2eee7;color:var(--ink-500);font-size:.62rem;font-weight:800;text-align:center}.range-season-story__steps li[aria-current="step"]{background:var(--forest-800);color:#fff}
.range-globe-legend{margin:0 auto 12px;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:8px 14px;list-style:none;color:var(--ink-700);font-size:.8rem;font-weight:760}
.range-globe-legend li{display:flex;align-items:center;gap:6px}
.range-swatch{width:16px;height:16px;border:1px solid rgba(4,42,32,.16);border-radius:5px;box-shadow:inset 0 1px rgba(255,255,255,.5)}
.range-swatch--resident{background:#42b667}.range-swatch--breeding{background:#efb63f}.range-swatch--wintering,.range-swatch--nonbreeding{background:#58c6d2}.range-swatch--spring{background:#5fba74}.range-swatch--autumn{background:#d96f5d}.range-swatch--passage{background:#8968cd}
.range-globe-note{margin-bottom:10px;font-size:.76rem}
.range-globe-credit{display:block;max-width:66ch;margin:0 auto;color:var(--ink-500);font-size:.68rem;line-height:1.45;text-align:center}
.range-globe-credit a{color:var(--forest-700);text-decoration:underline;text-underline-offset:2px}
.range-globe-method{max-width:66ch;margin:0 auto 10px;padding:10px 12px;border:1px solid #d3e4da;border-radius:14px;background:#fff;color:var(--ink-700);font-size:.72rem;line-height:1.5}.range-globe-method summary{min-height:28px;color:var(--forest-800);font-weight:850;cursor:pointer}.range-globe-method p{margin:8px 0 0}.range-globe-method a{color:var(--forest-700);text-underline-offset:2px}
.range-globe-close{display:none;position:absolute;z-index:3;top:max(12px,env(safe-area-inset-top));right:14px;width:48px;height:48px;border:1px solid rgba(255,255,255,.45);border-radius:50%;background:rgba(5,31,37,.82);color:#fff;font-size:2rem;line-height:1}
.range-globe-fallback{display:block;width:100%;height:auto;border-radius:14px}
.range-globe-placeholder{width:min(100%,360px);aspect-ratio:1;margin:0 auto 16px;border:2px dashed #c5dacf;border-radius:50%;background:radial-gradient(circle at 35% 30%,#f9fdfb,#e9f4ef);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:24px;color:var(--forest-800);text-align:center}
.range-globe-placeholder span{font-size:4rem;line-height:1;color:#7caf99}.range-globe-placeholder strong{font-size:.88rem;line-height:1.35}
.range-globe-unavailable-reason{max-width:62ch;margin:0 auto;color:var(--ink-700);font-size:.82rem;line-height:1.55;text-align:center}
.range-globe-card.is-fullscreen{position:fixed;z-index:1000;inset:0;margin:0!important;padding:max(18px,env(safe-area-inset-top)) 16px max(28px,env(safe-area-inset-bottom));overflow-y:auto;border-radius:0;background:#f7fbf8}
.range-globe-card.is-fullscreen .range-globe-stage{width:min(88vw,68vh,560px);touch-action:none}
.range-globe-card.is-fullscreen .range-globe-close{display:block;position:fixed;top:max(14px,env(safe-area-inset-top));right:14px}
.range-globe-card.is-fullscreen [data-range-globe-toggle]{display:none}
body.range-globe-open{overflow:hidden}
@media(max-width:380px){.range-globe-stage{width:min(100%,310px)}.range-globe-controls{grid-template-columns:1fr}.range-layer-controls{grid-template-columns:1fr}.range-globe-card.is-fullscreen .range-globe-stage{width:min(92vw,58vh)}}
@media(prefers-reduced-motion:reduce){.range-globe-loading{transition:none}}
.range-source-image{display:block;width:min(100%,760px);height:auto;max-height:560px;object-fit:contain;margin:0 auto 14px;border:1px solid #d7e6de;border-radius:16px;background:#fff}
