#vs-wrap{--ink:#17233B;--red:#e21b3c;--red2:#c81e3a;--gold:#d8b464;--ok:#22c55e;--bad:#ff4d5e;--mut:#64748b;width:100%!important;max-width:none!important;margin:0;border-radius:0;overflow:hidden;color:#17233B;font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;background:#ffffff;box-shadow:none}
#vs-wrap *{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
#vs-wrap button{font-family:inherit}
.vs-inner{position:relative;padding:clamp(18px,4vw,36px);background-image:radial-gradient(rgba(200,30,58,.07) 1px,transparent 1px);background-size:26px 26px;animation:vsin .45s cubic-bezier(.2,.8,.2,1) both}
@keyframes vsin{from{opacity:0;transform:scale(.97) translateY(10px)}to{opacity:1;transform:none}}
.vs-hidden{display:none!important}
.vs-hero{text-align:center;padding:10px 0 12px}
.vs-hero h1{margin:0;font-size:clamp(34px,7vw,64px);line-height:1.05;font-weight:700;color:#c81e3a}
.vs-hero p.sub{margin:12px auto 22px;max-width:none!important;font-size:clamp(16px,2.6vw,21px);color:var(--mut);line-height:1.4}
.vs-play{border:0;border-radius:99px;font-weight:700;cursor:pointer;color:#fff;background:linear-gradient(135deg,#e21b3c,#c81e3a);padding:16px 42px;font-size:clamp(18px,3vw,23px);animation:vsglow 2s infinite;transition:transform .15s}
.vs-play:hover,.vs-play:focus,.vs-play:focus-visible,.vs-play:active{background:linear-gradient(135deg,#e21b3c,#c81e3a)!important;color:#fff!important;transform:scale(1.05)}
@keyframes vsglow{0%{box-shadow:0 0 0 0 rgba(226,27,60,.45)}70%,100%{box-shadow:0 0 0 16px rgba(226,27,60,0)}}
.vs-play.ghost{background:#fff;color:#c81e3a;border:1px solid rgba(200,30,58,.3);animation:none}
.vs-play.ghost:hover,.vs-play.ghost:focus,.vs-play.ghost:focus-visible,.vs-play.ghost:active{background:#fdecef!important;color:#c81e3a!important}
.vs-chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:18px 0 6px}
.vs-chip{display:inline-block;padding:5px 12px;border-radius:99px;background:rgba(200,30,58,.08);border:1px solid rgba(200,30,58,.2);font-weight:600;font-size:14px;white-space:nowrap;color:#17233B}
.vs-rules{font-size:14px;color:var(--mut);margin:6px 0 0;text-align:center}
.vs-h3{margin:22px 0 10px;font-size:clamp(18px,3vw,24px);text-align:center;color:#17233B}
.vs-tabs{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin:16px 0}
.vs-tab{border:1px solid rgba(200,30,58,.25);background:#fff;color:#17233B;border-radius:99px;padding:12px 22px;font-weight:700;font-size:16px;cursor:pointer}
.vs-tab:hover,.vs-tab:focus,.vs-tab:focus-visible,.vs-tab:active{background:#fdecef!important;color:#17233B!important}
.vs-tab.sel{background:linear-gradient(135deg,#d8b464,#fb923c)!important;color:#3b1d00!important}
.vs-pairs{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;padding-bottom:8px}
.vs-pair{display:flex;align-items:center;gap:8px;padding:8px;border-radius:18px;background:#fff;border:1px solid rgba(200,30,58,.18);box-shadow:0 4px 14px rgba(200,30,58,.08)}
.vs-pair i{font-style:normal;font-size:12px;color:#b8933f;font-weight:700}
.vs-sbtn{flex:1;min-height:44px;border-radius:12px;border:1px solid rgba(200,30,58,.25);background:#fff;font-weight:600;font-size:15px;cursor:pointer;padding:6px 8px;color:#17233B;transition:transform .15s,background .2s}
.vs-sbtn:hover,.vs-sbtn:focus,.vs-sbtn:focus-visible,.vs-sbtn:active{background:#fdecef!important;color:#17233B!important;transform:translateY(-2px)}
.vs-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.vs-top b{font-size:clamp(18px,3vw,24px);color:#17233B}
.vs-ib{width:44px;height:44px;border-radius:14px;border:1px solid rgba(200,30,58,.25);background:#fff;font-size:21px;cursor:pointer;transition:transform .15s,background .2s;color:#c81e3a}
.vs-ib:hover,.vs-ib:focus,.vs-ib:focus-visible,.vs-ib:active{background:#fdecef!important;color:#c81e3a!important;transform:translateY(-2px)}
.vs-stats{display:flex;align-items:center;gap:10px;margin:8px 0;flex-wrap:wrap}
.vs-bar{flex:1;min-width:120px;height:10px;border-radius:99px;background:#f1e4e6;overflow:hidden}
.vs-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#e21b3c,#d8b464);transition:width .7s cubic-bezier(.2,.8,.2,1)}
.vs-card{background:#fff;border:1px solid rgba(200,30,58,.15);border-radius:22px;padding:clamp(16px,3vw,26px);box-shadow:0 10px 30px rgba(200,30,58,.08)}
.vs-featicon{font-size:clamp(44px,9vw,72px);line-height:1;text-align:center}
.vs-card h2{margin:8px 0 10px;font-size:clamp(26px,4.4vw,40px);text-align:center;color:#17233B}
.vs-facts{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:8px}
.vs-facts li{padding:10px 14px;border-radius:14px;background:#faf1e2;border:1px solid rgba(200,30,58,.12);font-size:clamp(15px,2.2vw,18px);line-height:1.35;color:#17233B}
.vs-diff{padding:12px 14px;border-radius:14px;border-left:5px solid #c81e3a;background:rgba(200,30,58,.08);font-size:clamp(15px,2.2vw,18px);line-height:1.4;margin:0 0 14px;color:#17233B}
.vs-btn{border:0;border-radius:99px;font-weight:700;cursor:pointer;color:#fff;background:linear-gradient(135deg,#e21b3c,#c81e3a);padding:12px 24px;font-size:17px;transition:transform .15s}
.vs-btn:hover,.vs-btn:focus,.vs-btn:focus-visible,.vs-btn:active{background:linear-gradient(135deg,#e21b3c,#c81e3a)!important;color:#fff!important;transform:scale(1.05)}
.vs-btn.ghost{background:#fff;color:#c81e3a;border:1px solid rgba(200,30,58,.3)}
.vs-btn.ghost:hover,.vs-btn.ghost:focus,.vs-btn.ghost:focus-visible,.vs-btn.ghost:active{background:#fdecef!important;color:#c81e3a!important}
.vs-btns{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:16px 0}
.vs-q{text-align:center;margin:6px 0 12px}
.vs-q h2{margin:0;font-size:clamp(24px,4.6vw,38px);font-weight:700;line-height:1.12;color:#17233B}
.vs-opts{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:minmax(0,1fr);gap:clamp(8px,1.6vw,16px);margin:0 auto}
@media(max-width:none!important){.vs-opts{grid-template-columns:1fr}}
#vs-wrap .vs-opt{color:#1e1b4b}
.vs-opt{position:relative;display:flex;align-items:center;gap:12px;padding:14px 16px;text-align:left;font-size:clamp(16px,2.8vw,21px);font-weight:600;border-radius:clamp(18px,3vw,26px);border:2px solid rgba(200,30,58,.25);background:linear-gradient(160deg,#fff,#fff1f2);color:#1e1b4b;cursor:pointer;box-shadow:0 14px 40px rgba(200,30,58,.15);transition:transform .25s,box-shadow .25s;animation:vscardin .6s cubic-bezier(.2,.9,.25,1.1) both;animation-delay:calc(var(--i)*.07s)}
@keyframes vscardin{from{opacity:0;transform:translateY(24px) scale(.9)}to{opacity:1;transform:none}}
.vs-opt:hover,.vs-opt:focus,.vs-opt:focus-visible,.vs-opt:active{background:linear-gradient(160deg,#fff,#fff1f2)!important;color:#1e1b4b!important;transform:translateY(-6px) scale(1.015);box-shadow:0 22px 50px rgba(200,30,58,.3)}
.vs-let{flex:none;width:clamp(30px,5vw,40px);aspect-ratio:1;border-radius:50%;background:linear-gradient(135deg,#c81e3a,#e11d48);color:#fff;font-weight:700;display:grid;place-items:center;font-size:clamp(15px,2.4vw,20px);box-shadow:0 4px 12px rgba(225,29,72,.5)}
.vs-opt.correct{border-color:var(--ok);box-shadow:0 0 0 4px rgba(34,197,94,.35),0 0 60px rgba(34,197,94,.7);animation:vspop .55s}
.vs-opt.wrong{border-color:var(--bad);box-shadow:0 0 0 4px rgba(255,77,94,.35),0 0 60px rgba(255,77,94,.65);animation:vsshake .5s}
.vs-opt.correct::after,.vs-opt.wrong::after{content:"✓";margin-left:auto;font-size:28px;font-weight:700;color:var(--ok)}
.vs-opt.wrong::after{content:"✗";color:var(--bad)}
@keyframes vspop{40%{transform:scale(1.05)}}
@keyframes vsshake{20%,60%{transform:translateX(-10px)}40%,80%{transform:translateX(10px)}}
.vs-foot{min-height:58px;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px 16px;margin-top:10px}
.vs-msg{font-size:clamp(17px,3vw,24px);font-weight:700;text-align:center;color:#17233B}
.vs-msg.ok{color:#16a34a}
.vs-msg.no{color:#e11d48}
.vs-msg.dim{color:var(--mut);font-weight:500;font-size:clamp(14px,2.2vw,17px)}
.vs-next{border:0;border-radius:99px;font-weight:700;cursor:pointer;color:#fff;background:linear-gradient(135deg,#e21b3c,#c81e3a);padding:11px 30px;font-size:clamp(16px,2.6vw,20px);box-shadow:0 8px 24px rgba(226,27,60,.35);animation:vsglow 1.8s .5s infinite}
.vs-next:hover,.vs-next:focus,.vs-next:focus-visible,.vs-next:active{background:linear-gradient(135deg,#e21b3c,#c81e3a)!important;color:#fff!important;transform:scale(1.05)}
.vs-levels{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin:16px 0}
.vs-level{border:1px solid rgba(200,30,58,.25);background:#fff;color:#17233B;border-radius:99px;padding:12px 22px;font-weight:700;font-size:16px;cursor:pointer}
.vs-level:hover,.vs-level:focus,.vs-level:focus-visible,.vs-level:active{background:#fdecef!important;color:#17233B!important}
.vs-level.sel{background:linear-gradient(135deg,#d8b464,#fb923c)!important;color:#3b1d00!important}
.vs-res{text-align:center;padding-top:10px}
.vs-res h2{margin:6px 0;font-size:clamp(28px,5vw,44px);color:#17233B}
.vs-res p{margin:6px auto;max-width:none!important;font-size:clamp(15px,2.4vw,19px);line-height:1.45;color:#475569}
.vs-badge{display:inline-block;padding:10px 20px;border-radius:99px;background:linear-gradient(135deg,#d8b464,#fb923c);color:#3b1d00!important;font-weight:700;animation:vspop .7s .6s both}
.vs-ring{width:clamp(150px,26vh,220px);margin:0 auto}
.vs-ring circle{fill:none;stroke-width:10}
.vs-ring .bg{stroke:#f1e4e6}
.vs-ring .fg{stroke:#e21b3c;stroke-linecap:round;transform:rotate(-90deg);transform-origin:60px 60px}
.vs-ring text{fill:#17233B;font:700 30px system-ui,sans-serif}
.vs-conf{position:fixed;inset:0;pointer-events:none;z-index:50;overflow:hidden}
.vs-conf i{position:absolute;width:9px;height:14px;border-radius:2px;animation:vsconf 1.15s cubic-bezier(.1,.7,.3,1) forwards}
@keyframes vsconf{to{transform:translate(var(--x),calc(var(--y) + 170px)) rotate(var(--r));opacity:0}}
.vs-search{width:100%;padding:12px 16px;border-radius:99px;border:1px solid rgba(200,30,58,.25);background:#fff;color:#17233B;font-size:16px}
.vs-search::placeholder{color:var(--mut)}
.vs-mapwrap{width:100%;max-height:70vh;overflow:hidden;border-radius:22px;background:linear-gradient(160deg,#fff,#fdecef);box-shadow:0 18px 50px rgba(200,30,58,.15);border:1px solid rgba(200,30,58,.15)}
.vs-mapwrap svg{width:100%;height:auto;max-height:70vh;display:block}
.vs-mapwrap .st{fill:#ffffff;stroke:#c81e3a;stroke-width:.18;cursor:pointer;transition:fill .15s}
.vs-mapwrap .st:hover{fill:#fdecef}
.vs-mapwrap .st.sel-correct{fill:#22c55e!important;stroke:#15803d}
.vs-mapwrap .st.sel-wrong{fill:#ff4d5e!important;stroke:#be123c}
.vs-mapwrap .st-hit{fill:transparent;stroke:none;cursor:pointer;pointer-events:all}
.vs-mapnote{font-size:14px;color:var(--mut);text-align:center;margin:10px 0 0}
.vs-readout{text-align:center;font-weight:700;color:#c81e3a;min-height:24px;font-size:17px}
@media(max-width:none!important){.vs-mapwrap{border-radius:16px}}

/* Visited States Map: status colours on the map */
#vs-wrap .vs-mapwrap .st.st-visited{fill:#22c55e!important;stroke:#15803d}
#vs-wrap .vs-mapwrap .st.st-lived{fill:#d8b464!important;stroke:#92600a}
#vs-wrap .vs-mapwrap .st.st-passed{fill:#38bdf8!important;stroke:#0369a1}
#vs-wrap .vs-mapwrap .st.st-want{fill:#c4b5fd!important;stroke:#6d28d9}
#vs-wrap .vs-mapwrap .st.st-sel{stroke:#c81e3a;stroke-width:.5}
#vs-wrap .vs-mapwrap .st-hit.st-visited{fill:rgba(34,197,94,.55)}
#vs-wrap .vs-mapwrap .st-hit.st-lived{fill:rgba(216,180,100,.6)}
#vs-wrap .vs-mapwrap .st-hit.st-passed{fill:rgba(56,189,248,.55)}
#vs-wrap .vs-mapwrap .st-hit.st-want{fill:rgba(167,139,250,.55)}
.vs-mapskel{min-height:220px;display:flex;align-items:center;justify-content:center;color:#64748b;font-weight:600}
.vs-legend{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:12px 0 4px}
.vs-leg{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:99px;background:#fff;border:1px solid rgba(200,30,58,.2);font-weight:600;font-size:14px;color:#17233B}
.vs-dot{width:14px;height:14px;border-radius:50%;display:inline-block;border:1px solid rgba(0,0,0,.15)}
.vs-dot.visited{background:#22c55e}.vs-dot.lived{background:#d8b464}.vs-dot.passed{background:#38bdf8}.vs-dot.want{background:#a78bfa}.vs-dot.none{background:#fff}
/* progress ring + region bars */
.vs-prog{display:flex;gap:18px;align-items:center;justify-content:center;flex-wrap:wrap;margin:14px 0}
.vs-prog .vs-counts{text-align:left;font-size:clamp(15px,2.4vw,18px);line-height:1.55;color:#17233B}
.vs-prog .vs-counts b{font-size:clamp(22px,4vw,30px);color:#c81e3a}
.vs-ring{width:clamp(130px,24vh,180px);margin:0 auto}
.vs-ring circle{fill:none;stroke-width:10}
.vs-ring .bg{stroke:#f1e4e6}
.vs-ring .fg{stroke:#e21b3c;stroke-linecap:round;transform:rotate(-90deg);transform-origin:60px 60px;transition:stroke-dashoffset .7s cubic-bezier(.2,.8,.2,1)}
.vs-ring text{fill:#17233B;font:700 26px system-ui,sans-serif}
.vs-regions{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px;margin:10px 0 4px}
@media(max-width:560px){.vs-regions{grid-template-columns:1fr}}
.vs-region{font-size:15px;font-weight:600;color:#17233B}
.vs-region .vs-rbar{height:10px;border-radius:99px;background:#f1e4e6;overflow:hidden;margin-top:4px}
.vs-region .vs-rbar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#e21b3c,#d8b464);transition:width .7s cubic-bezier(.2,.8,.2,1)}
.vs-region .vs-rbadge{color:#16a34a;font-weight:700}
/* detail panel + status picker */
.vs-detail{margin:16px auto 0;max-width:none!important;background:#fff;border:1px solid rgba(200,30,58,.18);border-radius:22px;padding:clamp(16px,3vw,24px);box-shadow:0 10px 30px rgba(200,30,58,.08);text-align:center;animation:vscardin .5s cubic-bezier(.2,.9,.25,1.1) both}
.vs-detail h3{margin:0 0 4px;font-size:clamp(22px,4vw,30px);color:#17233B}
.vs-detail p{margin:6px 0;color:#475569;font-size:clamp(15px,2.4vw,18px);line-height:1.45}
.vs-detail p b{color:#17233B}
.vs-statusbtns{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:12px}
.vs-statusbtn{border:2px solid rgba(200,30,58,.25);background:#fff;color:#17233B;border-radius:99px;padding:10px 16px;font-weight:700;font-size:15px;cursor:pointer}
.vs-statusbtn:hover,.vs-statusbtn:focus,.vs-statusbtn:focus-visible,.vs-statusbtn:active{background:#fdecef!important;color:#17233B!important}
.vs-statusbtn.sel-visited{border-color:#22c55e;background:#dcfce7!important}
.vs-statusbtn.sel-lived{border-color:#d8b464;background:#fef3c7!important}
.vs-statusbtn.sel-passed{border-color:#38bdf8;background:#e0f2fe!important}
.vs-statusbtn.sel-want{border-color:#a78bfa;background:#ede9fe!important}
/* rule picker */
.vs-rules3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:14px 0}
@media(max-width:640px){.vs-rules3{grid-template-columns:1fr}}
.vs-rule{border:2px solid rgba(200,30,58,.2);border-radius:18px;padding:14px;background:#fff;cursor:pointer;text-align:left}
.vs-rule:hover,.vs-rule:focus-within{border-color:#c81e3a}
.vs-rule.sel{border-color:#c81e3a;background:#fff7f9}
.vs-rule b{display:block;font-size:16px;color:#17233B;margin-bottom:4px}
.vs-rule span{font-size:14px;color:#475569;line-height:1.4}
.vs-rule input{accent-color:#c81e3a}
/* suggester + result card */
.vs-suggest{margin:16px auto 0;max-width:none!important;background:#faf1e2;border:1px solid rgba(200,30,58,.15);border-radius:22px;padding:clamp(16px,3vw,24px);text-align:center}
.vs-suggest h3{margin:0 0 6px;font-size:clamp(20px,3.4vw,26px);color:#17233B}
.vs-suggest p{margin:6px 0;color:#475569;font-size:clamp(15px,2.4vw,18px);line-height:1.45}
.vs-result{margin:18px auto 0;max-width:none!important;background:linear-gradient(135deg,#e21b3c,#c81e3a);color:#fff;border-radius:22px;padding:clamp(18px,3vw,26px);text-align:center;box-shadow:0 14px 40px rgba(200,30,58,.3)}
.vs-result h3{margin:0 0 6px;font-size:clamp(20px,3.4vw,26px);color:#fff}
.vs-result p{margin:4px 0;font-size:clamp(16px,2.6vw,20px);font-weight:700;color:#fff}
.vs-result .vs-sub{font-weight:500;font-size:14px;opacity:.9}
.vs-result .vs-btn{background:#fff!important;color:#c81e3a!important}
.vs-result .vs-btn:hover,.vs-result .vs-btn:focus,.vs-result .vs-btn:focus-visible,.vs-result .vs-btn:active{background:#fdecef!important;color:#c81e3a!important}
/* bonus toggles */
.vs-bonus{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin:14px 0}
.vs-toggle{display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(200,30,58,.25);background:#fff;border-radius:99px;padding:10px 18px;font-weight:700;font-size:15px;color:#17233B;cursor:pointer}
.vs-toggle input{accent-color:#c81e3a}
.vs-terr{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin:6px 0 0}
.vs-terr .vs-chip{cursor:pointer}
.vs-terr .vs-chip.on{background:#dcfce7;border-color:#22c55e}
/* checklist */
.vs-check{margin-top:16px}
.vs-check h3{margin:20px 0 8px;font-size:clamp(19px,3vw,24px);color:#17233B;text-align:center}
.vs-check h3 .vs-mini{font-size:14px;color:#64748b;font-weight:600}
.vs-rows{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px}
.vs-row{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:14px;background:#fff;border:1px solid rgba(200,30,58,.15);cursor:pointer;text-align:left;font-size:15px;font-weight:600;color:#17233B;width:100%}
.vs-row:hover,.vs-row:focus,.vs-row:focus-visible,.vs-row:active{background:#fdecef!important;color:#17233B!important}
.vs-row .vs-ab{color:#b8933f;font-size:12px;font-weight:700}
.vs-row .vs-st{margin-left:auto;font-size:12px;font-weight:700;color:#64748b}
.vs-row .vs-st.visited{color:#15803d}.vs-row .vs-st.lived{color:#92600a}.vs-row .vs-st.passed{color:#0369a1}.vs-row .vs-st.want{color:#6d28d9}
.vs-msg{text-align:center;font-weight:700;color:#16a34a;min-height:24px;font-size:16px;margin-top:8px}

/* Visited States Map: print-only checklist */
#vs-printsheet{display:none}
@media print{
  #vs-wrap .vs-hero,#vs-wrap .vs-tabs,#vs-wrap .vs-search,#vs-wrap .vs-btns,#vs-wrap .vs-detail,#vs-wrap .vs-suggest,#vs-wrap .vs-result,#vs-wrap .vs-rules3,#vs-wrap .vs-bonus,#vs-wrap .vs-terr{display:none!important}
  #vs-printsheet{display:block!important;color:#000;font-family:Arial,sans-serif}
  #vs-printsheet h2{font-size:20px;margin:0 0 8px}
  #vs-printsheet p{font-size:13px;margin:0 0 12px}
  #vs-printsheet table{width:100%;border-collapse:collapse;font-size:13px}
  #vs-printsheet td,#vs-printsheet th{border:1px solid #999;padding:6px 8px;text-align:left}
}

/* FULL WIDTH — no narrow centered column anywhere on the page */
#vs-wrap{width:100%!important;max-width:none!important;margin:0}
#vs-wrap .vs-hero p.sub,#vs-wrap .vs-detail,#vs-wrap .vs-suggest,#vs-wrap .vs-result,#vs-wrap .vs-res p{max-width:none!important}
