.caption{grid-template-columns:1fr 1fr;gap:3vw;padding:2.4vw 5.4vw 3vw;display:grid}.caption__rule{background:var(--lime);width:6vw;height:.25vw;margin-bottom:1.1vw}.caption h2{font-family:var(--font-caption);letter-spacing:.01em;font-size:2.15vw;font-weight:700}.caption__kicker{font-family:var(--font-mono);letter-spacing:.06em;color:var(--lime);margin:.5vw 0 1.6vw;font-size:.72vw;font-weight:700}.caption p{max-width:44vw;font-family:var(--font-caption);color:var(--muted);font-size:.9vw;line-height:1.45}.caption__right{padding-top:2.2vw}.caption__right .caption__kicker{margin:0}.caption p.caption__lead{color:var(--text);margin:.9vw 0 1.3vw;font-size:1vw}
.climate{--cut:polygon(calc(1.2 * var(--u)) 0, 100% 0, 100% calc(100% - calc(1.2 * var(--u))), calc(100% - calc(1.2 * var(--u))) 100%, 0 100%, 0 calc(1.2 * var(--u)));--edge:color-mix(in srgb, var(--accent) 65%, transparent);width:18.3%;padding:calc(.9 * var(--u)) calc(1.2 * var(--u)) calc(1.1 * var(--u)) calc(1.4 * var(--u));animation:.35s ease-out climate-in;top:50.5%;right:.7%}@keyframes climate-in{0%{opacity:0;transform:translateX(calc(.8 * var(--u)))}to{opacity:1;transform:none}}.climate__kicker{padding-bottom:calc(.55 * var(--u));margin-bottom:calc(.7 * var(--u));border-bottom:1px solid color-mix(in srgb, var(--accent) 40%, transparent);font-size:calc(.75 * var(--u));letter-spacing:.16em;color:var(--accent);justify-content:space-between;align-items:center;font-weight:700;display:flex}.climate__close{width:calc(1.4 * var(--u));height:calc(1.4 * var(--u));color:var(--muted);font-size:calc(1 * var(--u));cursor:pointer;background:0 0;border:1px solid #fff3;line-height:1}.climate__close:hover{color:var(--text);border-color:var(--accent)}.climate__title{align-items:center;gap:calc(.9 * var(--u));margin-bottom:calc(.7 * var(--u));display:flex}.climate__title .icon{width:calc(3 * var(--u));height:calc(3 * var(--u));filter:drop-shadow(0 0 calc(.35 * var(--u)) var(--accent))}.climate__title h2{font-size:calc(1.05 * var(--u));letter-spacing:.06em;text-transform:uppercase;font-weight:700;line-height:1.2}.climate__area{margin-top:calc(.15 * var(--u));font-family:var(--font-mono);font-size:calc(.62 * var(--u));color:var(--muted);letter-spacing:.04em}.climate__stats{gap:calc(.35 * var(--u));margin-bottom:calc(.7 * var(--u));display:grid}.climate__stats>div{grid-template-columns:calc(5.2 * var(--u)) 1fr;align-items:center;display:grid}.climate__stats dt{font-family:var(--font-mono);font-size:calc(.6 * var(--u));color:var(--muted);letter-spacing:.08em}.climate__stats dd{align-items:center;gap:calc(.5 * var(--u));font-size:calc(.72 * var(--u));letter-spacing:.06em;font-weight:600;display:flex}.pips{gap:calc(.2 * var(--u));display:inline-flex}.pips i{width:calc(.7 * var(--u));height:calc(.45 * var(--u));background:#ffffff1f;transform:skew(-25deg)}.trend--worsening{color:#ff6a4d}.trend--stable{color:var(--amber)}.trend--easing{color:var(--lime)}.climate__progress .bar{flex:1;margin:0}.climate__progress .bar__fill{background:linear-gradient(90deg, color-mix(in srgb, var(--accent) 60%, #0a2830), var(--accent));box-shadow:0 0 calc(.5 * var(--u)) var(--accent)}.climate__summary{font-family:var(--font-caption);font-size:calc(.66 * var(--u));color:#c6d0ca;line-height:1.5}.climate__links{align-items:center;gap:calc(.3 * var(--u)) calc(.7 * var(--u));margin-top:calc(.7 * var(--u));font-size:calc(.6 * var(--u));letter-spacing:.08em;flex-wrap:wrap;display:flex}.climate__links>span{font-family:var(--font-mono);color:var(--muted)}.climate__links button{cursor:pointer;font:inherit;text-transform:uppercase;text-underline-offset:.2em;background:0 0;border:0;padding:0;font-weight:700;text-decoration:underline}.climate__counts{gap:calc(.5 * var(--u));margin-bottom:calc(.8 * var(--u));grid-template-columns:repeat(3,1fr);display:grid}.climate__counts div{gap:calc(.15 * var(--u));flex-direction:column;display:flex}.climate__counts b{font-size:calc(1.6 * var(--u));line-height:1}.climate__counts span{font-family:var(--font-mono);font-size:calc(.55 * var(--u));color:var(--muted);letter-spacing:.06em}.climate__list-title{margin-bottom:calc(.3 * var(--u));font-family:var(--font-mono);font-size:calc(.6 * var(--u));color:var(--muted);letter-spacing:.1em}.climate__list{list-style:none}.climate__list button{align-items:center;gap:calc(.6 * var(--u));width:100%;padding:calc(.25 * var(--u)) 0;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #5fe3ff1a;display:flex}.climate__list button:hover .climate__list-name{color:var(--accent)}.climate__list .icon{width:calc(1.8 * var(--u));height:calc(1.8 * var(--u))}.climate__list-name{font-size:calc(.7 * var(--u));letter-spacing:.05em;text-transform:uppercase;flex:1;font-weight:600;transition:color .2s}.climate__hint{margin-top:calc(.7 * var(--u));font-family:var(--font-mono);font-size:calc(.55 * var(--u));color:var(--muted);letter-spacing:.08em}
.globe{cursor:grab;position:absolute;inset:0}.globe canvas{touch-action:none;width:100%;height:100%;display:block}.overlay{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.overlay__leader{fill:none;stroke:#d9f75a;stroke-width:2px;filter:drop-shadow(0 0 3px var(--lime));opacity:0;transition:opacity .25s}.site-tag{pointer-events:none;opacity:0;z-index:2;transition:opacity .15s;position:absolute;top:0;left:0}.site-tag__body{--cut:polygon(calc(.6 * var(--u)) 0, 100% 0, 100% calc(100% - calc(.6 * var(--u))), calc(100% - calc(.6 * var(--u))) 100%, 0 100%, 0 calc(.6 * var(--u)));left:calc(2.2 * var(--u));top:calc(-1.6 * var(--u));gap:calc(.15 * var(--u));padding:calc(.45 * var(--u)) calc(.9 * var(--u)) calc(.5 * var(--u));white-space:nowrap;border-left:2px solid var(--accent);clip-path:var(--cut);background:#041218eb;flex-direction:column;display:flex;position:absolute}.site-tag__body b{font-size:calc(.85 * var(--u));letter-spacing:.08em;text-transform:uppercase;color:var(--text);font-weight:700}.site-tag__body span{font-family:var(--font-mono);font-size:calc(.58 * var(--u));letter-spacing:.06em;color:var(--accent)}
.inset{--cut:polygon(calc(1.4 * var(--u)) 0, calc(100% - calc(2.2 * var(--u))) 0, 100% calc(2.2 * var(--u)), 100% 100%, calc(1.4 * var(--u)) 100%, 0 calc(100% - calc(1.4 * var(--u))), 0 calc(1.4 * var(--u)));--edge:#5fe3ffb3;width:18.8%;height:17.8%;top:78.4%;left:.9%}.inset:before{inset:calc(.3 * var(--u))}.inset svg{inset:calc(.45 * var(--u));width:calc(100% - calc(.9 * var(--u)));height:calc(100% - calc(.9 * var(--u)));clip-path:var(--cut);position:absolute}.place{--cut:polygon(calc(1.6 * var(--u)) 0, 100% 0, 100% calc(100% - calc(1.6 * var(--u))), calc(100% - calc(1.6 * var(--u))) 100%, 0 100%);align-items:center;gap:calc(1.2 * var(--u));width:20.6%;height:8.2%;padding:0 calc(1.5 * var(--u)) 0 calc(2 * var(--u));animation:.45s ease-out place-swap;display:flex;top:85.6%;left:19.2%}.place .icon{width:calc(2 * var(--u));height:calc(2 * var(--u));filter:drop-shadow(0 0 calc(.3 * var(--u)) var(--lime))}.place h2{font-size:calc(1.6 * var(--u));letter-spacing:.12em;white-space:nowrap;font-weight:600}@keyframes place-swap{0%{opacity:.2;transform:translateX(calc(-.8 * var(--u)))}to{opacity:1;transform:none}}.segments{gap:calc(.3 * var(--u));display:flex;position:absolute;top:95.1%;left:19.2%}.segments i{width:calc(.9 * var(--u));height:calc(.55 * var(--u));background:var(--lime);box-shadow:0 0 calc(.3 * var(--u)) var(--lime);transition:background .3s,box-shadow .3s;transform:skew(-25deg)}.segments i.is-off{box-shadow:none;background:#c8f25a2e}.segments i.is-dim{width:calc(3.8 * var(--u));box-shadow:none;background:#2e8a68}
.viewport{--u:min(1cqw, calc(1cqh * 16 / 9));background:radial-gradient(at 50% 80%,#06141d 0%,#02060a 70%);flex:1;min-height:0;position:relative;overflow:hidden;container-type:size}.frame-line{background:linear-gradient(90deg, transparent, var(--cyan-dim) 20%, var(--cyan-dim) 80%, transparent);height:1px;position:absolute;bottom:1.5%;left:11%;right:9%}.panel{background:var(--edge,var(--cyan-dim));clip-path:var(--cut);position:absolute}.panel:before{content:"";background:var(--panel);clip-path:var(--cut);position:absolute;inset:1px}.panel>*{position:relative}.icon{flex-shrink:0;display:block}.icon--lime{color:var(--lime)}.icon--cyan{color:var(--cyan)}.icon--amber{color:var(--amber)}.icon--red{color:var(--red)}.icon--white{color:var(--text);overflow:visible}.bar{height:calc(.62 * var(--u));margin-top:calc(.35 * var(--u));clip-path:polygon(0 0, 100% 0, calc(100% - calc(.4 * var(--u))) 100%, 0 100%);background:#ffffff12;border:1px solid #5fe3ff40}.bar__fill{height:100%;display:block}
@font-face{font-family:"Exo 2 Variable";font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/exo-2-cyrillic-ext-wght-normal.01tr8uu6e7_6v.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Exo 2 Variable";font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/exo-2-cyrillic-wght-normal.28aqor0vus3yi.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Exo 2 Variable";font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/exo-2-vietnamese-wght-normal.3q5co93yk-xm_.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Exo 2 Variable";font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/exo-2-latin-ext-wght-normal.3f6x59ery7lm8.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Exo 2 Variable";font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/exo-2-latin-wght-normal.0y-77s_hg7--j.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(../media/jetbrains-mono-cyrillic-ext-wght-normal.1ladf10s224e1.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(../media/jetbrains-mono-cyrillic-wght-normal.0x7cg5h5x34js.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(../media/jetbrains-mono-greek-wght-normal.1k07jbkicvzf3.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(../media/jetbrains-mono-vietnamese-wght-normal.0a13tgqsi9z78.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(../media/jetbrains-mono-latin-ext-wght-normal.3rxtet6g9i1k3.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(../media/jetbrains-mono-latin-wght-normal.2rmhnsrc80fag.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
.ecosystem{--page:#0b0f0c;--lime:#c8f25a;--lime-2:#9be64a;--cyan:#5fe3ff;--cyan-dim:#5fe3ff73;--amber:#ffb547;--red:#ff5a48;--panel:#041218d1;--text:#eef6f2;--heading:#f2fbff;--muted:#9aa39c;--font-hud:"Exo 2 Variable", "Segoe UI", sans-serif;--font-mono:"JetBrains Mono Variable", ui-monospace, Menlo, monospace;--font-caption:Verdana, "DejaVu Sans", sans-serif;background:var(--page);color:var(--text);font-family:var(--font-hud)}.hero{height:calc(100svh - var(--header-height));flex-direction:column;min-height:500px;display:flex}.sprite{width:0;height:0;position:absolute}
.ecosystem .globe-fallback{z-index:1;text-align:center;background:var(--panel);color:var(--text);padding:12px;font-size:14px;position:absolute;top:56%;left:25%;right:25%}@media (max-width:850px){.ecosystem .hero{height:auto;min-height:0}.ecosystem .viewport{--u:14px;padding:14px var(--gutter);grid-template-columns:minmax(0,1fr);gap:9px;display:grid;overflow:visible;container-type:normal}.ecosystem .globe{height:clamp(300px,74vw,540px);position:relative;inset:auto}.ecosystem .overlay,.ecosystem .frame-line,.ecosystem .inset,.ecosystem .segments{display:none}.ecosystem .place,.ecosystem .climate{width:auto;height:auto;position:relative;inset:auto}.ecosystem .place{grid-row:2;min-height:44px}.ecosystem .climate{grid-row:3;padding:16px}.ecosystem .climate__list button{min-height:40px}.ecosystem .caption{padding:18px var(--gutter);grid-template-columns:1fr}.ecosystem .caption h2{font-size:20px}.ecosystem .caption p,.ecosystem .caption p.caption__lead{max-width:none;font-size:14px}.ecosystem .caption .caption__kicker{margin-block:8px;font-size:10px}.ecosystem .globe-fallback{top:clamp(140px,35vw,250px);left:15%;right:15%}}
