/*
Theme Name: Calvary Lone Tree
Description: A single-viewport, interactive particle atlas of Lone Tree, Colorado.
Version: 2.6.0
Author: Calvary
Text Domain: calvary-lone-tree
*/

:root{color-scheme:dark;--background:#101112;--white:#edf0f1;--muted:#899092;--water:#6caed5;--park:#78af86;--yellow:#f3e02e}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{width:100%;height:100%;margin:0;overflow:hidden;background:var(--background)}
body{font-family:"Century Gothic",Futura,"Avenir Next",Arial,sans-serif;color:var(--white);-webkit-font-smoothing:antialiased}
.atlas{position:relative;width:100%;height:100vh;height:100svh;min-height:260px;overflow:hidden;isolation:isolate}
.atlas::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:2;background:radial-gradient(ellipse at 50% 48%,transparent 48%,rgba(16,17,18,.08) 75%,rgba(16,17,18,.5) 100%)}
.map-canvas,.map-fallback,.map-labels{position:absolute;inset:0;width:100%;height:100%}
.map-canvas{z-index:1;touch-action:none;opacity:0;transition:opacity 1.1s ease}
.is-ready .map-canvas{opacity:1}
.map-fallback{object-fit:contain;padding:108px 8% 112px;opacity:.8;z-index:0}
.is-ready .map-fallback{visibility:hidden}
.map-labels{z-index:3;pointer-events:none;opacity:0;transition:opacity 1s ease .3s}
.is-ready .map-labels{opacity:1}
.map-label{position:absolute;transform:translate(-50%,-50%);white-space:nowrap;font-size:9px;font-weight:500;letter-spacing:.2em;color:#798184;text-shadow:0 0 8px #101112,0 0 8px #101112}
.map-label--road{font-family:Arial,sans-serif;font-size:8px;letter-spacing:.1em;color:#8b9499;background:rgba(16,17,18,.82);padding:3px 5px;border:1px solid #3a4043;border-radius:3px}
.map-label--water{color:#6a90a4;font-size:8px;letter-spacing:.14em}
.map-label--home{color:var(--white);font-size:10px;letter-spacing:.25em;font-weight:600;transform:translate(13px,-50%)}
.map-label--home::before{content:"";position:absolute;left:-16px;top:50%;width:4px;height:4px;border-radius:50%;transform:translateY(-50%);background:var(--yellow);box-shadow:0 0 0 5px rgba(243,224,46,.065),0 0 12px rgba(243,224,46,.28)}
.church-labels{position:absolute;inset:0;z-index:3;pointer-events:none;visibility:hidden;opacity:0}
.church-marker{position:absolute;width:0;height:0}
.church-dot{position:absolute;left:-2px;top:-2px;width:4px;height:4px;border-radius:50%;background:var(--yellow);box-shadow:0 0 0 5px rgba(243,224,46,.065),0 0 12px rgba(243,224,46,.28)}
.church-name{position:absolute;display:block;width:max-content;white-space:nowrap;padding:2px 4px;border-radius:2px;background:rgba(16,17,18,.72);color:#d8dcdd;font-size:8px;font-weight:500;line-height:1.45;letter-spacing:.08em;text-transform:uppercase;text-shadow:0 0 5px #101112}
.church-name>span{display:block}
.church-name .church-prefix{display:inline}
.church-leader{position:absolute;left:0;top:0;height:1px;transform-origin:0 50%;background:rgba(243,224,46,.35)}
@media(max-width:760px){.church-name{font-size:7.5px;letter-spacing:.035em;padding:2px 3px}}
@media(max-width:760px),(max-height:500px){.church-name .church-prefix{display:none}}
.site-header{position:absolute;z-index:5;top:36px;left:42px;right:42px;display:flex;justify-content:flex-end;align-items:center;gap:24px;pointer-events:none}
.population-toggle{margin-right:auto;display:grid;place-items:center;width:52px;height:52px;padding:2px;border:0;background:transparent;pointer-events:auto;cursor:pointer;border-radius:6px;transition:opacity .3s,transform .3s}
.population-toggle img{display:block;width:48px;height:48px;object-fit:contain}
.population-toggle:hover{transform:scale(1.06)}
.population-toggle:focus-visible{outline:1px solid var(--yellow);outline-offset:5px}
.population-toggle[aria-busy="true"]{opacity:.45}
.population-key{position:absolute;z-index:7;left:42px;bottom:34px;max-width:360px;max-height:calc(100% - 160px);overflow:auto;padding:20px 22px;border:1px solid #ffffff12;border-radius:8px;background:rgba(16,17,18,.91);backdrop-filter:blur(12px);opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .5s,transform .5s,visibility .5s;pointer-events:none}
.population-key p{margin:0}.population-key .population-region{font-size:8px;letter-spacing:.22em;text-transform:uppercase;color:#9ca8ac;margin-bottom:8px}
.population-key h2{font-size:15px;font-weight:500;letter-spacing:.02em;margin:0 0 12px;color:#edf1f2}
.population-key .population-scale{font-size:13px;color:#e0e6e8;margin-bottom:6px;font-variant-numeric:tabular-nums}
.population-key .population-summary{font-size:10px;color:#aab4b8;line-height:1.7}
.population-key .population-basis{font-size:8px;color:#819097;margin-top:5px}
.population-swatches{display:flex;flex-wrap:wrap;gap:9px 18px;margin-top:14px;font-size:9px;color:#bac3c6}
.population-swatches>span{display:flex;align-items:center;gap:7px}.population-swatches>[hidden]{display:none}
.population-swatches i{width:4px;height:4px;border-radius:50%;background:#e8edf0;display:inline-block;box-shadow:0 0 6px #e8edf044}
.population-swatches .population-others i{background:#526066;box-shadow:none}.population-swatches .is-yellow i{background:var(--yellow);box-shadow:0 0 8px #f3e02e55}
.population-swatches .population-unknown i{background:#526d7a;box-shadow:none}
.atlas[data-population-mode="3"] .population-swatches>span:first-child i{background:#b3bdc4;box-shadow:none}
.atlas[data-population-mode="3"] .population-key h2{font-size:clamp(40px,5vw,64px);line-height:1.05;letter-spacing:-.04em;font-weight:400;margin-bottom:14px}
.atlas[data-population-mode="3"] .population-key .population-summary{font-size:11px;line-height:1.6}
.population-key details{margin-top:14px;font-size:9px;line-height:1.7;color:#9ca9ae}.population-key summary{cursor:pointer;color:#78888f;width:max-content}.population-key summary:hover{color:#c1cbcf}
.population-notes{padding-top:10px}.population-notes p+p{margin-top:9px}.population-sources{display:flex;flex-direction:column;gap:4px;margin:9px 0}.population-sources a{color:#a8bbc5;text-decoration-color:#56686f}.population-disclaimer{font-size:8px}
.population-loading{position:absolute;left:42px;top:94px;z-index:8;max-width:240px;font-size:10px;color:#aab8bf;line-height:1.6;pointer-events:none}
.place-content,.map-directions,.map-labels,.church-labels,.wide-labels,.wide-navigation,.wide-status,#map-status{transition:opacity .5s}
.atlas:not([data-population-mode="0"]) :is(.place-content,.map-directions,.map-labels,.church-labels,.wide-labels,.wide-navigation,.wide-status,#map-status){opacity:0!important}
.atlas:not([data-population-mode="0"]) .population-key{opacity:1;visibility:visible;transform:none;pointer-events:auto}
.atlas[data-display-mode="particles"] .population-key{opacity:0;visibility:hidden;pointer-events:none}
@media(max-width:760px){.population-toggle{width:44px;height:44px}.population-toggle img{width:39px;height:39px}.population-key{left:22px;right:22px;bottom:26px;max-width:360px;padding:16px 18px;max-height:calc(100% - 150px)}.population-key h2{font-size:13px;margin-bottom:9px}.population-loading{left:24px;top:76px}.population-notes{max-height:180px;overflow:auto}}
@media(prefers-reduced-motion:reduce){.population-key,.population-toggle,.place-content,.map-directions,.map-labels,.church-labels,.wide-labels,.wide-navigation{transition:none}}
.place{position:relative;text-align:right;margin:0}
.display-toggle{position:absolute;inset:-12px;min-height:44px;border:0;padding:0;border-radius:2px;background:transparent;color:inherit;pointer-events:auto;cursor:pointer;-webkit-tap-highlight-color:transparent}
.display-toggle:focus-visible{outline:1px solid var(--yellow);outline-offset:3px}
.place h1{font-size:10px;font-weight:500;letter-spacing:.21em;margin:0 0 9px;text-transform:uppercase}
.coordinates{font-family:"SFMono-Regular",Consolas,monospace;font-size:9px;letter-spacing:.07em;color:var(--muted)}
.map-directions{position:absolute;inset:0;pointer-events:none;z-index:4}
.direction{position:absolute;display:flex;flex-direction:column;gap:12px;align-items:center;text-shadow:0 0 8px var(--background),0 0 14px var(--background)}
.direction-name{font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:#b3b9bb;white-space:nowrap}
.direction-overline{font-size:7px;letter-spacing:.22em;text-transform:uppercase;color:#798488}
.direction-line{width:1px;height:25px;background:linear-gradient(#505c62,transparent)}
.direction--denver{top:var(--north-label,80px);left:50%;transform:translateX(-50%)}
.direction--mountains{left:clamp(40px,5.6vw,100px);top:47%;align-items:flex-start}
.direction--mountains .direction-line{width:55px;height:1px;background:linear-gradient(90deg,#505c62,transparent)}
.direction--israel{right:clamp(40px,5.6vw,100px);top:47%;align-items:flex-end}
.direction--israel .direction-line{width:55px;height:1px;background:linear-gradient(-90deg,#505c62,transparent)}
.map-status{position:absolute;top:48%;left:50%;transform:translate(-50%,-50%);z-index:4;font-size:10px;letter-spacing:.2em;color:#aeb7ba;transition:opacity .3s}
.is-ready .map-status{opacity:0;pointer-events:none}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(max-width:760px){
 .site-header{top:25px;left:24px;right:24px;gap:15px} .place h1{font-size:8px;letter-spacing:.15em}.coordinates{font-size:7px;letter-spacing:0}
 
 
 .direction-name{font-size:9px;letter-spacing:.2em}.direction-overline{font-size:6px}.direction--mountains{left:19px;top:40%;transform:translate(-50%,-50%) rotate(-90deg);align-items:center}.direction--israel{right:19px;top:40%;transform:translate(50%,-50%) rotate(90deg);align-items:center}.direction--mountains .direction-line,.direction--israel .direction-line{display:none}.direction{gap:8px}
 .map-label--regional,.map-label--water{display:none}.map-label--home{font-size:9px}.map-label--road{font-size:7px}.map-fallback{padding:100px 0 145px}
}
@media(max-width:390px){.coordinates{display:none}.place h1{margin:0;font-size:7px}.site-header{left:20px;right:20px}}
@media(max-height:500px) and (min-width:600px){.site-header{top:20px;left:28px;right:28px}.map-label--regional,.map-label--water{display:none}.direction--denver .direction-line{height:15px}.direction-name{font-size:9px}.direction--mountains{left:40px;top:43%;transform:none}.direction--israel{right:40px;top:43%;transform:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}.map-canvas{opacity:1}}

.map-label--home{font-family:inherit;border:0;background:none;padding:12px 0;min-height:44px;pointer-events:auto;cursor:pointer;-webkit-tap-highlight-color:transparent}
.map-label--home:hover{color:#fff}
.map-label--home:hover::before{box-shadow:0 0 0 7px rgba(243,224,46,.1),0 0 16px rgba(243,224,46,.4)}
.map-label--home:focus-visible{outline:1px solid var(--yellow);outline-offset:8px;border-radius:2px}
.map-label--home[aria-busy=true]{cursor:progress}
.direction--castle-rock{top:var(--south-label,calc(100% - 65px));left:50%;transform:translateX(-50%)}
.direction--castle-rock .direction-line{background:linear-gradient(transparent,#505c62);height:18px}
.is-loading-expansion .map-status{opacity:1;top:auto;bottom:18px;transform:translateX(-50%);font-size:9px;letter-spacing:.06em;white-space:nowrap}
@media(max-width:760px){.direction--mountains,.direction--israel{top:50%}.map-fallback{padding:115px 0 120px}}

/* Keep layout and the top-right hit area stable while revealing only the map. */
.atlas[data-display-mode="dots"] :is(.place-content,.map-directions,.map-status,.home-label-text,.church-name,.church-leader,.map-label:not(.map-label--home)),
.atlas[data-display-mode="particles"] :is(.place-content,.map-directions,.map-status,.home-label-text,.church-name,.church-leader,.map-label:not(.map-label--home)){visibility:hidden!important}
.atlas[data-display-mode="dots"] .map-label--home,
.atlas[data-display-mode="particles"] .map-label--home{pointer-events:none}
.atlas[data-display-mode="particles"] .map-label--home::before,
.atlas[data-display-mode="particles"] .church-dot{visibility:hidden!important}

/* Wider geographic scales share the same restrained canvas and yellow markers. */
.wide-map-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:1;display:none;touch-action:none}
.wide-labels{position:absolute;inset:0;z-index:3;pointer-events:none;display:none}
.wide-navigation{position:absolute;left:42px;right:42px;bottom:31px;display:none;align-items:center;justify-content:space-between;z-index:5;gap:20px}
.wide-navigation button{border:0;background:none;font:inherit;font-size:9px;letter-spacing:.12em;color:#9aa5aa;padding:12px 0;min-height:44px;cursor:pointer}
.wide-navigation button:hover{color:var(--white)}
.wide-navigation button:focus-visible,.wide-home:focus-visible{outline:1px solid var(--yellow);outline-offset:5px;border-radius:2px}
.wide-stage-title{font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:#bdc6ca}
.wide-home{position:absolute;transform:translateY(-50%);border:0;background:none;padding:12px 0;min-height:44px;font:inherit;font-size:10px;font-weight:600;letter-spacing:.23em;white-space:nowrap;color:var(--white);text-transform:uppercase;pointer-events:auto;cursor:pointer;text-shadow:0 0 10px #101112,0 0 10px #101112}
.wide-dot{position:absolute;left:-2px;top:-2px;width:4px;height:4px;border-radius:50%;background:var(--yellow);box-shadow:0 0 0 5px rgba(243,224,46,.065),0 0 12px rgba(243,224,46,.28)}
.wide-home>.wide-dot{left:-16px;top:calc(50% - 2px)}
.wide-marker{position:absolute;width:0;height:0}
.wide-marker>.wide-label-text{position:absolute;width:max-content;max-width:245px;white-space:nowrap;font-size:8px;font-weight:500;line-height:1.45;letter-spacing:.07em;color:#d8dcdd;text-transform:uppercase;padding:2px 4px;border-radius:2px;background:rgba(16,17,18,.8);text-shadow:0 0 6px #101112}
.wide-region-name{display:block;font-size:6px;letter-spacing:.18em;color:#879397;margin-top:2px}
.wide-leader{position:absolute;left:0;top:0;height:1px;transform-origin:0 50%;background:rgba(243,224,46,.25)}
.wide-marker--region>.wide-dot{width:9px;height:9px;left:-4.5px;top:-4.5px;background:transparent;border:1px dashed var(--yellow);box-shadow:0 0 15px rgba(243,224,46,.18)}
.wide-inset-name{position:absolute;transform:translate(-50%,15px);font-size:7px;letter-spacing:.2em;color:#67757c;text-transform:uppercase}
.wide-status{position:absolute;bottom:65px;left:50%;transform:translateX(-50%);font-size:9px;letter-spacing:.1em;color:#aeb7ba;z-index:6;text-align:center;margin:0;max-width:80%;pointer-events:none}
.is-wide .wide-map-canvas,.is-wide .wide-labels{display:block}
.is-wide .wide-navigation{display:flex}
.is-wide::after{background:none}
.is-wide .map-canvas{opacity:0;transition:none;pointer-events:none}
.is-wide .map-labels,.is-wide .map-label,.is-wide .church-labels,.is-wide .church-marker>*,.is-wide .map-directions,.is-wide #map-status{visibility:hidden!important;pointer-events:none}
.atlas[data-display-mode="dots"] :is(.wide-label-text,.wide-leader,.wide-navigation,.wide-inset-name,.wide-status),
.atlas[data-display-mode="particles"] :is(.wide-label-text,.wide-leader,.wide-navigation,.wide-inset-name,.wide-status,.wide-dot){visibility:hidden!important}
.atlas[data-display-mode="dots"] .wide-home,.atlas[data-display-mode="particles"] .wide-home{pointer-events:none}
@media(max-width:760px){.wide-navigation{left:22px;right:22px;bottom:22px;gap:12px}.wide-navigation button{font-size:8px;letter-spacing:.03em}.wide-stage-title{font-size:8px;letter-spacing:.16em}.wide-home{font-size:9px;letter-spacing:.17em}.wide-marker>.wide-label-text{font-size:7px;max-width:220px;letter-spacing:.02em}.wide-status{bottom:76px;line-height:1.6}}
@media(max-height:500px){.wide-navigation{bottom:8px}.wide-status{bottom:50px}}

/* The scene stays put; this control changes only its ink and paper palette. */
.theme-toggle{display:flex;align-items:center;justify-content:center;gap:7px;min-width:65px;min-height:44px;padding:8px 10px;border:1px solid #89909238;border-radius:22px;background:transparent;color:var(--muted);font:inherit;font-size:10px;letter-spacing:.05em;pointer-events:auto;cursor:pointer;transition:color .2s,border-color .2s}
.theme-toggle:hover{color:var(--white);border-color:var(--muted)}
.theme-toggle:focus-visible{outline:1px solid var(--yellow);outline-offset:4px}
.theme-icon-moon{display:none}
[data-theme="light"] .theme-icon-sun{display:none}
[data-theme="light"] .theme-icon-moon{display:block}
.atlas[data-display-mode="dots"] .theme-toggle,.atlas[data-display-mode="particles"] .theme-toggle{visibility:hidden;pointer-events:none}
@media(max-width:760px){.theme-toggle{min-width:44px;padding:8px;gap:0}.theme-toggle-text{display:none}}

:root[data-theme="light"]{color-scheme:light;--background:#f2f0e9;--white:#303d44;--muted:#626e72;--water:#367999;--park:#567a5a;--yellow:#a07813}
[data-theme="light"] .atlas::after{background:radial-gradient(ellipse at 50% 48%,transparent 48%,rgba(242,240,233,.08) 75%,rgba(242,240,233,.55) 100%)}
[data-theme="light"] .atlas.is-wide::after{background:none}
[data-theme="light"] .population-toggle img{filter:brightness(0);opacity:.79}
[data-theme="light"] .map-fallback{filter:invert(.91) hue-rotate(180deg) saturate(.8)}
[data-theme="light"] :is(.map-label,.church-name,.wide-home,.wide-marker>.wide-label-text){text-shadow:0 0 8px #f2f0e9,0 0 8px #f2f0e9}
[data-theme="light"] .map-label{color:#616e74}
[data-theme="light"] .map-label--road{color:#5c6d75;background:rgba(242,240,233,.86);border-color:#a6b0b0}
[data-theme="light"] .map-label--water{color:#43778e}
[data-theme="light"] .map-label--home{color:#303d44}
[data-theme="light"] .map-label--home:hover{color:#1e2c33}
[data-theme="light"] :is(.church-name,.wide-marker>.wide-label-text){background:rgba(242,240,233,.85);color:#39484f}
[data-theme="light"] :is(.map-label--home::before,.church-dot,.wide-dot){box-shadow:0 0 0 5px rgba(160,120,19,.07),0 0 10px rgba(160,120,19,.18)}
[data-theme="light"] :is(.church-leader,.wide-leader){background:rgba(160,120,19,.42)}
[data-theme="light"] .population-key{background:rgba(242,240,233,.95);border-color:#53606628;box-shadow:0 8px 28px #3a454208}
[data-theme="light"] .population-key h2{color:#303d44}
[data-theme="light"] .population-key :is(.population-region,.population-summary,.population-basis,details){color:#5b6b71}
[data-theme="light"] .population-key :is(.population-scale,.population-swatches){color:#394b54}
[data-theme="light"] .population-key summary{color:#5b6e77}
[data-theme="light"] .population-key summary:hover{color:#263d48}
[data-theme="light"] .population-sources a{color:#356e88;text-decoration-color:#94a6ac}
[data-theme="light"] .population-swatches i{background:#26343b;box-shadow:none}
[data-theme="light"] .population-swatches .is-yellow i{background:var(--yellow);box-shadow:none}
[data-theme="light"] .population-swatches .population-unknown i{background:#526d7a}
[data-theme="light"] .atlas[data-population-mode="3"] .population-swatches>span:first-child i{background:#535f66}
[data-theme="light"] :is(.population-loading,.map-status,.wide-status){color:#586b75}
[data-theme="light"] .direction-name{color:#536168}
[data-theme="light"] .direction-overline{color:#6c7a80}
[data-theme="light"] .direction-line{background:linear-gradient(#89969b,transparent)}
[data-theme="light"] .direction--castle-rock .direction-line{background:linear-gradient(transparent,#89969b)}
[data-theme="light"] .direction--mountains .direction-line{background:linear-gradient(90deg,#89969b,transparent)}
[data-theme="light"] .direction--israel .direction-line{background:linear-gradient(-90deg,#89969b,transparent)}
[data-theme="light"] .wide-navigation button{color:#5a6c76}
[data-theme="light"] .wide-navigation button:hover{color:#253e4b}
[data-theme="light"] .wide-stage-title{color:#455963}
[data-theme="light"] :is(.wide-region-name,.wide-inset-name){color:#687a83}
[data-theme="light"] .wide-marker--region>.wide-dot{box-shadow:0 0 12px rgba(160,120,19,.12)}

/* Keep the complete centered gauge visible above a compact desktop key. */
@media(min-width:760px){
 .atlas[data-population-mode="3"] .population-key{left:42px;right:42px;bottom:16px;max-width:none;max-height:none;overflow:visible;display:grid;grid-template-columns:112px minmax(150px,1.1fr) minmax(200px,1.65fr) 104px;grid-template-rows:auto auto;column-gap:12px;row-gap:2px;align-items:center;padding:10px 16px}
 .atlas[data-population-mode="3"] .population-key h2{grid-column:1;grid-row:1/3;font-size:36px;line-height:1;margin:0}
 .atlas[data-population-mode="3"] .population-key .population-region{grid-column:2;grid-row:1;margin:0;font-size:7px;letter-spacing:.16em}
 .atlas[data-population-mode="3"] .population-key .population-scale{grid-column:2;grid-row:2;margin:0;font-size:11px}
 .atlas[data-population-mode="3"] .population-key .population-summary{display:none}
 .atlas[data-population-mode="3"] .population-key .population-basis{grid-column:3;grid-row:1;margin:0;font-size:7.5px}
 .atlas[data-population-mode="3"] .population-key .population-swatches{grid-column:3;grid-row:2;margin:0;font-size:8px;gap:6px 12px}
 .atlas[data-population-mode="3"] .population-key details{grid-column:4;grid-row:1/3;margin:0;font-size:8px}
 .atlas[data-population-mode="3"] .population-key details[open] .population-notes{position:absolute;right:0;bottom:calc(100% + 10px);width:min(440px,calc(100vw - 84px));max-height:calc(100vh - 180px);overflow:auto;padding:18px 20px;background:var(--background);border:1px solid #89909244;border-radius:8px;box-shadow:0 10px 30px #00000018}
}
@media(min-width:760px) and (max-height:520px){.atlas[data-population-mode="3"] .population-key{bottom:8px;left:28px;right:28px;padding:8px 12px}}
