:root{--ink:#07152e;--blue:#0d44c7;--red:#ef3152;--ice:#eef4ff;--line:#d9e2f0;--muted:#62708a;--paper:#f8faff;--white:#fff;--shadow:0 18px 60px rgba(16,48,104,.10)}
.intro h1 .intro-line-primary{color:var(--ink);white-space:nowrap}@media(max-width:600px){.intro h1 .intro-line-primary{white-space:normal}}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,"Noto Sans KR",sans-serif;font-size:16px}button,input,select{font:inherit}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,5vw,72px);border-bottom:1px solid var(--line);background:rgba(248,250,255,.92);backdrop-filter:blur(14px);position:sticky;top:0;z-index:20}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;color:var(--ink)}.brand-mark{width:36px;height:36px;border:2px solid var(--ink);border-radius:50%;display:grid;grid-template-columns:1fr 1fr;overflow:hidden;transform:rotate(-18deg)}.brand-mark i:first-child{background:var(--red)}.brand-mark i:last-child{background:var(--blue)}.brand b{display:block;font-size:.9rem;letter-spacing:-.02em}.brand small{display:block;font-size:.62rem;letter-spacing:.18em;color:var(--muted);margin-top:2px}.tabs{display:flex;gap:8px}.tab{border:0;background:transparent;color:var(--muted);padding:10px 15px;border-radius:999px;font-weight:700;cursor:pointer}.tab:hover{color:var(--ink);background:var(--ice)}.tab.active{background:var(--ink);color:white}main{max-width:1480px;margin:auto;padding:0 clamp(20px,5vw,72px) 72px}.intro{min-height:310px;display:flex;align-items:flex-end;justify-content:space-between;padding:74px 0 48px;position:relative}.intro:after{content:"";position:absolute;right:32%;top:42px;width:110px;height:110px;border:18px solid rgba(13,68,199,.06);border-radius:50%}.eyebrow,.kicker{font-size:.72rem;letter-spacing:.19em;font-weight:800;color:var(--blue);margin:0 0 13px}.intro h1{font-size:clamp(2.8rem,6vw,6rem);line-height:.94;letter-spacing:-.065em;margin:0;max-width:850px}.intro h1 span{color:var(--blue)}.intro-copy{max-width:390px;line-height:1.7;color:var(--muted);margin:0 0 7px 40px}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);background:var(--ink);color:white;border-radius:22px;overflow:hidden;box-shadow:var(--shadow);margin-bottom:72px}.stat-grid article{padding:28px 30px;border-right:1px solid rgba(255,255,255,.13);position:relative}.stat-grid article:last-child{border:0}.stat-grid article:first-child:before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:var(--red)}.stat-grid span,.stat-grid small{display:block;color:#aebbd2;font-size:.75rem}.stat-grid strong{display:block;font-size:2.2rem;letter-spacing:-.05em;margin:8px 0 4px}.view{display:none}.view.active{display:block;animation:enter .28s ease}@keyframes enter{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:28px}.section-head h2{font-size:clamp(2rem,4vw,3.4rem);letter-spacing:-.055em;margin:0}.controls{display:flex;gap:10px}.search{height:48px;min-width:290px;background:white;border:1px solid var(--line);border-radius:12px;display:flex;align-items:center;padding:0 14px;gap:9px}.search span{font-size:1.3rem;color:var(--blue)}.search input{border:0;outline:0;width:100%;background:transparent;color:var(--ink)}select{height:48px;border:1px solid var(--line);border-radius:12px;background:white;color:var(--ink);padding:0 36px 0 14px;font-weight:600}.tier-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px}.tier-chip{background:white;border:1px solid var(--line);border-radius:14px;padding:17px;display:flex;align-items:center;justify-content:space-between}.tier-chip b{font-size:.9rem}.tier-chip span{font-size:1.5rem;font-weight:800;color:var(--blue)}.table-wrap{background:white;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:var(--shadow)}table{width:100%;border-collapse:collapse}th{text-align:left;background:#f0f4fb;color:var(--muted);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;padding:15px 20px}td{padding:17px 20px;border-top:1px solid #e6ebf3;font-size:.88rem}td:first-child{font-weight:800}.league-pill{display:inline-block;padding:5px 9px;border-radius:7px;background:var(--ice);color:var(--blue);font-size:.68rem;font-weight:800}.capacity{font-variant-numeric:tabular-nums}.empty{padding:48px;text-align:center;color:var(--muted)}.context-note{color:var(--muted);max-width:720px;line-height:1.6;margin:-10px 0 30px}.region-layout{display:grid;grid-template-columns:minmax(280px,.8fr) 2fr;gap:22px}.province-bars{background:var(--ink);color:white;border-radius:18px;padding:25px;height:max-content;position:sticky;top:100px}.province-bars h3{font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;margin:0 0 22px;color:#aebbd2}.bar-row{margin:0 0 17px}.bar-label{display:flex;justify-content:space-between;font-size:.76rem;margin-bottom:7px}.bar-track{height:7px;background:#293b5c;border-radius:9px;overflow:hidden}.bar-fill{height:100%;background:linear-gradient(90deg,var(--blue),#5f8cff);border-radius:9px}.region-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.region-card{background:white;border:1px solid var(--line);border-radius:16px;padding:21px;cursor:pointer;transition:.2s}.region-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:#b7c8e4}.region-card-head{display:flex;justify-content:space-between;gap:12px}.region-card h3{margin:0;font-size:1rem}.region-card .province{font-size:.68rem;color:var(--blue);font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-bottom:5px}.team-count{font-size:1.45rem;font-weight:800;color:var(--red)}.region-detail{display:none;border-top:1px solid var(--line);margin-top:16px;padding-top:14px}.region-card.open .region-detail{display:block}.region-detail p{font-size:.78rem;color:var(--muted);margin:6px 0}.team-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.team-list span{font-size:.7rem;background:var(--ice);padding:5px 7px;border-radius:6px}.uni-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.uni-card{background:white;border:1px solid var(--line);border-radius:14px;padding:18px;min-height:104px}.uni-card b{display:block;font-size:.9rem;line-height:1.35}.uni-card .ko{font-family:"Noto Sans KR";font-size:.75rem;color:var(--muted);margin-top:8px}.uni-card .region-tag{float:right;background:var(--ink);color:white;border-radius:99px;font-size:.65rem;padding:5px 8px}footer{max-width:1480px;margin:auto;border-top:1px solid var(--line);padding:24px clamp(20px,5vw,72px) 40px;display:flex;justify-content:space-between;color:var(--muted);font-size:.72rem}
@media(max-width:900px){.intro{display:block;min-height:auto}.intro-copy{margin:30px 0 0}.stat-grid{grid-template-columns:repeat(2,1fr)}.stat-grid article:nth-child(2){border-right:0}.stat-grid article:nth-child(-n+2){border-bottom:1px solid rgba(255,255,255,.13)}.section-head{align-items:flex-start;flex-direction:column}.controls{width:100%}.search{flex:1;min-width:0}.tier-strip{grid-template-columns:repeat(2,1fr)}.table-wrap{overflow-x:auto}table{min-width:950px}.region-layout{grid-template-columns:1fr}.province-bars{position:static}.uni-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.topbar{height:auto;padding-top:14px;padding-bottom:12px;align-items:flex-start;gap:12px}.brand small{display:none}.tabs{gap:2px}.tab{font-size:.72rem;padding:8px 9px}.intro{padding:52px 0 35px}.stat-grid{margin-bottom:55px}.stat-grid article{padding:20px}.stat-grid strong{font-size:1.7rem}.controls{flex-direction:column}.controls select,.search{width:100%}.tier-strip,.region-cards,.uni-grid{grid-template-columns:1fr}.section-head h2{font-size:2.2rem}footer{display:block}footer span{display:block;margin-top:7px}}

/* Colour theme */
:root{--surface:#fff;--surface-soft:#f0f4fb;--topbar-bg:rgba(248,250,255,.92);color-scheme:light}
html[data-theme="dark"]{--ink:#edf3ff;--blue:#78a5ff;--red:#ff6d86;--ice:#182b49;--line:#293d5c;--muted:#a5b4cc;--paper:#08111f;--surface:#101d30;--surface-soft:#16263d;--topbar-bg:rgba(8,17,31,.92);--shadow:0 18px 60px rgba(0,0,0,.28);color-scheme:dark}
body{transition:background-color .2s,color .2s}.topbar{background:var(--topbar-bg)}
.header-actions{display:flex;align-items:center;gap:10px}.header-contact{border:0;background:transparent;color:var(--muted);padding:9px 4px;font-size:.75rem;font-weight:800;cursor:pointer}.header-contact:hover,.header-contact:focus-visible,.header-contact.active{color:var(--blue);outline:none}.theme-toggle{height:40px;display:flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:999px;padding:0 13px;background:var(--surface);color:var(--ink);font-size:.75rem;font-weight:800;cursor:pointer}.theme-toggle:hover,.theme-toggle:focus-visible{border-color:var(--blue);background:var(--ice);outline:none}.theme-toggle span{font-size:1rem;line-height:1}
.search,select,.tier-chip,.table-wrap,.region-card,.uni-card{background:var(--surface)}th{background:var(--surface-soft)}td{border-color:var(--line)}.stadium-list span{background:var(--ice)}
html[data-theme="dark"] .brand-mark{border-color:#53657f}html[data-theme="dark"] .intro:after{border-color:rgba(120,165,255,.10)}
html[data-theme="dark"] .stat-grid,html[data-theme="dark"] .province-bars,html[data-theme="dark"] .tab.active,html[data-theme="dark"] .uni-card .region-tag{background:#07152e;color:#fff}
@media(max-width:760px){.topbar{flex-wrap:wrap}.header-actions{width:100%;justify-content:space-between;min-width:0}.header-actions .tabs{flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}.header-actions .tabs::-webkit-scrollbar{display:none}.theme-toggle b{display:none}.theme-toggle{width:38px;padding:0;justify-content:center;flex:0 0 38px}}
.pyramid-switch{display:inline-flex;gap:5px;margin:0 0 24px;padding:5px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.pyramid-switch button{min-width:170px;display:flex;align-items:center;gap:9px;border:0;border-radius:10px;background:transparent;color:var(--muted);padding:10px 13px;text-align:left;cursor:pointer}.pyramid-switch button:hover{background:var(--ice);color:var(--ink)}.pyramid-switch button.active{background:var(--ink);color:#fff}.pyramid-switch b{font-size:.78rem}.pyramid-switch span{font-size:.7rem}.pyramid-switch button.active span{color:#b9c7dd}footer button{border:0;background:transparent;color:inherit;padding:0;font:inherit;cursor:pointer;text-decoration:underline}
@media(max-width:520px){.pyramid-switch{display:grid;grid-template-columns:1fr 1fr;width:100%}.pyramid-switch button{min-width:0;align-items:flex-start;flex-direction:column;gap:2px}.header-contact{display:none}}
.source-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px;vertical-align:1px}.source-dot.green{background:#13a55b}.source-dot.blue{background:#17a9d6}.source-dot.orange{background:#f39a22}.detail-label{font-size:.68rem!important;text-transform:uppercase;letter-spacing:.1em;font-weight:800;color:var(--blue)!important;margin-top:15px!important}.stadium-list{display:grid;gap:6px;margin-top:8px}.stadium-list span{font-size:.76rem;background:#f1f5fb;border-left:3px solid var(--blue);padding:7px 9px;border-radius:3px}.map-instruction{max-width:330px;color:var(--muted);line-height:1.5;margin:0}.map-layout{display:grid;grid-template-columns:minmax(430px,1fr) 1.1fr;gap:22px;align-items:start}.map-panel{background:var(--ink);border-radius:20px;padding:22px;min-height:660px;position:sticky;top:100px;box-shadow:var(--shadow)}#korea-map{display:block;width:100%;height:590px}#korea-map path,#korea-map circle{stroke:#fff;stroke-width:1.2;cursor:pointer;transition:fill .18s,filter .18s,stroke-width .18s;outline:none;vector-effect:non-scaling-stroke}#korea-map path:hover,#korea-map path:focus,#korea-map circle:hover,#korea-map circle:focus{filter:brightness(1.12);stroke-width:2.5}#korea-map .selected{fill:var(--red)!important;stroke-width:3}.map-marker{stroke-width:2.5!important}.map-key{display:flex;justify-content:center;gap:18px;color:#b8c5dc;font-size:.68rem}.map-key span{display:flex;gap:6px;align-items:center}.map-key i{width:42px;height:6px;border-radius:9px;background:linear-gradient(90deg,#dce7fb,#0d44c7)}.map-key span:last-child i{display:none}.map-detail{background:white;border:1px solid var(--line);border-radius:20px;padding:30px;min-height:660px;box-shadow:var(--shadow)}.map-detail h3{font-size:2.4rem;letter-spacing:-.05em;margin:0 0 22px}.map-stats{display:grid;grid-template-columns:repeat(3,1fr);background:var(--ink);color:white;border-radius:14px;overflow:hidden}.map-stats div{padding:17px;border-right:1px solid #30415f}.map-stats div:last-child{border:0}.map-stats b,.map-stats span{display:block}.map-stats b{font-size:1.4rem}.map-stats span{font-size:.66rem;color:#aebbd2}.tier-summary{display:flex;gap:7px;margin:15px 0 18px}.tier-summary span{background:var(--ice);color:var(--blue);padding:7px 9px;border-radius:7px;font-size:.7rem;font-weight:800}.map-league-list{display:grid;gap:7px;max-height:450px;overflow:auto;padding-right:5px}.map-league-list button{display:grid;grid-template-columns:55px 1fr auto;gap:10px;align-items:center;text-align:left;border:1px solid var(--line);background:white;border-radius:10px;padding:11px;cursor:pointer;color:var(--ink)}.map-league-list button:hover{background:var(--ice);border-color:#b6c7e5}.map-league-list button>span{font-size:.67rem;color:var(--muted);font-weight:800}.map-league-list button>b{font-size:.78rem}.map-league-list button>small{font-size:.65rem;color:var(--muted)}
html[data-theme="dark"] .stadium-list span{background:#1b3151;color:#f4f7ff;border-left-color:#78a5ff}
.tier-filter-buttons{display:flex;gap:5px;padding:4px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.tier-filter-buttons button{border:0;border-radius:8px;background:transparent;color:var(--muted);padding:7px 11px;font-weight:800;cursor:pointer}.tier-filter-buttons button:hover{color:var(--ink);background:var(--ice)}.tier-filter-buttons button.active{background:var(--ink);color:#fff}html[data-theme="dark"] .tier-filter-buttons button.active{background:#07152e;color:#fff}
.compare-selectors{display:flex;align-items:flex-end;gap:10px}.compare-selectors label span{display:block;margin:0 0 6px;color:var(--muted);font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.compare-selectors>b{padding-bottom:15px;color:var(--muted);font-size:.72rem;text-transform:uppercase}.compare-panels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.compare-panel{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:25px;box-shadow:var(--shadow)}.compare-title{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.compare-title h3{margin:0;font-size:2rem;letter-spacing:-.045em}.compare-title button{border:1px solid var(--line);border-radius:9px;background:var(--ice);color:var(--blue);padding:9px 11px;font-weight:800;cursor:pointer}.compare-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:22px 0;background:var(--line);border:1px solid var(--line);border-radius:13px;overflow:hidden}.compare-metrics div{background:var(--surface-soft);padding:15px}.compare-metrics b,.compare-metrics span{display:block}.compare-metrics b{font-size:1.4rem}.compare-metrics span{margin-top:3px;color:var(--muted);font-size:.66rem;line-height:1.35}.compare-block{margin-top:23px}.compare-block h4{margin:0 0 13px;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase}.compare-bar{display:grid;grid-template-columns:28px 1fr 28px;align-items:center;gap:9px;margin:9px 0;font-size:.72rem}.compare-bar>i{height:8px;background:var(--ice);border-radius:8px;overflow:hidden}.compare-bar em{display:block;height:100%;background:linear-gradient(90deg,var(--blue),#5f8cff);border-radius:8px}.compare-bar>b{text-align:right}.municipality-ranking{list-style:none;margin:0;padding:0}.municipality-ranking li{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--line);font-size:.78rem}.municipality-ranking b{color:var(--blue)}.largest-ground,.compare-empty{color:var(--muted);font-size:.75rem;line-height:1.5}.largest-ground{margin:20px 0 0;padding-top:16px;border-top:1px solid var(--line)}
@media(max-width:900px){.compare-panels{grid-template-columns:1fr}.compare-selectors{width:100%}.compare-selectors label{flex:1}.compare-selectors select{width:100%}}
@media(max-width:600px){.compare-selectors{display:grid;grid-template-columns:1fr}.compare-selectors>b{padding:0;text-align:center}.compare-metrics{grid-template-columns:repeat(2,1fr)}}
.intro-side{max-width:390px;margin:0 0 7px 40px}.intro-side .intro-copy{margin:0}.surprise-button{margin-top:20px;border:0;border-radius:999px;background:var(--red);color:#fff;padding:12px 17px;font-weight:800;cursor:pointer;box-shadow:0 10px 28px rgba(239,49,82,.22)}.surprise-button:hover,.surprise-button:focus-visible{filter:brightness(1.07);transform:translateY(-1px);outline:3px solid color-mix(in srgb,var(--red) 25%,transparent)}.surprise-button span{margin-left:7px}.discovery-result{margin:-42px 0 72px;background:linear-gradient(125deg,#07152e,#0d44c7);color:#fff;border-radius:22px;padding:27px 30px;box-shadow:var(--shadow)}.discovery-label,.discovery-main,.discovery-actions{display:flex;align-items:center;justify-content:space-between;gap:24px}.discovery-label>span{font-size:.7rem;font-weight:800;letter-spacing:.14em;color:#b9ccf3}.discovery-label>button{border:0;background:transparent;color:#fff;font-size:1.7rem;cursor:pointer;line-height:1}.discovery-main{align-items:flex-end;margin-top:15px}.discovery-main p{margin:0 0 5px;color:#b9ccf3;font-size:.8rem}.discovery-main h2{margin:0;font-size:clamp(1.8rem,4vw,3.4rem);letter-spacing:-.05em}.discovery-main dl{display:flex;gap:30px;margin:0}.discovery-main dl div{max-width:250px}.discovery-main dt{font-size:.64rem;text-transform:uppercase;letter-spacing:.1em;color:#b9ccf3;font-weight:800}.discovery-main dd{margin:4px 0 0;font-size:.82rem;font-weight:700;line-height:1.45}.discovery-actions{justify-content:flex-end;margin-top:22px}.discovery-actions button{border:1px solid rgba(255,255,255,.28);border-radius:9px;background:rgba(255,255,255,.08);color:#fff;padding:9px 12px;font-weight:800;cursor:pointer}.discovery-actions button:hover{background:#fff;color:#0d44c7}
@media(max-width:900px){.intro-side{max-width:none;margin:30px 0 0}.discovery-result{margin-top:-38px}.discovery-main{display:block}.discovery-main dl{margin-top:22px;flex-wrap:wrap}}
@media(max-width:600px){.discovery-result{padding:22px;margin-top:-32px}.discovery-main dl{display:grid;grid-template-columns:1fr;gap:13px}.discovery-actions{align-items:stretch;flex-direction:column}.discovery-actions button{width:100%}}
.stadium-controls .search{min-width:250px}.stadium-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.stadium-card{display:flex;flex-direction:column;min-height:310px;background:var(--surface);border:1px solid var(--line);border-radius:17px;padding:21px;box-shadow:0 8px 28px rgba(16,48,104,.06)}.stadium-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.stadium-card-head p{margin:0 0 6px;color:var(--blue);font-size:.68rem;font-weight:800}.stadium-card h3{margin:0;font-size:1.08rem;line-height:1.35}.stadium-card-head>strong{text-align:right;color:var(--red);font-size:1.25rem;white-space:nowrap}.stadium-card-head>strong small{display:block;color:var(--muted);font-size:.58rem;font-weight:700;text-transform:uppercase}.stadium-card .unknown-capacity{color:var(--muted)}.stadium-card dl{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:22px 0}.stadium-card dt,.stadium-users>span{color:var(--muted);font-size:.62rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.stadium-card dd{margin:4px 0 0;font-size:.76rem;font-weight:700}.stadium-users{padding-top:15px;border-top:1px solid var(--line)}.stadium-users p{margin:6px 0 16px;color:var(--muted);font-size:.73rem;line-height:1.5}.stadium-card>button{align-self:flex-start;margin-top:auto;border:0;border-radius:8px;background:var(--ice);color:var(--blue);padding:8px 10px;font-size:.72rem;font-weight:800;cursor:pointer}.stadium-card>button:hover{background:var(--blue);color:#fff}
@media(max-width:1100px){.stadium-controls{display:grid;grid-template-columns:1fr 1fr}.stadium-controls .search{grid-column:1/-1}.stadium-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.stadium-controls,.stadium-grid{grid-template-columns:1fr}.stadium-controls .search{grid-column:auto}.stadium-controls select{width:100%}}
.province-profile{margin-top:28px;background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:30px;box-shadow:var(--shadow)}.profile-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:25px;padding-bottom:25px;border-bottom:1px solid var(--line)}.profile-heading h2{margin:0;font-size:clamp(2.2rem,5vw,4.5rem);letter-spacing:-.06em}.profile-summary{display:flex;background:var(--ink);color:#fff;border-radius:13px;overflow:hidden}.profile-summary div{min-width:120px;padding:14px 17px;border-right:1px solid #30415f}.profile-summary div:last-child{border:0}.profile-summary b,.profile-summary span{display:block}.profile-summary b{font-size:1.3rem}.profile-summary span{color:#aebbd2;font-size:.75rem}.profile-grid{display:grid;grid-template-columns:.8fr 1.2fr 1fr;gap:18px;margin-top:24px}.profile-grid>article{border:1px solid var(--line);border-radius:14px;padding:19px;min-width:0}.profile-grid h3,.profile-team-directory h3{margin:0 0 15px;font-size:.76rem;letter-spacing:.1em;text-transform:uppercase}.profile-tier{display:grid;grid-template-columns:28px 1fr 28px;align-items:center;gap:8px;margin:10px 0;font-size:.75rem}.profile-tier i{height:8px;background:var(--ice);border-radius:8px;overflow:hidden}.profile-tier em{display:block;height:100%;background:linear-gradient(90deg,var(--blue),#5f8cff)}.profile-tier>b{text-align:right}.profile-leagues,.profile-municipalities{list-style:none;margin:0;padding:0}.profile-leagues li,.profile-municipalities li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-top:1px solid var(--line);font-size:.75rem}.profile-leagues li:first-child,.profile-municipalities li:first-child{border-top:0}.profile-leagues li span{display:flex;align-items:center;gap:7px;min-width:0}.profile-leagues li span>b{background:var(--ice);color:var(--blue);border-radius:5px;padding:3px 5px;font-size:.75rem}.profile-leagues strong,.profile-municipalities strong{color:var(--blue);white-space:nowrap;font-size:.75rem}.profile-municipalities li>b{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:var(--ink);color:#fff;font-size:.75rem}.profile-municipalities li>span{flex:1}.profile-empty{color:var(--muted);font-size:.76rem;line-height:1.5}.profile-team-directory{margin-top:18px;border-top:1px solid var(--line);padding-top:24px}.profile-team-directory>div:first-child{display:flex;justify-content:space-between}.profile-team-directory>div:first-child>span{color:var(--muted);font-size:.75rem}.profile-team-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:13px;overflow:hidden}.profile-team-list>div{background:var(--surface-soft);padding:12px 14px}.profile-team-list b,.profile-team-list span{display:block}.profile-team-list b{font-size:.76rem;line-height:1.35}.profile-team-list span{margin-top:4px;color:var(--muted);font-size:.75rem;line-height:1.35}
@media(max-width:1000px){.profile-heading{align-items:flex-start;flex-direction:column}.profile-grid{grid-template-columns:1fr 1fr}.profile-grid>article:last-child{grid-column:1/-1}.profile-team-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.province-profile{padding:21px}.profile-summary{width:100%}.profile-summary div{min-width:0;flex:1;padding:12px}.profile-grid,.profile-team-list{grid-template-columns:1fr}.profile-grid>article:last-child{grid-column:auto}}
.map-tooltip{position:absolute;z-index:8;pointer-events:none;transform:translate(-50%,-100%);max-width:260px;padding:10px 12px;border:1px solid rgba(255,255,255,.18);border-radius:10px;background:rgba(5,16,37,.96);color:#fff;box-shadow:0 10px 30px rgba(0,0,0,.3);line-height:1.45}.map-tooltip b,.map-tooltip span{display:block}.map-tooltip b{font-size:.8rem}.map-tooltip span{margin-top:2px;color:#bdcbea;font-size:.75rem}.map-tooltip:after{content:"";position:absolute;left:50%;bottom:-6px;width:11px;height:11px;background:rgba(5,16,37,.96);transform:translateX(-50%) rotate(45deg)}
.save-star,.team-list button{border:0;background:transparent;color:var(--blue);font-size:1.2rem;cursor:pointer;padding:3px}.save-star[aria-pressed="true"],.team-list button[aria-pressed="true"]{color:#f0a000}.team-list span{display:flex;align-items:center;gap:4px}.stadium-save-actions{display:flex;gap:7px;margin:0 0 12px}.stadium-save-actions button,.explore-save{border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);color:var(--ink);padding:7px 9px;font-size:.75rem;font-weight:800;cursor:pointer}.stadium-save-actions button[aria-pressed="true"],.explore-save[aria-pressed="true"]{border-color:var(--blue);background:var(--ice);color:var(--blue)}.explore-save{margin-top:12px}.saved-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:20px}.saved-summary article{background:var(--ink);color:#fff;border-radius:14px;padding:18px}.saved-summary b,.saved-summary span{display:block}.saved-summary b{font-size:1.8rem}.saved-summary span{margin-top:3px;color:#aebbd2;font-size:.75rem}.saved-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.saved-groups>article{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:20px}.saved-groups>article>div{display:flex;justify-content:space-between}.saved-groups h3{margin:0;font-size:.9rem}.saved-groups ul{list-style:none;margin:16px 0 0;padding:0}.saved-groups li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--line);font-size:.8rem}.saved-groups li button{border:0;background:transparent;color:var(--blue);font-weight:800;cursor:pointer;font-size:.75rem}.saved-groups article>p,.saved-empty p{color:var(--muted);font-size:.78rem}.saved-empty{grid-column:1/-1;padding:48px;text-align:center;background:var(--surface);border:1px dashed var(--line);border-radius:16px}
.passport-overview{display:grid;grid-template-columns:1.65fr 1fr;gap:14px;margin-bottom:14px}.passport-card{min-height:230px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:30px;background:linear-gradient(130deg,#07152e 0%,#0d44c7 70%,#215bdc 100%);color:#fff;border-radius:20px;box-shadow:var(--shadow);overflow:hidden;position:relative}.passport-card:after{content:"";position:absolute;width:180px;height:180px;border:28px solid rgba(255,255,255,.07);border-radius:50%;right:-72px;top:-92px}.passport-card-copy{position:relative;z-index:1}.passport-card-copy p{margin:0 0 24px;color:#b9ccf3;font-size:.68rem;font-weight:800;letter-spacing:.16em}.passport-card-copy h3{margin:0;font-size:clamp(1.8rem,4vw,3.2rem);letter-spacing:-.055em;line-height:1}.passport-card-copy span{display:block;margin-top:11px;color:#c7d6f4;font-size:.8rem}.passport-ring{flex:0 0 136px;width:136px;height:136px;display:grid;place-items:center;border-radius:50%;background:conic-gradient(#fff var(--passport-progress),rgba(255,255,255,.17) 0);position:relative;z-index:1}.passport-ring:before{content:"";position:absolute;inset:10px;border-radius:50%;background:#0b3eae}.passport-ring div{position:relative;text-align:center}.passport-ring b,.passport-ring span{display:block}.passport-ring b{font-size:1.7rem}.passport-ring span{margin-top:2px;color:#c7d6f4;font-size:.65rem}.passport-mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.passport-mini-stats article{display:flex;flex-direction:column;justify-content:flex-end;padding:19px;background:var(--surface);border:1px solid var(--line);border-radius:16px}.passport-mini-stats b,.passport-mini-stats span{display:block}.passport-mini-stats b{font-size:1.8rem;color:var(--blue)}.passport-mini-stats span{margin-top:5px;color:var(--muted);font-size:.72rem;line-height:1.35}.passport-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.passport-panel,.passport-achievements{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:22px}.passport-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;padding-bottom:16px;border-bottom:1px solid var(--line)}.passport-panel-head .kicker{margin-bottom:5px}.passport-panel-head h3{margin:0;font-size:1.05rem}.passport-panel-head>span{color:var(--muted);font-size:.72rem;font-weight:700;white-space:nowrap}.passport-progress-row{display:grid;grid-template-columns:minmax(105px,.7fr) minmax(90px,1.4fr) 42px;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--line)}.passport-panel-head+div>.passport-progress-row:first-child{border-top:0}.passport-progress-row>div:first-child{min-width:0}.passport-progress-row b,.passport-progress-row span{display:block}.passport-progress-row b{font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.passport-progress-row span{margin-top:2px;color:var(--muted);font-size:.66rem}.passport-progress-row>strong{text-align:right;color:var(--blue);font-size:.72rem}.passport-track{height:8px;background:var(--ice);border-radius:99px;overflow:hidden}.passport-track i{display:block;height:100%;min-width:0;background:linear-gradient(90deg,var(--red),#ff8094);border-radius:99px}.passport-provinces{max-height:314px;overflow:auto;padding-right:5px}.passport-achievements{margin-bottom:14px}.passport-stamps{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}.passport-stamp{display:flex;align-items:center;gap:12px;min-width:0;padding:14px;background:var(--surface-soft);border:1px solid var(--line);border-radius:13px;color:var(--muted)}.passport-stamp>b{flex:0 0 42px;width:42px;height:42px;display:grid;place-items:center;border:2px dashed var(--line);border-radius:50%;font-size:.72rem}.passport-stamp span,.passport-stamp strong,.passport-stamp small{display:block;min-width:0}.passport-stamp strong{font-size:.78rem;color:var(--ink)}.passport-stamp small{margin-top:3px;font-size:.65rem;line-height:1.35}.passport-stamp.earned{background:var(--ice);border-color:color-mix(in srgb,var(--blue) 45%,var(--line));color:var(--blue)}.passport-stamp.earned>b{border-style:solid;border-color:var(--blue);background:var(--blue);color:#fff;font-size:1rem}.passport-empty{color:var(--muted);font-size:.78rem}
.passport-data-tools{display:flex;flex-direction:column;align-items:flex-end;gap:9px;max-width:430px}.passport-data-tools .map-instruction{max-width:430px;text-align:right}.passport-data-tools>div{display:flex;gap:8px}.passport-data-tools button{border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink);padding:9px 12px;font-size:.75rem;font-weight:800;cursor:pointer}.passport-data-tools button:first-child{background:var(--ink);border-color:var(--ink);color:#fff}.passport-data-tools button:hover,.passport-data-tools button:focus-visible{border-color:var(--blue);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 16%,transparent)}.saved-data-status{min-height:1.1em;margin:0;color:#1d7a48;font-size:.7rem;font-weight:700;text-align:right}.saved-data-status.error{color:var(--red)}
@media(max-width:950px){.passport-overview,.passport-grid{grid-template-columns:1fr}.passport-mini-stats{min-height:120px}.passport-stamps{grid-template-columns:repeat(2,1fr)}}
@media(max-width:750px){.saved-summary{grid-template-columns:repeat(2,1fr)}.saved-groups{grid-template-columns:1fr}.stadium-save-actions{flex-wrap:wrap}.passport-data-tools{align-items:flex-start;max-width:none}.passport-data-tools .map-instruction,.saved-data-status{text-align:left}.passport-card{padding:23px}.passport-ring{width:112px;height:112px;flex-basis:112px}.passport-ring:before{inset:8px}.passport-mini-stats{grid-template-columns:1fr}.passport-stamps{grid-template-columns:1fr}}
@media(max-width:480px){.passport-card{align-items:flex-start;flex-direction:column}.passport-progress-row{grid-template-columns:88px 1fr 36px;gap:8px}.passport-panel,.passport-achievements{padding:17px}}
.insight-highlights{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:18px}.insight-highlights article{min-height:170px;display:flex;flex-direction:column;background:var(--ink);color:#fff;border-radius:16px;padding:20px}.insight-highlights span,.insight-highlights small{color:#aebbd2;font-size:.75rem}.insight-highlights>b{margin-top:22px;font-size:.95rem;line-height:1.35}.insight-highlights strong{margin-top:auto;color:#8fb1ff;font-size:1.65rem;line-height:1.1}.insight-highlights small{margin-top:5px}.insight-layout{display:grid;grid-template-columns:minmax(300px,.75fr) 1.6fr;gap:18px}.insight-layout>article{background:var(--surface);border:1px solid var(--line);border-radius:17px;padding:22px}.insight-panel-head{display:flex;align-items:center;justify-content:space-between;padding-bottom:17px;border-bottom:1px solid var(--line)}.insight-panel-head h3{margin:0;font-size:.85rem}.insight-panel-head span{color:var(--muted);font-size:.75rem}.insight-tier-row{display:grid;grid-template-columns:32px 1fr 35px;align-items:center;gap:10px;margin:17px 0;font-size:.78rem}.insight-tier-row i{height:10px;background:var(--ice);border-radius:9px;overflow:hidden}.insight-tier-row em{display:block;height:100%;background:linear-gradient(90deg,var(--blue),#6f96ee);border-radius:9px}.insight-tier-row strong{text-align:right}.insight-list>div{display:grid;grid-template-columns:35px 1fr;gap:13px;padding:16px 0;border-top:1px solid var(--line)}.insight-list>div:first-child{border-top:0}.insight-list>div>span{color:var(--red);font-size:.75rem;font-weight:800}.insight-list p{margin:0;color:var(--muted);font-size:.84rem;line-height:1.6}.insight-list p b,.insight-list p strong{color:var(--ink)}
@media(max-width:1000px){.insight-highlights{grid-template-columns:repeat(2,1fr)}.insight-layout{grid-template-columns:1fr}}
@media(max-width:550px){.insight-highlights{grid-template-columns:1fr}.insight-highlights article{min-height:145px}}

/* Universal search */
.global-search{position:relative;z-index:12;max-width:840px;margin:-25px auto 34px}.global-search>label{height:58px;display:flex;align-items:center;gap:12px;padding:0 18px;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.global-search>label:focus-within{border-color:var(--blue);outline:3px solid color-mix(in srgb,var(--blue) 18%,transparent)}.global-search>label>span{color:var(--blue);font-size:1.5rem}.global-search input{width:100%;border:0;outline:0;background:transparent;color:var(--ink);font-size:1rem}.global-search-results{position:absolute;top:66px;left:0;right:0;max-height:min(64vh,560px);overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 24px 70px rgba(4,18,46,.24);padding:8px}.global-search-group{padding:7px 0}.global-search-group+.global-search-group{border-top:1px solid var(--line)}.global-search-group>strong{display:block;padding:6px 11px;color:var(--muted);font-size:.65rem;letter-spacing:.11em;text-transform:uppercase}.global-search-result{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;border:0;border-radius:10px;background:transparent;color:var(--ink);padding:10px 11px;text-align:left;cursor:pointer}.global-search-result:hover,.global-search-result.active,.global-search-result:focus-visible{background:var(--ice);outline:none}.global-search-result b{display:block;font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.global-search-result small{display:block;margin-top:3px;color:var(--muted);font-size:.7rem}.global-search-result>span{color:var(--blue);font-size:.72rem;font-weight:800}.global-search-empty{padding:22px;text-align:center;color:var(--muted);font-size:.82rem}
html[data-theme="dark"] .saved-summary article,html[data-theme="dark"] .insight-highlights article{background:#07152e;color:#fff;border:1px solid #263c60}html[data-theme="dark"] .saved-summary span,html[data-theme="dark"] .insight-highlights span,html[data-theme="dark"] .insight-highlights small{color:#b9c7dd}
@media(max-width:600px){.global-search{margin:-12px 0 28px}.global-search>label{height:52px}.global-search-results{top:59px}.global-search-result{grid-template-columns:minmax(0,1fr)}.global-search-result>span{display:none}}

/* Community and contact */
.community-layout{display:grid;grid-template-columns:minmax(280px,.72fr) 1.45fr;gap:20px;align-items:start}.community-form,.contact-form{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:24px;box-shadow:var(--shadow)}.community-form{position:sticky;top:100px}.community-form h3{margin:0 0 20px;font-size:1.1rem}.community-form label,.contact-form label{display:block;margin-top:15px}.community-form label>span,.contact-form label>span{display:block;margin-bottom:7px;color:var(--muted);font-size:.7rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.community-form input,.community-form textarea,.community-form select,.contact-form input,.contact-form textarea,.contact-form select{width:100%;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft);color:var(--ink);padding:11px 12px;outline:none}.community-form select,.contact-form select{height:46px}.community-form textarea,.contact-form textarea{resize:vertical;line-height:1.55}.community-form input:focus,.community-form textarea:focus,.community-form select:focus,.contact-form input:focus,.contact-form textarea:focus,.contact-form select:focus{border-color:var(--blue);box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 16%,transparent)}.community-form>button,.contact-submit>button{margin-top:18px;border:0;border-radius:10px;background:var(--blue);color:#fff;padding:11px 15px;font-weight:800;cursor:pointer}.community-form>button:disabled,.contact-submit>button:disabled{opacity:.6;cursor:wait}.form-status{min-height:1.2em;margin:10px 0 0;color:#1d7a48;font-size:.75rem;font-weight:700}.form-status.error{color:var(--red)}.form-trap{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.community-board-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.community-board-head>div{display:flex;align-items:baseline;gap:10px}.community-board-head h3{margin:0;font-size:1rem}.community-board-head span{color:var(--muted);font-size:.72rem}.community-board-head button{border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink);padding:8px 11px;font-size:.72rem;font-weight:800;cursor:pointer}.community-posts{display:grid;gap:12px}.community-post{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:21px}.community-post-meta,.community-post>div:last-child{display:flex;align-items:center;justify-content:space-between;gap:12px}.community-post-meta span{color:var(--blue);font-size:.66rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.community-post-meta time{color:var(--muted);font-size:.66rem}.community-post h3{margin:10px 0 8px;font-size:1.1rem}.community-post>p{margin:0;color:var(--muted);font-size:.84rem;line-height:1.65}.community-post>div:last-child{margin-top:17px;padding-top:14px;border-top:1px solid var(--line)}.community-post>div:last-child b{font-size:.72rem}.community-post>div:last-child button{border:0;background:transparent;color:var(--muted);font-size:.68rem;font-weight:800;cursor:pointer}.community-post>div:last-child button:hover{color:var(--red)}.community-loading,.community-empty{padding:45px;text-align:center;color:var(--muted);background:var(--surface);border:1px dashed var(--line);border-radius:16px}.community-empty b{display:block;color:var(--ink)}.community-empty p{font-size:.78rem}.contact-form{max-width:920px;margin:0 auto}.form-pair{display:grid;grid-template-columns:1fr 1fr;gap:16px}.contact-submit{display:flex;align-items:center;gap:16px}.contact-submit .form-status{margin-top:18px}footer a{color:inherit}
@media(max-width:900px){.community-layout{grid-template-columns:1fr}.community-form{position:static}.form-pair{grid-template-columns:1fr}}
@media(max-width:600px){.community-form,.contact-form{padding:18px}.community-post-meta,.community-post>div:last-child,.contact-submit{align-items:flex-start;flex-direction:column}.contact-submit .form-status{margin-top:0}}
.intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,390px);gap:clamp(24px,3vw,48px)}.intro>div:first-child{min-width:0}.intro-side{margin:0;max-width:390px}.intro h1{font-size:clamp(2.8rem,4.3vw,4.8rem);max-width:none}
@media(max-width:1500px){.intro{display:block;min-height:auto}.intro-side{max-width:none;margin:30px 0 0}.intro-copy{max-width:620px;margin:0}}

/* Responsive safeguards for compact screens */
.tab{white-space:nowrap;flex:0 0 auto}.view,.section-head,.controls,.map-layout,.map-panel,.map-detail,.compare-panel,.stadium-card,.province-profile,.passport-panel,.community-post{min-width:0}.section-head h2,.map-detail h3,.compare-title h3,.stadium-card h3,.community-post h3,.passport-panel h3{overflow-wrap:anywhere}
@media(max-width:1000px){.map-layout{grid-template-columns:minmax(0,1fr)}.map-panel{position:static;top:auto;min-height:0}.map-detail{min-height:0}#korea-map{height:clamp(360px,65vw,520px)}}
@media(max-width:600px){main{padding-left:16px;padding-right:16px}.topbar{padding-left:16px;padding-right:16px}.header-actions .tabs{overscroll-behavior-x:contain}.intro{padding-top:42px}.intro h1{font-size:clamp(2.15rem,11vw,2.8rem);line-height:1}.intro h1>span:last-child{white-space:nowrap}.eyebrow{line-height:1.55}.section-head h2,.map-detail h3{font-size:clamp(1.85rem,9vw,2.2rem);line-height:1.05}.map-panel,.map-detail,.province-profile,.compare-panel{padding:18px}#korea-map{height:320px}.map-key,.tier-summary{flex-wrap:wrap}.map-key{gap:9px 14px}.map-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.map-stats div{padding:13px;min-width:0}.map-stats div:nth-child(2){border-right:0}.map-stats div:last-child{grid-column:1/-1;border-top:1px solid #30415f}.map-league-list button{grid-template-columns:44px minmax(0,1fr);gap:8px}.map-league-list button>small{grid-column:2}.map-league-list button>b,.map-league-list button>small{overflow-wrap:anywhere}.profile-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.profile-summary div{min-width:0}.profile-summary span{overflow-wrap:anywhere}.stadium-card-head,.community-board-head,.passport-panel-head{align-items:flex-start;flex-wrap:wrap}.discovery-label>span,.discovery-main h2,.saved-group h3{overflow-wrap:anywhere}.controls>*{min-width:0;max-width:100%}button,select,input,textarea{max-width:100%}}
@media(max-width:380px){.intro h1{font-size:2.05rem}.intro h1 .intro-line-primary{white-space:normal}.stat-grid article{padding:17px 15px}.stat-grid strong{font-size:1.5rem}.profile-summary{grid-template-columns:1fr}.profile-summary div{border-right:0;border-bottom:1px solid #30415f}.profile-summary div:last-child{border-bottom:0}.map-panel,.map-detail,.province-profile,.compare-panel,.community-form,.contact-form{padding:15px}.pyramid-switch button{padding:9px}.pyramid-switch span{font-size:.66rem}}

.passport-visited-map{margin-bottom:14px;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:22px}.passport-map-layout{display:grid;grid-template-columns:minmax(300px,.85fr) 1.15fr;gap:22px;margin-top:18px;align-items:stretch}.passport-map-canvas{min-width:0;padding:16px;background:var(--ink);border-radius:16px}.passport-map-canvas svg{display:block;width:100%;height:430px}.passport-map-canvas path,.passport-map-canvas>svg>circle{stroke:#fff;stroke-width:1.2;vector-effect:non-scaling-stroke;cursor:pointer;transition:fill .18s,filter .18s}.passport-map-canvas .unvisited{fill:#c8d4e7}.passport-map-canvas .visited{fill:var(--red)}.passport-map-canvas .selected{stroke:#ffd1d9;stroke-width:3;filter:brightness(1.08)}.passport-map-badge{pointer-events:none}.passport-map-badge circle{fill:#fff;stroke:var(--red);stroke-width:2}.passport-map-badge text{fill:var(--red);font-size:12px;font-weight:800;text-anchor:middle;dominant-baseline:middle}.passport-map-key{display:flex;justify-content:center;flex-wrap:wrap;gap:12px 18px;color:#b8c5dc;font-size:.68rem}.passport-map-key span{display:flex;align-items:center;gap:6px}.passport-map-key i{width:18px;height:8px;border-radius:99px;background:var(--red)}.passport-map-key span:last-child i{background:#c8d4e7}.passport-map-detail{min-width:0;padding:24px;background:var(--surface-soft);border:1px solid var(--line);border-radius:16px}.passport-map-detail h4{margin:0;font-size:clamp(1.5rem,3vw,2.2rem);letter-spacing:-.04em}.passport-map-detail>p:not(.kicker){margin:8px 0 18px;color:var(--muted);font-size:.78rem}.passport-map-detail ul{list-style:none;margin:0;padding:0;display:grid;gap:8px;max-height:350px;overflow:auto}.passport-map-detail li{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 0;border-top:1px solid var(--line)}.passport-map-detail li:first-child{border-top:0}.passport-map-detail li div{min-width:0}.passport-map-detail li b,.passport-map-detail li span{display:block;overflow-wrap:anywhere}.passport-map-detail li b{font-size:.78rem}.passport-map-detail li span{margin-top:3px;color:var(--muted);font-size:.68rem}.passport-map-detail li button{flex:0 0 auto;border:0;border-radius:8px;background:var(--ice);color:var(--blue);padding:8px 10px;font-size:.68rem;font-weight:800;cursor:pointer}
@media(max-width:900px){.passport-map-layout{grid-template-columns:1fr}.passport-map-canvas svg{height:380px}}
@media(max-width:600px){.passport-visited-map{padding:17px}.passport-map-canvas{padding:12px}.passport-map-canvas svg{height:310px}.passport-map-detail{padding:17px}.passport-map-detail li{align-items:flex-start;flex-direction:column}.passport-map-detail li button{width:100%}}

/* Passport completion layer */
.passport-map-canvas .completion-unvisited{fill:#c8d4e7}.passport-map-canvas .completion-partial{fill:#3977db}.passport-map-canvas .completion-complete{fill:#f4b942}.passport-map-canvas .selected{stroke:#fff;stroke-width:3;filter:brightness(1.08)}
.passport-map-badge circle{fill:#fff;stroke:#7890b5;stroke-width:2}.passport-map-badge.completion-partial circle{stroke:#3977db}.passport-map-badge.completion-complete circle{stroke:#f4b942}.passport-map-badge text{fill:#243653;font-size:10px}
.passport-map-key i{background:#c8d4e7}.passport-map-key .key-complete i{background:#f4b942}.passport-map-key .key-partial i{background:#3977db}.passport-map-key .key-unvisited i{background:#c8d4e7}
.passport-place-progress{margin:14px 0 18px}.passport-place-progress>div:first-child{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px}.passport-place-progress b{font-size:.82rem}.passport-place-progress span{color:var(--muted);font-size:.72rem}.passport-map-detail li.ground-complete span{color:#26764a}
.passport-map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.passport-map-toolbar>div{display:flex;gap:5px;margin-left:auto}.passport-map-toolbar button{border:1px solid #30415f;border-radius:8px;background:#132541;color:#fff;padding:7px 10px;font-size:.68rem;font-weight:800;cursor:pointer}.passport-map-toolbar button:hover,.passport-map-toolbar button:focus-visible{background:#fff;color:#07152e}.passport-map-toolbar button:disabled{opacity:.45;cursor:default}.passport-map-canvas svg.zoomed{cursor:grab}.passport-map-canvas svg.panning{cursor:grabbing;user-select:none}
