/* Isaiah's AOG Pulse layout, with geographically projected maps and Aeroluxe controls. */
.aog-pulse { padding-block:clamp(72px,8vw,116px); background:#1b1d18; color:var(--band-ink); }
.aog-pulse-head { display:grid; grid-template-columns:1.2fr .8fr; gap:8%; align-items:end; margin-bottom:44px; }
.aog-pulse-head h2 { font-size:clamp(2.8rem,5.2vw,4.7rem); line-height:1.03; margin-top:20px; }
.aog-pulse-head > p { color:#bdb9ae; font-size:var(--t-md); line-height:1.75; max-width:42ch; }
.aog-pulse-head strong { color:var(--band-ink); font-weight:500; }
.aog-pulse-grid { display:grid; grid-template-columns:minmax(0,1.8fr) minmax(300px,.9fr); gap:30px; align-items:start; }
.aog-map-wrap { min-width:0; }
.aog-map-top,.aog-map-caption { display:flex; justify-content:space-between; gap:16px; font:400 10px/1.5 var(--f-mono); letter-spacing:.06em; text-transform:uppercase; color:#b4b09f; }
.aog-map-top { margin-bottom:14px; flex-wrap:wrap; }
.aog-pulse .pulse-status { display:flex; align-items:center; gap:8px; }
.aog-pulse .pulse-status::before { content:""; width:5px; height:5px; background:var(--gold); border-radius:50%; box-shadow:0 0 0 5px rgb(201 162 77 / .1); }
.aog-map { background:#141512; border:1px solid #464739; overflow:hidden; }
.aog-map > svg { display:block; width:100%; height:auto; }
.aog-map-caption { padding:12px 0; }
.aog-map-caption > :last-child { flex-shrink:0; color:var(--gold); }
.aog-pulse .aog-range { fill:none; stroke:#b2b09e; stroke-width:1; stroke-dasharray:3 7; opacity:.15; }
.aog-pulse .map-route { fill:none; stroke:var(--gold-hi); stroke-width:3; stroke-linecap:round; stroke-dasharray:8 9; opacity:0; }
.aog-pulse .map-route.active { opacity:1; animation:dispatch-route 2.5s linear infinite; }
.aog-pulse .route-ghost { fill:none; stroke:var(--gold); stroke-width:1; opacity:0; }
.aog-pulse .route-ghost.active { opacity:.4; }
.aog-pulse .base-ring,.aog-pulse .dest-ring { fill:none; stroke:var(--gold-hi); stroke-width:1.5; }
.aog-pulse .base-ring,.aog-pulse .dest-ring.active { animation:dispatch-pulse 2.8s ease-out infinite; transform-box:fill-box; transform-origin:center; }
.aog-pulse .base-dot,.aog-pulse .dest-dot { fill:var(--gold-hi); }
.aog-pulse .dest-dot,.aog-pulse .dest-ring { opacity:0; }
.aog-pulse .dest-dot.active,.aog-pulse .dest-ring.active { opacity:1; }
.aog-pulse .map-code { fill:#f3ead4; font:500 17px var(--f-mono); letter-spacing:1px; paint-order:stroke; stroke:#141512; stroke-width:5px; stroke-linejoin:round; }
.aog-label-leader { fill:none; stroke:#c9a24d; stroke-width:1; }
.aog-ne { border-block:1px solid #3e4034; margin-bottom:18px; }
.aog-ne summary { display:flex; gap:12px; align-items:center; flex-wrap:wrap; cursor:pointer; padding:14px 0; font-size:var(--t-sm); }
.aog-ne summary::before { content:"+"; color:var(--gold); font-family:var(--f-mono); }
.aog-ne[open] summary::before { content:"−"; }
.aog-ne summary span { color:#aaa795; font:11px var(--f-mono); margin-left:auto; }
.aog-ne > svg { width:100%; max-height:290px; display:block; background:#141512; border:1px solid #464739; margin-bottom:16px; }
.aog-ne-code { fill:#eee7d7; font:11px var(--f-mono); paint-order:stroke; stroke:#141512; stroke-width:2px; }
.aog-search { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:center; }
.aog-search label { display:block; position:relative; }
.aog-search label span { position:absolute; left:16px; top:10px; font:10px var(--f-mono); color:#b8b09d; text-transform:uppercase; letter-spacing:.08em; }
.aog-search input { width:100%; min-width:0; height:72px; padding:28px 16px 8px; border:1px solid #565542; border-radius:2px; background:#242720; color:var(--band-ink); font:22px var(--f-mono); letter-spacing:.06em; text-transform:uppercase; }
.aog-search .btn { min-height:52px; }
.aog-presets { display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
.aog-presets button { min-height:44px; padding:8px 12px; border:1px solid #555442; border-radius:24px; background:transparent; color:#c2bbab; font:12px var(--f-mono); cursor:pointer; }
.aog-presets button:hover,.aog-presets button[aria-pressed="true"] { color:#f4e5bf; border-color:var(--gold); background:#373022; }
.aog-pulse .aog-map-note { margin-top:16px; color:#b1ac9f; font-size:12px; line-height:1.7; }
.aog-pulse-panel { min-width:0; padding:28px; background:#252820; border:1px solid #434639; }
.aog-pulse-route { display:flex; align-items:center; gap:14px; margin:20px 0; color:#b3ab98; font:12px var(--f-mono); }
.aog-pulse-route strong { font-weight:400; font-size:20px; color:#f0e7d2; }
.aog-pulse-panel h3 { font-size:clamp(1.8rem,2.7vw,2.7rem); line-height:1.08; overflow-wrap:anywhere; }
.aog-pulse-copy { color:#beb8aa; font-size:14px; line-height:1.8; margin:16px 0 24px; }
.aog-pulse-list { list-style:none; margin:0; padding:0; border-top:1px solid #45473a; }
.aog-pulse-list li { display:flex; gap:10px; padding:14px 0; border-bottom:1px solid #45473a; font-size:14px; line-height:1.65; }
.aog-pulse-list li::before { content:"—"; color:var(--gold); }
.pulse-tail { margin-top:24px; }
.pulse-tail label { display:block; font:11px/1.6 var(--f-mono); color:#d0c5b0; margin-bottom:9px; }
.pulse-tail label span { color:#aaa392; }
.pulse-tail input { width:100%; height:48px; padding:0 12px; border:1px solid #65604e; border-radius:2px; background:#1c2019; color:var(--band-ink); font:16px var(--f-mono); text-transform:uppercase; }
.pulse-actions { display:flex; flex-direction:column; gap:12px; margin-top:18px; }
.pulse-actions .btn { white-space:normal; text-align:center; min-height:50px; }
.pulse-foot { color:#b6ae9c; font-size:12px; margin-top:22px; line-height:1.7; }
.pulse-foot a { white-space:nowrap; text-underline-offset:3px; }
@keyframes dispatch-route { to { stroke-dashoffset:-34; } }
@keyframes dispatch-pulse { from { opacity:.7; transform:scale(1); } to { opacity:0; transform:scale(3); } }
@media (max-width:1000px) { .aog-pulse-grid { grid-template-columns:1fr; } .aog-pulse-head { gap:30px; } .aog-pulse-panel { max-width:none; } .pulse-actions { flex-direction:row; } .pulse-actions .btn { flex:1; } }
@media (max-width:650px) { .aog-pulse-head { grid-template-columns:1fr; } .aog-pulse-head h2 { font-size:2.75rem; } .aog-map-caption { font-size:9px; } .aog-map-caption > :last-child { display:none; } .aog-search { grid-template-columns:1fr; } .aog-pulse-panel { padding:22px; } .pulse-actions { flex-direction:column; } .aog-map .map-code { font-size:23px; } }
@media (prefers-reduced-motion:reduce) { .aog-pulse .map-route.active,.aog-pulse .base-ring,.aog-pulse .dest-ring.active { animation:none; } }
