.tp-world-intro { text-align:center; max-width:960px; margin:0 auto 28px; }
.tp-world-intro .tp-sub { max-width:820px; margin:0 auto 24px; }
.tp-world-intro .tp-action-buttons { justify-content:center; }
.tw-map { margin:32px 0 44px; background:#fff; border:1px solid #e9e1f5; border-radius:24px; padding:22px 0 0; box-shadow:0 16px 48px #38207108; overflow:hidden; }
.tw-toolbar { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:0 24px; }
.tw-live { display:flex; align-items:center; gap:9px; color:#4a3570; font-size:13px; font-weight:600; }
.tw-live > span,.tw-legend-dot { display:inline-block; width:7px; height:7px; border-radius:50%; background:#302ea7; }
.tw-controls { display:flex; align-items:center; gap:5px; }
.tw-controls button { border:1px solid #e5dcf3; border-radius:8px; background:#faf7ff; color:#573491; min-width:34px; min-height:34px; padding:5px 9px; cursor:pointer; font:inherit; font-size:13px; }
.tw-controls button:hover { background:#eee5ff; }
.tw-controls button:focus-visible,.tw-viewport:focus-visible { outline:3px solid #8b5cf6; outline-offset:-3px; }
.tw-controls button:disabled { opacity:.4; cursor:default; }
.tw-hint { margin:10px 24px 0; color:#71667f; font-size:11px; }
.tw-viewport { overflow:auto; scrollbar-width:thin; scrollbar-color:#c7afea #f7f3fc; }
.tw-canvas { display:block; width:100%; min-width:1100px; height:auto; }
.tw-dot { fill:#302ea7; stroke:white; stroke-width:1.5; }
.tw-pulse { fill:none; stroke:#302ea7; stroke-width:1.2; animation:tw-pulse 3.6s ease-out infinite; animation-delay:var(--pin-delay); }
.tw-map:not(.is-in-view) .tw-pulse { animation-play-state:paused; }
.tw-label { color:#302ea7; }
.tw-label rect { fill:#fff; stroke:#9f7bdb; stroke-width:1.1; }
.tw-label text { fill:#3f3156; font:14px Arial,sans-serif; }
.tw-country:hover .tw-label rect { fill:#f5efff; stroke:#6733bd; stroke-width:2; }
.tw-leaders line { stroke:#ad8fd5; stroke-width:.85; opacity:.7; }
.tw-footer { display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; margin:0 24px; padding:16px 0; border-top:1px solid #f0eaf7; color:#756687; font-size:11px; }
.tw-footer a { color:inherit; text-decoration:underline; }
.tw-legend-dot { margin-right:5px; }
.tw-country-list { border-top:1px solid #f0eaf7; padding:15px 24px; color:#5b3c86; font-size:13px; }
.tw-country-list summary { cursor:pointer; font-weight:600; }
.tw-country-list ul { list-style:none; padding:0; margin:18px 0 4px; display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px; }
.tw-country-list li .ti-map-pin { color:#302ea7; }
.tw-country-list li { display:flex; align-items:center; gap:7px; }
@keyframes tw-pulse { 0% { r:5; opacity:.7; } 85%,100% { r:13; opacity:0; } }
@media(prefers-reduced-motion:reduce) { .tw-pulse { animation:none; opacity:.3; } }
@media(max-width:600px) { .tw-toolbar { align-items:flex-start; padding:0 16px; gap:8px; } .tw-live { max-width:190px; font-size:12px; } .tw-hint { margin-left:16px; margin-right:16px; } .tw-footer { margin:0 16px; } .tw-map { border-radius:18px; } .tp-world-intro .tp-headline { font-size:29px; } }

.tw-country-picker { display:none; }
.tw-country.is-selected .tw-label rect { stroke:#302ea7; stroke-width:2.5; fill:#efefff; }
@media(max-width:700px) {
 .tw-map { margin-left:-12px; margin-right:-12px; padding-top:18px; }
 .tw-toolbar { flex-wrap:wrap; padding:0 16px; gap:14px; }
 .tw-live { max-width:none; width:100%; font-size:13px; }
 .tw-live > span { flex-shrink:0; }
 .tw-controls { width:100%; gap:8px; }
 .tw-controls button { min-height:44px; min-width:44px; color:#302ea7; font-size:16px; }
 .tw-controls [data-map-zoom="reset"] { flex:1; font-size:14px; }
 .tw-hint { font-size:12px; line-height:1.6; margin:12px 16px; }
 .tw-country-picker { display:block; margin:0 16px 14px; color:#443966; font-size:12px; font-weight:600; }
 .tw-country-picker select { display:block; width:100%; min-height:44px; margin-top:6px; padding:9px 12px; border:1px solid #ddd9ef; border-radius:10px; background:#faf9ff; color:#302ea7; font:inherit; font-size:16px; }
 .tw-viewport { max-height:380px; overscroll-behavior:contain; }
 .tw-canvas { min-width:0; }
 .tw-map.is-overview .tw-label,.tw-map.is-overview .tw-leaders { visibility:hidden; }
 .tw-map.is-overview .tw-dot { r:7; stroke-width:2; }
 .tw-footer { font-size:11px; line-height:1.6; }
 .tw-country-list { padding:16px; }
 .tw-country-list summary { min-height:30px; line-height:1.6; }
 .tw-country-list ul { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 10px; font-size:12px; }
}

.tw-trust { display:flex; align-items:center; gap:30px; margin:0 24px 26px; padding:28px; border-radius:18px; background:#f0effc; border:1px solid #deddf5; }
.tw-trust-stat { flex:0 0 145px; text-align:center; color:#302ea7; }
.tw-trust-stat strong { display:block; font-size:72px; font-weight:800; line-height:1; letter-spacing:-.05em; }
.tw-trust-stat span { display:block; margin-top:8px; font-size:13px; font-weight:600; }
.tw-trust-copy { border-left:1px solid #d4d2f0; padding-left:30px; }
.tw-trust-eyebrow { margin:0 0 8px; color:#302ea7; font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.tw-trust-copy h3 { margin:0 0 10px; color:#24216a; font-size:clamp(22px,2.4vw,30px); line-height:1.25; font-weight:800; }
.tw-trust-copy > p:not(.tw-trust-eyebrow) { margin:0; color:#514f6d; font-size:14px; line-height:1.7; }
.tw-trust-copy a { display:inline-flex; align-items:center; gap:8px; min-height:44px; margin-top:8px; color:#302ea7; font-size:14px; font-weight:700; text-decoration:underline; text-underline-offset:4px; }
.tw-country-list { padding:22px 24px; background:#fafaff; }
.tw-country-list summary { color:#24216a; font-size:18px; font-weight:750; line-height:1.5; }
.tw-country-note { color:#5d5974; font-size:13px; line-height:1.6; margin:8px 0 16px; }
.tw-country-list ul { max-height:320px; overflow-y:auto; overscroll-behavior:contain; padding:4px 8px 4px 0; margin:0; scrollbar-width:thin; scrollbar-color:#9895d4 #eeedf8; }
.tw-country-list li { padding:10px 12px; border:1px solid #e5e3f4; border-radius:9px; background:white; color:#302e58; font-size:14px; font-weight:600; line-height:1.4; }
.tw-country-list li i { flex-shrink:0; }
.tw-country-list ul:focus-visible { outline:2px solid #302ea7; outline-offset:3px; }
@media(max-width:700px) {
 .tw-trust { display:block; margin:0 14px 22px; padding:20px 16px; }
 .tw-trust-stat { display:flex; align-items:center; justify-content:flex-start; gap:14px; text-align:left; margin-bottom:16px; }
 .tw-trust-stat strong { font-size:56px; }
 .tw-trust-stat span { max-width:100px; margin:0; font-size:14px; line-height:1.4; }
 .tw-trust-copy { border-left:0; padding:16px 0 0; border-top:1px solid #d4d2f0; }
 .tw-trust-copy h3 { font-size:23px; }
 .tw-trust-eyebrow { font-size:10px; line-height:1.6; }
 .tw-country-list { padding:20px 16px; }
 .tw-country-list summary { font-size:17px; }
 .tw-country-list ul { gap:8px; }
 .tw-country-list li { font-size:12px; padding:9px 7px; gap:5px; }
}

.tw-country { cursor:pointer; }
.tw-country:focus-visible .tw-label rect { stroke:#302ea7; stroke-width:3; }
.tw-country:focus-visible { outline:none; }
.tw-country-list li { padding:0; }
.tw-country-list li button { display:flex; align-items:center; gap:7px; width:100%; min-height:44px; padding:10px 12px; border:0; background:transparent; color:inherit; text-align:left; font:inherit; cursor:pointer; border-radius:9px; }
.tw-country-list li button:hover,.tw-country-list li button:focus-visible { background:#eeedff; outline:2px solid #302ea7; outline-offset:-2px; }
.tw-detail[hidden] { display:none; }
.tw-detail { display:flex; align-items:center; gap:22px; position:sticky; top:78px; z-index:6; margin:18px 24px; padding:16px 40px 16px 20px; border:1px solid #d6d2f1; border-radius:18px; background:linear-gradient(125deg,#faf9ff,#eeecff); box-shadow:0 12px 32px #302ea718; }
.tw-detail-shape { width:190px; height:130px; flex-shrink:0; overflow:visible; filter:drop-shadow(0 7px 8px #302ea72b); }
.tw-detail-shape path { transform-origin:center; opacity:0; }
.tw-detail.is-revealed .tw-detail-shape path { animation:tw-country-reveal 1.3s ease-out both; }
.tw-detail-eyebrow { color:#302ea7; font-size:10px; text-transform:uppercase; letter-spacing:.1em; font-weight:700; }
.tw-detail h4 { color:#24216a; font-size:26px; line-height:1.2; margin:7px 0; }
.tw-detail p { color:#555173; font-size:13px; line-height:1.6; margin:0; }
.tw-detail-close { position:absolute; top:8px; right:8px; border:0; background:transparent; color:#302ea7; width:36px; height:36px; font-size:26px; cursor:pointer; }
@keyframes tw-country-reveal { 0% { opacity:0; transform:translateY(8px) scale(.88); fill-opacity:0; stroke-dasharray:1; stroke-dashoffset:1; } 60% { opacity:1; fill-opacity:.2; stroke-dasharray:1; stroke-dashoffset:0; } 100% { opacity:1; transform:translateY(0) scale(1); fill-opacity:1; stroke-dasharray:1; stroke-dashoffset:0; } }
@media(max-width:700px) { .tw-detail { top:72px; margin:12px; padding:16px 30px 16px 12px; gap:12px; } .tw-detail-shape { width:100px; height:105px; } .tw-detail h4 { font-size:20px; } .tw-detail-eyebrow { font-size:8px; } .tw-detail p { font-size:11px; } .tw-country-list li button { padding:9px 7px; } }
@media(prefers-reduced-motion:reduce) { .tw-detail.is-revealed .tw-detail-shape path { animation:none; opacity:1; } }
