:root{--ink:#1C1917;--muted:#5F5750;--line:#E7E1DA;--bg:#fff;--soft:#F6F3EF;--red:#9B1C22;--red-ink:#7A1418;--hi:#FFD24A}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:16px;line-height:1.55}
a{color:var(--red)}a:hover{color:var(--red-ink)}
img{max-width:100%;height:auto}
:focus-visible{outline:3px solid var(--red);outline-offset:2px}
.skip{position:absolute;left:-999px;top:8px;background:#fff;padding:8px 12px;z-index:10}
.skip:focus{left:8px}
.top{border-bottom:1px solid var(--line);background:#fff}
.top .in{max-width:1120px;margin:0 auto;padding:10px 16px;display:flex;align-items:center;gap:16px;min-height:56px}
.brand{font-weight:800;font-size:19px;letter-spacing:-.01em;color:var(--ink);text-decoration:none}
.brand span{color:var(--red)}
.nav{margin-left:auto;display:flex;gap:4px}
.nav a{display:flex;align-items:center;min-height:44px;padding:0 12px;border-radius:8px;color:var(--ink);text-decoration:none;font-weight:600}
.nav a[aria-current="page"]{background:var(--soft)}
main{max-width:1120px;margin:0 auto;padding:12px 16px 48px}
.crumbs{font-size:14px;color:var(--muted);margin:4px 0 8px}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px}
.crumbs li+li::before{content:"›";margin-right:4px;color:var(--muted)}
.crumbs a{color:var(--muted)}
h1{font-size:30px;line-height:1.15;letter-spacing:-.02em;margin:6px 0 10px}
h2{font-size:22px;line-height:1.25;letter-spacing:-.01em;margin:32px 0 10px}
h3{font-size:18px;margin:20px 0 6px}
.lead{font-size:18px;color:var(--ink);margin:0 0 12px;max-width:68ch}
p{max-width:72ch}
.muted{color:var(--muted)}
/* chart */
.chart{position:relative;margin:8px 0 0;border-radius:14px;overflow:hidden;background:var(--soft)}
.chart img{display:block;width:100%;height:auto}
.chart svg{position:absolute;inset:0;width:100%;height:100%}
.zone polygon{fill:rgba(255,255,255,0);transition:fill .15s}
.zone:hover polygon,.zone:focus-visible polygon{fill:rgba(255,255,255,.18)}
.zone.sel polygon{fill:rgba(255,210,74,.3);stroke:var(--hi);stroke-width:3;vector-effect:non-scaling-stroke}
.zone:focus-visible{outline:none}
.zone:focus-visible polygon{stroke:var(--hi);stroke-width:3;vector-effect:non-scaling-stroke}
.mk circle.dot{fill:#fff;stroke:rgba(0,0,0,.3)}
.mk circle.hit{fill:transparent}
.mk text{fill:var(--ink);font-weight:700;text-anchor:middle;dominant-baseline:central;pointer-events:none;font-family:system-ui,sans-serif}
.mk.sel circle.dot{fill:var(--hi);stroke:var(--ink)}
.labels{display:none}
.lbl{position:absolute;transform:translate(-50%,-50%);background:rgba(255,255,255,.96);color:var(--ink);font-size:12.5px;font-weight:600;line-height:1.15;padding:5px 8px;border-radius:7px;box-shadow:0 1px 4px rgba(0,0,0,.35);white-space:nowrap;text-decoration:none}
.lbl b{color:var(--red);margin-right:4px}
.lbl:hover{color:var(--ink);background:#fff}
.lbl.sel{background:var(--hi)}
.lbl.r{transform:translate(-96%,-50%)}
.lbl.l{transform:translate(-4%,-50%)}
.hint{font-size:14px;color:var(--muted);margin:8px 0 0}
/* cut list */
.cutlist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
.cutlist li{border:1px solid var(--line);border-radius:12px;background:#fff;scroll-margin-top:16px}
.cutlist li:target,.cutlist li.sel{border-color:var(--ink);background:#FFF9E3}
.cutlist a.row{display:flex;align-items:center;gap:12px;min-height:48px;padding:10px 12px 4px;color:var(--ink);text-decoration:none}
.cutlist .num{flex:none;width:30px;height:30px;border-radius:50%;background:var(--ink);color:#fff;font-weight:700;font-size:14px;display:flex;align-items:center;justify-content:center}
.cutlist .nm{font-weight:700}
.cutlist .nmw{display:flex;flex-direction:column;min-width:0}
.cutlist .tr{color:var(--muted);font-size:14px;font-weight:400}
.cutlist p{margin:0;padding:0 12px 12px 54px;font-size:15px;color:var(--muted)}
.cutlist .go{font-weight:600;color:var(--red)}
.tag{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;background:var(--ink);color:#fff;border-radius:6px;padding:2px 6px;margin-left:6px;vertical-align:2px}
/* bottom sheet */
.sheet{position:fixed;left:0;right:0;bottom:0;z-index:20;background:#fff;border-top-left-radius:16px;border-top-right-radius:16px;box-shadow:0 -6px 24px rgba(0,0,0,.18);padding:12px 16px calc(16px + env(safe-area-inset-bottom));transform:translateY(105%);transition:transform .22s ease;max-height:70vh;overflow:auto}
.sheet.open{transform:translateY(0)}
.sheet .grab{width:40px;height:4px;border-radius:2px;background:var(--line);margin:0 auto 10px}
.sheet .eyebrow{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0}
.sheet h2{margin:2px 0 6px;font-size:22px}
.sheet p{margin:0 0 10px}
.sheet .aka{font-size:15px;color:var(--muted)}
.sheet .acts{display:flex;gap:8px;align-items:center}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 18px;border-radius:10px;font-weight:700;text-decoration:none;border:1px solid var(--ink);background:var(--ink);color:#fff;font-size:16px;cursor:pointer}
.btn:hover{background:#000;color:#fff}
.btn.ghost{background:#fff;color:var(--ink)}
.btn.ghost:hover{background:var(--soft);color:var(--ink)}
.btn[aria-disabled="true"]{background:var(--soft);color:var(--muted);border-color:var(--line);cursor:default}
.close{margin-left:auto}
/* cards */
.cards{display:grid;gap:12px}
.card{display:block;border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff;color:var(--ink);text-decoration:none}
a.card:hover{border-color:var(--ink);color:var(--ink)}
.card h3{margin:0 0 4px}
.card p{margin:0;color:var(--muted);font-size:15px}
.extra{display:flex;gap:12px;align-items:center}
.extra img{width:110px;height:70px;object-fit:cover;border-radius:8px;flex:none}
/* cut page */
.facts{display:grid;gap:8px;margin:12px 0}
.names{width:100%;border-collapse:collapse;font-size:15px}
.names th,.names td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.names th{width:38%;color:var(--muted);font-weight:600}
.temps{width:100%;border-collapse:collapse;font-size:15px}
.temps th,.temps td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line)}
.temps thead th{color:var(--muted);font-weight:600}
.loc{margin:12px 0;border-radius:12px;overflow:hidden}
.loc figcaption{font-size:14px;color:var(--muted);padding:6px 2px}
.chips{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:8px 0;padding:0}
.chips li{background:var(--soft);border:1px solid var(--line);border-radius:999px;padding:4px 12px;font-size:14px;font-weight:600}
.note{background:var(--soft);border-radius:12px;padding:12px 14px;font-size:15px}
.steps{padding-left:20px}
.steps li{margin:6px 0}
.sources{font-size:14px;color:var(--muted)}
.sources li{margin:4px 0}
footer.site{border-top:1px solid var(--line);margin-top:40px}
footer.site .in{max-width:1120px;margin:0 auto;padding:16px;font-size:14px;color:var(--muted)}
@media (min-width:600px){.cutlist{grid-template-columns:repeat(2,minmax(0,1fr))}.cards{grid-template-columns:1fr 1fr}}
@media (min-width:768px){
  h1{font-size:38px}
  .chart{max-width:820px}
  .labels{display:block}
  .mk{display:none}
  .hint .phone{display:none}
  .sheet{left:auto;right:24px;bottom:24px;width:360px;border-radius:16px;transform:translateY(calc(100% + 40px))}
  .sheet.open{transform:translateY(0)}
  .sheet .grab{display:none}
}
@media (max-width:767px){.hint .wide{display:none}}
@media (min-width:1024px){.cutlist{grid-template-columns:repeat(3,minmax(0,1fr))}.cut-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:32px;align-items:start}.cut-side{position:sticky;top:16px}}
@media (prefers-reduced-motion:reduce){.sheet,.zone polygon{transition:none}}
.cut-page{max-width:760px}
.mk:focus,.lbl:focus{outline:none}
.names-note{font-size:14px;color:var(--muted);background:var(--soft);border-radius:10px;padding:10px 12px;margin:10px 0 0}
.names-note a{white-space:nowrap}
footer.site .legal{display:block;margin-top:6px}
footer.site a{color:inherit}
.std td,.std th{vertical-align:top}
@media (max-width:600px){.std{font-size:14px}}
.std th{width:auto}
@media (max-width:600px){.std thead{display:none}.std tr{display:block;border-bottom:1px solid var(--line);padding:8px 0}.std td{display:block;border:0;padding:2px 0}.std td:first-child{font-weight:600}}
