.pv{display:flex;justify-content:center;gap:10px;align-items:flex-end}
.pv button{all:unset;cursor:pointer;width:64px;height:78px;border-radius:14px;background:#fff;display:grid;place-items:center;
  font:800 40px/1 var(--u-font);color:var(--u-ink);box-shadow:0 2px 0 var(--u-edge),var(--u-sh);transition:transform .25s cubic-bezier(.3,1.6,.5,1),background .25s,color .25s}
.pv button:hover{transform:translateY(-4px)}
.pv button.on{background:var(--sg-blue);color:#fff;transform:translateY(-8px) scale(1.06)}
.pv button:focus-visible{outline:3px solid var(--sg-amber);outline-offset:3px}
.pv .pt{font:800 40px/1 var(--u-font);padding-bottom:12px}
.pvl{display:flex;justify-content:center;gap:10px;margin-top:8px}
.pvl span{width:64px;text-align:center;font-size:11.5px;color:var(--u-soft);line-height:1.2}
.pvl .gap{width:14px}
.pvx{display:flex;justify-content:center;flex-wrap:wrap;gap:6px;margin-top:14px;font:700 18px/1.4 var(--u-font)}
.pvx span{padding:2px 8px;border-radius:8px;transition:background .3s,color .3s}
.pvx span.on{background:var(--sg-blue);color:#fff}

.nl svg{width:100%;height:auto;display:block;overflow:visible}
.nl .tk{stroke:var(--u-ink);stroke-width:2;transition:opacity .5s}
.nl .mn{stroke:var(--u-ink);stroke-width:1.4;opacity:.75}
.nl text{font:700 15px var(--u-font);fill:var(--u-ink)}
.nl .arrow{transition:transform .9s cubic-bezier(.4,1.4,.5,1)}
.nl .zoomg{transition:transform .9s ease,opacity .6s}
.nl-ctl{display:flex;gap:10px;justify-content:center;margin-top:10px;flex-wrap:wrap}
.sg-btn{all:unset;cursor:pointer;padding:9px 16px;border-radius:999px;background:#fff;font-weight:700;font-size:14.5px;color:var(--u-navy);
  box-shadow:inset 0 0 0 1.5px var(--u-edge);transition:background .2s,transform .2s}
.sg-btn:hover{transform:translateY(-2px)}
.sg-btn.on{background:var(--u-navy);color:#fff;box-shadow:none}
.sg-btn:focus-visible{outline:3px solid var(--sg-amber);outline-offset:2px}

.cmp{display:grid;gap:12px}
.cmp .row{display:grid;grid-template-columns:72px minmax(0,1fr);gap:12px;align-items:center}
.cmp .num{font:800 22px/1 var(--u-font);text-align:right}
.cmp .num .z{color:var(--sg-blue);animation:sg-blink 1.6s ease-in-out infinite}
.cmp .trk{position:relative;height:34px;border-radius:9px;background:#fff;box-shadow:inset 0 0 0 1.5px var(--u-edge);overflow:hidden}
.cmp .fill{position:absolute;left:0;top:0;bottom:0;background:var(--sg-blue-lt);border-right:2px solid var(--sg-blue);transition:width 1s cubic-bezier(.3,1.2,.5,1)}
.cmp .gap{position:absolute;top:0;bottom:0;background:var(--sg-amber);opacity:.9;transition:left 1s,width 1s}
.cmp .note{font-size:15px;margin-left:84px}
.cmp .note b{color:var(--u-navy)}
.cmp .note b.df{color:#9D630C}
.cmp-pick{display:flex;gap:8px;justify-content:center;margin-top:14px;flex-wrap:wrap}

.rd{position:relative;padding:30px 10px 4px}
.rd svg{width:100%;height:auto;display:block;overflow:visible}
.rd .zone{transition:opacity .4s}
.rd input[type=range]{width:100%;margin:6px 0 0;accent-color:var(--sg-blue)}
.rd .big{font:800 30px/1 var(--u-font);text-align:center;margin-top:10px}
.rd .big .to{color:var(--sg-blue)}

.hs{display:grid;grid-template-columns:auto minmax(0,1fr);gap:24px;align-items:center}
.hs .grid{display:grid;grid-template-columns:repeat(10,20px);gap:3px;padding:10px;background:#fff;border-radius:12px;box-shadow:var(--u-sh)}
.hs .grid i{width:20px;height:20px;border-radius:4px;background:#EEF1F4;transition:background .35s ease,transform .35s ease}
.hs .grid i.f{background:var(--sg-blue);transform:scale(.92)}
.hs .eq{font:800 30px/1.3 var(--u-font)}
.hs .eq .fr{display:inline-flex;flex-direction:column;align-items:center;vertical-align:middle;font-size:24px;line-height:1.1;margin:0 4px}
.hs .eq .fr span:first-child{border-bottom:2.5px solid currentColor;padding:0 4px}
.hs .eq .d{color:var(--sg-blue)}
.hs .opts{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}

@media (max-width:900px){
  .pv{gap:6px}.pv button{width:52px;height:64px;font-size:32px}.pv .pt{font-size:32px}
  .pvl{gap:6px}.pvl span{width:52px;font-size:10.5px}
  .hs{grid-template-columns:1fr;justify-items:center}
  .hs .grid{grid-template-columns:repeat(10,18px)}.hs .grid i{width:18px;height:18px}
  .cmp .row{grid-template-columns:62px minmax(0,1fr)}.cmp .note{margin-left:0}
}

@media (max-width:480px){
  #s2 .nl text{font-size:26px!important}
  #s4 .rd text[font-size="17"]{font-size:26px}
  #s4 .rd text[font-size="13"]{font-size:24px}
}
