html, body { height: 100%; margin: 0; } body { background: #090b0f; color: #f7f4e8; font-family: Arial, Helvetica, sans-serif; overflow: hidden; } button { font: inherit; } .app-shell { box-sizing: border-box; display: flex; flex-direction: column; gap: 20px; height: 100%; padding: 34px 42px 30px; } .topbar { align-items: stretch; display: flex; flex: 0 0 auto; gap: 26px; justify-content: space-between; min-height: 86px; } .brand-block { min-width: 280px; } .eyebrow, .panel-label { color: #9be7d3; font-size: 16px; font-weight: 700; line-height: 1; margin: 0 0 10px; text-transform: uppercase; } h1 { font-size: 46px; line-height: 1; margin: 0; } .status-strip { display: flex; flex: 1 1 auto; gap: 12px; justify-content: flex-end; min-width: 0; } .status-pill { background: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.14); border-radius: 8px; box-sizing: border-box; display: flex; flex: 1 1 0; flex-direction: column; justify-content: center; max-width: 230px; min-width: 140px; padding: 14px 16px; } .status-pill span { color: #b7bdc7; font-size: 13px; font-weight: 700; text-transform: uppercase; } .status-pill strong { color: #ffffff; display: block; font-size: 20px; line-height: 1.2; margin-top: 6px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .stage-row { display: flex; flex: 1 1 auto; gap: 20px; min-height: 230px; } .visual-stage, .launch-panel, .detail-panel { background: rgba(255, 255, 255, 0.07); border: 1px solid rgba(255, 255, 255, 0.12); border-radius: 8px; box-sizing: border-box; } .visual-stage { flex: 1 1 auto; min-width: 0; overflow: hidden; position: relative; } #motionCanvas { display: block; height: 100%; width: 100%; } .stage-overlay { align-items: flex-start; bottom: 18px; display: flex; flex-direction: column; left: 22px; position: absolute; text-shadow: 0 2px 12px rgba(0, 0, 0, 0.35); } .stage-overlay p { color: #c2fff3; font-size: 18px; font-weight: 700; margin: 0 0 6px; text-transform: uppercase; } .stage-overlay strong { color: #ffffff; font-size: 36px; line-height: 1.05; } .launch-panel { flex: 0 0 300px; padding: 22px; } pre { font-family: "Courier New", Courier, monospace; margin: 0; white-space: pre-wrap; word-break: break-word; } #launchParams { color: #d7e0ee; font-size: 15px; line-height: 1.45; max-height: 178px; overflow: hidden; } .workbench { display: flex; flex: 1 1 auto; gap: 20px; min-height: 276px; } .feature-grid { display: flex; flex: 1 1 auto; flex-wrap: wrap; gap: 14px; min-width: 0; } .feature-card { background: #171b22; border: 2px solid rgba(255, 255, 255, 0.1); border-radius: 8px; box-sizing: border-box; color: #ffffff; cursor: pointer; display: flex; flex: 1 1 30%; flex-direction: column; justify-content: space-between; min-height: 126px; min-width: 220px; outline: none; padding: 18px; position: relative; text-align: left; transform: translateZ(0); transition: background-color 120ms ease, border-color 120ms ease, transform 120ms ease; } .feature-card:before { background: #6ce3cf; border-radius: 999px; content: ""; height: 7px; left: 18px; position: absolute; right: 18px; top: 12px; } .feature-card.is-focused, .feature-card:focus { background: #222832; border-color: #ffffff; box-shadow: 0 0 0 4px rgba(155, 231, 211, 0.28); transform: scale(1.035); z-index: 2; } .feature-card:active { transform: scale(1.01); } .card-icon { align-items: center; align-self: flex-start; background: rgba(255, 255, 255, 0.1); border-radius: 8px; box-sizing: border-box; color: #ffffff; display: flex; font-size: 18px; font-weight: 800; height: 44px; justify-content: center; margin-top: 12px; width: 58px; } .feature-card strong { display: block; font-size: 25px; line-height: 1.08; margin-top: 12px; } .feature-card small { color: #b9c1ce; display: block; font-size: 14px; line-height: 1.25; margin-top: 8px; } .accent-cyan:before { background: #6ce3cf; } .accent-green:before { background: #83d96c; } .accent-yellow:before { background: #f3cf56; } .accent-red:before { background: #ff7c67; } .accent-purple:before { background: #c49cff; } .accent-blue:before { background: #6aa9ff; } .detail-panel { display: flex; flex: 0 0 390px; flex-direction: column; gap: 14px; padding: 22px; } .detail-head { border-bottom: 1px solid rgba(255, 255, 255, 0.12); flex: 0 0 auto; padding-bottom: 16px; } .detail-head strong { color: #ffffff; display: block; font-size: 28px; line-height: 1.1; } .json-view { background: rgba(0, 0, 0, 0.22); border-radius: 8px; box-sizing: border-box; color: #f1f7ff; flex: 1 1 auto; font-size: 15px; line-height: 1.42; min-height: 96px; overflow: hidden; padding: 14px; } .event-log { display: flex; flex: 0 0 92px; flex-direction: column; gap: 7px; justify-content: flex-end; overflow: hidden; } .log-line { color: #c7cfda; font-size: 14px; line-height: 1.25; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .log-line strong { color: #ffffff; } .theme-ember .eyebrow, .theme-ember .panel-label { color: #ffc46b; } .theme-ember .feature-card.is-focused, .theme-ember .feature-card:focus { box-shadow: 0 0 0 4px rgba(255, 196, 107, 0.28); } .theme-orchid .eyebrow, .theme-orchid .panel-label { color: #dfb3ff; } .theme-orchid .feature-card.is-focused, .theme-orchid .feature-card:focus { box-shadow: 0 0 0 4px rgba(223, 179, 255, 0.28); } @media (max-width: 1180px) { .app-shell { overflow-y: auto; padding: 26px; } body { overflow: auto; } .topbar, .stage-row, .workbench { flex-direction: column; } .status-strip { flex-wrap: wrap; justify-content: flex-start; } .launch-panel, .detail-panel { flex-basis: auto; } .visual-stage { min-height: 280px; } }