:root{color:#102a20;background:#f4f7f5;font-family:Segoe UI,system-ui,sans-serif;line-height:1.5}*{box-sizing:border-box}body{margin:0}a{color:#1b6b4a}.page{min-height:100vh}.map-page{position:relative}.map-container{width:100vw;height:100vh}.launch-overlay{position:fixed;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;color:#fff;text-align:center;pointer-events:auto}.launch-overlay--splash{background:linear-gradient(180deg,#0a3d62b8,#0a3d6273)}.launch-overlay__content{max-width:24rem;padding:2rem}.launch-overlay__eyebrow{margin:0 0 .5rem;font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;opacity:.85}.launch-overlay__title{margin:0 0 2rem;font-size:1.75rem;font-weight:600;line-height:1.25}.launch-overlay__cta{padding:.9rem 2rem;border:0;border-radius:999px;background:#1b6b4a;color:#fff;font-size:1.1rem;font-weight:600;cursor:pointer;box-shadow:0 8px 32px #00000040;transition:transform .15s ease,background .15s ease}.launch-overlay__cta:hover{background:#2d8a5e;transform:scale(1.03)}.launch-hud{position:fixed;inset:0;z-index:10;pointer-events:none;color:#fff}.launch-hud__reticle{position:absolute;left:50%;top:50%;width:4.5rem;height:4.5rem;transform:translate(-50%,-50%)}.launch-hud__reticle-ring{position:absolute;inset:0;border:2px solid rgba(255,255,255,.92);border-radius:50%;box-shadow:0 0 0 1px #00000059}.launch-hud__reticle-dot{position:absolute;left:50%;top:50%;width:.45rem;height:.45rem;margin:-.225rem 0 0 -.225rem;border-radius:50%;background:#fff;box-shadow:0 0 8px #ffffffd9}.launch-hud--planting .launch-hud__reticle-ring{animation:launch-reticle-pulse 1.6s ease-in-out infinite}.launch-hud__scanning{position:absolute;left:50%;bottom:2.5rem;margin:0;transform:translate(-50%);font-size:.95rem;font-weight:600;letter-spacing:.04em;text-shadow:0 2px 12px rgba(0,0,0,.65)}.launch-hud__place-card{position:absolute;left:1rem;bottom:1rem;display:flex;align-items:center;gap:.65rem;max-width:min(22rem,calc(100vw - 2rem));padding:.85rem 1rem;border-radius:.65rem;background:#12161cd1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 12px 40px #00000059}.launch-hud__place-count{flex-shrink:0;font-size:1.35rem;font-weight:700;line-height:1;color:#52b788}.launch-hud__place-text{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;min-width:0}.launch-hud__place-name{font-size:1rem;font-weight:600;line-height:1.2}.launch-hud__place-time{font-size:.8rem;opacity:.75}@keyframes launch-reticle-pulse{0%,to{transform:scale(.92);opacity:.75}50%{transform:scale(1);opacity:1}}.fab{position:fixed;right:1rem;bottom:1rem;padding:.75rem 1rem;border:0;border-radius:999px;background:#1b6b4a;color:#fff;text-decoration:none;font-weight:600;font-size:1rem;cursor:pointer;box-shadow:0 8px 24px #102a2033}.map-nav{position:fixed;top:1rem;left:1rem;z-index:2;display:flex;flex-wrap:wrap;gap:.5rem}.map-activity-bar{position:fixed;top:1rem;left:50%;z-index:2;transform:translate(-50%);margin:0;padding:.45rem .85rem;border-radius:999px;background:#12161ce0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;font-size:.82rem;font-weight:500;display:flex;align-items:center;gap:.45rem;box-shadow:0 8px 28px #00000047;pointer-events:none;max-width:min(28rem,calc(100vw - 2rem));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.map-activity-bar__dot{flex-shrink:0;width:.55rem;height:.55rem;border-radius:50%;background:#e63946;box-shadow:0 0 8px #e63946d9;animation:map-activity-pulse 1.8s ease-in-out infinite}@keyframes map-activity-pulse{0%,to{opacity:.65;transform:scale(.92)}50%{opacity:1;transform:scale(1)}}.map-status-error{position:fixed;top:1rem;right:1rem;z-index:12;max-width:min(20rem,calc(100vw - 2rem));margin:0;padding:.5rem .75rem;border-radius:.5rem;background:#12161ceb;color:#f5c6c6;font-size:.85rem;display:flex;align-items:center;gap:.5rem}.map-status-error button{flex-shrink:0;padding:.2rem .5rem;border:1px solid rgba(255,255,255,.35);border-radius:.35rem;background:transparent;color:#fff;cursor:pointer;font-size:.8rem}.facility-panel{position:fixed;left:1rem;top:5rem;z-index:11;width:min(20rem,calc(100vw - 2rem));max-height:min(22rem,45vh);display:flex;flex-direction:column;border-radius:.65rem;background:#12161ce0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;box-shadow:0 12px 40px #00000059;pointer-events:auto}.facility-panel__header{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;padding:.85rem 1rem .5rem;border-bottom:1px solid rgba(255,255,255,.1)}.facility-panel__title{margin:0;font-size:.95rem;font-weight:600}.facility-panel__count{font-size:1.1rem;font-weight:700;color:#52b788}.facility-panel__list{list-style:none;margin:0;padding:.35rem 0;overflow-y:auto}.facility-panel__item{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;width:100%;padding:.65rem 1rem;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.facility-panel__item:hover,.facility-panel__item--selected{background:#52b78826}.facility-panel__item-name{font-size:.9rem;font-weight:600}.facility-panel__item-meta{font-size:.75rem;opacity:.75}.facility-panel__open{display:block;width:calc(100% - 2rem);margin:0 1rem .5rem;padding:.45rem .65rem;border:0;border-radius:.4rem;background:#1b6b4a;color:#fff;font-size:.8rem;font-weight:600;cursor:pointer}.facility-panel__empty{padding:.75rem 1rem 1rem}.facility-panel__empty-text{margin:0;font-size:.9rem;font-weight:600}.facility-panel__empty-hint{margin:.35rem 0 .85rem;font-size:.8rem;opacity:.8;line-height:1.4}.facility-panel__cta,.facility-panel__footer-link{display:inline-block;padding:.55rem .85rem;border:0;border-radius:.45rem;background:#1b6b4a;color:#fff;font-size:.85rem;font-weight:600;text-decoration:none;cursor:pointer;font-family:inherit}.facility-panel__footer-link{margin:0 1rem .85rem;background:transparent;border:1px solid rgba(255,255,255,.25)}.pitch-picker-map{width:100%;height:20rem;margin:1rem 0;border-radius:.65rem;overflow:hidden;border:1px solid #d8e3dd}.browse-form{margin-top:1rem}.form select{padding:.6rem .75rem;border:1px solid #c8d5cf;border-radius:.5rem}.map-nav a{display:inline-block;padding:.5rem .85rem;border-radius:999px;background:#fffffff2;color:#1b6b4a;text-decoration:none;font-weight:600;box-shadow:0 4px 16px #102a2026}.detail-page,.form-page,.admin-page{max-width:42rem;margin:0 auto;padding:1rem 1.25rem 2rem}.detail-header h1{margin:.5rem 0 0}.detail-body{margin-top:1rem}.muted{color:#5c6f66}.event-list,.item-list,.timeline-list{padding-left:1.25rem}.content-section{margin-top:2rem;padding-top:1.5rem;border-top:1px solid #d8e3dd}.inline-form{display:grid;gap:.75rem;margin-top:1rem;padding:1rem;border-radius:.75rem;background:#eaf1ec}.inline-form h3{margin:0;font-size:1rem}.admin-actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-top:1rem}.admin-login{max-width:24rem}.admin-login-help{margin:1rem 0 1.25rem;padding:.85rem 1rem;border-radius:.5rem;background:#eaf1ec;font-size:.9rem;line-height:1.45}.admin-login-help p{margin:0 0 .5rem}.admin-login-help p:last-child{margin-bottom:0}.admin-login-help__example{font-family:ui-monospace,monospace;font-size:.85rem}.admin-login-help__secret{color:#1b6b4a;font-weight:600}.admin-login__error{color:#9b2226}.admin-session-badge{font-size:.8rem;font-weight:600;color:#1b6b4a}.admin-coords{font-family:ui-monospace,monospace;font-size:.8rem}.admin-roadmap ul{padding-left:1.25rem}.admin-section{margin-top:2rem}.admin-list{list-style:none;padding:0;margin:0;display:grid;gap:.75rem}.admin-card{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;padding:1rem;border-radius:.75rem;background:#fff;border:1px solid #d8e3dd}.admin-card-actions{display:flex;flex-direction:column;gap:.5rem}.button-secondary{background:#5c6f66}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem}.photo-card{margin:0}.photo-card img{width:100%;height:120px;object-fit:cover;border-radius:.5rem}.photo-card figcaption{margin-top:.35rem;font-size:.9rem}.timeline-type{display:inline-block;margin-right:.5rem;padding:.1rem .45rem;border-radius:.35rem;background:#d8e3dd;font-size:.75rem;text-transform:uppercase}.form{display:grid;gap:.75rem;margin-top:1rem}.form label,.inline-form label{display:grid;gap:.35rem;font-weight:600}.form input,.form textarea,.inline-form input,.inline-form textarea,.inline-form select,button{font:inherit}.form input,.form textarea,.form select,.inline-form input,.inline-form textarea,.inline-form select{padding:.6rem .75rem;border:1px solid #c8d5cf;border-radius:.5rem}button{width:fit-content;padding:.65rem 1rem;border:0;border-radius:.5rem;background:#1b6b4a;color:#fff;cursor:pointer}.status{margin-top:1rem;color:#1b4332}
