/* Home load-in (uflblitz_ad3 style): white flash -> navy/red ray burst, header drops, logo pops, cards rise staggered, amber ticker slides up. transform/opacity only -> no layout shift. --lt freezes a frame for screenshots. */
.liflash{position:fixed;inset:0;z-index:90;pointer-events:none;background:repeating-conic-gradient(from 0deg at 50% 45%,rgba(216,40,58,.35) 0 6deg,rgba(11,16,48,0) 6deg 18deg),#0b1030;opacity:0;animation:liFlash .4s ease-out calc(0s - var(--lt,0s)) forwards}
@keyframes liFlash{0%{opacity:1;background-color:#fff}15%{opacity:.85;background-color:#0b1030}100%{opacity:0;background-color:#0b1030}}
.app.liin .top{animation:liDrop .28s steps(5,end) calc(.05s - var(--lt,0s)) backwards}
.app.liin .top .tlogo{animation:liPop .3s steps(4,end) calc(.18s - var(--lt,0s)) backwards}
.app.liin .nav{animation:liDrop .25s steps(4,end) calc(.14s - var(--lt,0s)) backwards}
.app.liin .nxw{animation:liDrop .25s steps(4,end) calc(.1s - var(--lt,0s)) backwards;pointer-events:none} /* merge fix: the sticky Next bar (repole-shirt) drops in with the nav and never blocks a nav tap mid-animation */
.app.liin .lic{animation:liRise .3s steps(5,end) backwards;animation-delay:calc(.22s + var(--i,0)*.06s - var(--lt,0s))}
.app.liin .ticker{animation:liUp .3s steps(5,end) calc(.5s - var(--lt,0s)) backwards}
.frz .liflash,.app.liin.frz *,.app.liin.frz{animation-play-state:paused!important}
@keyframes liDrop{from{transform:translateY(-110%);opacity:0}}
@keyframes liPop{0%{transform:scale(.2);opacity:0}70%{transform:scale(1.15)}}
@keyframes liRise{from{transform:translateY(24px);opacity:0}}
@keyframes liUp{from{transform:translateY(100%);opacity:0}}
@media (prefers-reduced-motion:reduce){.liflash{display:none}.app.liin *,.app.liin{animation:none!important}}
.mus{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.mus svg{width:20px;height:20px;image-rendering:pixelated}
.tmus{position:absolute;top:10px;right:10px;z-index:5}
/* owner meeting + mandate panel */
.parody{margin-left:auto;background:#ffcf3a;color:#1a1a24;font-size:.7em;padding:2px 6px;border-radius:3px;font-weight:700;letter-spacing:.04em}
.ochat{display:flex;flex-direction:column;gap:10px;padding:6px 4px}.oscene{display:flex;gap:12px;align-items:center;background:linear-gradient(#24365f,#162244);padding:10px;border-radius:6px}
.oav{width:96px;height:96px;object-fit:cover;object-position:center 12%;image-rendering:pixelated;border:3px solid #ffcf3a;border-radius:6px;background:#1a1a22}.oscene small{display:block;opacity:.8}
.olog{max-height:260px;overflow:auto;display:flex;flex-direction:column;gap:8px;cursor:pointer}.ob{max-width:82%;padding:8px 12px;border-radius:12px;line-height:1.35}
.ob.o{background:#f4f4f4;color:#1a1a24;align-self:flex-start;border-bottom-left-radius:2px}.ob.m{background:#2f6fd6;color:#fff;align-self:flex-end;border-bottom-right-radius:2px}
.ochs{display:flex;flex-wrap:wrap;gap:8px}
.ochs [data-testid=owner-mand-back]{flex:1 0 100%;min-height:44px;white-space:normal}.ogl{margin:4px 0;padding-left:4px;list-style:none}.ogl li{margin:3px 0}.ogl li.ok{color:#5fd35f}.ogl li.no{color:#ff7a6b}.onote{font-size:.75em}
.role{min-width:0;overflow-wrap:anywhere}.rolel{list-style:none;padding:0}.rolel li{margin:8px 0}.rolel b{display:inline-block;min-width:min(150px,100%)}
.tprev{display:flex;gap:12px;align-items:center;background:rgba(255,255,255,.05);padding:8px;border-radius:6px;margin:8px 0}.tprev img{width:56px}.tprev .tpo{font-size:1.6em;font-weight:700}
.tpick button small{display:block;opacity:.75;font-size:.75em}
.ochat .olog .ob.o{background:#f4f4f4!important;color:#1a1a24!important}.ochat .olog .ob.m{background:#2f6fd6!important;color:#fff!important}
.cgame .csr{display:flex;gap:10px;align-items:center}.ctips{margin:8px 0 6px 18px;line-height:1.5}.cplan{display:flex;gap:18px;flex-wrap:wrap;margin:8px 0}.cplan h4{margin:0 0 6px}.cplan .btn{margin:0 6px 6px 0}
.cmom canvas{width:100%;max-width:640px;image-rendering:pixelated;border:3px solid #111;display:block;margin:6px auto}.cbug{display:flex;justify-content:space-between;max-width:640px;margin:0 auto;background:#111;color:#fde047;padding:4px 10px;font-family:inherit}
.csit{font-size:1.05em;margin:8px 0}.copts{display:flex;gap:8px;flex-wrap:wrap}.copts .btn.right{outline:3px solid #22c55e}.cverd{margin-top:10px;padding:8px 12px;border-radius:6px}.cverd.ok{background:#14532d;color:#dcfce7}.cverd.neu{background:#3f3f1d;color:#fef9c3}.cverd.no{background:#7f1d1d;color:#fee2e2}
.creport .kv.ok b{color:#4ade80}.creport .kv.neu b{color:#fde047}.creport .kv.no b{color:#f87171}.creport .kv{gap:10px}

.oteam{display:flex;flex-direction:column;gap:4px;margin:8px 0;font-size:max(14px,.875rem)}.oteam select{font:inherit;font-size:16px;min-height:44px;padding:6px 8px;background:#10182e;color:#f4f4f4;border:3px solid #ffcf3a;border-radius:4px;max-width:100%}.oteam select:focus{outline:3px solid #7fd3ff;outline-offset:2px}

#modal:has(.ubpress)~.liflash,.liflash:has(+#modal .ubpress),body:has(#modal:not(.hidden) .ubpress) .liflash{display:none!important;opacity:0!important}


/* Never let load-in starburst sit over championship press */
body:has([data-testid=ubpress]) .liflash,
body:has(.ubpress) .liflash,
#modal:not(.hidden):has(.ubpress) ~ .liflash,
.liflash{pointer-events:none}
body:has([data-testid=ubpress]) .liflash{display:none!important;opacity:0!important;animation:none!important;visibility:hidden!important}

/* Settled hub/office: never leave a stalled starburst over the desk */
body:has(#scene.office-current):not(:has(.app.liin)) .liflash{display:none!important;opacity:0!important;animation:none!important;visibility:hidden!important}
.liflash[data-done],.liflash.is-done{display:none!important}

/* Decision / promise / inbox / press pop-ups: never draw load-in starburst over them */
body:has(#modal:not(.hidden) .dec-popup) .liflash,
body:has(#modal:not(.hidden) .promise-ask) .liflash,
body:has(#modal:not(.hidden) .concept-ask) .liflash,
body:has(#modal:not(.hidden) .event-ask) .liflash,
body:has(#modal:not(.hidden) .press-ask) .liflash,
body:has(#modal:not(.hidden) .ubpress) .liflash,
#modal:not(.hidden):has(.dec-popup) ~ .liflash{
  display:none!important;opacity:0!important;animation:none!important;visibility:hidden!important
}
