[data-reveal]{will-change:transform, opacity;pointer-events:none}[data-reveal].is-revealed{pointer-events:auto}[data-reveal=fade]{opacity:0}[data-reveal=fade].is-revealed{opacity:1;transform:none}[data-reveal=fade-up]{opacity:0;transform:translateY(30px)}[data-reveal=fade-up].is-revealed{opacity:1;transform:none}[data-reveal=fade-down]{opacity:0;transform:translateY(-30px)}[data-reveal=fade-down].is-revealed{opacity:1;transform:none}[data-reveal=fade-left]{opacity:0;transform:translate(30px)}[data-reveal=fade-left].is-revealed{opacity:1;transform:none}[data-reveal=fade-right]{opacity:0;transform:translate(-30px)}[data-reveal=fade-right].is-revealed{opacity:1;transform:none}[data-reveal=zoom]{opacity:0;transform:scale(.95)}[data-reveal=zoom].is-revealed{opacity:1;transform:none}[data-reveal=flip]{opacity:0;transform:perspective(1000px)rotateX(10deg)}[data-reveal=flip].is-revealed{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){[data-reveal]{opacity:1!important;transition:none!important;transform:none!important}}[data-stagger]>*{opacity:0;will-change:transform, opacity;transform:translateY(30px)}[data-stagger]>.is-revealed{opacity:1;transform:none}[data-parallax]{will-change:transform}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:-200%}to{background-position:200%}}.reveal-on-scroll{opacity:0;transition:opacity .6s,transform .6s;transform:translateY(30px)}.reveal-on-scroll.revealed{opacity:1;transform:translateY(0)}.stagger-1{animation-delay:.1s}.stagger-2{animation-delay:.2s}.stagger-3{animation-delay:.3s}.stagger-4{animation-delay:.4s}.stagger-5{animation-delay:.5s}.stagger-6{animation-delay:.6s}.stagger-7{animation-delay:.7s}.stagger-8{animation-delay:.8s}.stagger-9{animation-delay:.9s}.stagger-10{animation-delay:1s}.animate-float{animation:3s ease-in-out infinite float}.animate-pulse{animation:2s ease-in-out infinite pulse}.animate-spin{animation:1s linear infinite spin}.hover-lift{transition:transform .3s}.hover-lift:hover{transform:translateY(-5px)}.hover-scale{transition:transform .3s}.hover-scale:hover{transform:scale(1.05)}.hover-rotate{transition:transform .3s}.hover-rotate:hover{transform:rotate(5deg)}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}ul{list-style:none}.view-toggle-bar{background:var(--color-surface);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:16px;padding:10px 56px;display:flex}.view-toggle-bar__left{color:var(--color-text-subtle);font-size:13px}.view-toggle-bar__left strong{color:var(--color-text-muted);font-weight:600}.view-toggle{background:var(--color-border);border-radius:var(--border-radius-sm);gap:2px;padding:3px;display:flex}.view-toggle__btn{cursor:pointer;font-family:var(--font-family-body);color:var(--color-text-subtle);background:0 0;border:none;border-radius:6px;align-items:center;gap:6px;padding:6px 14px;font-size:12.5px;font-weight:600;transition:background .15s,color .15s;display:flex}.view-toggle__btn svg{fill:none;stroke:currentColor;stroke-width:2px;width:14px;height:14px}.view-toggle__btn.active{color:var(--color-sage);background:#fff;box-shadow:0 1px 4px #1e1a151a}.camp-explorer{grid-template-columns:280px 1fr;align-items:start;min-height:calc(100vh - 380px);display:grid}.camp-sidebar{background:var(--color-primary);scrollbar-width:thin;scrollbar-color:#ffffff26 transparent;height:calc(100vh - 72px);padding:28px 22px;position:sticky;top:72px;overflow-y:auto}.camp-sidebar::-webkit-scrollbar{width:4px}.camp-sidebar::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:2px}.sidebar-label{font-family:var(--font-family-body);color:var(--color-accent-400);letter-spacing:.16em;text-transform:uppercase;margin-bottom:14px;font-size:10px;font-weight:700}.sidebar-search{margin-bottom:18px;position:relative}.sidebar-search__icon{color:#fff6;pointer-events:none;width:14px;height:14px;position:absolute;top:50%;left:11px;transform:translateY(-50%)}.sidebar-search__input{width:100%;font-family:var(--font-family-body);border-radius:var(--border-radius-sm);color:#ffffffe6;background:#ffffff14;border:1px solid #ffffff24;outline:none;padding:9px 12px 9px 34px;font-size:13px;transition:border-color .2s,background .2s}.sidebar-search__input::placeholder{color:#ffffffa6}.sidebar-search__input:focus{border-color:var(--color-accent-400);background:#ffffff1f}.sidebar-states{flex-direction:column;gap:1px;display:flex}.state-btn{border-radius:var(--border-radius-sm);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;justify-content:space-between;align-items:center;width:100%;padding:8px 10px;transition:background .15s,border-color .15s;display:flex}.state-btn:hover{background:#ffffff12}.state-btn.active{background:#d4a94e29;border-color:#d4a94e52}.state-btn__name{font-family:var(--font-family-body);color:#fffc;font-size:13px;font-weight:500;transition:color .15s}.state-btn.active .state-btn__name,.state-btn:hover .state-btn__name{color:#fff}.state-btn.active .state-btn__name{color:var(--color-accent-400)}.state-btn__count{color:#ffffffa6;background:#ffffff12;border-radius:100px;padding:2px 6px;font-size:10.5px;font-weight:600}.state-btn.active .state-btn__count{color:var(--color-accent-400);background:#d4a94e26}.state-btn--all{border-bottom:1px solid #ffffff1f;margin-bottom:8px;padding-bottom:12px}.state-btn--all .state-btn__name{color:var(--color-accent-400);font-weight:700}.state-btn.hidden{display:none}.sidebar-no-results{color:#ffffffa6;padding:12px 4px;font-size:13px;display:none}.camp-panel{background:var(--color-background);min-height:600px}.map-view{display:block}.map-view.hidden{display:none}#camp-map{background:#f2efe9;width:100%;height:calc(100vh - 72px)}.leaflet-container{font-family:var(--font-family-body)!important}.leaflet-popup-content-wrapper{border-radius:var(--border-radius-sm)!important;border:1px solid var(--color-border)!important;background:#fff!important;padding:0!important;box-shadow:0 4px 20px #1e1a1526!important}.leaflet-popup-content{color:var(--color-text)!important;margin:0!important;padding:14px 18px!important}.leaflet-popup-tip{background:#fff!important}.leaflet-popup-close-button{color:var(--color-text-subtle)!important;top:8px!important;right:10px!important}.map-popup__state{font-family:var(--font-family-heading);font-size:var(--font-size-base);color:var(--color-text);margin-bottom:4px;font-weight:700}.map-popup__count{font-size:var(--font-size-xs);color:var(--color-sage);margin-bottom:10px;font-weight:600}.map-popup__btn{background:var(--color-accent);color:#fff;font-family:var(--font-family-body);font-size:var(--font-size-xs);border-radius:var(--border-radius-sm);letter-spacing:.03em;cursor:pointer;text-align:center;border:none;width:100%;padding:6px 14px;font-weight:600;transition:background .15s;display:inline-block}.map-popup__btn:hover{background:var(--color-accent-400)}.table-view{padding:36px 40px;display:none}.table-view.visible{display:block}.camp-welcome{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:480px;padding:60px 24px;display:flex}.camp-welcome__icon{background:var(--color-sage-50);width:60px;height:60px;color:var(--color-sage-300);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 18px;display:flex}.camp-welcome__icon svg{fill:none;stroke:currentColor;stroke-width:1.5px;width:26px;height:26px}.camp-welcome__title{font-family:var(--font-family-heading);color:var(--color-secondary);margin-bottom:10px;font-size:22px;font-weight:700}.camp-welcome__body{font-size:var(--font-size-sm);color:var(--color-text-muted);max-width:380px;line-height:1.65}.results-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;display:flex}.results-title{align-items:baseline;gap:10px;display:flex}.results-title h2{font-family:var(--font-family-heading);color:var(--color-secondary);letter-spacing:-.01em;font-size:26px;font-weight:700}.results-count{color:var(--color-text-subtle);font-size:13px;font-weight:500}.back-to-map{font-family:var(--font-family-body);color:var(--color-sage);background:var(--color-sage-50);border-radius:var(--border-radius-sm);cursor:pointer;border:none;align-items:center;gap:6px;padding:6px 14px;font-size:12.5px;font-weight:600;transition:background .15s;display:inline-flex}.back-to-map:hover{background:var(--color-sage-100)}.back-to-map svg{fill:none;stroke:currentColor;stroke-width:2px;width:14px;height:14px}.table-search-wrap{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.table-search{position:relative}.table-search__input{font-family:var(--font-family-body);border:1.5px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text);background:#fff;outline:none;width:240px;padding:8px 12px;font-size:13.5px;transition:border-color .2s}.table-search__input:focus{border-color:var(--color-sage-300)}.table-search__input::placeholder{color:var(--color-text-subtle)}.results-clear{font-family:var(--font-family-body);font-size:var(--font-size-xs);color:var(--color-clay);cursor:pointer;border-radius:var(--border-radius-sm);background:0 0;border:none;padding:6px 10px;font-weight:600;transition:background .15s;display:none}.results-clear:hover{background:var(--color-accent-100)}.results-clear.visible{display:block}.export-csv-btn{font-family:var(--font-family-body);color:var(--color-sage);background:var(--color-sage-50);border-radius:var(--border-radius-sm);cursor:pointer;border:none;align-items:center;gap:6px;padding:7px 14px;font-size:12.5px;font-weight:600;transition:background .15s;display:inline-flex}.export-csv-btn:hover{background:var(--color-sage-100)}.export-csv-btn svg{fill:none;stroke:currentColor;stroke-width:2px;width:14px;height:14px}.camp-table-wrap{border-radius:var(--border-radius-base);border:1px solid var(--color-border);overflow-x:auto;box-shadow:0 2px 10px #1e1a150f}.camp-table{border-collapse:collapse;width:100%;font-family:var(--font-family-body);font-size:13px}.camp-table thead tr{background:var(--color-primary)}.camp-table thead th{text-align:left;color:var(--color-accent-400);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;cursor:pointer;user-select:none;padding:12px 16px;font-size:10px;font-weight:700;transition:color .15s}.camp-table thead th:hover{color:var(--color-accent-400)}.camp-table thead th.sort-asc:after{content:" ↑";color:var(--color-accent-400)}.camp-table thead th.sort-desc:after{content:" ↓";color:var(--color-accent-400)}.camp-table tbody tr{border-bottom:1px solid var(--color-border);transition:background .12s}.camp-table tbody tr:last-child{border-bottom:none}.camp-table tbody tr:hover{background:var(--color-sage-50)}.camp-table td{color:var(--color-text-muted);vertical-align:middle;padding:10px 16px;line-height:1.4}.camp-table td:first-child{color:var(--color-text);white-space:nowrap;font-weight:600}.co-badge{background:var(--color-sage-100);color:var(--color-sage);font-size:var(--font-size-2xs);border-radius:100px;padding:2px 7px;font-weight:700;display:inline-block}.date-text{font-size:var(--font-size-xs);color:var(--color-text-subtle);white-space:nowrap}.table-no-results{text-align:center;color:var(--color-text-subtle);font-size:var(--font-size-sm);padding:44px 24px;display:none}.table-no-results svg{opacity:.35;fill:none;stroke:currentColor;stroke-width:1.5px;width:30px;height:30px;margin:0 auto 10px;display:block}.table-pagination{border-top:1px solid var(--color-border);background:var(--color-surface);border-radius:0 0 var(--border-radius-base) var(--border-radius-base);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:14px 18px;display:flex}.pagination-info{font-size:var(--font-size-xs);color:var(--color-text-subtle)}.pagination-controls{gap:3px;display:flex}.page-btn{border-radius:var(--border-radius-sm);border:1.5px solid var(--color-border);width:30px;height:30px;color:var(--color-text-muted);font-family:var(--font-family-body);cursor:pointer;background:0 0;justify-content:center;align-items:center;font-size:12.5px;font-weight:500;transition:background .15s,border-color .15s,color .15s;display:flex}.page-btn:hover{background:var(--color-sage-50);border-color:var(--color-sage-100)}.page-btn.active{background:var(--color-sage);border-color:var(--color-sage);color:#fff}.page-btn:disabled{opacity:.35;cursor:not-allowed}.per-page-wrap{font-size:var(--font-size-xs);color:var(--color-text-subtle);align-items:center;gap:7px;display:flex}.per-page-wrap select{font-family:var(--font-family-body);font-size:var(--font-size-xs);border:1.5px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text);background:#fff;outline:none;padding:3px 7px}.project-key{border:1.5px solid var(--color-border);border-radius:var(--border-radius-base);background:0 0;margin-bottom:22px;padding:16px 20px}.project-key__title{font-family:var(--font-family-body);color:var(--color-text-subtle);letter-spacing:.14em;text-transform:uppercase;margin:0 0 12px;font-size:10px;font-weight:700}.project-key__grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px 20px;margin:0;display:grid}.project-key__item{align-items:baseline;gap:8px;display:flex}.project-key__item dt{font-family:var(--font-family-body);font-size:var(--font-size-2xs);color:var(--color-sage);background:var(--color-sage-50);border:1px solid var(--color-sage-100);white-space:nowrap;border-radius:100px;flex-shrink:0;padding:1px 7px;font-weight:700}.project-key__item dd{font-family:var(--font-family-body);font-size:var(--font-size-xs);color:var(--color-text-muted);margin:0;line-height:1.5}@media (width<=1024px){.camp-explorer{grid-template-columns:240px 1fr}.table-view{padding:28px 24px}}@media (width<=768px){.view-toggle-bar{padding:10px 20px}.camp-explorer{grid-template-columns:1fr}.camp-sidebar{border-bottom:3px solid var(--color-accent);height:auto;max-height:300px;position:static}.table-view{padding:20px 16px}.table-search__input{width:100%}}
