/* KG Labs Kyrgyz Forest Atlas. Every rule is scoped under .kfa so the page can live inside a
   WordPress theme (Custom HTML block) or stand alone. Layout follows /kyrgyzglacierextinction/:
   a bright first screen where the map (left) and its live panel (right) share one mist-green ground,
   then the story on the KG neutral ground. Brand green is the accent; leaf-stage colours are data. */
.kfa{
  --kg-lime:#A1C623;--kg-leaf:#61B431;--kg-wordmark:#3FA93C;--kg-deep:#1A9F41;--kg-ink-green:#127A33;
  --brand-grad:linear-gradient(180deg,var(--kg-lime),var(--kg-leaf) 50%,var(--kg-deep));
  --mist-1:#F3F8F2;--mist-2:#E3EEE6;--mist-ground:#EAF2EC;--glass:rgba(255,255,255,.86);
  --ink:#13261C;--ink-2:#3D5145;--ink-3:#687B6F;--rule:#D3E0D6;
  --bg-1:#F8FAF7;--bg-2:#FFFFFF;--bg-3:#EEF2EC;--track:#E9EFE6;--link:#17803A;
  --deep:#10281C;--deep-2:#173424;--deep-ink:#F2F6F1;--deep-ink-2:#B8C8BC;--deep-rule:#284634;
  --display:"Playfair Display","Iowan Old Style",Georgia,serif;
  --body:"Source Serif 4","Iowan Old Style",Georgia,serif;
  --mono:"JetBrains Mono",ui-monospace,"Cascadia Mono",Consolas,monospace;
  --gutter:clamp(16px,3vw,48px);--r-1:4px;--r-2:8px;
  background:var(--bg-1);color:var(--ink);font:400 1.06rem/1.65 var(--body);color-scheme:light;
  text-align:left;-webkit-text-size-adjust:100%;
}
.kfa.kfa--embed{position:relative;width:calc(100vw - var(--kfa-sbw,0px));left:50%;margin-left:calc((100vw - var(--kfa-sbw,0px))/-2);max-width:none}
.kfa,.kfa *,.kfa *::before,.kfa *::after{box-sizing:border-box}
.kfa [hidden]{display:none!important}
.kfa img{max-width:100%;height:auto;border:0;box-shadow:none}
.kfa h1,.kfa h2,.kfa h3,.kfa h4{font-family:var(--display);font-weight:700;text-wrap:balance;line-height:1.1;margin:0;padding:0;color:inherit;text-transform:none;letter-spacing:normal;border:0}
.kfa h1{font-size:clamp(2.2rem,4.8vw,4rem);letter-spacing:-.01em}
.kfa h2{font-size:clamp(1.6rem,3vw,2.1rem)}
.kfa h3{font-size:1.25rem;font-weight:600}
.kfa h4{font-size:1.05rem;font-weight:600}
.kfa p{margin:0;padding:0}
.kfa a{color:var(--link);text-decoration-color:var(--kg-leaf);text-underline-offset:3px;box-shadow:none}
.kfa button{font:inherit;color:inherit;text-transform:none;letter-spacing:normal;margin:0;min-height:0;min-width:0;box-shadow:none;line-height:1.2;text-shadow:none;border-radius:0}
.kfa input[type=range]{margin:0;padding:0;background:transparent;border:0;box-shadow:none;height:auto}
.kfa table{border-collapse:collapse;width:100%;margin:0;border:0}
.kfa svg{overflow:visible}
.kfa svg text{font-family:var(--mono)}
.kfa .eyebrow{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.kfa :focus-visible{outline:2px solid var(--kg-leaf);outline-offset:2px}
.kfa .skip{position:absolute;z-index:100;left:12px;top:12px;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;background:var(--bg-2);color:var(--ink);padding:0}
.kfa .skip:focus{width:auto;height:auto;clip-path:none;padding:10px 14px}
.kfa .gut{padding-inline:var(--gutter)}
.kfa .col{max-width:46rem}

/* top bar */
.kfa .topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-block:.9rem}
.kfa .mark{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--mono);font-weight:500;font-size:.85rem;letter-spacing:.16em;color:var(--ink);text-decoration:none}
.kfa .mark img{width:1.45rem;height:1.45rem;display:block}
.kfa .topbar nav{display:flex;gap:1.2rem;flex-wrap:wrap;align-items:center;font-family:var(--mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}
.kfa .topbar nav a{color:var(--ink-2);text-decoration:none}
.kfa .topbar nav a:hover{color:var(--kg-deep)}
.kfa .lang{display:inline-flex;border:1px solid var(--rule);border-radius:var(--r-1);overflow:hidden}
.kfa .lang button{font:500 .72rem var(--mono);letter-spacing:.06em;padding:.22rem .55rem;border:0;background:var(--bg-2);color:var(--ink-2);cursor:pointer}
.kfa .lang button+button{border-left:1px solid var(--rule)}
.kfa .lang button[aria-pressed="true"]{background:var(--ink);color:var(--bg-2)}

/* bright first screen */
.kfa .band{background:linear-gradient(180deg,var(--mist-1),var(--mist-2));color:var(--ink)}
.kfa .hero{display:grid;gap:.9rem;padding-block:2.2rem 1.4rem}
.kfa .hero .lede{font-size:1.15rem;color:var(--ink-2);max-width:48rem}
.kfa .hero .lede em{color:var(--ink)}
.kfa .chips{display:flex;gap:.5rem;flex-wrap:wrap}
.kfa .chip{font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;padding:.2rem .6rem;border-radius:999px;border:1px solid var(--rule);color:var(--ink-2);background:rgba(255,255,255,.5)}
.kfa .chip.green{border-color:var(--kg-leaf);color:var(--kg-ink-green)}
.kfa .stage{display:grid;grid-template-columns:minmax(0,1fr) 24rem;background:radial-gradient(90% 80% at 38% 45%,#FAFCF7,rgba(250,252,247,0) 70%)}
.kfa .viewport{position:relative;height:max(36rem,min(86vh,62rem));overflow:hidden}
.kfa .overview{position:absolute;inset:3.2rem .8rem 7.8rem;display:grid;place-items:center}
.kfa .overview-art{position:relative;width:100%}
.kfa .overview-art svg{display:block;width:100%;height:auto;filter:drop-shadow(0 14px 26px rgba(40,70,50,.18))}
.kfa .ov-river{font:italic 400 9.5px var(--body);fill:#25628d;paint-order:stroke;stroke:#f4f1e2;stroke-width:2.6px;pointer-events:none}
.kfa .ov-town circle{fill:#2b3a33;stroke:#f4f1e2;stroke-width:1.2}
.kfa .ov-town text{font:500 9px var(--mono);fill:#2b3a33;paint-order:stroke;stroke:#f4f1e2;stroke-width:2.6px;pointer-events:none}
.kfa .ov-flow path{stroke-opacity:.8;stroke-dasharray:2.5 26;animation:kfaFlow 14s linear infinite}
.kfa .ov-flow path.f1{animation-duration:11s}.kfa .ov-flow path.f2{animation-duration:9s;stroke-dasharray:3.5 30}
@keyframes kfaFlow{to{stroke-dashoffset:-285}}
@media (prefers-reduced-motion:reduce){.kfa .ov-flow{display:none}}
.kfa .ov-label{font:500 10.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;fill:#2c3f33;paint-order:stroke;stroke:#f4f1e2;stroke-width:3px;pointer-events:none}
.kfa .ov-region{transition:fill .25s,fill-opacity .25s}
.kfa .marker{position:absolute;transform:translate(-9px,-50%);display:flex;align-items:center;gap:.35rem;padding:0;border:0;background:none;cursor:pointer;z-index:3}
.kfa .marker.m3{transform:none}
.kfa .marker i{width:18px;height:18px;border-radius:50%;border:3px solid #fffdf5;box-shadow:0 0 0 1px rgba(20,35,25,.5),0 3px 8px rgba(0,0,0,.25);background:#b5beb3;flex:none}
.kfa .marker span{font:600 .74rem var(--body);color:var(--ink);background:rgba(255,255,255,.94);padding:.12rem .45rem;border-radius:3px;white-space:nowrap;box-shadow:0 1px 4px rgba(0,0,0,.14)}
.kfa .marker.on i{box-shadow:0 0 0 3px var(--kg-lime),0 3px 10px rgba(0,0,0,.3)}
.kfa .marker.on span{background:var(--kg-deep);color:#fff}
.kfa .forestCanvas{position:absolute;inset:3.2rem .8rem 7.8rem;width:calc(100% - 1.6rem);height:calc(100% - 11rem);object-fit:contain;cursor:crosshair;filter:drop-shadow(0 12px 22px rgba(40,70,50,.16))}
.kfa .map3d{position:absolute;inset:0}
.kfa .tools{position:absolute;z-index:6;right:.8rem;top:.8rem;display:flex;gap:.4rem;align-items:center}
.kfa .tool{border:1px solid var(--rule);border-radius:var(--r-1);background:var(--glass);color:var(--ink);font:500 .74rem var(--mono);padding:.42rem .7rem;cursor:pointer;min-width:2.2rem}
.kfa .tool:disabled{opacity:.45;cursor:default}
.kfa .tool:hover{border-color:var(--kg-leaf)}
.kfa .tool[aria-pressed="true"]{background:var(--kg-deep);border-color:var(--kg-deep);color:#fff}
.kfa .maplogo{position:absolute;z-index:5;right:1rem;bottom:8.4rem;display:block;line-height:0;opacity:.72;transition:opacity .2s}
.kfa .maplogo:hover{opacity:1}
.kfa .maplogo img{width:62px;height:auto;filter:drop-shadow(0 1px 1.5px rgba(255,255,255,.9))}
.kfa .badge{position:absolute;z-index:5;left:.8rem;top:.8rem;font:500 .7rem var(--mono);color:var(--ink-2);background:var(--glass);border:1px solid var(--rule);border-radius:var(--r-1);padding:.2rem .5rem}
.kfa .mapbar{position:absolute;z-index:7;left:50%;bottom:.9rem;transform:translateX(-50%);width:min(46rem,calc(100% - 1.6rem));display:grid;gap:.35rem;padding:.7rem .9rem .6rem;background:var(--glass);border:1px solid var(--rule);border-radius:var(--r-2);box-shadow:0 10px 26px rgba(30,60,40,.12);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.kfa .barrow{display:flex;align-items:center;gap:.9rem}
.kfa .play{width:2.7rem;height:2.7rem;flex:none;border-radius:50%;border:0;background:var(--kg-deep);color:#fff;font-size:1rem;cursor:pointer;display:grid;place-items:center;padding:0}
.kfa .play:hover{background:var(--kg-wordmark)}
.kfa .timecopy{min-width:8.5rem;display:grid;line-height:1.15}
.kfa .timecopy strong{font:700 1.5rem var(--display);color:var(--ink);font-variant-numeric:lining-nums tabular-nums}
.kfa .timecopy span{font:500 .68rem var(--mono);color:var(--ink-3);letter-spacing:.04em}
.kfa .slwrap{flex:1;min-width:0;display:grid;gap:.1rem}
.kfa .slider{width:100%;accent-color:var(--kg-deep)}
.kfa .scale{display:flex;justify-content:space-between;font:500 .62rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.kfa .maptip,.kfa .tip{position:fixed;z-index:9999;pointer-events:none;max-width:16rem;background:var(--bg-2);color:var(--ink);border:1px solid var(--rule);border-radius:var(--r-1);padding:.45rem .6rem;font-size:.82rem;line-height:1.38;box-shadow:0 6px 18px rgba(20,40,30,.14)}
.kfa .maptip{display:none}
.kfa .maptip b,.kfa .tip b{display:block;font-family:var(--display)}
.kfa .maptip small,.kfa .tip .m{font:500 .68rem var(--mono);color:var(--ink-3)}
.kfa .status{position:absolute;z-index:6;left:50%;top:45%;transform:translate(-50%,-50%);font:500 .78rem var(--mono);color:var(--ink-2);background:var(--glass);border:1px solid var(--rule);padding:.4rem .7rem;border-radius:var(--r-1)}
.kfa .maplibregl-ctrl-top-right{top:3rem!important}
.kfa .maplibregl-ctrl-attrib{font-size:10px}
.kfa .mlabel{font:500 10px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#13261c;text-shadow:0 0 3px #f4f1e2,0 0 2px #f4f1e2}

.kfa .compass{position:absolute;z-index:5;left:.9rem;bottom:8.8rem;width:58px;height:58px;pointer-events:none}
.kfa .compass svg{display:block;width:100%;height:100%;transition:transform .3s}
.kfa .compass .c-ring{fill:rgba(255,255,255,.82);stroke:var(--rule);stroke-width:1}
.kfa .compass .c-tick{stroke:var(--ink-3);stroke-width:1}
.kfa .compass .c-n{fill:var(--kg-ink-green)}
.kfa .compass .c-s{fill:#c3ccc5}
.kfa .compass .c-l{font:600 8.5px var(--mono);fill:var(--ink-2);text-anchor:middle}
.kfa .compass .c-l.c-north{font-size:10px;font-weight:700;fill:var(--kg-ink-green)}
.kfa .compass.mini{left:auto;right:.55rem;top:.55rem;bottom:auto;width:40px;height:40px}
/* live panel: same ground as the map, no divider */
.kfa .panel{padding:1rem 1.1rem 1.2rem;display:grid;grid-auto-rows:max-content;gap:1.05rem;align-content:start;overflow-y:auto;max-height:max(36rem,min(86vh,62rem));min-width:0;color:var(--ink)}
.kfa .placelist{display:grid;gap:.3rem;margin-top:.45rem}
.kfa .pl{display:grid;grid-template-columns:3.4rem minmax(0,1fr);gap:.1rem .65rem;align-items:center;text-align:left;border:1px solid transparent;border-radius:var(--r-2);background:transparent;padding:.4rem;cursor:pointer;color:var(--ink);width:100%}
.kfa .pl:hover{background:rgba(255,255,255,.7)}
.kfa .pl[aria-pressed="true"]{background:var(--bg-2);border-color:var(--kg-leaf);box-shadow:0 2px 10px rgba(30,60,40,.08)}
.kfa .pl img{grid-row:span 2;width:3.4rem;height:2.6rem;object-fit:cover;border-radius:3px;display:block;background:var(--rule)}
.kfa .pl b{font:600 .95rem var(--display);line-height:1.2}
.kfa .pl small{font:500 .66rem var(--mono);color:var(--ink-3);letter-spacing:.02em}
.kfa .pl .ss{grid-column:1/-1;height:5px;border-radius:3px;margin-top:.2rem}
.kfa .pl.all{grid-template-columns:minmax(0,1fr);font:500 .74rem var(--mono);letter-spacing:.04em;color:var(--ink-2);padding:.45rem .6rem;border-color:var(--rule);background:rgba(255,255,255,.5)}
.kfa .pl.all[aria-pressed="true"]{color:var(--ink);background:var(--bg-2)}
.kfa .ychips{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.4rem}
.kfa .ychips button{border:1px solid var(--rule);border-radius:var(--r-1);background:rgba(255,255,255,.6);color:var(--ink-2);font:500 .7rem var(--mono);padding:.22rem .48rem;cursor:pointer}
.kfa .ychips button[aria-pressed="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}
.kfa .readout{display:grid;gap:.6rem}
.kfa .readout h3{font-size:1.25rem}
.kfa .readout .sub{font:500 .68rem var(--mono);color:var(--ink-3);letter-spacing:.04em}
.kfa .stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.55rem}
.kfa .stat b{display:block;font:700 1.55rem var(--display);font-variant-numeric:lining-nums tabular-nums;line-height:1.05}
.kfa .stat span{font-size:.74rem;color:var(--ink-2);line-height:1.3;display:block;margin-top:.15rem}
.kfa .strip{display:flex;height:.6rem;border-radius:2px;overflow:hidden;background:var(--rule)}
.kfa .strip span{height:100%}
.kfa .say{font-size:.95rem;line-height:1.45;color:var(--ink);border-left:2px solid var(--kg-leaf);padding-left:.65rem}
.kfa .panel .note{font-size:.88rem;color:var(--ink-2);line-height:1.5}
.kfa .key{display:grid;gap:.45rem}
.kfa .keyrows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.3rem .8rem;font-size:.8rem;color:var(--ink-2)}
.kfa .keyrows span{display:flex;align-items:center;gap:.45rem;line-height:1.25}
.kfa .keyrows i{width:.9rem;height:.9rem;border-radius:2px;flex:none;border:1px solid rgba(0,0,0,.12)}
.kfa .watch{border:0;border-radius:var(--r-1);background:var(--kg-deep);color:#fff;font:500 .86rem var(--mono);padding:.75rem .9rem;cursor:pointer;text-align:left;width:100%;box-shadow:0 4px 14px rgba(26,159,65,.25)}
.kfa .watch:hover{background:var(--kg-wordmark)}
.kfa .band-foot{padding-block:.6rem 2rem;font-size:.86rem;color:var(--ink-2);line-height:1.55;max-width:66rem}
.kfa .band-foot b{color:var(--ink);font-weight:600}

/* story sections */
.kfa .sec{display:grid;gap:1.1rem;padding-block:3rem .4rem}
.kfa .sec+.sec{border-top:1px solid var(--rule);margin-top:2.4rem}
.kfa .lead{font-size:1.15rem;color:var(--ink-2)}
.kfa .fine{font-size:.9rem;color:var(--ink-3)}
.kfa .card{background:var(--bg-2);border:1px solid var(--rule);border-radius:var(--r-2);padding:clamp(1rem,2vw,1.4rem);display:grid;gap:.8rem;align-content:start;min-width:0}
.kfa .card p{color:var(--ink-2);max-width:62ch}
.kfa .duo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem}
.kfa .minikey{display:flex;gap:.4rem 1rem;flex-wrap:wrap;font:500 .7rem var(--mono);color:var(--ink-3)}
.kfa .minikey i{display:inline-block;width:.85rem;height:.55rem;border-radius:1px;margin-right:.35rem;vertical-align:1px}
.kfa .minikey i.dot{width:.55rem;border-radius:50%}
.kfa .ax{fill:var(--ink-3);font-size:9.5px}
.kfa .grid{stroke:var(--rule)}

/* forest worlds, the year dial and its ribbons */
.kfa .worlds{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.6rem}
.kfa .world{position:relative;min-height:12rem;border-radius:var(--r-2);padding:.8rem;color:#fff;display:flex;flex-direction:column;justify-content:flex-end;gap:.3rem;overflow:hidden;background:linear-gradient(180deg,var(--tone),#0d1712 135%)}
.kfa .world .no{position:absolute;top:.6rem;left:.8rem;font:500 .64rem var(--mono);opacity:.75}
.kfa .world h3{font-size:1.2rem;color:#fff}
.kfa .world p{font-size:.84rem;line-height:1.35;color:rgba(255,255,255,.88)}
.kfa .dial{position:sticky;top:var(--kfa-sticky-top,0px);z-index:20;display:grid;gap:.25rem;padding:.6rem .9rem;border:1px solid var(--rule);border-radius:var(--r-2);background:rgba(248,250,247,.94);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.kfa .dialrow{display:flex;align-items:center;gap:.9rem}
.kfa .speed{display:inline-flex;flex:none;border:1px solid var(--rule);border-radius:var(--r-1);overflow:hidden}
.kfa .speed button{font:500 .72rem var(--mono);padding:.3rem .5rem;border:0;background:var(--bg-2);color:var(--ink-2);cursor:pointer;min-width:2.1rem}
.kfa .speed button+button{border-left:1px solid var(--rule)}
.kfa .speed button[aria-pressed="true"]{background:var(--ink);color:var(--bg-2)}
.kfa .dialdate{display:flex;align-items:center;gap:.5rem;min-width:8.5rem;font:700 1.4rem var(--display);font-variant-numeric:lining-nums tabular-nums}
.kfa .dialdate i{width:.85rem;height:.85rem;border-radius:50%;box-shadow:0 0 0 2px var(--bg-2),0 0 0 3px var(--rule);flex:none}
.kfa .dialtrack{flex:1;min-width:0;display:grid;gap:.1rem}
.kfa .dialmonths{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));font:500 .6rem var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);overflow:hidden}
.kfa .dialmonths span{border-left:1px solid var(--rule);padding-left:3px}
.kfa .dialcap{font:italic 400 1rem var(--body);color:var(--ink-2);min-height:1.5em}
.kfa .ribbons{display:grid;gap:.55rem}
.kfa .rib{display:grid;grid-template-columns:12rem minmax(0,1fr) 9rem;gap:.8rem;align-items:center}
.kfa .rib strong{font:600 .98rem var(--display);line-height:1.15}
.kfa .rib strong small{display:block;font:400 .64rem var(--mono);color:var(--ink-3);font-style:italic}
.kfa .rib em{font:500 .64rem var(--mono);font-style:normal;color:var(--ink-3);letter-spacing:.03em}
.kfa .ribc{position:relative}
.kfa .ribc canvas{display:block;width:100%;height:1.1rem;border-radius:2px}
.kfa .ribc.tall canvas{height:2.6rem}
.kfa .ribc .now{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--ink);opacity:.8;pointer-events:none;border-radius:1px}
.kfa .ribaxis{display:grid;grid-template-columns:12rem minmax(0,1fr) 9rem;gap:.8rem}
.kfa .ribaxis div{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));font:500 .6rem var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);overflow:hidden}
.kfa .ribaxis div span{border-left:1px solid var(--rule);padding-left:3px}
.kfa .slopes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}
.kfa .slope{display:grid;gap:.3rem;min-width:0}
.kfa .slope small{font-size:.82rem;color:var(--ink-3)}
.kfa .slope svg{width:100%;height:auto;display:block;background:var(--bg-3);border-radius:var(--r-2)}
.kfa .slope .bl{font:600 12px var(--body);fill:var(--ink);stroke:var(--bg-2);stroke-width:3.5px;paint-order:stroke}
.kfa .slope .sn{font:500 10.5px var(--mono);fill:var(--ink);stroke:var(--bg-2);stroke-width:3px;paint-order:stroke}

/* autumn record */
.kfa .rows{display:grid;gap:.45rem}
.kfa .r{display:grid;grid-template-columns:7rem minmax(0,1fr) 4.6rem;gap:.7rem;align-items:center;font-size:.9rem}
.kfa .r .nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kfa .r .tr{position:relative;height:1.05rem;background:var(--track);border-radius:2px;overflow:hidden}
.kfa .r .seg{position:absolute;top:0;bottom:0}
.kfa .r .dot{position:absolute;top:50%;width:.7rem;height:.7rem;margin:-.35rem 0 0 -.35rem;border-radius:50%;background:var(--ink);border:2px solid var(--bg-2)}
.kfa .r .vv{font:500 .7rem var(--mono);color:var(--ink-2);text-align:right}
.kfa .stack{display:flex;height:1.05rem;border-radius:2px;overflow:hidden;gap:2px}
.kfa .stack span{display:block;height:100%}
.kfa .axis{display:grid;grid-template-columns:7rem minmax(0,1fr) 4.6rem;gap:.7rem;font:500 .64rem var(--mono);color:var(--ink-3)}
.kfa .axis .m{display:grid;grid-template-columns:repeat(4,1fr)}
.kfa .axis .m span{border-left:1px solid var(--rule);padding-left:3px}
.kfa .multiples{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem 1.4rem}
.kfa .mult{min-width:0;display:grid;gap:.2rem;text-align:left;border:1px solid transparent;border-radius:var(--r-2);background:none;padding:.5rem;cursor:pointer;color:var(--ink)}
.kfa .mult:hover{border-color:var(--rule)}
.kfa .mult[aria-pressed="true"]{border-color:var(--kg-deep);background:var(--bg-1)}
.kfa .mult b{font:600 1rem var(--display)}
.kfa .mult svg{width:100%;height:auto;display:block}
.kfa .mult small{font:500 .66rem var(--mono);color:var(--ink-3)}
.kfa .reel{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:1.4rem;align-items:start}
.kfa .reel>*{min-width:0}
.kfa .pills{display:flex;flex-wrap:wrap;gap:.3rem}
.kfa .pills button{border:1px solid var(--rule);border-radius:999px;background:var(--bg-2);color:var(--ink-2);font:500 .72rem var(--mono);padding:.25rem .65rem;cursor:pointer}
.kfa .pills button[aria-pressed="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}
.kfa .mapframe{position:relative;border-radius:var(--r-2);overflow:hidden;background:#ece8de;border:1px solid var(--rule)}
.kfa .mapframe canvas{display:block;width:100%;height:auto}
.kfa .mapframe .stamp{position:absolute;left:.6rem;top:.6rem;font:500 .68rem var(--mono);background:rgba(255,255,255,.9);color:#22251f;border-radius:3px;padding:.15rem .45rem}
.kfa .mapframe .flogo{position:absolute;right:.6rem;bottom:.5rem;line-height:0;opacity:.72}
.kfa .mapframe .flogo img{width:44px;height:auto;filter:drop-shadow(0 1px 1.5px rgba(255,255,255,.9))}
.kfa .mapframe .fstatus{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font:500 .74rem var(--mono);background:rgba(255,255,255,.92);color:#22251f;padding:.3rem .6rem;border-radius:3px}
.kfa .transport{display:flex;align-items:center;gap:.7rem;margin-top:.6rem}
.kfa .transport .big{font:700 1.6rem var(--display);min-width:4.2ch;font-variant-numeric:lining-nums tabular-nums}
.kfa .transport input{flex:1;min-width:0;accent-color:var(--kg-deep)}
.kfa .round{width:2.4rem;height:2.4rem;flex:none;border-radius:50%;border:1px solid var(--rule);background:var(--bg-2);color:var(--ink);cursor:pointer;display:grid;place-items:center;padding:0}
.kfa .round.dark{background:var(--kg-deep);border-color:var(--kg-deep);color:#fff}
.kfa .years{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.25rem;margin-top:.7rem}
.kfa .years button{border:1px solid rgba(0,0,0,.06);border-radius:3px;font:500 .66rem var(--mono);padding:.32rem 0;cursor:pointer}
.kfa .years button:disabled{cursor:default;background:var(--bg-3)!important;color:var(--ink-3)!important;opacity:.6}
.kfa .years button[aria-pressed="true"]{outline:2px solid var(--ink);outline-offset:1px}
.kfa .decades{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem}
.kfa .dec{background:var(--bg-1);border:1px solid var(--rule);border-radius:var(--r-1);padding:.6rem;display:grid;gap:.15rem;align-content:start}
.kfa .dec .y{font:500 .68rem var(--mono);color:var(--ink-3)}
.kfa .dec .v{font:700 1.45rem var(--display)}
.kfa .dec small{color:var(--ink-2);font-size:.76rem;line-height:1.3}
.kfa .legendline{display:flex;gap:1rem;flex-wrap:wrap;font:500 .68rem var(--mono);color:var(--ink-3)}
.kfa .legendline span::before{content:"";display:inline-block;width:.6rem;height:.6rem;border-radius:50%;background:var(--tone);margin-right:.35rem;vertical-align:-1px}

/* six forests lab */
.kfa .lab{display:grid;grid-template-columns:15rem minmax(0,1.1fr) minmax(0,1fr);gap:1.4rem;align-items:start}
.kfa .lab>*{min-width:0}
.kfa .lablist{display:grid;gap:.3rem}
.kfa .lablist .pl:hover{background:var(--bg-3)}
.kfa .lablist .pl[aria-pressed="true"]{border-color:var(--ink)}
.kfa .labyears{display:flex;flex-wrap:wrap;gap:.25rem;margin-bottom:.6rem}
.kfa .labyears button{border:1px solid var(--rule);border-radius:var(--r-1);background:var(--bg-2);color:var(--ink-2);font:500 .68rem var(--mono);padding:.2rem .45rem;cursor:pointer}
.kfa .labyears button[aria-pressed="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}
.kfa .analysis{display:grid;gap:.75rem}
.kfa .analysis .kick{font:500 .68rem var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.kfa .facts4{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}
.kfa .fact{background:var(--bg-2);border:1px solid var(--rule);border-radius:var(--r-1);padding:.5rem .6rem}
.kfa .fact b{display:block;font:700 1.2rem var(--display);font-variant-numeric:lining-nums tabular-nums}
.kfa .fact small{font-size:.74rem;color:var(--ink-3)}
.kfa .lstats{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}
.kfa .lstats div{border-top:2px solid var(--ink);padding-top:.3rem}
.kfa .lstats b{display:block;font:700 1.5rem var(--display)}
.kfa .lstats small{font-size:.74rem;color:var(--ink-3);line-height:1.25;display:block}
.kfa .stagevals{display:flex;flex-wrap:wrap;gap:.2rem .8rem;font:500 .66rem var(--mono);color:var(--ink-3)}
.kfa .stagevals i{display:inline-block;width:.55rem;height:.55rem;border-radius:50%;margin-right:.3rem;vertical-align:-1px;border:1px solid rgba(0,0,0,.15)}
.kfa .altrow{display:grid;grid-template-columns:7rem minmax(0,1fr) 3rem;gap:.6rem;align-items:center;font-size:.8rem;color:var(--ink-2)}
.kfa .altbar{height:.55rem;background:var(--track);border-radius:2px;overflow:hidden}
.kfa .altbar i{display:block;height:100%}
.kfa .altrow strong{font:700 .95rem var(--display);text-align:right}
.kfa .labnote{font-size:.92rem;color:var(--ink-2);margin-top:.6rem}
.kfa .compare{overflow-x:auto;border:1px solid var(--rule);border-radius:var(--r-2);background:var(--bg-2)}
.kfa .compare th,.kfa .compare td{padding:.35rem .4rem;border:0;border-bottom:1px solid var(--rule);text-align:center;background:none}
.kfa .compare tr:last-child td,.kfa .compare tr:last-child th{border-bottom:0}
.kfa .compare thead th{font:500 .62rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);background:var(--bg-3)}
.kfa .compare tbody th{text-align:left;font:600 .9rem var(--display);white-space:nowrap;padding-left:.8rem}
.kfa .compare td button{width:100%;min-width:3.4rem;border:1px solid rgba(0,0,0,.06);border-radius:3px;font:500 .74rem var(--mono);padding:.42rem 0;cursor:pointer}
.kfa .compare td button[aria-pressed="true"]{outline:2px solid var(--ink);outline-offset:1px}
.kfa .compare .none{color:var(--ink-3)}

/* KG Labs */
.kfa .four{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,13.5rem),1fr));gap:1.6rem}
.kfa .four div{display:grid;gap:.4rem;align-content:start}
.kfa .four .ic{width:2.2rem;height:.45rem;border-radius:1px;background:var(--brand-grad)}
.kfa .four p{color:var(--ink-2);font-size:.98rem}
.kfa .figs{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,14rem),1fr));gap:1.4rem 2rem}
.kfa .figs div{display:grid;gap:.25rem;align-content:start;padding-top:.6rem;border-top:1px solid var(--rule)}
.kfa .figs b{font:700 clamp(1.8rem,3vw,2.4rem) var(--display);line-height:1.05;font-variant-numeric:lining-nums tabular-nums}
.kfa .figs span{color:var(--ink-2);font-size:.95rem;line-height:1.4}
.kfa .howto{display:grid;gap:.8rem;color:var(--ink-2)}
.kfa .cta{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:2rem;align-items:center;padding:clamp(1.4rem,4vw,3rem);border-radius:var(--r-2);background:var(--deep);color:var(--deep-ink)}
.kfa .cta-text{display:grid;gap:.8rem}
.kfa .cta .eyebrow{color:var(--kg-lime)}
.kfa .cta .lead{color:var(--deep-ink-2)}
.kfa .cta-cards{display:grid;gap:.8rem;min-width:0}
.kfa .cta-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.25rem .8rem;align-items:center;padding:.9rem 1rem;border:1px solid var(--deep-rule);border-radius:var(--r-1);background:var(--deep-2)}
.kfa .cta-card .eyebrow{grid-column:1/-1;color:var(--deep-ink-2)}
.kfa .cta-val{font:400 1.35rem var(--display);color:var(--deep-ink);text-decoration-color:var(--kg-leaf);overflow-wrap:anywhere;user-select:all}
.kfa .copy{font:500 .75rem var(--mono);padding:.4rem .75rem;border-radius:var(--r-1);border:0;background:var(--kg-deep);color:#fff;cursor:pointer}
.kfa .foot{margin-top:3.4rem;padding-block:1.4rem 3rem;border-top:1px solid var(--rule);font-size:.86rem;color:var(--ink-3);display:grid;gap:.6rem}
.kfa .foot .mark{font-size:.75rem}

@media (max-width:1180px){.kfa .worlds{grid-template-columns:repeat(4,minmax(0,1fr))}.kfa .lab{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.kfa .lablist{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:980px){
  .kfa .stage{grid-template-columns:minmax(0,1fr)}
  .kfa .panel{max-height:none}
  .kfa .viewport{height:72vh;min-height:30rem}
  .kfa .duo,.kfa .reel{grid-template-columns:minmax(0,1fr)}
  .kfa .multiples{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kfa .placelist{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kfa .placelist .pl.all{grid-column:1/-1}
  .kfa .slopes{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:760px){
  .kfa .lab{grid-template-columns:minmax(0,1fr)}.kfa .lablist{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kfa .worlds{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kfa .rib,.kfa .ribaxis{grid-template-columns:7.5rem minmax(0,1fr)}.kfa .rib em,.kfa .ribaxis>b:last-child{display:none}
  .kfa .dialmonths,.kfa .ribaxis div{font-size:.5rem;letter-spacing:0}
  .kfa .cta{grid-template-columns:minmax(0,1fr)}
  .kfa .decades{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kfa .years{grid-template-columns:repeat(5,minmax(0,1fr))}
}
@media (max-width:600px){
  .kfa .topbar{padding-block:.7rem;gap:.5rem .8rem}
  .kfa .topbar nav{gap:.55rem .8rem;font-size:.67rem}
  .kfa .hero{padding-block:1.5rem 1.1rem;gap:.7rem}
  .kfa h1{font-size:clamp(1.95rem,8.6vw,2.6rem)}
  .kfa .hero .lede{font-size:1rem;line-height:1.5}
  .kfa .viewport{height:78vh;min-height:32rem}
  .kfa .overview{inset:3.4rem .2rem 9rem}
  .kfa .forestCanvas{inset:3.4rem .4rem 9rem;width:calc(100% - .8rem);height:calc(100% - 12.4rem)}
  .kfa .badge{top:3rem}
  .kfa .tools{top:auto;bottom:9.6rem}
  .kfa .maplogo{bottom:9.6rem;right:auto;left:.8rem}
  .kfa .compass:not(.mini){left:auto;right:.8rem;top:.8rem;bottom:auto;width:46px;height:46px}
  .kfa .tools{right:.8rem}
  .kfa .marker span{display:none}
  .kfa .barrow{flex-wrap:wrap;gap:.5rem .8rem}
  .kfa .slwrap{flex-basis:100%}
  .kfa .timecopy{min-width:6.3rem}.kfa .timecopy strong{font-size:1.2rem}
  .kfa .stats b{font-size:1.3rem}
  .kfa .multiples,.kfa .placelist{grid-template-columns:minmax(0,1fr)}
  .kfa .r,.kfa .axis{grid-template-columns:5.2rem minmax(0,1fr) 3.8rem}
  .kfa .lablist{grid-template-columns:minmax(0,1fr)}
  .kfa .dialrow{flex-wrap:wrap}.kfa .dialtrack{flex-basis:100%}
}
@media (prefers-reduced-motion:reduce){.kfa *{transition:none!important}}
