/* TGG Gold Map — scoped to .tgg-map */
.tgg-map{--m-bg:#0f0e0c;--m-panel:#14130F;--m-box:#1b1813;--m-line:#2a2620;--m-line2:#3a342a;--m-gold:#D4A437;--m-gold2:#F0CF6A;--m-text:#E8E1D0;--m-muted:#9b927f;color:var(--m-text);font-family:Jost,system-ui,-apple-system,"Segoe UI",sans-serif;margin:8px 0 32px}
.tgg-map *{box-sizing:border-box}
.tgg-map button{-webkit-appearance:none;appearance:none;font-family:inherit;text-transform:none;letter-spacing:normal;min-height:0;box-shadow:none;line-height:1.2}
/* break out of narrow reading columns (theme-independent) */
.tgg-map-wide{width:min(1240px,calc(100vw - 32px));max-width:none;margin-left:calc(50% - min(620px,calc(50vw - 16px)))}
.tgg-map-sub{margin-top:4px}
/* style switcher */
.tgg-map-styles{display:flex;gap:8px;align-items:center;overflow-x:auto;scrollbar-width:none;margin:0 0 12px;padding:2px}
.tgg-map-styles::-webkit-scrollbar{display:none}
.tgg-map-styles-label{flex:none;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--m-muted);margin-right:4px}
.tgg-sty{flex:none;text-align:left;cursor:pointer;background:var(--m-box);border:1px solid var(--m-line2);color:var(--m-text);border-radius:8px;padding:8px 14px 8px 9px;display:flex;gap:10px;align-items:center;margin:0}
.tgg-sty:hover{border-color:#5a4a22}
.tgg-sty[aria-pressed="true"]{border-color:var(--m-gold);box-shadow:0 0 0 1px var(--m-gold) inset;background:#221d13}
.tgg-sty b{display:block;font-weight:600;font-size:14px;color:var(--m-text)}
.tgg-sty small{display:block;color:var(--m-muted);font-size:12px}
.tgg-sty-sw{width:32px;height:32px;border-radius:6px;flex:none;border:1px solid var(--m-line2)}
.tgg-sw-midnight{background:radial-gradient(circle at 60% 40%,#2a2316,#0f0e0c);box-shadow:inset 0 0 0 1px #8a6d2a}
.tgg-sw-gilded{background:linear-gradient(135deg,#6b4e16,#d4a437 45%,#7a5a1c 70%,#f0cf6a)}
.tgg-sw-engraved{background:repeating-linear-gradient(45deg,#0d0c0a 0 3px,#8a6d2a 3px 4px)}
.tgg-sw-dust{background:radial-gradient(#D4A437 1.2px,transparent 1.4px) 0 0/6px 6px,#0f0e0c}
.tgg-sw-heat{background:linear-gradient(90deg,#1d1912,#5a4318,#b8862b,#f0cf6a)}
/* frame */
.tgg-map-wrap{background:var(--m-bg);border:1px solid var(--m-line2);border-radius:8px;overflow:hidden}
.tgg-map-head{padding:22px 24px 14px;border-bottom:1px solid var(--m-line)}
.tgg-map-kicker{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--m-gold)}
.tgg-map .tgg-map-title{font:800 30px/1.1 "Plus Jakarta Sans",sans-serif;letter-spacing:-1px;margin:6px 0 6px;color:var(--m-text);padding:0;border:0}
.tgg-map-sub{color:var(--m-muted);font-size:14px;max-width:760px;margin:0;line-height:1.5}
.tgg-map-chipsrow{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px}
.tgg-map-chips{display:flex;flex-wrap:wrap;gap:8px}
.tgg-chip{font-weight:500;font-size:13px;color:var(--m-text);background:var(--m-box);border:1px solid var(--m-line2);border-radius:999px;padding:6px 12px;display:inline-flex;align-items:center;gap:8px;cursor:pointer;margin:0}
.tgg-chip[aria-pressed="false"]{opacity:.45}
.tgg-chip-sw{width:10px;height:10px;border-radius:50%;display:inline-block}
.tgg-chip-n{color:var(--m-muted);font-size:12px}
.tgg-flowsw{background:linear-gradient(90deg,#D4A437 0 30%,transparent 30% 45%,#e86a5a 45% 75%,transparent 75%)!important;border-radius:2px!important;width:16px!important;height:4px!important}
.tgg-play{margin-left:auto;font-weight:600;font-size:13px;color:#14130F;background:var(--m-gold);border:0;border-radius:999px;padding:7px 14px 7px 12px;display:inline-flex;align-items:center;gap:8px;cursor:pointer}
.tgg-play:hover{background:var(--m-gold2);color:#14130F}
.tgg-play svg{width:12px;height:12px}
.tgg-map-body{display:grid;grid-template-columns:minmax(0,1fr) 360px}
.tgg-mapbox{position:relative}
.tgg-map-canvas{height:680px;background:#0b1013}
.tgg-noscript{padding:20px;color:var(--m-muted)}
.tgg-side{border-left:1px solid var(--m-line);display:flex;flex-direction:column;min-height:0}
.tgg-list{overflow:auto;flex:1;max-height:680px}
.tgg-grp{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--m-muted);padding:14px 18px 6px;position:sticky;top:0;background:var(--m-bg);border-bottom:1px solid var(--m-line);z-index:1}
.tgg-item{display:flex;gap:12px;align-items:flex-start;padding:11px 18px;border:0;border-bottom:1px solid var(--m-line);cursor:pointer;width:100%;text-align:left;background:none;color:inherit;margin:0;border-radius:0}
.tgg-item:hover,.tgg-item.on{background:#1a1712}
.tgg-item-sw{margin-top:5px;width:10px;height:10px;border-radius:50%;flex:none}
.tgg-item b{display:block;font-weight:600;font-size:15px;color:var(--m-text)}
.tgg-item small{display:block;color:var(--m-muted);font-size:12.5px;margin-top:1px}
.tgg-tag{display:inline-block;margin-top:5px;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--m-gold);border:1px solid #5a4a22;border-radius:3px;padding:1px 6px}
.tgg-foot{padding:10px 18px;font-size:11.5px;color:var(--m-muted);border-top:1px solid var(--m-line);line-height:1.45}
/* leaflet chrome */
.tgg-map .leaflet-container{font-family:Jost,system-ui,sans-serif;background:#0b1013}
.tgg-map .leaflet-popup-content-wrapper{background:var(--m-panel);color:var(--m-text);border:1px solid var(--m-line2);border-radius:8px;box-shadow:0 10px 30px rgba(0,0,0,.5)}
.tgg-map .leaflet-popup-tip{background:var(--m-panel)}
.tgg-map .leaflet-popup-content{margin:14px 16px;width:270px!important}
.tgg-map .leaflet-container a.leaflet-popup-close-button{color:var(--m-muted)}
.tgg-map .leaflet-control-zoom a{background:var(--m-panel)!important;color:var(--m-text)!important;border-color:var(--m-line2)!important}
.tgg-map .leaflet-control-attribution{background:rgba(15,14,12,.8)!important;color:var(--m-muted)!important}
.tgg-map .leaflet-control-attribution a{color:var(--m-muted)!important}
.tgg-map .leaflet-tooltip{background:var(--m-panel);color:var(--m-text);border:1px solid var(--m-line2);box-shadow:none}
.tgg-map .leaflet-tooltip-top:before{border-top-color:var(--m-line2)}
.tgg-pp .t{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--m-gold)}
.tgg-pp h3{font:800 19px/1.15 "Plus Jakarta Sans",sans-serif;letter-spacing:-.5px;margin:4px 0 8px;color:var(--m-text)}
.tgg-pp dl{display:grid;grid-template-columns:76px 1fr;gap:3px 8px;margin:0 0 10px;font-size:13px}
.tgg-pp dt{color:var(--m-muted);font-weight:400}
.tgg-pp dd{margin:0}
.tgg-pp p{font-size:13px;color:#cfc7b4;margin:0 0 10px;line-height:1.45}
.tgg-pp .links a{display:block;color:var(--m-gold);text-decoration:none;font-size:13px;font-weight:500;padding:5px 0;border-top:1px solid var(--m-line)}
.tgg-pp .links a:hover{color:var(--m-gold2)}
.tgg-pp .src{font-size:11px;color:var(--m-muted);margin-top:6px;line-height:1.4}
.tgg-rlabel{color:rgba(232,225,208,.34);font:500 10.5px Jost,sans-serif;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;text-shadow:0 1px 2px #000;pointer-events:none;transform:translate(-50%,-50%)}
.tgg-clabel{color:rgba(232,225,208,.2);font:500 12px Jost,sans-serif;letter-spacing:.2em;text-transform:uppercase;white-space:nowrap;pointer-events:none}
.tgg-outlabel{color:#f08a76;font:600 11px Jost,sans-serif;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;text-shadow:0 1px 3px #000;cursor:pointer;line-height:1.25}
.tgg-outlabel span{display:block;color:#cfc7b4;font-weight:500;letter-spacing:.04em;text-transform:none;font-size:11px}
.tgg-outlabel.big{font-size:13px;color:#ff9a85}
.tgg-legend{position:absolute;left:12px;bottom:12px;z-index:500;background:rgba(20,19,15,.92);border:1px solid var(--m-line2);border-radius:6px;padding:8px 10px;font-size:11.5px;color:var(--m-muted)}
.tgg-legend div{display:flex;align-items:center;gap:6px;margin:2px 0}
.tgg-legend i{width:9px;height:9px;border-radius:50%;display:inline-block}
.tgg-legend .scale{display:none;margin-top:6px;flex-direction:column;align-items:stretch}
.tgg-legend .scale .bar{height:6px;width:150px;border-radius:3px;background:linear-gradient(90deg,#1d1912,#5a4318,#b8862b,#f0cf6a)}
.tgg-legend .scale .ends{display:flex;justify-content:space-between;font-size:10.5px}
.tgg-legend.hide{display:none}
/* markers */
.tgg-dotwrap{background:none;border:0}
.tgg-dot{position:relative;display:block;width:22px;height:22px;transform:scale(0);opacity:0}
.intro .tgg-dot{animation:tggpop .45s cubic-bezier(.3,1.6,.5,1) forwards;animation-delay:var(--d)}
.tgg-dot i{position:absolute;left:5px;top:5px;width:12px;height:12px;border-radius:50%;background:var(--c);border:1.5px solid #0f0e0c;transition:transform .2s ease,box-shadow .2s ease}
.tgg-dot.t-reg i,.tgg-dot.t-ref i,.tgg-dot.t-exp i{left:6px;top:6px;width:10px;height:10px}
.tgg-dot.office i{border-radius:2px;width:9px;height:9px;left:6.5px;top:6.5px}
.tgg-dotwrap:hover .tgg-dot i,.tgg-dot.hot i{transform:scale(1.55);box-shadow:0 0 0 4px rgba(212,164,55,.25)}
.tgg-dot.news i{border-color:#fff;border-width:2px}
.tgg-dot.news::after,.tgg-dot.fresh::after{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;border:2px solid var(--c);opacity:0}
.intro .tgg-dot.news::after{animation:tggring 1.8s ease-out infinite;animation-delay:calc(var(--d) + .5s)}
.intro .tgg-dot.fresh::after{animation:tggring 3.2s ease-out infinite;animation-delay:calc(var(--d) + 1s);border-width:1px}
.tgg-dot.hot::after{animation:tggring 1.2s ease-out infinite!important;opacity:1}
@keyframes tggpop{0%{transform:scale(0) translateY(-14px);opacity:0}100%{transform:scale(1) translateY(0);opacity:1}}
@keyframes tggring{0%{transform:scale(.7);opacity:.9}100%{transform:scale(2.6);opacity:0}}
.tgg-zone{animation:tggbreathe 4s ease-in-out infinite;cursor:pointer}
@keyframes tggbreathe{0%,100%{fill-opacity:.16}50%{fill-opacity:.3}}
.tgg-flow{animation:tggflow 1.6s linear infinite;opacity:0;transition:opacity .8s ease}
.flows-in .tgg-flow{opacity:1}
.tgg-flow-out{animation-duration:1.1s}
@keyframes tggflow{to{stroke-dashoffset:-22}}
.tgg-reg-fill{opacity:0;transition:fill-opacity .6s ease,opacity .8s ease}
.intro .tgg-reg-fill{opacity:1}
/* styles */
.s-gilded .tgg-gh-edge{filter:drop-shadow(0 0 6px rgba(240,207,106,.55))}
.s-gilded .tgg-dot i{box-shadow:0 0 8px 2px rgba(240,207,106,.5)}
.s-gilded .tgg-rlabel{color:rgba(20,15,5,.55);text-shadow:0 1px 0 rgba(255,236,170,.35);font-weight:600}
.s-gilded .leaflet-container{background:#07090b}
.s-engraved .tgg-rlabel{font:italic 600 14px Georgia,"Times New Roman",serif;letter-spacing:.04em;text-transform:none;color:rgba(240,207,106,.72)}
.s-engraved .tgg-clabel{font:italic 600 14px Georgia,"Times New Roman",serif;letter-spacing:.06em;text-transform:none;color:rgba(232,225,208,.3)}
.s-engraved .tgg-map-title{font-family:Georgia,"Times New Roman",serif;letter-spacing:0}
.s-engraved .leaflet-container{background:#0a0c0a}
.s-dust .tgg-rlabel{color:rgba(232,225,208,.45)}
.s-heat .tgg-legend .scale{display:flex}
.s-heat .tgg-rlabel{color:rgba(232,225,208,.55)}
/* tour */
.tgg-tour{position:absolute;left:12px;bottom:12px;z-index:600;width:340px;max-width:calc(100% - 24px);background:rgba(20,19,15,.96);border:1px solid var(--m-line2);border-left:3px solid var(--m-gold);border-radius:8px;padding:14px 16px 12px;box-shadow:0 12px 30px rgba(0,0,0,.5);transform:translateY(12px);opacity:0;pointer-events:none;transition:all .35s ease}
.tgg-tour.show{transform:none;opacity:1;pointer-events:auto}
.tgg-tour .tk{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--m-gold)}
.tgg-tour h4{font:800 18px/1.2 "Plus Jakarta Sans",sans-serif;letter-spacing:-.4px;margin:4px 0 6px;color:var(--m-text)}
.tgg-tour p{font-size:13.5px;line-height:1.45;color:#cfc7b4;margin:0 0 12px}
.tgg-tour .tb{display:flex;align-items:center;gap:10px}
.tgg-tour .tb button{font-weight:600;font-size:12px;border-radius:4px;padding:6px 12px;cursor:pointer;border:1px solid var(--m-line2);background:transparent;color:var(--m-text);margin:0}
.tgg-tour .tb button[data-a="next"]{background:var(--m-gold);color:#14130F;border-color:var(--m-gold)}
.tgg-tour .tb button[disabled]{opacity:.35;cursor:default}
.tgg-tour .bar{flex:1;height:3px;background:var(--m-line2);border-radius:2px;overflow:hidden}
.tgg-tour .bar span{display:block;height:100%;width:0;background:var(--m-gold);animation:tggfill linear forwards}
@keyframes tggfill{to{width:100%}}
.tgg-tour .tx{position:absolute;right:8px;top:6px;background:none;border:0;color:var(--m-muted);font-size:18px;cursor:pointer;padding:2px 6px}
@media (max-width:900px){
 .tgg-map-body{grid-template-columns:1fr}
 .tgg-map-canvas{height:62vh;min-height:400px}
 .tgg-side{border-left:0;border-top:1px solid var(--m-line)}
 .tgg-list{max-height:none}
 .tgg-map .tgg-map-title{font-size:24px}
 .tgg-map-head{padding:16px}
 .tgg-legend{display:none}
 .tgg-play{margin-left:0}
 .tgg-tour{width:auto;right:12px}
}
@media (prefers-reduced-motion:reduce){.tgg-dot,.intro .tgg-dot{animation:none!important;transform:none;opacity:1}.tgg-flow,.tgg-zone,.tgg-dot::after{animation:none!important}}
