.global-pulse{--pulse-night:#061525;--pulse-navy:#0b2949;--pulse-gold:#e4b85d;--pulse-copper:var(--accent-text,#87401d);--pulse-paper:#fbf6ee;position:fixed;z-index:43;left:18px;bottom:18px;width:min(900px,calc(100vw - 190px));font-family:Arial,sans-serif;color:#fff}.pulse-dock{display:grid;grid-template-columns:auto minmax(170px,1fr) auto auto;align-items:center;gap:12px;width:min(610px,100%);min-height:60px;padding:9px 13px;border:1px solid rgba(228,184,93,.45);border-radius:18px;background:rgba(6,21,37,.96);color:#fff;box-shadow:0 18px 50px rgba(1,9,18,.34);backdrop-filter:blur(18px);cursor:pointer;text-align:left}.pulse-live-dot{width:11px;height:11px;border-radius:50%;background:var(--pulse-copper,#87401d);box-shadow:0 0 0 0 rgba(206,111,53,.65);animation:pulseSignal 2s infinite}.pulse-dock-copy,.pulse-dock-clock{display:grid;gap:3px}.pulse-dock small,.pulse-panel small{font:800 .58rem/1.3 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.09em;text-transform:uppercase;color:rgba(255,255,255,.58)}.pulse-dock-copy strong{font:700 .88rem/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--pulse-gold,#e4b85d)}.pulse-dock-clock{padding-left:14px;border-left:1px solid rgba(255,255,255,.16)}.pulse-dock-clock strong{font:700 .92rem/1.2 ui-monospace,SFMono-Regular,Consolas,monospace}.pulse-expand{display:grid;place-items:center;width:32px;height:32px;border:1px solid rgba(255,255,255,.18);border-radius:50%;font-size:1.1rem}.pulse-panel{position:absolute;left:0;bottom:72px;width:min(900px,calc(100vw - 36px));max-height:calc(100dvh - 110px);overflow:auto;border:1px solid rgba(255,255,255,.18);background:var(--pulse-night,#07172a);box-shadow:0 32px 90px rgba(0,6,13,.56);overscroll-behavior:contain}.pulse-panel[hidden]{display:none}.pulse-panel-head{position:sticky;z-index:2;top:0;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 24px;background:rgba(6,21,37,.97);border-bottom:1px solid rgba(255,255,255,.12);backdrop-filter:blur(15px)}.pulse-panel-head p{margin:0 0 5px;color:var(--pulse-copper,#87401d);font:800 .58rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.12em}.pulse-panel-head h2{margin:0;color:#fff;font:500 clamp(1.45rem,3vw,2.15rem)/1 Georgia,"Times New Roman",serif}.pulse-close{border:0;background:transparent;color:#fff;font-size:2rem;cursor:pointer}.pulse-now{display:grid;grid-template-columns:1.1fr .9fr;border-bottom:1px solid rgba(255,255,255,.12)}.pulse-countdown,.pulse-local{display:grid;gap:7px;padding:24px}.pulse-countdown{background:linear-gradient(135deg,#0d3156,#0a223b)}.pulse-countdown strong{font:600 clamp(2rem,6vw,4.5rem)/1 ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--pulse-gold,#e4b85d);letter-spacing:-.06em}.pulse-countdown span,.pulse-local span{color:rgba(255,255,255,.62);font-size:.8rem}.pulse-local{align-content:center;border-left:1px solid rgba(255,255,255,.12)}.pulse-local strong{font:500 1.3rem/1.1 Georgia,"Times New Roman",serif}.pulse-route{display:flex;gap:0;overflow-x:auto;padding:16px 18px;border-bottom:1px solid rgba(255,255,255,.12);scrollbar-width:thin}.pulse-route button{position:relative;flex:0 0 178px;display:grid;grid-template-columns:auto 1fr;gap:4px 9px;min-height:94px;padding:14px;border:0;border-right:1px solid rgba(255,255,255,.12);background:transparent;color:#fff;text-align:left;cursor:pointer}.pulse-route button span{grid-row:span 2;display:grid;place-items:center;width:31px;height:31px;border:1px solid rgba(228,184,93,.42);border-radius:50%;color:var(--pulse-gold,#e4b85d);font:800 .58rem/1 ui-monospace,SFMono-Regular,Consolas,monospace}.pulse-route button strong{font-size:.72rem;line-height:1.2}.pulse-route button small{grid-column:2;color:rgba(255,255,255,.62);font-size:.5rem}.pulse-route button:after{content:"";position:absolute;left:14px;right:14px;bottom:8px;height:2px;background:rgba(255,255,255,.1)}.pulse-route button.past:after{background:var(--pulse-copper,#87401d)}.pulse-route button.live{background:#10365d}.pulse-route button.live span{background:var(--pulse-gold,#e4b85d);color:var(--pulse-night,#07172a)}.pulse-explorer{display:grid;grid-template-columns:minmax(390px,1.2fr) minmax(250px,.8fr);min-height:410px;border-bottom:1px solid rgba(255,255,255,.12)}.pulse-orbit{position:relative;min-height:410px;overflow:hidden;background:radial-gradient(circle at 50% 50%,rgba(30,85,129,.8),rgba(6,21,37,0) 41%),linear-gradient(135deg,#071b30,#091a2d)}.pulse-orbit:before,.pulse-orbit:after{content:"";position:absolute;left:50%;top:50%;border:1px solid rgba(228,184,93,.2);border-radius:50%;transform:translate(-50%,-50%) rotate(-12deg)}.pulse-orbit:before{width:76%;height:44%}.pulse-orbit:after{width:56%;height:72%;transform:translate(-50%,-50%) rotate(54deg)}.pulse-globe-core{position:absolute;z-index:1;left:50%;top:50%;display:grid;place-items:center;width:126px;height:126px;border:1px solid rgba(228,184,93,.5);border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle at 35% 30%,#1c527f,#071a2d 70%);box-shadow:inset 0 0 32px rgba(0,0,0,.45),0 0 45px rgba(28,82,127,.35)}.pulse-globe-core strong{font:500 2.8rem/1 Georgia,"Times New Roman",serif;color:var(--pulse-gold,#e4b85d)}.pulse-globe-core span{text-align:center;font:800 .49rem/1.35 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.12em}.pulse-city-node{--angle:calc(var(--i)*40deg - 90deg);position:absolute;z-index:1;left:calc(50% + cos(var(--angle))*42%);top:calc(50% + sin(var(--angle))*42%);display:grid;gap:2px;min-width:82px;padding:7px 8px;border:1px solid rgba(255,255,255,.2);border-radius:9px;transform:translate(-50%,-50%);background:rgba(6,21,37,.9);color:#fff;cursor:pointer}.pulse-city-node strong{font-size:.63rem}.pulse-city-node span{font:700 .56rem/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--pulse-gold,#e4b85d)}.pulse-city-node.selected{border-color:var(--pulse-gold,#e4b85d);background:var(--pulse-copper,#87401d);box-shadow:0 0 0 4px rgba(228,184,93,.12)}.pulse-city-node.selected span{color:#fff}.pulse-spotlight{display:grid;align-content:center;padding:30px;background:#0b2544}.pulse-spotlight>small{color:var(--pulse-copper,#87401d)}.pulse-spotlight h3{margin:7px 0 4px;color:#fff;font:500 2.3rem/1 Georgia,"Times New Roman",serif}.pulse-spotlight>strong{font:600 2rem/1.1 ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--pulse-gold,#e4b85d)}.pulse-spotlight>span,.pulse-spotlight>p{color:rgba(255,255,255,.6)}.pulse-spotlight>p{margin:9px 0 25px}.pulse-event-times{display:grid;gap:7px;padding-top:18px;border-top:1px solid rgba(255,255,255,.16)}.pulse-event-times span{font:800 .55rem/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;color:rgba(255,255,255,.62);text-transform:uppercase}.pulse-event-times strong{font-size:.76rem}.participation-pulse{display:grid;grid-template-columns:.9fr 1.1fr;gap:24px;padding:28px 24px;background:var(--pulse-paper,#fffdf8);color:#111}.participation-pulse h3,.global-voices h3{margin:5px 0 8px;font:500 1.8rem/1 Georgia,"Times New Roman",serif}.participation-pulse p{margin:0;color:#66717b;font-size:.78rem}.participation-pulse small,.global-voices small{color:var(--pulse-copper,#87401d)}.pulse-metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.pulse-metrics p{display:grid;align-content:center;padding:13px 15px;background:#fff;border:1px solid #dfd3c2}.pulse-metrics strong{color:#0b2544;font:500 1.55rem/1 Georgia,"Times New Roman",serif}.pulse-metrics span{font:800 .55rem/1.3 ui-monospace,SFMono-Regular,Consolas,monospace;text-transform:uppercase}.pulse-metrics .pulse-wide{grid-column:1/-1}.pulse-metrics .pulse-wide small{margin-top:5px;color:#69737c}.pulse-metrics .pulse-awaiting strong{font:800 .7rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--pulse-copper,#87401d)}.global-voices{padding:28px 24px;background:#efe4d5;color:#111}.global-voices>header{display:flex;justify-content:space-between;gap:20px;align-items:end}.global-voices>header>span{font-size:.68rem;color:var(--muted,#5b656f)}.voice-rail{display:flex;gap:9px;overflow-x:auto;margin-top:18px;padding-bottom:8px;scroll-snap-type:x mandatory}.voice-rail blockquote{flex:0 0 min(330px,80vw);display:grid;align-content:space-between;min-height:180px;margin:0;padding:22px;background:#fff;border-left:3px solid var(--pulse-copper,#87401d);scroll-snap-align:start}.voice-rail blockquote p{margin:0;font:500 1.15rem/1.3 Georgia,"Times New Roman",serif}.voice-rail blockquote footer{display:grid;gap:3px;margin-top:18px}.voice-rail blockquote span{font-size:.72rem;color:#65717b}.pulse-footer{display:flex;justify-content:space-between;gap:20px;padding:14px 24px;background:#040f1c;color:rgba(255,255,255,.55);font-size:.67rem}.pulse-footer a{color:var(--pulse-gold,#e4b85d)}
@keyframes pulseSignal{70%{box-shadow:0 0 0 10px rgba(206,111,53,0)}100%{box-shadow:0 0 0 0 rgba(206,111,53,0)}}
@media(max-width:760px){.global-pulse{left:8px;right:8px;bottom:76px;width:auto}.pulse-dock{grid-template-columns:auto 1fr auto;width:100%;min-height:52px;padding:7px 10px;border-radius:15px}.pulse-dock-clock{display:none}.pulse-panel{left:0;bottom:62px;width:100%;max-height:calc(100dvh - 155px)}.pulse-panel-head{padding:16px}.pulse-panel-head h2{font-size:1.35rem}.pulse-now,.pulse-explorer,.participation-pulse{grid-template-columns:1fr}.pulse-countdown,.pulse-local{padding:18px}.pulse-local{border-left:0;border-top:1px solid rgba(255,255,255,.12)}.pulse-countdown strong{font-size:2.35rem}.pulse-explorer{min-height:0}.pulse-orbit{min-height:370px}.pulse-spotlight{padding:24px}.global-voices>header,.pulse-footer{align-items:flex-start;flex-direction:column}.pulse-footer{gap:7px}.pulse-route button{flex-basis:158px}.pulse-city-node{min-width:72px;padding:6px}.pulse-city-node strong{font-size:.56rem}.pulse-city-node span{font-size:.5rem}}
@media(max-width:430px){.pulse-orbit{min-height:330px}.pulse-globe-core{width:100px;height:100px}.pulse-city-node{left:calc(50% + cos(var(--angle))*40%);top:calc(50% + sin(var(--angle))*43%)}.participation-pulse,.global-voices{padding:23px 18px}}
@media(prefers-reduced-motion:reduce){.pulse-live-dot{animation:none}.global-pulse *{scroll-behavior:auto!important}}
@media print{.global-pulse{display:none!important}}
.pulse-city-node.city-pos-0{left:50%!important;top:8%!important}.pulse-city-node.city-pos-1{left:78%!important;top:16%!important}.pulse-city-node.city-pos-2{left:92%!important;top:38%!important}.pulse-city-node.city-pos-3{left:87%!important;top:65%!important}.pulse-city-node.city-pos-4{left:68%!important;top:84%!important}.pulse-city-node.city-pos-5{left:38%!important;top:87%!important}.pulse-city-node.city-pos-6{left:13%!important;top:70%!important}.pulse-city-node.city-pos-7{left:8%!important;top:42%!important}.pulse-city-node.city-pos-8{left:22%!important;top:18%!important}
.pulse-zone-label select{width:100%;min-height:42px;margin:3px 0 2px;padding:8px 34px 8px 10px;border:1px solid rgba(255,255,255,.2);border-radius:0;background:#0a2139;color:#fff;font:600 .8rem/1.2 Arial,sans-serif}.pulse-route button .pulse-user-window{color:var(--pulse-gold,#e4b85d)}.pulse-baton{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:18px 24px;border-bottom:1px solid rgba(255,255,255,.12);background:#0b2544}.pulse-baton>div{display:grid;gap:5px}.pulse-baton strong{font:500 clamp(1.15rem,2.4vw,1.65rem)/1.1 Georgia,"Times New Roman",serif}.pulse-baton nav{display:flex;gap:7px}.pulse-baton button{display:grid;place-items:center;width:33px;height:33px;border:1px solid rgba(255,255,255,.24);border-radius:50%;background:transparent;color:#fff;cursor:pointer}.pulse-baton button.selected{border-color:var(--pulse-gold,#e4b85d);background:var(--pulse-gold,#e4b85d);color:var(--pulse-night,#07172a)}.pulse-footer>div{display:flex;gap:18px}.pulse-footer a{white-space:nowrap}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@media(max-width:760px){.pulse-baton{align-items:flex-start;flex-direction:column}.pulse-footer>div{display:flex;flex-wrap:wrap;gap:12px}}

/* Compact, crisp floating clock across phone and tablet layouts. */
.pulse-dock,.pulse-panel-head{backdrop-filter:none}
.pulse-dock{background:#061525}
.pulse-dock small,.pulse-panel small{font-size:.62rem;line-height:1.35;letter-spacing:.075em}
.pulse-dock-copy strong{font-size:.96rem;letter-spacing:.01em}
.pulse-dock-clock strong{font-size:1rem;letter-spacing:.01em}
.pulse-mobile-label{display:none;font:800 .66rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.07em;text-transform:uppercase}

@media(max-width:1180px){
  .global-pulse{left:12px;right:auto;bottom:12px;width:min(248px,calc(100vw - 24px))}
  .pulse-dock{grid-template-columns:auto minmax(0,1fr) auto;gap:10px;width:100%;min-height:50px;padding:7px 9px;border-radius:999px;border-color:rgba(228,184,93,.52);box-shadow:0 10px 28px rgba(1,9,18,.3)}
  .pulse-live-dot{width:9px;height:9px}
  .pulse-dock-clock{display:none}
  .pulse-dock-copy{min-width:0;gap:1px}
  .pulse-dock-copy small,.pulse-dock-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .pulse-dock-copy small{font-size:.56rem;letter-spacing:.07em}
  .pulse-dock-copy strong{font-size:.8rem}
  .pulse-expand{width:32px;height:32px;flex:0 0 32px}
  .pulse-panel{position:fixed;left:12px;right:auto;bottom:12px;width:min(900px,calc(100vw - 24px));max-height:calc(100dvh - 24px);border-radius:20px;box-shadow:0 22px 70px rgba(0,6,13,.62)}
  .global-pulse.open .pulse-dock{visibility:hidden}
}

@media(max-width:760px){
  .global-pulse{left:10px;bottom:calc(76px + env(safe-area-inset-bottom));width:164px}
  .pulse-dock{grid-template-columns:auto 1fr auto;min-height:47px;padding:6px 8px}
  .pulse-dock-copy{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .pulse-mobile-label{display:block}
  .pulse-panel{left:8px;right:8px;top:8px;bottom:calc(74px + env(safe-area-inset-bottom));width:auto;max-height:none;border-radius:18px 18px 0 0}
  .pulse-panel-head{padding:15px 16px;background:#061525}
  .pulse-panel-head h2{font-size:1.35rem;line-height:1.08}
  .pulse-close{display:grid;place-items:center;min-width:44px;min-height:44px}
  .pulse-countdown strong{font-size:clamp(2rem,10vw,2.7rem);letter-spacing:-.035em}
  .pulse-orbit{min-height:340px}
}

@media(max-width:430px){
  .global-pulse{width:164px}
  .pulse-dock{min-height:47px;padding:6px 8px}
  .pulse-dock-copy small{font-size:.53rem}
  .pulse-dock-copy strong{font-size:.76rem}
  .pulse-panel-head h2{font-size:1.2rem}
  .pulse-orbit{min-height:320px}
}

@media(max-height:540px) and (max-width:1180px){
  .pulse-panel{inset:6px;max-height:none;border-radius:14px}
  .pulse-panel-head{padding:10px 14px}
  .pulse-panel-head h2{font-size:1.1rem}
  .pulse-now{grid-template-columns:1fr 1fr}
  .pulse-countdown,.pulse-local{padding:12px}
  .pulse-local{border-top:0;border-left:1px solid rgba(255,255,255,.12)}
  .pulse-countdown strong{font-size:1.8rem}
}
.pulse-route,.voice-rail{scrollbar-width:none}.pulse-route::-webkit-scrollbar,.voice-rail::-webkit-scrollbar{display:none}
@media(max-height:540px) and (max-width:760px){.global-pulse{bottom:calc(56px + env(safe-area-inset-bottom));width:min(210px,calc(100vw - 20px))}.pulse-dock{min-height:44px}}

/* The expanded Pulse is a reading surface: legibility outranks card density. */
.pulse-panel small{font-size:.76rem;line-height:1.45;letter-spacing:.05em}
.pulse-countdown span,.pulse-local span{font-size:.96rem;line-height:1.5;color:rgba(255,255,255,.74)}
.pulse-zone-label select{min-height:50px;padding:11px 42px 11px 13px;font-size:1rem;line-height:1.35}
.pulse-route{gap:9px;padding:18px;scroll-snap-type:x proximity}
.pulse-route button{flex-basis:260px;min-height:136px;padding:19px;border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.025);scroll-snap-align:start}
.pulse-route button:hover,.pulse-route button:focus-visible{border-color:var(--pulse-gold,#e4b85d);background:#10365d;outline:2px solid var(--pulse-gold,#e4b85d);outline-offset:2px}
.pulse-route button span{width:38px;height:38px;font-size:.72rem}
.pulse-route button strong{font-size:1rem;line-height:1.25}
.pulse-route button small{font-size:.8rem;line-height:1.45;letter-spacing:.025em;color:rgba(255,255,255,.68)}
.pulse-route button .pulse-user-window{font-size:.82rem;color:var(--pulse-gold,#e4b85d)}
.pulse-route button:after{left:18px;right:18px;bottom:11px;height:3px}
.pulse-baton>div>small{font-size:.72rem}.pulse-baton button{width:40px;height:40px;font-size:.9rem}
.pulse-event-times span{font-size:.7rem}.pulse-event-times strong{font-size:.9rem;line-height:1.4}
.pulse-metrics span{font-size:.68rem;line-height:1.4}.pulse-metrics .pulse-wide small{font-size:.72rem}
.global-voices>header>span,.voice-rail blockquote span{font-size:.8rem}
.pulse-footer{font-size:.78rem;line-height:1.45}

@media(max-width:760px){
  .pulse-panel small{font-size:.73rem}
  .pulse-route{padding:15px}
  .pulse-route button{flex-basis:min(260px,82vw);min-height:132px;padding:17px}
  .pulse-route button strong{font-size:1rem}
  .pulse-route button small{font-size:.78rem}.pulse-route button .pulse-user-window{font-size:.8rem}
}

/* Contrast: inside a dark panel the accent takes its lighter variant.
   A dark panel is a rule that sets both a dark background and light text;
   anything less is a card or a border, and its accent stays as it is. */
.pulse-dock,
.pulse-city-node,
.pulse-footer,
.pulse-zone-label select{--accent-text:var(--copper-on-dark,#d4834a)}

/* Contrast: the pulse strip, its dock and its panels are dark surfaces, so
   the accent inside them takes its lighter variant. */
/* The strip has light cards and dark panels in the same section, so the
   accent is set per surface rather than on the wrapper they share. */
.global-pulse{--pulse-copper:var(--copper,#87401d)}
.pulse-dock,.pulse-panel,.pulse-panel-head,.pulse-spotlight,.pulse-footer,.pulse-baton{--pulse-copper:var(--copper-on-dark,#d4834a);--accent-text:var(--copper-on-dark,#d4834a)}

/* The voices strip sits on cream, so both its accent tokens stay deep. */
/* The participation card and the voices strip are light surfaces inside the
   dark panel, so they read the deep accent. */
.participation-pulse,.participation-pulse *,.global-voices,.global-voices *{--pulse-copper:var(--copper,#87401d);--accent-text:var(--copper,#87401d)}
