/* Approved cinematic TBM artwork. All selectors are isolated from NAM and the dashboard. */
.tbm-cinema{position:fixed;inset:0;z-index:2147483000;width:100%;height:100%;height:100dvh;overflow:hidden;display:grid;place-items:center;background:#01050b;color:#e7f5ff;font-family:Inter,Arial,sans-serif;isolation:isolate;--tbm-reveal-ms:3450ms}
.tbm-cinema *{box-sizing:border-box}
.tbm-cinema-atmosphere{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 48%,#06347220,transparent 68%);pointer-events:none}
.tbm-cinema-content{position:relative;width:min(96vw,1660px,220vh);width:min(96vw,1660px,220svh);padding:0 0 34px;animation:tbm-cinema-arrive 800ms ease both}
.tbm-cinema-hero{position:relative;width:100%;aspect-ratio:1953/510;overflow:hidden;mix-blend-mode:screen;mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.tbm-cinema-art{mask-image:linear-gradient(180deg,transparent,#000 15%,#000 97%,transparent);-webkit-mask-image:linear-gradient(180deg,transparent,#000 15%,#000 97%,transparent);display:block;width:100%;height:auto;overflow:hidden;filter:brightness(.95);animation:tbm-cinema-illuminate var(--tbm-reveal-ms) ease both}
/* A restrained lift to the map artwork, without blurring its linework or the logo. */
.tbm-cinema-art>image{filter:brightness(1.08) saturate(1.14)}
.tbm-outline{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1}
.tbm-outline-halo{stroke:#087fff;stroke-width:9;filter:drop-shadow(0 0 5px #008cff) drop-shadow(0 0 12px #006aff)}
.tbm-outline-white{stroke:#f3fcff;stroke-width:1.6;filter:drop-shadow(0 0 2px #e5ffff)}
.tbm-letter-sweep{fill:none;stroke:#dcf8ff;stroke-width:55;filter:blur(16px);opacity:0;animation:tbm-cinema-sweep var(--tbm-reveal-ms) ease-in-out both;mix-blend-mode:screen}
.tbm-cinema-brand{display:flex;flex-direction:column;align-items:center;margin:-1px auto 0;width:43%;gap:15px}
.tbm-cinema-powered{display:flex;align-items:center;width:100%;gap:15px;color:#d3dfef;letter-spacing:.3em;font-size:clamp(8px,.8vw,12px)}
.tbm-cinema-powered i{height:1px;flex:1;background:linear-gradient(90deg,transparent,#a6dbff)}
.tbm-cinema-powered i:last-child{transform:rotate(180deg)}
.tbm-cinema-brand>img{display:block;width:72%;height:auto;object-fit:contain;filter:drop-shadow(0 0 14px #096aff55)}
.tbm-cinema-loading{width:72%;margin:34px auto 0}
.tbm-cinema-track{position:relative;height:10px;border:1px solid #b0ddff;border-radius:8px;background:#010711;box-shadow:0 0 12px #0076ff55;padding:1px}
.tbm-cinema-fill{height:100%;width:100%;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,#073aff,#078dff 52%,#43f5ff);border-radius:5px;box-shadow:0 0 16px #008cff;will-change:transform}
.tbm-cinema-fill>i{position:absolute;right:0;top:-3px;height:12px;width:2px;background:#fff;box-shadow:0 0 6px 2px #96f8ff,0 0 20px 5px #0088ff}
.tbm-cinema-stages{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:0 2px}
.tbm-cinema-stage{position:relative;padding:21px 12px 0 0;color:#6585aa;font-size:clamp(9px,.84vw,13px);letter-spacing:.1em;line-height:1.6;text-transform:uppercase}
.tbm-cinema-stage>i{position:absolute;left:0;top:0;height:11px;width:1px;background:#31547e}
.tbm-cinema-stage.is-active{color:#f5fcff;text-shadow:0 0 8px #9ee9ff,0 0 19px #078dff}
.tbm-cinema-stage.is-active>i{background:#efffff;box-shadow:0 0 8px 2px #008cff}
.tbm-cinema-stage.is-done{color:#65bdff}
.tbm-cinema-stage.is-done>i{background:#40b3ff}
.tbm-cinema-announcement{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.tbm-cinema-ready{background:#01050b;transition:background 550ms ease}
.tbm-cinema-ready .tbm-cinema-content,.tbm-cinema-ready .tbm-cinema-atmosphere{opacity:0;transition:opacity 550ms ease}
@keyframes tbm-cinema-arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes tbm-cinema-illuminate{0%{filter:brightness(.35)}25%{filter:brightness(.8)}70%,100%{filter:brightness(1.05)}}
@keyframes tbm-cinema-sweep{0%,18%{transform:translateX(200px);opacity:0}26%{opacity:.15}63%{opacity:.55}80%,100%{transform:translateX(1800px);opacity:0}}
@media(max-width:760px) and (orientation:portrait){.tbm-cinema-content{width:100%;padding-bottom:max(28px,env(safe-area-inset-bottom))}.tbm-cinema-hero{aspect-ratio:1320/510}.tbm-cinema-art{position:absolute;width:148%;max-width:none;left:-24%;top:0}.tbm-cinema-brand{width:76%;gap:18px;margin-top:20px}.tbm-cinema-brand>img{width:86%}.tbm-cinema-powered{font-size:9px}.tbm-cinema-loading{width:88%;margin-top:45px}.tbm-cinema-stage{font-size:9px;letter-spacing:.04em;padding:18px 9px 0 0}.tbm-cinema-track{height:8px}}
@media(max-height:500px) and (orientation:landscape){.tbm-cinema-content{width:min(88vw,190svh);padding:0}.tbm-cinema-brand{gap:7px}.tbm-cinema-loading{margin-top:16px}.tbm-cinema-stage{padding-top:12px;font-size:9px}.tbm-cinema-powered{font-size:8px}.tbm-cinema-track{height:6px}.tbm-cinema-fill>i{height:8px;top:-2px}}
.tbm-cinema-reduced .tbm-cinema-content,.tbm-cinema-reduced .tbm-cinema-art{animation:none;filter:none}
.tbm-cinema-reduced .tbm-letter-sweep{display:none}
.tbm-cinema-reduced .tbm-cinema-fill>i{box-shadow:none}
.tbm-cinema-reduced.tbm-cinema-ready,.tbm-cinema-reduced.tbm-cinema-ready .tbm-cinema-content,.tbm-cinema-reduced.tbm-cinema-ready .tbm-cinema-atmosphere{transition-duration:100ms}
@media(prefers-reduced-motion:reduce){.tbm-cinema *{animation:none!important}.tbm-cinema .tbm-letter-sweep{display:none}.tbm-cinema .tbm-outline{stroke-dashoffset:0}}
/* NAM shares the TBM stage; only its letter geometry and authenticated identity differ. */
.tbm-cinema-identity{margin:14px 0 -18px;text-align:center;font-size:clamp(10px,1vw,14px);letter-spacing:.06em;color:#a6cbea}
.nam-cinema-flares{animation:nam-cinema-flare var(--tbm-reveal-ms) ease both;pointer-events:none}
@keyframes nam-cinema-flare{0%,15%{opacity:0}35%{opacity:.55}70%{opacity:1}100%{opacity:.45}}
@media(max-height:500px) and (orientation:landscape){.tbm-cinema-identity{font-size:9px;margin:6px 0 -8px}}

/* Align the visible artwork (its SVG has uneven transparent side bearings). */
.tbm-cinema-brand>img{margin-inline:auto;transform:translateX(-6%);filter:none}
.tbm-cinema-powered{justify-content:center}
.tbm-cinema-powered span{padding-left:.3em;text-align:center;white-space:nowrap}
.tbm-cinema-powered i{min-width:0;flex:1 1 0}
