/* Generated by scripts/build-css-variants.py — do not edit. Source: src/styles/player.css */
  html, body { margin: 0; padding: 0; height: 100%; background: #000; overflow: hidden; }
  :root {
    --dock-panel-height: 0px;
    --dock-height: 54px;
    --dock-radius: 12px;
    --dock-seg-radius: 10px;
    --dock-gap: 10px;
    --dock-tile: 44px;
    --dock-tile-lg: 54px;
    --dock-icon: 22px;
    --dock-icon-sm: 20px;
    --dock-app-img: 28px;
    --dock-r-group: 14px;
    --dock-r-tile: 10px;
    --dock-r-app: 8px;
    --app-sheet-cell: 72px;
    --app-sheet-icon: 52px;
    --app-sheet-icon-radius: 14px;
    --dock-border: rgba(255,255,255,.10);
    --dock-border-group: rgba(255,255,255,.08);
    --dock-border-tile: rgba(255,255,255,.10);
    --dock-border-tile-on: rgba(255,255,255,.22);
    --dock-text: rgba(255,255,255,.55);
    --dock-text-active: #fff;
    --dock-bg-group: rgba(255,255,255,.04);
    --dock-bg-tile: rgba(255,255,255,.06);
    --dock-bg-tile-on: rgba(255,255,255,.16);
    --dock-fill: var(--dock-bg-group);
    --dock-fill-active: var(--dock-bg-tile-on);
    --dock-action-fill: var(--dock-bg-tile);
    --dock-press-opacity: .85;
    --dock-transition: 160ms cubic-bezier(.22,.61,.36,1);
  }
  body {
    font-family: -apple-system, "PingFang SC", sans-serif;
    -webkit-tap-highlight-color: transparent;
    color: #fff;
  }
  #stage {
    position: absolute; top: 0; left: 0; right: 0;
    bottom: var(--dock-panel-height, 0px);
    display: flex;
    justify-content: center; align-items: center;
    background: #050506;
    transition: bottom .28s ease, filter .35s;
    overflow: hidden;
  }
  body.dock-layout-settling #stage {
    transition: filter .35s;
  }
  
  body.reconnecting #stage { filter: brightness(.7); }
  #stage.align-edge.content-portrait { justify-content: flex-start; align-items: center; }
  #stage.align-edge.content-landscape { justify-content: center; align-items: flex-start; }
  body.mirror-cast #stage,
  body.mirror-cast #stage.align-edge.content-portrait,
  body.mirror-cast #stage.align-edge.content-landscape {
    justify-content: center;
    align-items: center;
  }
  #stage.align-center { justify-content: center; align-items: center; }
  /* A：氛围镜面 */
  #ambient {
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    z-index: 0; pointer-events: none;
    transition: opacity .35s;
  }
  #ambientDim {
    position: absolute; inset: 0; z-index: 1;
    background: rgba(0,0,0,.48);
    pointer-events: none;
    transition: opacity .35s;
  }
  body.fill-fit #ambient, body.fill-fit #ambientDim,
  body.fill-fill #ambient, body.fill-fill #ambientDim { opacity: 0; }
  body.fill-ambient #ambient, body.fill-ambient #ambientDim { opacity: 1; }
  body.car-perf #ambient,
  body.car-perf #ambientDim,
  body.car-perf #brandField { opacity: 0 !important; }
  body.car-perf #c,
  body.car-perf #c2 {
    image-rendering: auto;
  }
  /* E：品牌场域（网格 + live 呼吸光；字标挂 LIVE 行） */
  #brandField {
    position: absolute; inset: 0; z-index: 2;
    pointer-events: none; overflow: hidden;
    transition: opacity .35s;
  }
  body.fill-fill #brandField { opacity: 0; }
  #brandGrid {
    position: absolute; inset: -20%;
    opacity: 0.045;
    background-image:
      repeating-linear-gradient(
        -28deg,
        transparent 0,
        transparent 47px,
        rgba(255,255,255,.55) 47px,
        rgba(255,255,255,.55) 48px
      ),
      repeating-linear-gradient(
        28deg,
        transparent 0,
        transparent 47px,
        rgba(255,255,255,.28) 47px,
        rgba(255,255,255,.28) 48px
      );
  }
  #brandGlow {
    position: absolute; inset: 0;
    box-shadow: inset 0 0 0 1px rgba(240,180,41,0);
    transition: box-shadow .6s;
  }
  body.live #brandGlow {
    animation: brandBreath 3.6s ease-in-out infinite;
  }
  @keyframes brandBreath {
    0%, 100% { box-shadow: inset 0 0 48px 0 rgba(240,180,41,.0), inset 0 0 0 1px rgba(240,180,41,.0); }
    50% { box-shadow: inset 0 0 72px 0 rgba(240,180,41,.07), inset 0 0 0 1px rgba(240,180,41,.12); }
  }
  #paneRow {
    position: relative; z-index: 3;
    display: flex; flex-direction: row;
    align-items: center; justify-content: center;
    max-width: 100%; max-height: 100%;
  }
  

  /* α 仪表上电：金线展开 → TPlayer 亮起 → 收束到 LIVE 铭牌 */
  #boot {
    position: fixed; inset: 0; z-index: 30;
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    background: #050506;
    pointer-events: auto;
    transition: opacity .4s ease, background-color .45s ease, visibility .4s;
    padding-top: 4vh;
  }
  #boot.hide {
    opacity: 0; visibility: hidden; pointer-events: none;
  }
  body.boot-settle #boot {
    pointer-events: none;
    background-color: transparent;
  }
  #bootStage {
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
  }
  #bootLine {
    width: 0;
    height: 2px;
    max-width: min(420px, 55vw);
    background: rgba(255,255,255,.08);
    border-radius: 2px;
    position: relative;
    overflow: hidden;
    transition: width .55s cubic-bezier(.22,.61,.36,1);
  }
  body.boot-power #bootLine { width: min(420px, 55vw); }
  #bootLineCore {
    position: absolute; left: 50%; top: 0;
    width: 42%; height: 100%;
    transform: translateX(-50%);
    background: linear-gradient(90deg, transparent, #f0b429, transparent);
    box-shadow: 0 0 14px rgba(240,180,41,.5);
  }
  #bootTitle {
    margin-top: 26px;
    font: 600 clamp(36px, 8vw, 64px)/1 -apple-system, "PingFang SC", sans-serif;
    letter-spacing: 0.16em;
    color: rgba(255,255,255,0);
    filter: blur(10px);
    transform: scale(1.1);
    opacity: 1;
    transition:
      color .55s ease,
      filter .55s ease,
      transform .55s cubic-bezier(.22,.61,.36,1),
      text-shadow .55s ease,
      opacity .45s ease;
    user-select: none;
  }
  body.boot-power #bootTitle {
    color: rgba(255,255,255,.94);
    filter: blur(0);
    transform: scale(1);
    text-shadow: 0 0 28px rgba(240,180,41,.28);
  }
  body.boot-settle #bootTitle {
    opacity: 0;
    filter: blur(2px);
    transform: scale(0.28) translate(38vw, 34vh);
  }
  body.boot-settle.driver-right #bootTitle,
  body.boot-reconnect.boot-settle.driver-right #bootTitle {
    transform: scale(0.28) translate(-38vw, 34vh);
  }
  #bootLabel {
    margin-top: 18px;
    font: 500 15px/1.2 -apple-system, "PingFang SC", sans-serif;
    color: rgba(255,255,255,0);
    letter-spacing: 0.04em;
    transition: color .45s ease .15s, opacity .35s ease;
  }
  body.boot-power #bootLabel { color: rgba(255,255,255,.5); }
  body.boot-settle #bootLabel { opacity: 0; }
  /* 重连 A+P0：藏画 + 金线/小字标 + 自检清单 */
  body.boot-reconnect #boot {
    background: rgba(5,5,6,.94);
    pointer-events: none;
  }
  body.boot-reconnect #dockFab,
  body.boot-reconnect #dockPanel,
  body.boot-reconnect #dockTopBar,
  body.boot-reconnect #dockFabPreview {
    opacity: 0 !important;
    pointer-events: none !important;
    visibility: hidden !important;
    transform: none !important;
  }
  body.boot-reconnect #stage,
  body.boot-reconnect #ambient,
  body.boot-reconnect #ambientDim,
  body.boot-reconnect #brandField,
  body.boot-reconnect #c,
  body.boot-reconnect #c2,
  body.boot-reconnect #paneRow,
  body.boot-reconnect #v {
    opacity: 0 !important;
    visibility: hidden;
  }
  body.boot-reconnect #bootLine {
    width: min(360px, 48vw);
  }
  body.boot-reconnect #bootLineCore {
    left: 0;
    width: 36%;
    transform: none;
    animation: reconnectSweep 1.5s ease-in-out infinite;
  }
  body.boot-reconnect #bootTitle {
    margin-top: 18px;
    font-size: clamp(22px, 4.5vw, 36px);
    color: rgba(255,255,255,.9);
    filter: none;
    transform: scale(1);
    text-shadow: 0 0 24px rgba(240,180,41,.32);
  }
  body.boot-reconnect #bootHead {
    display: block;
    margin-top: 14px;
    text-align: center;
  }
  body.boot-reconnect #bootHeadTitle {
    font: 600 18px/1.3 -apple-system, "PingFang SC", sans-serif;
    color: rgba(255,255,255,.92);
    letter-spacing: 0.02em;
  }
  body.boot-reconnect #bootLabel {
    margin-top: 8px;
    color: rgba(255,255,255,.55);
  }
  #bootHead { display: none; }
  #bootCheck {
    display: none;
    margin-top: 28px;
    width: min(420px, 86vw);
    text-align: left;
  }
  body.boot-reconnect #bootCheck { display: block; }
  body.boot-settle #bootCheck { opacity: 0; transition: opacity .35s ease; }
  .bootCheckItem {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 14px;
    margin-bottom: 8px;
    border-radius: 12px;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.08);
  }
  .bootCheckDot {
    width: 8px; height: 8px; margin-top: 6px;
    border-radius: 50%;
    background: #f0b429;
    flex-shrink: 0;
    animation: pulseAmber 1.6s ease-in-out infinite;
  }
  .bootCheckText { min-width: 0; }
  .bootCheckText strong {
    display: block;
    font: 600 15px/1.3 -apple-system, "PingFang SC", sans-serif;
    color: rgba(255,255,255,.9);
  }
  .bootCheckText span {
    display: block;
    margin-top: 4px;
    font: 500 13px/1.4 -apple-system, "PingFang SC", sans-serif;
    color: rgba(255,255,255,.48);
  }
  #bootCheckHint {
    margin: 14px 4px 0;
    font: 500 12px/1.4 -apple-system, "PingFang SC", sans-serif;
    color: rgba(255,255,255,.35);
    text-align: center;
  }
  /* SPA route: mirror 模式隐藏应用投屏专属控件（session 就绪前） */
  body.route-mirror #appQuickSwitch,
  body.route-mirror #appSwitchBtn,
  body.route-mirror #orientPrimary,
  body.route-mirror #orientSecondary,
  body.route-mirror #dualPaneSwapBtn,
  body.route-mirror #appLayoutBtn,
  body.route-mirror #appDrawer,
  body.route-mirror #appDrawerBackdrop,
  body.route-mirror #closeSplitBackdrop,
  body.route-mirror #closeSplitSheet,
  body.route-mirror #secPane { display: none !important; }
  /* 车机互联：无 VPN，隐藏应用投屏控件 */
  body.carlife-active #bootCheck .bootCheckItem:nth-child(3) { display: none; }
  body.carlife-active #appDrawer,
  body.carlife-active #appDrawerBackdrop,
  body.carlife-active #appSwitchBtn,
  body.carlife-active #appQuickSwitch,
  body.carlife-active #orientPrimary,
  body.carlife-active #orientSecondary { display: none !important; }
  body.carlife-active #dockFab,
  body.carlife-active #dockPanel,
  body.carlife-active #dockTopBar { display: none !important; }
  body.carlife-active.app-cast-touch #v { pointer-events: auto; }
  body.boot-reconnect.boot-settle #boot {
    background-color: transparent;
  }
  body.boot-reconnect.boot-settle #bootTitle {
    opacity: 0;
    filter: blur(2px);
    transform: scale(0.28) translate(38vw, 34vh);
  }
  /* 手机未投屏：统一等待态（对齐镜像投屏） */
  body.boot-idle-wait #boot {
    background: #050506;
    pointer-events: none;
  }
  body.boot-idle-wait #boot::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
      radial-gradient(ellipse 72% 48% at 50% 38%, rgba(240,180,41,.07) 0%, transparent 68%),
      radial-gradient(ellipse 90% 60% at 50% 50%, rgba(255,255,255,.02) 0%, transparent 72%);
    pointer-events: none;
  }
  body.boot-idle-wait #bootStage {
    position: relative;
    z-index: 1;
    width: min(560px, 92vw);
    padding: 0 16px;
    box-sizing: border-box;
  }
  body.boot-idle-wait #dockFab,
  body.boot-idle-wait #dockPanel,
  body.boot-idle-wait #dockTopBar,
  body.boot-idle-wait #dockFabPreview {
    opacity: 0 !important;
    pointer-events: none !important;
    visibility: hidden !important;
    transform: none !important;
  }
  body.boot-idle-wait #stage,
  body.boot-idle-wait #ambient,
  body.boot-idle-wait #ambientDim,
  body.boot-idle-wait #brandField,
  body.boot-idle-wait #c,
  body.boot-idle-wait #c2,
  body.boot-idle-wait #paneRow,
  body.boot-idle-wait #v {
    opacity: 0 !important;
    visibility: hidden;
  }
  body.boot-idle-wait #bootLine {
    width: min(480px, 64vw);
    height: 1px;
    opacity: .9;
  }
  body.boot-idle-wait #bootLineCore {
    left: 0;
    width: 28%;
    transform: none;
    animation: idleWaitSweep 2.8s ease-in-out infinite;
    box-shadow: 0 0 20px rgba(240,180,41,.55);
  }
  body.boot-idle-wait #bootTitle {
    margin-top: clamp(28px, 5vh, 44px);
    font: 600 clamp(40px, 9.5vw, 72px)/1 -apple-system, "PingFang SC", sans-serif;
    letter-spacing: 0.22em;
    text-indent: 0.22em;
    color: rgba(255,255,255,.96);
    filter: none;
    transform: scale(1);
    opacity: 1;
    text-shadow:
      0 0 48px rgba(240,180,41,.24),
      0 0 1px rgba(255,255,255,.15);
  }
  #bootIdleCopy {
    display: contents;
  }
  body.boot-idle-wait #bootIdleCopy {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    margin-top: clamp(36px, 6vh, 56px);
  }
  body.boot-idle-wait #bootLabel {
    margin-top: 0;
    font: 500 clamp(19px, 3.1vw, 26px)/1.55 -apple-system, "PingFang SC", sans-serif;
    color: rgba(255,255,255,.82);
    opacity: 1;
    letter-spacing: 0.1em;
    text-align: center;
    max-width: 100%;
    text-wrap: balance;
  }
  #bootSubLabel {
    display: none;
    margin-top: 10px;
    font: 500 14px/1.4 -apple-system, "PingFang SC", sans-serif;
    color: rgba(255,255,255,.48);
    letter-spacing: 0.02em;
    text-align: center;
    max-width: min(380px, 82vw);
    transition: opacity .35s ease;
  }
  body.boot-idle-wait #bootSubLabel {
    display: block;
    margin-top: clamp(22px, 3.5vh, 32px);
    padding-top: 0;
    font: 400 clamp(13px, 1.9vw, 16px)/1.65 -apple-system, "PingFang SC", sans-serif;
    color: rgba(255,255,255,.36);
    letter-spacing: 0.06em;
    max-width: 100%;
    position: relative;
    text-wrap: balance;
    transition: color .35s ease, opacity .35s ease;
  }
  body.boot-idle-wait #bootHead,
  body.boot-idle-wait #bootCheck { display: none !important; }
  @keyframes idleWaitSweep {
    0% { transform: translateX(-110%); }
    100% { transform: translateX(290%); }
  }
  @keyframes reconnectSweep {
    0% { transform: translateX(-110%); }
    100% { transform: translateX(290%); }
  }
  @media (prefers-reduced-motion: reduce) {
    #bootLine, #bootTitle, #bootLabel { transition-duration: .01ms !important; }
    body.boot-settle #bootTitle { transform: none; filter: none; }
    body.boot-reconnect #bootLineCore,
    body.boot-idle-wait #bootLineCore { animation: none; left: 50%; width: 42%; transform: translateX(-50%); }
    .bootCheckDot { animation: none; }
  }

  /* Toast */
  #st {
    position: fixed; left: 50%;
    bottom: calc(20px + var(--dock-panel-height, 0px));
    transform: translateX(-50%);
    max-width: calc(100% - 48px); z-index: 22;
    padding: 8px 14px;
    background: rgba(0,0,0,.55);
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 10px;
    font: 500 14px/1.3 -apple-system, "PingFang SC", sans-serif;
    transition: opacity .3s; pointer-events: none; text-align: center;
  }
  #st.hide { opacity: 0; }


  
  
