

        #terminal * { margin: 0; padding: 0; box-sizing: border-box; }

        #terminal {
            font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
            background: #e8e2d6;
            height: 100vh;
            overflow: hidden;
            position: relative;
        }

        /* 返回主站按钮 */
        .site-back {
            position: fixed;
            top: 14px;
            left: 16px;
            z-index: 99999;
            font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
            font-size: 11px;
            font-weight: 500;
            letter-spacing: 0.32em;
            text-transform: uppercase;
            color: #b89438;
            background: rgba(244, 241, 234, 0.62);
            backdrop-filter: blur(8px);
            border: 1px solid rgba(184, 148, 56, 0.40);
            border-radius: 10px;
            padding: 8px 14px;
            text-decoration: none;
            transition: color .25s ease, background .25s ease, border-color .25s ease;
        }
        .site-back:hover { color: #0d0b08; background: #b89438; border-color: #b89438; }

        /* 音乐播放/暂停小按钮（右下角） */
        .music-toggle {
            position: fixed;
            right: 18px;
            bottom: 18px;
            z-index: 99999;
            width: 44px;
            height: 44px;
            border-radius: 12px;
            border: 1px solid rgba(255, 255, 255, 0.14);
            background: rgba(20, 18, 14, 0.55);
            backdrop-filter: blur(6px);
            color: #e9e5dc;
            font-size: 20px;
            line-height: 1;
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            transition: background 0.25s ease, color 0.25s ease, transform 0.15s ease;
        }
        .music-toggle:hover { background: rgba(20, 18, 14, 0.75); transform: translateY(-2px); }
        .music-toggle:active { transform: translateY(0); }
        html.music-playing .music-toggle { color: #d9b95a; border-color: rgba(217, 185, 90, 0.35); }

        /* 噪点叠层 */
        #terminal::before {
            content: '';
            position: fixed;
            inset: 0;
            pointer-events: none;
            z-index: 9999;
            opacity: 0.30;
            background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
            background-size: 180px 180px;
        }

        /* ===== 全局背景过渡层 ===== */
        #bg-transition {
            position: fixed;
            inset: 0;
            z-index: 1;
            background: #0d0b08;
            transition: background 1.2s ease 0.3s;
            pointer-events: none;
        }
        #bg-transition.to-light {
            background: #e8e2d6;
        }

        /* ===== 启动界面 ===== */
        #boot {
            position: fixed;
            inset: 0;
            z-index: 5000;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
        }

        /* ── 统一容器：控制整体淡出 ── */
        .boot-fade-group {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 0;
            transition: opacity 0.55s ease, transform 0.55s ease;
        }
        .boot-fade-group.fade-out {
            opacity: 0;
            transform: translateY(6px);
        }

        .b-scanlines {
            position: absolute;
            inset: 0;
            pointer-events: none;
            background: repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0,0,0,0.1) 2px, rgba(0,0,0,0.1) 4px);
            transition: opacity 0.8s ease;
        }
        .b-scanlines.fade-out { opacity: 0; }

        /* ── 过渡中的浮动徽标 ── */
        #floating-emblem {
            position: fixed;
            z-index: 8000;
            pointer-events: none;
            visibility: hidden;
            opacity: 0;
            transform: translateY(0);
            transition: transform 1s ease 0.05s, opacity 0.45s ease;
        }
        #floating-emblem.active { visibility: visible; opacity: 1; }
        /* 中央航天器图案最后单独上升 */
        #floating-emblem.emblem-rise {
            transform: translateY(-115px);
        }
        /* 上升结束后淡出 */
        #floating-emblem.emblem-gone {
            opacity: 0;
        }

        /* ── 优化后的徽标立体感 ── */
        .b-emblem {
            width: 108px;
            height: 108px;
            display: flex;
            align-items: center;
            justify-content: center;
            position: relative;
            /* 增加3D透视与组合动画 */
            perspective: 1200px;
            transform-style: preserve-3d;
            animation: emblem3d 7s ease-in-out infinite;
        }
        .boot-emblem-slot {
            width: 108px;
            height: 108px;
            flex: 0 0 108px;
        }

        /* 外围图案层：圆环、轨道（启动时随背景一起淡出） */
        .b-emblem-periph {
            position: absolute;
            inset: 0;
            display: flex;
            align-items: center;
            justify-content: center;
            border: 1.5px solid #b89438;
            border-radius: 50%;
            animation: bpulse 3s ease-in-out infinite;
            transition: opacity 1.2s ease 0.3s;
        }
        .b-emblem-periph::before {
            content: '';
            position: absolute;
            inset: 9px;
            border: 1px solid rgba(184,148,56,0.38);
            border-radius: 50%;
        }
        .b-emblem.periph-gone .b-emblem-periph { opacity: 0; }

        /* 中央航天器图案层：最后单独上升 */
        .b-emblem-core {
            position: absolute;
            inset: 0;
            display: flex;
            align-items: center;
            justify-content: center;
            z-index: 1;
        }

        /* 阴影脉冲保持不变 */
        @keyframes bpulse {
            0%,100% { box-shadow: 0 0 18px rgba(184,148,56,0.45); }
            50%      { box-shadow: 0 0 36px rgba(184,148,56,0.7); }
        }
        /* 新增立体浮动动画 */
        @keyframes emblem3d {
            0% { transform: rotateX(-8deg) rotateY(-12deg) scale(1); }
            50% { transform: rotateX(8deg) rotateY(12deg) scale(1.02); }
            100% { transform: rotateX(-8deg) rotateY(-12deg) scale(1); }
        }

        .b-emblem svg { width: 52px; height: 52px; }

        /* 徽标动画 - 轨道旋转优化（仅外围图案层） */
        .b-emblem .b-emblem-periph svg ellipse {
            transform-origin: 40px 40px;
        }
        .b-emblem .b-emblem-periph svg ellipse:nth-of-type(1) {
            animation: orbitSpin 8s linear infinite;
        }
        .b-emblem .b-emblem-periph svg ellipse:nth-of-type(2) {
            animation: orbitSpinRev 14s linear infinite;
        }
        .b-emblem .b-emblem-periph svg circle.dash-circle {
            animation: spinDash 6s linear infinite;
            transform-origin: 40px 40px;
        }

        @keyframes orbitSpin    { 0% { transform: rotate(-22deg); } 100% { transform: rotate(338deg); } }
        @keyframes orbitSpinRev { 0% { transform: rotate(38deg);  } 100% { transform: rotate(-322deg); } }
        @keyframes spinDash     { 0% { transform: rotate(0deg);   } 100% { transform: rotate(360deg); } }

        /* 徽标动画 - 移除中心的呼吸效果（仅中央航天器图案层） */
        .b-emblem .b-emblem-core svg rect {
            animation: none !important;
            fill-opacity: 0.85 !important;
        }
        .b-emblem .b-emblem-core svg rect:nth-of-type(2),
        .b-emblem .b-emblem-core svg rect:nth-of-type(3) {
            animation-delay: 0s !important;
        }

        /* ── 标题（可单独调节） ── */
        .b-titles {
            text-align: center;
            margin: 22px 0 0;
        }
        .b-t1 {
            font-family: 'Segoe UI', sans-serif;
            font-weight: 300;
            font-size: clamp(14px, 3.5vw, 20px);
            color: #b89438;
            letter-spacing: 0.5em;
            display: block;
            margin-bottom: 10px;
        }
        .b-t2 { font-size: 9px; color: #7a6e5e; letter-spacing: 0.32em; display: block; margin-bottom: 5px; }
        .b-t3 { font-size: 8px; color: #7a6e5e; letter-spacing: 0.22em; display: block; opacity: 0.6; }

        /* ── 状态文字（可单独调节） ── */
        .b-status {
            font-size: 10px;
            color: #7a6e5e;
            letter-spacing: 0.25em;
            min-height: 14px;
            text-align: center;
            /* 【位置调节】在这里调整状态文字与按钮的距离 */
            margin-bottom: 24px;
        }

        /* ── 发射按钮（可单独调节） ── */
        .b-btn {
            padding: 12px 42px;
            background: transparent;
            border: 1px solid #b89438;
            color: #b89438;
            font-family: 'Segoe UI', sans-serif;
            font-size: 13px;
            letter-spacing: 0.44em;
            font-weight: 300;
            cursor: pointer;
            position: relative;
            overflow: hidden;
            transition: color .3s;
        }
        .b-btn::after {
            content: '';
            position: absolute;
            inset: 0;
            background: #b89438;
            transform: scaleX(0);
            transform-origin: left;
            transition: transform .3s ease;
            z-index: 0;
        }
        .b-btn span { position: relative; z-index: 1; }
        .b-btn:hover { color: #0d0b08; }
        .b-btn:hover::after { transform: scaleX(1); }
        .b-btn:disabled { opacity: 0.35; pointer-events: none; }

        /* ===== 主 UI（保持不变） ===== */
        #main-ui {
            display: none;
            flex-direction: column;
            height: 100vh;
            width: 100%;
            padding: 8px 12px 6px;
            box-sizing: border-box;
            position: absolute;
            top: 0; left: 0;
            z-index: 10;
            pointer-events: none;
            opacity: 0;
            transform: translateY(12px);
            transition: opacity 0.8s ease 0.7s, transform 0.8s ease 0.7s;
        }
        #main-ui.active { display: flex; pointer-events: auto; }
        #main-ui.visible { opacity: 1; transform: translateY(0); }

        /* 顶栏 */
        .top-bar {
            display: flex;
            justify-content: space-between;
            align-items: flex-end;
            padding: 4px 12px 6px;
            background: rgba(244,241,234,0.60);
            backdrop-filter: blur(8px);
            border-radius: 16px 16px 0 0;
            border-bottom: 1px solid rgba(200,185,165,0.15);
            flex-shrink: 0;
            margin-bottom: 4px;
        }
        .top-bar .main-title { font-size: 22px; font-weight: 700; letter-spacing: 1.8px; color: #2b241c; text-transform: uppercase; }
        .top-bar .sub-title  { font-size: 8px; font-weight: 500; letter-spacing: 2px; color: #8a7b6b; text-transform: uppercase; }
        .top-bar .clock      { font-size: 18px; font-weight: 500; letter-spacing: 1px; color: #2b241c; }

        .dashboard { flex: 1; display: flex; flex-direction: column; gap: 4px; min-height: 0; }

        .orbit-card {
            background: rgba(244,241,234,0.70);
            backdrop-filter: blur(8px);
            border-radius: 14px;
            padding: 10px 16px 12px;
            border: 1px solid rgba(200,185,165,0.20);
            flex-shrink: 0;
            box-shadow: 0 2px 12px rgba(60,45,30,0.04);
        }
        .orbit-card .card-head {
            display: flex;
            align-items: center;
            justify-content: space-between;
            flex-wrap: wrap;
            gap: 6px 10px;
            margin-bottom: 6px;
        }
        .orbit-card .card-title { font-size: 10px; font-weight: 700; letter-spacing: 1.6px; text-transform: uppercase; color: #5a4d3d; }
        .orbit-tabs { display: flex; gap: 4px; flex-wrap: wrap; }
        .orbit-tab {
            background: transparent;
            border: 1px solid rgba(184,148,56,0.35);
            color: #8a7b6b;
            font-family: 'Segoe UI', sans-serif;
            font-size: 9px;
            font-weight: 600;
            letter-spacing: 0.12em;
            padding: 3px 10px;
            border-radius: 8px;
            cursor: pointer;
            transition: color .25s ease, border-color .25s ease, background .25s ease;
            text-transform: uppercase;
        }
        .orbit-tab:hover { border-color: #b89438; color: #b89438; }
        .orbit-tab.active { background: #b89438; border-color: #b89438; color: #0d0b08; }
        .orbit-panel { display: none; }
        .orbit-panel.active { display: block; }
        .sc-panel-head { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
        .sc-panel-head .sc-dot { width: 10px; height: 10px; border-radius: 50%; box-shadow: 0 0 8px currentColor; }
        .sc-panel-head .sc-name { font-size: 12px; font-weight: 700; letter-spacing: 1.4px; text-transform: uppercase; }
        .sc-panel-head .sc-tag { font-size: 7px; font-weight: 600; letter-spacing: 1.4px; color: #8a7b6b; text-transform: uppercase; margin-left: auto; }
        .orbit-speed-row {
            display: flex;
            align-items: center;
            justify-content: space-between;
            flex-wrap: wrap;
            gap: 6px 10px;
            margin-top: 8px;
            padding-top: 8px;
            border-top: 1px solid rgba(120,100,80,0.08);
        }
        .orbit-speed-label { font-size: 9px; font-weight: 600; letter-spacing: 0.8px; text-transform: uppercase; color: #8a7b6b; }
        .orbit-speed-ctl { display: flex; gap: 4px; }
        .speed-btn {
            background: transparent;
            border: 1px solid rgba(184,148,56,0.35);
            color: #8a7b6b;
            font-family: 'Segoe UI', sans-serif;
            font-size: 9px;
            font-weight: 600;
            padding: 3px 10px;
            border-radius: 8px;
            cursor: pointer;
            transition: color .25s ease, border-color .25s ease, background .25s ease;
        }
        .speed-btn:hover { border-color: #b89438; color: #b89438; }
        .speed-btn.active { background: #b89438; border-color: #b89438; color: #0d0b08; }
        .orbit-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 24px; }
        .orbit-item { display: flex; align-items: baseline; gap: 6px; padding: 1px 0; }
        .orbit-item .label { font-size: 9px; font-weight: 600; letter-spacing: 0.8px; text-transform: uppercase; color: #8a7b6b; min-width: 52px; }
        .orbit-item .value { font-size: 22px; font-weight: 500; color: #1f1913; font-variant-numeric: tabular-nums; line-height: 1.2; }
        .orbit-item .unit  { font-size: 12px; font-weight: 400; color: #6b5d4e; margin-left: 2px; }

        .scene-wrapper {
            flex: 0 0 auto;
            height: 50vh;
            min-height: 260px;
            border-radius: 18px;
            overflow: hidden;
            background: #ece6dc;
            box-shadow: inset 0 0 0 1px rgba(200,185,165,0.20), 0 4px 20px rgba(60,45,30,0.05);
            position: relative;
        }
        #three-canvas { width: 100%; height: 100%; display: block; cursor: grab; }
        #three-canvas:active { cursor: grabbing; }

        .label-container { position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; overflow: hidden; z-index: 2; }
        .tracking-label {
            position: absolute;
            background: rgba(50,45,40,0.85);
            backdrop-filter: blur(6px);
            color: #eae3d8;
            font-size: 10px;
            font-weight: 600;
            letter-spacing: 0.8px;
            padding: 6px 12px;
            border-radius: 10px;
            border: 1px solid rgba(200,185,165,0.15);
            box-shadow: 0 4px 16px rgba(0,0,0,0.12);
            text-transform: uppercase;
            font-family: 'Segoe UI', sans-serif;
            white-space: nowrap;
            transform: translate(-50%, -120%);
        }

        .attitude-panel {
            background: rgba(244,241,234,0.70);
            backdrop-filter: blur(8px);
            border-radius: 14px;
            padding: 10px 12px 12px;
            border: 1px solid rgba(200,185,165,0.20);
            flex-shrink: 0;
            box-shadow: 0 2px 12px rgba(60,45,30,0.04);
        }
        .attitude-panel .panel-title { font-size: 10px; font-weight: 700; letter-spacing: 1.6px; text-transform: uppercase; color: #5a4d3d; margin-bottom: 6px; }
        .multi-attitude-grid { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; gap: 8px; }
        .widget-card {
            background: #f2f2f2;
            border-radius: 16px;
            padding: 8px 10px 12px;
            position: relative;
            overflow: hidden;
            box-shadow: 0 2px 5px rgba(0,0,0,0.05);
            display: flex;
            flex-direction: column;
            justify-content: space-between;
            min-height: 100px;
        }
        .widget-card.selectable {
            cursor: pointer;
            border: 1.5px solid transparent;
            transition: box-shadow .25s ease, border-color .25s ease, background .25s ease;
        }
        /* 悬停：不上跳，只让边缘直接亮起 */
        .widget-card.selectable:hover:not(.selected) {
            border-color: var(--sc, #b89438);
            box-shadow: 0 0 10px var(--sc-glow, rgba(184,148,56,0.30));
        }
        /* 选中：呼吸灯效果 */
        .widget-card.selected {
            border-color: var(--sc, #b89438);
            background: #fbf8f1;
            animation: breathGlow 2s ease-in-out infinite;
        }
        @keyframes breathGlow {
            0%, 100% { box-shadow: 0 0 0 1px var(--sc, #b89438), 0 0 4px var(--sc-glow, rgba(184,148,56,0.08)); }
            50%      { box-shadow: 0 0 0 1.5px var(--sc, #b89438), 0 0 16px var(--sc-glow, rgba(184,148,56,0.75)), 0 0 38px var(--sc-glow, rgba(184,148,56,0.45)); }
        }
        .widget-card.selectable .view-hint {
            position: absolute;
            top: 8px;
            right: 10px;
            font-size: 7px;
            font-weight: 700;
            letter-spacing: 1.2px;
            text-transform: uppercase;
            color: #b89438;
            opacity: 0;
            transition: opacity .25s ease;
            pointer-events: none;
        }
        .widget-card.selectable:hover .view-hint,
        .widget-card.selected .view-hint { opacity: 1; }
        .widget-card .sc-title { font-size: 12px; font-weight: 700; letter-spacing: 0.8px; text-transform: uppercase; margin-bottom: 4px; }
        .widget-card .data-group { display: flex; flex-direction: column; gap: 2px; }
        .widget-card .data-item { display: flex; justify-content: space-between; align-items: center; font-size: 13px; border-bottom: 1px solid rgba(0,0,0,0.03); padding: 1px 0; }
        .widget-card .data-item:last-child { border-bottom: none; }
        .widget-card .data-label { font-size: 8px; font-weight: 600; text-transform: uppercase; color: #8a7b6b; }
        .widget-card .data-val   { font-size: 15px; font-weight: 500; color: #1f1913; }
        .circle-deco {
            position: absolute;
            width: 160px; height: 160px;
            border-radius: 50%;
            border: 2px solid rgba(255,200,150,0.20);
            bottom: -50px; right: -50px;
            pointer-events: none;
            z-index: 0;
            animation: spin 20s linear infinite;
        }
        @keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
        .status-row { grid-column: 1 / -1; display: flex; justify-content: flex-end; align-items: center; gap: 12px; padding-top: 4px; margin-top: 2px; border-top: 1px solid rgba(120,100,80,0.08); }
        .status-label { font-size: 9px; font-weight: 600; letter-spacing: 0.8px; text-transform: uppercase; color: #8a7b6b; }
        .status-value { font-size: 17px; font-weight: 600; letter-spacing: 0.6px; color: #4a8c5c; text-transform: uppercase; }

        @media (max-width: 768px) {
            #main-ui { padding: 6px 6px 4px; }
            .top-bar { padding: 4px 8px 4px; border-radius: 12px 12px 0 0; }
            .top-bar .main-title { font-size: 14px; letter-spacing: 1px; }
            .top-bar .sub-title  { font-size: 6px; }
            .top-bar .clock      { font-size: 14px; }
            .orbit-card { padding: 6px 10px 8px; }
            .orbit-tab { padding: 2px 7px; font-size: 8px; }
            .orbit-grid { grid-template-columns: 1fr 1fr; gap: 2px 10px; }
            .orbit-item .value { font-size: 16px; }
            .orbit-item .label { font-size: 7px; min-width: 36px; }
            .scene-wrapper { height: 48vh; min-height: 180px; }
            .multi-attitude-grid { grid-template-columns: 1fr 1fr; gap: 4px; }
            .widget-card { min-height: 70px; padding: 6px 8px 8px; border-radius: 12px; }
            .widget-card .data-val { font-size: 12px; }
            .widget-card .data-label { font-size: 7px; }
            .circle-deco { width: 110px; height: 110px; bottom: -30px; right: -30px; }
            .tracking-label { font-size: 7px; padding: 3px 8px; }
        }

        #terminal { position: fixed; inset: 0; z-index: 300; overflow: hidden; background: #e8e2d6; }


    /* 终端界面优雅化：与主站统一的奶油网格底、Avant Garde 标题、更柔和的卡片 */
    #terminal {
      background-color: #f2ecdf;
      background-image:
        linear-gradient(rgba(0, 0, 0, 0.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0, 0, 0, 0.03) 1px, transparent 1px);
      background-size: 96px 96px;
    }
    #terminal .top-bar { background: rgba(250, 247, 240, 0.72); backdrop-filter: blur(12px); padding: 6px 16px 8px; }
    /* 终端的全局 reset 会清掉外部按钮内边距，这里显式恢复返回键尺寸。 */
    #terminal .terminal-close { padding: 12px 16px; }
    #terminal .top-bar .main-title { font-family: var(--font-display); font-weight: 800; letter-spacing: 0.5px; }
    #terminal #main-ui { padding: 26px 32px 24px; }
    #terminal .top-bar,
    #terminal .dashboard {
      width: 100%;
      max-width: 1180px;
      margin-inline: auto;
    }
    #terminal .top-bar {
      border-radius: 16px;
      border: 1px solid rgba(180, 165, 145, 0.18);
      border-bottom: 1px solid rgba(180, 165, 145, 0.18);
      padding: 10px 22px 12px;
      margin-bottom: 16px;
    }
    #terminal .dashboard { gap: 16px; }
    #terminal .orbit-card { padding: 15px 18px 16px; }
    #terminal .attitude-panel { padding: 14px 18px 16px; }
    #terminal .scene-wrapper {
      flex: 1 1 0;
      height: auto;
      min-height: 0;
      max-height: none;
    }
    #terminal .top-bar .title-group { min-width: 0; }
    #terminal .top-bar .main-title,
    #terminal .top-bar .sub-title { white-space: nowrap; }
    #terminal .top-bar .sub-title { overflow: hidden; text-overflow: ellipsis; }
    #terminal .orbit-card .card-head { flex-wrap: nowrap; }
    #terminal .orbit-tabs { flex-wrap: nowrap; }
    #terminal .orbit-item { align-items: center; }
    #terminal .orbit-item .label { min-width: 96px; }
    #terminal .orbit-card,
    #terminal .attitude-panel {
      background: rgba(250, 247, 240, 0.82);
      border-radius: 18px;
      border: 1px solid rgba(180, 165, 145, 0.18);
      box-shadow: 0 12px 34px -22px rgba(60, 45, 30, 0.30);
    }
    #terminal .widget-card { border-radius: 16px; background: #f7f4ed; }
    #terminal .card-title,
    #terminal .panel-title { letter-spacing: 0.18em; color: #6b5d4e; }
    #terminal .sc-title { font-family: var(--font-display); font-weight: 700; }
    /* 启动界面按钮放大 */
    #terminal .b-btn {
      padding: 18px 58px;
      font-size: 16px;
      letter-spacing: 0.5em;
    }
    /* 标签适当放大，缓解拥挤感 */
    #terminal .card-title { font-size: 12.5px; }
    #terminal .panel-title { font-size: 12.5px; }
    #terminal .orbit-item .label { font-size: 11px; }
    #terminal .orbit-item .value { font-size: 24px; }
    #terminal .orbit-item .unit  { font-size: 13px; }
    #terminal .widget-card .data-label { font-size: 11px; }
    #terminal .widget-card .data-val   { font-size: 17px; }
    #terminal .sc-title { font-size: 14px; }
    #terminal .sc-tag { font-size: 9.5px; }
    #terminal .orbit-tab { font-size: 11px; padding: 4px 12px; }
    #terminal .speed-btn { font-size: 11px; padding: 4px 12px; }
    #terminal .orbit-speed-label { font-size: 10px; }
    #terminal .status-label { font-size: 11px; }
    #terminal .status-value { font-size: 19px; }
    #terminal .tracking-label { font-size: 11px; }
    #terminal .top-bar .sub-title { font-size: 10px; }
    #terminal .orbit-grid { gap: 10px 30px; }
    #terminal .multi-attitude-grid { gap: 12px; }
    #terminal .widget-card { padding: 10px 14px 14px; min-height: 112px; }

    /* 启动页：徽标、标题与操作区使用明确的垂直节奏，避免文字贴住图案。 */
    #terminal .boot-fade-group { gap: 0; }
    #terminal .b-titles {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 6px;
      margin: 34px 0 18px;
    }
    #terminal .b-t1 { margin: 0; line-height: 1.2; }
    #terminal .b-t2,
    #terminal .b-t3 { margin: 0; line-height: 1.45; }
    #terminal .b-status { line-height: 1.45; margin: 0 0 28px; }

    /* 场景优先：参数紧凑而整齐，让中间地球获得最大的可视区域。 */
    #terminal .dashboard { gap: 12px; }
    #terminal .orbit-card { padding: 14px 18px; }
    #terminal .orbit-card .card-head {
      align-items: flex-start;
      gap: 10px 20px;
      margin-bottom: 12px;
    }
    #terminal .orbit-tabs,
    #terminal .orbit-speed-ctl { gap: 7px; }
    #terminal .orbit-tab,
    #terminal .speed-btn { padding: 5px 12px; }
    #terminal .orbit-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 14px 72px;
    }
    #terminal .orbit-item {
      display: grid;
      grid-template-columns: max-content max-content;
      grid-template-rows: auto auto;
      align-items: baseline;
      align-content: start;
      gap: 1px 5px;
      padding: 0;
    }
    #terminal .orbit-item .label {
      grid-column: 1 / -1;
      min-width: 0;
      margin-bottom: 2px;
    }
    #terminal .orbit-item .value { line-height: 1.05; }
    #terminal .orbit-item .unit { margin-left: 0; }
    #terminal .orbit-panel:not([data-panel="global"]) .orbit-grid {
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 12px 42px;
    }
    #terminal .orbit-speed-row { margin-top: 12px; padding-top: 10px; }
    #terminal .scene-wrapper {
      flex: 1 1 0;
      min-height: clamp(180px, 30vh, 320px);
    }
    #terminal .attitude-panel { padding: 10px 14px 12px; }
    #terminal .multi-attitude-grid { gap: 8px; }
    #terminal .widget-card { min-height: 88px; padding: 8px 12px 10px; }

    /* 无论窗口高度如何，内容都不会被终端的固定容器截断。 */
    #terminal #main-ui {
      height: 100dvh;
      min-height: 0;
      overflow-x: hidden;
      overflow-y: auto;
      overscroll-behavior: contain;
      scrollbar-gutter: stable;
    }
    #terminal .dashboard { flex: 1 1 auto; min-height: 0; }

    @media (max-width: 900px) {
      #terminal .orbit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      #terminal .orbit-panel:not([data-panel="global"]) .orbit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      #terminal .orbit-card .card-head,
      #terminal .orbit-tabs { flex-wrap: wrap; }
    }

    /* Desktop dashboard: dedicate the screen to the live Earth view; the data panels stay
       compact but retain a clear hierarchy and full numeric readability. */
    @media (min-width: 901px) and (max-height: 820px) {
      #terminal #main-ui { padding: 16px 32px 8px; }
      #terminal .top-bar { padding: 8px 18px 9px; margin-bottom: 10px; }
      #terminal .dashboard { gap: 8px; }
      #terminal .orbit-card { padding: 8px 14px 9px; }
      #terminal .orbit-card .card-head { gap: 5px 14px; margin-bottom: 5px; }
      #terminal .card-title { font-size: 10px; }
      #terminal .orbit-tab { font-size: 9px; padding: 3px 9px; }
      #terminal .sc-panel-head { gap: 5px; margin-bottom: 3px; }
      #terminal .sc-panel-head .sc-dot { width: 8px; height: 8px; }
      #terminal .sc-panel-head .sc-name { font-size: 10px; }
      #terminal .sc-panel-head .sc-tag { font-size: 7.5px; }
      #terminal .orbit-grid { gap: 5px 40px; }
      #terminal .orbit-panel:not([data-panel="global"]) .orbit-grid { gap: 5px 30px; }
      #terminal .orbit-item .label { font-size: 8px; margin-bottom: 0; }
      #terminal .orbit-item .value { font-size: 18px; }
      #terminal .orbit-item .unit { font-size: 10px; }
      #terminal .orbit-speed-row { margin-top: 5px; padding-top: 5px; }
      #terminal .speed-btn { font-size: 9px; padding: 3px 9px; }
      #terminal .scene-wrapper { min-height: 0; }
      #terminal .attitude-panel { padding: 6px 12px 7px; }
      #terminal .panel-title { font-size: 10px; margin-bottom: 3px; }
      #terminal .multi-attitude-grid { gap: 6px; }
      #terminal .widget-card { min-height: 56px; padding: 4px 9px 5px; border-radius: 12px; }
      #terminal .widget-card .sc-title { font-size: 10px; margin-bottom: 1px; }
      #terminal .widget-card .data-group { gap: 0; }
      #terminal .widget-card .data-item { font-size: 10px; padding: 0; }
      #terminal .widget-card .data-label { font-size: 7px; }
      #terminal .widget-card .data-val { font-size: 12px; }
      #terminal .status-row { min-height: 16px; margin-top: 0; padding-top: 1px; }
      #terminal .status-label { font-size: 8px; }
      #terminal .status-value { font-size: 13px; }
      #terminal .tracking-label { font-size: 9px; padding: 4px 8px; }
    }

    @media (max-height: 640px) and (min-width: 769px) {
      #terminal #main-ui { padding: 12px 20px; }
      #terminal .top-bar { padding: 8px 16px; margin-bottom: 10px; }
      #terminal .dashboard { gap: 10px; }
      #terminal .orbit-card { padding: 10px 14px 12px; }
      #terminal .attitude-panel { padding: 10px 14px 12px; }
      #terminal .multi-attitude-grid { gap: 8px; }
      #terminal .widget-card { min-height: 88px; padding: 8px 12px 10px; }
      #terminal .widget-card .data-label { font-size: 9px; }
      #terminal .widget-card .data-val { font-size: 15px; }
      #terminal .status-row { min-height: 22px; }
    }

body { overflow: hidden; background: #0d0b08; }

/* Completes the home-page hand-off: the dedicated DC boot interface settles
   into place instead of appearing as an abrupt document replacement. */
body[data-page="terminal"] #terminal {
  animation: dc-terminal-arrival 0.5s cubic-bezier(.22, .61, .36, 1) both;
}

@keyframes dc-terminal-arrival {
  from { opacity: 0; transform: scale(1.018); }
  to { opacity: 1; transform: scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  body[data-page="terminal"] #terminal { animation-duration: 0.01ms; }
}
.terminal-close { text-decoration: none; }
