:root{--ng-navy:#082b4b;--ng-navy2:#113d63;--ng-blue:#7eb1d5;--ng-gold:#e4bb45;--ng-gold2:#c6961e;--ng-cream:#f3efe4;--ng-paper:#fffdf7;--ng-line:#d9d1bd;--ng-ink:#112d47;--ng-muted:#6b7b8b}
body.jsf-gameplay-atlas-page{background:#f2efe6!important}
body.jsf-gameplay-atlas-page .site-footer{margin-top:0!important}
body.jsf-ng-dialog-open{overflow:hidden!important}
.jsf-ng-game{width:100%;max-width:1920px;margin:0 auto;padding:0 8px 20px;box-sizing:border-box;background:var(--ng-cream);color:var(--ng-ink);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.jsf-ng-game *{box-sizing:border-box}.jsf-ng-game button,.jsf-ng-game input,.jsf-ng-game select{font:inherit}

/* Banner / title treatment from approved visual */
.jsf-ng-title-banner{position:relative;min-height:132px;margin:0 -8px 8px;padding:18px 230px 15px;display:grid;place-items:center;text-align:center;overflow:hidden;border-bottom:1px solid #cdbd96;background:linear-gradient(90deg,rgba(255,247,223,.95),rgba(255,250,237,.89),rgba(255,245,214,.95)),url('../images/game/southern-ontario-corridor-board.png') center 34%/cover}
.jsf-ng-title-banner:before{content:"";position:absolute;left:15px;top:8px;width:180px;height:112px;background:radial-gradient(circle at 50% 50%,transparent 0 26%,#3b2e17 27% 28%,transparent 29%),conic-gradient(from 0deg,#254664 0 2%,transparent 2% 11%,#254664 11% 13%,transparent 13% 24%,#254664 24% 26%,transparent 26% 37%,#254664 37% 39%,transparent 39% 49%,#254664 49% 51%,transparent 51% 62%,#254664 62% 64%,transparent 64% 74%,#254664 74% 76%,transparent 76% 87%,#254664 87% 89%,transparent 89%);opacity:.44;border-radius:50%}
.jsf-ng-compass{position:absolute;left:76px;top:42px;font-size:44px;color:#8a6a22;z-index:2}.jsf-ng-chest{position:absolute;left:25%;top:17px;font-size:56px;filter:drop-shadow(0 4px 2px rgba(68,42,7,.25));z-index:2}.jsf-ng-title-copy{position:relative;z-index:2}.jsf-ng-title-copy h1{margin:0;color:#0b3559;font:800 clamp(34px,4vw,60px)/1 Georgia,serif;letter-spacing:-.025em;text-shadow:0 2px #fff}.jsf-ng-title-copy h2{margin:7px 0 3px;color:#14395a;font:700 clamp(12px,1.25vw,19px)/1.15 Georgia,serif}.jsf-ng-title-copy p{margin:0;color:#33495c;font:600 11px/1.3 Georgia,serif}.jsf-ng-title-art{position:absolute;right:22px;top:15px;display:grid;grid-template-columns:auto auto;align-items:center;gap:4px 9px;color:#5d421c;z-index:2}.jsf-ng-title-art span{font-size:40px}.jsf-ng-title-art b{grid-column:1/-1;padding:8px 12px;transform:rotate(4deg);background:#f8e7b6;border:1px solid #9c7830;border-radius:4px;font:700 14px/1.15 Georgia,serif;box-shadow:2px 3px 0 rgba(90,61,21,.18)}

/* Three-area game dashboard */
.jsf-ng-page-grid{display:grid;grid-template-columns:290px minmax(720px,1fr) 292px;gap:8px;align-items:start}.jsf-ng-left-stack,.jsf-ng-right-stack{display:grid;gap:8px;align-content:start;position:sticky;top:72px;max-height:calc(100vh - 82px);overflow:auto;scrollbar-width:none}.jsf-ng-left-stack::-webkit-scrollbar,.jsf-ng-right-stack::-webkit-scrollbar{display:none}.jsf-ng-center{min-width:0}
.jsf-ng-panel{overflow:hidden;border:1px solid var(--ng-line);border-radius:12px;background:var(--ng-paper);box-shadow:0 2px 8px rgba(20,45,66,.05)}.jsf-ng-panel>header{min-height:42px;padding:10px 13px;display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid #e9e1d2;background:#fffdf8}.jsf-ng-panel>header h3{margin:0;color:#0c3152;font:800 14px/1.2 Georgia,serif}.jsf-ng-panel>header>a,.jsf-ng-panel>header>span,.jsf-ng-panel>header>button{color:#183f62;font-size:9px;font-weight:800;text-decoration:none}.jsf-ng-panel>header>button{width:28px;height:28px;border:0;background:transparent;cursor:pointer}.jsf-ng-panel-body{padding:12px 14px}.jsf-ng-panel-body>b,.jsf-ng-panel-body h3{color:#173b5c}.jsf-ng-panel-body>p{margin:4px 0 10px;color:#536474;font:500 11px/1.4 Georgia,serif}
.jsf-ng-daily>header{background:#0c426e;color:#fff}.jsf-ng-daily>header h3,.jsf-ng-daily>header span{color:#fff}.jsf-ng-quest-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}.jsf-ng-quest-row strong{min-width:68px;padding:7px 8px;border:1px solid #e5c85f;border-radius:10px;background:#fff4c9;color:#704c00;text-align:center;font-size:11px}.jsf-ng-progress{height:8px;border-radius:999px;background:#d9dde0;overflow:hidden}.jsf-ng-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#1e9f73,#4ec18e)}.jsf-ng-dark-button,.jsf-ng-save-button{width:100%;min-height:34px;border:0;border-radius:7px;background:#0b3d66;color:#fff;font-weight:900;font-size:10px;cursor:pointer}.jsf-ng-save-button{margin-top:7px;background:#d7ac35;color:#102d49}.jsf-ng-dark-button.active{background:#b53a2f}.jsf-ng-treasure-progress{display:grid;grid-template-columns:36px 1fr auto;gap:9px;align-items:center}.jsf-ng-treasure-progress>span{font-size:30px}.jsf-ng-treasure-progress h3{margin:0;font:800 14px Georgia,serif}.jsf-ng-treasure-progress p{margin:2px 0 7px;font-size:9px}.jsf-ng-treasure-progress>strong{display:grid;justify-items:center;color:#143757;font-size:15px}.jsf-ng-treasure-progress>strong small{font-size:8px}.jsf-ng-pulse{display:grid;grid-template-columns:repeat(3,1fr);padding:11px 8px}.jsf-ng-pulse span{display:grid;justify-items:center;gap:2px;border-right:1px solid #ebe2d3}.jsf-ng-pulse span:last-child{border:0}.jsf-ng-pulse b{font-size:14px;color:#153b5d}.jsf-ng-pulse small{font-size:8px;color:#7b8791}.jsf-ng-trending a{display:grid;grid-template-columns:24px 1fr auto;gap:7px;align-items:center;padding:7px 10px;border-bottom:1px solid #eee5d7;text-decoration:none}.jsf-ng-trending a:last-child{border-bottom:0}.jsf-ng-trending i{width:21px;height:21px;display:grid;place-items:center;border-radius:50%;background:#f2cf63;color:#664d0a;font-style:normal;font-size:9px;font-weight:900}.jsf-ng-trending b{color:#173958;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.jsf-ng-trending small{font-size:8px;color:#748391}.jsf-ng-trending p{padding:10px;margin:0;font-size:10px}.jsf-ng-region-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:5px;padding:9px}.jsf-ng-region-grid a{min-height:28px;display:grid;place-items:center;padding:4px 6px;border:1px solid #d7d9da;border-radius:8px;background:#f4f4f1;color:#1c415f;text-decoration:none;font-size:8.5px;font-weight:800}.jsf-ng-region-grid a.active{background:#0c4069;color:#fff;border-color:#0c4069}

/* Live Game Master panel */
.jsf-ng-admin-panel>header{background:#f8f3df}.jsf-ng-admin-body{padding:8px 10px 11px}.jsf-ng-admin-body>p{margin:0 0 7px;font-size:9px;color:#4e6071}.jsf-ng-admin-sources{display:grid;grid-template-columns:1fr 1fr;gap:4px}.jsf-ng-admin-sources label{display:flex;align-items:center;gap:5px;font-size:8.5px;font-weight:700;color:#183b59}.jsf-ng-admin-sources input{accent-color:#0aa36e}.jsf-ng-admin-amount{display:grid;grid-template-columns:1fr 64px;gap:6px;align-items:center;margin:8px 0;font-size:9px;font-weight:800}.jsf-ng-admin-amount input{height:30px;border:1px solid #ced7df;border-radius:6px;padding:4px}.jsf-ng-admin-body>small{display:block;margin-top:5px;min-height:14px;color:#397452;font-size:8px}.jsf-ng-admin-panel.is-collapsed .jsf-ng-admin-body{display:none}

/* Region tabs and map */
.jsf-ng-region-tabs{display:flex;justify-content:center;gap:3px;padding:8px 10px;margin-bottom:7px;border:1px solid var(--ng-line);border-radius:12px;background:#fffdf7;overflow-x:auto;scrollbar-width:none}.jsf-ng-region-tabs::-webkit-scrollbar{display:none}.jsf-ng-region-tabs a{min-height:34px;display:flex;align-items:center;justify-content:center;gap:6px;padding:0 16px;border-radius:17px;color:#153b5c;text-decoration:none;font:800 10px Georgia,serif;white-space:nowrap}.jsf-ng-region-tabs a.active{background:#f0c94f;box-shadow:inset 0 0 0 1px #d4ad32}
.jsf-ng-map-frame{position:relative;overflow:hidden;border:1px solid #c4ad70;border-radius:13px;background:#0e507b;box-shadow:0 5px 18px rgba(23,46,64,.16)}.jsf-ng-map-viewport{position:relative;height:min(68vh,730px);min-height:650px;overflow:auto;cursor:grab;overscroll-behavior:contain;scrollbar-width:none;background:#1f6f94}.jsf-ng-map-viewport::-webkit-scrollbar{display:none}.jsf-ng-map-viewport.is-dragging{cursor:grabbing}.jsf-ng-map-viewport.is-placing{cursor:crosshair!important;box-shadow:inset 0 0 0 4px #f0c94f}.jsf-ng-map-canvas{position:relative;width:1200px;min-width:1200px;aspect-ratio:3/2;background-position:center;background-size:cover;background-repeat:no-repeat;transition:width .16s ease}.jsf-ng-map-canvas:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.04),transparent 16%,transparent 84%,rgba(6,42,68,.08));z-index:1}.jsf-ng-object-layer{position:absolute;inset:0;z-index:4}.jsf-ng-route-layer{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;overflow:visible}.jsf-ng-route-layer path{fill:none;stroke:var(--route,#25699a);stroke-width:6;stroke-linecap:round;stroke-dasharray:9 8;filter:drop-shadow(0 1px 0 #fff)}.jsf-ng-route-layer text{fill:#153b5b;paint-order:stroke;stroke:#f8eac3;stroke-width:5px;stroke-linejoin:round;font:800 14px Georgia,serif}
.jsf-ng-layer-legend{position:absolute;right:18px;top:66px;z-index:20;width:205px;display:grid;gap:4px;padding:10px 12px;border:1px solid #c7b36e;border-radius:10px;background:rgba(255,252,242,.96);box-shadow:0 6px 18px rgba(35,46,46,.16)}.jsf-ng-layer-legend label{display:flex;align-items:center;gap:7px;color:#173a59;font:700 9px Georgia,serif}.jsf-ng-layer-legend input{accent-color:#0b7a59}
.jsf-ng-object{position:absolute;left:var(--x);top:var(--y);z-index:6;transform:translate(-50%,-50%);display:grid;justify-items:center;gap:2px;max-width:125px;border:0;background:transparent;padding:0;cursor:pointer;filter:drop-shadow(0 3px 3px rgba(0,0,0,.32))}.jsf-ng-object[hidden]{display:none!important}.jsf-ng-object>span{width:38px;height:38px;display:grid;place-items:center;border:3px solid #f4d66b;border-radius:50% 50% 50% 8px;transform:rotate(-45deg);background:#fff8df;font-size:17px;transition:.15s}.jsf-ng-object>span>*{transform:rotate(45deg)}.jsf-ng-object>b{max-width:120px;padding:3px 7px;border:1px solid #ab8740;border-radius:3px;background:#f9e8b5;color:#17344d;font:800 9px Georgia,serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:1px 2px 0 rgba(56,41,15,.14)}.jsf-ng-object:hover>span,.jsf-ng-object:focus-visible>span{transform:rotate(-45deg) translate(3px,-3px) scale(1.08)}.jsf-ng-business>span{background:#0f5175;color:#fff}.jsf-ng-inactive{cursor:default!important;opacity:.78;filter:none}.jsf-ng-inactive>span{background:#777;color:#fff;border-color:#c8c8c8}.jsf-ng-inactive>b{display:none}.jsf-ng-event>span{background:#7b35b4;color:#fff}.jsf-ng-landmark>span{background:#185b8c;color:#fff}.jsf-ng-checkpoint>span{background:#0e9a59;color:#1a1a1a}.jsf-ng-treasure>span{background:#bc7510;color:#181818;border-radius:8px;animation:ngPulse 1.8s infinite}.jsf-ng-manual>span,.jsf-ng-route>span,.jsf-ng-citygate>span,.jsf-ng-bonus>span{background:#d5a220;color:#3b3b3b}.jsf-ng-object.is-claimed{opacity:.65}.jsf-ng-object.is-claimed>span{animation:none;background:#2f8c65;color:#090909}.jsf-ng-object.is-claimed>b:after{content:" ✓"}
@keyframes ngPulse{50%{box-shadow:0 0 0 9px rgba(242,197,57,.28)}}
.jsf-ng-map-controls{position:absolute;left:18px;bottom:18px;z-index:18;display:grid;grid-template-columns:auto 1fr;gap:4px 8px;align-items:end}.jsf-ng-map-controls>button,.jsf-ng-map-controls>div button{width:31px;height:31px;border:1px solid #cdd9df;border-radius:5px;background:#fff;color:#0d426c;font-size:17px;font-weight:900;cursor:pointer}.jsf-ng-map-controls>button{grid-column:1}.jsf-ng-map-controls>div{display:flex;gap:3px;grid-column:1}.jsf-ng-map-controls small{grid-column:2;grid-row:1/3;color:#fff;font-size:9px;font-weight:700;text-shadow:0 1px 2px #0d2f49}.jsf-ng-zoom{position:absolute;right:16px;top:12px;z-index:21;display:grid;gap:3px}.jsf-ng-zoom button{width:34px;height:34px;border:1px solid #d6dce0;border-radius:5px;background:#fff;color:#103e64;font-size:17px;font-weight:900;cursor:pointer}.jsf-ng-zoom button[data-ng-zoom-reset]{height:27px;font-size:8px}
.jsf-ng-bottom-strip{display:grid;grid-template-columns:1.15fr 1.2fr 1.25fr 1.2fr 1fr;gap:1px;margin-top:6px;border:1px solid #bfa35c;border-radius:10px;overflow:hidden;background:#d7bb72}.jsf-ng-bottom-strip article{min-height:67px;display:flex;align-items:center;gap:9px;padding:9px 11px;background:linear-gradient(#fff7dd,#f3e3b8)}.jsf-ng-bottom-strip article>span{font-size:31px}.jsf-ng-bottom-strip b{display:block;color:#123551;font:800 11px Georgia,serif}.jsf-ng-bottom-strip small{display:block;color:#5f6b6d;font-size:8px;line-height:1.25}.jsf-ng-bottom-strip .jsf-ng-bag{background:linear-gradient(#f5e5b2,#e6cf90)}.jsf-ng-bag strong{display:block;margin-top:3px;color:#72520a;font-size:11px}

/* Right rail */
.jsf-ng-event-list>a{display:grid;grid-template-columns:48px 1fr 14px;gap:8px;align-items:center;padding:8px 10px;border-bottom:1px solid #eee4d4;text-decoration:none}.jsf-ng-event-list>a>span{width:48px;height:37px;display:grid;place-items:center;border-radius:5px;background:#f0e2b5;font-size:20px}.jsf-ng-event-list b{display:block;color:#173a59;font-size:10px}.jsf-ng-event-list small{display:block;margin-top:2px;color:#75828c;font-size:8px}.jsf-ng-event-list i{color:#173a59;font-style:normal;font-size:16px}.jsf-ng-event-list>p{padding:10px;margin:0;font-size:10px}.jsf-ng-today{border:2px solid #d9a92f}.jsf-ng-today>header{background:#0e4772}.jsf-ng-today>header h3,.jsf-ng-today>header span{color:#fff}.jsf-ng-today-reward{display:flex;align-items:center;justify-content:flex-end;gap:7px;margin:8px 0}.jsf-ng-today-reward span{font-size:25px}.jsf-ng-today-reward strong{padding:7px 9px;border-radius:8px;background:#fff1bd;color:#6c4b08;font-size:12px}.jsf-ng-business-list button{width:100%;display:grid;grid-template-columns:62px 1fr 12px;gap:8px;align-items:center;padding:8px 10px;border:0;border-bottom:1px solid #eee4d4;background:transparent;text-align:left;cursor:pointer}.jsf-ng-business-list button:last-child{border-bottom:0}.jsf-ng-business-list img,.jsf-ng-business-list button>span{width:62px;height:54px;border-radius:6px;object-fit:cover;display:grid;place-items:center;background:#173f5e;color:#fff;font-size:26px}.jsf-ng-business-list b{display:block;color:#143756;font-size:10px}.jsf-ng-business-list small{display:block;color:#75828d;font-size:8px}.jsf-ng-business-list p{margin:3px 0 0;color:#5b6975;font-size:8px;line-height:1.25}.jsf-ng-business-list i{font-style:normal;color:#153b59;font-size:16px}.jsf-ng-empty{padding:10px;margin:0;color:#74808a;font-size:9px}.jsf-ng-tip{display:grid;grid-template-columns:44px 1fr;gap:8px;align-items:center;padding:10px}.jsf-ng-tip span{font-size:35px}.jsf-ng-tip p{margin:0;color:#536675;font:500 9px/1.4 Georgia,serif}

/* Popups */
.jsf-ng-dialog{position:fixed;inset:0;z-index:4000;display:grid;place-items:center;padding:18px}.jsf-ng-dialog[hidden]{display:none}.jsf-ng-dialog-backdrop{position:absolute;inset:0;background:rgba(6,26,42,.58);backdrop-filter:blur(2px)}.jsf-ng-dialog-card{position:relative;z-index:2;width:min(520px,calc(100vw - 24px));max-height:88vh;overflow:auto;border:2px solid #d2ae42;border-radius:13px;background:#fffdf7;box-shadow:0 24px 70px rgba(0,0,0,.34)}.jsf-ng-dialog-close{position:absolute;right:10px;top:8px;z-index:3;width:30px;height:30px;border:0;border-radius:50%;background:#f1eee4;color:#173959;font-size:20px;cursor:pointer}.jsf-ng-popup{padding:18px}.jsf-ng-popup-cover{height:130px;margin:-18px -18px 13px;background:center/cover;border-radius:11px 11px 0 0}.jsf-ng-popup-head{display:grid;grid-template-columns:72px 1fr;gap:10px;align-items:center}.jsf-ng-popup-head>img,.jsf-ng-popup-head>span{width:72px;height:72px;border-radius:8px;object-fit:cover;display:grid;place-items:center;background:#153e5d;color:#fff;font-size:31px}.jsf-ng-popup small{color:#8b6915;font-size:9px;font-weight:900;letter-spacing:.05em}.jsf-ng-popup h2{margin:3px 0;color:#103654;font:800 23px Georgia,serif}.jsf-ng-popup p{margin:4px 0;color:#566878;font-size:11px;line-height:1.45}.jsf-ng-promo{margin:11px 0;padding:10px 12px;border-radius:7px;background:#f7eac0;border-left:4px solid #d6a72d}.jsf-ng-promo b{color:#143959}.jsf-ng-reward{margin:10px 0;padding:9px 11px;border-radius:7px;background:#edf5ec;color:#2d5f3f;font-size:11px}.jsf-ng-popup-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:11px}.jsf-ng-btn{min-height:34px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:7px;background:#123f63;color:#fff!important;text-decoration:none;font-size:10px;font-weight:900;cursor:pointer}.jsf-ng-btn.ghost{background:#fff;color:#153d5e!important;border:1px solid #c8d1d8}.jsf-ng-btn.gold{background:#d6aa2f;color:#112d49!important}.jsf-ng-btn.danger{background:#b84b43}.jsf-ng-btn:disabled{opacity:.6;cursor:not-allowed}.jsf-ng-big-icon{font-size:52px}

/* Responsive */
@media(max-width:1500px){.jsf-ng-page-grid{grid-template-columns:250px minmax(650px,1fr) 260px}.jsf-ng-title-banner{padding-left:190px;padding-right:190px}.jsf-ng-compass{left:55px}.jsf-ng-chest{left:23%}.jsf-ng-layer-legend{width:180px}.jsf-ng-bottom-strip article{padding:8px}.jsf-ng-bottom-strip article>span{font-size:26px}}
@media(max-width:1250px){.jsf-ng-page-grid{grid-template-columns:220px minmax(600px,1fr)}.jsf-ng-right-stack{grid-column:1/-1;position:static;max-height:none;display:grid;grid-template-columns:repeat(4,1fr);overflow:visible}.jsf-ng-map-viewport{min-height:590px;height:64vh}.jsf-ng-title-banner{padding-left:150px;padding-right:150px}.jsf-ng-title-art{display:none}.jsf-ng-bottom-strip{grid-template-columns:repeat(3,1fr)}.jsf-ng-bottom-strip article:nth-child(4),.jsf-ng-bottom-strip article:nth-child(5){grid-column:span 1}}
@media(max-width:980px){.jsf-ng-game{padding:0 5px 85px}.jsf-ng-title-banner{min-height:116px;padding:16px 18px}.jsf-ng-title-banner:before,.jsf-ng-compass,.jsf-ng-chest{display:none}.jsf-ng-title-copy h1{font-size:38px}.jsf-ng-title-copy h2{font-size:12px}.jsf-ng-page-grid{display:block}.jsf-ng-left-stack{position:static;max-height:none;overflow:visible;grid-template-columns:repeat(2,1fr);margin-bottom:7px}.jsf-ng-admin-panel{grid-column:1/-1}.jsf-ng-center{width:100%}.jsf-ng-right-stack{display:grid;grid-template-columns:1fr 1fr;margin-top:8px}.jsf-ng-map-viewport{height:68vh;min-height:510px}.jsf-ng-map-canvas{min-width:900px;width:900px}.jsf-ng-layer-legend{top:54px;right:10px;width:170px}.jsf-ng-region-tabs{justify-content:flex-start}.jsf-ng-bottom-strip{grid-template-columns:1fr 1fr}.jsf-ng-bottom-strip .jsf-ng-bag{grid-column:1/-1}.jsf-ng-region-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:680px){.jsf-ng-title-copy h1{font-size:30px}.jsf-ng-title-copy p{font-size:9px}.jsf-ng-left-stack{grid-template-columns:1fr}.jsf-ng-panel:not(.jsf-ng-daily):not(.jsf-ng-admin-panel):nth-of-type(3),.jsf-ng-panel:nth-of-type(4){display:none}.jsf-ng-right-stack{grid-template-columns:1fr}.jsf-ng-map-viewport{height:64vh;min-height:470px}.jsf-ng-map-canvas{width:820px;min-width:820px}.jsf-ng-layer-legend{width:155px}.jsf-ng-layer-legend label{font-size:8px}.jsf-ng-map-controls small{display:none}.jsf-ng-bottom-strip{grid-template-columns:1fr}.jsf-ng-region-tabs a{padding:0 10px;font-size:9px}.jsf-ng-object>b{font-size:8px}.jsf-ng-dialog{padding:6px}.jsf-ng-popup-actions .jsf-ng-btn{flex:1 1 calc(50% - 4px)}.jsf-ng-admin-sources{grid-template-columns:1fr}}
@media(max-width:430px){.jsf-ng-game{padding-left:3px;padding-right:3px}.jsf-ng-title-banner{margin-left:-3px;margin-right:-3px}.jsf-ng-title-copy h1{font-size:27px}.jsf-ng-map-viewport{height:61vh;min-height:430px}.jsf-ng-map-canvas{width:760px;min-width:760px}.jsf-ng-layer-legend{display:none}.jsf-ng-region-tabs{padding:5px}.jsf-ng-region-tabs a{min-height:31px}.jsf-ng-map-controls{left:8px;bottom:8px}.jsf-ng-zoom{right:8px;top:8px}.jsf-ng-popup-actions .jsf-ng-btn{flex:1 1 100%}}

/* Foundation 1.13.30.20.3.95 — live illustrated map behavior and customer-ready check-ins */
.jsf-ng-route-layer{pointer-events:auto!important}
.jsf-ng-route-layer .jsf-ng-live-route{cursor:pointer;pointer-events:auto;outline:none}
.jsf-ng-route-layer .jsf-ng-live-route .jsf-ng-route-hit{stroke:transparent!important;stroke-width:22!important;stroke-dasharray:none!important;filter:none!important;pointer-events:stroke}
.jsf-ng-route-layer .jsf-ng-live-route>path:not(.jsf-ng-route-hit),.jsf-ng-route-layer .jsf-ng-live-route>text{pointer-events:none}
.jsf-ng-route-layer .jsf-ng-live-route:hover>path:not(.jsf-ng-route-hit),.jsf-ng-route-layer .jsf-ng-live-route:focus>path:not(.jsf-ng-route-hit){stroke-width:9!important;filter:drop-shadow(0 0 4px #fff8c9)}
.jsf-ng-route-layer .jsf-ng-live-route:hover>text,.jsf-ng-route-layer .jsf-ng-live-route:focus>text{font-size:17px!important}

/* Transparent hit zones sit over the city/town names already printed into the illustration. */
.jsf-ng-place-hotspot{position:absolute;left:var(--x);top:var(--y);z-index:5;transform:translate(-50%,-50%);width:112px;height:42px;border:1px solid transparent;border-radius:9px;background:rgba(255,255,255,.01);cursor:pointer;padding:0;outline:none}
.jsf-ng-place-hotspot[hidden]{display:none!important}
.jsf-ng-place-hotspot span{position:absolute;left:50%;bottom:calc(100% + 4px);transform:translateX(-50%) translateY(4px);opacity:0;pointer-events:none;padding:4px 7px;border:1px solid #bf9c3b;border-radius:5px;background:rgba(255,250,229,.97);color:#153b59;font:800 9px Georgia,serif;white-space:nowrap;box-shadow:0 4px 12px rgba(18,45,66,.18);transition:.12s}
.jsf-ng-place-hotspot:hover,.jsf-ng-place-hotspot:focus-visible{border-color:rgba(226,183,52,.92);background:rgba(255,238,164,.16);box-shadow:0 0 0 3px rgba(242,202,78,.16)}
.jsf-ng-place-hotspot:hover span,.jsf-ng-place-hotspot:focus-visible span{opacity:1;transform:translateX(-50%) translateY(0)}

/* Keep the board readable: ordinary pins are icons only until interaction. */
.jsf-ng-object{max-width:50px!important}
.jsf-ng-object>b{display:none!important}
.jsf-ng-manual{max-width:140px!important;z-index:12!important}
.jsf-ng-manual>b{display:block!important;position:absolute;top:43px;max-width:130px!important;background:#fff0b7!important}
.jsf-ng-manual>span{animation:ngPulse 1.7s infinite;background:#d5a220!important}
.jsf-ng-inactive{pointer-events:none!important}

/* Collapsible layer legend no longer blocks a large part of the map. */
.jsf-ng-layer-legend{display:block!important;width:190px!important;padding:0!important;overflow:hidden!important;background:rgba(255,252,242,.94)!important}
.jsf-ng-layer-legend summary{cursor:pointer;list-style:none;padding:8px 10px;color:#153b59;font:900 10px Georgia,serif;background:#fff9e8}
.jsf-ng-layer-legend summary::-webkit-details-marker{display:none}
.jsf-ng-layer-legend>div{display:grid;gap:5px;padding:8px 10px 10px;border-top:1px solid #e6dcc3}
.jsf-ng-layer-legend label{font-size:9px!important}

.jsf-ng-admin-place-fields{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:8px 0}
.jsf-ng-admin-place-fields label{display:grid;gap:3px;color:#2d4c63;font-size:8px;font-weight:800}
.jsf-ng-admin-place-fields label.full{grid-column:1/-1}
.jsf-ng-admin-place-fields input,.jsf-ng-admin-place-fields select{width:100%;min-height:32px;border:1px solid #cfd7dc;border-radius:6px;background:#fff;padding:4px 7px;color:#153b59;font-size:10px;box-sizing:border-box}
.jsf-ng-btn.admin{background:#7a4f0d!important;color:#fff!important}
.jsf-ng-btn.checked-in{background:#2f7d5b!important;color:#fff!important;border-color:#2f7d5b!important}

/* The map remains a true draggable surface on desktop and touch devices. */
.jsf-ng-map-viewport{touch-action:none}
@media(max-width:680px){
  .jsf-ng-layer-legend{display:block!important;width:150px!important;top:52px!important;right:7px!important}
  .jsf-ng-layer-legend:not([open]){width:auto!important}
  .jsf-ng-layer-legend summary{font-size:8.5px!important;padding:7px 8px!important}
  .jsf-ng-place-hotspot{width:92px;height:38px}
}
@media(max-width:430px){
  .jsf-ng-layer-legend{display:block!important}
  .jsf-ng-layer-legend[open]{width:145px!important}
  .jsf-ng-place-hotspot{width:84px;height:36px}
}

/* JSV 1.0.5.1 — Full-screen live atlas, paid Directory/Marketplace pins */
body.jsf-gameplay-atlas-page{height:100dvh;min-height:100dvh;overflow:hidden!important;background:#0b3156!important}
body.jsf-gameplay-atlas-page>.top,body.jsf-gameplay-atlas-page>.site-footer,body.jsf-gameplay-atlas-page>.mobilebar,body.jsf-gameplay-atlas-page>.mobile-drawer,body.jsf-gameplay-atlas-page>.mobile-drawer-backdrop{display:none!important}
body.jsf-gameplay-atlas-page #wpadminbar~.jsf-ng-game-v2{height:calc(100dvh - 32px)}
.jsf-ng-game-v2{position:fixed;inset:0;width:100vw!important;max-width:none!important;height:100dvh;margin:0!important;padding:0!important;display:grid;grid-template-columns:96px minmax(0,1fr) 360px;overflow:hidden;background:#0b3156;color:#8f9eac;z-index:50}
.jsf-ng-game-v2 *{box-sizing:border-box}
.jsf-ng-app-rail{min-width:0;background:linear-gradient(180deg,#082b4b,#0c3d68);display:flex;flex-direction:column;align-items:stretch;padding:14px 8px 10px;border-right:1px solid rgba(255,255,255,.12);overflow:hidden}
.jsf-ng-rail-brand{height:62px;display:grid;place-items:center;text-decoration:none}.jsf-ng-rail-brand span{width:46px;height:46px;border:2px solid #e2b63e;border-radius:50%;display:grid;place-items:center;color:#f5cb55;font:900 18px Georgia,serif}
.jsf-ng-app-rail nav{display:grid;gap:3px;align-content:start;min-height:0;flex:1}.jsf-ng-app-rail nav a,.jsf-ng-rail-more{min-height:58px;display:grid;place-items:center;align-content:center;gap:2px;border-radius:10px;color:#fff;text-decoration:none;font-size:11px;font-weight:800}.jsf-ng-app-rail nav a span,.jsf-ng-rail-more span{font-size:22px;line-height:1}.jsf-ng-app-rail nav a.active{background:linear-gradient(135deg,#f0c64f,#ffd765);color:#0c3457;box-shadow:0 6px 16px rgba(0,0,0,.16)}.jsf-ng-rail-more{margin-top:auto}
.jsf-ng-stage{position:relative;min-width:0;min-height:0;display:grid;grid-template-rows:76px minmax(0,1fr) 76px;background:#e9e2d0;overflow:hidden}
.jsf-ng-topbar{min-width:0;display:grid;grid-template-columns:minmax(230px,1fr) minmax(240px,360px) auto 56px;align-items:center;gap:14px;padding:9px 16px;border-bottom:2px solid #d8b13c;background:#fffdf7;box-shadow:0 2px 12px rgba(13,43,72,.12);z-index:40}
.jsf-ng-top-brand{display:flex;align-items:center;gap:10px;min-width:0}.jsf-ng-top-brand img{width:66px;height:50px;object-fit:contain}.jsf-ng-top-brand small{display:block;color:#856816;font-weight:900;letter-spacing:.13em;font-size:8px}.jsf-ng-top-brand h1{margin:1px 0 0;color:#113755;font:900 28px/1 Georgia,serif;white-space:nowrap}
.jsf-ng-region-picker{height:54px;display:flex;align-items:center;gap:10px;padding:6px 12px;border:1px solid #dcd6c7;border-radius:12px;background:#fff}.jsf-ng-region-picker>span{font-size:24px;color:#133d60}.jsf-ng-region-picker label{min-width:0;display:grid;flex:1}.jsf-ng-region-picker small{font-size:9px;color:#687a8a;font-weight:800}.jsf-ng-region-picker select{width:100%;border:0;background:transparent;color:#143b5b;font-weight:900;outline:none}
.jsf-ng-wallet-card{height:52px;min-width:126px;display:flex;align-items:center;gap:8px;padding:6px 12px;border:1px solid #ead08a;border-radius:12px;background:#fff9e6}.jsf-ng-wallet-card>span{font-size:26px}.jsf-ng-wallet-card small{display:block;font-size:8px;color:#75643c}.jsf-ng-wallet-card strong{font-size:18px;color:#123a5c}.jsf-ng-player{width:48px;height:48px;border-radius:50%;overflow:hidden;border:2px solid #e1bc4b;background:#eaf1f6;display:grid;place-items:center}.jsf-ng-player img{width:100%;height:100%;object-fit:cover}.jsf-ng-player span{font-size:24px}
.jsf-ng-map-shell{position:relative;min-height:0;overflow:hidden;background:#1d7298}.jsf-ng-game-v2 .jsf-ng-map-viewport{position:absolute!important;inset:0!important;width:auto!important;height:auto!important;min-height:0!important;border:0;border-radius:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:none;background:#1d7298;touch-action:none}.jsf-ng-game-v2 .jsf-ng-map-canvas{min-width:1320px;width:1320px;aspect-ratio:1124/1408!important;background-position:center!important;background-size:cover!important;box-shadow:none}.jsf-ng-map-search{position:absolute;z-index:35;left:18px;top:14px;width:min(440px,calc(100% - 240px));height:46px;display:grid;grid-template-columns:32px 1fr 32px;align-items:center;padding:0 8px;border:1px solid rgba(22,54,77,.18);border-radius:14px;background:rgba(255,255,255,.96);box-shadow:0 6px 18px rgba(20,53,78,.18)}.jsf-ng-map-search span{font-size:20px;color:#133d60}.jsf-ng-map-search input{min-width:0;height:100%;border:0;background:transparent;outline:0;color:#153a58;font-size:13px}.jsf-ng-map-search button{border:0;background:transparent;color:#7b8790;font-size:18px;cursor:pointer}
.jsf-ng-game-v2 .jsf-ng-layer-legend{top:14px!important;right:16px!important;z-index:35!important;width:auto!important;max-width:205px;border-radius:11px!important;box-shadow:0 6px 18px rgba(20,53,78,.18)}.jsf-ng-game-v2 .jsf-ng-zoom{right:16px!important;top:auto!important;bottom:18px!important;z-index:34}.jsf-ng-game-v2 .jsf-ng-map-controls{left:18px!important;bottom:18px!important;z-index:34}.jsf-ng-game-v2 .jsf-ng-map-controls small{display:none!important}
.jsf-ng-store>span{background:linear-gradient(180deg,#357ee6,#1051a8)!important;color:#fff!important;border-color:#fff!important}.jsf-ng-business>span{background:linear-gradient(180deg,#1f70c8,#134a8a)!important}.jsf-ng-manual>span{background:linear-gradient(180deg,#ffd863,#d79a16)!important}.jsf-ng-object.is-search-hidden,.jsf-ng-place-hotspot.is-search-hidden,.jsf-ng-live-route.is-search-hidden{display:none!important}.jsf-ng-object.is-search-match>span{box-shadow:0 0 0 5px rgba(255,216,78,.55),0 0 24px rgba(255,216,78,.9)!important;transform:scale(1.13)}
.jsf-ng-action-dock{display:grid;grid-template-columns:1.4fr repeat(6,1fr);gap:4px;align-items:stretch;padding:8px 10px;border-top:1px solid #d6cab0;background:#fffdf7;z-index:38}.jsf-ng-action-dock button{min-width:0;border:0;border-radius:10px;background:transparent;color:#173b5a;display:grid;place-items:center;align-content:center;gap:2px;font-size:10px;font-weight:900;cursor:pointer}.jsf-ng-action-dock button span{font-size:23px}.jsf-ng-action-dock button.primary{grid-template-columns:auto 1fr;display:grid;background:linear-gradient(135deg,#2a8af5,#166fd0);color:#fff;font-size:13px;box-shadow:0 4px 12px rgba(24,104,185,.25)}
.jsf-ng-hunt-rail{min-width:0;height:100%;padding:12px;display:grid;grid-auto-rows:max-content;align-content:start;gap:10px;overflow:hidden;background:linear-gradient(180deg,#0a3154,#082b4b);border-left:1px solid rgba(255,255,255,.1);position:relative;z-index:45}.jsf-ng-hunt-close{display:none}.jsf-ng-hunt-card{border:1px solid rgba(227,202,132,.42);border-radius:14px;background:#fffdf7;overflow:hidden;box-shadow:0 5px 18px rgba(0,0,0,.12);padding:13px}.jsf-ng-hunt-card.hero{background:linear-gradient(180deg,#fff6d8,#fffdf7)}.jsf-ng-hunt-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.jsf-ng-hunt-head small{color:#7f6519;font-size:9px;font-weight:900;letter-spacing:.08em}.jsf-ng-hunt-head h2{margin:2px 0;color:#123856;font:900 19px Georgia,serif}.jsf-ng-hunt-head>span{font-size:42px}.jsf-ng-timer{display:flex;justify-content:space-between;align-items:end;padding-top:8px;margin-top:8px;border-top:1px solid #eadfbf}.jsf-ng-timer small{color:#667787}.jsf-ng-timer strong{color:#123a5e;font-size:23px}.jsf-ng-hunt-card h3{margin:0 0 9px;color:#123856;font:900 15px Georgia,serif}.jsf-ng-stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.jsf-ng-stat-grid>div{display:grid;place-items:center;gap:2px;padding:8px 4px;border-right:1px solid #eee3c8}.jsf-ng-stat-grid>div:last-child{border-right:0}.jsf-ng-stat-grid span{font-size:24px}.jsf-ng-stat-grid strong{color:#123958;font-size:16px}.jsf-ng-stat-grid small{font-size:8px;color:#70808d}.jsf-ng-progress-btn{display:flex;min-height:38px;align-items:center;justify-content:center;margin-top:10px;border:0;border-radius:8px;background:#2f8cf3;color:#202020!important;text-decoration:none;font-size:11px;font-weight:900;cursor:pointer}.jsf-ng-nearby{padding:0}.jsf-ng-nearby header{display:flex;align-items:center;justify-content:space-between;padding:12px 13px 8px}.jsf-ng-nearby header h3{margin:0}.jsf-ng-nearby header a{font-size:9px;font-weight:900;text-decoration:none;color:#186fc1}.jsf-ng-nearby button{width:100%;min-height:57px;display:grid;grid-template-columns:44px minmax(0,1fr) 18px;gap:8px;align-items:center;padding:7px 11px;border:0;border-top:1px solid #eee5d1;background:#fff;text-align:left;cursor:pointer}.jsf-ng-nearby button .thumb{width:42px;height:42px;border-radius:8px;overflow:hidden;background:#e8eef3;display:grid;place-items:center;font-size:22px}.jsf-ng-nearby button img{width:100%;height:100%;object-fit:cover}.jsf-ng-nearby button b{display:block;color:#173b59;font-size:10px}.jsf-ng-nearby button small{display:block;margin-top:2px;color:#71808c;font-size:8px}.jsf-ng-nearby button i{font-style:normal;font-size:18px;color:#173b59}.jsf-ng-nearby>p{padding:12px;color:#73818d;font-size:10px}.jsf-ng-paid-note{display:grid;grid-template-columns:36px 1fr;gap:8px;align-items:center}.jsf-ng-paid-note>span{font-size:28px;color:#d7a928}.jsf-ng-paid-note b{display:block;color:#123856}.jsf-ng-paid-note small{display:block;margin-top:3px;color:#6e7d89;line-height:1.35}
.jsf-ng-mobile-hunt-toggle{display:none}.jsf-ng-card-summary{margin:10px 0!important;padding:0!important;color:#334d63!important;font-size:12px!important;line-height:1.45!important}.jsf-ng-popup.store .jsf-ng-popup-head>span{background:#1a67bd}
@media(max-width:1180px){.jsf-ng-game-v2{grid-template-columns:82px minmax(0,1fr) 310px}.jsf-ng-app-rail nav a,.jsf-ng-rail-more{min-height:54px;font-size:9px}.jsf-ng-topbar{grid-template-columns:minmax(180px,1fr) 250px auto 48px;gap:8px;padding-inline:10px}.jsf-ng-top-brand h1{font-size:22px}.jsf-ng-top-brand img{width:54px}.jsf-ng-action-dock{grid-template-columns:1.25fr repeat(6,1fr)}.jsf-ng-action-dock button b{font-size:8px}.jsf-ng-hunt-rail{padding:8px}.jsf-ng-hunt-card{padding:10px}}
@media(max-width:900px){body.jsf-gameplay-atlas-page #wpadminbar{display:none!important}.jsf-ng-game-v2{grid-template-columns:1fr;height:100dvh}.jsf-ng-app-rail{display:none}.jsf-ng-stage{grid-template-rows:58px minmax(0,1fr) 64px}.jsf-ng-topbar{grid-template-columns:minmax(0,1fr) auto auto;padding:5px 8px;gap:6px}.jsf-ng-top-brand img{width:46px;height:40px}.jsf-ng-top-brand small{display:none}.jsf-ng-top-brand h1{font-size:19px}.jsf-ng-region-picker{height:44px;max-width:170px;padding:4px 8px}.jsf-ng-region-picker>span{display:none}.jsf-ng-region-picker small{display:none}.jsf-ng-wallet-card{min-width:78px;height:44px;padding:4px 7px}.jsf-ng-wallet-card>span{font-size:20px}.jsf-ng-wallet-card small{display:none}.jsf-ng-wallet-card strong{font-size:13px}.jsf-ng-player{display:none}.jsf-ng-map-search{left:8px;top:8px;width:calc(100% - 98px);height:42px}.jsf-ng-mobile-hunt-toggle{display:block;position:absolute;z-index:36;right:8px;top:8px;height:42px;border:0;border-radius:11px;background:#0b3559;color:#fff;font-weight:900;padding:0 10px}.jsf-ng-game-v2 .jsf-ng-layer-legend{top:58px!important;right:8px!important}.jsf-ng-game-v2 .jsf-ng-map-canvas{min-width:940px;width:940px}.jsf-ng-game-v2 .jsf-ng-map-controls{display:none}.jsf-ng-game-v2 .jsf-ng-zoom{right:8px!important;bottom:8px!important}.jsf-ng-action-dock{grid-template-columns:repeat(6,1fr);gap:1px;padding:4px 5px}.jsf-ng-action-dock button{font-size:8px}.jsf-ng-action-dock button span{font-size:19px}.jsf-ng-action-dock button.primary{display:none}.jsf-ng-action-dock button b{font-size:7.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.jsf-ng-action-dock button:nth-child(7){display:none}.jsf-ng-hunt-rail{position:fixed;z-index:5000;left:8px;right:8px;bottom:8px;height:min(68dvh,610px);padding:40px 10px 10px;border:1px solid #d6b344;border-radius:18px;background:#0b3156;box-shadow:0 20px 70px rgba(0,0,0,.42);transform:translateY(calc(100% + 24px));transition:transform .22s ease;overflow:auto}.jsf-ng-hunt-rail.is-open{transform:translateY(0)}.jsf-ng-hunt-close{display:grid;position:absolute;right:12px;top:8px;width:30px;height:30px;place-items:center;border:0;border-radius:50%;background:#fff;color:#123957;font-size:20px;cursor:pointer}.jsf-ng-nearby button{min-height:52px}.jsf-ng-dialog{z-index:7000}.jsf-ng-dialog-card{width:min(520px,calc(100vw - 16px));max-height:80dvh}}
@media(max-width:560px){.jsf-ng-stage{grid-template-rows:54px minmax(0,1fr) 58px}.jsf-ng-top-brand h1{font-size:16px}.jsf-ng-top-brand img{width:39px}.jsf-ng-region-picker{max-width:135px}.jsf-ng-region-picker select{font-size:11px}.jsf-ng-wallet-card{min-width:65px}.jsf-ng-game-v2 .jsf-ng-map-canvas{min-width:820px;width:820px}.jsf-ng-map-search{height:39px;width:calc(100% - 88px)}.jsf-ng-mobile-hunt-toggle{height:39px;padding:0 8px;font-size:10px}.jsf-ng-game-v2 .jsf-ng-layer-legend{top:53px!important}.jsf-ng-action-dock{grid-template-columns:repeat(5,1fr)}.jsf-ng-action-dock button:nth-child(6){display:none}.jsf-ng-action-dock button span{font-size:18px}.jsf-ng-action-dock button b{font-size:7px}.jsf-ng-hunt-rail{height:min(72dvh,620px)}.jsf-ng-popup-head{grid-template-columns:58px 1fr}.jsf-ng-popup-head>img,.jsf-ng-popup-head>span{width:58px;height:58px}.jsf-ng-popup-actions .jsf-ng-btn{flex:1 1 calc(50% - 4px)!important}}
body.admin-bar.jsf-gameplay-atlas-page .jsf-ng-game-v2{top:32px;height:calc(100dvh - 32px)}
@media(max-width:900px){body.admin-bar.jsf-gameplay-atlas-page .jsf-ng-game-v2{top:0;height:100dvh}}

/* 1.0.5.2 — History Trail / monument cards */
.jsf-ng-landmark>span{background:linear-gradient(180deg,#f2c94c,#b98215)!important;color:#102f4c!important;border-color:#fff!important}
.jsf-ng-landmark.is-discovered>span{background:linear-gradient(180deg,#2e9c69,#176644)!important;color:#fff!important;box-shadow:0 0 0 4px rgba(255,255,255,.8),0 0 0 7px rgba(46,156,105,.28)!important}
.jsf-ng-popup.landmark{max-width:560px}.jsf-ng-landmark-thumb{display:block;width:100%;height:190px;object-fit:cover;border-radius:14px;margin:0 0 12px;border:1px solid #d9c99f;background:#0b3559}.jsf-ng-popup-head.compact{grid-template-columns:58px minmax(0,1fr)}.jsf-ng-popup-head.compact>span{width:58px;height:58px;display:grid;place-items:center;border-radius:16px;background:#0b3559;color:#fff;font-size:26px}.jsf-ng-clue{margin:12px 0;padding:12px 14px;border:1px solid #d9b23b;border-radius:12px;background:#fff7d5;color:#173b59}.jsf-ng-clue small{display:block;font-weight:900;letter-spacing:.08em;color:#8b6510}.jsf-ng-clue p{margin:5px 0 0!important}.jsf-ng-clue.locked{background:#f3f4f6;border-color:#d7dde4;color:#5f6d7c}.jsf-ng-history-quiz{margin:12px 0;padding:12px;border-radius:12px;background:#edf6ff;border:1px solid #b7d3ea}.jsf-ng-history-quiz>small{font-weight:900;color:#185c91;letter-spacing:.08em}.jsf-ng-history-quiz p{margin:5px 0 8px!important}.jsf-ng-history-quiz>div{display:flex;flex-wrap:wrap;gap:6px}.jsf-ng-history-quiz button{border:1px solid #8db9da;border-radius:999px;background:#fff;color:#153c5d;padding:7px 10px;font-weight:800;cursor:pointer}.jsf-ng-history-quiz button:hover{background:#0b3559;color:#fff}.jsf-ng-history-quiz em{display:block;margin-top:7px;color:#1d6c49;font-style:normal;font-weight:800}.jsf-ng-nearby-stops{margin:12px 0;padding:11px;border:1px solid #e5dcc7;border-radius:12px;background:#fff}.jsf-ng-nearby-stops>small{font-size:9px;font-weight:900;letter-spacing:.08em;color:#7a671f}.jsf-ng-nearby-stops a{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-top:1px solid #eee7d7;color:#173b59;text-decoration:none}.jsf-ng-nearby-stops a:first-of-type{margin-top:5px}.jsf-ng-nearby-stops span{color:#6c7c89;font-size:10px}.jsf-ng-stat-grid{grid-template-columns:repeat(4,1fr)!important}.jsf-ng-stat-grid>div:nth-child(3){border-right:1px solid #eee3c8}.jsf-ng-stat-grid>div:nth-child(4){border-right:0}
.jsf-history-hero{display:grid;grid-template-columns:minmax(220px,38%) 1fr;gap:24px;align-items:center;margin:0 0 28px;padding:18px;border:1px solid #d6c595;border-top:4px solid #e1b43d;border-radius:18px;background:#fffaf0}.jsf-history-hero img{width:100%;max-height:280px;object-fit:cover;border-radius:14px}.jsf-history-hero small{color:#8a6517;font-weight:900;letter-spacing:.12em}.jsf-history-hero h2{margin:5px 0;color:#0b3559}.jsf-history-hero p{color:#647383}.jsf-history-hero .btn{display:inline-flex;margin-top:7px}
@media(max-width:900px){.jsf-ng-landmark-thumb{height:150px}.jsf-ng-stat-grid{grid-template-columns:repeat(2,1fr)!important}.jsf-ng-stat-grid>div{border-right:1px solid #eee3c8!important;border-bottom:1px solid #eee3c8}.jsf-ng-stat-grid>div:nth-child(2n){border-right:0!important}.jsf-ng-stat-grid>div:nth-last-child(-n+2){border-bottom:0}.jsf-history-hero{grid-template-columns:1fr}.jsf-history-hero img{max-height:220px}}


/* 1.0.5.3 — Southern Ontario Adventure Corridor completion */
.jsf-ng-layer-all{width:100%;min-height:34px;border:1px solid #d9c788;border-radius:8px;background:#0b3559;color:#fff;font-weight:900;cursor:pointer}
.jsf-ng-active-clue button{width:100%;display:grid;gap:5px;text-align:left;border:1px solid #e0bd52;border-radius:12px;background:#fff7d8;padding:10px;cursor:pointer;color:#173b59}
.jsf-ng-active-clue button b{font-size:12px}.jsf-ng-active-clue button span{font-size:10px;line-height:1.4}.jsf-ng-active-clue button small{font-size:8px;color:#80631d;font-weight:800}.jsf-ng-active-clue p{font-size:10px;color:#687785;line-height:1.4}
.jsf-ng-passport-card>div{display:flex;justify-content:space-between;gap:8px;padding:9px;border-radius:10px;background:#edf6ff;color:#173b59}.jsf-ng-passport-card>div b,.jsf-ng-passport-card>div span{font-size:10px}.jsf-ng-passport-card>small{display:block;margin-top:7px;color:#697987;font-size:9px;line-height:1.4}
.jsf-ng-game-v2 .jsf-ng-hunt-rail{overscroll-behavior:contain}
@media(max-width:900px){.jsf-ng-game-v2{overflow:hidden}.jsf-ng-map-shell,.jsf-ng-map-viewport{min-height:0}.jsf-ng-hunt-rail{overscroll-behavior:contain}}


/* 1.0.5.4 — Game focus mode + deep zoom-out.
   Gameplay is a dedicated full-screen surface: the global Messenger is intentionally
   suppressed here because Messages already exists in the fixed left game rail. */
body.jsf-gameplay-atlas-page #jsm-root,
body.jsf-gameplay-atlas-page .jsm-root{display:none!important;visibility:hidden!important;pointer-events:none!important}

/* Let JavaScript own the regional board width so zooming below 100% actually works. */
.jsf-ng-game-v2 .jsf-ng-map-canvas{min-width:0!important;max-width:none!important;margin-right:0}
.jsf-ng-game-v2 .jsf-ng-zoom button[data-ng-zoom-fit]{font-size:9px;background:#0b3559;color:#fff;border-color:#d6b344}
@media(max-width:900px){.jsf-ng-game-v2 .jsf-ng-map-canvas{min-width:0!important}.jsf-ng-game-v2 .jsf-ng-zoom{grid-template-columns:34px 34px;grid-auto-rows:34px;gap:4px}.jsf-ng-game-v2 .jsf-ng-zoom button[data-ng-zoom-reset],.jsf-ng-game-v2 .jsf-ng-zoom button[data-ng-zoom-fit]{height:30px}}


/* 1.0.5.5 — Niagara-to-Toronto only + 49% overview.
   Match the live canvas to the actual corridor artwork so the complete board remains visible. */
.jsf-ng-game-v2 .jsf-ng-map-canvas{aspect-ratio:1672/941!important;background-size:100% 100%!important;background-position:center!important}
.jsf-ng-region-fixed{cursor:default}.jsf-ng-region-fixed label{display:grid;min-width:0}.jsf-ng-region-fixed strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#173b59;font-size:12px;line-height:1.15}.jsf-ng-region-fixed small{display:block}
@media(max-width:900px){.jsf-ng-region-fixed strong{font-size:11px}}

/* JSV 1.0.5.7 — responsive full-board scaling + anti-crowding pins */
.jsf-ng-map-canvas{min-width:0!important}
.jsf-ng-object{min-width:48px;min-height:48px;transition:margin .18s ease,filter .18s ease}
.jsf-ng-object.is-auto-spread{z-index:12}
.jsf-ng-object.is-auto-spread:after{content:"";position:absolute;inset:-7px;border-radius:50%;pointer-events:none}
@media(max-width:980px){.jsf-ng-map-canvas{min-width:0!important}}
@media(max-width:680px){.jsf-ng-map-canvas{min-width:0!important}.jsf-ng-object{min-width:44px;min-height:44px}}
@media(max-width:430px){.jsf-ng-map-canvas{min-width:0!important}}

/* JSV 1.0.5.8 — compact clickable pins + clean responsive board */
.jsf-ng-object{
  width:34px!important;
  height:34px!important;
  min-width:34px!important;
  min-height:34px!important;
  max-width:34px!important;
  max-height:34px!important;
  padding:0!important;
  border-width:2px!important;
  line-height:1!important;
  font-size:16px!important;
}
.jsf-ng-object > span{
  width:100%!important;
  height:100%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  font-size:15px!important;
  line-height:1!important;
}
.jsf-ng-object.is-auto-spread:after{
  inset:-5px!important;
}
/* Preserve an easy invisible hit area without making the visible bubble huge. */
.jsf-ng-object:before{
  content:"";
  position:absolute;
  inset:-6px;
  border-radius:50%;
}
/* Let the illustrated board scale cleanly inside the playable viewport. */
.jsf-ng-map-canvas{
  min-width:0!important;
  min-height:0!important;
}
@media(max-width:680px){
  .jsf-ng-object{
    width:30px!important;
    height:30px!important;
    min-width:30px!important;
    min-height:30px!important;
    max-width:30px!important;
    max-height:30px!important;
    font-size:14px!important;
  }
  .jsf-ng-object > span{font-size:13px!important}
}

/* JSV 1.0.5.9 — dense map: smaller markers, stronger click targets, no overlap wall */
.jsf-ng-object{
 width:27px!important;height:27px!important;
 min-width:27px!important;min-height:27px!important;
 max-width:27px!important;max-height:27px!important;
 border-width:1.5px!important;font-size:12px!important;
 z-index:8;
}
.jsf-ng-object>span{font-size:12px!important}
.jsf-ng-object:before{
 content:"";position:absolute;inset:-8px;border-radius:50%;
}
/* Selected/hovered marker rises without permanently enlarging the board clutter. */
.jsf-ng-object:hover,.jsf-ng-object:focus-visible{
 z-index:50!important;transform:translate(-50%,-50%) scale(1.18)!important;
}
.jsf-ng-map-viewport{overflow:hidden!important}
.jsf-ng-map-canvas{min-width:0!important;min-height:0!important}
@media(max-width:680px){
 .jsf-ng-object{
  width:24px!important;height:24px!important;
  min-width:24px!important;min-height:24px!important;
  max-width:24px!important;max-height:24px!important;
 }
 .jsf-ng-object>span{font-size:11px!important}
}

/* JSV 1.0.6.1 — all-device responsive gameplay map */
.jsf-ng-shell,.jsf-ng-main,.jsf-ng-map-wrap,.jsf-ng-map-viewport{max-width:100%;min-width:0}
.jsf-ng-map-viewport{
 width:100%!important;
 height:clamp(420px,62vh,820px)!important;
 touch-action:none;
 overscroll-behavior:contain;
}
.jsf-ng-map-canvas{transform-origin:center center!important}
@media (max-width:1024px){
 .jsf-ng-map-viewport{height:clamp(400px,58vh,680px)!important}
}
@media (max-width:768px){
 .jsf-ng-map-viewport{height:calc(100svh - 210px)!important;min-height:360px}
 .jsf-ng-object{width:24px!important;height:24px!important;min-width:24px!important;min-height:24px!important;max-width:24px!important;max-height:24px!important}
}
@media (max-width:480px){
 .jsf-ng-map-viewport{height:calc(100svh - 180px)!important;min-height:330px}
 .jsf-ng-object{width:22px!important;height:22px!important;min-width:22px!important;min-height:22px!important;max-width:22px!important;max-height:22px!important}
}
@media (orientation:landscape) and (max-height:600px){
 .jsf-ng-map-viewport{height:calc(100svh - 125px)!important;min-height:280px}
}

/* JSV 1.0.6.2 — map-like interaction across mouse, touch and pen */
.jsf-ng-map-viewport{cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}
.jsf-ng-map-viewport.is-dragging{cursor:grabbing}
.jsf-ng-map-canvas{-webkit-user-drag:none}
@media (pointer:coarse){
 .jsf-ng-map-viewport{cursor:default}
 .jsf-ng-object:before{inset:-10px!important}
}


/* JSV 1.0.6.7 — readable mobile Treasure Hunt app surface.
   Preserves the live Niagara–Toronto board, map engine, rewards, Directory/Marketplace
   connections and Game Master controls while making the phone UI match the approved target. */
.jsf-ng-brand-tagline{display:block;margin-top:3px;color:#37719f;font-size:9px;font-weight:800;line-height:1.15;white-space:nowrap}
.jsf-ng-back-activity{display:none}
.jsf-ng-action-dock button.is-active{background:#fff4d3;color:#0d3558;box-shadow:inset 0 0 0 1px rgba(226,181,53,.18)}

@media(max-width:900px){
 body.jsf-gameplay-atlas-page{background:#fffdf7!important}
 .jsf-ng-game-v2{background:#fffdf7}
 .jsf-ng-stage{grid-template-rows:82px minmax(0,1fr) calc(80px + env(safe-area-inset-bottom));background:#fffdf7}
 .jsf-ng-topbar{grid-template-columns:minmax(132px,1fr) 128px 80px;gap:6px;min-height:82px;padding:7px 8px;border-bottom:2px solid #dfb740;background:#fffdf7}
 .jsf-ng-top-brand{gap:7px;overflow:hidden}
 .jsf-ng-top-brand img{width:50px;height:50px;flex:0 0 50px}
 .jsf-ng-top-brand>div{min-width:0}
 .jsf-ng-top-brand .jsf-ng-brand-kicker{display:none!important}
 .jsf-ng-top-brand h1{margin:0;color:#103554;font:900 20px/1.02 Georgia,serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .jsf-ng-brand-tagline{display:block;margin-top:4px;font-size:9px;letter-spacing:0;color:#3974a2;overflow:hidden;text-overflow:ellipsis}
 .jsf-ng-region-picker{height:60px;max-width:none!important;min-width:0;padding:6px 8px;border:1.5px solid #c8d5e2;border-radius:14px;background:#fff;box-shadow:0 2px 7px rgba(15,52,83,.08)}
 .jsf-ng-region-picker>span{display:block;font-size:22px;flex:0 0 auto}
 .jsf-ng-region-picker label{min-width:0}
 .jsf-ng-region-picker small{display:block!important;font-size:10px;line-height:1;color:#687a8a}
 .jsf-ng-region-picker strong{font-size:13px;line-height:1.08;white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
 .jsf-ng-wallet-card{height:60px;min-width:0;padding:6px 7px;justify-content:center;gap:5px;border:1.5px solid #e7bd45;border-radius:14px;background:#fff7dd}
 .jsf-ng-wallet-card>span{font-size:23px}
 .jsf-ng-wallet-card small{display:block!important;font-size:9px;line-height:1;color:#77623a}
 .jsf-ng-wallet-card strong{display:block;margin-top:2px;font-size:17px;line-height:1;color:#143b5d}
 .jsf-ng-player{display:none}

 .jsf-ng-map-shell{background:#fffdf7;padding-top:120px}
 .jsf-ng-game-v2 .jsf-ng-map-viewport{top:120px!important;right:0!important;bottom:0!important;left:0!important;background:#1d7298}
 .jsf-ng-back-activity{display:flex;position:absolute;left:8px;top:8px;z-index:39;width:122px;height:50px;align-items:center;justify-content:center;gap:7px;padding:0 9px;border-radius:13px;background:#0b3559;color:#fff!important;text-decoration:none;box-shadow:0 5px 14px rgba(9,49,84,.20);font-size:12px;font-weight:800;line-height:1.05}
 .jsf-ng-back-activity .jsf-ng-back-home{font-size:25px;line-height:1}
 .jsf-ng-back-activity b{display:block;font-size:14px}
 .jsf-ng-map-search{left:138px;right:8px;top:8px;width:auto!important;height:50px;grid-template-columns:30px minmax(0,1fr) 30px;padding:0 9px;border:1.5px solid #c6d4e1;border-radius:14px;background:#fff;box-shadow:0 4px 12px rgba(20,53,78,.12)}
 .jsf-ng-map-search span{font-size:22px}
 .jsf-ng-map-search input{font-size:14px;font-weight:700;color:#173b5a}
 .jsf-ng-map-search input::placeholder{color:#8b96a5;opacity:1}
 .jsf-ng-map-search button{font-size:22px;min-width:30px;min-height:44px}
 .jsf-ng-mobile-hunt-toggle{display:flex;align-items:center;justify-content:center;right:8px;top:66px;width:calc(50% - 12px);height:46px;padding:0 12px;border:0;border-radius:13px;background:linear-gradient(135deg,#f6c94d,#e5ae27);color:#0b3559;box-shadow:0 4px 12px rgba(131,91,8,.18);font-size:16px;font-weight:950;letter-spacing:.01em}
 .jsf-ng-game-v2 .jsf-ng-layer-legend{display:block!important;left:8px!important;right:auto!important;top:66px!important;width:calc(50% - 12px)!important;max-width:none!important;padding:0!important;border:1.5px solid #d8b74f!important;border-radius:13px!important;background:#fffdf7!important;box-shadow:0 4px 12px rgba(20,53,78,.10)!important}
 .jsf-ng-game-v2 .jsf-ng-layer-legend summary{height:44px;display:flex;align-items:center;justify-content:center;padding:0 10px;list-style:none;cursor:pointer;color:#123958;font-size:14px;font-weight:900;white-space:nowrap}
 .jsf-ng-game-v2 .jsf-ng-layer-legend summary::-webkit-details-marker{display:none}
 .jsf-ng-game-v2 .jsf-ng-layer-legend>div{position:absolute;left:0;top:50px;width:min(220px,76vw);padding:10px 12px;border:1px solid #d8c98f;border-radius:12px;background:#fffdf7;box-shadow:0 10px 24px rgba(9,40,65,.2)}
 .jsf-ng-game-v2 .jsf-ng-layer-legend label{min-height:31px;font-size:11px}
 .jsf-ng-layer-all{min-height:38px;font-size:11px}

 .jsf-ng-game-v2 .jsf-ng-zoom{right:10px!important;bottom:12px!important;grid-template-columns:46px 46px;grid-auto-rows:46px;gap:6px}
 .jsf-ng-game-v2 .jsf-ng-zoom button{width:46px;height:46px;border-radius:12px;font-size:24px;box-shadow:0 5px 14px rgba(8,45,74,.22)}
 .jsf-ng-game-v2 .jsf-ng-zoom button[data-ng-zoom-fit],
 .jsf-ng-game-v2 .jsf-ng-zoom button[data-ng-zoom-reset]{height:46px;font-size:11px!important;border-radius:12px}
 .jsf-ng-game-v2 .jsf-ng-map-controls{display:none!important}

 .jsf-ng-action-dock{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:2px;padding:5px 6px calc(5px + env(safe-area-inset-bottom));border-top:1px solid #dfd6c2;background:#fffdf7;box-shadow:0 -4px 14px rgba(14,43,67,.10)}
 .jsf-ng-action-dock button:nth-child(1),
 .jsf-ng-action-dock button:nth-child(6),
 .jsf-ng-action-dock button:nth-child(7){display:none!important}
 .jsf-ng-action-dock button{display:grid!important;min-height:66px;padding:5px 3px;border-radius:12px;gap:3px;color:#123958;font-size:12px;font-weight:900;overflow:visible}
 .jsf-ng-action-dock button span{font-size:27px;line-height:1}
 .jsf-ng-action-dock button b{font-size:11.5px!important;line-height:1.06;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;text-align:center}
 .jsf-ng-action-dock button.is-active{position:relative;background:#fff2cf!important;color:#0d3558!important;box-shadow:inset 0 0 0 1px rgba(226,181,53,.18)}
 .jsf-ng-action-dock button.is-active:after{content:"";position:absolute;left:15%;right:15%;bottom:2px;height:4px;border-radius:999px;background:#e2ad2d}

 .jsf-ng-place-hotspot span{font-size:11px;padding:5px 8px}
 .jsf-ng-object:before{inset:-11px!important}
 .jsf-ng-hunt-rail{left:8px;right:8px;bottom:calc(86px + env(safe-area-inset-bottom));height:min(68dvh,610px)}
}

@media(max-width:430px){
 .jsf-ng-stage{grid-template-rows:78px minmax(0,1fr) calc(78px + env(safe-area-inset-bottom))}
 .jsf-ng-topbar{grid-template-columns:minmax(118px,1fr) 112px 72px;min-height:78px;padding:6px 6px;gap:5px}
 .jsf-ng-top-brand{gap:5px}
 .jsf-ng-top-brand img{width:44px;height:44px;flex-basis:44px}
 .jsf-ng-top-brand h1{font-size:18px}
 .jsf-ng-brand-tagline{font-size:8px}
 .jsf-ng-region-picker{height:56px;padding:5px 6px}
 .jsf-ng-region-picker>span{display:none}
 .jsf-ng-region-picker small{font-size:9px}
 .jsf-ng-region-picker strong{font-size:12px}
 .jsf-ng-wallet-card{height:56px;padding:4px}
 .jsf-ng-wallet-card>span{font-size:20px}
 .jsf-ng-wallet-card strong{font-size:15px}
 .jsf-ng-wallet-card small{font-size:8px}
 .jsf-ng-map-shell{padding-top:116px}
 .jsf-ng-game-v2 .jsf-ng-map-viewport{top:116px!important}
 .jsf-ng-back-activity{width:112px;height:48px;font-size:11px;padding-inline:7px}
 .jsf-ng-back-activity b{font-size:13px}
 .jsf-ng-back-activity .jsf-ng-back-home{font-size:23px}
 .jsf-ng-map-search{left:126px;height:48px}
 .jsf-ng-map-search input{font-size:13px}
 .jsf-ng-mobile-hunt-toggle{top:64px;height:44px;font-size:15px}
 .jsf-ng-game-v2 .jsf-ng-layer-legend{top:64px!important}
 .jsf-ng-game-v2 .jsf-ng-layer-legend summary{height:42px;font-size:13px}
 .jsf-ng-action-dock button{min-height:64px}
 .jsf-ng-action-dock button span{font-size:25px}
 .jsf-ng-action-dock button b{font-size:10.5px!important}
}

@media(max-width:360px){
 .jsf-ng-stage{grid-template-rows:76px minmax(0,1fr) calc(76px + env(safe-area-inset-bottom))}
 .jsf-ng-topbar{grid-template-columns:minmax(100px,1fr) 102px 66px;padding-inline:4px;gap:4px}
 .jsf-ng-top-brand img{width:38px;height:38px;flex-basis:38px}
 .jsf-ng-top-brand h1{font-size:16px}
 .jsf-ng-brand-tagline{display:none}
 .jsf-ng-region-picker strong{font-size:11px}
 .jsf-ng-wallet-card>span{display:none}
 .jsf-ng-wallet-card strong{font-size:15px}
 .jsf-ng-back-activity{width:104px}
 .jsf-ng-map-search{left:116px}
 .jsf-ng-map-search input{font-size:12px}
 .jsf-ng-action-dock button b{font-size:10px!important}
}


/* JSV 1.0.6.8 — mobile Treasure Hunt shell hard fix.
   This patch deliberately changes layout only. Game data, pins, rewards, map pan/zoom,
   Directory/Marketplace integrations and Game Master permissions are untouched. */
@media (max-width:900px){
  body.jsf-gameplay-atlas-page{
    position:fixed!important;
    inset:0!important;
    width:100%!important;
    height:var(--jsf-ng-vvh,100dvh)!important;
    min-height:0!important;
    overflow:hidden!important;
    overscroll-behavior:none!important;
    background:#fffdf7!important;
  }
  body.jsf-gameplay-atlas-page .jsf-ng-game-v2{
    --jsf-ng-top-h:82px;
    --jsf-ng-control-h:120px;
    --jsf-ng-dock-h:78px;
    position:fixed!important;
    top:0!important;
    left:0!important;
    right:auto!important;
    bottom:auto!important;
    width:100vw!important;
    height:var(--jsf-ng-vvh,100dvh)!important;
    max-height:var(--jsf-ng-vvh,100dvh)!important;
    min-height:0!important;
    overflow:hidden!important;
    grid-template-columns:1fr!important;
  }
  body.jsf-gameplay-atlas-page .jsf-ng-stage{
    position:relative!important;
    display:block!important;
    width:100%!important;
    height:100%!important;
    min-width:0!important;
    min-height:0!important;
    padding:0 0 calc(var(--jsf-ng-dock-h) + env(safe-area-inset-bottom))!important;
    overflow:hidden!important;
  }
  body.jsf-gameplay-atlas-page .jsf-ng-topbar{
    position:absolute!important;
    z-index:90!important;
    top:0!important;
    left:0!important;
    right:0!important;
    height:var(--jsf-ng-top-h)!important;
    min-height:var(--jsf-ng-top-h)!important;
  }
  body.jsf-gameplay-atlas-page .jsf-ng-map-shell{
    position:absolute!important;
    z-index:10!important;
    top:var(--jsf-ng-top-h)!important;
    left:0!important;
    right:0!important;
    bottom:calc(var(--jsf-ng-dock-h) + env(safe-area-inset-bottom))!important;
    min-height:0!important;
    height:auto!important;
    padding-top:var(--jsf-ng-control-h)!important;
    overflow:hidden!important;
  }
  body.jsf-gameplay-atlas-page .jsf-ng-game-v2 .jsf-ng-map-viewport{
    top:var(--jsf-ng-control-h)!important;
    right:0!important;
    bottom:0!important;
    left:0!important;
    width:auto!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
  }
  body.jsf-gameplay-atlas-page .jsf-ng-action-dock{
    position:absolute!important;
    z-index:100!important;
    left:0!important;
    right:0!important;
    bottom:0!important;
    width:100%!important;
    height:calc(var(--jsf-ng-dock-h) + env(safe-area-inset-bottom))!important;
    min-height:var(--jsf-ng-dock-h)!important;
    padding:5px 6px calc(5px + env(safe-area-inset-bottom))!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    align-items:stretch!important;
    background:#fffdf7!important;
    box-shadow:0 -5px 18px rgba(14,43,67,.16)!important;
    overflow:hidden!important;
  }
  body.jsf-gameplay-atlas-page .jsf-ng-action-dock button:nth-child(1),
  body.jsf-gameplay-atlas-page .jsf-ng-action-dock button:nth-child(6),
  body.jsf-gameplay-atlas-page .jsf-ng-action-dock button:nth-child(7){display:none!important}
  body.jsf-gameplay-atlas-page .jsf-ng-action-dock button{
    display:grid!important;
    min-width:0!important;
    min-height:64px!important;
    padding:4px 2px!important;
    place-items:center!important;
    align-content:center!important;
    gap:3px!important;
    overflow:hidden!important;
  }
  body.jsf-gameplay-atlas-page .jsf-ng-action-dock button span{font-size:25px!important;line-height:1!important}
  body.jsf-gameplay-atlas-page .jsf-ng-action-dock button b{
    display:block!important;
    width:100%!important;
    color:inherit!important;
    font-size:10.5px!important;
    line-height:1.05!important;
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
    text-align:center!important;
  }

  /* Closed means completely gone. The prior translated drawer could still peek over the dock. */
  body.jsf-gameplay-atlas-page .jsf-ng-hunt-rail{
    display:grid!important;
    position:fixed!important;
    z-index:5000!important;
    left:8px!important;
    right:8px!important;
    bottom:calc(var(--jsf-ng-dock-h) + env(safe-area-inset-bottom) + 8px)!important;
    width:auto!important;
    height:min(64dvh,560px)!important;
    max-height:calc(var(--jsf-ng-vvh,100dvh) - var(--jsf-ng-top-h) - var(--jsf-ng-dock-h) - 24px)!important;
    visibility:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
    transform:translate3d(0,calc(100% + 48px),0)!important;
    transition:transform .22s ease,opacity .16s ease,visibility 0s linear .22s!important;
    overflow:auto!important;
    overscroll-behavior:contain!important;
  }
  body.jsf-gameplay-atlas-page .jsf-ng-hunt-rail.is-open{
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
    transform:translate3d(0,0,0)!important;
    transition:transform .22s ease,opacity .16s ease!important;
  }
  body.jsf-gameplay-atlas-page .jsf-ng-map-search input{
    min-width:0!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
}

@media (max-width:430px){
  body.jsf-gameplay-atlas-page .jsf-ng-game-v2{
    --jsf-ng-top-h:78px;
    --jsf-ng-control-h:116px;
    --jsf-ng-dock-h:78px;
  }
  body.jsf-gameplay-atlas-page .jsf-ng-brand-tagline{display:none!important}
  body.jsf-gameplay-atlas-page .jsf-ng-top-brand h1{font-size:18px!important}
  body.jsf-gameplay-atlas-page .jsf-ng-map-search input{font-size:14px!important}
}

@media (max-width:360px){
  body.jsf-gameplay-atlas-page .jsf-ng-game-v2{
    --jsf-ng-top-h:76px;
    --jsf-ng-control-h:112px;
    --jsf-ng-dock-h:76px;
  }
  body.jsf-gameplay-atlas-page .jsf-ng-back-activity{width:102px!important}
  body.jsf-gameplay-atlas-page .jsf-ng-map-search{left:114px!important}
  body.jsf-gameplay-atlas-page .jsf-ng-action-dock button b{font-size:9.5px!important}
}


/* JSV 1.0.6.9 — iOS map-zoom hardening.
   Repeated taps must zoom the MAP only, never Safari's page, and the browser toolbar
   may resize the shell without resetting the user's chosen board scale. */
@media (max-width:900px){
  body.jsf-gameplay-atlas-page .jsf-ng-game-v2,
  body.jsf-gameplay-atlas-page .jsf-ng-map-shell,
  body.jsf-gameplay-atlas-page .jsf-ng-zoom,
  body.jsf-gameplay-atlas-page .jsf-ng-zoom button,
  body.jsf-gameplay-atlas-page .jsf-ng-action-dock button,
  body.jsf-gameplay-atlas-page .jsf-ng-mobile-hunt-toggle,
  body.jsf-gameplay-atlas-page .jsf-ng-back-activity{
    -webkit-tap-highlight-color:transparent!important;
    -webkit-touch-callout:none!important;
  }
  body.jsf-gameplay-atlas-page .jsf-ng-zoom,
  body.jsf-gameplay-atlas-page .jsf-ng-zoom button,
  body.jsf-gameplay-atlas-page .jsf-ng-action-dock button,
  body.jsf-gameplay-atlas-page .jsf-ng-mobile-hunt-toggle,
  body.jsf-gameplay-atlas-page .jsf-ng-back-activity{
    touch-action:manipulation!important;
    -webkit-user-select:none!important;
    user-select:none!important;
  }
  body.jsf-gameplay-atlas-page .jsf-ng-map-viewport{
    touch-action:none!important;
    overscroll-behavior:contain!important;
  }
  body.jsf-gameplay-atlas-page .jsf-ng-zoom button{
    min-width:48px!important;
    min-height:48px!important;
  }
}


/* JSV 2.0.6 — real geographic map control readability. */
@media (min-width:901px){
  .jsf-ng-game-v2 .jsf-ng-zoom button{width:44px;min-width:44px;height:44px;border-radius:10px}
  .jsf-ng-game-v2 .jsf-ng-zoom button[data-ng-zoom-fit],
  .jsf-ng-game-v2 .jsf-ng-zoom button[data-ng-zoom-reset]{height:36px;font-size:10px!important;line-height:1;white-space:nowrap}
}
