:root{--surface:#fcf9f3;--surface-dim:#dcdad4;--surface-bright:#fcf9f3;--surface-container-lowest:#fff;--surface-container-low:#f6f3ed;--surface-container:#f0eee7;--surface-container-high:#ebe8e2;--surface-container-highest:#e5e2dc;--on-surface:#1c1c18;--on-surface-variant:#424845;--inverse-surface:#31312c;--inverse-on-surface:#f3f0ea;--outline:#727974;--outline-variant:#c1c8c3;--surface-tint:#476558;--primary:#1d3a2f;--on-primary:#fff;--primary-container:#1d3a2f;--on-primary-container:#85a496;--inverse-primary:#adcebe;--secondary:sienna;--on-secondary:#fff;--secondary-container:#fe9e72;--on-secondary-container:#773310;--tertiary:#d4a843;--on-tertiary:#fff;--tertiary-container:#443100;--on-tertiary-container:#c19733;--carbon:#2c2c28;--carbon-10:#2c2c281a;--carbon-15:#2c2c2826;--niebla:#b8c4bc;--niebla-20:#b8c4bc33;--lino:#f2ede4;--error:#ba1a1a;--on-error:#fff;--error-container:#ffdad6;--on-error-container:#93000a;--background:#f2ede4;--on-background:#1c1c18;--font-hanken:"Hanken Grotesk", sans-serif;--font-vollkorn:"Vollkorn", serif;--font-mono:"JetBrains Mono", monospace;--space-base:8px;--space-xs:4px;--space-sm:12px;--space-md:24px;--space-lg:40px;--space-xl:64px;--space-gutter:24px;--space-margin:32px;--radius-sm:.125rem;--radius-default:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-full:9999px}body{background-color:var(--background);color:var(--carbon);font-family:var(--font-vollkorn);-webkit-font-smoothing:antialiased;margin:0;padding:0}#app{width:100vw;height:100dvh;display:flex;position:relative;overflow:hidden}#map{flex:1;width:100%;height:100%}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}#ui-overlay{padding:var(--space-margin);box-sizing:border-box;z-index:10;flex-direction:column;align-items:flex-start;width:100%;height:100%;display:flex;position:absolute;top:0;left:0}.headline-lg{font-family:var(--font-hanken);margin:0;font-size:32px;font-weight:600;line-height:40px}.headline-md{font-family:var(--font-hanken);margin:0;font-size:24px;font-weight:600;line-height:32px}.body-lg{font-family:var(--font-vollkorn);margin:0;font-size:18px;font-weight:400;line-height:28px}.body-md{font-family:var(--font-vollkorn);margin:0;font-size:16px;font-weight:400;line-height:24px}.body-sm{font-family:var(--font-vollkorn);color:var(--on-surface-variant);margin:0;font-size:14px;font-weight:400;line-height:20px}.label-lg{font-family:var(--font-hanken);letter-spacing:.05em;margin:0;font-size:14px;font-weight:600;line-height:20px}.mono-data{font-family:var(--font-mono);margin:0;font-size:13px;font-weight:400;line-height:18px}.header{background-color:var(--lino);border:1px solid var(--carbon-10);padding:var(--space-md);border-radius:var(--radius-default);box-shadow:2px 2px 0 var(--carbon-15);pointer-events:auto;width:340px;max-width:calc(100vw - var(--space-margin) * 2);transition:transform .3s cubic-bezier(.4,0,.2,1),opacity .3s}.header.collapsed{opacity:0;pointer-events:none;transform:translate(calc(-100% - 100px))}.collapse-btn{color:var(--carbon);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;padding:4px;transition:background-color .2s;display:flex}.collapse-btn:hover{background-color:var(--carbon-10)}.expand-btn{top:var(--space-margin);left:var(--space-margin);background-color:var(--lino);border:1px solid var(--carbon-10);color:var(--carbon);border-radius:var(--radius-default);box-shadow:2px 2px 0 var(--carbon-15);cursor:pointer;z-index:15;justify-content:center;align-items:center;padding:10px;transition:opacity .3s,transform .3s cubic-bezier(.4,0,.2,1);display:flex;position:absolute}.expand-btn:hover{background-color:var(--niebla-20)}.expand-btn.hidden{opacity:0;pointer-events:none;transform:translate(-50px)}.info-panel{background-color:var(--lino);border-left:1px solid var(--carbon-10);z-index:20;flex-direction:column;width:400px;max-width:90vw;height:100%;transition:transform .3s cubic-bezier(.4,0,.2,1);display:flex;position:absolute;top:0;right:0;transform:translate(0);box-shadow:-4px 0 16px #0000001a}.info-panel.closed{transform:translate(100%)}.close-btn{top:var(--space-base);right:var(--space-base);font-family:var(--font-hanken);color:var(--carbon);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:4px 12px;font-size:28px;position:absolute}.close-btn:hover{background-color:var(--niebla-20)}.info-content{padding:var(--space-xl) var(--space-md) var(--space-md);flex:1;overflow-y:auto}.geology-data{font-family:var(--font-vollkorn);color:var(--carbon)}.geology-data h3{font-family:var(--font-hanken);margin:0 0 var(--space-base) 0;color:var(--primary);border-bottom:1px solid var(--niebla);padding-bottom:var(--space-base);font-size:24px}.geology-data table{border-collapse:collapse;width:100%;margin-top:var(--space-base)}.geology-data th,.geology-data td{padding:var(--space-sm) 0;text-align:left;border-bottom:1px solid var(--carbon-10)}.geology-data th{font-family:var(--font-hanken);color:var(--on-surface-variant);width:35%;font-size:14px;font-weight:600}.geology-data td{font-family:var(--font-mono);font-size:14px}.footer-info{bottom:var(--space-base);align-items:center;gap:var(--space-sm);z-index:10;display:flex;position:absolute;right:120px}.usgs-credit{font-family:var(--font-hanken);color:var(--carbon);border-radius:var(--radius-sm);background-color:#f2ede4cc;padding:4px 8px;font-size:12px}.usgs-credit a{color:var(--primary);font-weight:600;text-decoration:none}.usgs-credit a:hover{text-decoration:underline}.visit-counter{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.maplibregl-ctrl-bottom-right{margin-bottom:max(24px, env(safe-area-inset-bottom,24px))}.maplibregl-ctrl-group{border:1px solid var(--carbon-10);overflow:hidden;background-color:var(--lino)!important;border-radius:var(--radius-lg)!important;box-shadow:2px 2px 0 var(--carbon-15)!important}.maplibregl-ctrl-group button{width:40px!important;height:40px!important}.maplibregl-ctrl-group button:hover{background-color:var(--niebla-20)!important}.maplibregl-ctrl-icon{filter:sepia()hue-rotate(100deg)saturate(.5)brightness(.3)}.custom-marker{background-color:var(--secondary);border:2px solid var(--lino);width:16px;height:16px;box-shadow:2px 2px 0 var(--carbon-15);cursor:pointer;border-radius:0}.municipio-dropdown{width:100%;font-family:var(--font-hanken);border:1px solid var(--carbon-15);border-radius:var(--radius-default);background-color:var(--lino);color:var(--carbon);cursor:pointer;box-shadow:2px 2px 0 var(--carbon-15);margin-top:16px;padding:12px;font-size:16px;font-weight:600;transition:border-color .1s}.municipio-dropdown:focus{border-color:var(--primary);outline:none}.clear-selection-btn{width:100%;font-family:var(--font-hanken);border:1px solid var(--secondary);border-radius:var(--radius-default);color:var(--secondary);cursor:pointer;background-color:#0000;margin-top:8px;padding:8px;font-size:14px;font-weight:600;transition:background-color .1s}.clear-selection-btn:hover{background-color:var(--carbon-10)}.scan-button{background-color:var(--primary);color:var(--on-primary);border-radius:var(--radius-default);font-family:var(--font-hanken);cursor:pointer;width:100%;box-shadow:2px 2px 0 var(--carbon-15);border:none;margin-top:16px;padding:12px 24px;font-size:16px;font-weight:600;transition:transform .1s,box-shadow .1s}.scan-button:hover{background-color:var(--primary-container);color:var(--lino)}.scan-button:active{box-shadow:0 0 0 var(--carbon-15);transform:translate(2px,2px)}.scan-button:disabled{background-color:var(--niebla);color:var(--on-surface-variant);cursor:not-allowed;box-shadow:2px 2px 0 var(--carbon-15);transform:none}.scan-container{text-align:center;padding:var(--space-sm) 0}.scan-progress-bar{background-color:var(--niebla-20);border-radius:var(--radius-full);width:100%;height:8px;margin:16px 0;overflow:hidden}.scan-progress-fill{background-color:var(--secondary);width:0%;height:100%;transition:width .1s linear}.scan-message{font-family:var(--font-mono);color:var(--on-surface-variant);min-height:20px;font-size:13px}.loading-overlay{background-color:var(--surface);z-index:1000;justify-content:center;align-items:center;width:100vw;height:100vh;transition:opacity .5s ease-out;display:flex;position:absolute;top:0;left:0}.loading-overlay.fade-out{opacity:0;pointer-events:none}.loading-content{background-color:var(--lino);padding:var(--space-xl);border-radius:var(--radius-lg);border:1px solid var(--carbon-10);box-shadow:4px 4px 0 var(--carbon-15);text-align:center;width:80%;max-width:400px}.loading-bar-container{background-color:var(--carbon-10);height:12px}
