:root{--bg:#fbfbfc;--panel:#ffffff;--fg:#0b0c0e;--sec:#5f636b;--line:#dfe1e5;--ghost:#c4c7cc;--signal:#1f6feb;--row-sel:#f2f3f5;--grid:rgba(11,12,14,0.035);--display:"Barlow Semi Condensed","Arial Narrow",system-ui,sans-serif;--mono:"JetBrains Mono",ui-monospace,Menlo,monospace;--ease:cubic-bezier(0.2,0.8,0.2,1);color-scheme:light}*{box-sizing:border-box}body,html{margin:0}body{min-height:100vh;background-color:var(--bg);background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:48px 48px;background-position:-1px -1px;color:var(--fg);font-family:var(--display);-webkit-font-smoothing:antialiased}button,input{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--signal);outline-offset:3px}.label,.mono{font-family:var(--mono)}.label{font-size:11px;letter-spacing:.2em;color:var(--sec);text-transform:uppercase}@keyframes mc-rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes mc-draw{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes mc-ping{0%{transform:scale(.6);opacity:.8}80%,to{transform:scale(1.9);opacity:0}}@keyframes mc-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes mc-blink{50%{opacity:.2}}.rise{animation:mc-rise .7s var(--ease) both}.draw{transform-origin:left center;animation:mc-draw 1.2s cubic-bezier(.65,0,.35,1) .1s both}.ping{animation:mc-ping 2.4s var(--ease) infinite}.slide-in{animation:mc-in .55s var(--ease) both}.blink{animation:mc-blink 1.4s ease-in-out infinite}@media (prefers-reduced-motion:reduce){.blink,.draw,.ping,.rise,.slide-in{animation:none}*{transition:none!important}}.shell{padding:28px max(20px,env(safe-area-inset-right)) 48px max(20px,env(safe-area-inset-left));display:flex;justify-content:center}.wrap{width:100%;max-width:1280px;display:flex;flex-direction:column;gap:22px}.header{display:flex;flex-wrap:wrap;gap:18px 40px;align-items:flex-end;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:18px}.title{margin:4px 0 0;font-size:34px;font-weight:500;letter-spacing:.18em;text-transform:uppercase}.telemetry{display:flex;flex-wrap:wrap;gap:28px;align-items:flex-end}.readout{display:flex;flex-direction:column;gap:2px}.readout .label{font-size:10px}.readout b{font-size:20px;font-weight:500;letter-spacing:.08em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;display:flex;align-items:center;gap:8px}.dot{width:8px;height:8px;border-radius:50%;background:var(--signal)}.proj{display:flex;gap:8px;align-items:center}.proj select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--panel);padding:6px 28px 6px 10px;font-size:18px;font-weight:500;letter-spacing:.06em;background-image:linear-gradient(45deg,transparent 50%,var(--sec) 50%),linear-gradient(135deg,var(--sec) 50%,transparent 50%);background-position:calc(100% - 15px) 52%,calc(100% - 10px) 52%;background-size:5px 5px;background-repeat:no-repeat}.ghost-btn,.proj select{border:1px solid var(--line)}.ghost-btn{background:var(--panel);padding:6px 10px;font-family:var(--mono);font-size:11px;letter-spacing:.16em;min-height:36px}.ghost-btn:hover{border-color:var(--fg)}.proj input{border:1px solid var(--fg);background:var(--panel);padding:6px 10px;font-size:16px;width:190px}.timeline{overflow-x:auto;padding:8px 0 4px}.timeline-in{position:relative;min-width:940px;padding:0 2px}.rail{top:49px;height:2px;background:var(--line)}.rail,.ticks{position:absolute;left:5.555%;right:5.555%}.ticks{top:56px;height:5px;background-image:repeating-linear-gradient(90deg,var(--line) 0 1px,transparent 1px 1.25%)}.fill{position:absolute;left:5.555%;top:49px;height:2px;background:var(--fg);transition:width 1.1s var(--ease)}.stops{position:relative;display:grid;grid-template-columns:repeat(9,minmax(0,1fr))}.stop{border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:12px;padding:0 4px 6px}.stop .t{font-family:var(--mono);font-size:11px;letter-spacing:.16em;color:var(--sec)}.stop.sel .t{color:var(--signal)}.marker-box{position:relative;width:28px;height:28px}.marker,.marker-box{display:flex;align-items:center;justify-content:center}.marker{border-radius:50%;font-size:11px;font-weight:700;width:14px;height:14px;background:var(--bg);border:2px solid var(--ghost);box-shadow:0 0 0 5px var(--bg);transition:transform .3s var(--ease)}.stop:hover .marker{transform:scale(1.15)}.stop.part .marker{width:16px;height:16px;border-color:var(--fg);box-shadow:0 0 0 5px var(--bg),inset 0 0 0 3px var(--bg),inset 0 0 0 8px var(--fg)}.stop.done .marker{width:18px;height:18px}.stop.done .marker,.stop.sel .marker{border:0;background:var(--fg);color:var(--bg)}.stop.sel .marker{width:22px;height:22px}.ring{position:absolute;inset:0;border-radius:50%;border:1.5px solid var(--fg)}.stop .nm{font-size:15px;letter-spacing:.14em;text-transform:uppercase;text-align:center;line-height:1.15;min-height:2.3em}.stop.sel .nm{font-weight:600}.stop .cnt{font-family:var(--mono);font-size:11px;color:var(--sec);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.zones{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));grid-gap:6px;gap:6px;margin-top:10px}.zone{border-top:1px solid var(--line);padding-top:8px;text-align:center;font-family:var(--mono);font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--sec)}.console{display:flex;flex-wrap:wrap;gap:22px;align-items:flex-start}.panel{border:1px solid var(--line);background:var(--panel)}.event{flex:999 1 560px;min-width:0;padding:30px 32px;display:flex;flex-direction:column;gap:26px}.event-head{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:flex-start}.stage-name{margin:6px 0 0;font-size:54px;font-weight:300;letter-spacing:.1em;text-transform:uppercase;line-height:1}.when{margin:10px 0 0;font-size:15px;letter-spacing:.02em;color:var(--sec);max-width:46ch}.count{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.count b{font-size:54px;font-weight:300;letter-spacing:.04em;line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.count b span{color:var(--sec)}.bar{height:2px;background:var(--line);position:relative}.bar i{position:absolute;left:0;top:0;height:2px;background:var(--fg);transition:width 1.1s var(--ease)}.next{display:flex;flex-direction:column;gap:10px}.next .lbl{font-family:var(--mono);font-size:11px;letter-spacing:.22em;color:var(--signal);display:flex;align-items:center;gap:8px}.next .lbl:before{content:"";width:7px;height:7px;background:var(--signal);animation:mc-blink 1.4s ease-in-out infinite}.next .what{font-size:40px;font-weight:500;letter-spacing:.06em;line-height:1.05}.next .to,.next .what{text-transform:uppercase}.next .to{display:flex;align-items:center;gap:12px;font-size:22px;letter-spacing:.08em;flex-wrap:wrap}.next .how{margin:4px 0 0;font-size:15px;line-height:1.5;color:var(--sec);max-width:60ch}.pending{font-family:var(--mono);font-size:10px;letter-spacing:.16em;border:1px dashed var(--sec);color:var(--sec);padding:2px 6px}.actions{display:flex;flex-wrap:wrap;gap:12px}.btn{border:2px solid var(--fg);padding:15px 34px;font-size:15px;font-weight:600;letter-spacing:.24em;min-height:48px;transition:transform .12s var(--ease),background .2s,color .2s}.btn:hover{transform:translateY(-1px)}.btn:active{transform:scale(.97)}.btn.primary{background:var(--fg);color:var(--bg);padding-inline:44px}.btn.outline{background:transparent;color:var(--fg)}.btn:disabled{opacity:.4;cursor:default;transform:none}.complete{display:flex;flex-direction:column;gap:16px;align-items:flex-start}.complete .lbl{font-family:var(--mono);font-size:11px;letter-spacing:.22em;color:var(--signal)}.complete .big{font-size:40px;font-weight:300;letter-spacing:.1em;text-transform:uppercase}.sequence{flex:1 1 360px;min-width:0;padding:22px 10px 12px}.seq-head{display:flex;justify-content:space-between;align-items:center;padding:0 16px 12px}.text-btn{border:0;background:none;color:var(--sec);font-family:var(--mono);font-size:11px;letter-spacing:.2em;padding:6px 0}.text-btn:hover{color:var(--fg)}.rows{list-style:none;margin:0;padding:0}.row{width:100%;display:grid;grid-template-columns:26px 26px minmax(0,1fr) auto;grid-gap:12px;gap:12px;align-items:center;padding:12px 16px;border:0;background:transparent;text-align:left;min-height:48px;transition:background .25s}.row.cur,.row:hover{background:var(--row-sel)}.row.cur{box-shadow:inset 2px 0 0 var(--signal)}.row .n{font-family:var(--mono);font-size:11px;color:var(--sec);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pip{width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;border:1.5px solid var(--ghost)}.row.cur .pip{border-color:var(--signal)}.row.done .pip{background:var(--fg);color:var(--bg)}.row.done .pip,.row.skip .pip{border-color:var(--fg)}.row .nm{font-size:16px;font-weight:500;letter-spacing:.08em;text-transform:uppercase}.row .v,.row.done .nm,.row.skip .nm{color:var(--sec)}.row .v{font-size:13px;letter-spacing:.06em;text-transform:uppercase;text-align:right}.row.done .v{color:var(--fg)}.footer{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--sec);display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;border-top:1px solid var(--line);padding-top:14px}.notice{border:1px solid var(--fg);background:var(--panel);padding:14px 18px;font-size:15px;letter-spacing:.02em}.notice b{font-family:var(--mono);font-size:11px;letter-spacing:.2em;display:block;margin-bottom:4px}.login{min-height:100vh;display:grid;place-items:center;padding:24px}.login form{width:100%;max-width:380px;display:flex;flex-direction:column;gap:18px}.login h1{margin:0;font-size:30px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;line-height:1.1}.login input{border:1px solid var(--line);background:var(--panel);padding:14px 16px;font-size:18px;letter-spacing:.06em}.login input:focus{border-color:var(--fg);outline:none}.login .err{color:#b42318;font-size:14px;letter-spacing:.02em;min-height:1.2em}@media (max-width:640px){.count b,.stage-name{font-size:40px}.next .what{font-size:30px}.event{padding:22px 20px}.actions .btn{flex:1 1}}