@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/Roboto-Regular.woff2') format('woff2')}
@font-face{font-family:Roboto;font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/Roboto-SemiBold.woff2') format('woff2')}
@font-face{font-family:Roboto;font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/Roboto-Bold.woff2') format('woff2')}

:root{
  --ink:#292929; --muted:#6b7280; --line:#e7ebf2; --card:#fff;
  --tg:#229ed9; --max:#ff6a00; --wa:#25d366; --green:#25d366; --accent:#ff6a00;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:transparent}
body{font-family:Roboto,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  color:var(--ink);line-height:1.4;padding:12px;-webkit-font-smoothing:antialiased}
.wrap{max-width:640px;margin:0 auto}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;
  box-shadow:0 6px 24px rgba(20,33,62,.07)}
.head{background:linear-gradient(135deg,#ff8a3d 0%,#ff5a1f 100%);color:#fff;padding:15px 18px}
.head h1{font-size:17px;font-weight:700;letter-spacing:-.2px}
.head p{font-size:12.5px;color:#ffe7d6;margin-top:3px}

.scene{padding:6px 6px 0}
#svg{width:100%;height:auto;display:block}

/* links between pool and core */
.link{stroke:#d7deea;stroke-width:2;opacity:0;transition:opacity .5s, stroke .5s}
.link.on{opacity:.9;stroke-dasharray:5 6;animation:flow 1s linear infinite}
@keyframes flow{to{stroke-dashoffset:-22}}

/* pool nodes */
.pnode circle{stroke:#fff;stroke-width:2}
.pnode text{font-size:15px}
.pnode{opacity:.35;transition:opacity .5s}
.pnode.on{opacity:1}

/* traveling message dots */
.msg{fill:var(--accent)}

#core-circle{transition:fill .6s, stroke .6s}

.panel{padding:12px 18px 16px}
.panel-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.day{font-size:14px;font-weight:700}
.day .of{font-weight:500;color:var(--muted);font-size:12.5px}
.badge{font-size:12px;font-weight:600;color:#d2570a;background:#fff1e8;padding:4px 11px;border-radius:999px;transition:.3s}
.badge.ready{color:#0f7a37;background:#e7f8ee}
.meter{height:9px;background:#eef1f5;border-radius:999px;overflow:hidden}
.meter-fill{height:100%;width:6%;border-radius:999px;
  background:linear-gradient(90deg,#ffd24d 0%,#ff8a3d 50%,#25d366 100%);transition:width .6s ease}
.meter-cap{display:flex;justify-content:space-between;font-size:11.5px;color:var(--muted);margin-top:5px}
#actLabel{font-weight:600;color:var(--ink)}
.legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:12px;font-size:11.5px;color:var(--muted)}
.legend span{display:inline-flex;align-items:center;gap:6px}
.lg{width:12px;height:12px;border-radius:50%;display:inline-block;flex:0 0 auto}
.lg-you{background:#cdd3e0}
.lg-pool{background:linear-gradient(135deg,#229ed9,#25d366)}
.lg-msg{background:var(--accent)}

@media(max-width:480px){
  .head h1{font-size:15.5px}
  .legend{gap:10px}
}
